v3 Storage External API
Table of contents
- Introduction
- Global information
- Permissions
- >Jobs
- Study commands
- /study/schema
- /study/delete
- /study/delete/image/
- /study/delete/images/
- /study/count
- /study/tag
- /study/attribute
- /study/image/phi
- /study/phi
- /study/thumbnail
- /study/diagnostic
- /study/frame
- /study/frame/tiff
- /study/pdf
- /study/json
- /study/image/json
- /study/attachment
- /study/latest
- /study/post/attachment
- /study/attachment/image
- /study/download
- /study/delete/attachment
- /study/video
- /study/split
- /study/merge
- /study/anonymize
- /study/crop
- /study/cache
- /study/hl7/sr
- /study/clone
- /study/create/rt
- /dicomweb/studies/series/instances/metadata
- /dicomweb/studies/series/metadata
- /dicomweb/studies/metadata
- Image commands
Introduction
The API is implemented as a REST like interface. A call is made to a URL using either a POST, a GET or DELETE. The URL will return either a HTTP error code, a JSON data structure or a byte stream. All URLs below need to be prefixed with {engine_fqdn}/api/v3/storage.Global information
- Italic words represent fields names
- Fields are required unless noted as optional
- Flags are numeric fields with a 1 or 0 value for true or false
Permissions
A role has the following permission flags. The default roles are Admin, User, PHR and Anonymous and have the following settings.
Flag | Admin Value |
User Value |
PHR Value |
Anonymous Value |
Description |
---|---|---|---|---|---|
account_edit | 1 | 0 | 0 | 0 | Can they add and edit the account |
account_view | 1 | 0 | 0 | 0 | Can they view account information |
account_user_view | 1 | 0 | 0 | 0 | Can they view or list the users in the account |
account_user_edit | 1 | 0 | 0 | 0 | Can they add, edit and remove users from an account |
user_edit | 0 | 0 | 0 | 0 | Can they create and edit users on the grid |
destination_view | 1 | 0 | 0 | 0 | Can they view or list the destinations in the account |
destination_edit | 1 | 0 | 0 | 0 | Can they add, edit and remove destinations from an account |
destination_search | 0 | 0 | 0 | 0 | Can they search a destination |
destination_search_mwl | 0 | 0 | 0 | 0 | Can they run a modality worklist search on a destination |
group_view | 1 | 0 | 0 | 0 | Can they view or list the groups in the account |
group_edit | 1 | 0 | 0 | 0 | Can they add, edit and remove groups from an account |
location_view | 1 | 0 | 0 | 0 | Can they view or list the locations in the account |
location_edit | 1 | 0 | 0 | 0 | Can they add, edit and remove locations from an account |
role_view | 1 | 0 | 0 | 0 | Can they view or list the roles in the account |
role_edit | 1 | 0 | 0 | 0 | Can they add, edit and remove roles from an account |
route_view | 1 | 0 | 0 | 0 | Can they view or list the routes in the account |
route_edit | 1 | 0 | 0 | 0 | Can they add, edit and remove routes from an account |
node_view | 1 | 0 | 0 | 0 | Can they view or list the nodes in the account |
node_edit | 1 | 0 | 0 | 0 | Can they add, edit and remove nodes from an account |
study_approve | 1 | 0 | 1 | 0 | Can they approve or reject shared studies in the account, group, location |
study_view | 1 | 1 | 1 | 1 | Can they view the studies in the account, group, location |
study_edit | 1 | 0 | 1 | 0 | Can they edit the PHI of the study |
↳ study_edit_approved | 1 | 1 | 1 | 0 | Can they edit the PHI of an approved study |
↳ study_edit_unapproved | 1 | 1 | 1 | 0 | Can they edit the PHI of an unapproved study |
study_star | 1 | 1 | 0 | 0 | Can they star studies |
study_tag | 1 | 1 | 0 | 0 | Can they tag studies |
study_upload | 1 | 0 | 0 | 0 | Can they upload a study to the account, group, location |
study_upload_validate | 0 | 0 | 0 | 0 | An upload requires session validation |
study_report_detail | 1 | 0 | 1 | 0 | Can they get the detail report for studies in the account, group, location |
study_download | 1 | 0 | 1 | 0 | Can they download the study |
study_download_viewer | 1 | 0 | 1 | 0 | Can they download the local study viewer |
study_download_iso | 1 | 0 | 1 | 0 | Can they download the study ISO |
study_browse | 1 | 1 | 1 | 1 | Can they view studies in the web viewer |
study_push | 1 | 0 | 0 | 0 | Can they push the study to a destination |
study_share | 1 | 0 | 1 | 0 | Can they share the study |
↳ study_share_email | 0 | 0 | 1 | 0 | Can they share the study via email |
↳ study_share_share_code | 1 | 1 | 1 | 0 | Can they share the study via a share code |
↳ study_share_account | 1 | 1 | 1 | 0 | Can they share the study with accounts |
↳ study_share_location | 1 | 1 | 1 | 0 | Can they share the study with locations |
↳ study_share_group | 1 | 1 | 1 | 0 | Can they share the study with groups |
↳ study_share_user | 1 | 1 | 1 | 0 | Can they share the study with users |
↳ study_share_rsna | 0 | 0 | 0 | 0 | Can they share the study with the RSNA network |
study_delete | 0 | 0 | 1 | 0 | Can they delete a study |
study_delete_image | 0 | 0 | 0 | 0 | Can they delete images and series within a study |
study_thin | 0 | 0 | 0 | 0 | Can they create a thin study |
study_report_view | 1 | 1 | 1 | 1 | Can they view attached reports for a study |
study_report_view_approved | 1 | 1 | 1 | 1 | Can they view attached reports for an approved study |
study_report_view_unapproved | 0 | 0 | 0 | 0 | Can they view attached reports for an unapproved study |
study_report_hl7_view | 1 | 1 | 1 | 1 | Can they view HL7 reports for a study |
study_report_hl7_view_approved | 1 | 1 | 1 | 1 | Can they view HL7 reports for an approved study |
study_report_hl7_view_unapproved | 0 | 0 | 0 | 0 | Can they view HL7 reports for an unapproved study |
study_report_upload | 1 | 0 | 1 | 0 | Can they upload a report to a study |
study_report_upload_approved | 1 | 1 | 1 | 0 | Can they upload a report to an approved study |
study_report_upload_unapproved | 0 | 0 | 0 | 0 | Can they upload a report to an unapproved study |
study_report_delete | 1 | 0 | 1 | 0 | Can they delete a report from a study |
study_report_delete_approved | 1 | 1 | 1 | 0 | Can they delete a report from an approved study |
study_report_delete_unapproved | 0 | 0 | 0 | 0 | Can they delete a report from an unapproved study |
study_sync | 0 | 0 | 0 | 0 | Can they force a study to sync against storage and re-run routing rules |
study_status_view | 0 | 0 | 0 | 0 | Can they view the status of the study |
study_status_edit | 0 | 0 | 0 | 0 | Can they edit the status of the study |
study_comment_view | 0 | 0 | 0 | 0 | Can they view the comments for the study |
study_comment_edit | 0 | 0 | 0 | 0 | Can they edit comments for the study |
study_audio_record | 0 | 0 | 0 | 0 | Can they record an audio report for the study |
study_audio_play | 0 | 0 | 0 | 0 | Can they playback audio reports for the study |
study_move | 0 | 0 | 0 | 0 | Can they move the study to another PHI namespace |
study_duplicate | 0 | 0 | 0 | 0 | Can they duplicate studies to another namespace |
study_manual_route | 0 | 0 | 0 | 0 | Can they manually route a study |
study_field_patient_name study_field_patientid study_field_study_description study_field_accession_number study_field_modality study_field_referring_physician study_field_patient_sex study_field_study_date study_field_patient_birth_date study_field_customfield_UUID |
F | F | F | F | Permission for study fields. Customfields contain the UUID of the customfield. Valid values are.
|
audit_view | 1 | 0 | 1 | 0 | Can they view audit information |
analytics_view | 1 | 0 | 1 | 0 | Can they view analytics information |
study_search_require_patient_name | 0 | 0 | 0 | 0 | Patient name is required for a study search |
study_search_require_patient_sex | 0 | 0 | 0 | 0 | Patient gender is required for a study search |
study_search_require_accession_number | 0 | 0 | 0 | 0 | Accession number is required for a study search |
study_search_require_patient_birth_date | 0 | 0 | 0 | 0 | Patient birth date is required for a study search |
study_search_require_patientid | 0 | 0 | 0 | 0 | MRN is required for a study search |
filter_share | 1 | 0 | 1 | 0 | Can they share filters |
customfield_view | 1 | 0 | 0 | 0 | Can they view or list the customfields in the account |
customfield_edit | 1 | 0 | 0 | 0 | Can they add, edit and remove customfields from an account |
case_view | 0 | 0 | 0 | 0 | Can they view or list the cases in the account |
case_edit | 0 | 0 | 0 | 0 | Can they add, edit and remove cases from an account |
patient_view | 0 | 0 | 0 | 0 | Can they view or list the patients in the account |
patient_edit | 0 | 0 | 0 | 0 | Can they add, edit and remove patients from an account |
order_view | 0 | 0 | 0 | 0 | Can they view or list the orders in the account |
order_edit | 0 | 0 | 0 | 0 | Can they add, edit and remove orders from an account |
webhook_view | 0 | 0 | 0 | 0 | Can they view or list the webhooks in the account |
webhook_edit | 0 | 0 | 0 | 0 | Can they add, edit and remove webhooks from an account |
can_proxy_login | 0 | 0 | 0 | 0 | Can they proxy login for "owned" users in an account |
radreport_view | 0 | 0 | 0 | 0 | Can they view or list the radreports in the account |
radreport_edit | 0 | 0 | 0 | 0 | Can they add, edit and remove radreports from an account |
radreport_html_format | 0 | 0 | 0 | 0 | Can they use HTML formating in radreports |
dictionary_view | 0 | 0 | 0 | 0 | Can they view or list the dictionaries in the account |
dictionary_edit | 0 | 0 | 0 | 0 | Can they add, edit and remove dictionaries from an account |
hl7_template_view | 0 | 0 | 0 | 0 | Can they view or list the HL7 templates in the account |
hl7_template_edit | 0 | 0 | 0 | 0 | Can they add, edit and remove HL7 templates from an account |
hl7_transform_view | 0 | 0 | 0 | 0 | Can they view or list the HL7 transformations in the account |
hl7_transform_edit | 0 | 0 | 0 | 0 | Can they add, edit and remove HL7 transformations from an account |
annotation_view | 1 | 1 | 1 | 1 | Can they view annotations on a study |
annotation_view_only_own | 0 | 0 | 0 | 0 | Can they view only their annotations on a study |
annotation_edit | 1 | 1 | 1 | 0 | Can edit annotations on a study |
meeting_view | 1 | 1 | 1 | 1 | Can they view meetings for a study |
meeting_edit | 0 | 0 | 0 | 0 | Can create and edit meetings for a study |
keyimage_view | 1 | 1 | 1 | 1 | Can they view key images on a study |
keyimage_edit | 1 | 1 | 1 | 0 | Can edit key images on a study |
validate_view | 0 | 0 | 0 | 0 | Can they view or list the validation rules in the account |
validate_edit | 0 | 0 | 0 | 0 | Can they add, edit and remove validation rules from an account |
purge_view | 0 | 0 | 0 | 0 | Can they view or list the purge rules in the account |
purge_edit | 0 | 0 | 0 | 0 | Can they add, edit and remove purge rules from an account |
link_direct | 1 | 1 | 1 | 1 | Can they view and copy the direct link to the study |
link_view | 0 | 0 | 0 | 0 | Can they view or list the links in the account |
link_edit | 0 | 0 | 0 | 0 | Can they add, edit and remove links from an account |
link_edit_upload | 0 | 0 | 0 | 0 | Can they add, edit and remove study upload links from an account |
message_view | 1 | 1 | 1 | 0 | Can they view messages in the namespace |
message_edit | 1 | 0 | 1 | 0 | Can they send messages to the namespace |
user_modify_sharecode | 1 | 1 | 1 | 0 | Can they modify their personal share code |
user_modify_defaults | 1 | 1 | 1 | 0 | Can they modify their personal defaults |
user_modify_notifications | 1 | 1 | 1 | 0 | Can they modify their notifications |
user_request_access | 1 | 1 | 1 | 0 | Can they request access to an org |
channel_study | 1 | 1 | 1 | 1 | Can they subscribe to a study channel |
channel_activity | 1 | 1 | 1 | 0 | Can they subscribe to an activity channel |
viewer_config | JSON viewer configuration for the role. Optionally pass in the UUID of a user and that users viewer configuration will be copied into the role |
Jobs commands
topDescription | Get the status of async initiated job |
---|---|
URL | /jobs/{jobUuid}/status |
Parameters |
jobUuid • Job uuid initiated by storage. |
Returns |
HTTP CODE • 200 OK. Body • One of the enum job statuses: AWAITING, SCHEDULED, ENQUEUED, PROCESSING, PROCESSED, FAILED, SUCCEEDED, DELETED. |
Errors |
Job not found • If the jobUuid is not found in tasks database. |
Notes | The HTTP method must be GET |
Study commands
Description | Gets the schema of a study. |
---|---|
URL | /study/{namespace}/{studyUid}/schema?sid={sid}&phi_namespace={phi_namespace}&extended={1,0}&attachments_only={0,1} |
Parameters |
sid • The session id (Required). phi_namespace • A string, set to the UUID of the namespace where the file was attached if it was attached to a shared instance of the study outside of the original storage namespace extended • is an integer, when set to 1 will include the optional phi_version and transfer_attributes name/value pairs in the response. attachments_only • is an integer, when set to 1 will only include a list of the attachments in the study. |
Returns |
Study Schema • The study schema in a JSON format representation. |
Errors |
Permission Denied • If the sid is not valid or the user does not have permission to view the study. Conflict (409) • Returned if an inconsistency is found while recomputing the schema cache. Retry the request after a short delay. |
Notes |
|
Python Sample | + Code |
Description | Deletes a study. |
---|---|
URL | /study/{namespace}/{studyUid}?sid={sid}&keep_attachments={1,0} |
Parameters |
sid • The session id (Required). keep_attachments • An integer value of 1 or 0. |
Returns |
HTTP CODE • 202 Accepted. Body • Initiated job UUID of the asynchronous delete task, the status of the task could be fetched by /jobs/{jobUuid}/status. |
Errors |
Permission Denied • If the sid is not valid or the user does not have permission to edit the study. |
Notes |
|
Python Sample | + Code |
Description | Deletes a single image from a study (to delete multiple images, use study/delete/images/). |
---|---|
URL | /study/{namespace}/{studyUid}/image/{imageUid}?sid={sid} |
Parameters |
sid • The session id (Required). imageUid • The image version |
Returns |
HTTP CODE • 202 Accepted. |
Errors |
Permission Denied • If the sid is not valid or the user does not have study_delete_image permission for the study. Image Not Found (404) • If image doesn't exist |
Notes |
|
Python Sample | + Code |
Description | Delete multiple images from a study. |
---|---|
URL | /study/{namespace}/{studyUid}/images?sid={sid} |
Parameters |
sid • The session id (Required). request body • Comma-separated list of multiple image UIDs (Required) |
Returns |
HTTP CODE • 202 Accepted. Body • Initiated job UUID of the asynchronous delete task, the status of the task could be fetched by /jobs/{jobUuid}/status. |
Errors |
Permission Denied • If the sid is not valid or the user does not have study_delete_image permission for the study. Unprocessable Entity (422) • If request body is empty Study Not Found (404) • If study doesn't exist |
Notes |
|
Description | Gets study file count. |
---|---|
URL | /study/{namespace}/{studyUid}/count?sid={sid}&images_only={1,0}&attachments_only={1,0}&count_files={1,0} |
Parameters |
sid • The session id (Required). images_only • an integer, zero or 1, returns the number of images in the study with superseded images by way of study update not counted. attachments_only • an integer, zero or 1, returns the number of attachments which have been added to this study. count_files • if present and set to 1 will count files stored on-disk for images and/or attachments, instead of counting from (possibly cached) meta data. |
Returns |
Study count • A JSON representation of the study count for attachments and images. |
Errors |
Permission Denied • If the sid is not valid or the user does not have permission to view the study. |
Notes |
|
Python Sample | + Code |
Description | Gets study tags. |
---|---|
URL | /study/{namespace}/{studyUid}/tag?sid={sid}&phi_namespace={phi_namespace} |
Parameters |
sid • The session id (Required). phi_namespace • A string, set to the UUID of the namespace where the file was attached if it was attached to a shared instance of the study outside of the original storage namespace |
Returns |
Study PHI tags • A JSON representation of the study PHI tags. |
Errors |
Permission Denied • If the sid is not valid or the user does not have permission to view the study. |
Notes |
|
Python Sample | + Code |
Description | Gets study image attributes. |
---|---|
URL | /study/{namespace}/{studyUid}/image/{imageUid}/version/{imageVersion}/attribute?sid={sid}&phi_namespace={phi_namespace} |
Parameters |
sid • The session id (Required). phi_namespace • A string, set to the UUID of the namespace where the file was attached if it was attached to a shared instance of the study outside of the original storage namespace groups • The groups parameter will allow the client to filter tags to only those in a certain set of top-level DICOM groups. Comma-separated list of decimal values, or hex values preceeded with "0x". include_tags • Comma-separated list of top-level DICOM tags to include. Format: 00080018,00080020 Nested tags (00081111:00080550) only filter at the top level, everything is included within the sequence exclude_unnamed • A string containing "1" or "0" (default 0). When "1", private tags (with "name": "?") are not included |
Returns |
Study image attributes • A JSON representation of the image attributes. HTTP CODE • 404 (NOT FOUND) if the study does not exist. |
Errors |
Permission Denied • If the sid is not valid or the user does not have permission to view the study. |
Notes |
|
Python Sample | + Code |
Description | Gets study image PHI. |
---|---|
URL | /study/{namespace}/{studyUid}/image/{imageUid}/version/{imageVersion}/phi?sid={sid}&phi_namespace={phi_namespace} |
Parameters |
sid • The session id (Required). phi_namespace • A string, set to the UUID of the namespace where the file was attached if it was attached to a shared instance of the study outside of the original storage namespace |
Returns |
Study image PHI data • A JSON representation of the image PHI data. HTTP CODE • 404 (NOT FOUND) if the study does not exist. |
Errors |
Permission Denied • If the sid is not valid or the user does not have permission to view the study. |
Notes |
|
Python Sample | + Code |
Description | Gets study PHI data. |
---|---|
URL | /study/{namespace}/{studyUid}/phi?sid={sid}&phi_namespace={phi_namespace} |
Parameters |
sid • The session id (Required). phi_namespace • A string, set to the UUID of the namespace where the file was attached if it was attached to a shared instance of the study outside of the original storage namespace |
Returns |
Study PHI data • A JSON representation of the study PHI data. HTTP CODE • 404 (NOT FOUND) if the study does not exist. |
Errors |
Permission Denied • If the sid is not valid or the user does not have permission to view the study. |
Notes |
|
Python Sample | + Code |
Description | Gets study image thumbnail. |
---|---|
URL | /study/{namespace}/{studyUid}/image/{imageUid}/version/{imageVersion}/frame/{frameNumber}/thumbnail?sid={sid}&depth={8,16}&phi_namespace={phi_namespace} |
Parameters |
sid • The session id (Required). phi_namespace • A string, set to the UUID of the namespace where the file was attached if it was attached to a shared instance of the study outside of the original storage namespace depth • Set the bit depth of the JPEG output (8 or 16). |
Returns |
Study image thumbnail • A JPEG stream. HTTP CODE • 404 (NOT FOUND) if the study does not exist. |
Errors |
Permission Denied • If the sid is not valid or the user does not have permission to view the study. |
Notes |
|
Python Sample | + Code |
Description | Gets study diagnostic image. |
---|---|
URL | /study/{namespace}/{studyUid}/image/{imageUid}/version/{imageVersion}/frame/{frameNumber}/diagnostic?sid={sid}&phi_namespace={phi_namespace}&depth={8,16}&size=[max-edge-length|{width}x{height}] |
Parameters |
sid • The session id (Required). phi_namespace • A string, set to the UUID of the namespace where the file was attached if it was attached to a shared instance of the study outside of the original storage namespace depth • Set the bit depth of the JPEG output (8 or 16). size • Specify size of output. Omitted or 0 indicates no change; one number sets the maximum edge length in pixels; wxh sets maximum width and height |
Returns |
Study image • Gets the selected DICOM frame as a 16-bit diagnostic PNG image formatted for the browser. |
Errors |
Permission Denied • If the sid is not valid or the user does not have permission to view the study. |
Notes |
|
Python Sample | + Code |
Description | Gets study image frame. |
---|---|
URL | /study/{namespace}/{studyUid}/image/{imageUid}/version/{imageVersion}/frame/{frameNumber:[0-9][0-9]*\..*|[0-9][0-9]*}?sid={sid}&phi_namespace={phi_namespace}&depth={8,16}&quality={0.0-1.0}&size=[max-edge-length|{width}x{height}] |
Parameters |
sid • The session id (Required). phi_namespace • A string, set to the UUID of the namespace where the file was attached if it was attached to a shared instance of the study outside of the original storage namespace depth • Set the bit depth of the JPEG output (8 or 16). quality • Set the JPEG compression quality 0 < q ≤ 1.0 (default 0.9) size • Specify size of output. Omitted or 0 indicates no change; one number sets the maximum edge length in pixels; wxh sets maximum width and height |
Returns |
Study image frame • Gets the selected DICOM frame as a JPEG image. The response body is the actual JPEG byte stream. HTTP CODE • 404 (NOT FOUND) if the study does not exist. |
Errors |
Permission Denied • If the sid is not valid or the user does not have permission to view the study. |
Notes |
|
Python Sample | + Code |
Description | Gets study image frame as a TIFF. |
---|---|
URL | /study/{namespace}/{studyUid}/image/{imageUid}/version/{imageVersion}/frame/{frameNumber:[0-9]*}/tiff?sid={sid}&phi_namespace={phi_namespace}&depth={8,16}&size=[max-edge-length|{width}x{height}] |
Parameters |
sid • The session id (Required). phi_namespace • A string, set to the UUID of the namespace where the file was attached if it was attached to a shared instance of the study outside of the original storage namespace depth • Set the bit depth of the TIFF output (8 or 16). size • Specify size of output. Omitted or 0 indicates no change; one number sets the maximum edge length in pixels; wxh sets maximum width and height |
Returns |
Study image frame • Gets the selected DICOM frame as a TIFF image. The response body is the actual TIFF byte stream. HTTP CODE • 404 (NOT FOUND) if the study does not exist. |
Errors |
Permission Denied • If the sid is not valid or the user does not have permission to view the study. |
Notes |
|
Description | Gets a study encapsulated pdf file. |
---|---|
URL | /study/{namespace}/{studyUid}/image/{imageUid}/version/{imageVersion}/pdf?sid={sid} |
Parameters |
sid • The session id (Required). |
Returns |
Study encapsulated pdf • Gets the encapsulated PDF from a DICOM file. HTTP CODE • 415 (Unsupported Media Type) if there is not an encapsulated pdf file. |
Errors |
Permission Denied • If the sid is not valid or the user does not have permission to view the study. |
Notes |
|
Python Sample | + Code |
Description | Gets all DICOM attributes for an individual image |
---|---|
URL | /study/{namespace}/{studyUid}/image/{imageUid}/version/{imageVersion}/json?sid={sid}&phi_namespace={phi_namespace} |
Parameters |
sid • The session id (Required). phi_namespace • A string, set to the UUID of the namespace where the file was attached if it was attached to a shared instance of the study outside of the original storage namespace exclude_unnamed • A string containing "1" or "0" (default 0). When "1", private tags (with "name": "?") are not included all_dicom_values • A string containing "1" or "0" (default 0). When "1", all values from a multi-value DICOM tag will be returned, separated by "\". Otherwise, only the first value is returned |
Returns |
Study image attributes • Gets all DICOM attributes as a JSON object. HTTP CODE • 404 (NOT FOUND) if there image/frame does not exist. |
Errors |
Permission Denied • If the sid is not valid or the user does not have permission to view the study. |
Notes |
|
Python Sample | + Code |
Description | Gets DICOM attributes for all images in a study. |
---|---|
URL | /study/{namespace}/{studyUid}/json?sid={sid}&phi_namespace={phi_namespace}&groups={group ids}&include_tags={tags} |
Parameters |
sid • The session id (Required). phi_namespace • A string, set to the UUID of the namespace where the file was attached if it was attached to a shared instance of the study outside of the original storage namespace groups • The groups parameter will allow the client to filter tags to only those in a certain set of top-level DICOM groups. Comma-separated list of decimal values, or hex values preceeded with "0x". include_tags • Comma-separated list of top-level DICOM tags to include. Format: 00080018,00080020 Nested tags (00081111:00080550) only filter at the top level, everything is included within the sequence exclude_unnamed • A string containing "1" or "0" (default 0). When "1", private tags (with "name": "?") are not included all_dicom_values • A string containing "1" or "0" (default 0). When "1", all values from a multi-value DICOM tag will be returned, separated by "\". Otherwise, only the first value is returned series_uid • A string containing a Series Instance UID. If specified, the results will only include DICOM tags from images from the specified series |
Returns |
Study attributes • Gets all DICOM attributes for all images in a study as a JSON array of objects. HTTP CODE • 404 (NOT FOUND) if there image/frame does not exist. |
Errors |
Permission Denied • If the sid is not valid or the user does not have permission to view the study. |
Notes |
|
Python Sample | + Code |
Description | Gets the selected attachment. |
---|---|
URL | /study/{namespace}/{studyUid}/attachment/{attachmentId}/version/{version}?sid={sid}&phi_namespace={phi_namespace} |
Parameters |
sid • The session id (Required). phi_namespace • A string, set to the UUID of the namespace where the file was attached if it was attached to a shared instance of the study outside of the original storage namespace |
Returns |
Study attachment • Gets the attachment as a byte stream. HTTP CODE • 404 (NOT FOUND) if there image/frame does not exist. |
Errors |
Permission Denied • If the sid is not valid or the user does not have permission to view the study. |
Notes |
|
Python Sample | + Code |
Description | Gets the latest attachment for a study. |
---|---|
URL | /study/{namespace}/{studyUid}/attachment/{filename:latest\..*|latest}?sid={sid}&phi_namespace={phi_namespace} |
Parameters |
sid • The session id (Required). phi_namespace • A string, set to the UUID of the namespace where the file was attached if it was attached to a shared instance of the study outside of the original storage namespace |
Returns |
Study latest attachment • Gets the latest attachment as a byte stream. HTTP CODE • 404 (NOT FOUND) if there image/frame does not exist. |
Errors |
Permission Denied • If the sid is not valid or the user does not have permission to view the study. |
Notes |
|
Python Sample | + Code |
Description | Posts an attachment to a study. |
---|---|
URL | /study/{namespace}/{studyUid}/attachment?sid={sid}&phi_namespace={phi_namespace}&wrap_images={0,1}&return_html={0,1}&synchronous_wrap={0,1}&static_ids={0,1} |
Parameters |
sid • The session id (Required). phi_namespace • A string, set to the UUID of the namespace where the file was attached if it was attached to a shared instance of the study outside of the original storage namespace wrap_images • An integer of value 1 or 0. If 1, for attachments that are images, or can be rendered to an image, generate a new DICOM image in the study containing (a rendered image of) the attachment (also controlled by namespace setting auto_wrap_images) wrap_html_as_pdf • An integer of value 1 or 0. If 1, for attachments that are html, generate a new pdf and attach that (instead of the original html) synchronous_wrap • An integer of value 1 or 0. If 1, do all processing for image wrapping before returning, including Services notifications. Additionally triggers wrap_images functionality static_ids • An integer of value 1 or 0. If 1, the attachment, series and any images rendered from PDF are assigned (u)uids based on a hash of the attachment, which will be the same if the attachment is re-uploaded. The attachment is also allowed to be re-uploaded when set to 1. return_html • An integer of value 1 or 0. Return results as Content Type text/html, instead of application/json (required for certain browsers) data • the request entity must contain a single multipart/form-data element named data containing the content to be attached. |
Returns |
Study attachment attributes • A JSON representation of the attachment's attributes. HTTP CODE • 202 (ACCEPTED) if there image/frame does not exist. |
Errors |
Permission Denied • If the sid is not valid or the user does not have permission to upload a report to the study. |
Notes |
|
Python Sample | + Code |
Description | Adds a render of an attachment to a study. |
---|---|
URL | /study/{namespace}/{studyUid}/attachment/{attachmentUid}/version/{version}/image?sid={sid}& |
Parameters |
sid • The session id (Required). static_ids • An integer of value 1 or 0. If 1, series and images rendered from PDF are assigned (u)uids based on a hash of the attachment; repeated requests to render the same PDF will not result in more images. phi_namespace • A string, set to the UUID of the namespace where the file was attached if it was attached to a shared instance of the study outside of the original storage namespace |
Returns |
HTTP CODE • 202 Attachment succesfully rendered as an image and added to study. HTTP CODE • 500 (SERVER ERROR) if server error persisted. |
Errors |
Permission Denied • If the sid is not valid or the user does not have permission to upload a report to the study. |
Notes |
|
Description | Downloads a study ZIP file. |
---|---|
URL | /study/{namespace}/{studyUid}/download?sid={sid}&phi_namespace={phi_namespace}&bundle={iso,dicom,osx,win}&include_wrapped_dicoms={0,1}&series_uid={series_uid[,series_uid...]}&image_uid={image_uid[,image_uid...]} |
Parameters |
sid • The session id (Required). phi_namespace • The shared-to namespace UUID of a shared instance of a study (Optional) bundle • A string with value "dicom", "image", "iso", "osx" or "win" (Required). include_wrapped_dicoms • When "1", will also include the DICOM file of a wrapped DICOM. Default is to only include the unwrapped file. series_uid • One or more Series Instance UIDs, comma-separated. Download will only include images from these series. image_uid • One or more SOP Instance UIDs, comma-separated. Download will only include these images. stop_on_failure • If "1", will not include the viewer app if there are any errors generating the download. exclude_viewer • If "1", viewer app will not be included in the "iso", "osx", and "win" bundle. The viewer app can be retrieved separately via /download/viewer v3 • If "1", viewer app will be pro viewer, and format/content will support pro viewer. roche_directory • If "1", .dcm files will be organized into StudyDate-ClinicalTrialTimePointID/Modality/SeriesTime-SeriesDescription/ folders (instead of SER000X/ folders). flat_directory • If "1", .dcm files will be flatly named IMG0001-IMG{image count}, and not be organized into SER folder. anonymize_tags • The list of tag ids with overridden values separated by comma (,) that should be overridden. Example: anonymize_tags={{tag_id_int_1}}={{tag_value_1}},{{tag_id_int_2}}={{tag_value_2}} . To omit tag, provide special keyword that is being used in services overrides as value: __DELETE__ video_format • Format to encode video. Either "avi" or "mp4". "avi" by default. video_series_uids • One or more Series Instance UIDs, comma-separated. For bundles that include video, download will include a transcoded video for each of these series. batch_encode_cine • Batch encode cine for video. |
Returns |
Study ZIP file • Downloads a study as a ZIP file. HTTP CODE • 403 (NOT FOUND) if there image/frame does not exist. |
Errors |
Permission Denied • If the sid is not valid or the user does not have permission to download a study bundle specified by the namespace and studyUid. |
Notes |
|
Python Sample | + Code |
Description | Deletes a study attachment. |
---|---|
URL | /study/{namespace}/{studyUid}/attachment/{attachmentId}/version/{hash}?sid={sid}?phi_namespace={phi_namespace} |
Parameters |
sid • The session id (Required). phi_namespace • A string, set to the UUID of the namespace where the file was attached if it was attached to a shared instance of the study outside of the original storage namespace |
Returns |
HTTP CODE • 202 (ACCEPTED) if the attachment was deleted without errors. |
Errors |
Permission Denied • If the sid is not valid or the user does not have permission to delete a report from a study specified by the namespace and studyUid. |
Notes |
|
Python Sample | + Code |
Description | Gets a study encapsulated video. |
---|---|
URL | /study/{namespace}/{studyUid}/image/{imageUid}/version/{imageVersion}/video?sid={sid}&reencode_video={0,1} |
Parameters |
sid • The session id (Required). reencode_video • An integer of value 1 or 0. |
Returns |
Study encapsulated video • A stream of the video in an MPEG-4 format. HTTP CODE • 415 (Unsupported Media Type) if a video was not found encapsulated in the DICOM file. |
Errors |
Permission Denied • If the sid is not valid or the user does not have permission to delete a report from a study specified by the namespace and studyUid. |
Notes |
|
Python Sample | + Code |
Description | Split a study. |
---|---|
URL | /study/{namespace}/{studyUid}/split?sid={sid}&phi_namespace={namespace}&to_namespace={namespace}&series_uid={series_uid,series_uid...series_uid}&delete_series_from_original={0,1} |
Parameters |
sid • The session id (Required). phi_namespace • An optional namespace UUID to burn-in PHI overrides to split study (defaults to no overrides) to_namespace • An optional namespace UUID to create the split study (defaults to current namespace) series_uid • An optional series instance uids list delimited by comas, only specified series will be split (defaults to split all image instances) delete_series_from_original • An integer value of either 0 or 1. If 1 the series specified in the series_uid list will be deleted from the original study |
Returns |
Study UID • The new study UID. HTTP CODE • 401 (Unauthorized) if the user does not contain the proper permissions. |
Errors |
Permission Denied • If the sid is not valid or the user does not have permission to split a study. Study Not Found • If the study to be split cannot be located. |
Notes |
|
Python Sample | + Code |
Description | Merge studies. |
---|---|
URL | /study/{namespace}/{studyUid}/merge?sid={sid}&secondary_study_uid={secondary_study_uid}&delete_secondary_study={0,1} |
Parameters |
sid • The session id (Required). secondary_study_uid • A list of one or more comma-separated secondary Study UIDs to be merged into the studyUid(Required). delete_secondary_study • An integer, when set to 1 the process will check that the sid provided has the required permission to delete the secondary study. include_attachments • An integer, when set to 1 attachments from the secondary study will be merged. Does not include raw hl7, but does include pdfs generated from hl7. series_uids • A list of one or more comma-separated Series Instance UIDs, used to filter images merged from secondary study. |
Returns |
HTTP CODE • 401 (Unauthorized) if the user does not contain the proper permissions. HTTP CODE • 202 (Accepted) if the request was accepted. HTTP CODE • 500 (Internal Server Error) if the SID provided does not have the proper permission to delete the secondary study if the optional parameter delete_secondary_study is set to 1. |
Errors |
Permission Denied • If the sid is not valid or the user does not have permission to merge the two studies. |
Notes |
|
Python Sample | + Code |
Description | Produce a new study that is a copy of the old, with specified pixel regions obscured. |
---|---|
URL | /study/{namespace}/{studyUid}/anonymize |
Parameters |
sid • The session id (Required). to_namespace • The storage namespace into which the new study should be placed (default: same as original). new_study_uid * The Study Instance UID of the new study (default: randomly generated). keep_image_uids * Should SOP Instance UIDs of modified copies be same as originals? (default: false) color * HTML-formatted color (#rrggbb) of obscured regions (default: black-and-white checkerboard) |
Returns |
HTTP CODE • 401 (Unauthorized) if the user does not contain the proper permissions. HTTP CODE • 202 (Accepted) if the request was accepted. |
Errors |
Permission Denied • If the sid is not valid or the user does not have permission to read or write the original or new study. |
Notes |
|
Description | Produce a new study that is a copy of the old, cropped to specified pixel region. |
---|---|
URL | /study/{namespace}/{studyUid}/crop |
Parameters |
sid • The session id (Required). to_namespace • The storage namespace into which the new study should be placed (default: same as original). new_study_uid * The Study Instance UID of the new study (default: randomly generated). keep_image_uids * Should SOP Instance UIDs of modified copies be same as originals? 1/0 (default: 0/false) |
Returns |
HTTP CODE • 412 (Precondition failed) if phi_namespace or to_namespace is not provided. HTTP CODE • 401 (Unauthorized) if the user does not contain the proper permissions. HTTP CODE • 202 (Accepted) if the request was accepted. |
Errors |
Permission Denied • If the sid is not valid or the user does not have permission to read or write the original or new study. |
Notes |
|
Description | Clears the image and metadata cache for the indicated study. |
---|---|
URL | /study/{namespace}/{studyUid}/cache |
Parameters |
sid • The session id (Required). |
Returns |
HTTP CODE • 202 (ACCEPTED) HTTP CODE • 404 (NOT FOUND) if the study does not exist. |
Errors |
Permission Denied • If the sid is not valid. |
Notes |
|
Python Sample | + Code |
Image commands
Description | Upload image to a namespace. |
---|---|
URL | /namespace/{namespace}/image?sid={sid} |
Parameters |
sid • The session id (Required). |
Returns |
Image attributes • A JSON representation of the image's attributes. |
Errors |
Permission Denied • If the sid is not valid or the user does not have permission to upload an image from a study specified by the namespace. |
Notes |
|
Python Sample | + Code |
Description | Upload a non DICOM image. |
---|---|
URL | /namespace/{namespace}/wrap?sid={sid}&render_wrapped_pdf={0,1} |
Parameters |
sid • The session id (Required). tags • Any DICOM tags to be overwrite or added should be provided as a form-data field. file • The multipart file to be uploaded should be provided as a form-data field. render_wrapped_pdf • An integer value of either 0 or 1. |
Headers |
X-File-Size • The size (bytes) of the file to be DICOM-wrapped (required). |
Returns |
Image attributes • A JSON representation of the image's attributes. |
Errors |
Permission Denied (403) • If the sid is not valid or the user does not have permission to upload a non DICOM file from a study specified by the namespace. Precondition Failed (412) • Returned if X-File-Size header is not provided or has an invalid value. Request Entity Too Large (413) • Returned if the file to be DICOM-wrapped is larger than 2GiB (2^31 - 1 bytes). |
Notes |
|
Python Sample | + Code |
Description | Gets graphical annotations according to vendor definitions for CAD SR object. |
---|---|
URL | /study/{namespace}/{studyUid}/image/{imageUid}/version/{imageVersion}/cadsr?sid={sid} |
Parameters |
sid • The session id (Required). phi_namespace • A string, set to the UUID of the namespace where the file was attached if it was attached to a shared instance of the study outside of the original storage namespace |
Returns |
Graphical annotations • A JSON array representation of the vendor-specified graphical annotations, empty if not implemented for the vendor or generating device. HTTP CODE • 404 (NOT FOUND) if the study does not exist. |
Errors |
Permission Denied • If the sid is not valid or the user does not have permission to view the study. |
Notes |
|
Python Sample | + Code |
Description | Gets the HL7 report from services, converts to the DICOM SR and uploads to the storage. |
---|---|
URL | /study/{namespace}/{studyUid}/hl7/{hl7Uuid}/sr?sid={sid}&phi_namespace={phi_namespace} |
Parameters |
sid • The session id (Required). phi_namespace • A string, set to the UUID of the namespace where the file was attached if it was attached to a shared instance of the study outside of the original storage namespace hl7Uuid • hl7 report UUID from services to convert to DICOM SR. |
Returns |
HTTP CODE • 202 Accecpted for the upload to storage. HTTP CODE • 500 (SERVER ERROR) if hl7 report data not converted to DICOM. |
Errors |
Permission Denied • If the sid is not valid or the user does not have permission to view the study. |
Notes |
|
Description | Clones the specified study into new study with new study uid, and generates new series uid and image uids if it's requested. |
---|---|
URL | /study/{namespace}/{studyUid}/clone?sid={sid}&phi_namespace={phi_namespace}&new_image_uids={true/false}&new_series_uids={true/false} |
Parameters |
sid • The session id (Required). new_image_uids • Values: true/false, whether to generate for study new image uids. new_series_uids • Values: true/false, whether to generate for study new series uids. phi_namespace • A string, set to the UUID of the namespace where the file was attached if it was attached to a shared instance of the study outside of the original storage namespace |
Returns |
HTTP CODE • 202 Accepted task for cloning the study. HTTP CODE • 500 (SERVER ERROR) if server error persisted. |
Errors |
Permission Denied • If the sid is not valid or the user does not have permission to view the study. |
Notes |
|
Description | Generates RTSTRUCT DICOM file from the content sent by client |
---|---|
URL | /study/{namespace}/{studyUid}/rt?sid={sid}&phi_namespace={phi_namespace} |
Parameters |
sid • The session id (Required). phi_namespace • A string, set to the UUID of the namespace where the file was attached if it was attached to a shared instance of the study outside of the original storage namespace body • Body that represents fields of the RTSTRUCT DICOM, the example of json example • { "structureSetLabel": "1", "structureSetName": "1", "structureSetDescription": "1", "instanceNumber": "1", "structureSetDate": 1625486773319, "structureSetTime": 1625486773319, "referencedFrameOfReferenceList": [ { "frameOfReferenceUID": "1", "rtReferencedStudies": [ { "referencedSOPClassUID": "1", "referencedSOPInstanceUID": "1", "rtReferencedSeries": [ { "seriesInstanceUID": "series", "contourImageSequences": [ { "referencedFrameNumber": "10", "referencedSegmentNumber": "3" } ] } ] } ] } ], "structureSetROISequences": [ { "roiNumber": "1", "referencedFrameOfReferenceUID": "1", "roiName": "1", "roiDescription": "1", "roiVolume": "1", "roiGenerationAlgorithm": "MANUAL", "roiGenerationDescription": "1", "derivationCodeSequences": [ { "codeValue": "1", "codingSchemeDesignator": "1", "codingSchemeVersion": "1", "codeMeaning": "1" } ] } ], "predecessorStructureSet": [ { "referencedSOPClassUID": "sop class uid", "referencedSOPInstanceUID": "instance uid" } ], "roiContours": [ { "referencedROINumber": "12", "roiDisplayColor": "333", "contourSequences": [ { "contourNumber": "3", "attachedContours": "3", "contourGeometricType": "OPEN_PLANAR", "contourSlabThickness": "3", "contourOffsetVector": "3", "numberOfContourPoints": "3", "contourImageSequence": [ { "referencedFrameNumber": "21", "referencedSegmentNumber": "18" } ], "contourData": [ { "x": 5.6, "y": 123.9, "z": 43.2 } ] } ] } ], "rtROIObservations": [ { "observationNumber": "11", "referencedROINumber": "11", "roiObservationLabel": "11", "roiObservationDescription": "11", "rtROIInterpretedType": "EXTERNAL", "roiInterpreter": "11", "materialId": "11", "relatedROISequences": [ { "referencedROINumber": "22", "rtROIRelationship": "22" } ], "codeSequenceMacroAttributes": [ { "codeValue": "88", "codingSchemeDesignator": "88", "codingSchemeVersion": "88", "codeMeaning": "88" } ], "relatedRtRoiObservationsSequence": [ "33" ], "physicalProperties": [ { "roiPhysicalProperty": "EFFECTIVE_Z", "roiElementalCompositeSequences": [ { "roiAtomicNumber": "5", "roiAtomicMassFraction": "5", "physicalPropertyValue": "5" } ] } ] } ] } |
Returns |
Image attributes • A JSON representation of the image's attributes. |
Errors |
Permission Denied • If the sid is not valid or the user does not have permission to upload the study. |
Notes |
|
Description | Returns JSON representation of a single DICOM as defined by the DICOMWeb WADO-RS Metadata standard |
---|---|
URL | dicomweb/{namespace}/studies/{studyUid}/series/{seriesUid}/instances/{imageUid}/metadata?sid={sid}&phi_namespace={phi_namespace} |
Parameters |
sid • The session id of a user who has rights to view the associated studyUid (Required). phi_namespace • A string, set to the UUID of the namespace where the file was attached if it was attached to a shared instance of the study outside of the original storage namespace body • Empty |
Returns |
DICOM tags • A JSON representation of a DICOM according to the DICOMWeb standard, omitting any bulkdata, pixeldata, or other binary fields. |
Errors |
Permission Denied • If the sid is not valid or the user does not have permission to view the associated study. |
Notes |
|
Description | Returns JSON representation of a series of DICOM(s) as defined by the DICOMWeb WADO-RS Metadata standard |
---|---|
URL | dicomweb/{namespace}/studies/{studyUid}/series/{seriesUid}/instances/{imageUid}/metadata?sid={sid}&phi_namespace={phi_namespace} |
Parameters |
sid • The session id of a user who has rights to view the associated studyUid (Required). phi_namespace • A string, set to the UUID of the namespace where the file was attached if it was attached to a shared instance of the study outside of the original storage namespace body • Empty |
Returns |
DICOM tags • A JSON representation of a series of DICOM(s) according to the DICOMWeb standard, omitting any bulkdata, pixeldata, or other binary fields. |
Errors |
Permission Denied • If the sid is not valid or the user does not have permission to view the associated study. |
Notes |
|
Description | Returns JSON representation of an entire study of DICOMs as defined by the DICOMWeb WADO-RS Metadata standard |
---|---|
URL | dicomweb/{namespace}/studies/{studyUid}/metadata?sid={sid}&phi_namespace={phi_namespace} |
Parameters |
sid • The session id of a user who has rights to view the associated studyUid (Required). phi_namespace • A string, set to the UUID of the namespace where the file was attached if it was attached to a shared instance of the study outside of the original storage namespace body • Empty |
Returns |
DICOM tags • A JSON representation of an entire study of DICOM(s) according to the DICOMWeb standard, omitting any bulkdata, pixeldata, or other binary fields. |
Errors |
Permission Denied • If the sid is not valid or the user does not have permission to view the associated study. |
Notes |
|