v3 Services Public API

Table of contents

  1. Introduction
  2. Global information
  3. Error handling
  4. Filters
  5. Fields
  6. Pagination
  7. Sorting
  8. Bundled calls
  9. Permissions
  10. Schedules
  11. Account settings
  12. Study AI questions
  13. Namespace AI questions
  14. Session commands
  15. User commands
  16. Study commands
  17. Tag commands
  18. Annotation commands
  19. Keyimage commands
  20. Study validation commands
  21. Study DICOM data commands
  22. Radiology reports commands
  23. Custom code commands
  24. Case commands
  25. Patient commands
  26. Order commands
  27. HL7 commands
  28. Settings commands
  29. Node commands
  30. Destination commands
  31. Route commands
  32. Account commands
  33. Location commands
  34. Group commands
  35. Role commands
  36. Activity commands
  37. Audit commands
  38. Namespace commands
  39. Help commands
  40. Terminology commands
  41. Analytics commands
  42. Filter commands
  43. Custom field commands
  44. Webhook commands
  45. Purge commands
  46. Link commands
  47. Message commands
  48. Dictionary commands
  49. Report commands
  50. Meeting commands
  51. Appointment commands
  52. Training commands
  53. RSNA commands
  54. NPI commands
  55. Site commands
  56. Scanner commands
  57. Query commands
  58. QC task commands
  59. Anonymization profile commands
  60. Rule set commands
  61. Study timer rule commands

Introduction

The API is implemented as a REST like interface. A call is made to a URL using either a POST or a GET. The URL will return either a HTTP error code or a JSON data structure.

Global information

Error handling

Errors are flagged by an HTTP error code as follows:

Filter clauses

Filters can typically be applied to list commands

Fields

Pagination

If pagination is applied to the list command the following parameters control pagination:

The command will return a hash called page with the following parameters in it.

Sorting

If a list can be sorted it will support the sort_by parameter in the call. The value of the sort_by parameter is a comma delimited list of fields with the direction of ordering (ascending or descending) appended to the field(s). For example

sort_by=name-asc,date-desc,customfield-d3a6b1f8-a3af-4400-9b96-c5f1578d375d-desc

will sort the results by name in ascending order and then date in descending order.
For customfield-UUID-(asc|desc) sorts type=number as interger, type=date as date, other types as strings.

Invalid sort_by values will return the following error messages

INVALID_SORT_FIELD • The field is not valid for this object. The error_subtype will hold the field name this applies to
INVALID_SORT_ORDER • The sort order for the field is invalid. The error_subtype will hold the field name this applies to

Bundled calls

You can bundle a series of calls into a single call to the server. To do this, POST to /bundle a textual representation of a JSON array of hashes. Each hash must contain the URL key with the value the API entry point, the rest of the keys should be the parameters for the call. The server will process all the calls in order and return a JSON array of the responses in the same order. For example to get the account detail and the user's permissions for the account in a single call send

POST /bundle [
{"URL":"/account/get", "sid":"XYZ", "uuid":"ABC"},
{"URL":"/session/permissions", "sid":"XYZ", "account_id":"ABC"}
]


and you will get back an array with two hashes the containing the results of the call. If the POST is malformed the server will return an HTTP_BAD_REQUEST error code. The returned hashes have an additional HTTP_STATUS_CODE field with the result code for the request. Each call will return a hash even if it is an error hash so you can mix successful and unsuccessful calls and parse the results.

Within a bundled call you can use values from previous calls using templated values. If the value is of the form {{TOKEN}} the value will be substituted if TOKEN was returned by any of the previous calls. Here is an example of the usage

POST /bundle [
{"URL":"/session/login", "login":"a@b.com", "password":"XYZ"},
{"URL":"/study/list", "sid":"{{sid}}"},
{"URL":"/study/get", "sid":"{{sid}}", "uuid":"{{studies.[0].uuid}}"}
]


The templated values can use dot notation to recurse into the arrays and hashes in the returned data structure as per the last line on the previous example. inherit_sid flag can be passed as a query string parameter. If passed and equals to 1, then all the bundled API calls will inherit the current sid, it will be passed in the X-AmbraHealth-SID header.

Here is an example of how to run a bundled session from your desktop
  1. Create a text file called data.json with the following text in it
                [
                {"URL":"/session/login", "login":"a@b.com", "password":"XYZ"},
                {"URL":"/study/list", "sid":"{{sid}}"},
                {"URL":"/study/get", "sid":"{{sid}}", "uuid":"{{studies.[0].uuid}}"}
                ]
                
  2. Run it using curl
    curl -H "Content-Type: application/json" -X POST -d @data.json https://uat.dicomgrid.com/api/v3/bundle

Permissions

A role has the following permission flags. The default roles are Admin, User, PHR and Anonymous and have the following settings.
An additional role_id=role.UUID is returned in each permissions JSON hash.

Flag Admin
Value
User
Value
PHR
Value
Anonymous
Value
Description
account_edit 1 0 0 0 Can they add and edit the account
anonymization_edit 1 1 0 0 Can they add and edit anonymization rules in the account (account_edit is also required)
account_view 1 0 0 0 Can they view account information
account_vanity_view 1 0 0 0 Can they view or list the account_vanity settings in the account
account_vanity_edit 1 0 0 0 Can they edit and remove account_vanity settings from an account
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
account_user_invite 1 0 0 0 Can they invite users to 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
destination_search_view 0 0 0 0 Can they audit query retrieves 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
group_clone 1 0 0 0 Can they clone groups in the 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
location_clone 1 0 0 0 Can they clone locations in the 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
role_setting_edit 1 0 0 0 Can they call /role/settings to set role.settings. Note: look permission setting_.
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
route_manual_route 1 1 1 1 Can they manually route studies using the route
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
node_edit_own 0 0 0 0 Can they add, edit and remove their own nodes from an account
node_connect 1 0 0 0 Can they view and connect to public nodes
node_approve_connect 1 0 0 0 Can they approve connect to theirs public nodes
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_unlock 1 0 0 0 Can they unlock a study locked by others
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_share_npi 0 0 0 0 Can they share the study with a NPI number
↳ study_share_request 0 0 0 0 Can they share the study by a study request
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_share_email 1 0 0 0 Can they send attached reports for a study by email
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_view_only_own 0 0 0 0 Can they only view reports they attached to the study
study_timing_view 0 0 0 0 Can they view the timing log for a 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_send_status_view 1 1 1 1 Can they view study push statuses when enabled
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_status_manual_edit 1 1 1 1 Can they manually edit the status of the study if study_status_edit is enabled
study_status_tags_ignore_rules 1 0 0 0 Can they ignore behaviour of account.settings.study_status_tags_rules
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_freeze 0 0 0 0 Can they freeze or thaw the study
study_duplicate 0 0 0 0 Can they duplicate studies to another namespace
study_clone 0 0 0 0 Can they clone studies to the same namespace with new study, series and image UIDs
study_duplicate_request 0 0 0 0 Can they duplicate studies by a study requests
study_manual_route 0 0 0 0 Can they manually route a study
study_split 0 0 0 0 Can they split a study
study_merge 0 0 0 0 Can they merge studies together
study_take 0 0 0 0 Can they take a study into namespace with /study/take
study_request_edit 0 0 0 0 Can they create study requests
study_request_view 0 0 0 0 Can they view outgoing study requests
study_request_view_only_own 0 0 0 0 Can they only view their own study requests
study_request_view_inbound 0 0 0 0 Can they view incoming study requests
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.
  • F = Full permissions
  • H = Hidden field
  • O = Read only field
  • R = Required field
setting_{SETTING_NAME} 1 1 0 0 Permission for set role.setings.{SETTING_NAME} in /role/settings.
  • 1 = allowed (default)
  • 0 = disallowed
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
pathology_upload 1 0 0 0 Can they upload pathology report
filter_share 1 0 1 0 Can they share filters
filter_edit_only_own 0 0 0 0 Can they only edit their own filters
customfield_view 1 0 0 0 Can they view or list the customfields in the account for administration purposes
customfield_list 1 0 0 0 Can they view or list the customfields in the account for account introspection purposes
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_view_only_own 0 0 0 0 Can they only view or list their own cases in the account (when assigned as medical user)
case_edit 0 0 0 0 Can they add, edit and remove cases from an account
case_edit_only_own 0 0 0 0 Can they only edit and remove their own cases from an account (when assigned as medical user)
case_delete 0 0 0 0 Can they delete cases
customcode_view 0 0 0 0 Can they view or list the code in the account
customcode_edit 0 0 0 0 Can they add, edit and remove code from an account
customcode_deploy 0 0 0 0 Can they deploy code for a namespace
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
patient_merge 0 0 0 0 Can they merge patients in the 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
webhook_run 0 0 0 0 Can they manually run a webhook
can_proxy_login 0 0 0 0 Can they proxy login for "owned" users in an account. Only those owned user's accounts which have that permission will be visible for proxy user.
radreport_view 0 0 0 0 Can they view or list the radreports in the account
radreport_view_only_own 0 0 0 0 Can they view only their radreports
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 formatting 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_message_view 0 0 0 0 Can they view or list the HL7 messages in the account
hl7_message_delete 0 0 0 0 Can they delete the HL7 messages in the 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
annotation_edit_only_own 1 1 1 1 Can they only edit their 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
appointment_view 0 0 0 0 Can they view or list the appointments in the account
appointment_view_only_own 0 0 0 0 Can they view only their appointments
appointment_edit 0 0 0 0 Can they add, edit and remove appointments from an account
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
dicomdata_view 0 0 0 0 Can they view the DICOM data for a study
dicomdata_edit 0 0 0 0 Can they edit the DICOM data for a study
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 0 0 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_pin 0 0 0 0 Can they generate a one-time pin for a link
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_view_others_notifications 1 1 1 0 Can they view other user's notifications
user_modify_others_notifications 0 0 0 0 Can they modify other user's notifications
user_modify_others_email 0 0 0 0 Can they modify other user's email address
user_modify_others_pkey 0 0 0 0 Can they modify other user's public key
user_request_access 1 1 1 0 Can they request access to an org
user_edit_shared_filter 0 0 0 0 Can they edit saved searches that have been shared with them
channel_activity 1 1 1 0 Can they subscribe to an activity channel
channel_study 1 1 1 1 Can they subscribe to a job channel
viewer_config JSON viewer configuration for the role. Optionally pass in the UUID of a user and that user's viewer configuration will be copied into the role
viewer3_config JSON hash for the viewer3 configuration for the role.
ui_json JSON structure to control the application UI
namespace_question 1 0 0 0 Can they ask AI questions for a namespace
job_view 1 1 1 1 Can they view asynchronous job statuses
site_add 0 0 0 0 Can they add sites to the account
site_edit 0 0 0 0 Can they edit sites in the account
site_view 0 0 0 0 Can they view sites in the account
site_delete 0 0 0 0 Can they delete sites from the account
site_qualify 0 0 0 0 Can they qualify sites for a trial and inactivate sites
scanner_add 0 0 0 0 Can they add scanners
scanner_edit 0 0 0 0 Can they edit scanners
scanner_view 0 0 0 0 Can they view scanners
scanner_delete 0 0 0 0 Can they delete scanners
site_user_add 0 0 0 0 Can they add users to site contact lists
site_user_edit 0 0 0 0 Can they edit users in site contact lists
site_user_view 0 0 0 0 Can they view site contact lists
user_setting_set 0 0 0 0 Can they overwrite user settings for users having some role
site_user_delete 09 0 0 0 Can they delete users from site contact lists
terminology_view 1 0 0 0 Can they see the terminology administration tab
terminology_edit 1 0 0 0 Can they edit terminology records
query_add 0 0 0 0 Can they add queries owned by the namespace
query_edit 0 0 0 0 Can they edit queries owned by the namespace
query_view 0 0 0 0 Can they view queries owned by the namespace
query_view_meta 0 0 0 0 Can they view query metadata for queries owned by the namespace
query_view_only_own 1 1 1 1 Can they only view queries owned by them
query_delete 0 0 0 0 Can they delete queries owned by the namespace
query_reply 0 0 0 0 Can they reply in queries owned by the namespace
query_attachment_add 0 0 0 0 Can they add attachments to queries owned by the namespace
query_attachment_view 0 0 0 0 Can they view attachments of queries owned by the namespace
query_attachment_delete 0 0 0 0 Can they delete attachments from queries owned by the namespace
query_attachment_delete_only_own 1 1 1 1 Can they only delete query attachments added by them
qctask_add 0 0 0 0 Can they add QC tasks assigned to the namespace
qctask_edit 0 0 0 0 Can they edit QC tasks assigned to the namespace
qctask_view 0 0 0 0 Can they view QC tasks assigned to the namespace
qctask_delete 0 0 0 0 Can they delete QC tasks assigned to the namespace
qctask_prioritize 0 0 0 0 Can they change priorities of QC tasks assigned to the namespace
saml_role_edit 0 0 0 0 Can they add and edit SAML role mappings

Schedules

Objects with schedules support a JSON hash with the following fields

Account settings

Account setting control the application workflow and UI for an account. The following settings are available.
Name Type Default Un-authenticated
access
allowed
User
override
allowed
Namespace
override
allowed
Node
override
allowed
Role
override
allowed
Description
show_hl7_report_physician_alias_regexp Flag 0 0 0 0 0 0 Show the hl7_report_physician_alias_regexp option for the routing rules in the UI
update_study_source_on_notify Flag 0 0 0 0 0 0 Update the study source for every notification
allow_phr_upload Flag 0 0 0 0 0 0 Allow study upload into the PHR namespaces for users associated with this account
enable_credit_card_processor Flag 0 0 0 0 0 0 Enable credit card processing for the account
paypal_account Text 0 0 0 0 0 The paypal account email for credit card processing
request_join_on_vanity_registration Flag 0 0 0 0 0 0 Automatically submit a join request if a user registers under a vanity domain
vanity_registration_customfields Text 0 0 0 0 0 0 Comma-delimited list of customfield uuids to show on vanity registration page
login_json Text 1 0 0 0 0 JSON structure to control the login page HTML
ui_json Text 0 1 1 0 0 JSON structure to control the application UI:
  • always_show_advanced_search (boolean) • force the study list advanced search to unfurl
  • include_first_name_advanced_search (boolean) • add a first name field to the study list advanced search, append it with wildcard separator to the last name when posting to services
  • add_study_dropdown_is_button (boolean) • the study list "Add Study" dropdown becomes a button when there is only one action
  • view_study_button_action (text) • Action token to trigger when view study button is clicked
    Possible view study actions:
    • browse-study - Open with Study Viewer
    • browse-study-new-tab - Open with Study Viewer in New Tab
    • browse-study-new-window - Open with Study Viewer in New Window
    • browse-study-ambra - Open with Ambra Study Viewer
    • browse-study-ambra-new-tab - Open with Ambra Study Viewer in New Tab
    • browser-study-ambra-new-window - Open with Ambra Study Viewer in New Window
    • browse-as-related-study - Open as Related Study
    • browse-study-no-canvas - Open with Simple Viewer
    • browse-study-webgl - Open with WebGL Viewer
    • browse-key-images - View Key Images
    • browse-study-dashboard - View Study Dashboard
    • browse-study-viewer-report-split - Open Study Viewer with Reporting
  • view_study_dropdown_actions (JSON) • Array of action tokens for view study dropdown
    Possible view study actions are the same as above setting
  • default_date_format (string) • Date format to be used for patient portal
  • view_study_namespace_filter_types (array) • Show selected types of namespaces in the study list namespace dropdown. If none are selected, all types will show
    Possible options:
    • account_id
    • location_id
    • group_id
    • user_id
  • view_study_namespace_filter_types_role_id (string) • Study list namespace filter role. Namespace type filter applies for users with this role.
  • mwl_search_filters (array) • Specifies MWL Search dropdown filter options. If none are selected, all filters will show.
    Possible filter options:
    • mwl_search_filter_patient-name
    • mwl_search_filter_patient-sex
    • mwl_search_filter_dob
    • mwl_search_filter_mrn
    • mwl_search_filter_accession-number
    • mwl_search_filter_order-number
    • mwl_search_filter_order-date
  • mwl_must_match_fields (array) • MWL must match fields. User will see a confirmation modal if they're not match.
    Possible options:
    • patient_name
    • patient_sex
    • patient_birth_date
    • patientid
    • accession_number
    • study_description
    • modality
    • referring_physician
  • study_edit_reason_per_field (boolean) • display one reason field for each edited study field
  • study_oru_report_limit (number) • Only show that number of latest ORU in the Study Reports dropdown. Zero value is for no limit
  • enable_patient_search_in_order_create_form (boolean) • Enable patient search in order create form
  • enable_first_last_in_order_create_form (boolean) • Enable first/last names in order create form
  • enable-order-physicians-predefined-values (boolean) • Enable order physicians predefined values
  • order_referring_physicians (array) • list of predefined values for quick order creation
  • enable-order-descriptions-predefined-values (boolean) • Enable order descriptions predefined values
  • order_descriptions (array) • list of predefined description for quick order creation
  • enable-order-accnum-generation (boolean) • Automatically generate orders accession numbers. You also need to configure a special dictionary.
  • order-default-aetitle (string) • Orders default AE title
  • orders_req_fields (array) • Orders additional required fields. If nothing selected only standart fields are required: Patient Name, Patient ID, AETitle, Modality
    Possible options:
    • accession_number
    • patient_sex
    • patient_birth_date
    • referring_physician
    • requested_procedure_description
    • scheduled_procedure_step_start_date
    • scheduled_procedure_step_start_time
  • enable-study-reject-predefined-messages (boolean) • Enable study reject predefined messages
  • study_reject_messages (array) • list of predefined messages you can choose rejecting study in activities
  • is_utility_account (boolean) • Makes account as utility. Even if user has no permissions UI elements will be visible but disabled
  • utility_elements_blacklist (array) • ability to disable any UI element in the utility account (ex. upload buttons, tabs, etc)
  • advanced_search (array) • list of fields visible in advanced search. All fields will show if list is empty
    Possible options:
    • patient_name
    • patient_sex
    • patientid
    • patient_birth_date
    • accession_number
    • study_description
    • referring_physician
    • study_status
    • study_push_status
    • study_push_status.destination_uuid
    • date_range
    • created_range
    • star
    • thin
    • modality
    • study_uid
    • uuid
    • tags
    • customfield-UUID you can specify any custom field
  • internal_notes (string) • any notes administrator can write and save
  • study_list_send_messages (boolean) • enable sending messages from study list
  • activity_list_send_messages (boolean) • enable sending messages from activity list
  • study_messages_to_users (boolean) • Ability to select a user when sending message from the worklist or activities
  • enable_gateway_queue_status (boolean) • Show/hide gateway status
  • show_user_analytics (boolean) • Show "User Analytics" sub tab in Analytics section
  • query_retrieve_form_fields (array) • Query retrieve form fields. All fields will show if nothing is selected
    Possible options:
    • patient_name
    • patient_sex
    • patientid
    • patient_dob
    • study_uid
    • accession_number
    • referring_physician
    • modality
    • start_datetime
    • end_datetime
    • create_study
    • create_thin
  • user_setting_default-user_list_sort_study_list (string) • study list initial sort
    Possible options:
    • study_date-asc,study_time-asc
    • study_date-desc,study_time-desc
  • limit_gateway_status_queues (array) • Gateway Status Queues
    Possible options:
    • BURN
    • DOWNLOAD
    • DOWNLOADTRANSCODE
    • HL7CLIENT
    • HL7UPLOAD
    • MOVE
    • QUERYCLIENT
    • RETRIEVECLIENT
    • STORAGECOMMIT
    • UPLOAD
    • UPLOADTRANSCODE
  • remove-send-status-icon-after-days (number) • Remove Send Status icon after this amount of days. Send status icon is displayed forever if nothing specified
  • activities-default-sub-tab (string) • Activities default sub tab
    Possible options:
    • STUDY_APPROVE
    • DESTINATION_SEARCH
    • USER_INVITE
    • JOIN_REQUEST
    • STUDY_REQUEST
    • NODE_CONNECT
  • enable-patient-mrn-generation (boolean) • Automatically generate patient MRN numbers. You also need to configure speciial dictionary for this feature
  • worklist_reset_search_login (boolean) • Start user session with empty search criteria
  • separate_non_dicom_upload_form (boolean) • Separate DICOM and Non-DICOM upload forms
  • study_oru_report_limit (boolean) • Only show most recent ORU in reports popup
  • enable_orders_link (boolean) • Enable finding orders in the study list
  • uncheck_send_notification_by_default (boolean) • Uncheck "Send a notification email to user's email address" checkbox by default
  • patient_default_event_share (boolean) • Use Event Share = 1 by default when creating Patient via UI
  • show_study_actions_in_user_audit_trail (boolean) • Show study actions in User's audit trail
  • show_last_login_date_in_user_list (boolean) • Show date of last login in the user list
  • show_under_approval_reason (boolean) • Show why the study is under approval
  • study_custom_field_customization (array of objects) • Study Custom Field color customization
    Possible object fields:
    • uuid (string) • uuid of the custom field
    • color (string) • css color attribute value
    • forms (array) • array of forms that field customization applied to ("share_form", "upload_form", "edit_form", "study_list")
    • field-parts (array) • array of field parts to be painted ("label", "value", "border", "input-value")
  • require_guest_link_password (boolean) • Require password for a Guest study link
  • enable_study_list_context_menu (boolean) • Show study List Context Menu
  • study_list_context_menu (array) • List of items
    Possible options:
    • images
    • retrieve
    • edit
    • download
    • download_iso
    • download_viewer
    • export_csv
    • study_link
    • study_audit
    • reports
    • send
    • share
    • remove_share
    • change_study_stage
    • split
    • delete
  • request_study_customfields (array of uuid) • Request Study custom fields (e.g. ["e54f5da0-5287-4688-9783-11de90099b23"])
  • worklist_phi_fields_customization (array of objects) • PHI fields customization
    For example:
    [{"field":"PatientName","type":"primary"}]
                                
    Possible field values:
    • PatientName
    • StudyDescription
    • PatientSex
    • PatientBitrhDate
    • PatientId
    • Modality
    • AccessionNumber
    • ReferringPhysician
    Possible type values:
    • primary
    • secondary
  • case_days_old_colors (array of objects) • Case Days Old Color
    For example:
    [{ "days": 10, "color": "white", "background": "black" }]
                                
    Possible colors:
    • white
    • silver
    • gray
    • black
    • red
    • maroon
    • yellow
    • olive
    • lime
    • green
    • aqua
    • teal
    • blue
    • navy
    • fuchsia
    • purple
  • enable_epic_find_order (boolean) • Enable separate FHIR patient lookup button in activities DEPRECATED: this setting has no effect. Use namespace-level setting epic_patient_lookup_info instead.
  • fhir_search_filters (array) • Configure FHIR lookup search by fields. All fields available if nothing selected
    Possible options:
    • accession_number
    • patientid
    • patient_name
  • split_save_approve_activity (boolean) • Split Save and Approve button into two buttons in activities
  • hide_site_information (boolean) • Hide "Site Information" button in the location/group list
  • study_browse_reason_to_view (boolean) • Enable request of study view reason before image browse
  • move_to_after_approval (boolean) • ability to move study to another namespace after approval. 'study_move' permission required.
  • move_to_before_approval (boolean) • ability to move study activity to another namespace. 'study_move' permission required.
  • skip_push_status_types (string) • comma-separated list of destination types which are not shown when rendering `study_push_status` study field
pacs_config_customized Text 0 0 0 0 1 JSON structure for PACS. Look permission setting_{SETTING_NAME} for permission flags.
notify_attachment_sets_engine_for_thin Flag 0 0 0 0 0 0 Flag for PACS for /study/attachment/email to work for thin studies. ATTACHMENT request from storage for thin study sets engine if was empty.
baa_text Text 1 0 0 0 0 The HTML to display next to a BAA checkbox that must be accepted for registration
training_text Text 1 0 0 0 0 The HTML to display for the training manual link
faq_text Text 1 0 0 0 0 The HTML to display for the FAQ link
other_manual_text Text 1 0 0 0 0 The HTML to display for the "other" manual link
pin_auth_text Text 1 0 0 0 0 The HTML to display for a failed pin_auth for /link/session
homepage_links Text 1 0 0 0 0 A JSON list of hashes of the links to display on the home page
enable_dicom_wrapping Flag 0 0 0 1 0 0 Enable dicom wrapping support on uploading
auto_enable_dicom_wrapping Flag 0 0 0 1 0 0 Enable dicom wrapping support on uploading if no DICOM is detected
single_file_dicom_wrapping Flag 0 0 0 1 0 0 Limit DICOM wrapping on upload to a single file
disable_mobile_dicom_wrapping Flag 0 0 0 1 0 0 Disable dicom wrapping support on uploading for mobile devices
enable_multipart_uploader Flag 1 0 0 1 0 0 Enable multipart uploading
allow_drag_and_drop_in_study_uploader Flag 0 0 0 1 0 0 Allow Drag-n-Drop in the web uploader
enable_dicom_deidentification Flag 0 0 0 1 0 0 Enable the dicom de-identification tool on uploading
dicom_deidentification_at_ingress Flag 1 0 0 0 0 0 De-identify at ingress
enable_dicomdir_scan Flag 1 0 0 0 0 0 Enable dicomdir scanning on uploading
from_email_address Text 0 0 0 0 0 Use this email address as the from address for email sent from the account. This will be validated as an email address
from_email_name Text 0 0 0 0 0 Use this display name in emails for email sent from the account.
enable_v2_viewer Flag 0 0 0 0 0 0 Use the version 2 viewer for this account
enable_v3_viewer Flag 0 0 1 0 0 0 Use the version 3 proviewer for this account
auto_create_patient Flag 0 0 0 1 0 0 Auto create patients from approved studies
auto_update_patient_studies Flag 0 0 0 0 0 0 Update the patient's studies when the patient's information changes
patient_unique_email_phone Flag 0 0 0 0 0 0 Require that the patient primary phone and email address be unique
anonymize_at_ingress Flag 0 0 0 1 0 0 Should anonymization rules be applied at ingress by the uploader or gateway
limit_query_retrieve_to_input_gateway Flag 0 0 0 0 0 0 Limit the HL7 driven query retrieve to the gateway that received the HL7 message
include_mapped_custom_fields_from_storage_ns Flag 0 0 0 0 0 0 Include DICOM mapped custom fields from the storage namespace when updating the PHI in storage
include_mapped_custom_fields_from_last_share Flag 0 0 0 0 0 0 Include DICOM mapped custom fields from the last share namespace when updating the PHI in storage
update_phi_hl7 Flag 0 0 0 0 0 0 Update the PHI from ADT HL7 messages
update_phi_hl7_namespaces Text 0 0 0 0 A CSV list of PHI namespaces to limit the update_phi_hl7 feature too. e.g. f6b013b3-71be-40c6-b26c-5db6a4a2eada,4fcb78c2-ea21-4975-a318-cf5fc1bdf085. Alternatively this can be a JSON hash keyed by the PHI namespace uuid with the HL7 message subtype as the value, only messages of the subtype will be applied to the namespace e.g. {"37b607eb-083e-497f-9923-48119076f62e":"A08","b6465cd6-d39b-4012-ba44-92e4ece81144":"A34"}
update_accession_from_orm Text 0 0 0 0 Using a field in the HL7 ORM find the studies that match and update their accession number to the HL7 accession number. Configure this via a JSON hash with the following keys
  • hl7_field • The field that contains the matching accession number e.g.OBR_5_2
  • namespaces • A list of uuid of the the namespaces to search for studies in
update_phi_syngo_match Flag 0 0 0 0 0 0 Update the PHI from Syngo patient match ORM messages
upload_event_on_study_sync Flag 0 0 0 0 0 0 Fire the upload event notification when the /study/sync webhook is run
logo_action Text 0 0 0 0 0 What action to take when the logo is clicked
viewer3_config Text 0 0 0 0 0 JSON hash of the viewer3 settings
viewer_show_reports Flag 1 0 1 1 0 0 Show reports in the viewer
viewer_study_enable_cpp_transcoding Flag 0 0 0 1 0 0 Flag for /study/viewer/settings and /study/viewer3/settings. Can be set only by sysadmin.
enable_viewer_print Flag 1 0 1 0 0 0 Enable the print feature on the viewer
enable_viewer_export Flag 1 0 1 0 0 0 Enable the export feature on the viewer
viewer_diagnostic_quality Flag 0 0 1 0 0 0 Diagnostic quality viewing
viewer_diagnostic_quality_always Flag 0 0 1 0 0 0 Diagnostic quality viewing in all modes including tools
viewer_preload_diagnostic_images Flag 0 0 1 0 0 0 Preload diagnostic images in the viewer
viewer_enable_mpr Flag 0 0 1 0 0 0 Flag to enable multi planar reconstruction in the viewer
viewer_store_extra_annotation_data Number 0 0 1 0 0 0 Capture extra annotation information
viewer_default_drop_shape_width Number 0 0 1 0 0 0 Customize the default size of circle and square drop shapes
viewer_link_series Flag 0 0 1 0 0 0 Link the series
viewer_single_instance_series Flag 0 0 1 0 0 0 Flag to enable viewing each image as a series
viewer_multiframe_split_method Number 0 0 1 1 0 0 Method to use when splitting multiframes out of their original series
viewer_study_page_link_visible Flag 1 0 1 0 0 0 Should the "Go to Study Page" link display in the viewer
viewer_study_page_link_url Text 0 1 0 0 0 Optional URL for the "Go to Study Page" link in the viewer
viewer_setting_not_diagnostic Flag 0 0 1 0 0 0 Show a dialog explaining diagnostic usage when opening the viewer
viewer_show_priors_worklist_only Flag 0 0 1 0 0 0 Only priors currently in the worklist will be displayed as thumbnails in the viewer
probe_for_accelerator Flag 0 0 1 0 0 0 Have the viewer look for available accelerators
enable_viewer_toggle_annotations Flag 1 0 0 0 0 0 Enable the toggle annotations button for the viewer
viewer_default_mouse_tool Text Scroll 0 1 0 0 0 The default mouse tool in the viewer
auto_transcode Flag 0 0 0 0 0 Enable pre-caching of all transcoded images during upload
auto_transcode_modalities Text 0 0 0 0 0 Comma separated list of modalities to preemptively transcode data for
case_status_tags Text 0 0 0 0 0 Comma separated list of case status tags
case_notify_submitted Text 0 0 0 0 0 Comma separated list of email addresses to send a case_submitted email when a case is submitted. The special values user assigned_admin and assigned_medical will be replaced by the appropriate email address for the case.
case_notify_completed Text 0 0 0 0 0 Comma separated list of email addresses to send a case_completed email when a case is completed. The special values user assigned_admin and assigned_medical will be replaced by the appropriate email address for the case.
study_status_tags Text 0 0 0 0 0 Comma separated list of study status tags
study_status_tags_default Text 0 0 0 0 0 The tag from study_tatus_tags to be interpreted as default for /study/get
study_status_set_default_if_empty Flag 0 0 0 0 0 0 If set then each new study would have study_status = (study_status_tags_default || study_status_tags[0]) by default, undef otherwise
study_status_mutex_tags Text 0 0 0 0 0 Comma separated list of study status tags that lock the study to the user when set
study_status_singleton_tags Text 0 0 0 0 0 Comma separated list of study status tags that allow the user to have only one locked study in the stage
study_status_role_tags Text 0 0 0 0 0 A JSON hash. The keys are study status tags and the values are a list of the role uuids that can change to the status
study_status_tags_attributes Text 0 0 0 0 0 A JSON hash. The keys are study status tags and the values are a list of the attributes attached to the tag
study_status_tags_rules Text 0 0 0 0 0 A JSON hash where keys are current study_status and values are array of hashes like {"condition":condition-hash-or-bool,"values":["next","possible","statuses"]}, where condition-hash-or-bool is a condition in format used by customfield's show_when field for Study object: hash or [01].
Example:
{
  "first":[{ # simple next
       "condition":"1", # or {} == true
       "values":["second"]
  }],
  "second":[
      { # some condition to match
        "condition":{"-and":[
           {"-eq":[{"-field":"must_appprove"},"1"]},
           {"-eq":[{"-field":"modality"},"MG"]}
        ]},
        "values":["third"]
      },
      { # some http-request parameter value
        "condition":{"-eq":[{"-param":"some_param"},"13"]},
        "values":["third","fourth"],
      },
      { # user_account.role.name check with sql-like matching
        "condition":{"-ilike":[{"-role":"name"},"some_rol%"]},
        "values":["fifth"],
      },
      { # user_account.role.uuid check
        "condition":{"-eq":[{"-role":"id"},"cf443e65-0115-42a3-87e9-6ee2c569da86"]},
        "values":["fourth"],
      },
      { # match by customfield
        "condition":{"-eq":[{"-field":"customfield-cf443e65-0115-42a3-87e9-6ee2c569da86"},"42"]},
        "values":["first"],
      },
      { # else
        "condition":{}, # same as 1 == true
        "values":["third","fourth"]
      }
  ],
  "third":[
      { # condition
        "condition":{"-eq":[{"-field":"modality"},"MR"]},
        "values":["fourth"]
      },
      { # unmatched like slashed specsymbols against 'third'
        "condition":{"-ilike":[{"-field":"study_status"},"t\_i\%d"]},
         "values":["third"],
      },
      { # case-sensitive check fails
        "condition":{"-like":[{"-field":"study_status"},"_H%d"]},
        "values":["third"],
      },
      {   # ok, with case-insensitive check against 'third'
        "condition":{"-ilike":[{"-field":"study_status"},"_H%d"]},
        "values":["first"],
      },
      # if not matched anything before, then cant change status
  ]
};

If value is set to non-empty array and there is no role permission study_status_tags_ignore_rules, then the "values" for the first matched "condition" are applied to:
  • If study_status_tags_ignore_rules_on_set is NOT set, then /study/status/set returns error=INVALID_TAG if new status is not in this values list
  • /study/get returns intersection of study_status_tags and this values list
  • /study/status/get returns intersection of study_status_tags and this values list
study_status_tags_ignore_rules_on_set Flag 0 0 0 0 0 If it is set, the behaviour of the above setting study_status_tags_rules is ignored only in /study/status/set
study_status_timer_suspensive_tags Text 0 0 0 0 0 Comma separated list of study status tags that stop the study status timer. This setting is of lower priority than study_status_timer_starting_tags
study_status_timer_starting_tags Text 0 0 0 0 0 Comma separated list of study status tags that start the study status timer. This setting is of higher priority than study_status_timer_suspensive_tags
study_status_timer_reset_on_status_change Text 0 0 0 0 0 JSON array of ["status-from","status-to"] pairs which triggers timer reset. Example: [["first","second"],["second","fifth"]].
study_status_timer_visible_at_last_status Flag 0 0 0 0 0 0 When a study is at its final status show current timer value. Otherwise -1 will be returned
study_share_use_account_template Flag 0 0 0 0 0 0 When sharing a study from the account or attaching a new report use the account mail template instead of the destination template
study_share_email_confirm Flag 1 0 0 0 0 0 Require double entry of the share email address to confirm it
disable_thin_study_share_share_code Flag 0 0 0 1 0 0 Disables /study/share for thin study
logout_url Text 0 0 0 0 0 URL to take the user to on logout
filter_homepage_links_by_vanity Flag 0 1 0 0 0 0 This setting is responsible for filtering homepage_links inside url.
unbranded_homepage Flag 0 1 0 0 0 0 This setting shows that old unbranded homepage_links exist. Could be set only by sysadmin.
consolidate_wrapped_jpegs Flag 0 1 0 0 0 0 Consolidate JPEGS when wrapping them
enable_masshiway Flag 0 0 0 0 0 0 Enable Mass Hiway integration
default_list_view Text 0 0 0 0 0 The default list view. Accepts: namespace ids, 'USER_NAMESPACE' and 'FILTER-*' (* for a filter ID)
enable_dicom_tag_customfields Flag 0 0 0 0 0 0 Enable storage of any DICOM tag in the study customfield
patients_from_hl7 Text 0 0 0 0 0 Generate patients from HL7 ORM messages using the email address in the HL7 field specified in this setting. Use the notation specified in /hl7/transform/add e.g. PID_13_4. Optionally you can pass a JSON hash formatted as per the patients_from_hl7_adt setting
patients_from_hl7_conditions Text 0 0 0 0 0 A condition to generate patients from HL7 ORM messages. Use the notation specified for conditions in /hl7/transform/add
patients_from_hl7_adt Text 0 0 0 0 0 Generate patients from HL7 ADT messages. The value for this setting is a JSON hash that maps the Patient fields to corresponding HL7 fields. Customfields and Text::Template expressions are supported e.g. {"birth_date":"PID_7","last":"PID_5_1","email":"PID_13_4","first":"PID_5_2","mobile_phone":"PID_13_1","sex":"PID_8", "customfield-UUID":"{$PV1_35_2} to {$PV1_35_4}"}
patients_from_hl7_adt_conditions Text 0 0 0 0 0 A condition to generate patients from HL7 ADT messages. Use the notation specified for conditions in /hl7/transform/add
patients_from_hl7_siu Text 0 0 0 0 Generate patients from HL7 SIU S12 messages. The setting is formatted as per the patients_from_hl7_adt setting.
patients_from_hl7_siu_conditions Text 0 0 0 0 A condition to generate patients from HL7 SIU S12 messages. Use the notation specified for conditions in /hl7/transform/add
update_patients_from_hl7 Flag 0 0 0 0 0 0 Update patients from the hl7 messages
appointments_from_hl7_adt Text 0 0 0 0 0 Generate appointments from HL7 ADT messages. The value for this setting is a JSON hash that maps the appointment fields to corresponding HL7 fields. Customfields and Text::Template expressions are supported e.g. {"start_time":"PV1_33","end_time":"PV1_34","customfield-UUID":"{$PV1_35_2} to {$PV1_35_4}". In addition if the map has a referring_physician key a PHYSICIAN_ALIAS lookup is performed using the value to find the matching user in the account.
appointments_from_hl7_siu Text 0 0 0 0 0 Generate appointments from HL7 SIU messages. The setting is a JSON hash in the same format as for appointments_from_hl7_adt setting but with additional keys:
  • KEY • The list of fields to use for appointment identification. By default user_id, start_time and end_time are used (optional)
  • EVENTS • The list of SIU events to handle. Supported events are S12 through S17. S12 handler is enabled by default when there is no EVENTS key in the setting (optional)
users_from_hl7_mfn Text 0 0 0 0 0 Manage users from HL7 MFN messsages. The value for this setting is a JSON hash with the following fields
  • last • location of the last name in the HL7 message e.g. STF_3_1
  • first • location of the first name in the HL7 message e.g. STF_3_2
  • email • location of the email address in the HL7 message e.g. STF_10_8
  • npi • location of the NPI in the HL7 message e.g. PRA_6_1
  • npi_to_alias • flag indicating that the NPI should be mapped to the account_alias field
  • append_npi_to_last • flag indicating that the NPI should be appended with a ^ to the users last name
  • role_id • UUID of the role to add the users to the account as
orders_from_hl7 Flag 0 0 0 0 0 0 Generate orders from HL7 ORM messages
update_order_status_from_hl7 Flag 0 0 0 0 0 0 Update orders from HL7 ORM messages. orders_from_hl7 is also required
orders_from_hl7_adt Flag 0 0 0 0 0 0 Generate orders from HL7 ADT messages
reload_hl7_customfields_on_phi_update Flag 0 0 0 0 0 Re-load custom fields when study is edited
allow_multiple_use_of_orders Flag 0 0 0 0 0 0 Allow an order to be applied to multiple studies
link_first_study_only Flag 0 0 0 0 0 0 When using the filter feature in the /link/* API return only the first study created if multiple studies match the filter
enable_order_lookup_in_approval Flag 0 0 0 0 0 0 Enable look of HL7 orders to override PHI in the approval process
study_push_status Flag 0 0 0 0 0 0 Enable tracking and display of the study push status for the account
show_study_copy_push_status Flag 0 0 0 0 0 0 Enable display of the study push status for the account when they push to a destination node in a different namespace
show_study_same_uid_push_status Flag 0 0 0 0 0 0 Enable display of the study push status from all study versions with the same UID in the account
reverse_patient_name Flag 0 0 0 1 0 0 Define patient name as last^first instead of first^last
enable_click_to_filter Flag 0 0 0 0 0 0 Enable the click to filter feature in the UI
customfields_last_on_search Flag 0 0 0 0 0 0 Show the customfields last on the study search dialog
auto_wrap_images Flag 0 0 0 1 0 0 Auto wrap the images in storage
reencode_dicom_mp4 Flag 0 0 0 0 0 0 Re-encode MP4 DICOM
render_wrapped_pdf Flag 0 0 0 0 0 0 Convert PDF to viewer format
render_wrapped_avi Flag 0 0 0 0 0 0 Convert AVI to viewer format
render_wrapped_video Flag 0 0 0 0 0 0 Convert video to viewer format
render_wrapped_docx Flag 0 0 0 0 0 0 Convert *.docx files to viewer format
sr_render_css Text 0 0 0 0 0 CSS for SR rendering>
upload_one_study Flag 0 0 0 0 0 0 Only allow one study to be selected and uploaded
send_oru_instead_of_orm Flag 0 0 0 0 0 0 Send the study ORU with an embedded link instead of the ORM for the destination_hl7_orm routing action and the /study/send/hl7 action
radreport_branding_from_phi_namespace Flag 0 0 0 0 0 0 Get the radreport branding from the PHI namespace instead of the storage namespace
viewer_anon_annotations_clear Flag 0 0 0 0 0 0 Clear out the annotations created by an anonymous viewer
viewer_enable_tap_navigation Flag 0 0 0 0 0 0 Enable tap to scroll on the viewer
viewer_hide_thumbnails Flag 0 0 1 0 0 0 Hide the viewer thumbnails by default
viewer_hide_thumbnails_datetime Flag 0 0 1 0 0 0 Hide the viewer datetime on the thumbnails by default
viewer_hide_ruler Flag 0 0 1 0 0 0 Hide the viewer annotation ruler
viewer_hide_active_measurement_info Flag 0 0 1 0 0 0 Hide the viewer thumbnails by default
viewer_show_std_dev Flag 0 0 0 0 0 0 Show the standard deviation calculation
other_ingress_tags Text 0 0 1 0 0 A JSON list of DICOM tags to be used for the OTHER_INGRESS_TAGS anonymization metafield
use_other_ingress_tags_server_side Flag 0 0 0 1 0 0 Use the other ingress tags for server side anonymization as well as client side anonymization
login_location Text 0 0 0 0 0 A JSON hash of location names and session_expire values for the account
sso_share_phr_workflow Flag 0 0 0 0 0 0 Enable the PHR sharing workflow of the account
sso_share_phr_workflow_options Text 0 0 0 0 0 JSON hash to configure the SSO PHR sharing workflow. The hash can contain the following keys
  • create_patient - flag to create a patient record
  • search_for_thins - A JSON array of the destination uuid(s) to search using the create_thin and copy_to the users namespace parameters
  • search_for_studies - A JSON array of the destination uuid(s) to search using the create_study and copy_to the users namespace parameters
  • create_study_order - The found studies will be created in this order. The key follows the Sorting specification, fields reported by /node/found (including result_fields tags) can be used.
  • accession_number - Specify the name of the assertion attribute to add the accession number to the study search
  • blocked_emails - A JSON array of email addresses to block from this workflow. Use this to block system assigned dummy email addresses that would result in multiple patients accessing others patients PHI
  • source_namespace - The uuid of the namespace to share the studies from if the user is not a patient. If the user is a patient the entire account is searched for studies.
  • skip_patient_search - Flag to force the use of the source_namespace if the user is a patient.
  • force_reshare - Flag to force a reshare of the studies. This is useful for picking up changed study information.
sso_second_opinion_workflow Text 0 0 0 0 0 JSON hash to configure the SSO second opinion workflow. The hash must contain a key called namespace_id with the value the UUID of the second opinion namespace. An optional key called data_map contains a hash of field names and the SAML attribute to lookup for the field name, this information will be passed to the UI to populate the second opinion form. e.g. {"data_map":{"customfield-83873415-38ab-4100-9a83-235664771cd3":"validated","date_of_birth":"dob"},"namespace_id":"2433468e-96e5-452d-b1e1-b91551425dd8"}
add_oru_report_to_study Flag 0 0 0 0 0 0 Add the report for ORU HL7 messages to the study if the account has an hl7_template
create_thin_study_from_oru Flag 0 0 0 0 0 0 Create a thin study from the ORU if the ORU does not match any existing studies
create_thin_study_from_orm Flag 0 0 0 0 0 0 Create a thin study from the ORM if the ORM does not match any existing studies
create_thin_study_from_oru_study_uid Text 0 0 0 0 0 Get the study uid for the create_thin_study_from_oru or create_thin_study_from_orm feature from this hl7 field .e.g. OBX_5_1
create_thin_study_from_hl7_data_map Text 0 0 0 0 0 A JSON hash that has field names for the /study/add command as the keys and the values are the HL7 field specification to get the value from e.g. {"referring_physician":"OBX_5_1"}. This map will be applied to thin studies created via the create_thin_study_from_oru or create_thin_study_from_orm settings to futher populate the thin study with values from the HL7
accession_number_for_study_uid Flag 0 0 0 0 0 0 Allow the study_uid to be set to the accession number when a study is added and then update with the real study_uid on study acquisition
ignore_blank_accession_number Flag 0 0 0 0 0 0 Ignore a blank or empty accession number from storage
study_stat_filter Text 0 0 0 0 0 A JSON array to specify the "stat" studies filter for the account. The first element is a customfield UUID and the second element is the "stat" value. This condition is evaluated on each study modification to set it's stat_filter flag.
DEPRECATED. Use type=calculated customfield with name=stat_filter to set calculate rules. See /customfield/add for details.
refresh_data_on_reshare Flag 0 0 0 0 0 0 Refresh the integration key and customfields on a re-share of a study
force_reload_load_dicom_tag Flag 0 0 0 0 0 0 Force a reload of the load_dicom_tag customfields from the DICOM for all downstream versions of a study on a new notify
study_status_timer Flag 0 0 0 0 0 0 Enable the study status timer feature
max_link_studies Text 100 0 0 0 0 0 Maximum number of studies allowed in an anonymous link or link integration
update_study_status_in_all_versions Flag 0 0 0 0 0 0 Update the study status in all versions of the study
athena_subscribe_orders Flag 0 0 0 0 0 0 Subscribe to orders from Athena healthcare. In addition to this switch the account needs the following named customfields created and populated.
  • athena_client_id • The Athena client id
  • athena_site • The Athena instance to contact either 'prod' or 'preview'
  • athena_mwl_modality • The modality type the MWL order will be created for
  • athena_mwl_ae_title • The ae title of the modality the MWL order will be created for
  • athena_mwl_lookup • An optional field that contains a JSON list of hashes that can override the modality and ae_title values. The hash(es) have the following keys. The list is processed in order and the first match is applied to the order. e.g. '[{"ae_title":"abc","regexp":"/chest/","modality":"CT"}]'
    • regexp • A regular expression to match against the requested procedure description returned from Athena
    • modality • The modality for the MWL order
    • ae_title • The ae_title for the MWL order
  • Optionally the Athena orders will be turned into hl7 messages rather than orders if the following three account named customfields are populated with values
    • athena_hl7_template • A field that contains a Text::Template that will be run against the retrieved order and the resultant hl7 sent to /hl7/add
    • athena_hl7_node_uuid • A field that contains the uuid of the node that will be used for the /hl7/add call
    • athena_hl7_node_serial_no • A field that contains the serial_no of the node that will be used for the /hl7/add call
athena_unsolicited_namespace Text 0 0 0 0 0 The UUID of the namespace that will invoke the Athena unsolicited orders workflow. This extends the /study/find/order API to search for the patient in Athena for studies in the namespace. The patient_name for the search must have both a first and last name and the study birth date must match the birth date in Athena. It has the same customfield requirements as the athena_subscribe_orders setting.
athena_orders_filter Text 0 0 0 0 0 A JSON hash of order field names and the regular expression it must match to be processed as an order .e.g. {"description":"/XRAY/"}
allow_user_password_for_account_login Flag 0 0 0 0 0 0 Authenticate against both the account_password and user password when logging in using an account_alias
welcome_password_reset_token_ttl Number 0 0 0 0 0 0 Reset tokens generated for welcome messages are valid for so many seconds
ip_whitelist Text 0 1 0 0 1 Restrict logins to the specified network or IP address e.g. 195.114.80/24,38.32.26.106/32 A CSV list can be used to specify multiple networks. This is only applied to users who solely belong to the account
link_external_whitelist Text 0 0 0 0 0 Restrict external links access to the specified network or IP address. Further documentations is in the External links page.
load_ack_as_hl7 Flag 0 0 0 0 0 0 Load the ACK from a delivered study HL7 message back into the system as an incoming HL7 message
add_on_invite Flag 0 0 0 0 0 0 Modify the /user/invite behavior to automatically add the user to the account if they are already on the system
invite_ttl Number 0 0 0 0 0 0 Account user invites are valid for so many seconds
duplicate_study_check Flag 0 0 0 0 0 0 Check for a duplicate study on upload
disable_duplicate_study_upload Flag 0 0 0 1 0 0 Disable upload of a duplicate study by uid across account
must_approve_duplicate_study_uid Flag 0 0 0 1 0 0 Require approval of a study if the same study_uid already exists in the namespace
must_approve_on_update_if_duplicate_study_exists Flag 0 0 0 1 0 0 Require approval on each update of a study if the same study_uid already exists in the namespace
study_field_validate Text 0 0 1 0 0 JSON hash {"$field":{"validate":"REGEX","hint":"STR","validate_error":"STR"},...} similar to /customfield/add's options.{validate,hint,validate_error}. Regexp is matched for /study/approve and /study/set if study is approved or field is not empty. Validation is checked only for provided keys in hash. Each STR should be non-empty string.
study_set_unapproved_allow_bypass_required_fields Flag 0 0 0 0 0 0 Enable partial_save for /study/set to bypass empty required customfields.
force_new_study_on_upload Flag 0 0 0 1 0 0 On upload create a new UID for the study if it already exists in the namespace
save_original_to_pre_anon_cf Flag 0 0 0 1 0 0 For client side anonymization save the original values to any pre_anon_* customfields
add_patientid_to_hl7_query_retrieve Flag 0 0 0 0 1 0 Add the MRN to the query retrieve triggered via a HL7 message
max_match_study_hl7 Number 100 0 0 0 0 0 Maximum number of studies to match against an HL7 message
include_orm_in_study_find_order Flag 1 0 0 0 0 0 Include ORM messages when search for orders in /study/find/order
include_adt_in_study_find_order Flag 0 0 0 0 0 0 Include ADT messages when search for orders in /study/find/order
include_only_latest_adt_in_study_find_order Flag 0 0 0 0 0 0 Include just one ADT message (the most recent) when searching for orders in /study/find/order
include_only_latest_order_when_searching_by_accession_in_study_find_order Flag 0 0 0 0 0 0 Include just one order (the most recent) when searching for orders by accession number in /study/find/order
include_only_latest_order_per_accesion_number_when_searching_by_mrn_in_study_find_order Flag 0 0 0 0 0 0 Include one order (the most recent) per accession number when searching for orders by MRN in /study/find/order
include_only_latest_order_per_accesion_number_when_searching_by_patient_name_in_study_find_order Flag 0 0 0 0 0 0 Include one order (the most recent) per accession number when searching for orders by patient name in /study/find/order
study_find_order_latest_in_progress Flag 0 0 0 0 0 0 Include only orders with status=IN_PROGRESS(IP,SC) for ORM/ADT in /study/find/order. This filter is applied before include_only_latest*
include_manual_orders_in_study_find_order Flag 0 0 0 0 0 0 Include orders created in Ambra through the API when search for orders in /study/find/order
use_namespace_name_on_upload_request Flag 0 0 0 0 0 0 Use the upload namespace name instead of the requestors name and email for upload requests
confirm_before_upload Flag 0 0 0 0 0 0 Require the user confirm that they are authorized to upload the study
study_status_timer_attributes Text 0 0 0 0 0 The JSON for color coding studies based on a timer
enable_patient_portal Flag 0 0 0 0 0 0 Enable the patient portal feature
expose_patient_portal Flag 0 0 0 0 0 0 Make a patient portal publicly visible
patient_portal_options Text 0 0 0 0 0 JSON hash to configure native patient portal options. An optional key called source_namespace contains a namespace UUID (or an array of namespace UUIDs), this namespace will be searched for studies to share with a patient, other account namespaces will be ignored.
patient_portal_limit_hl7 Number 0 1 0 0 0 0 The number of ORU reports visible in the patient portal
require_mrn_for_patient_portal Flag 0 1 0 0 0 0 Require a MRN when searching for patients in the portal
eshare_on_patient_portal_login Flag 0 0 0 0 0 0 Unshare all studies and then share patient's studies in the portal on a patient login
enable_thin_retrieve_in_patient_portal Flag 0 0 0 0 0 0 Allow retrieving of thin studies in the patient portal
ignore_mrn_on_thin_retrieve Flag 0 0 0 0 0 0 Ignore MRN on thin retrieve
allow_portal_pin_to_dup_addresses Flag 0 0 0 0 0 0 Allow the patient portal pin to be send to duplicate patient emails or phone numbers
hide_patient_portal_email_regex Text 0 0 0 0 0 A regular expression to hide matching email addresses from the patient portal access screen
use_link_on_patient_portal_share Text 0 0 0 0 0 The uuid of a link that will be duplicated and emailed when a patient shares a study via email. The link must be a STUDY_VIEW link and have a study_id which will be replaced by the shared study id
suppress_new_patient_share_event Flag 0 0 0 0 0 0 Suppress the emails for the share of existing studies when a new patient is created
suppress_all_patient_emails Flag 0 0 0 0 0 0 Suppress all emails to the patients
suppress_new_report_event_in_phr_for_patients Flag 0 0 0 0 0 0 Make sure a patient will not get twin new_report emails as a patient and as a PHR namespace user
study_search_modifiers Text 0 0 0 0 0 The JSON hash to change to default study searching behavior e.g. {"patientid":"equals"} will make the MRN an exact match, {"accession_number":"like"} will make accession number a partial match
study_edit_reason Flag 0 0 0 0 0 0 Require a reason for a PHI update
radreport_sign Text 0 0 0 0 0 A JSON hash holding the information for signing a radreport
passwdqc Text 0 0 0 0 0 The specification string for a passwdqc check against proposed passwords for account users
passwd_regexp Text 0 0 0 0 0 A JSON list of regular expressions to match against the proposed password for account users. All regular expression must match to allow the password to be used.
include_patientid_in_hl7_match Flag 1 0 0 0 1 0 Match HL7 message to studies by both the accession number and the MRN (patientid - (0010,0020))
include_patientid_other_in_hl7_match Flag 0 0 0 0 1 0 Match HL7 message to studies by both the accession number and the patientid_other value (0010,1000)
mwl_search_is_cfind Flag 0 0 0 0 0 0 Use a cfind instead of a MWL query for the MWL searching workflow
mwl_search_is_cfind_all_rows Flag 0 0 0 0 0 0 Return all rows instead of 1 if mwl_search_is_cfind is set
mwl_filter_if_matching_study Flag 0 0 0 0 0 0 Exclude orders with a matching study for /order/sps/find MWL queries
force_download_of_attachments Flag 0 0 0 0 0 0 All attachments must be downloaded before they can be opened
show_radreport_in_all_namespaces Flag 0 0 0 0 0 0 Show radreports on all versions of the study
enable_radreport_attestation Flag 0 0 0 0 0 0 Require electronic signing of radreport
enable_radreport_lock_reading Flag 0 0 0 0 0 0 Enables mechanism "only one report in a study can be edited at the moment". Look /study/lock?type=RADREPORT
csrf_cookie_samesite_none Flag 0 0 0 0 0 0 Enable SameSite=None attribute for CSRF cookies set in /link/redirect
disable_csrf_on_links Flag 0 0 0 0 0 0 Disable the CSRF cookie for /link/redirect
disable_link_session Flag 0 0 0 0 0 0 Disable the /link/session API call for the account
report_view_phr_delay Text 0 0 0 0 0 A setting to delay a study report exposure in patient's portal. A delay can be expressed in a number of minutes to delay or a number of work hours with suffix 'wh', possible setting's formats:
  • A delay specified directly as a scalar value
  • A JSON object with delays by modality. Object fields are modalities or a special value ALL for default. Values are delays.
  • A delay table. It is a JSON list of conditional delays (JSON objects) with two fields: delay specifies a delay, condition is a condition in format used by customfield's show_when field. Possible condition's parameter types are 'field' and 'customfield'. Conditions are checked sequentially, first match gives the delay.
account_time_zone Text 0 0 0 0 0 0 A timezone for the account. Used for date and time calculations.
work_hour_matrix Text 0 0 0 0 0 0 A JSON list of lists which makes up a matrix 7 by 24 of work hours for the account. 1s mark work hours, 0s mark non-work hours, tailing zeroes are optional. The first index is for day of week (0 means monday), the second is for day hour (0 means 00:00-01:00am).
study_view_phr_delay Text 0 0 0 0 0 A setting to delay studies visibility in patient's portal. See format description for report_view_phr_delay
link_defaults Text 0 0 0 1 0 A JSON hash of the default link add values for the UI
upload_settings Text 0 0 0 1 0 A JSON hash of the upload settings
hl7_fetch_filter Text 0 0 0 0 0 A transform condition expression (see /transform/add for format) to match against the HL7 message. Only fire a query retrieve if the message matches the condition
account_hl7_map Text 0 0 0 0 0 A JSON hash mapping the value in MSH_3 or MSH_5 to another account uuid. The hash key is an HL7 message field, the value can be an comma separated list of account uuids, a hash with account_id and node_id(optional) keys or a list of hashes. The HL7 message will be attached to the mapped account and a node will be replaced with the given one. The special hash key _HL7_FIELD_ can be used to set a different place to get the value .e.g. MSH_6_1 This can only be set by a sysadmin or support user
duplicate_account_hl7_map Text 0 0 0 0 0 A JSON hash in the same format as the account_hl7_map setting. The HL7 message will be duplicated to all the mapped accounts with nodes replaced by the corresponding ones. This can only be set by a sysadmin or support user
report_csv_download_concat Flag 0 0 0 0 0 0 Export all CSV rad reports into one CSV file
update_all_studies Text 0 0 0 0 0 JSON array of the field names that should be synced across all copies of the study in the account e.g. ["patient_name","patientid","customfield-UUID"]
batch_encode_cine Flag 0 0 0 0 0 0 Use slower batched rendering for producing cine files from series; use only if older OS/browser combination prevents viewing regular cine files
encapsulate_wrapped_pdf Flag 0 0 0 0 0 0 Storage setting for DICOM encapsulated PDF's
compress_audio_recordings Flag 0 0 0 0 0 0 Compress audio recordings in the browser before sending them to storage
upload_hold Number 0 0 0 0 0 0 Upload hold time in storage. This is used if the namespace doesn't have an explicit hold time
namespace_child_study_defaults Flag 0 0 0 0 0 0 Propagate study default values for parent child namespace setups
compress_audio_recordings Flag 0 0 0 0 0 0 Compress audio in the browser before uploading
study_search_require_regexp Text 0 0 0 0 0 A JSON hash of regexp to apply to the study_search_require_* field checks. The keys are the field names and the values are the regexp e.g. {"patient_name":"/^\\\w{3}/"}
query_retrieve_require_regexp Text 0 0 0 0 0 A JSON hash of regexp to apply to the /destination/search and /destination/search/mwl calls. The keys are the field names and the values are the regexp e.g. {"patient_name":"/^\\\w{3}/"}
query_retrieve_require_regexp_mwl Text 0 0 0 0 0 A JSON hash of regexp to apply to the /destination/search/mwl calls instead of the query_retrieve_require_regexp. The keys are the field names and the values are the regexp e.g. {"patient_name":"/^\\\w{3}/"}
query_retrieve_auto_reject_period_in_days Number 0 0 0 0 0 Number of days after which a /destination/search result is automatically removed from the activity list. Defaults to 0 meaning that search results are not removed automatically.
query_retrieve_require_criteria_min Number 0 0 0 0 0 Minimal number of search criteria for /destination/search Default is 1
enable_drchrono Flag 0 0 0 0 0 0 Enable the drchrono integration
exclude_load_dicom_tag Flag 1 0 0 0 0 0 Do not sync customfields with the load_dicom_tag flag enabled back to the storage DICOM
auto_fill_patient_in_activity Flag 1 0 0 0 0 0 Auto fill the patient name when using the MWL or Find Orders features in the Activities queue
report_from_hl7 Text 0 0 0 1 0 A JSON hash that specifies the message type as the key and directions to extract the report as the value. The base64 encoded report will be extracted from message and be linked with the associated studies. SR and attachment types of reports are supported. Possible values for the JSON hash are the hl7 field/subfield as string (for pdf attachment reports only) or an object with the following keys (both report types are supported):
  • report_type • SR - upload a DICOM SR, storage_rendered - make the storage render the Hl7 as PDF and attach the file to the study, attachment (by default) - Extract an embedded Base64-encoded report and upload it to the study, requires the field key additionally (SR|attachment|storage_rendered)
  • field • Hl7 field/subfield to extract for the attachment report type. E.g. OBX-12_5_5
  • attach_in_node_namespace_only • Flag to attach reports to the original version of the study only
Examples: {"ORU":"OBX-12_5_5"}, {"ORU":{"report_type":"SR"}}, {"ORU":{"report_type":"attachment", "field": "OBX-12_5_5"}}
hl7_use_attachment_file_name Text 0 0 0 0 1 0 A string which indicates the field and subfield of the HL7 OBX segment with an attachment that defines the attachment file name; e.g. OBX_3_3 would indicated the third field and third subfield. If a file name is not found in the indicated field, a default file name is used instead: hl7_report_${id}.pdf. The file name is truncated to 128 characters (the .pdf extension not counted). If the setting is undefined or a zero length string we don't look for a filename and just use the default naming template (this is the default for this setting).
upload_select_none Flag 0 0 0 0 0 0 Require selecting studies to upload when multiple studies are added
link_external_referer Text 0 0 0 0 0 Limit access to /link/external to the specific referer. The referer can be a regexp to match multiple referers
link_external_whitelist Text 0 0 0 0 0 IP address whitelist to apply to the /link/external call. Further documentation here
link_external_whitelist_all_links Flag 0 0 0 0 0 0 Flag to apply the link_external_whitelist setting to all links
link_external_study_list_path Text 0 0 0 0 0 The URL (the path part of it) to redirect /link/external calls to for links of STUDY_LIST type. E.g. '/worklist'
link_sticky_anon_users Flag 0 0 0 0 0 0 Stick anonymous users to links via the email_address so they can edit annotations etc. over multiple sessions
audit_failed_logins Number 0 0 0 0 0 0 The maximum number of failed logins against the account vanity(s) to hold for up to 30 days. The information on the failed logins is available via the /audit/failedlogins end point.
storage_delete_delay Number 0 0 0 0 0 0 The number of minutes to delay deleting a study from storage. During the delay the study can be re-injected into the system via the /study/revive call
radreport_attestation_signature Flag 0 0 0 0 0 0 Attach the users signature to the radreport
hide_help_tool Flag 0 1 0 0 0 0 Hide the help icon from the UI
mwl_sending_facility_filter Text 0 0 0 1 0 A JSON list of sending_facility values to limit node queries for /order/sps/find too.
mwl_filter_expression Text 0 0 0 1 0 A filter expression to limit node queries for /order/sps/find e.g. filter.order_sps.modality.equals=MR
siu_push Text 0 0 0 0 0 A JSON hash to configure a SIU push workflow. A SIU^12 message will schedule the patient studies in the destination namespace to be pushed to the destination. A SIU^15 message will cancel the scheduled push. The keys and values in the hash are as follows:
  • transform • A transform condition expression (see /transform/add for format) to match against the HL7 SIU messages. If the message matches the workflow is triggered.
  • mrn • The HL7 field that holds the MRN(s) to push studies for e.g. PID_4
  • procedure_date • The HL7 field that holds the scheduled procedure date and time e.g. SCH_11_4
  • minutes_before • The number of minute before the procedure date the siu_push workflow should be run
  • push_after_minutes_before • Push the study even if minutes_before is in the past
  • destination_field • The HL7 field that holds the destination value e.g. PV1_3_1
  • destination_map • A JSON hash that maps the value from the destination_field to a destination UUID e.g. {"ABC": "DESTINATION_UUID"}
  • cancel_field • The HL7 field that holds the value to link a S15 cancel message with the S12 appointment message e.g. SCH_2
  • destination_options • A JSON hash that defines options per destination. The keys are destination UUIDs, values are JSON objects with the following keys:
    • number_of_studies • The maximum number of studies to push, 10 by default.
    • start_datetime • The DICOM date or datetime to limit the studies list by study date. Substitution tokens are supported. Account time zone is considered.
    • end_datetime • The DICOM date or datetime to limit the studies list by study date. Substitution tokens are supported. Account time zone is considered.
    • namespaces • A comma separated list of namespace UUIDs to push studies from. Only a destination's namespace is considered by default. Studies from namespaces other than the destination's one are shared to the destination's namespace prior to push.
mrn_qr Text 0 0 0 0 0 A JSON hash to configure a MRN query retrieve and PHI fixup workflow. The keys and values in the hash are as follows:
  • transform • A transform condition expression (see /transform/add for format) to match against the HL7 ORM or SIU messages. If the message matches a query retrieve is triggered against the destinations
  • mrn • The HL7 field that holds the MRN(s) to query on e.g. PID_4
  • destination • A JSON list of the destination uuid(s) to query for studies
  • match • A JSON hash of the study fields and HL7 fields that must match in addition to the MRN e.g. {"patient_birth_date":"PID_7"}
  • fields • A JSON hash of the study fields and HL7 fields to update the matched study with e.g. {"patientid":"PID_3"}
  • webhook_match • The uuid of the webhook to call if the study and ORM match. The type of the webhook needs to be 'MANUAL'.
  • webhook_no_match • The uuid of the webhook to call if the study and ORM do not match. The type of the webhook needs to be 'MANUAL'.
  • only_once • Set this flag to 1 if you want this run only on the first order
  • start_datetime • DICOM start date time stamp to bound the search (optional)
  • end_datetime • DICOM end date time stamp to bound the search (optional)
  • squelch • The number of minutes to squelch repeated queries for the patient and destination. (optional)
  • delay • The number of seconds to delay the fetch for. (optional)
  • siu • A JSON hash if appointment SIU messages should be included in the workflow. The following keys and values are supported:
    • procedure_date • The HL7 field that holds the scheduled procedure date and time e.g. SCH_11_4
    • minutes_before • The number of minute before the procedure date the query retrieve workflow should be run
    • cancel_field • The HL7 field that holds the value to link a S15 cancel message with the S12 appointment message e.g. SCH_2
A JSON list of hash can also be passed and the HL7 message will run against the first matching hash
search_qr Text 0 0 0 0 0 A JSON hash to configure a search, retrieve and PHI fixup workflow. The keys and values in the hash are as follows:
  • transform • A transform condition expression (see /transform/add for format) to match against the HL7 ORU messages. If the message matches a query retrieve is triggered against the destinations
  • search • A JSON hash of the /destination/search fields and associated HL7 field to get the search data from e.g. {"accession_number":"OBR_3","patient_birth_date":"PID_7","patient_sex":"PID_8"}
  • destination • A JSON list of the destination uuid(s) to query for studies
  • fields • A JSON hash of the study fields and HL7 fields to update the retrieved study(s) with e.g. {"patientid":"PID_3"}
  • max • The maximum number of studies to retrieve. If the search returns more than the max the retrieve is not run. This defaults to 1.
  • rerun • Flag to re-run the search and retrieve even if a study is already associated with the message
hl7_delay_route Text 0 0 0 0 0 A JSON hash to configure a routing delay for an HL7 message. The keys and values in the hash are as follows:
  • transform • A transform condition expression (see /transform/add for format) to match against the HL7 message. If the message matches the date is extracted from the HL7 message and the route is delayed.
  • procedure_date • The HL7 field that holds the procedure date and time e.g. OBR_7
  • minutes_before • The number of minute before the procedure date the route should be run
saml_sync_on_create_only Flag 0 1 0 0 0 0 Sync up the SAML roles and assignments when the user is provisioned. Do not sync up on subsequent logins and the SAML role attribute is not required
saml_sync_across_vendor_accounts Flag 0 1 0 0 0 0 Sync up the SAML roles and assignments for all accounts with the same vendor tag as this account has
saml_strict_filters Flag 0 0 0 0 0 0 Throw errors as soon as possible when a non-existent study is passed via study_id or study_uid patameters in the SAML login process.
external_viewer Text 0 0 0 0 0 A JSON hash or an array of hashes to configure an external viewer or a list of viewers for the account. The keys and values in the hash are as follows:
  • tag • The external viewer tag
  • type • The type of external viewer (resmd|eunity|iconnect|traumacad)
  • key • The api key for resmd or the CLO Access Key ID for eunity or the encryption key for iconnect
  • url • The root url for resmd or the base eunity, iconnect or traumacad server url
  • secret • The shared secret for resmd or the CLO Secret Key for eunity
  • encrypt_id • The encryption id for resmd
  • serviceInstanceParameter • Optional value for eunity (defaults to DG_HARVESTER)
  • userID • userID value for iconnect
  • domain • domain for iconnect (defaults to AMBRA)
  • role • role for iconnect (defaults to EMRUSERS)
  • priors • Flag to include priors in eunity (same patientid, patient_birth_date and phi_namespace)
  • most_recent_prior • Flag to include the most recent prior in eunity
  • other_params • A JSON array of other parameters to add to the URL
allowed_viewer_overrides_in_links Text 0 0 0 0 0 A comma separated list of viewers to be used in link.viewer field. viewer, proviewer and externl viewers' tags can be listed here
disable_external_viewer_for_links Flag 0 0 0 0 0 0 Do not use the external viewer for studies viewed via a link by an anonymous user
default_external_viewer Text 0 0 0 0 0 The default external viewer tag corresponding to an external viewer from the external_viewer list
limit_oru_by_storage_namespace Text 0 0 0 0 0 A JSON hash of storage namespaces that ORU messages can be attached to studies in. The hash keys should be the storage namespace uuid and the hash value should be 1. e.g. {"2b14215c-44a8-4aa6-af70-f7b14d5e32ed":1,"587d5b83-917c-4d95-89a8-f537debaf9de":1}
epic_patient_lookup_info Text 0 0 0 0 0 A JSON hash to with the information needed for the Epic patient lookup workflow. If the lookup does not return a unique patient the study will be routed to the activity queue for approvals. This setting can also be set at the brand level if multiple Epic integrations are needed into an account. The keys and values in the hash are as follows:
  • user • The EPIC user name to use for basic auth against the Epic FHIR API (not needed for the OAuth integration)
  • password • The basic auth password, this will be encrypted for storage and future viewing (not needed for the OAuth integration)
  • epic_client_id • The EPIC client id
  • url • The root EPIC url to call. api/FHIR/DSTU2/Patient will be appended to it
  • version • Optional version number to be used after DSTU (defaults to 2)
  • full_url • Optional full URL for the Epic endpoint if is not in the standard location.
  • use_iss_host • Flag to substitute the host passed in the iss parameter during the OAuth cycle into the full_url
  • mrn_field • The name of the identifier field that holds the MRN e.g. urn:oid:1.2.840.114350.1.13.0.1.7.5.737384.0. If the integration supports multiple Epic instances that can be a JSON array of the identifier fields to search for.
  • timeout • Optional number of seconds for the timeout on the FHIR call to Epic, defaults to 5
  • upload_namespace_id • UUID of the namespace to upload into. Defaults to the account namespace if not specified
  • include_first_in_match • Flag to include the first name in the search. Default is last, dob and gender.
  • mrn_search • Search by MRN instead of patient PHI. This field must contain a text template to create the Epic identifier value e.g. MRN|{$patientid}
  • mrn_search_activity • Search by MRN in the activity list. This field must contain a text template to create the Epic identifier value e.g. MRN|{$patientid}
  • skip_phi_update • Skip the lookup for patient phi to update the study, send the study to activities queue
  • must_approve_on_phi_update • Send the updated study to the activities queue
  • server_oauth_url • Full URL to the Epic endpoint to get the server to server OAuth token from e.g. https://apporchard.epic.com/interconnect-aocurprd-oauth/oauth2/token
  • server_oauth_private_key • The private key to encrypt the JWT token for server OAuth. The public key is registered with Epic. Each setup requires a unique key setup and the the keys can be generated as follows
    openssl genrsa -out privatekey.pem 2048
    openssl req -new -x509 -key privatekey.pem -out publickey509.pem -subj '/CN=myapp'
    To convert the private key to a single line for JSON usage run the following command
    jq -sR < privatekey.pem
  • create_thin_study • Flag to create a thin study for the view_study action if the study does not exist. The account setting accession_number_for_study_uid needs to be on for the study retrieval to work.
  • include_priors • Flag to include priors for anonymous user links created by the view_study action
  • link_user • UUID of the user to create the anonymous links with
  • apply_epic_name_format • Flag to apply the epic_name_format value to the result patient names
  • integration_user_uuid • UUID of a user in the account that will be used to login a OAuth integration which does not map to an existing user. The audit trail will show this users name and the Epic id for the session.
  • audit_phi_view • A flag to audit the PHI view of Epic patient info to the users audit trail as an EXTERNAL_PHI_ACCESS event
  • inbasket_setup • A JSON hash with the information needed to send inbasket messages. The keys and values are as follows:
    • url • The full URL to post the message too e.g. https://apporchard.epic.com/interconnect-aocurprd-username/api/epic/2014/Common/Utility/SENDMESSAGE/Message
    • SenderID • The value as per the Epic API documents e.g. FAMMD
    • Recipients • The value as per the Epic API documents e.g. [{"ID":"IPMD","IDType":"External","IsPool":""}]
    • MessageType • The value as per the Epic API documents
    • MessagePriority • The value as per the Epic API documents
    • message_template • A text template to apply against the study for the message. Use a pipe symbol to split the message into multiple lines e.g. A study for {$patientid} was uploaded|Date: {$study_date}|Call us for support
This integration also supports the following additional workflows that are triggered by the action parameter value sent to the /epic/oauth2 entry point. The supported actions are
  • upload • Trigger the Epic upload workflow
  • upload with request=1 parameter • Trigger the Epic request a study workflow
  • sso_share_phr_workflow • Trigger the account sso_share_phr_workflow workflow
  • view_study • Launch a viewer for the passed accession_number or study_uid and namespace_id. Additional the mrn (patID) and the accession_number needs to passed if the create_thin_study option is enabled
  • view_patient • Launch a study list for the passed mrn, patID or patient_name and patient_birth_date
epic_name_format Text 0 0 0 0 0 By default the patient name is formatted as LAST^MIDDLE^FIRST, change it via this setting e.g. LAST^FIRST^MIDDLE
enable_epic_patient_lookup Flag 0 0 0 1 0 0 Enable the Epic patient lookup for the account or namespace
epic_prompt_for_anonymize Flag 0 0 0 1 0 0 Enable the prompt_for_anonymize feature for uploads via the Epic integration
epic_upload_match Text 0 0 0 0 0 Enable the upload_match feature on links to restrict studies can that be uploaded. This field should be in the same format as the upload_match link field. The regular expressions can contain the special tags _LAST_,_FIRST_,_DOB_, _MRN_ or _SEX_ which will be replaced with the data from Epic. For example to restrict uploads to studies that match the patients last name and date of birth use the following setting {"(0010,0030)":"/^_DOB_$/","(0010,0010)":"/_LAST_/"}
cerner_fhir Text 0 0 0 0 0 A JSON hash to with the information needed for the Cerner SMAR on FHIR integration. The keys and values in the hash are as follows:
  • study_upload_client_id • client_id of the Cerner app created to support STUDY_UPLOAD
  • view_study_list_client_id • client_id of the Cerner app created to support VIEW_STUDY_LIST
  • aud • The dstu2 FHIR spec url from the Cerner app
  • upload_namespace • The uuid of the namespace to upload the studies to
  • link_user • UUID of the user to create the anonymous links with
  • mrn_field • Name of the field that holds the MRN, defaults to urn:oid:2.16.840.1.113883.3.787.0.0
  • prompt_for_anonymize • Flag to prompt if the anonymization rules should be applied (optional)
  • upload_match • Same format and functionality as the epic_upload_match setting (optional)
cerner_patient_lookup_info Text 0 0 0 0 0 A JSON hash to with the information needed for the Cerner patient lookup workflow. The keys and values in the hash are as follows:
  • auth_url • The root Cerner url to call for oauth token
  • data_url • The root Cerner url to call for the user data API
  • key • The Cerner OAuth key
  • secret • The Cerner OAuth secret, this will be encrypted for storage and future viewing
mrn_and_family_from_saml Flag 0 0 0 0 0 0 Extract the mrn and associated family members mrn from the SAML assertion for image viewing
enable_link_charging Flag 0 0 0 0 0 0 Enable charging for accessing a link
ai_attach_scanned_docs_as_pdf Text 0 0 1 0 0 Settings for the AI question
ai_anonymize_study_images Text 0 0 1 0 0 Settings for the AI question
ai_anonymize_study_hl7 Text 0 0 1 0 0 Settings for the AI question
anonymize_study_images_google_dlp Text 0 0 1 0 0 Settings for the AI question
anonymize_study_images_aws_rekognition Text 0 0 1 0 0 Settings for the AI question
anonymize_study_images_aws_textract Text 0 0 1 0 0 Settings for the AI question
anonymize_study_images_tensorflow_east Text 0 0 1 0 0 Settings for the AI question
anonymize_study_images_atalanta Text 0 0 1 0 0 Settings for the AI question
anonymize_photo_docs Text 0 0 1 0 0 Settings for the AI question
analyze_regions_pyradiomics Text 0 0 1 0 0 Settings for the AI question
detect_phi_in_study_images_google_dlp Text 0 0 1 0 0 Settings for the AI question
ai_classify_hemorrhage_in_study_images Text 0 0 1 0 0 Settings for the AI question
ai_study_manual_route Text 0 0 1 0 0 Settings for the AI question
ai_search_and_replace_study_tags Text 0 0 1 0 0 Settings for the AI question
ai_delete_duplicate_images Text 0 0 1 0 0 Settings for the AI question
ai_delete_scanned_docs Text 0 0 1 0 0 Settings for the AI question
ai_anonymize_attached_pdf Text 0 0 1 0 0 Settings for the AI question
ai_anonymize_attached_pdf_google_dlp Text 0 0 1 0 0 Settings for the AI question
ai_lookup_billing_code Text 0 0 1 0 0 Settings for the AI question
ai_run_custom_code_scripts Text 0 0 1 0 0 Settings for the AI question
ai_bodypart_abdomen_chest_pelvis Text 0 0 1 0 0 Settings for the AI question
ai_ocr_study_images_google_vision Text 0 0 1 0 0 Settings for the AI question
ai_anonymize_study_hl7_dwf Text 0 0 1 0 0 Settings for the AI question
ai_classify_contrast_in_study_series Text 0 0 1 0 0 Settings for the AI question
ai_categorize_phi_in_study_images_google_vision_then_dlp Text 0 0 1 0 0 Settings for the AI question
ai_run_custom_code_namespace_scripts Text 0 0 1 0 0 Settings for the AI question
ai_obfuscate_faces Text 0 0 1 0 0 Settings for the AI question
enable_namespace_ai_questions Text 0 0 1 0 0 A JSON list of enabled namespace AI questions
apply_settings_to_owned_phr Flag 0 0 0 0 0 0 Apply account settings to studies in owned PHR accounts
cloud_storage_config Text 0 0 1 0 0 Configuration for the cloud storage provider
enable_doximity_auth Flag 0 0 0 0 0 0 Enable Doximity login for the account vanity(s)
enable_google_auth Flag 0 0 0 0 0 0 Enable Google login for the account vanity(s)
enable_recaptcha Flag 0 0 0 0 0 0 Enable recaptcha on join for the account vanity(s)
suppress_hl7_eom_sep Flag 0 0 0 0 0 0 Supress the FS separator at the end of HL7 template messages
no_default_study_date_time Flag 0 0 0 0 0 0 Do not set a default date and time if the study does not have one
include_date_in_smart_search Flag 0 0 0 0 0 0 In a smart search try parse the value as a DOB
only_this_account_in_vanity Flag 0 0 0 0 0 0 Only show this account if accessing it via a vanity URL
require_pin_to_view Flag 0 0 0 0 0 0 Hide this account when user did not login with 2FA
pin_required Flag 0 0 0 0 0 1 Require MFA for account users, overridable at the role level
sync_user_login_to_account_login Flag 0 0 0 0 0 0 Sync the user credentials on account_login and account_password when they are added to an account. If they change their password under an account vanity only update the account_password
include_in_global_purge Flag 0 0 0 0 0 0 Include this account in global purging rules
helpscout_beacon_id Text 1 0 0 0 0 Account override for the helpscout beacon id
sendgrid_key Text 0 0 0 0 0 Account Sendgrid API key. This is setting is never displayed after it is set
pixel_anonymize_color Text 0 0 1 0 0 Set the background color for pixel anonymization
priority_notifications Flag 0 0 0 1 0 0 Prioritize notifications on the storage queue for the account or namespace
try_update_original_study Flag 0 0 0 1 0 0 Enable original study updates within the account
try_update_original_study_from_namespaces Text 0 0 1 0 0 Enable study updates for studies shared to these namespaces (comma delimited list of namespace UUIDs). Namespaces from another account are allowed to be listed here. try_update_original_study_to_namespaces should also be enabled appropriately
try_update_original_study_to_namespaces Text 0 0 1 0 0 Enable study updates for studies shared from these namespaces (comma delimited list of namespace UUIDs). Namespaces from another account are allowed to be listed here. try_update_original_study_to_namespaces should also be enabled appropriately
disable_user_days Number 0 0 0 0 0 User accounts will be disabled after this number of days
see_all_destination_search_in_activity Flag 0 0 0 0 0 0 Allow users to see all the available destination searches in the activity queue
multiple_sso_connections Flag 0 0 0 0 0 0 Support multiple Pingone connections for the account
mpi_config Text 0 0 0 0 0 A JSON hash to with the information needed for the MPI (master patient index) ORM triggered workflow. Each key is the facility code and the value is a configuration hash with the following KV pairs:
  • search_namespaces • List of namespace uuid(s) to search for the MRN
  • search_destinations • List of destination uuid(s) to query retrieve for the MRN if the namespace search do not find any results
  • create_study_order - The studies found in the destinations will be created in this order. The key follows the Sorting specification, fields reported by /node/found (including result_fields tags) can be used
  • share_namespace • UUID of namespace to share the search results into
  • search_status_customfield • UUID of optional Study customfield to put either "primary" or "secondary" for the search source
  • secondary_search • Hash of Flag if a secondary search of namespaces and destinations by patient name and DOB should be run if the primary MRN search does not return any results
  • patient_name • Specify where the patient name is located in the HL7 message, defaults to PID_5
  • patient_birth_date • Specify where the birthdate is located in the HL7 message, defaults to PID_7
  • other_customfields • Optional hash of customfields UUID and HL7 fields to update the study with
The facility code and MRN are extracted from the triplets in PID_3 of the ORM
mpi_allowed Text 0 0 0 0 0 UUID of the account that is allowed to perform MPI queries into this account
study_download_no_reports Flag 0 0 0 0 0 0 Remove reports from study downloads
group_local_pushes_by Text 0 0 0 0 0 JSON array of fields to form a group by key for local pushes' statuses. The only allowed value for now is "destination_address"
set_phantom_on_reload Flag 0 0 0 0 0 0 Set the study to phantom state on a re-upload
bundle_notify_destination_search Flag 0 0 0 0 0 0 Condense email notifications for destination searhes initiated from a bundle
always_use_services_phi Flag 0 0 0 0 0 0 On a notify load the latest services phi into the notify payload so that edits to the study after the notify was generated are preserved
disable_sticky_phi Flag 0 0 0 0 0 0 Do not make the PHI information sticky so that if the study data changes it is reflected in the UI
enable_messages_by_study_uid Flag 0 0 0 0 0 0 Show messages tied to studies with the same UID in the same account
duplicate_oru_with_study Flag 0 0 0 0 0 0 Flag to duplicate Hl7 ORU messages when they duplicate a study between accounts
enable_take_study_feature Flag 0 0 0 0 0 0 Flag to enable study take feature
take_study_number_to_take_at_a_time Number 1 0 0 0 0 0 Number of studies to take by /study/take
take_study_source_namespace Text 0 0 0 0 0 A namespace UUID from which studies will be taken by /study/take
take_study_dedup_by_field Text study_uid 0 0 0 0 0 Ordinary study field name or a 'customfield-UUID' used to guarantee study uniqueness in /study/take destination namespace
take_study_sort_by Text 0 0 0 0 0 Prioritize studies to take on /study/take call, for sorting specifications see Sorting
take_study_filter Text 0 0 0 0 0 Filter studies to take on /study/take call. This should be a JSON object where each key is a filter, see Filters
take_study_method Text 0 0 0 0 0 Select if studies should be moved or shared with the destination namespace on /study/take call. Possible values are: "move", "share", "share" by default
enable_orders_in_worklist Flag 0 0 0 0 0 0 Flag to show linked studies in orders tab and linked orders in worklist
study_requestable_accounts Text 0 0 0 0 0 A JSON list of account UUIDs that are allowed to request studies from. This can only be set by a sysadmin
study_requestable_namespaces Text 0 0 0 0 A comma separated list of namespace UUIDs that the requested account is allowed to share/duplicate studies from by request.
associate_oru_by_original_accession_number Flag 0 0 0 0 0 0 Flag to associate Hl7 messages with a study using an accession number of another study which the study is split from
associate_adt_by_mrn_for_push_hl7 Flag 0 0 0 0 0 0 Flag to associate ADT Hl7 messages with a study using an patientid of the study during the /study/push/hl7 call processing
require_site_id_for_groups Flag 0 0 0 0 0 0 Flag to require site_id attribute to be set for groups in the account. site_id must be set on group creation and edits when the flag is set
default_query_owner_namespace Text 0 0 0 0 0 A namespace UUID to be used as a default owning namespace for the queries created (e.g. auto created queries).
query_types Text 0 0 0 0 0 A JSON list of allowed query types for the account. Each of the query type is defined by a hash, the keys and values in the hash are as follows:
  • tag • The query type tag
  • arm • The subject arm or an arm list the tag is limited to (optional)
query_status_tags Text 0 0 0 0 0 A JSON list of allowed query statuses for the account. The first status in the list is used as a default status for newly created queries. The Closed status is processed in a special way. Each of the query status is defined by a hash, the keys and values in the hash are as follows:
  • tag • The query status
trial_communication_plan Text 0 0 1 0 0 A JSON list of escalation rules for the account. Every rule is a hash with the condition and action keys. Each of the condition and action is defined by a hash, condition should follow the condition format used by customfield's show_when field. The topmost HASH condition is interpreted with AND logic. Condition parameters (the fields to be referred in the condition) are as follows:
  • elapsed_from_reply • The number of seconds passed from the last reply
  • elapsed_from_status_change • The number of seconds passed from the last query status change
  • elapsed_from_reminder • The number of seconds passed from the last reminder sent out for the query
  • any query field • Any query field can be referred here
The keys and values for the action are as follows:
  • do • The action to perform on condition match (remind|add_recipient)
  • user_id • The user ID (or an array of user IDs) to add as a recipient to the query. Applies for the add_recipient action only (optional)
query_auto_upload_to_unqualified_site Text 0 0 0 0 0 A JSON hash with the information needed to create an auto query on study upload for an unqualfied site without test_upload named customfield set for the uploaded study. The keys and values in the hash are as follows:
  • subject • The query subject line
  • body • The query body
  • key • The query type tag
query_emails_reply_to Text 0 0 0 0 0 An email address to be used for the Reply-To email header of the query-related emails sent out by the service
iocm_delete_thin_studies Flag 0 0 0 0 0 0 Flag to delete a thin study if storage recieves an IOCM delete request
remove_private_tags_on_upload Flag 0 0 0 1 0 0 Flag to anonymize or remove all private tags from a study in storage
remove_private_tags_exceptions Flag 0 0 0 1 0 0 The list of private tags to not remove from a study in storage. E.g. [{"tag":"(0019,1002)", "creator":"Siemens"},{"tag":"(0019,1003)", "creator":"Siemens"}]
maximum_allowed_download_studies Number 10 0 0 1 0 0 A number of studies to be included in a patient zip download
cache_series_level_tags Flag 0 0 0 1 0 0 Flag to enable series level tags caching in the storage for the dicomweb series metadata call to perform better
user_pkey_expiration Text 0 0 0 0 0 A JSON hash with user public key expiration settings. The keys and values in the hash are as follows:
  • warn • The number of days after which a public key is considered outdated
  • expire • The number of days after which a public key is considered expired and can no longer be used to log in
  • notify • A comma separated list of emails to warn about an outdated public key
namespace_names_globally_unique Flag 0 0 0 0 0 0 Flag to require every namespace to have a unique name (even Groups, for example, must have different names than Locations)
return_matching_manual_routes_for_study Flag 0 0 0 0 0 0 Flag to return only matching manual routes with studies
patient_portal_event_new_report_notify_type Text 0 0 0 0 0 0 Notification type for this event. Either sms or email, default is email. Can be overriden in /patient/set.
Note: If there is no valid address (email or mobile) for that type, then the opposite type is used.
patient_portal_event_share_notify_type Text 0 0 0 0 0 0 Notification type for this event. Either sms or email, default is email. Can be overriden in /patient/set.
Note: If there is no valid address (email or mobile) for that type, then the opposite type is used.
study_push_sms_on_in_process_options Text 0 0 0 1 0 It is JSON Hash like {"timeout":0,"interval":60,"limit":3,"users":["uuid1","uuid2",...]}. Bold digit is default value for each key.
users is array of uuids of users in that account having mobile phone. Error is returned on /account/set if these conditions are not fulfilled, with setting error_subtype=study_push_sms_on_in_process_options:$type:$uuid where $type is one of USER_NOT_IN_ACCOUNT,USER_NOT_FOUND,USER_NOT_IN_ACCOUNT,MOBILE_NOT_FOUND.
If timeout==0, then this feature is disabled.
If enabled and for some node there is any study_push_status.status=~I|P hanging for more than timeout minutes, then each interval minutes sms is sent to users defined in options for this node account. Sending stops when no study_push_status.status=~I|P for that destionation or limit sms messages were sent.
Sms template is study_push_sms_on_in_process_timeout.
Note: timeout cant be set to nonzero if users is empty. The counter is reset after 2*(timeout + interval*limit) minutes since last added study_push. Then it could be reactivated on next hanging /study/push.
It is triggered on node::monitor, so if interval<15 minutes, it will be triggered later on next node::monitor check.
enforce_field_flags_server_side Flag 0 0 0 0 0 0 Enforce study field flags in the API. H (hidden) and O (read-only) fields will be discarded on edits, H (hidden) fields will be hidden from the API output
allow_circular_parent_child_updates Flag 0 0 0 0 0 0 Flag to restore old behavior of original change being re-applied to the original study of a circular parent-child loop
sync_external_roles_on_login Text 0 0 0 0 0 A JSON hash to configure synchronization of external user roles and assignments when the user logs in. SAML role mappings apply.
  • enable • Flag to enable the feature
  • dont_sync_account_membership • Flag to not touch account membership and account role of the user
  • any_pattern_matches_users_without_roles • Flag to make __ANY__ pattern in the SAML mappings match users that do not have external roles set
  • dont_sync_users_without_roles • Flag to not try to sync up users that do not have external roles set at all
ingress_filter Text 0 0 1 0 0 JSON hash for gateway filters.
enable_ingress_filter Flag 0 0 0 0 0 0 Enable web_uploader_ingress_filter.
web_uploader_ingress_filter Text 0 0 1 0 0 JSON array for UI ingress filters.
study_hl7_message_cleanup_days Number 31 0 0 0 0 0 How many days to keep outbound HL7 messages for /hl7/outbound/list.
publish_study_ready_for_unapproved_studies Flag 0 0 0 0 0 0 Publish READY events on the study websocket channels on study ingress event if the study needs an approval
synchronous_phi_updates Flag 0 0 0 0 0 0 Flag to update storage PHI data synchronous for the account studies
account_disabled Flag 0 0 0 0 0 0 Flag to indicate this account is disabled. Only sysadmin can switch it. 1-disabled in services, 2-UI flag, skipped in services. If disabled, then those permissions are suppressed for not sysadmin|support:
  • study_approve
  • study_view
  • study_edit
  • study_upload
  • study_report_detail
  • study_download
  • study_download_viewer
  • study_download_iso
  • study_push
  • study_share
  • study_share_email
  • study_share_share_code
  • study_share_account
  • study_share_location
  • study_share_group
  • study_share_user
  • study_share_rsna
  • study_share_npi
  • study_share_request
  • study_delete
  • study_thin
  • study_report_view
  • study_report_hl7_view
  • study_report_upload
  • study_report_delete
  • study_status_view
  • study_status_edit
  • study_move
  • study_freeze
  • study_duplicate
  • study_clone
  • study_duplicate_request
  • study_manual_route
  • study_split
  • study_merge
  • study_take
enhanced_security Flag 0 0 0 0 0 0 Flag to enable enhanced security
non_diagnostic_mode Flag 0 0 0 0 0 0 Flag to enable the non-diagnostic mode

Study AI questions

AI questions can be run for a study against the AI neural network stack via the /study/question call. The following questions are available:
Question Description Account setting
which_body_part Which body part is the study showing
has_scanned_docs Does the study have any scanned documents in it
delete_scanned_docs Delete the scanned documents ai_delete_scanned_docs
attach_scanned_docs_as_pdf Deletes AI identified scanned images within the study ai_attach_scanned_docs_as_pdf
anonymize_study_images Anonymize the study images ai_anonymize_study_images
anonymize_study_images_google_dlp Anonymize the study images using Google DLP ai_anonymize_study_images_google_dlp
anonymize_study_images_tensorflow_east Anonymize the study images using Tensorflow EAST ai_anonymize_study_images_tensorflow_east
analyze_regions_pyradiomics Analyze regions on the study using Pyradiomics ai_analyze_regions_pyradiomics
detect_phi_in_study_images_google_dlp Detect PHI presence in the study images using Google DLP ai_detect_phi_in_study_images_google_dlp
anonymize_study_images_aws_rekognition Anonymize the study images using AWS Rekognition ai_anonymize_study_images_aws_rekognition
anonymize_study_images_aws_textract Anonymize the study images using AWS Textract ai_anonymize_study_images_aws_textract
anonymize_study_hl7 Anonymize the study HL7 ai_anonymize_study_hl7
qureai_detect_brain_bleeds Detect brain bleeds
qureai_detect_chestxray Read chest xray
study_manual_route Runs routing rules ai_study_manual_route
search_and_replace_study_tags Performs search and replace rules on all images in the study ai_search_and_replace_study_tags
delete_duplicate_images Deletes images which values are identical to specified DICOM tages ai_delete_duplicate_images
analyze_study_hl7 Takes hl7 report and analyzes it
anonymize_attached_pdf Takes all pdf attachments from a study and removes all PHI from them ai_anonymize_attached_pdf
anonymize_attached_pdf_google_dlp Takes all pdf attachments from a study and removes all PHI from them ai_anonymize_attached_pdf_google_dlp
lookup_billing_code Takes study description and populates billing code mapping ai_lookup_billing_code
run_custom_code_scripts Implements ability to run custom code. ai_run_custom_code_scripts
bodypart_abdomen_chest_pelvis Detects if the study image(s) contain(s) abdomen, chest and/or pelvis ai_bodypart_abdomen_chest_pelvis
ocr_study_images_google_vision Performs OCR using Google Vision API and returns detected text ai_ocr_study_images_google_vision
ai_anonymize_study_hl7_dwf Detects if text contains PHI and replaces it with asterisk chars anonymize_study_hl7_dwf
classify_contrast_in_study_series Detects the presence of contrast in a series of study images ai_classify_contrast_in_study_series
categorize_phi_in_study_images_google_vision_then_dlp Detects the presence of phi in study images and assigns categories to results ai_categorize_phi_in_study_images_google_vision_then_dlp
classify_hemorrhage_in_study_images Takes a batch of images and predicts hemorrhages in each image ai_classify_hemorrhage_in_study_images
obfuscate_faces Automatically recognizes coordinates of faces within images in the study and blocks them out ai_obfuscate_faces

Namespace AI questions

AI questions can be run for a namespace against the AI neural network stack via the /namespace/question call. The following questions are available:
Question Description Account setting
run_custom_code_namespace_scripts Implements ability to run custom code. ai_run_custom_code_namespace_scripts

Session commands

Description Log in a session
URL /session/login
Parameters (email || account_name && account_login) • The users email address or the account name and account_login (DEPRECIATED - Use login and vanity)
login • The user account_login or email address
vanity • The account vanity name. (optional)
(password || use_pkey) • The password for password authentication or a flag to use public key authentication
new_password • Change the password or account password to this. (optional)
validate_session • If you would like to validate an existing session rather than create a new one pass in the sid of the session to valid in this parameter. It will check if the session is still valid and the credentials are for the session. (optional)
location • Login location. (optional)
Returns status • OK
sid • The session id
uuid • The users uuid
name • The users name
training_todo • Flag if the user is required to do training
pin_required • Flag if a PIN is required to validate this session
pin_via • How was the PIN sent, the options are TOKEN,EMAIL or SMS
sign_required • Flag if a signature is required to validate this session
terms_md5 • MD5 of the accepted terms of service
privacy_md5 • MD5 of the accepted privacy policy
indicator_md5 • MD5 of the accepted indications of use
patientid • The primary patientid this session is for (optional)
is_proxy • Flag if this is a proxy login
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
INVALID_CREDENTIALS • Invalid user name or password.
LOCKOUT • Too many failed attempts
BAD_PASSWORD • The new_password does not meet the password requirements
PASSWORD_RESET • The password needs to be changed
VALIDATION_FAILED • The session validation failed
WHITELIST_LOCKOUT • Login blocked by the account whitelist
BLOCKED • The user is blocked from the system
DISABLED • The user is disabled and needs to be /user/enabled to allow access
BRAND_NOT_ALLOWED • The user is limited to some brands to login with allowed_login_brands setting
SSO_ONLY • The user can only login via SSO
ONLY_ONE • You can pass either the password or use_pkey flag, not both
PUBLIC_KEY_EXPIRED • The public key has expired and needs to be changed
Notes
  1. A user can have up to 10 active sessions. Old sessions are dropped first.
  2. The call must be a POST
  3. If vanity is not passed but the call is from a vanity URL vanity will be populated
  4. vanity/login processing rules
    • If the call has a login but no vanity the user email address is used for searching.
    • If there is a vanity the account_login is used for searching.
    • If the vanity/login search fails the login is used for a user email search
  5. If the user has an account_password the password will be checked against that, if not it will be checked against the user's password
  6. At login the user is assigned a session_expire value that is either the system default of 3 hours or the first specific user account session override or the highest value of all accounts the user is a member of. If a location is passed it will override the session_expire with the value from the login_location account setting. Likewise a brand session_expire will override any other value.
  7. If a validate_session succeeds a SESSION_VALIDATED event is written to the users audit log.
  8. EMAIL pin is sent to user.email and user.alt_emails.
  9. If you've got DISABLED and user is not disabled, then you should /account/user/enable user in owned account.
top

Description Get the user information for the session owner
URL /session/user
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
settings • A JSON list of user settings set via /setting/set to return (optional)
account_id • Account id to get user_account's settings (optional)
Returns status • OK
namespaces • An array of the namespaces the user can access. Each namespace holds the following fields.
* uuid • Id of the namespace
* name • Description of the namespace
sid_md5 • The md5 of the sid
accelerator_used • Flag if the session is running through an accelerator
session_expire • The session expiration value in minutes
settings • JSON hash of the requested settings (optional)
The rest of the fields are the same as /user/get
Errors NOT_FOUND • The account is not found
Notes
top

Description Get the permissions information for the session owner
URL /session/permissions
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
(account_id || namespace_id) • Either the account or namespaces to get the users permissions for
Returns status • OK
The permissions for the user in this account
Errors
Notes MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The account_id or namespace_id was not found
top

Description Log out a session
URL /session/logout
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
Returns status • OK
logout_url • URL to take to use to. Optional and driven by the account setting
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The sid was not found
Notes
top

Description Enable cross site request forgery checking for the session
URL /session/csrf/enable
Parameters sid • The session id
redirect_uri • The URL to redirect to
account_id • UUID of the account to override the enhanced_security flag
Returns A redirect to the passed URL which sets an httponly CSFR token cookie
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
INVALID_URL • The URL must be a relative URL
NOT_FOUND • The account_id can not be found
NOT_MEMBER • The user is not a member of the account
Notes
  • The client must not store the sid in a cookie for CSRF checking to work
  • If account_id is not passed, the vanity account or the owning account overrides the enhanced_security flag
top

Description Get a uuid from the server
URL /session/uuid
Parameters
Returns status • OK
uuid • A uuid
Errors
Notes
top

Description Redirect to the brands OAuth provider
URL /session/oauth/start
Parameters
Returns A redirect to the brand OAuth provider
Errors NO_OAUTH • OAuth is not setup for the associated brand
Notes
top

Description Register and login with oauth
URL /session/oauth
Parameters code • The OAuth code
vendor • The OAuth vendor (doximity|google|brand)
redirect_uri • The redirect_uri used to get the code parameter
Returns status • OK
sid • The session id (optional if basic authentication or an OAuth token is used)
uuid • The users uuid
name • The users name
new_user • Flag if they are a new user
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
INVALID_CODE • Invalid code
INVALID_VENDOR • Invalid vendor
OTHER_OAUTH • The user is already setup to OAuth via another vendor
MISSING_INFORMATION • The response from the OAuth provider is missing either the email, first_name or last_name fields
NO_OAUTH • OAuth is not setup for the associated brand
AUTH_FAILED • OAuth failed or a user id was not returned
Notes
top

Description Get an OAuth token to access other API calls
URL /session/oauth/token
Parameters grant_type • The grant type, set to client_credentials
client_id • The users email address
client_secret • The users password
duration • The number of seconds the token is valid for (optional and defaults to 3600 with a maximum value of 86400)
Returns status • OK
access_token • The access token
created_at • Timestamp when the token was created
expires_in • Number of seconds before the token expires
token_type • The token type bearer
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
LOCKOUT • Too many failed attempts
AUTH_FAILED • Authentication failed
Notes
  • The access_token should be passed as the Bearer value in the Authorization headers to access API entry points that require validation
  • The call must be a POST
top

Description Validate the PIN for the session
URL /session/pin
Parameters sid • The session id
pin • The PIN
remember_device • Remember the device as trusted. (optional)
Returns status • OK
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
INVALID_SID • Invalid sid
INVALID_PIN • Invalid PIN
PIN_EXPIRED • The PIN has expired
Notes
  • The PIN expires after 10 minutes or 3 invalid attempts to validate it
  • Other API calls that require a sid will return a 401 until the PIN is validated
  • remember_device parameter enables "Remember this device" feature used to suppress second authentication factor (PIN) on next login. The device_id HTTP cookie will be set and the device will be remembered. Both cookie and IP address should match for PIN step to be skipped the next login. Cookie is set for 30 days. Number of trusted devices is limited to 100, the most old ones are evicted when a new device is remembered.
top

Description Validate the session using a public key
URL /session/sign
Parameters sid • The session id
signature • The Base64-encoded signature
Returns status • OK
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
INVALID_SID • Invalid sid
INVALID_SIGNATURE • Invalid signature
PUBLIC_KEY_EXPIRED • The public key has expired and needs to be changed
Notes
  • The session is invalidated when invalid signature is provided
  • Other API calls that require a sid will return a 401 until the session which requires a signature is validated
  • The signature is calculated for a message consisting of the following parts joined by null character: user email, the current sid (binary form), the user's public key in DER form and the 'sha256' string. The signature should be calculated using the user public key's algorithm with the SHA-256 hashing algorithm.
top

Description Return the TTL for the sid
URL /session/ttl
Parameters sid • The session id
Returns status • OK
ttl • Number of minutes the session has to live
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
EXPIRED • Expired
Notes
top

User commands

Description Join the system
URL /user/join
Parameters first • First name
last • Last name
password • Password
email • Email
share_code • Share code they are joining from (optional)
captcha_response • Response from captcha (optional)
customfield-{CUSTOMFIELD_UUID} • Custom field(s) defined in the vanity_registration_customfields account setting (optional)
Returns status • OK
uuid • uuid of the user
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
DUPLICATE_EMAIL • The email is already used
LOCKOUT • Too many joins attempt
BAD_PASSWORD • Password needs to be at least 8 characters long, contain at least two numbers, contain at least two characters and can't be one of your last three passwords
CAPTCHA_FAILED • Verifying the captcha failed
Notes
  • The call must be a POST
top

Description Add a user
URL /user/add
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
account_id • Account id to check for the user_edit permission
first • First name
last • Last name
password • Password
email • Email
alt_emails • Comma-separated list of additional emails (optional)
mobile_phone • SMS phone number
Returns status • OK
uuid • uuid of the user
namespace_id • The association namespace uuid
Permission user_edit
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
DUPLICATE_EMAIL • The email is already used
BAD_PASSWORD • Password needs to be at least 8 characters long, contain at least two numbers, contain at least two characters and can't be one of your last three passwords
NOT_PERMITTED • You are not permitted to do this
INVALID_EMAIL • Enter valid alt_emails addresses
Notes
  • The call must be a POST
  • Any email from alt_emails cant be equal to any user email
top

Description Get the information for a user
URL /user/get
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
uuid • The users uuid (optional). Uses the session user if not passed
account_id • Account id if you are trying to get a user other than yourself (optional)
public_key_format • The desired public key format to be returned rfc4716, by default (rfc4716|openssh|asis) (optional)
Returns status • OK
uuid • The user uuid
name • The user name
first • First name
last • Last name
email • Email
alt_emails • Comma-separated list of additional emails
mobile_phone • SMS phone number
namespace_id • Namespace for the user
sysadmin • Is the user a sysadmin
support • Is the user a support user
is_anonymous • Is this an anonymous user
event_share • Notify the user on a share into the users namespace
event_share_unapproved • Notify the user when a study is shared with the namespace and requires an approval
event_approve • Notify the user on a approval needed into the users namespace
event_upload • Notify the user on an upload into the users namespace
event_upload_fail • Notify the user on a failed upload into the users namespace
event_harvest • Notify the user on a harvest into the users namespace
event_copy • Notify the user when a study is copied into the users namespace
event_new_report • Notify the user when a report is attached in the users namespace
event_report_remove • Notify the user when a report is removed in the users namespace
event_study_comment • Notify the user when a comment is attached to a study in the users namespace
event_status_change • Notify the user when the status of a study is changed
event_message • Notify the user when a message is sent to the users namespace
event_link • Notify the user when an anonymous link is hit in the namespace
event_link_mine • Notify the user when an anonymous link created by the user is hit in the namespace
event_thin_study_success • Notify the user when a thin study retrieval they initiated succeeds
event_thin_study_fail • Notify the user when a thin study retrieval they initiated fails
event_case_assignment • Notify the user when they are assigned a case as a medical or admin user
event_query_add • Notify the user when a new query is issued
event_query_edit • Notify the user when a query is edited
event_query_new_recipient • Notify the user when they are added to a query as a new recipient
event_query_reply • Notify the user when they leave a new reply in a query
event_site_qualified • Notify the user when a trial site is qualified for the clinical trial account
share_code • The share code of the user
share_description • The share description of the user
time_zone • The users time zone abbreviation
pin_required • Flag to require a PIN for every login
allowed_login_brands • A comma separated list of Brand UUIDs that the user is allowed to use when logging in
npi • NPI number
terms_md5 • MD5 of the accepted terms of service
privacy_md5 • MD5 of the accepted privacy policy
indicator_md5 • MD5 of the accepted indications of use
last_login • Timestamp of the last login
event_incoming_study_request • Notify the user when they get an incoming study request
public_key • A public key for public key authentication
ui_json • JSON for UI settings. Possible options:
  • show_org_manage_link (boolean) • Show link to manage multiple organizations
  • advanced_search (array) • Advanced search customization for role. See account level "advanced_search" ui_json param for possible values
  • enable_v3_viewer (boolean) • If set, enables ProViewer for PHR account
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The user can not be found
NOT_PERMITTED • You are not permitted to access this user record
Notes
top

Description Set the information for a user
URL /user/set
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
uuid • The users uuid (optional). Uses the session user if not passed
first • First name (optional)
last • Last name (optional)
email • Email (optional)
alt_emails • Comma-separated list of additional emails (optional)
mobile_phone • SMS phone number (optional)
password • User password (optional)
old_password • Previous user password (optional)
share_code • The share code of the user (optional)
share_description • The share description of the user (optional)
account_id • Account id if you are trying to set a user other than yourself (optional)
cc_token • The credit card token to attach to the users account (optional)
time_zone • The users time zone name as per https://www.postgresql.org/docs/9.1/static/view-pg-timezone-names.html (optional)
pin_required • Flag to require a PIN for every login (optional)
allowed_login_brands • A comma separated list of Brand UUIDs that the user is allowed to use when logging in (optional)
terms_md5 • MD5 of the accepted terms of service
privacy_md5 • MD5 of the accepted privacy policy
indicator_md5 • MD5 of the accepted indications of use
public_key • A public key for public key authentication (optional)
ui_json • JSON for UI settings (optional) possible options:
  • show_org_manage_link (boolean) • Show link to manage multiple organizations
  • advanced_search (array) • Advanced search customization for role. See account level "advanced_search" ui_json param for possible values
  • enable_v3_viewer (boolean) • If set, enables ProViewer for PHR account
Returns status • OK
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The user can not be found
NOT_PERMITTED • You are not permitted to edit this user record. The error_subtype will hold the specific reason permission was denied.
DUPLICATE_EMAIL • The email is already used
BAD_PASSWORD • Password needs to be at least 8 characters long, contain at least two numbers, contain at least two characters and can't be one of your last three passwords
INVALID_TOKEN • The cc_token is invalid
INVALID_PASSWORD • The old_password does not match the current password
INVALID_TIME_ZONE • The time zone is invalid
INVALID_EMAIL • Enter valid alt_emails addresses
Notes
  1. The call must be a POST
  2. If you are trying to set a user other than yourself you must have user_edit permissions in the account and the user must only be in your account.
  3. You can not change the password, email or cc_token or MD5 of acceptances of another user. Any changes will be ignored.
  4. Only sysadmins and support users are allowed to change allowed_login_brands. An ordinary cannot change allowed_login_brands even for himself.
  5. If a time_zone is set it will take precedence over any time zone passed in filter.tz. This allows a distributed organization to ensure that everyone is looking at the same data.
  6. The public key should be in RFC4716 or OpenSSH format.
  7. Any email from alt_emails cant be equal to any user email
top

Description Delete yourself from the system
URL /user/delete
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
Returns status • OK
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_PERMITTED • You are not permitted to do this
IN_USE • The user is a sid user for a webhook
Notes
top

Description A lost password request
URL /user/password/lost
Parameters email • The email
inbox • Flag to specify an alternate link directing to /inbox/password.html rather than /password.html (optional)
Returns status • OK
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
LOCKOUT • Too many failed attempts
Notes An email with a link to reset the password will be mailed to the user
top

Description Reset the users password
URL /user/password/reset
Parameters token • The reset token
password • The new password
Returns status • OK
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
INVALID_TOKEN • The token is invalid
BAD_PASSWORD • Password needs to be at least 8 characters long, contain at least two numbers, contain at least two characters and can't be one of your last three passwords
Notes
top

Description Send a welcome message to the user
URL /user/welcome
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
email • The email of the user to welcome
account_id • Id of the account to welcome them to
link • URL to reset the password at. The reset token will be appended to the link
Returns status • OK
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The user can not be found
INVALID_LINK • The link needs to be a https link within the site domain
Notes
  • The welcome email with a password reset link with be mailed to the user.email and user.alt_emails
  • If the user_account record has a customfield named welcome_email_vanity the value of that field will be used as the vanity to brand the email
top

Description Get a list of the accounts the user can join
URL /user/join/list
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
filter.* Filters (optional)
page.* Pagination (optional)
sort_bySorting (optional)
Returns status • OK
accounts • An array of the accounts. Each account holds the following fields.
* uuid • Id of the account
* name • Name of the account
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
Notes This will only return accounts the user is not a member of
top

Description Request to join an account
URL /user/join/request
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
account_id • Id of the account to request to join
Returns status • OK
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The account can not be found
NOT_PERMITTED • You are not permitted to join this account
ALREADY_MEMBER • The user is already a member of the account
Notes
top

Description Invite a user to join an account
URL /user/invite
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
account_id • The account to invite the person too
role_id • The role to give the user (optional)
email • Email address of the person to invite
link • URL to accept the invitation at. The invitation id will be appended to the link
link_already • URL to accept the invitation at for an existing user on the system. The invitation id will be appended to the link (optional)
groups • A JSON hash with the keys the group uuids to add the user to and the values the role uuid for the group (optional)
locations • A JSON hash with the keys the location uuids to add the user to and the values the role uuid for the location (optional)
global • Flag if this is a global user (optional).
global_role_id • uuid of a role to be used in groups and locations when the global user is added to them, this role overrides groups'/locations' default roles (optional).
Returns status • OK
uuid • Id of the invitation
Permission account_user_invite
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The account or group or location can not be found. The error_subtype holds the uuid of the not found item
ROLE_NOT_FOUND • The role can not be found. The error_subtype holds the uuid of the not found item
NOT_PERMITTED • You are not permitted to invite users to this account
INVALID_EMAIL • Enter a valid email address
ALREADY_EXISTS • They are already in this account
INVALID_JSON • The field is not in valid JSON format. The error_subtype holds the name of the field
NOT_HASH • The field is not a JSON hash. The error_subtype holds the name of the field
INVALID_LINK • The link needs to be a https link within the site domain ROLE_NAMESPACE_MISMATCH (INCOMPATIBLE_ROLE) • The role cannot be used for the account, data contains role_id and namespace_id
ROLE_NAMESPACE_MISMATCH (GLOBAL_USER_WITH_RESTRICTED_ROLE) • They are adding a global user with a role restricted to group/location and there is a group/location in the account, data contains role_id, namespace_id
Notes
  • An email will be sent to the user.email and user.alt_emails inviting them to join this account.
  • The email will contain a link of the form {link}{invite_id}.
  • The UI should process this link to extract the invite_id and use it on the /user/invite/accept command.
  • If a role is not specified the user will be given the default role.
  • The account switch add_on_invite changes the behavior so that the user is automatically added if they are a member of the system
  • Flag global works the same way as in /account/user/add
top

Description Accept an invitation
URL /user/invite/accept
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
uuid • Id of the invitation
Returns status • OK
Errors NOT_FOUND • The invitation was not found
ACCEPTED • The invitation was already accepted
ALREADY_EXISTS • They are already in this account
Notes The user will be added to the account and the invitor will be emailed a notification.
top

Description Get the namespace the user has access to
URL /user/namespace/list
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
account_id • Only return the namespaces for this account (optional)
plus_phr • Flag to include the PHR account as well if account_id was specified (optional)
name_and_id_only • Flag to return only the the namespace name and uuid (optional)
filter.* Filters (optional)
Returns status • OK
namespaces • An array of the namespaces. Each namespace holds the following fields.
* uuid • Id of the namespace
* name • Description of the namespace
* type • Type of object the namespace is linked to (account_id|group_id|location_id|user_id)
* type_uuid • Id of the object the namespace is linked to
* permissions • The users permissions in the namespace
* role_id • The role's UUID or null if was not used any for permissions calculation
* role_name • The role's name or null if was not used any for permissions calculation
* settings • The namespace settings
* destinations • An array of the destinations the users can push to. Each object in the array has the same fields as the /destination/get command.
* events • A hash of the event flags for the namespace.
* share_code • The share code of the namespace.
* study_count • The total number of approved, non-phantom studies in the namespace
* thin_study_count • The total number of thin studies in the namespace
* search_threshold • The total number of studies that should trigger a switch over to a search rather than a list UI
* must_approve • Flag if studies must be approved
* must_approve_upload • Flag if uploaded studies must be approved
* must_approve_harvest • Flag if harvested studies must be approved
* must_approve_move • Flag if moved studies must be approved
* must_approve_copy • Flag if copied studies must be approved
Errors
Notes
top

Description Get the users event flags for a namespace
URL /user/event
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
namespace_id • Id of the namespace to set the flags on
uuid • Return event flags for this user, not current user (optional)
Returns status • OK
event_share • Notify the user on a share into the namespace (optional)
event_share_unapproved • Notify the user when a study is shared with the namespace and requires an approval (optional)
event_approve • Notify the user on a approval needed into the namespace (optional)
event_upload • Notify the user on an upload into the namespace (optional)
event_upload_fail • Notify the user on a failed upload into the namespace (optional)
event_harvest • Notify the user on a harvest into the namespace (optional)
event_copy • Notify the user when a study is copied into the namespace (optional)
event_new_report • Notify the user when a report is attached in the namespace (optional)
event_report_remove • Notify the user when a report is removed in the namespace (optional)
event_study_comment • Notify the user when a comment is attached to a study in the namespace (optional)
event_status_change • Notify the user when the status of a study is changed (optional)
event_message • Notify the user when a message is sent to the namespace (optional)
event_node • Notify the user when an account node sends an event (optional)
event_link • Notify the user when an anonymous link is hit in the namespace (optional)
event_link_mine • Notify the user when an anonymous link created by the user is hit in the namespace (optional)
event_thin_study_success • Notify the user when a thin study retrieval they initiated succeeds (optional)
event_thin_study_fail • Notify the user when a thin study retrieval they initiated fails (optional)
event_case_assignment • Notify the user when they are assigned a case as a medical or admin user (optional)
event_incoming_study_request • Notify the user when they get an incoming study request (optional)
event_query_add • Notify the user when a new query is issued (optional)
event_query_edit • Notify the user when a query is edited (optional)
event_query_new_recipient • Notify the user when they are added to a query as a new recipient (optional)
event_query_reply • Notify the user when they leave a new reply in a query (optional)
event_site_qualified • Notify the user when a trial site is qualified for the clinical trial account (optional)
Errors NOT_FOUND • The namespace or user can not be found
NOT_MEMBER • The user is not a member of this namespace
NOT_PERMITTED • You are not allowed to get user's event flags
INVALID_FLAG • An invalid flag was passed. The error_subtype holds the name of the invalid flag
Notes
  • * To get event flags of an other user you must be a sysadmin user, a support user for the namespace or have a role with the user_view_others_notifications permission for the namespace
top

Description Set the users event flags for a namespace
URL /user/event/set
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
namespace_id • Id of the namespace to set the flags on
uuid • Return event flags for this user, not current user (optional)
event_share • Notify the user on a share into the namespace (optional)
event_share_unapproved • Notify the user when a study is shared with the namespace and requires an approval (optional)
event_approve • Notify the user on a approval needed into the namespace (optional)
event_upload • Notify the user on an upload into the namespace (optional)
event_upload_fail • Notify the user on a failed upload into the namespace (optional)
event_harvest • Notify the user on a harvest into the namespace (optional)
event_copy • Notify the user when a study is copied into the namespace (optional)
event_new_report • Notify the user when a report is attached in the namespace (optional)
event_report_remove • Notify the user when a report is removed in the namespace (optional)
event_study_comment • Notify the user when a comment is attached to a study in the namespace (optional)
event_status_change • Notify the user when the status of a study is changed (optional)
event_message • Notify the user when a message is sent to the namespace (optional)
event_link • Notify the user when an anonymous link is hit in the namespace (optional)
event_link_mine • Notify the user when an anonymous link created by the user is hit in the namespace (optional)
event_thin_study_success • Notify the user when a thin study retrieval they initiated succeeds (optional)
event_thin_study_fail • Notify the user when a thin study retrieval they initiated fails (optional)
event_case_assignment • Notify the user when they are assigned a case as a medical or admin user (optional)
event_incoming_study_request • Notify the user when they get an incoming study request (optional)
event_query_add • Notify the user when a new query is issued (optional)
event_query_edit • Notify the user when a query is edited (optional)
event_query_new_recipient • Notify the user when they are added to a query as a new recipient (optional)
event_query_reply • Notify the user when they leave a new reply in a query (optional)
event_site_qualified • Notify the user when a trial site is qualified for the clinical trial account (optional)
Returns status • OK
Errors NOT_FOUND • The namespace or user can not be found
NOT_MEMBER • The user is not a member of this namespace
NOT_PERMITTED • You are not allowed to set user's event flags
INVALID_FLAG • An invalid flag was passed. The error_subtype holds the name of the invalid flag
Notes
  • Email notifications are sent to user.email and user.alt_emails
  • * To set your own event flags you must have the user_modify_notifications permission for the namespace
  • * To set event flags of an other user you must be a sysadmin user, a support user for the namespace or have a role with the user_modify_others_notifications permission for the namespace
top

Description Set and get the shared secret for a token authenticator
URL /user/token
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
generate • Flag to generate the shared secret for a token authenticator and enable TOKEN PIN authentication
delete • Flag to delete the shared secret and disable TOKEN PIN authentication
Returns status • OK
enabled • Flag if token authentication is enabled
secret • The base32 encoded shared secret for the authenticator (only returned if the generate flag is passed)
Errors NOT_PERMITTED • You are not permitted to do this
ALREADY_DONE • A shared secret was already generated
Notes
top

Description Forget all trusted (remembered) devices for the user
URL /user/device/clear
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
Returns status • OK
Errors
Notes
top

Description Set and get the users signature
URL /user/signature
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
signature • Set the users signature to this base64 encoded image
Returns status • OK
signature • The users signature as a base64 encoded image
Errors
Notes
top

Description Enable a disabled user
URL /user/enable
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
uuid • User uuid
disable • A flag indicating whether to disable the user (optional)
Returns status • OK
Errors NOT_FOUND • The user can not be found
NOT_PERMITTED • You are not permitted to enable this user
NOT_DISABLED • The user is not disabled
NOT_ENABLED • The user is not enabled
Notes
  • You can not enable yourself
  • A sysadmin or support user can enable anyone else
  • An account user with an administrative role can enable only the user in the same account, that was disabled by cron due to inactivity time, not manually by this endpoint
  • An account user with an administrative role should use /account/user/enable to enable/disable user in account
top

Description List the users that use public key authentication
URL /user/pubkey/list
Parameters uuid • The node id
serial_no • The serial number of the node
public_key_format • The desired public key format to be returned, rfc4716 by default (rfc4716|openssh|asis) (optional)
Returns status • OK
users • An array of the users. Each object holds the following fields: email, public_key
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The node can not be found
Notes
  • The list is sorted by creation order from most recent to oldest
top

Description Set the public key for a user
URL /user/pubkey/set
Parameters uuid • The node id
serial_no • The serial number of the node
email • The users email
public_key • A public key for public key authentication
Returns status • OK
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The node or user can not be found
NO_USER_PUBKEY • The user does not use public key authentication
Notes The user must have a public key already to set the new public key
top

Study commands

Description Add a study from a node
URL /study/add
Parameters (sid || uuid && serial_no) • Either the sid or the node id and serial number
(study_uid || study_uid && storage_namespace && phi_namespace) • The study uid if node authentication or the storage triplet if sid authentication
thin • Flag to add this as a thin study (optional)
patient_name • DICOM tag (0010,0010)(optional)
patientid • DICOM tag (0010,0020) (optional)
patient_sex • DICOM tag (0010,0040) (optional)
patient_birth_date • DICOM tag (0010,0030) (optional)
patient_birth_time • DICOM tag (0010,0032) (optional)
patient_age • DICOM tag (0010,1010) (optional)
patient_weight • DICOM tag (0010,1030) (optional)
patient_address • DICOM tag (0010,1040) (optional)
patient_size • DICOM tag (0010,1020) (optional)
patientid_other • DICOM tag (0010,1000) (optional)
patient_name_other • DICOM tag (0010,1001) (optional)
patient_phone • DICOM tag (0010,2154) (optional)
patient_additional_history • DICOM tag (0010,21B0) (optional)
study_description • DICOM tag (0008,1030) (optional)
accession_number • DICOM tag (0008,0050) (optional)
patient_birthname • DICOM tag (0010,1005) (optional)
patient_mother_birthname • DICOM tag (0010,1060) (optional)
medical_record_locator • DICOM tag (0010,1090) (optional)
patient_religious_preference • DICOM tag (0010,21F0) (optional)
patient_comments • DICOM tag (0010,4000) (optional)
patient_current_location • DICOM tag (0038,0300) (optional)
patient_institution_residence • DICOM tag (0038,0400) (optional)
patient_ethnic_group • DICOM tag (0010,2160) (optional)
patient_occupation • DICOM tag (0010,2180) (optional)
study_date • DICOM tag (0008,0020) (optional)
study_time • DICOM tag (0008,0030) (optional)
modality • DICOM tag (0008,0060) (optional)
referring_physician • DICOM tag (0008,0090) (optional)
image_count • Images in the study (optional)
attachment_count • Attachment count (optional)
integration_key • Integration key for the study (optional)
destination_ae_title • The destination aetitle (optional)
source_ae_title • The source aetitle (optional)
node_id • If this is a thin study the gateway UUID to retrieve it from can be specified (optional)
customfield-{CUSTOMFIELD_UUID|DICOM_TAG} • Custom field(s), see notes in /study/add (optional)
Returns status • OK
uuid • The study uuid
engine_fqdn • The FQDN of the engine to store the study on
Permission study_upload or study_thin
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
INVALID_INTEGER • An invalid integer was passed. The error_subtype holds the name of the invalid integer
INVALID_FLAG • An invalid flag was passed. The error_subtype holds the name of the invalid flag
INVALID_CREDENTIALS • The sid or node credentials are invalid
ALREADY_EXISTS • The study already exists. The error_subtype holds the uuid of the study and error_data holds the data from the /study/get call
INVALID_CUSTOMFIELD • Invalid custom field(s) name or value were passed. The error_subtype holds an array of the error details
NOT_PERMITTED • You are not permitted to do this
NAMESPACE_NOT_FOUND • The namespace was not found
NOT_FOUND • The error_subtype holds the name of the key for the object that can not be found
PENDING_RESTORE • The study is getting retrieved from the archive. Try this call again after a delay
VALIDATION_FAILED • Some keys are not validated against study_field_validate. The error_subtype holds list of those keys.
Notes
  • The study will be added as phantom study unless the thin flag is set. A /study/notify call from storage will remove the phantom status.
  • If the node configuration has do_local_push set to true then routing rules will be run to create any push job(s) to send the study to other locations attached to the node. The detail field in /node/ping will contain use_cache for these push jobs.
  • A customfield either be a defined customfield or an arbitrary DICOM tag if the account setting enable_dicom_tag_customfields is on. For a defined customfield pass the UUID for a DICOM tag pass the tag in (XXXX,XXXX) format.
  • If this is a thin study the study_uid does not need to be and should not be passed in
top

Description Update a study
URL /study/set
Parameters (sid || uuid && serial_no) • Either the sid or the node id and serial number
(study_id || study_uid || study_uid && storage_namespace && phi_namespace) • The uuid of the study if sid authentication or the study_uid if node authentication or the storage triplet if you want a future set
patient_name • DICOM tag (0010,0010) (optional)
patientid • DICOM tag (0010,0020) (optional)
patient_sex • DICOM tag (0010,0040) (optional)
patient_birth_date • DICOM tag (0010,0030) (optional)
patient_birth_time • DICOM tag (0010,0032) (optional)
patient_age • DICOM tag (0010,1010) (optional)
patient_weight • DICOM tag (0010,1030) (optional)
patient_address • DICOM tag (0010,1040) (optional)
patient_size • DICOM tag (0010,1020) (optional)
patientid_other • DICOM tag (0010,1000) (optional)
patient_name_other • DICOM tag (0010,1001) (optional)
patient_phone • DICOM tag (0010,2154) (optional)
patient_additional_history • DICOM tag (0010,21B0) (optional)
study_description • DICOM tag (0008,1030) (optional)
accession_number • DICOM tag (0008,0050) (optional)
patient_birthname • DICOM tag (0010,1005) (optional)
patient_mother_birthname • DICOM tag (0010,1060) (optional)
medical_record_locator • DICOM tag (0010,1090) (optional)
patient_religious_preference • DICOM tag (0010,21F0) (optional)
patient_comments • DICOM tag (0010,4000) (optional)
patient_current_location • DICOM tag (0038,0300) (optional)
patient_institution_residence • DICOM tag (0038,0400) (optional)
patient_ethnic_group • DICOM tag (0010,2160) (optional)
patient_occupation • DICOM tag (0010,2180) (optional)
study_date • DICOM tag (0008,0020) (optional)
study_time • DICOM tag (0008,0030) (optional)
modality • DICOM tag (0008,0060) (optional)
referring_physician • DICOM tag (0008,0090) (optional)
image_count • Images in the study (optional)
attachment_count • Attachment count (optional)
integration_key • Integration key for the study (optional)
destination_ae_title • The destination aetitle (optional)
source_ae_title • The source aetitle (optional)
node_id • If this is a thin study the gateway UUID to retrieve it from can be specified (optional)
customfield-{CUSTOMFIELD_UUID|DICOM_TAG} • Custom field(s), see notes in /study/add (optional)
use_upload_permission • Flag to use the upload permissions for the permissions check (optional)
find_order_uuid • UUID of the search record used to modify the study (optional)
seconds_to_ingest • Flag to re-calculate the seconds_to_ingest metric (optional)
parital_save • Flag to bypass unset required customfields. Works only if account setting study_set_unapproved_allow_bypass_required_fields is set (optional)
Returns status • OK
uuid • The study uuid
Permission study_edit or study_thin or study_upload if the study was previously uploaded and the use_upload_permission flag was set
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
INVALID_CREDENTIALS • The sid or node credentials are invalid
NOT_FOUND • The study can not be found
NOT_PERMITTED • You are not permitted to edit this study
INVALID_CUSTOMFIELD • Invalid custom field(s) name or value were passed. The error_subtype holds an array of the error details
PENDING_MUST_MATCH • The study is pending a must match approval from storage and can not be edited in this state
VALIDATION_FAILED • Some keys are not validated against study_field_validate. The error_subtype holds list of those keys.
Notes
  • A node can edit a phantom study a user can not.
  • A future set will update the study when it is received from storage
top

Description Delete a study
URL /study/delete
Parameters (sid || node_id && serial_no) • Either the sid or the node id and serial number
(uuid || study_uid && storage_namespace && phi_namespace) • The study uuid or the storage triplet
Returns status • OK
Permission study_delete
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The study can not be found
NOT_PERMITTED • You are not permitted to delete this study
Notes
  • The study will be deleted from storage after storage_delete_delay minutes. Reuploading the study during this period will revive and update the study.
top

Description Get a list of the studies the user can see
URL /study/list
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
filter.* Filters (optional)
page.* Pagination (optional)
sort_bySorting (optional)
template • A JSON hash with name, account_id and language of the template to return (optional)
extra • Flag to return extra data as detailed in /study/get (optional)
customfield_h • Flag to return a customfield hash as detailed in /study/get (optional)
permissions_diff • Flag to return only the permissions that differ from the namespace permissions (optional)
fields • A JSON list of the study fields to return (optional)
limit.hl7 • Limit the length of Hl7 list to return. Zero means no limit (optional)
Returns status • OK
page • The pagination status hash
studies • An array of the studies the user has. Each object holds the following same fields as the /study/get call
template • The template HTML if a template was requested
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
INVALID_TEMPLATE • The template is invalid the error_subtype holds the detail
Notes
  • The list is sorted by creation order from most recent to oldest
  • The additional information flag fields to /study/get can also be passed
  • If a filter has the virtual filter filter.SMART_SEARCH.equals a "smart" filter will be applied to the list
  • A filter on the study_push_status field will return all studies that have at least one push status that matches e.g. filter.study_push_status.equals=S or filter.study_push_status.in=["S","N"]
  • A study_push_status filter can be further scoped down to a destination name with a like filter e.g. filter.study_push_status.destination_name.like=north% or a destination uuid equals filter e.g. filter.study_push_status.destination_uuid.equals=UUID
  • filter.has_direct_shares.equals is boolean flag to filter the if the study was/was not shared
  • A study_push_status filter can be further scoped down to a creation timestamp "greater than" like filter.study_push_status.created.ge=2022-10-02+11:12:13
  • The request body size is limited to 20KiB
top

Description Get a count of the studies the user can see
URL /study/count
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
filter.* Filters (optional)
nocache • Skip cached result, if it exists in cache (optional)
cached • Return result only if caching enabled (optional)
Returns status • OK
count • The study count
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
DISABLED • The endpoint is disabled. Either (parameter cached and system flag study_count_cached_disabled are set) OR system flag study_count_disabled is set
Notes
  • All filters from the /study/list call apply here
  • For now two filter schemas could provide inaccurate cached result, which is expired in 1 hour or by nocache=1 parameter: filter.accession_number.like=X&must_approve=X and filter.patientid.like=X&must_approve=X.
  • System flags are set by /system/set
top

Description PACS mode. Get a count of the studies the user can see per each filter set
URL /study/count_by_filter
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
filter.*Filters (optional)
filter_uuids • JSON array of filter.uuid (optional)
Returns status • OK
count_by_filter • JSON hash of pairs {filter.uuid => $count}
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
INVALID_FIELD • Invalid filter_uuids JSON array of uuids
Notes
  • All filters from the /study/list call apply here.
    If filter_uuids is not empty, then only for that uuids list counters are returned.
top

Description Get a list of the studies the node can see
URL /study/cfind
Parameters uuid • The node id
serial_no • The serial number of the node
entire_account • Flag to search the entire account rather than just the nodes namespace. (optional)
is_available • Flag to limit search to studies that are ready for viewing. (optional)
filter.* Filters (optional)
page.* Pagination (optional)
Returns status • OK
page • The pagination status hash
studies • An array of the studies the user has. Each object holds the following same fields as the /study/get call
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The node can not be found
RUNNING • This cfind is currently in process
Notes The list is sorted by creation order from most recent to oldest
top

Description Get a study
URL /study/get
Parameters (sid || node_id && serial_no) • Either the sid or the node uuid and serial number
(uuid || study_uid && storage_namespace && phi_namespace) • The study uuid or the storage triplet
full_hl7 • Flag to return the full hl7 record instead of just the uuid (optional)
limit.hl7 • Limit the length of Hl7 list to return. Zero means no limit (optional)
permissions_diff • Flag to return only the permissions that differ from the namespace permissions (optional)
extra • Flag to return extra data as detailed below (optional)
customfield_h • Flag to return a customfield hash as detailed below (optional)
shared_from_account_name • Flag to return shared_from_account_name (optional)
fields • A JSON list of the study fields to return (optional)
Returns status • OK
uuid • Study uuid
star • The study star flag
study_uid • Study uid in storage
phi_namespace • PHI namespace
phi_namespace_name • PHI namespace description
storage_namespace • Storage namespace
storage_namespace_name • Storage namespace description
engine_fqdn • The FQDN of the storage engine the study is stored on
source • Source of the study (upload|harvest|share|copy)
source_ae_title • The source aetitle for the harvesting
destination_ae_title • The destination aetitle for the harvesting
must_approve • A flag that the study must be approved or rejected before it is generally visible in the namespace
share_message • If this study was shared this field will exist and hold any share message
phantom • Is this a phantom study, a phantom study is one that is loading into storage
thin • Is this a thin study, a thin study is not in storage and needs to be query retrieved to be loaded into storage
patient_name • DICOM tag (0010,0010)
patientid • DICOM tag (0010,0020)
patient_sex • DICOM tag (0010,0040)
patient_birth_date • DICOM tag (0010,0030)
patient_birth_time • DICOM tag (0010,0032)
patient_age • DICOM tag (0010,1010)
patient_weight • DICOM tag (0010,1030)
patient_address • DICOM tag (0010,1040)
patient_size • DICOM tag (0010,1020)
patientid_other • DICOM tag (0010,1000)
patient_name_other • DICOM tag (0010,1001)
patient_phone • DICOM tag (0010,2154)
patient_additional_history • DICOM tag (0010,21B0)
study_description • DICOM tag (0008,1030)
accession_number • DICOM tag (0008,0050)
patient_birthname • DICOM tag (0010,1005)
patient_mother_birthname • DICOM tag (0010,1060)
medical_record_locator • DICOM tag (0010,1090)
patient_religious_preference • DICOM tag (0010,21F0)
patient_comments • DICOM tag (0010,4000)
patient_current_location • DICOM tag (0038,0300)
patient_institution_residence • DICOM tag (0038,0400)
patient_ethnic_group • DICOM tag (0010,2160)
patient_occupation • DICOM tag (0010,2180)
study_date • DICOM tag (0008,0020)
study_time • DICOM tag (0008,0030)
modality • DICOM tag (0008,0060)
referring_physician • DICOM tag (0008,0090)
transfer_syntax_uid • DICOM tag (0002,0010)
image_count • Images in the study
attachment_count • Attachment count
size • Size of the study in bytes
compressed_size • Compressed size of the study in bytes
integration_key • Integration key for the study
permissions • A hash of the study_* type permissions for this study
patient_id • If the user has patient_view permissions in the account this field will exist and hold the patient uuid
created • Created datetime stamp of the study
updated • Updated datetime stamp of the study
study_status • The study status. Is null for just created study.
study_status_tags • The available study status tags. (This is only returned if they have study_status_edit permissions on the study and the study is not locked by another user)
study_status_tags_default • The "default" value for study_status. It is calculated as (account.settings.study_status_tags_default || account.settings.study_status_tags[0])
study_status_timer • The study status timer value in seconds. A value of -1 means the timer has completed and this is only returned if the study_status_timer account flag is on.
is_dicom_wrapped • Is the study a wrapped DICOM
is_locked • Is the study locked by another user
is_frozen • Is the study frozen
is_being_retrieved • Is this a thin study in the process of being retrieved
is_cloudpacs • Is the study backed by the Intelerad long term archive
shared_from_account_name • First found external account's name in shared_from chain. See notes below. (This is only returned if parameter shared_from_account_name is set)
activity_id • The associated activity, if exists
has_external_viewer • A flag if the study has an external viewer option
stat_filter • Is "stat" flag set. It is the value of name=stat_filter customfield if such exists.
seconds_to_ingest • The number of seconds it took to ingest the study. Blank if the study was ingested before this feature was added, -1 if we don't have enough data to calculate this
accelerators • A JSON list of accelerator FQDN the study may be on (only returned if the probe_for_accelerator flag is on)
viewer_link • Link to the study viewer. If the account has SAML SSO the link will be to the SSO entry point, if not it will be a direct link.
hl7 • An array of the hl7 objects associated with this study. Each object has the following fields or is the complete record from /hl7/get if the full_hl7 flag is passed
* uuid • Id of the object
tags • An array of user tags associated with this object (This is only returned if the object has tags)
customfields • An array of the custom fields associated with this study. Each object has the following fields (This is only returned if the study has custom fields)
customfields_DICOM • An array of the DICOM tag custom fields associated with this study. Each object has the following fields (This is only returned if the study has DICOM tag custom fields)
* tag • DICOM tag
* value • Value of the custom field
radreports • An array of the radreports associated with this study. Each object has the fields in the /radreport/description call
routes • An array of the manual routes that the user can run against this study. Each object has the following fields (This is only returned if manual routes are available)
* uuid • Route id
* name • Route name
* capture_email • Does an email need to be captured to run this rule - flag
meetings • An array of the meetings the user can join. Each object has the fields in /meeting/get call (This is only returned if meetings are available)
comments • An array of the study comments, order from most recent too earliest. This is only returned if the user has the study_comment_view permissions. Each object has the fields in the /study/comment/get call.
study_push_status • An array of the study push status. This is only returned if the study_push_status account setting is enabled. Each object has the following fields.
* destination_uuid • Destination Id
* destination_name • Destination Name
* destination_type • Destination Type
* status • The status, either 'I'n process, pe'N'ding, 'S'uccessful, 'P'artial or 'F'ailed
* status_reason • Additional detail for the status
* image_count • The image count for the push
* updated • Date and time the status was last updated
* created • Date and time the push was created
* group_key • The string key used to group push statuses. Statuses that group: local pushes (by destination address), copy statuses, same UID statuses
* is_local • The flag indicating if the corresponding push was local
--- The following fields are only returned if the extra flag is specified ---
created_at • Date and time the record was created
primary_created • Date and time the record for the primary study was created
account_name • Name of the account the study is in
created_by_name • Name of the user who created the study
created_by_email • Email of the user who created the study
created_by_mobile_phone • Mobile phone number of the user who created the study
created_by_type • Type of user who created the study
created_for_name • Name of the user who the study was created for
created_for_type • Type of user the study was created for
hipaa_name • HIPAA compliant version of the patient name
first_name • Patient first name
last_name • Patient last name
study_status • Study status value
message_count • Number of messages associated with this study
last_access • Date and time the study was last accessed in storage
query_count • Number of open queries associated with this study
--- The following field is only returned if the customfield_h flag is specified ---
customfield_h • A JSON hash of the customfield values keyed by the UUID
--- The following field is only returned if the enable_orders_in_worklist account setting is enabled ---
order_count • Number of orders linked with this study (having the same accession_number). This field is filterable.
--- The following field is only returned if the enable_radreport_lock_reading account setting is enabled ---
radreport_locked_user_id • Only if there is some locked radreport for this study. Contains uuid of lock owner.
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The study can not be found
NOT_PERMITTED • You are not permitted to access this study
Notes If shared_from_account_name is provided: if the study is not shared, then field shared_from_account_name is not returned; if there is no external account in shared_from chain, then shared_from_account_name contains account's name for provided study.
top

Description Get the users permissions on the study
URL /study/permissions
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
uuid • The study uuid
Returns status • OK
study_edit • The permission flag setting
↳ study_edit_approved • The permission flag setting
↳ study_edit_unapproved • The permission flag setting
study_download • The permission flag setting
study_browse • The permission flag setting
study_share • The permission flag setting
↳ study_share_email • The permission flag setting
↳ study_share_share_code • The permission flag setting
↳ study_share_account • The permission flag setting
↳ study_share_location • The permission flag setting
↳ study_share_group • The permission flag setting
↳ study_share_user • The permission flag setting
↳ study_share_rsna • The permission flag setting
↳ study_share_npi • The permission flag setting
↳ study_share_request • The permission flag setting
study_push • The permission flag setting
study_delete • The permission flag setting
study_approve • The permission flag setting
study_view • The permission flag setting
study_upload • The permission flag setting
study_report_view • The permission flag setting
study_report_view_only_own • The permission flag setting
study_report_hl7_view • The permission flag setting
study_report_upload • The permission flag setting
study_report_delete • The permission flag setting
study_sync • The permission flag setting
study_status_tags_ignore_rules • The permission flag setting
radreport_edit • The permission flag setting
radreport_view • The permission flag setting
radreport_view_only_own • The permission flag setting
meeting_edit • The permission flag setting
meeting_view • The permission flag setting
link_direct • The permission flag setting
link_edit • The permission flag setting
link_edit_pin • The permission flag setting
link_view • The permission flag setting
reports • A JSON array of the report ids they can view. This is not returned if they can view all reports
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The study can not be found
NOT_PERMITTED • You are not permitted to access this study
Notes
top

Description Check if a study exists in a namespace
URL /study/exists
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
(uuid || study_uid && storage_namespace && phi_namespace || study_uid && account_id) • The study uuid, the storage triplet, or the study uid and account id
Returns status • OK
exists • Flag if the study exists
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
Notes
top

Description Push a study to a destination
URL /study/push
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
uuid • The study uuid
destination_id • The destination to push it to
batch_no • The batch number if pushing to a CD burner
ping • Flag to send the ping job back in this call
Returns status • OK
(uuid|ping) • Id of the push job or the ping job if the ping flag was sent
Permission study_push
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The study or destination can not be found
NOT_PERMITTED • You are not permitted to push this study
PENDING • There is already a pending push job
NOT_READY • The study is not ready for pushing
Notes
top

Description Push a study HL7 message to a destination
URL /study/push/hl7
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
uuid • The study uuid
destination_id • The destination to push it to
hl7_template_id • The HL7 template to use (optional)
hl7_id • HL7 message to use in the template (optional)
once • Flag that this message should only be sent a maximum of one time (optional)
Returns status • OK
uuid • Id of the push job
Permission study_push
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The study, destination, template or hl7 message can not be found
NOT_PERMITTED • You are not permitted to push this study
NO_HL7_SUPPORT • The destination doesn't support HL7
Notes
  • If a hl7_template_id is not passed a ORM message will be created
  • hl7_id can be of the form first_HL7-TYPE or last_HL7-TYPE in which case it will find either the first or the last HL7 message for the study of the given type e.g. first_ORM or last_ADT or last__ANY_
  • UUIDs of deleted studies are accepted by this call
top

Description Returns a PDF report for the study HL7 message
URL /study/pdf/hl7
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
uuid • The study uuid
hl7_id • HL7 message to create the PDF report for
Returns Streams back the PDF report
Permission study_report_hl7_view
Errors [404] • Not found
Notes
top

Description Fax a PDF report for the study's HL7 message
URL /study/fax/hl7
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
uuid • The study uuid
hl7_id • HL7 message to create the PDF report for
number • The fax number to send the PDF report to
Returns status • OK
Permission study_report_hl7_view
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The study or HL7 message can not be found
INVALID_PHONE • The fax number is invalid
PDF_FAILED • The PDF report failed to generate
Notes
top

Description Send a PDF report for the study to email
URL /study/attachment/email
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
uuid • The study uuid
attachment_guid • JSON array of attachment guids
email • The comma-separated list of emails
Returns status • OK
Permission study_report_view study_report_share_email
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
INVALID_JSON • Incorrect attachment_guid - not JSON array
NOT_FOUND • The study or attachment message can not be found
INVALID_EMAIL • The email is invalid
NOT_ENABLED • The report mailing out is not enabled for the account
NOT_PERMITTED • You are not permitted to do it
NOT_READY • The study is not ready
PDF_FAILED • The PDF report failed to generate, some storage error
Notes
top

Description Request a cmove of a study
URL /study/cmove
Parameters uuid • The node id
serial_no • The serial number of the node
study_uid • The study uid
aetitle • The aetitle to send to
detail • Additional detail to send on the /node/ping (optional)
ping • Flag to send the ping job back in this call
Returns status • OK
(uuid|ping) • Id of the push job or the ping job if the ping flag was sent
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The node can not be found
STUDY_NOT_FOUND • The study can not be found
DESTINATION_NOT_FOUND • The destination can not be found
PENDING • There is already a pending push job
NOT_READY • The study is not ready for pushing
RETRIEVE • A thin study retrieval error. The error_subtype holds further detail
Notes
  • If this is a thin study and the ping flag is not set retrieval will be started for the study and the uuid which be returned as RETRIEVING
top

Description Can a node remove a study from local disk cache
URL /study/node/can/remove
Parameters uuid • The node id
serial_no • The serial number of the node
study_uid • The study uid
Returns status • OK
can_remove • Flag if the node can remove the study from local cache
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The node can not be found
STUDY_NOT_FOUND • The study can not be found
Notes
top

Description Who can they share a study
URL /study/share/who
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
uuid • The study uuid
type • Type of objects you want (account|location|group|user)
Returns status • OK
shares • An array of the objects they can share this study with. Each object in the array will have the following fields
* uuid • Id of the object
* name • Name of the object
Permission study_share
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The study or share object can not be found. The error_subtype holds a the name of the key that can not be found
NOT_PERMITTED • You are not permitted to share this study
Notes
top

Description Share a study
URL /study/share
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
(uuid || study_uid && storage_namespace && phi_namespace) • The study uuid or the storage triplet if you want a future share
(account_id || location_id || group_id || user_id || share_code || email || masshiway || rsna || npi || study_request_id) • uuid of the account, location, group, user, study request or share code, email address(es), RSNA, NPI or masshiway recipient to share this study with
message • Message to the recipient (optional)
integration_key • Integration key to tag the share with (optional)
charge_authorized • Flag that the sender authorized charging for this share (optional)
charge_modality • Modality of the study the charge was authorized for (optional)
customfield-{CUSTOMFIELD_UUID} • Custom field(s) to apply to the shared study (optional)
Returns status • OK
Permission study_share
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The study or share object can not be found. The error_subtype holds a the name of the key that can not be found
NOT_PERMITTED • You are not permitted to share this study
NOT_MATCHED • This study does not match the study request criteria
REQUEST_CLOSED • The study request is closed
INVALID_PARAMETERS • Only pass a account_id or a location_id or a group_id or a user_id or a share code or an email
INVALID_EMAIL • An invalid email was passed for an email share
INVALID_NPI • An invalid NPI was passed for a NPI share
PHANTOM • This is a phantom study
INVALID_JSON • The field is not in valid JSON format. The error_subtype holds the name of the field
NOT_HASH • The field is not a JSON hash. The error_subtype holds the name of the field
SHARE_FAILED (SAME) • The study can't be shared into the same namespace.
SHARE_FAILED (NO_DESTINATION) • The study can't be shared with a deleted object.
SHARE_FAILED (DECLINED) • The charge card was declined.
SHARE_FAILED (NO_CARD) • The user does not have a card on file.
SHARE_FAILED (NO_CHARGE_MODALITY) • The charge modality is required if charge_authorized is set and the charging is by modality.
SHARE_FAILED (NO_DUP_SHARE) • The destination namespace has the no_dup_share flag turned on and this study is a duplicate of an existing study in the namespace.
SHARE_FAILED (ACCOUNT_DISABLED) • The destination namespace is in disabled account.
FORBIDDEN_FIELD • A hidden or read-only customfield was passed. The error_subtype holds the invalid field name.
Notes
  • If the storage triplet is used the share is deferred until the study is loaded into services. The deferred share will expire after 2 hours.
  • The masshiway parameter is a JSON hash with three of the following keys required and one must be last name: last_name, first_name, speciality, zip, phone, hiway_id
  • The rsna parameter is a JSON hash with pin and exam_id fields
  • The email parameter can be a list of email addresses
  • The sharer is charged with namespace's Share pricing table by modality or by customfields depending on namespace's share_charge_by_modality flag
  • If account/namespace setting disable_thin_study_share_share_code is set, then thin study would get error=NOT_PERMITTED with suberror=study_thin
top

Description Stop sharing a study
URL /study/share/stop
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
uuid • The study uuid
(account_id || location_id || group_id || user_id || user_invite_share_id) • uuid of the account, location, group, user or user invitation to stop sharing this study with
Returns status • OK
Permission study_share
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The study or share object can not be found. The error_subtype holds a the name of the key that can not be found
NOT_PERMITTED • You are not permitted to stop sharing this study
INVALID_PARAMETERS • Only pass a account_id or a location_id or a group_id or a user_id
Notes
top

Description Get the study shares
URL /study/share/list
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
uuid • The study uuid
name • Flag to return a hash with additional fields: the uuid, name of the object, and an action that created the share (copy|share) (optional)
include_indirect_versions • Flag to include indirect study shares in the result (for primary studies only) (optional)
include_copies • Flag to include study copies in the result (optional)
Returns status • OK
account_id • A list of the account_ids the study is shared with
location_id • A list of the location_ids the study is shared with
group_id • A list of the group_ids the study is shared with
user_id • A list of the user_ids the study is shared with
user_invite_share_id • A list of the user invitations the study is shared with
Permission study_share
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The study can not be found
NOT_PERMITTED • You are not permitted to view this list
Notes
top

Description Approve a study
URL /study/approve
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
uuid • The study uuid
delay • Number of seconds to delay showing the study as approved and running routing and events on it (optional)
must_match • A JSON hash of study field names and values that must match before showing the study as approved and running routing and events on it (optional)
Returns status • OK
Permission study_approve
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The study can not be found
NOT_PERMITTED • You are not permitted to approve this study
DELAY_OR_MATCH • You can either delay or match, not both
INVALID_DELAY • A delay must be between 0 and 600 seconds
INVALID_JSON • The field is not in valid JSON format. The error_subtype holds the name of the field
INVALID_FIELD • An invalid must match field was passed. The error_subtype holds the name of the field
INVALID_CUSTOMFIELD • Some custom fields are required and not set. The error_subtype holds an array of the error details
Notes
  • If there is a customfield called approved_by_name in the account then it will be populated with the current user's name
top

Description Reject a study
URL /study/reject
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
uuid • The study uuid
message • Message to send to the person who shared the study (optional)
Returns status • OK
Permission study_approve
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The study can not be found
NOT_PERMITTED • You are not permitted to approve this study
Notes
  • The message will be put into the named customfield reject_message of the original study if it exists
top

Description Attach an audit action to a study
URL /study/audit
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
uuid • The id of the study (optional if study_uid and storage_namespace are passed)
study_uid • The v3 storage uid of the study (optional if uuid is passed)
storage_namespace • The storage namespace of the study (optional if uuid is passed)
phi_namespace • The phi namespace of the study (optional)
action • The audit action (STUDY_VIEW|STUDY_VIEW_REASON|STUDY_EDIT|STUDY_ANONYMIZE|REPORT_UPLOAD|REPORT_REMOVE|REPORT_VIEW|IMAGE_ADDED|IMAGE_UPDATED|IMAGE_DELETED|STUDY_DOWNLOAD|ACCEPTED_NOT_DIAGNOSTIC|CANCELED_NOT_DIAGNOSTIC|AI_ACTION|VIEWER_ACTION|SIGNED_REPORT_ADDENDUM|WEB_UPLOADER_INGRESS_IMAGE_FILTERED)
detail • Additional information
Returns status • OK
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The study can not be found
INVALID_ACTION • An invalid action was passed
Notes
  • STUDY_VIEW_REASON should be sent prior to the corresponding STUDY_VIEW event for the view reason to be tracked
  • SIGNED_REPORT_ADDENDUM should be sent prior to the attachment upload
top

Description Set the star flag on a study for the user
URL /study/star
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
uuid • The id of the study
star • Star flag set on or off (1|0)
Returns status • OK
Permission study_star
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_PERMITTED • You are not permitted to star this study
NOT_FOUND • The study can not be found
INVALID_FLAG • An invalid flag was passed. The error_subtype holds the name of the invalid flag
Notes
top

Description Build a study detailed report
URL /study/report/detail
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
account_id • Limit to studies in the passed account
filter.* Filters (optional)
sort_bySorting (optional)
limit • Maximum size of the report. The default is 30,000 rows. If the report will be bigger than this an error will be returned (optional)
Returns status • OK
report_id • The report id
Permission study_report_detail
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
REPORT_ERROR • Unable to start the report
Notes This call will kick off the building of the report. Poll for the report status with /report/status command and download it with the /report/zip command.
top

Description Build a series detail report for recently acquired studies
URL /study/report/series
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
namespace_id • Namespace to run the report on
hours • Report on studies acquired within the last number of hours
limit • Maximum size of the report. The default is 30,000 studies. If the report will be bigger than this an error will be returned (optional)
email • Send the report to this email address(es) when it is done
Returns status • OK
report_id • The report id
Permission study_report_detail
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
REPORT_ERROR • Unable to start the report
Notes
  • This call will kick off the building of the report. Poll for the report status with /report/status command and download it with the /report/zip command.
  • The report will contain one line per series for studies acquired (uploaded or harvest) within the last number of hours. The report fields are as follows:
    • Patient ID
    • StudyInstanceUID
    • SeriesInstanceUID
    • Acquisition Date  (DICOM tag (0008,0022))
    • Acquisition File Count (number of images uploaded).
top

Description Get the viewer settings for the study
URL /study/viewer/settings
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
(study_id || study_uid && storage_namespace && phi_namespace) • Either the study uuid or the storage triplet
Returns status • OK
enable_v2_viewer • Value for the account flag
enable_v3_viewer • Value for the account flag
enable_viewer_print • Value for the account flag
viewer_show_reports • Value for the account flag
enable_viewer_export • Value for the account flag
viewer_diagnostic_quality • Value for the account flag
viewer_diagnostic_quality_always • Value for the account flag
viewer_preload_diagnostic_images • Value for the account flag
viewer_enable_mpr • Value for the account flag
viewer_single_instance_series • Value for the account flag
viewer_multiframe_split_method • Value for the account flag
viewer_study_page_link_visible • Value for the account flag
viewer_study_page_link_url • Value for the account flag
viewer_setting_not_diagnostic • Value for the account flag
auto_transcode • Value for the account flag
auto_transcode_modalities • Value for the account flag
viewer_default_mouse_tool • Value for the account flag
viewer_link_series • Value for the account flag
enable_viewer_toggle_annotations • Value for the account flag
enable_dicom_tag_customfields • Value for the account flag
radreport_branding_from_phi_namespace • Value for the account flag
viewer_anon_annotations_clear • Value for the account flag
accession_number_for_study_uid • Value for the account flag
viewer_study_enable_cpp_transcoding • Value for the namespace || account flag
no_edit_dicom_tags • If enable_dicom_tag_customfields is on this is a JSON list of the DICOM tags that can not be edited
accelerators • A JSON list of accelerator FQDN the study may be on (only returned if the probe_for_accelerator flag is on)
viewer_config • The viewer configuration JSON
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The study can not be found
Notes
top

Description Get the viewer3 settings for the study
URL /study/viewer3/settings
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
(study_id || study_uid && storage_namespace && phi_namespace) • Either the study uuid or the storage triplet
settings • A JSON list of user settings set via /setting/set to return (optional)
Returns status • OK
account_config • The account viewer3_config setting
role_config • The role viewer3_config settings
user_config • The user viewer3_confing settings
accelerators • A JSON list of accelerator FQDN the study may be on (only returned if the probe_for_accelerator flag is on)
enable_dicom_tag_customfields • Value for the account flag
accession_number_for_study_uid • Value for the account flag
viewer_study_page_link_visible • Value for the account flag with any brand override applied
no_edit_dicom_tags • If enable_dicom_tag_customfields is on this is a JSON list of the DICOM tags that can not be edited
viewer_study_enable_cpp_transcoding • Value for the namespace || account flag
non_diagnostic_mode • Value of the corresponding account setting, overridable by the non_diagnostic_mode system flag
settings • JSON hash of the requested settings (optional)
The rest of the fields are the same as /user/get
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The study can not be found
Notes
top

Description Gets the status and next available tags for a study according to account settings: study_status_tags + study_status_role_tags + study_status_tags_rules and role permission study_status_tags_ignore_rules
URL /study/status/get
Parameters sid • The session id
study_id • Study uuid
* • Any other parameters that could be processed by study_status_tags_rules
Returns status • OK
study_status • The study status. Is null for just created study.
study_status_tags • The available study status tags. (This is only returned if they have study_status_editi> permission on the study and the study is not locked by another user)
study_status_tags_default • The "default" value for study_status. It is calculated as (account.settings.study_status_tags_default || account.settings.study_status_tags[0])
Permission study_status_view
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The study can not be found
NOT_PERMITTED • You are not permitted to view the status for this study
Notes Now study_status_tags is calculated this way:
1. Original list is account.settings.study_status_tags.
2. If account.settings.study_status_role_tags is non-empty, then all tags which are not set there for provided user_account.role are deleted from the list.
3. If permission study_status_tags_ignore_rules is not set and account.settings.study_status_tags_rules is non-empty, then "next values list" is calculated from that rules and the result is intersection of that two lists.
top

Description Set the status of a study
URL /study/status/set
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
study_id • Study uuid
old • The old study status value
new • The new study status value
Returns status • OK
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The study can not be found
NOT_PERMITTED • You are not permitted to set the status for this study
STALE • The study status you have is stale
INVALID_TAG • The study status new value is not a valid value
LOCKED • Another user has locked this study
SINGLETON • The stage is a singleton stage and the user already has a locked study
Notes Possible tags against INVALID_VALUE are calculated as in /study/status/get with one exception - if account.settings.study_status_tags_ignore_rules_on_set is set, then it is calculated with no regard to account.settings.study_status_tags_rules, so only account.settings.study_status_role_tags is relevant.
top

Description Returns a list of the studies the user has locked in the order they were locked
URL /study/status/locks
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
page.* Pagination (optional)
Returns status • OK
page • The pagination status hash
studies • An array of the locked studies. Each object holds the following same fields as the /study/get call
Errors
Notes
top

Description Returns the history of the study status changes for the study
URL /study/status/history
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
study_id • Study uuid
Returns status • OK
history • An array of the status changes for the study. Each record has the following fields
* date • Date and time of the change
* old • The old status value
* new • The new status value
* seconds • The number of seconds the study was in the old status
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The study can not be found
NOT_PERMITTED • You are not permitted to view the status for this study
Notes
top

Description Move the study to another PHI namespace
URL /study/move
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
uuid • The study id
namespace_id • The namespace id
Returns status • OK
Permission study_move
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The study or namespace was not found.
NOT_PERMITTED • You are not permitted to move the study to this namespace
ALREADY_EXISTS • The study already exists in the destination namespace
Notes The user must have share permissions on the namespace they are trying to move the study too.
top

Description Duplicate a study to another namespace
URL /study/duplicate
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
uuid • The study id
(namespace_id || study_request_id) • The namespace or study request id to duplicate it to
include_attachments • Also duplicate attachments (optional)
overwrite • Flag if you want to overwrite an existing study in the destination namespace (optional)
exclude_phi • Flag to not duplicate PHI data (optional)
Returns status • OK
Permission study_duplicate for the study and study_upload for the destination namespace. study_duplicate_request is required additionally when duplicating by request
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The study or namespace was not found.
NOT_PERMITTED • You are not permitted to duplicate the study to this namespace
ALREADY_EXISTS • The study already exists in the destination namespace
FAILED • The storage call failed to run
NOT_MATCHED • This study does not match the study request criteria
REQUEST_CLOSED • The study request is closed
NO_DESTINATION • The study can't be duplicated to a deleted object's namespace
Notes This creates a full copy of the study as if it was uploaded into the namespace
top

Description Clone a study optionally changing series/images uids, optionally to specified namespace and uid
URL /study/clone
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
uuid • The study id
new_series_uids • Flag if you want to generate new uids for the study series (optional)
new_image_uids • Flag if you want to generate new uids for the study images (optional)
study_uid • The new study uid (optional)
phi_namespace • Clone new study to that namespace (optional)
Returns status • OK
study_uid • new study uid
Permission study_view and study_clone for current study's namespace study_upload for phi_namespace
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
INVALID_FLAG • An invalid flag was passed. The error_subtype holds the name of the invalid flag
NOT_FOUND • The study or phi_namespace was not found.
NOT_PERMITTED • You are not permitted to clone the study. Not enough rights for phi_namespace
NOT_AVAILABLE • The study is not available.
FAILED • The storage call failed to run
ALREADY_EXISTS • There is already study with same uid
NOT_IN_ACCOUNT • The phi_namespace is in different account than this study
Notes If both phi_namespace and study_uid are provided, then create a copy of the study in the provided namespace. If only one of those provided, then MISSING_FIELDS.
Otherwise this creates a copy of the study with a new UID in the storage namespace.
top

Description Split a study into multiple studies, one per series
URL /study/split
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
uuid • The study id
namespace_id • The namespace id to split it into
no_split • Do not split on the series just create a new study with a study UID
Returns status • OK
Permission study_split for the study and study_upload for the destination namespace
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The study or namespace was not found.
NOT_AVAILABLE • The study is not available.
NOT_PERMITTED • You are not permitted to split the study to this namespace
RECENT_NAMESPACE_SPLIT • The study was the result of a split in this namespace within the last 24 hours
RUNNING • The split job is currently running
Notes
top

Description Freeze or thaw a study
URL /study/freeze
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
uuid • The study id
thaw • Flag to thaw a frozen study
Returns status • OK
Permission study_freeze
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The study
NOT_AVAILABLE • The study is not available.
NOT_PERMITTED • You are not permitted to freeze or thaw the study
ALREADY • The study is already frozen or thawed
Notes
  • When a study is frozen the following permissions are set to zero study_edit study_move study_split study_replicate study_duplicate study_report_upload study_report_delete study_upload study_thin annotation_edit keyimage_edit radreport_edit dicomdata_edit study_merge study_manual_route study_comment_edit study_status_edit study_share study_delete_image study_audio_record
  • All versions of the study (i.e. shares) are frozen or thawed
  • The study audit trail will show a FREEZE or THAW event
top

Description Run a manual routing rule on a study
URL /study/manual/route
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
uuid • The study id
route_id • The routing rule id
email • The email to share with if the rule has a share_email action with the USER_ENTRY token (optional)
message • The share message for the email share (optional)
Returns status • OK
Permission study_manual_route and route_manual_route
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The study or routing rule was not found.
NOT_PERMITTED • You are not permitted to manually route the study
ROUTE_NOT_MATCHED • The study does not match the route criteria
INVALID_EMAIL • An invalid email address was passed
Notes
top

Description Find matching HL7 orders for the study
URL /study/find/order
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
uuid • The study id
(accession_number || patientid || patient_name) • The full or partial accession number, MRN or patient name to search by. If none are passed the studies accession number will be used (optional)
page.* Pagination (optional)
Returns status • OK
page • The pagination status hash
orders • An array of the orders. Each order has the following fields
* find_order_uuid • UUID of the search record
* accession_number • Accession number
* patientid • Patient MRN
* patient_name • Patient name
* patient_sex • Patient sex
* patient_phone • Patient phone
* patient_birth_date • Patient birth date
* order_datetime • Date and time of the order
* study_description • Study description
* ordering_provider • Ordering provider
sources_used • An array of the sources that were actually looked through for the orders (the source should be configured and an appropriate list of parameters passed in the call). Possible values: orm|adt|athena|epic|manual.
Permission study_approve
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The study was not found.
NOT_PERMITTED • You are not permitted to find orders for this study
Notes
  • If you pass an accession number it is wildcarded as accession_number% search
  • If you pass a patientid it is wildcarded as patientid% search
  • If you pass a patientName it is wildcarded as %patient_name% search
  • ORM messages are searched; if the account setting include_adt_in_study_find_order is enabled ADT messages will also be searched
  • For ORM/ADT search setting study_find_order_latest_in_progress can be enabled to filter only IN_PROGRESS orders.
  • When the account setting include_adt_in_study_find_order is enabled, the setting include_only_latest_adt_in_study_find_order may also be enabled to further limit any ADT messages searched to only the most recent
  • When the account setting include_adt_in_study_find_order is NOT enabled, the setting include_only_latest_adt_in_study_find_order has no effect even if it is enabled
top

Description Archive a study
URL /study/archive
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
uuid • The study id
Returns status • OK
Permission study_delete and the study needs to be either the last copy or primary copy
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The study can not be found
NOT_PERMITTED • You are not permitted to do this
ALREADY_THIN • This is already a thin study
NO_FRESH_ARCHIVE • A fresh archive copy of the study does not exist
Notes
top

Description Request that a thin study be retrieved and loaded into storage
URL /study/retrieve
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
uuid • The study id
Returns status • OK
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The study was not found.
NOT_PERMITTED • You are not permitted to do this
NOT_THIN • This is not a thin study
MISSING_INFO • The study needs a study_uid and an accession number
NO_QUERY_DESTINATION • No query retrieve destination for a node that creates phantoms is available
Notes
top

Description Add a comment to the study
URL /study/comment/add
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
study_id • The study id
body • The comment body
Returns status • OK
uuid • The comment uuid
Permission study_comment_edit
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The study was not found.
NOT_PERMITTED • You are not permitted to do this
Notes
top

Description Delete a study comment
URL /study/comment/delete
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
uuid • The comment id
Returns status • OK
Permission study_comment_edit and you must be the creator of the comment
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The comment was not found.
NOT_PERMITTED • You are not permitted to do this
Notes
top

Description Get a study comment
URL /study/comment/get
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
uuid • The comment id
Returns status • OK
uuid • Comment id
study_id • Id of the study the comment is associated with
user_id • Id of the user who created the comment
user_name • Name of the user who created the comment
body • The comment body
created • Created datetime stamp of the comment
is_mine • Flag if I created this comment
Permission study_comment_view
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The comment was not found.
NOT_PERMITTED • You are not permitted to do this
Notes
top

Description Run a validation rule against the study
URL /study/validate
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
uuid • The study id
validate_id • The validation id
series • Only validate the specified series (optional)
Returns status • OK
score • The validation score. The score is the number of conditions that failed
conditions • An array of the conditions that failed
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The study or validation was not found.
NOT_PERMITTED • You are not permitted to do this
UNABLE_TO_VALIDATE • The study is not available or did not return the data needed to validate
Notes
  • Any failed conditions will have a field called failed which holds the count for the number of times the condition failed
top

Description Attach a customfield report to the study
URL /study/attach/customfields
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
uuid • The study id
report_name • The report name (optional defaults to customfields.txt)
Returns status • OK
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The study was not found.
NOT_PERMITTED • You are not permitted to do this
NOT_AVAILABLE • The study is available
Notes A text report with the names and values of the customfields for the study will be attached to the study
top

Description Return the link to the external viewer for the study
URL /study/external/viewer
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
uuid • The study id
viewer_tag • An external viewer's tag (optional)
redirect • A flag to return an HTTP redirect to the viewer URL rather than the JSON structure
view_reason • The view reason to be tracked in the audit trail (optional)
Returns status • OK
url • The url for the external viewer
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The study was not found.
NOT_PERMITTED • You are not permitted to do this
NOT_AVAILABLE • The study is not available
UNABLE_TO_GENERATE • The link could not be successfully generated
Notes The account's default external viewer (the default_external_viewer) is selected in case viewer_tag was not passed. The first external viewer from the configured list is selected in case neither viewer_tag nor default_external_viewer were specified.
top

Description Ask an AI question for the study
URL /study/question
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
uuid • The study id
question • The question to ask or a JSON array of questions to ask
detail • Optional detail to pass through to the AI stack
Returns status • OK
Permission study_edit
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The study or question was not found.
NOT_PERMITTED • You are not permitted to do this
NOT_ENABLED • The account does not have the ai_QUESTION customfield
NODE_NOT_SETUP • A node needs to be attached to the study namespace for this question
IN_PROCESS • The question is currently in process
Notes
  • To enable the question the account needs to be configured with a study customfield named ai_QUESTION e.g. ai_which_body_part
  • The answer to the question will be put into the ai_QUESTION customfield and any STUDY_AI_QUESTION webhooks will be triggered.
  • The full raw answer to the question will be put into the ai_QUESTION_raw customfield if it exists.
  • A JSON array of questions is processed sequentially and waits for the answer before asking the next question
top

Description Load the DICOM data for a study
URL /study/dicomdata/load
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
uuid • The study id
Returns status • OK
Permission study_view and dicomdata_edit
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The study or question was not found.
NOT_PERMITTED • You are not permitted to do this
NOT_AVAILABLE • The study is not available in storage
RUNNING • A load job is already running
Notes
top

Description Record a timing event for the study
URL /study/timing/event
Parameters (sid || node_id && serial_no) • Either the sid or the node uuid and serial number
study_uid • The study uid
storage_namespace • The storage namespace
event • The event
size • The number of bytes associated with the event (optional)
Returns status • OK
Permission study_upload for sid authentication
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_PERMITTED • You are not permitted to do this
Notes
top

Description Get the timing log for the study
URL /study/timing/log
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
uuid • The study uuid
page.* Pagination (optional)
sort_bySorting (optional)
Returns status • OK
events • An array of the events. Each object has the following fields ** created • The time stamp for the event
** event • The description of the event
** size • The number of bytes associated with the event
** node_id • UUID of the associated node
** node_name • Name of the associated node
Permission study_timing_view
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_PERMITTED • You are not permitted to do this
Notes
top

Description Sync the study against the storage data and re-run routing rules
URL /study/sync
Parameters (sid || node_id && serial_no) • Either the sid or the node id and serial number
(study_id || study_uid && storage_namespace && phi_namespace) • The study id or the study_uid/storage_namespace/phi_namespace triplet
image_count • Update the study image count and then sync (optional)
reload_load_dicom_tag • Flag to force a reload of all load_dicom_tag customfields (optional)
Returns status • OK
Permission sysadmin or study_sync permissions or if image_count is passed then study_upload or phr namespace is required
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The study can not be found
NOT_PERMITTED • You are not permitted to sync this study
BLOCKED • This is a repeat sync which is not allowed
Notes
  • This runs the /study/notify logic
  • The block expires in 60 seconds
top

Description Take studies from take_study_source_namespace namespace. Studies will be shared.
URL /study/take
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
namespace_id • The namespace id to take a study into
Returns status • OK
Permission study_take
Errors NOTHING_TO_TAKE • There is no unshared studies in the source namespace
MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The namespace was not found.
NOT_PERMITTED • You are not permitted to take a study in this account
NOT_ENABLED • the feature is not enabled check the enable_take_study_feature and take_study_source_namespace account settings
Notes
  • The feature should be enabled with enable_take_study_feature acount setting and take_study_source_namespace account setting should be set to one of account's namespaces for /study/take to work
  • The call shares up to take_study_number_to_take_at_a_time studies
  • The call checks studies for duplicates in the target namespace using study field defined by take_study_dedup_by_field account setting prior to sharing
top

Description Reuest studies from one of study_request_accounts accounts. Studies will be shared or duplicated.
URL /study/request/add
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
namespace_id • The namespace id requested studies to put (share or duplicate) into
comments • Free form request comments
account_id • The account id to send the study request to
patientid • The MRN a study should match (optional)
patient_first_name • The patient first name a study should match
patient_last_name • The patient last name a study should match
patient_sex • The patient sex a study should match (optional)
patient_birth_date • The patient date of birth a study should match
modality • The modality a study should match (optional)
study_date_start • The DICOM date that a study date should be greater or equal to (optional)
study_date_end • The DICOM date that a study date should be less or equal to (optional)
study_description • The string a study description should partially match (optional)
Returns status • OK
uuid • The study request uuid
Permission study_request_edit
Errors ALREADY • An active (pending or in progress) study request with the same study criteria and the same namespace/account combination already exists
NOT_FOUND • The namespace or account was not found.
NOT_PERMITTED • You are not permitted to request a study into this namespace
Notes
  • The feature should be enabled with study_request_accounts
  • Users with the incoming_study_request notification turned on in the requested account will be notified of the incoming study request, both to email and alt_emails
  • The call checks studies for duplicates in the target namespace using study field defined by take_study_dedup_by_field account setting prior to sharing
top

Description Get the study_request
URL /study/request/get
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
uuid • The study request uuid
Returns status • OK
uuid • The study request uuid
comments • Free form request comments
study_request_status • Status of the study request. 'N' - pending, 'I' - in progress, 'R' - rejected, 'C' - closed
patientid • The MRN a study should match
patient_first_name • The patient first name a study should match
patient_last_name • The patient last name a study should match
patient_sex • The patient sex a study should match
patient_birth_date • The patient date of birth a study should match
modality • The modality a study should match
study_date_start • The DICOM date that a study date should be greater or equal to
study_date_end • The DICOM date that a study date should be less or equal to
study_description • The string a study description should partially match
message_count • The number of message passed through the study request. Returned if the user has message_view permission
--- The following fields are only returned if the user has study_request_view permission in the requesting account ---
requested_account_id • The account id that the study request is sent to
namespace_id • Id of the namespace a study will be received into
--- The following fields are only returned if the user has study_request_view_inbound permission in the requested account ---
requesting_account_id • Id of the account that the study request was received from
requesting_account_name • Name of the account that the study request was received from
searches • An array of searches initiated using this study request. Each search holds the following same fields as the /destination/search/get call
found • A list of search results produced for searches initiated using this study request. Each search result is an object with the following fields: uuid, destination_search_id, study_fetch_id, and other fields provided by a node (see studies parameter in /node/found)
Errors NOT_FOUND • The study request was not found
NOT_PERMITTED • You are not permitted to access this study request
Notes
top

Description Get matching studies for the request
URL /study/request/match
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
study_request_id • The study request uuid
Returns status • OK
studies • An array of the studies that are mathing request's criteria and the user has study_share_request or study_duplicate_request access permission. Each object holds the same fields as the /study/get call
Errors NOT_FOUND • The study request was not found
REQUEST_CLOSED • The request is not active (pending or in progress)
Notes
top

Description Revive a deleted study from storage during the storage_delete_delay period
URL /study/revive
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
uuid • The study uuid
Returns status • OK
Permission sysadmin or support
Errors NOT_SYSADMIN_OR_SUPPORT • The user is not a sysadmin or support user
NOT_FOUND • The deleted study can not be found CAN_NOT_REVIVE • The study can not be revived
Notes This will reload the study from storage as a new study.
top

Tag commands

Description List the tags
URL /tag/list
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
object • Object class (Study|User_account|Group|Location|Account|Patient|Case|Order|Message)
filter.*Filters (optional)
page.* Pagination (optional)
sort_bySorting (optional)
Returns status • OK
tags • An array of the tags
Errors
Notes
  • Use the tag field for searching and sorting this list
  • To apply tags to a list of objects that supports tags use the field name tags with the in expression e.g. filter.tags.in=>["green","blue"]
top

Description Add a tag to an object
URL /tag/add
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
tag • Value of the tag
object • Object class to apply it to (Study|User_account|Group|Location|Account|Patient|Case|Order|Message|Query)
object_id • UUID of the object
Returns status • OK
Permission study_tag
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
INVALID_OBJECT • The object type is invalid
NOT_FOUND • The object was not found
NOT_PERMITTED • You are not permitted to tag this object
Notes
top

Description Delete a tag from an object
URL /tag/delete
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
tag • Value of the tag
object • Object class to apply it to (Study|User_account|Group|Location|Account|Patient|Case|Order)
object_id • UUID of the object
Returns status • OK
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
INVALID_OBJECT • The object type is invalid
NOT_FOUND • The object was not found
Notes
top

Annotation commands

Description List the annotations
URL /annotation/list
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
(study_id || study_uid && storage_namespace && phi_namespace) • The uuid of the study or the storage triplet
Returns status • OK
annotations • An array of the annotations. Each object holds the same fields as the /annotation/get call
Permission annotation_view
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The study was not found.
NOT_PERMITTED • You are not permitted to view the study of the annotations
Notes The list command will return all annotation done on every version of the study. This will allow annotations to be viewed across shares.
top

Description Add an annotation
URL /annotation/add
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
(study_id || study_uid && storage_namespace && phi_namespace) • The uuid of the study or the storage triplet
series_uid • The series uid
instance_uid • The instance uid
frame_number • The frame number
(json || stamp) • The JSON annotation data structure or the stamp flag
Returns status • OK
uuid • The uuid
Permission annotation_edit
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The study was not found.
NOT_PERMITTED • You are not permitted to add annotations to the study
INVALID_JSON • The field is not in valid JSON format. The error_subtype holds the name of the field
Notes
top

Description Edit an annotation
URL /annotation/set
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
uuid • Id of the annotation
json • The JSON annotation data structure
Returns status • OK
uuid • The uuid
Permission annotation_edit and annotation ownership or annotation_edit_only_own reset
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The study was not found.
NOT_PERMITTED • You are not permitted to add annotations to the study
INVALID_JSON • The field is not in valid JSON format. The error_subtype holds the name of the field
LOCKED • The annotation has been locked
Notes
top

Description Get the annotation
URL /annotation/get
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
uuid • Id of the annotation
Returns status • OK
uuid • Id of the annotation
user_id • User who created the annotation
user_name • The user name
series_uid • The series uid
instance_uid • The instance uid
frame_number • The frame number
json • The JSON annotation data structure
stamp • The stamp flag
locked • Is this annotation locked
Permission annotation_view
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The annotation was not found.
NOT_PERMITTED • You are not permitted to view the annotation
Notes
top

Description Delete the annotation
URL /annotation/delete
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
uuid • Id of the annotation
Returns status • OK
Permission annotation_edit and annotation ownership or annotation_edit_only_own reset
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The annotation was not found.
NOT_PERMITTED • You are not permitted to delete the annotation
Notes
top

Description Lock the annotation
URL /annotation/lock
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
uuid • Id of the annotation
Returns status • OK
Permission annotation_edit and annotation ownership or annotation_edit_only_own reset
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The annotation was not found.
NOT_PERMITTED • You are not permitted to delete the annotation
CANNOT_LOCK_STAMP • Stamps are not allowed to be locked
Notes This operation emits EDIT and LOCK audit records
top

Description Unlock the annotation
URL /annotation/unlock
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
uuid • Id of the annotation
Returns status • OK
Permission annotation_edit and annotation ownership or annotation_edit_only_own reset
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The annotation was not found.
NOT_PERMITTED • You are not permitted to delete the annotation
Notes This operation emits EDIT and UNLOCK audit records
top

Key image commands

Description List the key images
URL /keyimage/list
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
(study_id || study_uid && storage_namespace && phi_namespace) • The uuid of the study or the storage triplet
Returns status • OK
images • An array of the keyimages. Each object holds the same fields as the /keyimage/get call
Permission keyimage_view
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The study was not found.
NOT_PERMITTED • You are not permitted to view the study or key images for the study
Notes The list command will return all key images done on every version of the study. This will allow key images to be viewed across shares.
top

Description Add a key image
URL /keyimage/add
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
(study_id || study_uid && storage_namespace && phi_namespace) • The uuid of the study or the storage triplet
series_uid • The series uid
instance_uid • The instance uid
frame_number • The frame number
version • The frame version
Returns status • OK
uuid • The uuid
Permission keyimage_edit
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The study was not found.
NOT_PERMITTED • You are not permitted to mark key images for the study
Notes
top

Description Get the key image
URL /keyimage/get
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
uuid • Id of the keyimage
Returns status • OK
uuid • Id of the keyimage
user_id • User who created the keyimage
user_name • The user name
series_uid • The series uid
instance_uid • The instance uid
frame_number • The frame number
version • The frame version
Permission keyimage_view
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The key image was not found.
NOT_PERMITTED • You are not permitted to view the key image
Notes
top

Description Delete the key image
URL /keyimage/delete
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
uuid • Id of the key image
Returns status • OK
Permission keyimage_edit and key image ownership
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The key image was not found.
NOT_PERMITTED • You are not permitted to delete the key image
Notes
top

Study validation commands

Description List the validation rules
URL /validate/list
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
account_id • The account id
filter.* Filters (optional)
page.* Pagination (optional)
sort_bySorting (optional)
Returns status • OK
page • The pagination status hash
validates • An array of the validates. Each object holds the same fields as the /validate/get call
Permission validate_view or route_view or route_edit
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_PERMITTED • You are not permitted to view the validation rule
Notes
top

Description Add a validation rule
URL /validate/add
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
account_id • The account id
name • The validation rule name
conditions • The validation conditions
Returns status • OK
uuid • The uuid
Permission validate_edit
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_PERMITTED • You are not permitted to add validation rules
NOT_FOUND • The object was not found. The error_subtype holds the type of the object
INVALID_CONDITION • A condition is invalid. The error_subtype holds more detail
Notes
  • The conditions are a JSON list of objects. Each object has the following fields
    • tag - the DICOM tag to validate in (XXXX,XXXX) format
    • check - the check to perform, options are:
      • exists - does the tag exist for each image
      • not_empty - does the tag have a value for each image
      • match - does the tag match the regular expression for each image
      • not_match - does the tag not match the regular expression for each image
      • unique - does the tag have a unique value within the range
      • identical - does the tag have an identical value within the range
    • regexp - the regular expression for the match and not_match checks
    • range - range of the unique and identical checks, the available ranges are or either study or series
  • A validate can not have more than 10 regular expression conditions in it
top

Description Modify a validation rule
URL /validate/set
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
uuid • The validation id
name • The validation rule name
conditions • The validation conditions
Returns status • OK
Permission validate_edit
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The validation rule was not found
NOT_PERMITTED • You are not permitted to add validation rules
INVALID_CONDITION • A condition is invalid. The error_subtype holds more detail
Notes
top

Description Get a validation rule
URL /validate/get
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
uuid • Id of the validate
Returns status • OK
name • Name of the rule
conditions • The validation conditions
Permission validate_view or route_view or route_edit
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The validate was not found.
NOT_PERMITTED • You are not permitted to view the validation rule
Notes
top

Description Delete the validation rule
URL /validate/delete
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
uuid • Id of the validation rule
Returns status • OK
Permission validate_edit
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The validation rule was not found.
NOT_PERMITTED • You are not permitted to delete the validation rule
IN_USE • The validation rule is used in a routing rule
Notes
top

Study DICOM data commands

Description List the DICOM data for studies
URL /dicomdata/list
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
(study_id || namespace_id) • uuid of the study or namespace to search
filter.* Filters (optional)
page.* Pagination (optional)
dicom_tags • A JSON list of the DICOM tags to return (optional)
Returns status • OK
page • The pagination status hash
dicomdatas • An array of the dicom data objects. Each object holds the same fields as the /dicomdata/get call
Permission dicomdata_view
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_PERMITTED • You are not permitted to view the DICOM data
Notes
  • To filter on DICOM tag values use the DICOM tag in the filter expression e.g. filter.(0010,0020).equals=ABC
top

Description Get the DICOM data
URL /dicomdata/get
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
uuid • Id of the DICOM data
dicom_tags • A JSON list of the DICOM tags to return (optional)
customfields • An array of the custom fields associated with this dicomdata. Each object has the following fields (This is only returned if the dicomdata has custom fields)
Returns status • OK
uuid • Id of the DICOM data
study_id • The study id
study_uid • The study uid
series_uid • The series uid
instance_uid • The instance uid
dicom_tags • The DICOM tags and values
Permission dicomdata_view
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The DICOM data was not found.
NOT_PERMITTED • You are not permitted to view the DICOM data
Notes
top

Rad report commands

Description Add a radreport
URL /radreport/add
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
study_id • Id of the study to add the radreport to
type • The type of the radreport
fields • A JSON hash of the fields in the report (optional)
do_unlock • A flag indicating to unlock study radreport lock (optional)
Returns status • OK
uuid • The uuid
Permission radreport_edit
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The study was not found.
NOT_PERMITTED • You are not permitted to add a radreport to the study
INVALID_JSON • The field is not in valid JSON format. The error_subtype holds the name of the field
LOCKED • There is radreport-lock for the corresponding study by different SID.
Notes If account.settings.enable_radreport_lock_reading is set, then it tries to radreport-lock in a study as in /study/lock?type=RADREPORT, updating it's radreport_uuid. If do_unlock is provided, then drops that radreport-lock after successful save.
Error=LOCKED provides error_subtype=RADREPORT_LOCKED, error_data={"locked_radreport_id":radreport_uuid,"locked_user_id":user_uuid}.
top

Description Modify a radreport
URL /radreport/set
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
uuid • Id of the radreport
fields • A JSON hash of the fields in the report (optional)
attachment • A JSON hash of the storage attachment information (optional)
do_unlock • A flag indicating to unlock study radreport lock (optional)
Returns status • OK
Permission radreport_edit
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The study was not found.
NOT_PERMITTED • You are not permitted to add a radreport to the study
INVALID_JSON • The field is not in valid JSON format. The error_subtype holds the name of the field
LOCKED • There is radreport-lock for the corresponding study by different SID.
Notes Look /radreport/add notes about enable_radreport_lock_reading.
top

Description Get the radreport
URL /radreport/get
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
uuid • Id of the radreport
Returns status • OK
uuid • Id of the radreport
type • Type of radreport
fields • Fields in the radreport
attachment • The storage attachment information
user_id • User who created the radreport
study_id • Associated study
created • Date and time the radreport was created
updated • Date and time the radreport was updated
--- The following field is only returned if the enable_radreport_lock_reading account setting is enabled AND this radreport is locked ---
locked_user_id • uuid of lock owner
Permission radreport_view
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The radreport was not found.
NOT_PERMITTED • You are not permitted to view the radreport
Notes
top

Description Attach an audit action to a radreport
URL /radreport/audit
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
uuid • The id of the radreport
action • The audit action (SIGNED|MEDICAL_EDIT|ADMIN_EDIT|REPORT_GENERATED)
detail • Additional information
Returns status • OK
Permission radreport_edit
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The radreport can not be found
INVALID_ACTION • An invalid action was passed
Notes
top

Description Delete the radreport
URL /radreport/delete
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
uuid • Id of the radreport
Returns status • OK
Permission radreport_edit plus you must have created the radreport
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The radreport was not found.
NOT_PERMITTED • You are not permitted to delete the radreport
LOCKED • There is radreport-lock for the corresponding study by different USER.
Notes If account.settings.enable_radreport_lock_reading is set and there is radreport-locked for the study at the moment by different USER, then errot=LOCKED, error_subtype=RADREPORT_LOCKED, error_data={"locked_radreport_id":radreport_uuid,"locked_user_id":user_uuid}.
top

Description Get the description of the radreport
URL /radreport/description
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
uuid • Id of the radreport
Returns status • OK
uuid • Id of the radreport
description • One line description of the radreport
type • Type of radreport
can_edit • Can the user edit the radreport. See notes below.
--- The following field is only returned if the enable_radreport_lock_reading account setting is enabled AND this radreport is locked ---
locked_user_id • uuid of lock owner
Permission radreport_view
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The radreport was not found.
NOT_PERMITTED • You are not permitted to view the radreport
Notes Only if account.settings.enable_radreport_lock_reading is set. can_edit is set to 0 if this radreport is locked by another sid.
top

Description Lock the radreport or prolongate the current lock
URL /radreport/lock
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
uuid • Id of the radreport
Returns status • OK
Permission radreport_edit
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The radreport was not found.
NOT_PERMITTED • You are not permitted to lock the radreport
LOCKED • This radreport is locked at the moment by another sid. error_subtype=RADREPORT_LOCKED. error_data={"locked_radreport_id":radreport_uuid,"locked_user_id":user_uuid}.
Notes If account.settings.enable_radreport_lock_reading is NOT set, then always NOT_PERMITTED.
The same user cant lock radreport with other sid.
Lock expires in 1 hour. Each next call prolongates it.
On successful lock (not prolongate) the RADREPORT_LOCKED event is sent to study channel.
top

Description Unlock the radreport
URL /radreport/unlock
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
uuid • Id of the radreport
Returns status • OK
Permission radreport_edit
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The radreport was not found.
NOT_PERMITTED • You are not permitted to lock the radreport
ALREADY • This report is not locked
LOCKED • This radreport is locked at the moment by another user. error_subtype=RADREPORT_LOCKED. error_data={"locked_radreport_id":radreport_uuid,"locked_user_id":user_uuid}.
Notes If account.settings.enable_radreport_lock_reading is NOT set, then always NOT_PERMITTED.
If lock owner is the same user, then radreport CAN be unlocked even if sid differs.
On successful unlock the RADREPORT_UNLOCKED event is sent to study channel.
top

Description List the radreports for a user
URL /radreport/user/list
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
user_id • The user id
filter.* Filters (optional)
page.* Pagination (optional)
sort_bySorting (optional)
Returns status • OK
page • The pagination status hash
radreports • An array of the radreports. Each object holds the same fields as the /radreport/get call
Permission This will only return radreports the calling user has radreport_view permissions for
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The user was not found.
Notes
top

Description Get a list of the user radreport macros
URL /radreportmacro/list
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
account_id • uuid of the account
modality • Limit to this modality (optional)
type • Limit to this type (optional)
filter.* Filters (optional)
page.* Pagination (optional)
sort_bySorting (optional)
Returns status • OK
macros • An array of the macros. Each object holds the same fields as the /radreportmacro/get call
page • The pagination status hash
Permission radreport_view
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_PERMITTED • You are not permitted to perform this operation
Notes
top

Description Add a radreport macro
URL /radreportmacro/add
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
account_id • uuid of the account
modality • Modality
type • Type of radreport
name • Name of the macro
body • JSON body of the macro
hotkey • Hotkey of the macro (optional)
Returns status • OK
uuid • Id of the macro
Permission radreport_edit
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_PERMITTED • You are not permitted to perform this operation
Notes
top

Description Edit a radreport macro
URL /radreportmacro/set
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
uuid • uuid of the macro
modality • Modality (optional)
type • Type of radreport (optional)
name • Name of the macro (optional)
body • JSON body of the macro (optional)
hotkey • Hotkey of the macro (optional)
Returns status • OK
uuid • Id of the macro
Permission radreport_edit plus ownership of the macro
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_PERMITTED • You are not permitted to perform this operation
Notes
top

Description Get a radreport macro
URL /radreportmacro/get
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
uuid • uuid of the macro
Returns status • OK
uuid • Id of the macro
modality • Modality
type • Type of radreport
name • Name of the macro
body • JSON body of the macro
hotkey • Hotkey of the macro
Permission radreport_view plus ownership of the macro
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_PERMITTED • You are not permitted to perform this operation
Notes
top

Description Delete a radreport macro
URL /radreportmacro/delete
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
uuid • uuid of the macro
Returns status • OK
Permission radreport_edit plus ownership of the macro
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_PERMITTED • You are not permitted to perform this operation
Notes
top

Description Returns the PDF report
URL /radreport/pdf
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
uuid • The radreport uuid
Returns Streams back the PDF report
Permission radreport_view
Errors [404] • Not found
Notes
top

Description Fax the radreport
URL /radreport/fax
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
uuid • The radreport uuid
number • The fax number to send the PDF report to
Returns status • OK
Permission radreport_view
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The radreport can not be found
NOT_PERMITTED • You are not permitted to do this
INVALID_PHONE • The fax number is invalid
PDF_FAILED • The PDF report failed to generate
NO_ATTACHMENT • The radreport does not have an attached report
NOT_ENABLED • The radreport mailing out is not enabled for the account
Notes
top

Description Email a radreport
URL /radreport/email
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
uuid • The radreport uuid
email • The email address(es) to send the radreport to
Returns status • OK
Permission radreport_view
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The radreport can not be found
NOT_PERMITTED • You are not permitted to do this
INVALID_EMAIL • An invalid email address was passed
NO_ATTACHMENT • The radreport does not have an attached report
PDF_FAILED • The PDF report failed to generate
NOT_ENABLED • The radreport mailing out is not enabled for the account
Notes
  • The email is sent using the study_radreport template with the radreport attached as a PDF
top

Description Get a list of the account radreport templates
URL /radreport/template/list
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
account_id • uuid of the account
type • Limit to this type (optional)
active • Limit to active templates (optional)
filter.*Filters (optional)
page.*Pagination (optional)
sort_bySorting (optional)
Returns status • OK
templates • An array of the templates. Each object holds the same fields as the /radreport/template/get call
page • The pagination status hash
Permission radreport_view
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_PERMITTED • You are not permitted to perform this operation
Notes
top

Description Add a radreport template
URL /radreport/template/add
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
account_id • uuid of the account
type • Type of radreport
name • Name of the template
body • Body of the template
preview • Preview of the template (optional)
options • JSON options of the template (optional)
Returns status • OK
uuid • Id of the template
Permission sysadmin or support
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_SYSADMIN_OR_SUPPORT • The user is not a sysadmin or support user
Notes
top

Description Edit a radreport template
URL /radreport/template/set
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
uuid • uuid of the template
type • Type of radreport (optional)
name • Name of the template (optional)
body • Body of the template (optional)
preview • Preview of the template (optional)
options • JSON options of the template (optional)
Returns status • OK
uuid • Id of the template
Permission sysadmin or support
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_SYSADMIN_OR_SUPPORT • You are not permitted to perform this operation
Notes
top

Description Get a radreport template
URL /radreport/template/get
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
uuid • uuid of the template
Returns status • OK
uuid • Id of the template
type • Type of radreport
name • Name of the template
body • Body of the template
preview • Preview of the template
options • JSON options of the template
active • Flag if the template is active
Permission radreport_view
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The radreport template can not be found
NOT_PERMITTED • You are not permitted to perform this operation
Notes
top

Description Get a radreport template by type
URL /radreport/template/get/type
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
account_id • uuid of the account
type • Type of the template
Returns status • OK
uuid • Id of the template
type • Type of radreport
name • Name of the template
body • Body of the template
preview • Preview of the template
options • JSON options of the template
active • Flag if the template is active
Permission radreport_view
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The radreport template can not be found
NOT_PERMITTED • You are not permitted to perform this operation
Notes
top

Description Delete a radreport template
URL /radreport/template/delete
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
uuid • uuid of the template
Returns status • OK
Permission sysadmin or support
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_SYSADMIN_OR_SUPPORT • The user is not a sysadmin or support user
Notes
top

Description Activate a radreport template
URL /radreport/template/activate
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
uuid • uuid of the template
Returns status • OK
uuid • Id of the template
Permission sysadmin or support
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The radreport template can not be found
NOT_SYSADMIN_OR_SUPPORT • The user is not a sysadmin or support user
Notes
  • Any active templates of the same type will be deactivated
top

Custom code commands

Description Add the code
URL /customcode/add
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
account_id • uuid of the account
name • The name of the code
type • Type of code (AI_CUSTOM_VALIDATION_CODE)
language • Language of code (PYTHON)
code • The code
settings • JSON hash of settings (optional)
zip • Base64 encoded ZIP file (optional)
Returns status • OK
uuid • The code uuid
Permission customcode_edit
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_PERMITTED • You are not permitted to add code
INVALID_TYPE • Invalid type
INVALID_LANGUAGE • Invalid language
NOT_HASH • The field is not a hash
Notes
top

Description Approve customcode
URL /customcode/approve
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
uuid • uuid of the customcode
Returns status • OK
Permission sysadmin or support
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The customcode can not be found
NOT_PERMITTED • You are not permitted to approve customcodes
ALREADY • The code is already approved
Notes
top

Description Get the code
URL /customcode/get
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
uuid • The code uuid
Returns status • OK
uuid • The code uuid
name • code name
account_id • account uuid
account_name • account name
type • code type
language • code language
code • The code
settings • JSON hash of settings
approved • Flag shows if this customcode was approved
is_deployed • Flag if the code is deployed
deployments • An array of the customcode deployments, ordered from most recent to earliest. Each object has the fields in the /customcode/deploy/get call.
has_zip • Flag if the code has an associated zip file
Permission customcode_view
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The code can not be found
NOT_PERMITTED • You are not permitted to view this code
Notes
top

Description Modify the code
URL /customcode/set
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
uuid • The code uuid
name • The name of the code (optional)
code • The code (optional)
settings • JSON hash of settings (optional)
zip • Base64 encoded ZIP file (optional)
Returns status • OK
uuid • The code uuid
Permission customcode_edit
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_PERMITTED • You are not permitted to edit the code
NOT_HASH • The field is not a hash
IS_DEPLOYED • The code is deployed and can not be edited
ONE_ZIP_ONLY • Only one code with an attached zip can be deployed to the namespace
Notes
top

Description Returns the customcode zip file
URL /customcode/zip
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
uuid • The code uuid
Returns Streams back the zip file
Errors [404] • Not found
Notes
top

Description Delete the code
URL /customcode/delete
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
uuid • The code uuid
Returns status • OK
Permission customcode_edit
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_PERMITTED • You are not permitted to delete the code
IS_DEPLOYED • The code is deployed and can not be deleted
Notes
top

Description Get a list of the code for the account
URL /customcode/list
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
account_id • uuid of the account
filter.* Filters (optional)
page.* Pagination (optional)
sort_bySorting (optional)
Returns status • OK
page • The pagination status hash
customcodes • An array of the customcode. Each object holds the same fields as the /customcode/get call
Permission customcode_view
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The account can not be found
NOT_PERMITTED • You are not permitted to view code in this account
Notes
  • This will also include customcodes from other accounts that are configured for customcode sharing
top

Description Deploy customcode for a namespace
URL /customcode/deploy
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
uuid • uuid of the customcode
namespace_id • uuid of the namespace
Returns status • OK
uuid • Deployment uuid
Permission customcode_deploy
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The namespace or customcode can not be found
NOT_PERMITTED • You are not permitted to deploy code in this namespace
NOT_APPROVED • The customcode should be /customcode/approved before deployment
ALREADY • The code is already deployed for this namespace
Notes
top

Description Un-deploy customcode
URL /customcode/undeploy
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
deployment_id • Deployment uuid
Returns status • OK
Permission customcode_deploy
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The deployment can not be found
NOT_PERMITTED • You are not permitted to undeploy code in this namespace
Notes
top

Description Get a customcode deployment
URL /customcode/deploy/get
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
uuid • uuid of customcode deployment
Returns status • OK
uuid • uuid of the deployment
customcode_id • uuid of the customcode
customcode_name • name of the customcode
namespace_id • uuid of the namespace
namespace_name • name of the namespace
Permission customcode_view
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The customcode deployment can not be found
NOT_PERMITTED • You are not permitted to do this
Notes
top

Description List customcode deployments
URL /customcode/deploy/list
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
(namespace_id || customcode_id) • uuid of either the namespace or customcode to show the deployments for
filter.* Filters (optional)
page.* Pagination (optional)
sort_bySorting (optional)
Returns status • OK
page • The pagination status hash
deployments • An array of the objects. Each object in the array will have the fields available in /customcode/deploy/get
Permission customcode_view
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The namespace or customcode can not be found
NOT_PERMITTED • You are not permitted to do this
Notes
top

Case commands

Cases are automatically created by the second opinion workflow for a share code

Description Get a case
URL /case/get
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
uuid • The case uuid
Returns status • OK
uuid • The case uuid
name • case name
created • Date and time the case was created
paid • Flag if a payment being made against the case
share_code • Share code the case is associated with
user_name • Name of the user the case is for
user_email • Email of the user the case is for
studies • An array of the studies associated with this case. Each study has the fields from /study/get
tags • An array of user tags associated with this object (This is only returned if the object has tags)
customfields • An array of the custom fields associated with this case. Each object has the following fields (This is only returned if the case has custom fields)
case_status • Status of the case
case_status_date • Date and time the case was set to the current status
case_status_tags • The available case status tags
submitted • Flag if the case was submitted
submitted_date • Date and time the case was submitted
returned_date • Date and time the case was returned
returned_reason • Reason the case was returned
completed • Flag if the case is completed
completed_date • Date and time the case was completed
closed • Flag if the case is closed
closed_date • Date and time the case was closed
The rest of the fields are not returned to the case owner
assigned_admin_id • Id of the admin user assigned to the case
assigned_admin_name • Name of the admin user assigned to the case
assigned_admin_date • Date and time the case was assigned to the admin user
assigned_medical_id • Id of the medical user assigned to the case
assigned_medical_name • Name of the medical user assigned to the case
assigned_medical_date • Date and time the case was assigned to a medical user
locked_user_id • Id of the user who has locked the case
locked_user_name • Name of the user who has locked the case
Permission case_view or the case owner, or the assigned medical user if case_view and case_view_only_own are enabled
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The case can not be found
NOT_PERMITTED • You are not permitted to view this case
Notes
  • If the requestor is the PHR user the case is for, only the share code customfields are returned
  • If the requestor is the PHR user the case is for the studies are the studies in the PHR namespace
  • If the requestor is an account user the studies are the studies in the account namespace
top

Description Edit a case
URL /case/set
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
uuid • The case uuid
name • case name (optional)
submitted • Flag if the case is submitted (optional)
customfield-{CUSTOMFIELD_UUID} • Custom field(s) (optional)
-- The rest of the fields can not be set by the case owner --
completed • Flag if the case is completed (optional)
closed • Flag if the case is closed (optional)
case_status • The case status (optional)
assigned_admin_id • Id of the admin user assigned to the case (optional)
assigned_medical_id • Id of the medical user assigned to the case (optional)
Returns status • OK
Permission case_edit or the case owner, or the assigned medical user if case_edit and case_edit_only_own are enabled
Errors NOT_FOUND • The case or assigned user can not be found
NOT_PERMITTED • You are not permitted to edit the case
NOT_IN_ACCOUNT • The assigned user is not in the account
INVALID_CUSTOMFIELD • Invalid custom field(s) name or value were passed. The error_subtype holds an array of the error details
INVALID_CASE_STATUS • Invalid case status
LOCKED • The case is locked by another user
Notes
  • To clear out an assigned user field send a zero UUID i.e. 00000000-0000-0000-0000-000000000000
  • If the case is being assigned to a medical or admin user the corresponding user will be emailed a notification. User's event_case_assignment flag must be set for notification to happen.
top

Description Return a case to the owner
URL /case/return
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
uuid • The case uuid
reason • The reason the case was returned
Returns status • OK
Permission case_edit, or the assigned medical user if case_edit and case_edit_only_own are enabled
Errors NOT_FOUND • The case can not be found
NOT_PERMITTED • You are not permitted to return the case
Notes A case can only be returned if it is submitted and not closed or completed
top

Description Delete a case
URL /case/delete
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
uuid • The case uuid
Returns status • OK
Permission case_delete
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The case can not be found
NOT_PERMITTED • You are not permitted to delete the case
Notes
top

Description Get a list of the cases for the current user or the account
URL /case/list
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
account_id • uuid of the account (optional)
filter.* Filters (optional)
page.* Pagination (optional)
sort_bySorting (optional)
Returns status • OK
page • The pagination status hash
cases • An array of the cases. Each object holds the same fields as the /case/get call
Permission case_view or case ownership, or the assigned medical user if case_view and case_view_only_own are enabled
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The account can not be found
NOT_PERMITTED • You are not permitted to view cases in this account
Notes
top

Description Attach or detach a study to a case
URL /case/attach
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
uuid • Case uuid
study_id • Study uuid
detach • Flag to detach the study from the case (optional)
Returns status • OK
Permission Only the assigned admin or medical user can do this
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The case or study can not be found
NOT_PERMITTED • You are not permitted to do this
Notes The attached study will be shared into the users PHR account
top

Patient commands

Description Add a patient
URL /patient/add
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
account_id • uuid of the account to add them to
study_id • Id of the study to create a patient from (optional)
(name || first && last) • Patient name as either full name or first and last (optional if study_id is used)
mrn • MRN (optional if study_id is used)
sex • Gender (optional)
birth_date • Birth date (optional)
email • Email address (optional)
mobile_phone • Mobile phone number (optional)
alt_email • Alternate email address (optional)
alt_mobile_phone • Alternate mobile phone number (optional)
customfield-{CUSTOMFIELD_UUID} • Custom field(s) (optional)
event_share • Notify the patient if a new study is available on the patient portal (optional)
event_new_report • Notify the patient if a report is attached on the patient portal (optional)
Returns status • OK
uuid • The uuid
Permission patient_edit
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The account or study was not found. The error_subtype holds the type of field not found
NOT_PERMITTED • You are not permitted to add a patient to the account
INVALID_PHONE • The phone number is invalid
INVALID_EMAIL • The email is invalid
ALREADY_EXISTS • The patient is already in the account
ALREADY_USED • The email or phone number is already used by another patient. The error_subtype holds the field that is already used
INVALID_CUSTOMFIELD • Invalid custom field(s) name or value were passed. The error_subtype holds an array of the error details
Notes
  • * If a study is used the base fields values are taken from the study and any explicit values sent in the call will override the study fields
  • * event_new_report is on by default. It will be set to 1 if you omit it.
top

Description Get a patient
URL /patient/get
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
uuid • The patient uuid
Returns status • OK
uuid • The patient uuid
name • Patient name
first • Patient first name
last • Patient last name
mrn • MRN
sex • Gender
birth_date • Birth date
email • Email address
mobile_phone • Mobile phone number
alt_email • Alternate email address
alt_mobile_phone • Alternate mobile phone number
event_share • Notify the patient if a new study is available on the patient portal
event_new_report • Notify the patient if a report is attached on the patient portal
tags • An array of user tags associated with this object (This is only returned if the object has tags)
customfields • An array of the custom fields associated with this patient. Each object has the following fields (This is only returned if the group has custom fields)
studies • An array of study ids linked with this patient (having the same mrn), which this user has access to.
Permission patient_view
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The patient can not be found
NOT_PERMITTED • You are not permitted to view this patient
Notes
top

Description Edit a patient
URL /patient/set
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
uuid • The patient uuid
(name || first && last) • Patient name as either full name or first and last
mrn • MRN
sex • Gender
birth_date • Birth date
email • Email address (optional)
mobile_phone • Mobile phone number (optional)
alt_email • Alternate email address (optional)
alt_mobile_phone • Alternate mobile phone number (optional)
event_share • Notify the patient if a new study is available on the patient portal (optional)
event_new_report • Notify the patient if a report is attached on the patient portal (optional)
customfield-{CUSTOMFIELD_UUID} • Custom field(s) (optional)
settings • A hash of the patient settings, see Notes. (optional)
setting_{SETTING_NAME} • Set an individual setting. This is an alternative to the settings hash for easier use in the API tester (optional)
Returns status • OK
Permission patient_edit
Errors NOT_FOUND • The patient can not be found
NOT_PERMITTED • You are not permitted to edit the patient
INVALID_PHONE • The phone number is invalid
INVALID_EMAIL • The email is invalid
ALREADY_EXISTS • The MRN is in use by another patient
ALREADY_USED • The email or phone number is already used by another patient. The error_subtype holds the field that is already used
INVALID_CUSTOMFIELD • Invalid custom field(s) name or value were passed. The error_subtype holds an array of the error details
NO_PATIENT_OVERRIDE • The setting does not allow a patient override
INVALID_SETTING • An invalid setting was passed. The error_subtype holds the name of the invalid setting
INVALID_SETTING_VALUE • An invalid setting value was passed. The error_subtype holds the name of the setting with the invalid value
Notes Current allowed settings are patient_portal_event_new_report_notify_type and patient_portal_event_share_notify_type
top

Description Merge patients with optionally setting some of patient fields
URL /patient/merge
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
uuid • The destination patient uuid
src • The JSON array of patient uuids to merge into destionation
do_update_patient_studies • Update patient studies' sex an phone if those are modified (optional)
do_delete • Delete src patients after merge (optional)
sex • Gender (optional)
email • Email address (optional)
mobile_phone • Mobile phone number (optional)
alt_email • Alternate email address (optional)
alt_mobile_phone • Alternate mobile phone number (optional)
event_share • Notify the patient if a new study is available on the patient portal (optional)
event_new_report • Notify the patient if a report is attached on the patient portal (optional)
customfield-{CUSTOMFIELD_UUID} • Custom field(s) (optional)
settings • A hash of the patient settings, see Notes. (optional)
setting_{SETTING_NAME} • Set an individual setting. This is an alternative to the settings hash for easier use in the API tester (optional)
Returns status • OK
Permission patient_merge
Errors NOT_FOUND • The patient can not be found
NOT_PERMITTED • You are not permitted to merge the patients
PATIENT_NAME_DOB_MISMATCH • Patients should contain the same name and date of birth
MULTIPLE_ACCOUNTS • Patients from different accounts provided
INVALID_PHONE • The phone number is invalid
INVALID_EMAIL • The email is invalid
ALREADY_USED • The email or phone number is already used by another patient. The error_subtype holds the field that is already used
INVALID_CUSTOMFIELD • Invalid custom field(s) name or value were passed. The error_subtype holds an array of the error details
NO_PATIENT_OVERRIDE • The setting does not allow a patient override
INVALID_SETTING • An invalid setting was passed. The error_subtype holds the name of the invalid setting
INVALID_SETTING_VALUE • An invalid setting value was passed. The error_subtype holds the name of the setting with the invalid value
Notes If account.settings.auto_update_patient_studies is set, then do_update_patient_studies is set.
top

Description Delete a patient
URL /patient/delete
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
uuid • The patient uuid
Returns status • OK
Permission patient_edit
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The patient can not be found
NOT_PERMITTED • You are not permitted to delete the patient
Notes
top

Description Get a list of the patients in the account
URL /patient/list
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
account_id • uuid of the account
filter.* Filters (optional)
page.* Pagination (optional)
sort_bySorting (optional)
Returns status • OK
page • The pagination status hash
patients • An array of the patients. Each object holds the same fields as the /patient/get call
Permission patient_view
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The account can not be found
NOT_PERMITTED • You are not permitted to view patients in this account
Notes The default sort is by recent activity.
top

Description Get a list of the studies for the patient
URL /patient/study/list
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
uuid • The patient id
viewable_only • Flag if they only want the studies the user can view
Returns status • OK
studies • An array of the studies. Each object holds the same fields as the /study/get call
Permission patient_view
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The patient can not be found
NOT_PERMITTED • You are not permitted to view this patient
Notes
top

Description Find a patient for the portal
URL /patient/portal/find
Parameters first • The first name
last • The last name
birth_date • Date of birth
mrn • MRN (required if the require_mrn_for_patient_portal account setting is on)
Returns status • OK
patient_id • The patient id
study_count • The number of studies for the patient
email • The obscured version of the patient email
mobile_phone • The obscured version of the patient phone
alt_email • The obscured version of the patient email
alt_mobile_phone • The obscured version of the patient phone
dup_email • Flag if another patient has the same email
dup_mobile_phone • Flag if another patient has the same mobile_phone
other_patients • An array of the other matching patients. Each object holds the same fields as documented above. This field is only returned if there are other matching patients.
Permission The enable_patient_portal flag needs to be turned on for the account and the call needs to come for a vanity for the account
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The patient can not be found
NOT_PERMITTED • You are not permitted to perform this search
INVALID_DATE • An invalid date was passed
Notes
  • If multiple patients match the patients are sorted by study_count descending
  • Only first 8 digits of birth_date are compared
top

Description Send a PIN to the patient
URL /patient/portal/pin
Parameters patient_id • The patient id
email • Flag if they want the PIN sent via email
mobile_phone • Flag if they want the PIN sent via SMS
alt_email • Flag if they want the PIN sent via the alt_email
alt_mobile_phone • Flag if they want the PIN sent via SMS to the alt_mobile_phone
Returns status • OK
Permission The enable_patient_portal flag needs to be turned on for the account and the call needs to come for a vanity for the account
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The patient can not be found
NOT_PERMITTED • You are not permitted to do this
Notes
top

Description Login to the patient portal
URL /patient/portal/login
Parameters patient_id • The patient id
pin • The PIN
Returns status • OK
sid • Session id
Permission The enable_patient_portal flag needs to be turned on for the account and the call needs to come for a vanity for the account
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The patient can not be found
INVALID_PIN • The PIN is invalid or expired
NOT_PERMITTED • You are not permitted to do this
LOCKOUT • Too many failed attempts
Notes
top

Description List user's accounts with patient portal enabled
URL /patient/portal/list
Parameters page.* Pagination (optional)
sort_bySorting (optional)
Returns status • OK
page • The pagination status hash
portals • An array of the accounts with patient portal enabled. Each object holds the following fields
* uuid • The account UUID
* name • Name of the account
* vanity • Vanity host name(s) for the account
Permission
Errors
Notes Only patient portals with the expose_patient_portal setting turned on are returned.
top

Order commands

Description Add a order
URL /order/add
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
account_id • uuid of the account to add them to
patientid • Patient MRN
patient_name • Patient name
accession_number • Accession number
patient_sex • Gender
patient_birth_date • DOB
referring_physician • Referring physician
sending_facility • Sending facility
customfield-{CUSTOMFIELD_UUID} • Custom field(s) (optional)
Returns status • OK
uuid • The uuid
Permission order_edit
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The account was not found. The error_subtype holds the type of field not found
NOT_PERMITTED • You are not permitted to add a order to the account
INVALID_CUSTOMFIELD • Invalid custom field(s) name or value were passed. The error_subtype holds an array of the error details
Notes
top

Description Get an order
URL /order/get
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
uuid • The order uuid
Returns status • OK
uuid • The order uuid
patientid • Patient MRN
patient_name • Patient name
accession_number • Accession number
patient_sex • Gender
patient_birth_date • DOB
referring_physician • Referring physician
sending_facility • Sending facility
tags • An array of user tags associated with this object (This is only returned if the object has tags)
customfields • An array of the custom fields associated with this order. Each object has the following fields (This is only returned if the order has custom fields)
sps • An array of the SPS records associated with this order. Each record has the following fields
* uuid • Id of the SPS
* modality • Modality
* scheduled_procedure_step_id • Step ID
* requested_procedure_id • Procedure ID
* requested_procedure_description • Procedure description
* scheduled_station_aetitle • Station AE title
* scheduled_procedure_step_start_date • Start date
* scheduled_procedure_step_start_time • Start time
* scheduled_procedure_step_description • Step description
* mpps_status • The modality performed procedure step (mpps) status
* mpps_uid • The UID for the mpps
--- The following field is only returned if the enable_orders_in_worklist account setting is enabled ---
studies • An array of study ids linked with this order (having the same accession_number).
Permission order_view
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The order can not be found
NOT_PERMITTED • You are not permitted to view this order
Notes
top

Description Edit a order
URL /order/set
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
uuid • The order uuid
patientid • Patient MRN
patient_name • Patient name
accession_number • Accession number
patient_sex • Gender
patient_birth_date • DOB
referring_physician • Referring physician
sending_facility • Sending facility
customfield-{CUSTOMFIELD_UUID} • Custom field(s) (optional)
Returns status • OK
Permission order_edit
Errors NOT_FOUND • The order can not be found
NOT_PERMITTED • You are not permitted to edit the order
INVALID_CUSTOMFIELD • Invalid custom field(s) name or value were passed. The error_subtype holds an array of the error details
Notes
top

Description Delete a order
URL /order/delete
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
uuid • The order uuid
Returns status • OK
Permission order_edit
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The order can not be found
NOT_PERMITTED • You are not permitted to delete the order
Notes
top

Description Get a list of the orders in the account
URL /order/list
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
account_id • uuid of the account
filter.* Filters (optional)
page.* Pagination (optional)
sort_bySorting (optional)
Returns status • OK
page • The pagination status hash
orders • An array of the orders. Each object holds the same fields as the /order/get call
Permission order_view
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The account can not be found
NOT_PERMITTED • You are not permitted to view orders in this account
Notes
  • There is additional filter field 'study_count'
top

Description Add a scheduled procedure step to an order
URL /order/sps/add
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
order_id • uuid of the order
modality • Modality
scheduled_procedure_step_id • Step ID
requested_procedure_id • Procedure ID
requested_procedure_description • Procedure description
scheduled_station_aetitle • Station AE title
scheduled_procedure_step_start_date • Start date
scheduled_procedure_step_start_time • Start time
scheduled_procedure_step_description • Step description
Returns status • OK
uuid • UUID of the SPS
Permission order_edit
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The order can not be found
NOT_PERMITTED • You are not permitted to edit orders in this account
Notes
top

Description Edit a scheduled procedure step
URL /order/sps/set
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
uuid • UUID of the SPS
modality • Modality (optional)
scheduled_procedure_step_id • Step ID (optional)
requested_procedure_id • Procedure ID (optional)
requested_procedure_description • Procedure description (optional)
scheduled_station_aetitle • Station AE title (optional)
scheduled_procedure_step_start_date • Start date (optional)
scheduled_procedure_step_start_time • Start time (optional)
scheduled_procedure_step_description • Step description (optional)
Returns status • OK
Permission order_edit
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The SPS can not be found
NOT_PERMITTED • You are not permitted to edit orders in this account
Notes
top

Description Delete a scheduled procedure step
URL /order/sps/delete
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
uuid • UUID of the SPS
Returns status • OK
Permission order_edit
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The SPS can not be found
NOT_PERMITTED • You are not permitted to edit orders in this account
Notes
top

Description Set the mpps status of a SPS
URL /order/sps/status
Parameters uuid • The node id
serial_no • The serial number of the node
mpps_uid • The mpps UUID of the SPS
mpps_status • The mpps status to set (PENDING|IN_PROGRESS|DISCONTINUED|COMPLETED)
Returns status • OK
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The SPS can not be found
NOT_PERMITTED • You are not permitted to set the status
INVALID_STATUS • An invalid status was passed
Notes
top

Description Find SPS orders for MWL processing
URL /order/sps/find
Parameters (sid || node_id && serial_no) • Either the sid or the node uuid and serial number
account_id • The account uuid if sid authentication is used
filter.* Filters (optional)
Returns status • OK
sps • An array of the matching sps record. Each record has the following fields
* patientid • Patient MRN
* patient_name • Patient name
* accession_number • Accession number
* patient_sex • Gender
* patient_birth_date • DOB
* referring_physician • Referring physician
* modality • Modality
* study_uid • Study UID
* scheduled_procedure_step_id • Step ID
* requested_procedure_id • Procedure ID
* requested_procedure_description • Procedure description
* scheduled_station_aetitle • Station AE title
* scheduled_procedure_step_start_date • Start date
* scheduled_procedure_step_start_time • Start time
* scheduled_procedure_step_description • Step description
* mpps_status • The modality performed procedure step (mpps) status
* mpps_uid • The UID for the mpps
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The node can not be found
NOT_PERMITTED • You are not permitted to view orders in this account
Permission order_view if sid authentication is used
Notes
  • Filter fields must be prefixed with "ord" for order fields and "order_sps" for sps fields e.g. filter.ord.accession_number.like, filter.order_sps.modality.equals
  • SPS orders with a mpps_status of COMPLETED or DISCONTINUED are excluded from this search
top

HL7 commands

Description Get a list of HL7 messages in an account
URL /hl7/list
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
account_id • uuid of the account
filter.* Filters (optional)
page.* Pagination (optional)
sort_bySorting (optional)
Returns status • OK
page • The pagination status hash
messages • An array of the HL7 messages. Each message holds the following fields:
* uuid • uuid of the message
* created • Created datetime stamp of the message
* type • Message type
* accession_numbers • Array of the message accession numbers
* patientid • Patient MRN
* patient_name • Patient name
Permission hl7_message_view
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The account_id can not be found
NOT_PERMITTED • You are not permitted to do this
Notes To filter by accession number use parameter like filter.accession_number_h->'917364'.equals=1.
top

Description Get a list of outbound HL7 messages which were gathered by destination.
URL /hl7/outbound/list
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
account_id • uuid of the account
filter.* Filters. See Notes below. (optional)
page.* Pagination (optional)
sort_bySorting (optional)
Returns status • OK
page • The pagination status hash
messages • An array of the HL7 messages. Each message holds the following fields:
* uuid • uuid of the job
* created • Created datetime stamp of the message
* pickup • Picked up datetime stamp of the job
* status • Status code of the job (S|F|P|B|U) - Success, failure, partial transfer, blocked or uncached
* destination_uuid • Destination Id
* destination_name • Destination Name
* message • HL7 message
* study_id • Study uuid if was used, undef otherwise
* hl7_id • HL7 uuid if was used, undef otherwise
* type • Message type
* accession_numbers • Array of the message accession numbers
* patientid • Patient MRN
* patient_name • Patient name
Permission hl7_message_view
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The account_id can not be found
NOT_PERMITTED • You are not permitted to do this
INVALID_FIELD • Filter filter.(hl7,study).* are not supported
Notes Some of those messages were generated from study or template, so not all of them are seen in /hl7/list.
The message is cleared out after account.settings.study_hl7_message_cleanup_days number of days, null will be returned after this period.
top

Description Add a HL7 message to the system
URL /hl7/add
Parameters uuid • The node id
serial_no • The serial number of the node
message • The HL7 message
accession_number • Use this accession number instead of the accession number in the HL7 message (optional)
Returns status • OK
ack • The HL7 acknowledgement
uuid • UUID of the message
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The node can not be found
INVALID_MESSAGE • The message could not parsed as a HL7 message
Notes
  • If the accession number value is __DG_LOAD_FROM_MRN__ and the message has an MRN the accession numbers will be populated with the accession numbers of matching studies
top

Description Get a HL7 message
URL /hl7/get
Parameters (sid || node_id && serial_no) • Either the sid or the node uuid and serial number
uuid • The hl7 uuid
(study_id || study_uid && storage_namespace && phi_namespace) • The study uuid or the storage triplet (optional)
raw • Flag to return the raw HL7 message as well
Returns status • OK
uuid • The hl7 uuid
created • The date and time the report was created.
segments • A JSON list of lists of the segments in the message
hl7_template • The hl7_template to render the message with (optional)
raw • The hl7 message (optional)
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The hl7 can not be found
NOT_PERMITTED • You are not permitted to access this hl7
Notes
top

Description Delete a HL7 message
URL /hl7/delete
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
uuid • The hl7 uuid
Returns status • OK
Permission hl7_message_delete or study_report_delete permission for the associated study
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The hl7 can not be found
NOT_PERMITTED • You are not permitted to delete this hl7
Notes
top

Description Return the latest HL7 report for a study
URL /hl7/study/report
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
study_id • The study uuid
Returns status • OK
text • Plain text version of the report
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The study can not be found
NOT_PERMITTED • You are not permitted to view this
Notes
top

Description Extract the report from the HL7 and attach it to the studies
URL /hl7/extract/report
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
uuid • The HL7 uuid
Returns status • OK
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The HL7 can not be found
NOT_PERMITTED • You are not permitted to access this HL7 message
NOT_CONFIGURED • The node setting report_from_hl7 is not configured
Notes
top

Description List the HL7 templates for the account
URL /hl7/template/list
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
account_id • The account uuid
Returns status • OK
templates • A array of the template objects. Each object contains the fields in /hl7/template/get
Permission hl7_template_view
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The account can not be found
NOT_PERMITTED • You are not permitted to view this list
Notes
top

Description Add a HL7 template to the account
URL /hl7/template/add
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
account_id • The account uuid
name • Name of the template
body • The HL7 message with replacement expressions
Returns status • OK
uuid • Id of the template
Permission hl7_template_edit
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The account can not be found
NOT_PERMITTED • You are not permitted to do this
INVALID_HL7 • The body is not a valid HL7 message
Notes
  • The body of the template should be an HL7 message with Text::Template expressions for the field data that will be replaced when the template is evaluated
  • A sample Text::Template expression would be {$patient_name} which would be replaced by the value of the patient_name field in the study
  • Customfields can get accessed from the template as follows {$customfield_h{'UUID_OF_CUSTOM_FIELD'}}
  • The __COUNTER-XXX__ and __LCOUNTER-XXX__ values as documented in /namespace/anonymize is supported in the body of the template. This does not need to be in a Text::Template expression and if it is it should be quoted as a literal string.
  • The __REDIRECT_LINK-UUID__ value will be replaced by a /link/redirect link that is a duplicate of the link with the UUID. This must not be in a Text::Template expression.
  • The __DIRECT_LINK-UUID__ value will be replaced by a link with the HTML user UI that is a duplicate of the link with the UUID. This must not be in a Text::Template expression.
  • The duplicate link is updated with the current study data. If the link used a filter the filter values will be parsed as a Text::Template expressions for the current study.
  • If a study has an associated radreport the fields in the radreport can be included via the radreport_fields hash i.e. {$radreport_fields{'text-input-2'}}.
  • If a study has an associated radreport the specific lines in the radreport fields can be extracted via the __RADREPORT_LINE-N-FIELDNAME__ macro. N is the line number (one based) and FIELDNAME is the radreport field name i.e. __RADREPORT_LINE-3-text-input-2__. This must not be in a Text::Template expression.
  • If a study has an attachment the corresponding PDF can be included via the latest_attachment_pdf variable i.e. {$latest_attachment_pdf}. The value is base64 encoded.
  • If a study has an associated HL7 message specified in /study/push/hl7 the full HL7 message can be included e.g. {$hl7_message}
  • If a study has an associated HL7 message specified in /study/push/hl7 the HL7 segments can be included from the hl7_segments array, first segment is index 0, second segment is index 1 etc. e.g. {$hl7_segments[2]}
  • If a study has an associated HL7 message specified in /study/push/hl7 the HL7 fields can be included from the hl7_fields hash using the notation specified in /hl7/transform/add e.g. {$hl7_fields{'PID_2'}}
  • If a study has image data loaded via the /study/dicomdata/load call the __EPIC_LUMENS__ value will be replaced by the data needed to view the images in Lumens and the __EPIC_UUID__ value will be replaced by a UUID for each image. If the Dicomdata object has the named customfield lumens_link_uuid the send of the image will be tracked in this customfield and the image will only be sent once.
  • The helper variable {$current_timestamp} is timestamp like 2022-06-21 12:40:19 that could be used in functions below like {datetime_to_dicom(translate_time_zone($current_timestamp, 'GMT'))}
  • The following helper functions are supported in the teplate:
    1. translate_time_zone($timestamp, $timezone) - translate the timestamp with a time zone (e.g. 2022-03-25 17:40:12.419715+04:30) to a time zone (e.g. MST). Returns the corresponding timestamp in the time zone without fractional seconds and the offset part(e.g. 2022-03-25 06:10:12)
    2. datetime_to_dicom($timestamp) - format the timestamp as a DICOM Date Time without fractional seconds and an optional suffix for time zone offset. The timestamp should not contain fractional seconds and a time zone offset (e.g. 2022-03-25 06:10:12).
top

Description Modify a HL7 template
URL /hl7/template/set
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
uuid • The template id
name • Name of the template
body • The HL7 message with replacement expressions
Returns status • OK
Permission hl7_template_edit
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The template can not be found
NOT_PERMITTED • You are not permitted to do this
INVALID_HL7 • The body is not a valid HL7 message
Notes
top

Description Get a HL7 template
URL /hl7/template/get
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
uuid • The template id
Returns status • OK
uuid • The template id
name • Name of the template
type • Type of the HL7 message
body • The HL7 message with replacement expressions
Permission hl7_template_view
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The template can not be found
NOT_PERMITTED • You are not permitted to do this
Notes
top

Description Render a HL7 template for a study
URL /hl7/template/render
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
uuid • The template id
study_id • The study id
hl7_id • Optional hl7 message
text • Flag if you want the text returned rather than the JSON
hex • Flag if you want a hexdump of the text returned rather than the JSON
Returns status • OK
message • The HL7 message
Permission hl7_template_view
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The template or study can not be found
NOT_PERMITTED • You are not permitted to do this
Notes
top

Description Delete a HL7 template
URL /hl7/template/delete
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
uuid • The template id
Returns status • OK
Permission hl7_template_edit
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The template can not be found
NOT_PERMITTED • You are not permitted to do this
Notes
top

Description List the HL7 transforms for the account
URL /hl7/transform/list
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
account_id • The account uuid
filter.* Filters (optional)
page.* Pagination (optional)
sort_bySorting (optional)
Returns status • OK
page • The pagination status hash
transforms • A array of the transform objects. Each object contains the fields in /hl7/transform/get
Permission hl7_transform_view
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The account can not be found
NOT_PERMITTED • You are not permitted to view this list
Notes
top

Description Add a HL7 transform to the account
URL /hl7/transform/add
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
account_id • The account uuid
name • Name of the transform
order_by • A numeric ordering value. Transformations are run in this order from lowest to highest
conditions • A JSON array of the transform conditions
replacements • A JSON array of the transform replacements
Returns status • OK
uuid • Id of the transform
Permission hl7_transform_edit
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The account can not be found
NOT_PERMITTED • You are not permitted to do this
DUPLICATE_ORDER_BY • The order_by value is used by another transform
NOT_LIST • The field is not a JSON array. The error_subtype holds the name of the field
INVALID_CONDITION • An invalid condition was passed. The error_subtype holds the details on why it is invalid
INVALID_REPLACEMENT • An invalid replacement was passed. The error_subtype holds the details on why it is invalid
Notes
  • The HL7 fields in the conditions and replacements are specified as SEGMENT_FIELD or SEGMENT_FIELD_COMPONENT where field and component are the numeric positions (one based) within the SEGMENT and SEGMENT is the name with an optional positional qualifier. e.g. PID_1 for the first field in the PID segment or OBX-3_7_4 for the 4th component in the 7th field in the third OBX segment
  • A condition is a JSON hash keyed by the HL7 field specifier with the value a regexp to match against the field value. All conditions must match for the replacements to be performed. An example is [{"PID_1":"/^jane/"},{"OBX-3_5_2":"/doe/"}] which means that PID field 1 must start with jane and OBX segment 3 field 5 component 2 must contain doe for the HL7 message to match the condition.
  • A replacement is a JSON hash keyed by the HL7 field specifier with the value a Text::Template expression. All the HL7 fields are available for use in the template as variables. An example is [{"PID_1":"XXX-{$OBX-3_7_4}"}] which means replace the value in PID field 1 with XXX- plus the value of OBX segment 3 field 7 component 4.
  • The __UUID__ value in the Text::Template expression will be replaced with a UUID
  • The __COUNTER-XXX__ and __LCOUNTER-XXX__ value as documented in /namespace/anonymize is supported in the Text::Template expression
  • The __DELETE__ token in the replacement template instructs the transform to delete the Hl7 segment. All subsequent replacements will see the updated segment indexes.
top

Description Modify a HL7 transform
URL /hl7/transform/set
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
uuid • The transform id
name • Name of the transform
order_by • A numeric ordering value. Transformations are run in this order from lowest to highest
conditions • A JSON array of the transform conditions
replacements • A JSON array of the transform replacements
Returns status • OK
Permission hl7_transform_edit
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The account can not be found
NOT_PERMITTED • You are not permitted to do this
DUPLICATE_ORDER_BY • The order_by value is used by another transform
NOT_LIST • The field is not a JSON array. The error_subtype holds the name of the field
INVALID_CONDITION • An invalid condition was passed. The error_subtype holds the details on why it is invalid
INVALID_REPLACEMENT • An invalid replacement was passed. The error_subtype holds the details on why it is invalid
Notes
top

Description Get a HL7 transform
URL /hl7/transform/get
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
uuid • The transform id
Returns status • OK
uuid • The transform id
name • Name of the transform
order_by • A numeric ordering value. Transformations are run in this order from lowest to highest
conditions • A JSON array of the transform conditions
replacements • A JSON array of the transform replacements
Permission hl7_transform_view
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The transform can not be found
NOT_PERMITTED • You are not permitted to do this
Notes
top

Description Delete a HL7 transform
URL /hl7/transform/delete
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
uuid • The transform id
Returns status • OK
Permission hl7_transform_edit
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The transform can not be found
NOT_PERMITTED • You are not permitted to do this
Notes
top

Description Test HL7 transformation
URL /hl7/transform/test
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
hl7 • HL7 message to run the transformations on
Returns status • OK
hl7 • The transformed HL7 message
Permission hl7_transform_view
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_PERMITTED • You are not permitted to do this
Notes
top

Description Parse a HL7 message and show the field and values
URL /hl7/parse/fields
Parameters message • HL7 message to parse
fields • Comma delimited list of the field to return. Use the notation specified in /hl7/transform/add (optional)
Returns status • OK
fields • A JSON array of the fields and values
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
INVALID_MESSAGE • The message could not parsed as a HL7 message
Notes
top

Setting commands

Description Set a setting value for the user
URL /setting/set
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
key • The key to store the value under. If the key name begins with temp_ it is only available for the session.
value • The value to store
user_id • A sysadmin user can set the value for a specific user (optional)
role_id • Role uuid to update that key's value for each user having that role (optional)
account_id • Account id to set user_account's settings instead of user's (optional)
Permission user_setting_set if role_id is provided
Returns status • OK
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The account or role can not be found. The error_subtype holds the type of the not found item
NOT_PERMITTED • You do not have permission user_setting_set
Notes
  • Use the value __DELETE__ to delete a setting
  • If account_id is provided, then user_account's setting is set, user's otherwise
  • If role_id is provided, then setting is set according to account_id parameter as above
top

Description Get a setting value for the user
URL /setting/get
Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
key • The key to get
user_id • A sysadmin user can get the value for a specific user (optional)
account_id • Account id to get user_account's || user's setting (optional)
Returns status • OK
value • The setting value
Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
NOT_FOUND • The account can not be found
Notes
  • If account_id not provided, then user's setting is returned. Otherwise (user_account's || user's) setting is returned.
  • top

    Description Get all the settings for a user
    URL /setting/get/all
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    account_id • Account id to get user_account's || user's setting (optional)
    Returns status • OK
    settings • The hash of all non-temporary user settings
    Errors NOT_FOUND • The account can not be found
    Notes
  • If account_id is provided, then merged hash of (user_account's || user's) settings is returned.
  • top

    Node commands

    Harvester commands

    Description List the nodes for an account
    URL /node/list
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    account_id • uuid of the account (optional)
    filter.* Filters (optional)
    page.* Pagination (optional)
    sort_bySorting (optional)
    Returns status • OK
    page • The pagination status hash
    nodes • An array of the nodes. Each object holds the following same fields as the /node/get call
    Permission node_view
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The account can not be found
    NOT_PERMITTED • You are not permitted to view this list
    Notes If no account_id is provided, then sysadmin user will get all accounts, and the other users would get only which are members of.
    top

    Description List public nodes
    URL /node/public
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    account_id • The account the user is in
    filter.* Filters (optional)
    page.* Pagination (optional)
    sort_bySorting (optional)
    Returns status • OK
    page • The pagination status hash
    nodes • An array of the nodes. Each object will have the following fields
    * uuid • Node id
    * facility_name • Name of the facility it is installed at
    * facility_zip • Zip code of the facility it is installed at
    * facility_contact • Name of the facility contact
    * facility_contact_title • Title of the facility contact
    * facility_email • Email of the facility contact
    * facility_notes • Notes about the facility
    * connect_status • A status indicating a connection request state
    Permission node_connect
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The node or account can not be found
    NOT_PERMITTED • You are not permitted to do this
    INVALID_FILTER • Invalid filter field
    Notes
    • You can only filter on the facility_* fields
    • Possible values for connect_status:
      • NONE - No connection requested
      • PENDING - There are some connection requests
      • CONNECTED - The node is connected
      • REJECTED - The node connection was rejected
    top

    Description Request a connection to a public node
    URL /node/connect
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • The node id
    account_id • The account the user is in
    message • Message (optional)
    Returns status • OK
    Permission node_connect
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The node or account can not be found
    NOT_PERMITTED • You are not permitted to do this
    ALREADY_CONNECTED • The node is already connected to the account
    ALREADY_PENDING • The node is pending connection already
    Notes An email requesting the connection will sent to Ambra, the node operator and the user. The email is generated from the node_connect template for the account the node is located in.
    top

    Description Approve a public node connection
    URL /node/approve
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • The node id
    account_id • The account which requested the connection
    Returns status • OK
    Permission node_approve_connect
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The node, node connection request or account can not be found
    NOT_PERMITTED • You are not permitted to do this
    ALREADY_CONNECTED • The node is already connected to the account
    Notes
    top

    Description Add a node
    URL /node/add
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    name • Description of the node
    uuid • uuid of the node (optional, you can use this to explicitly set the UUID)
    serial_no • serial_no of the node (optional, a sysadmin can use this to explicitly set the serial no.)
    (account_id || location_id || group_id) • uuid of the account, location or group to link this node to
    type • Type of node (STORAGE|HARVESTER|ACCELERATOR|CLEARINGHOUSE|VIRTUAL|UTILITY|XDS)
    os_type • Node OS type, used with HARVESTER node type only (WINDOWS|MACOS) (optional)
    accelerator_id • uuid of the accelerator if this is an accelerator node
    facility_name • Name of the facility it is installed at (optional)
    facility_zip • Zip code of the facility it is installed at (optional)
    facility_contact • Name of the facility contact (optional)
    facility_contact_title • Title of the facility contact (optional)
    facility_email • Email of the facility contact (optional)
    facility_notes • Notes about the facility (optional)
    category • Node category (ACTIVE|INACTIVE|MIGRATION|TEST|DUPLICATE|INTEGRATED|ACCELERATOR) (optional)
    is_public • Flag if the node is public (optional)
    ctc_bucket • Name of the S3 bucket to use for a cloud to cloud gateway (optional)
    primary_node_id • The primary node id (optional)
    Returns status • OK
    uuid • The node uuid
    serial_no • The node serial number
    Permission node_edit
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    ACCOUNT_NOT_FOUND • The account was not found
    NOT_PERMITTED • You are not permitted to add a node to this account
    INVALID_UUID • Invalid uuid format or this uuid is already in use
    INVALID_SERIAL_NO • Invalid uuid format for serial_no
    INVALID_TYPE • Invalid type of node
    INVALID_OS_TYPE • Invalid OS type of node
    INVALID_LINKAGE • The linkage is invalid
    PRIMARY_NODE_NOT_FOUND • The primary node was not found
    Notes
    • You need to be a sysadmin to add a storage or clearinghouse node
    • The ctc_bucket feature will copy encrypted information on the customfields and link to a S3 bucket. On ingestion into another node with the same ctc_bucket name the customfield values will be applied to the study and link recreated.
    • Pass the primary_node_id to join the HA cluster. The primary node must be attached to the same namespace as the slave node.
    top

    Description Edit a node
    URL /node/set
    Parameters (sid || serial_no) • The session id or serial number of the node
    uuid • The node id
    name • Description of the node (optional)
    configuration • The configuration as a JSON hash of key values pairs (optional)
    reload_configuration • If this flag is set the node will be instructed to reload it's configuration on the next ping (optional)
    restart_gateway • If this flag is set the gateway will be instructed to restart the next ping (optional)
    monitor_study_create • Check if the node is sending studies normally (optional)
    monitor_study_create_threshold • Threshold in minutes for triggering the monitor_study_create notification (optional)
    monitor_node_ping • Check if the node is pinging (optional)
    monitor_node_ping_threshold • Threshold in minutes for triggering the monitor_node_ping notification (optional)
    monitor_node_slow_push • Check if the node is pushing slowly (optional)
    monitor_node_slow_push_threshold • Threshold in minutes for triggering the monitor_node_slow_push notification (optional)
    monitor_node_last_send • Check if the node has sent a study recently (optional)
    monitor_node_last_send_threshold • Threshold in minutes for triggering the monitor_node_last_send notification (optional)
    monitor_node_performance_metrics • A JSON hash of metrics that will be checked against the metrics sent to /node/performance/set. If a metric exceeds the value a failure notice will be sent (optional)
    monitor_email • Email address(es) to send monitor failure notices (optional)
    warning_email • Email address(es) to send warning notices (optional)
    storage_namespace • Namespace uuid to attach the node to. This requires a sysadmin sid and must be within the same account (optional)
    settings • A hash of the account settings that the node can override (optional)
    setting_{SETTING_NAME} • Set an individual setting. This is an alternative to the settings hash for easier use in the API tester (optional)
    facility_name • Name of the facility it is installed at (optional)
    facility_zip • Zip code of the facility it is installed at (optional)
    facility_contact • Name of the facility contact (optional)
    facility_contact_title • Title of the facility contact (optional)
    facility_email • Email of the facility contact (optional)
    facility_notes • Notes about the facility (optional)
    category • Node category (ACTIVE|INACTIVE|MIGRATION|TEST|DUPLICATE|INTEGRATED) (optional)
    is_public • Flag if the node is public (optional)
    ctc_bucket • Name of the S3 bucket to use for a cloud to cloud gateway (optional)
    primary_node_id • The primary node id (optional)
    Returns status • OK
    Permission node_edit
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The node can not be found
    INVALID_JSON • The field is not in valid JSON format. The error_subtype holds the name of the field
    NOT_PERMITTED • You are not permitted to edit this node
    INVALID_CONFIGURATION • An invalid combination of configuration options was set. The error_subtype will hold more detail
    NO_NODE_OVERRIDE • The setting does not allow a node override
    PRIMARY_NODE_NOT_FOUND • The primary node was not found
    CANNOT_MOVE_SLAVE • Cannot move the slave and master nodes between namespaces separately
    CANNOT_MOVE_PRIMARY • Cannot move the slave and master nodes between namespaces separately
    INVALID_INTEGER • An invalid integer was passed. The error_subtype holds the name of the invalid integer
    Notes
    • The configuration hash does not need to be complete. It can include only the items you want to update or the entire set.
    • Use the value __DELETE__ to delete a setting, it will then revert to the account value of the setting
    top

    Description Get a node
    URL /node/get
    Parameters uuid • The node id
    (sid || serial_no) • The session id or serial number of the node
    Returns status • OK
    name • Description of the node
    uuid • uuid of the node
    type • The type of the node
    os_type • Node OS type
    serial_no • The serial number of the node
    storage_namespace • The storage namespace the node should harvest to
    storage_namespace_name • The name of the storage namespace the node should harvest to
    configuration • The configuration as JSON hash of key values pairs
    monitor_study_create • Check if the node is sending studies normally
    monitor_study_create_threshold • Threshold in minutes for triggering the monitor_study_create notification
    monitor_node_ping • Check if the node is pinging
    monitor_node_ping_threshold • Threshold in minutes for triggering the monitor_node_ping notification
    monitor_node_slow_push • Check if the node is pushing slowly
    monitor_node_slow_push_threshold • Threshold in minutes for triggering the monitor_node_slow_push notification
    monitor_node_last_send • Check if the node has sent a study recently
    monitor_node_last_send_threshold • Threshold in minutes for triggering the monitor_node_last_send notification
    monitor_node_performance_metrics • A JSON hash of metrics that will be checked against the metrics sent to /node/performance/set.
    monitor_email • Email address(es) to send monitor failure notices
    warning_email • Email address(es) to send warning notices
    accelerator_id • uuid of the accelerator if this is an accelerator node
    account_id • The associated account id
    settings • A hash of the account settings that the node has overridden
    has_access • Flag if the user has node_view or node_edit permissions on this node
    facility_name • Name of the facility it is installed at
    facility_zip • Zip code of the facility it is installed at
    facility_contact • Name of the facility contact
    facility_contact_title • Title of the facility contact
    facility_email • Email of the facility contact
    facility_notes • Notes about the facility
    category • Node category (ACTIVE|INACTIVE|MIGRATION|TEST|DUPLICATE|INTEGRATED)
    is_public • Flag if the node is public
    ctc_bucket • Name of the S3 bucket to use for a cloud to cloud gateway (optional)
    last_ping • Number of seconds since the nodes last ping. -1 if the node has never pinged
    primary_node_id • The primary node id
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The node can not be found
    Notes
    top

    Description Ping node
    URL /node/ping
    Parameters uuid • The node id
    serial_no • The serial number of the node
    ack • Flag if the gateway wants to use the acknowledge workflow
    Returns status • OK
    reload_configuration • An optional flag field, if set the node should reload it's configuration.
    restart_gateway • An optional flag field, if set the gateway should restart
    ack • Flag if an acknowledgement is needed (optional)
    studies • An array of the studies each object in the array will have the following fields
    * uuid • Id of the push job
    * study_uid • The study uid
    * storage_namespace • The storage namespace
    * phi_namespace • The phi namespace
    * engine_fqdn • The FQDN of the storage engine for the study
    * modality • The study modality
    * size • The study size
    * image_count • The study image_count
    * accession_number • The study accession number
    * patientid • The study MRN
    * destination_id • Id of the destination (if the destination is DICOM)
    * aetitle • The ae title to send to (if the destination is DICOM)
    * address • The destination address (if the destination is DICOM)
    * port • The destination port (if the destination is DICOM)
    * created_at • Timestamp when the push job was created (if the destination is DICOM)
    * created_by_name • Name of the user who created the push job (if the destination is DICOM)
    * path • The destination path (if the destination is FOLDER)
    * bundle • The bundle type (if the destination is FOLDER)
    * detail • Any additional detail from the /study/cmove or "use_cache" if local routing is required or "is_auto" if this was created by routing rules
    fetch • An array of the studies to fetch each object in the array will have the following fields
    * uuid • Id of the fetch job
    * accession_number • The accession number to query on
    * destination_id • Id of the destination
    * aetitle • The ae title to query to
    * address • The query address
    * port • The query port
    * study_uid • Study uid to query for
    * patientid • Patient id to query for
    * destination_ae_title • Value of the field in the thin study (optional)
    * source • Source of the fetch either 'H' for an HL7 triggered fetch or 'O' for other
    * anonymize • A JSON hash of anonymization rules to apply to retrieved studies (optional)
    hl7 • An array of HL7 messages to deliver each object in the array will have the following fields
    * uuid • Id of the job
    * destination_id • Id of the destination
    * message • The HL7 message to deliver
    * address • The HL7 destination address
    * port • The HL7 destination port
    search_results • An array of the results from the /destination/search jobs run by the gateway. Each object in the array will have the following fields
    * uuid • Id of the search results
    * destination_id • Id of the destination that was searched
    * payload • Payload from the search
    * search_id • UUID of the original search
    search • An array of the search jobs to run. Each object in the array will have the following fields
    * uuid • Id of the search job
    * destination_id • Id of the destination
    * aetitle • The ae title to query to
    * address • The query address
    * port • The query port
    * mwl_search • Flag to indicate if this is a modality worklist search
    * node_search • Flag to indicate if this is a search from another node
    * create_thin • Value entered in the /destination/search
    * create_study • Value entered in the /destination/search
    * create_study_order • Value entered in the /destination/search
    * The rest of the fields are the optional search parameters in either the /destination/search or the /destination/search/mwl call
    webhook • An array of the webhooks to run. Each object in the array will have the following fields
    * uuid • Id of the webhook job
    * method • The HTTP method to use
    * url • The URL to call
    * parameters • A JSON hash of the call parameters
    * auth • The webhook auth setting
    burn • An array of the CD burn jobs to run. Each object in the array will have the following fields
    * uuid • Id of the burn job
    * name • Name of the destination
    * template • The template for the job
    * priority • Priority of the job
    * studies • An array of the studies to burn. Each object in the array will have the following fields
    ** study_uid • The study uid
    ** modality • The study modality
    ** size • The study size
    ** image_count • The study image_count
    ** study_description • The study description
    ** study_date • The study date
    ** storage_namespace • The storage namespace
    ** phi_namespace • The phi namespace
    ** engine_fqdn • The FQDN of the storage engine for the study
    ** labels • A JSON array of the labels
    log • An array of the log search jobs to run. Each object in the array will have the following fields
    * start • The start date and time for the log range
    * end • The end date and time for the log range
    * type • The log type to process (log|dicom|queue|system)
    xml • An array of the XML jobs to process
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The node can not be found
    Notes
    • The uuid and serial_no can also be passed using basic auth as the username/password combination
    • The maximum number of studies, fetches or hl7 messages returned in a single ping is controlled by the max_records_per_ping node configuration value. The default is 100.
    top

    Description Acknowledge the last ping
    URL /node/ping/ack
    Parameters uuid • The node id
    serial_no • The serial number of the node
    Returns status • OK
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The node can not be found
    Notes
    top

    Description Update the status of a job picked up /node/ping
    URL /node/deliver
    Parameters uuid • The node id
    serial_no • The serial number of the node
    job_id • The uuid of the push job, not used for local pushes (optional)
    status • Status code of the job (S|F|P|B|U) - Success, failure, partial transfer, blocked or uncached
    status_reason • Detail on the status change (optional)
    ack • The HL7 ACK if this was an HL7 job (optional)
    email_reason • Email the user this reason for the status change (optional)
    is_local • The flag used to indicate the local push (optional)
    study_uid • The study uid of the local push, required for local pushes only (optional)
    destination_id • The uuid of the destination, required for local pushes (optional)
    Returns status • OK
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The node or job can not be found
    INVALID_STATUS • Invalid status code
    CONFLICTING_STATUS • This status conflicts with a prior status update
    Notes
    • The uuid and serial_no can also be passed using basic auth as the username/password combination
    • The email_reason is not sent if the status was not changed
    top

    Description Update the status of a fetch job picked up /node/ping
    URL /node/retrieve
    Parameters uuid • The node id
    serial_no • The serial number of the node
    job_id • The uuid of the fetch job
    status • Status code of the job (S|F|P) - Success, failure, partial transfer
    Returns status • OK
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The node or job can not be found
    INVALID_STATUS • Invalid status code
    Notes The uuid and serial_no can also be passed using basic auth as the username/password combination
    top

    Description Set the status of webhook picked up /node/ping
    URL /node/webhook
    Parameters uuid • The node id
    serial_no • The serial number of the node
    webhook_id • The uuid of the webhook job
    status • Status code of the job (S|F) - Success, failure
    error_message • Detailed error message (optional)
    Returns status • OK
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The node or webhook can not be found
    INVALID_STATUS • Invalid status code
    Notes The uuid and serial_no can also be passed using basic auth as the username/password combination
    top

    Description Get the node configuration
    URL /node/configuration
    Parameters uuid • The node id
    serial_no • The serial number of the node
    Returns status • OK
    storage_namespace • The storage namespace the node should harvest to
    configuration • The configuration as JSON hash of key values pairs
    destinations • An array of the destinations for the node. Each object holds the following same fields as the /destination/get call
    account_settings • A hash of the relevant account settings. (study_search_modifiers)
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The node can not be found
    Notes

    The uuid and serial_no can also be passed using basic auth as the username/password combination

    The ingress_filter element contains a json string which includes the group/element, the type of comparison and the value to test against. A sample document is as follows: {'filters':[{'groupElement': '0028,0004','evaluation' : '!=','value' : 'MONOCHROME1'}]}. This says that for the element 0028,0004 the value can not equal MONOCHROME1

    top

    Description Delete a node
    URL /node/delete
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • The node id
    Returns status • OK
    Permission node_edit
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The node can not be found
    NOT_PERMITTED • You are not permitted to delete this node
    HAS_DESTINATIONS • The node has associated destinations
    Notes
    top

    Description A study was queued for pushing to storage
    URL /node/study/queued
    Parameters uuid • The node id
    serial_no • The serial number of the node
    study_uid • The study uid
    Returns status • OK
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The node can not be found
    Notes A node should notify services when it receives a study that needs to be pushed to the cloud. This call is needed for the monitor_study_create check to work.
    top

    Description A study was anonymized by the gateway
    URL /node/study/anonymized
    Parameters uuid • The node id
    serial_no • The serial number of the node
    old_study_uid • The old study uid
    new_study_uid • The new study uid
    Returns status • OK
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The node can not be found
    Notes A node should notify services when a study_uid is anonymized prior to uploading the study to the storage. This call is needed to adjust actions scheduled on the study (shares, edits, etc).
    top

    Description Return the results of a search
    URL /node/found
    Parameters uuid • The node id
    serial_no • The serial number of the node
    search_id • The id of the search request
    status • Status code of the job, S by default (S|F) - Success, failure (optional)
    studies • A JSON array of the studies found. Each object has the following fields (optional)
    * study_uid • The study_uid
    * study_date • The study date
    * accession_number • The accession number
    * referring_physician • The referring physician
    * patient_name • Patient name
    * patientid • Patient ID
    * patient_sex • Gender
    * patient_birth_date • Birth date
    * study_description • Study description
    * modality • Modality
    * result_fields • A JSON structure with the answers for the requested result_fields in /destination/search (optional)
    Returns status • OK
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The node or search can not be found
    INVALID_JSON • The field is not in valid JSON format. The error_subtype holds the name of the field
    ALREADY_DONE • The search has already had results returned against it
    INVALID_STATUS • An invalid status was passed
    Notes
    top

    Description Return the results of a modality worklist search
    URL /node/found/mwl
    Parameters uuid • The node id
    serial_no • The serial number of the node
    search_id • The id of the search request
    status • Status code of the job, S by default (S|F) - Success, failure (optional)
    orders • A JSON array of the orders found. Each object has the following fields (optional)
    * patient_name • Patient name
    * patientid • Patient id
    * accession_number • Accession number
    * patient_sex • Gender
    * patient_birth_date • Birth date
    * order_number • Order number
    * order_date • Order date
    Returns status • OK
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The node or search can not be found
    INVALID_JSON • The field is not in valid JSON format. The error_subtype holds the name of the field
    ALREADY_DONE • The search has already had results returned against it
    INVALID_STATUS • An invalid status was passed
    Notes
    top

    Description Notify for a node event
    URL /node/event
    Parameters uuid • The node id
    serial_no • The serial number of the node
    event • The event (c_echo_error)
    destination_id • The id of the destination if the event is associated with a destination
    Returns status • OK
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The node or destination can not be found
    INVALID_EVENT • Invalid event
    SCHEDULE_IS_OFF • The event is outside of its scheduled time
    Notes
    top

    Description Request logs from the node be attached to a study
    URL /node/log
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • The node id
    start • Start time stamp in YYYY-MM-DD HH:MM:SS format
    end • End time stamp in YYYY-MM-DD HH:MM:SS format
    type • Type of log (log|dicom|queue|system) defaults to log if not passed
    Returns status • OK
    Permission node_view
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The node can not be found
    NOT_PERMITTED • You are not permitted to perform this action
    INVALID_DATE_TIME • The timestamp is invalid
    INVALID_RANGE • An invalid time range was specified
    TRY_LATER • The log search queue is full
    Notes
    • A maximum of three log jobs can be queued up for the node
    top

    Description Send XML to or from a node
    URL /node/xml
    Parameters (sid || serial_no) • The session id or serial number of the node
    uuid • The node id
    xml • XML message
    Returns status • OK
    Permission
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The node can not be found
    NOT_PERMITTED • You are not permitted to perform this action
    INVALID_XML • The XML does not parse
    FULL • The XML queue is full
    Notes
    top

    Description Record a metric for a job on the node
    URL /node/metric
    Parameters uuid • The node id
    serial_no • The serial number of the node
    job_id • The uuid of the push job
    metric • The metric to record
    Returns status • OK
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The node or job can not be found
    INVALID_METRIC • The metric is invalid for this job type
    Notes The following metrics are supported
    • CD Burn jobs
      • job_queued
      • download_start
      • download_end
      • unzip_start
      • unzip_end
      • burn_start
      • burn_end
    top

    Description Set performance counters for the node
    URL /node/performance/set
    Parameters uuid • The node id
    serial_no • The serial number of the node
    data • A JSON data structure with performance data
    Returns status • OK
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The node can not be found
    Notes
    top

    Description Get performance counters for the node
    URL /node/performance/get
    Parameters (sid || serial_no) • The session id or serial number of the node
    uuid • The node id
    Returns status • OK
    data • The node's performance data
    Errors NOT_FOUND • The node can not be found
    NOT_PERMITTED • You are not permitted to view this node
    Notes
    top

    Description Add a progress record for the node
    URL /node/progress/add
    Parameters uuid • The node id
    serial_no • The serial number of the node
    queue • The queue
    state • The status
    destination_id • The destination uuid (optional)
    study_uid • Study uid (optional)
    patientid • DICOM tag (0010,0020) (optional)
    accession_number • DICOM tag (0008,0050) (optional)
    detail • JSON detail (optional)
    Returns status • OK
    uuid • The record uuid
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The node or destination can not be found
    Notes
    top

    Description List the progress records for the node or destination
    URL /node/progress/list
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    (node_id || destination_id) • The node or destination id
    filter.* Filters (optional)
    page.* Pagination (optional)
    sort_bySorting (optional)
    Returns status • OK
    page • The pagination status hash
    last_ping • Number of seconds since the nodes last ping. -1 if the node has never pinged
    progresses • An array of the progress records. Each object holds the following same fields as the /node/progress/get call
    Permission node_view
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The node can not be found
    NOT_PERMITTED • You are not permitted to do this
    Notes
    • The list is sorted by creation order from most recent to oldest
    top

    Description Get a node progress record
    URL /node/progress/get
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • The node progress uuid
    Returns status • OK
    destination_id • The destination uuid
    destination_name • The destination name
    queue • The queue
    state • The status
    study_uid • Study uid
    patientid • DICOM tag (0010,0020) (optional)
    accession_number • DICOM tag (0008,0050) (optional)
    detail • JSON detail
    created • Timestamp
    Permission node_view
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The record can not be found
    NOT_PERMITTED • You are not permitted to do this
    Notes
    top

    Destination commands

    Dicom destinations

    Description List the destinations for the account
    URL /destination/list
    Parameters (sid || node_id && serial_no) • Either the sid or the node uuid and serial number
    account_id • uuid of the account
    filter.* Filters (optional)
    page.* Pagination (optional)
    sort_bySorting (optional)
    Returns status • OK
    page • The pagination status hash
    destinations • An array of the destinations. Each object holds the following same fields as the /destination/get call
    Permission destination_view
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The account can not be found
    NOT_PERMITTED • You are not permitted to view this list
    Notes
    top

    Description Add a destination to the account
    URL /destination/add
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    account_id • uuid of the account
    node_id • uuid of the node that handles the destination
    name • Name of the destination
    type • Type of the destination either DICOM, FOLDER, ACCELERATOR,VIRTUAL, BURNER, XDS, LINKED, DISTRIBUTING or UPLOADER. Defaults to DICOM (optional)
    linked_destination • uuid of the destination for LINKED destinations
    linked_qr_to_referred_account • A flag to create resultant studies in the linked destination's account (not the account of LINKED destination where the search was initiated). Meaningful for LINKED destinations only (opional)
    linked_qr_activity_in_referred_account • A flag to create DESTINATION_SEARCH activities in the linked destination's account. Meaningful for LINKED destinations only (opional)
    distributed_destinations • A JSON array of destination ids. This list will be used to process requests in round robin manner. Meaningful for DISTRIBUTING destination type only (opional)
    path • Path of the folder for a FOLDER type of destination (required if FOLDER type)
    aetitle • Aetitle of the destination (required if DICOM type)
    address • Address of the destination (required if DICOM type)
    port • Port of the destination (required if DICOM type)
    can_query_retrieve • Can this destination support query retrieve from HL7 messages (optional)
    can_retrieve_thin • Can this destination support retrieving thin studies (optional)
    can_search • Can this destination support searching (optional)
    can_search_mwl • Can this destination support searching a modality work list (optional)
    can_push_hl7 • Can this destination support pushong Hl7 messages (optional)
    sqlch_psh_if_img_unchg • Squelch pushes to the destination if the image count has not changed and the push is by a routing rule (optional)
    sqlch_psh_if_route_hl7 • Squelch pushes to the destination if the push was generated by HL7 triggered routing (optional)
    hl7_address • Address of an attached HL7 destination (optional except for VIRTUAL destinations)
    hl7_port • Port of an attached HL7 destination (optional except for VIRTUAL destinations)
    c_echo_interval • Interval in seconds to C echo the destination (optional)
    c_echo_schedule • C echo schedule (optional)
    fire_webhooks • Fire webhooks for events associated with this destination (optional)
    default_query_retrieve_level • Default query retrieve level this can be either (study|series|image) and defaults to study if not specified (optional)
    push_related_studies • Push all the related studies (same MRN/patientid) in the namespace when a study is pushed (optional)
    gateway_settings • Gateway settings (optional)
    cd_burn_info • A JSON hash with the CD burning information (optional)
    cd_burn_name • Name for the CD burner software (optional)
    cd_burn_priority • Integer value for the burner priority (optional)
    sort_order • Integer value for sorting (optional)
    hl7_fetch_filter • A transform condition expression (see /transform/add for format) to match against the HL7 message. Only fire a query retrieve if the message matches the condition (optional)
    manual_push_roles • A comma separated list of role uuids, a user is required to have one of them to manually push to this destination (optional)
    ui_json • JSON for UI settings (optional)
    Returns status • OK
    uuid • uuid of the destination
    Permission destination_edit
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The account can not be found
    INVALID_NODE_TYPE • The node is not a harvester
    NODE_NOT_FOUND • The node can not be found
    INVALID_VALUE • An invalid value was passed. The error_subtype holds the value
    DUP_AETITLE • Duplicate aetitle. All destinations for the same node must have a unique aetitle
    NOT_PERMITTED • You are not permitted to add a destination to this account
    INVALID_FLAG • An invalid flag was passed. The error_subtype holds the name of the invalid flag
    INVALID_INTEGER • An invalid integer was passed. The error_subtype holds the name of the invalid integer
    INVALID_SCHEDULE • The schedule is invalid. The error_subtype holds the error detail
    INVALID_TYPE • An invalid type was passed
    INVALID_GATEWAY_TYPE • The type is wrong for the gateway it is getting attached to
    INVALID_CD_BURN_INFO • Invalid cd_burn_info. The error_subtype holds more detail
    INVALID_NODE_TYPE • The node type is invalid for this type of destination
    INVALID_DISTRIBUTED_DESTINATION • distributed_destinations configuration is invalid
    NOT_SYSADMIN • The user is not a sysadmin user
    Notes
    • A VIRTUAL destination will send HL7 messages directly to the destinations hl7 address and port. It does not currently support study operations.
    • A LINKED destination allows access to destinations in other namespaces or accounts. It can only be created by a sysadmin and must be attached to a VIRTUAL node. If a /destination/search is run against the LINKED destination the search will be sent to the linked_destination and up to 20 studies will be retrieved and copied back into the LINKED destination namespace.
    • A DISTRIBUTING destination allows request distribution among a configured list of destinations. Use distributed_destinations paremeter to define a list of destinations. The only distribution strategy is "round robin" currently.
    • CD burning information. A JSON hash with the following field(s)
      • labels_single: A JSON list of template fields for a single study burn. The fields can contain Text::Template expressions like {$patient_name} which will be evaluated with the study data
      • labels_multi: A JSON list of template fields for a multiple study burn. The fields can contain Text::Template expressions like {$patient_name} which will be evaluated with the study data
    top

    Description Edit a destination
    URL /destination/set
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • uuid of the destination
    name • Name of the destination (optional)
    path • Path of the folder (optional)
    aetitle • Aetitle of the destination (optional)
    address • Address of the destination (optional)
    port • Port of the destination (optional)
    node_id • uuid of the node that handles the destination (optional)
    can_query_retrieve • Can this destination support query retrieve from HL7 messages (optional)
    can_retrieve_thin • Can this destination support retrieving thin studies (optional)
    can_search • Can this destination support searching (optional)
    can_search_mwl • Can this destination support searching a modality work list (optional)
    can_push_hl7 • Can this destination support pushong Hl7 messages (optional)
    sqlch_psh_if_img_unchg • Squelch pushes to the destination if the image count has not changed and the push is by a routing rule (optional)
    sqlch_psh_if_route_hl7 • Squelch pushes to the destination if the push was generated by HL7 triggered routing (optional)
    hl7_address • Address of an attached HL7 destination (optional)
    hl7_port • Port of an attached HL7 destination (optional)
    c_echo_interval • Interval in seconds to C echo the destination (optional)
    c_echo_schedule • C echo schedule (optional)
    fire_webhooks • Fire webhooks for events associated with this destination (optional)
    default_query_retrieve_level • Default query retrieve level this can be either (study|series|image) and defaults to study if not specified (optional)
    push_related_studies • Push all the related studies (same MRN/patientid) in the namespace when a study is pushed (optional)
    gateway_settings • Gateway settings (optional)
    cd_burn_info • A JSON hash with the CD burning information (optional)
    cd_burn_name • Name for the CD burner software (optional)
    cd_burn_priority • Integer value for the burner priority (optional)
    sort_order • Integer value for sorting (optional)
    hl7_fetch_filter • A transform condition expression (see /transform/add for format) to match against the HL7 message. Only fire a query retrieve if the message matches the condition (optional)
    manual_push_roles • A comma separated list of role uuids, a user is required to have one of them to manually push to this destination (optional)
    linked_qr_to_referred_account • A flag to create resultant studies in the linked destination's account (not the account of LINKED destination where the search was initiated). Meaningful for LINKED destinations only (opional)
    linked_qr_activity_in_referred_account • A flag to create DESTINATION_SEARCH activities in the linked destination's account. Meaningful for LINKED destinations only (opional)
    distributed_destinations • A JSON array of destination ids. This list will be used to process requests in round robin manner. Meaningful for DISTRIBUTING destination type only (opional)
    ui_json • JSON for UI settings (optional)
    Returns status • OK
    Permission destination_edit
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The destination can not be found
    NOT_PERMITTED • You are not permitted to edit the destination
    NODE_NOT_FOUND • The node can not be found
    INVALID_NODE_TYPE • The node is not a harvester
    INVALID_VALUE • An invalid value was passed. The error_subtype holds the value
    DUP_AETITLE • Duplicate aetitle. All destinations for the same node must have a unique aetitle
    INVALID_FLAG • An invalid flag was passed. The error_subtype holds the name of the invalid flag
    INVALID_INTEGER • An invalid integer was passed. The error_subtype holds the name of the invalid integer
    INVALID_SCHEDULE • The schedule is invalid. The error_subtype holds the error detail
    INVALID_CD_BURN_INFO • Invalid cd_burn_info. The error_subtype holds more detail
    INVALID_DISTRIBUTED_DESTINATION • distributed_destinations configuration is invalid
    Notes
    top

    Description Get a destination
    URL /destination/get
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • uuid of the destination
    Returns status • OK
    uuid • uuid of the destination
    name • Name of the destination
    type • Type of the destination
    path • Path of the folder
    aetitle • Aetitle of the destination
    address • Address of the destination
    port • Port of the destination
    node_id • id of the handle that handles the destination
    can_query_retrieve • Can this destination support query retrieve from HL7 messages
    can_retrieve_thin • Can this destination support retrieving thin studies
    can_search • Can this destination support searching
    can_search_mwl • Can this destination support searching a modality work list
    can_push_hl7 • Can this destination support pushong Hl7 messages
    sqlch_psh_if_img_unchg • Squelch pushes to the destination if the image count has not changed and the push is by a routing rule
    sqlch_psh_if_route_hl7 • Squelch pushes to the destination if the push was generated by HL7 triggered routing
    hl7_address • Address of an attached HL7 destination
    hl7_port • Port of an attached HL7 destination
    c_echo_interval • Interval in seconds to C echo the destination
    c_echo_schedule • C echo schedule
    fire_webhooks • Fire webhooks for events associated with this destination
    default_query_retrieve_level • Default query retrieve level
    push_related_studies • Push all the related studies (same MRN/patientid) in the namespace when a study is pushed
    gateway_settings • Gateway settings
    cd_burn_info • A JSON hash with the CD burning information
    cd_burn_name • Name for the CD burner software
    cd_burn_priority • Integer value for the burner priority
    sort_order • Integer value for sorting
    hl7_fetch_filter • A transform condition expression (see /transform/add for format) to match against the HL7 message. Only fire a query retrieve if the message matches the condition linked_destination • uuid of the linked destination if this is a LINKED type destination
    manual_push_roles • A comma separated list of role uuids, a user is required to have one of them to manually push to this destination
    linked_qr_to_referred_account • A flag to create resultant studies in the linked destination's account (not the account of LINKED destination where the search was initiated). Meaningful for LINKED destinations only
    linked_qr_activity_in_referred_account • A flag to create DESTINATION_SEARCH activities in the linked destination's account. Meaningful for LINKED destinations only
    distributed_destinations • A JSON array of destination ids. This list is used to process requests in round robin manner
    ui_json • JSON for UI settings
    Permission destination_view
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The destination can not be found
    NOT_PERMITTED • You are not permitted to view the destination
    Notes
    top

    Description Delete a destination
    URL /destination/delete
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • uuid of the destination
    Returns status • OK
    Permission destination_edit
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The destination can not be found
    NOT_PERMITTED • You are not permitted to delete the destination
    Notes
    top

    Description Search a destination
    URL /destination/search
    Parameters (sid || node_id && serial_no) • Either the sid or the node uuid and serial number
    uuid • uuid of the destination
    study_request_id • uuid of a study request (optional)
    copy_to • uuid of a namespace to copy the retrieved or create_thin studies into (optional)
    push_to • uuid of a destination to push the retrieved studies to (optional)
    return_results • A flag to not create any studies or activities as a result of the search (optional)
    create_thin • The maximum number of thin studies to create from this search instead of creating an activity for the search results (optional)
    create_study • The maximum number of studies to retrieve from this search instead of creating an activity for the search results (optional)
    create_study_order • The retrieved studies will be created in this order. The key follows the Sorting specification, fields reported by /node/found (including result_fields tags) can be used refetch_study • Flag to refetch the search results when studies have been fetched already (optional) (see Notes)
    share_email • Email to share retrieved studies with on subsequent /destination/retrieve (optional)
    bundle_id • An integral number Used internally to track searches initiated from a single bundle (optional)
    customfield-{CUSTOMFIELD_UUID} • Custom field(s) will be set for the resultant studies after /destination/retrieve call (optional)
    customfield-'{CUSTOMFIELD_NAME}' • Custom field(s) to be set for the resultant studies. (optional)
    anonymize • A JSON hash of anonymization rules to apply to retrieved studies (optional)
    anonymize_{STUDY_FIELD} • The anonymization rules breakdown. This overrides the anonymize parameter if passed (optional)
    tracking_number • A UUID tracking number that can be used to pull a report against this search (optional)
    -- The rest of the fields are used for the search --
    study_uid • Study uid to find (optional)
    patient_name • Patient name to find (optional)
    patientid • Patient id to find (optional)
    accession_number • Accession number to find (optional)
    referring_physician • Referring physician to find (optional)
    modality • Modality (optional)
    start_datetime • DICOM start date time stamp to bound the search (optional)
    end_datetime • DICOM end date time stamp to bound the search (optional)
    patient_sex • Gender to find (optional)
    patient_birth_date • Birth date to find (optional)
    query_fields • A JSON hash of additional query fields (optional)
    result_fields • A JSON array of DICOM tags that the destination should return (optional)
    Returns status • OK
    uuid • UUID of the search
    Permission destination_search
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The destination, namespace or study request can not be found
    NOT_PERMITTED • You are not permitted to search the destination
    NOT_SUPPORTED • The destination does not support searching a destination
    INVALID_FIELD_NAME • The field cannot be used in anonymization rules. The error_subtype holds the invalid field name.
    INVALID_REGEXP • Invalid anonymization rule regular expression. The error_subtype holds the invalid regexp.
    INSUFFICIENT_CRITERIA • Not enough search fields are populated
    CAN_NOT_TRACK • Tracking only works with the create_study option
    FORBIDDEN_FIELD • A hidden or read-only study field was passed. The error_subtype holds the invalid field name.
    Notes
    • start_datetime and end_datetime support underscore token substitutions. Tokens available: __TODAY__, __YESTERDAY__, __TOMORROW__, __N_DAYS_AGO__. Both take users' time zone into account.
    • study_request_id parameter is used to trigger study request worflow search, all other optional parameters are ignored in this case. The search is executed using study request criteria. Results are available through /study/request/get call
    • for the customfield-'{CUSTOMFIELD_NAME}' parameters a fields name should be quoted with a single quote character. All single quotes and backslashes inside the name should be escaped with a backslash character.
    • if refetch_study is not set and corresponding node.configuration contains upload_anonymize_uids_if_already_exists=true, then this flag is set
    top

    Description Poll destination search results
    URL /destination/search/get
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • uuid of the destination search
    Returns status • OK
    uuid • UUID of the search
    pickup • Picked up datetime stamp of the search
    search_status • Status code of the search (S|F)
    created • Date and time the search job was created
    updated • Date and time the search job was updated
    destination_id • Id of the destination
    results • An array of search results, each object in the array will have a subset of the following fields (depending of what fields were returned by the gateway)
    * patientid • Patient MRN
    * patient_name • Patient name
    * accession_number • Accession number
    * patient_sex • Gender
    * patient_birth_date • DOB
    * referring_physician • Referring physician
    * modality • Modality
    * study_date • The study date
    * study_description • Study description
    * study_uid • The study uid
    Permission destination_search
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The destination search can not be found
    NOT_PERMITTED • You are not permitted to get the search results
    Notes
    top

    Description Generate a report against the tracking number of the search(s)
    URL /destination/search/report
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    tracking_number • The tracking number to report on
    email • Optional email address to send the report to
    Returns status • OK
    report_id • The report id
    Permission destination_search
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The namespace was not found
    NOT_PERMITTED • You are not permitted to do this
    Notes
    top

    Description Retrieve a study from a destination
    URL /destination/retrieve
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    -- The following fields are used for the activity retrieve workflow --
    activity_id • uuid of the DESTINATION_SEARCH activity to retrieve from
    customfield-{CUSTOMFIELD_UUID} • Custom field(s) will be set for the study retrieved (optional)
    customfield-{CUSTOMFIELD_UUID} • Custom field(s) will be set for the study retrieved (optional)
    -- The following fields are used for the AMP-UI workflow --
    destination_search_id • uuid of the destination search
    study_uidstudy_uid of one of the search results
    accession_numberaccession_number of one of the search results (optional)
    patientidpatientid of one of the search results (optional)
    -- The following fields are used for the study request workflow --
    study_request_found_id • UUID of a study request search results to retrieve and send as study request response
    send_method • The method to send a study as a study request response (share|duplicate)
    Returns status • OK
    Permission destination_search
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The object was not found. The error_subtype holds the type of object not found
    FORBIDDEN_FIELD • A hidden or read-only study field was passed. The error_subtype holds the invalid field name.
    NOT_PERMITTED • You are not permitted to retriave the search results
    Notes
    • The customfields provided through the call parameters will override (per customfield) the customfields passed to the prior /destination/search call
    top

    Description Run a modality worklist search on a destination
    URL /destination/search/mwl
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • uuid of the destination
    study_id • The id of the study we are searching for orders for
    -- The rest of the fields are used for the search --
    patient_name • Patient name to find (optional)
    patientid • Patient id to find (optional)
    accession_number • Accession number to find (optional)
    patient_sex • Gender to find (optional)
    patient_birth_date • Birth date to find (optional)
    order_number • Order number to find (optional)
    order_date • Order date to find (optional)
    Returns status • OK
    Permission destination_search
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The destination or study can not be found
    NOT_PERMITTED • You are not permitted to search the destination
    NOT_SUPPORTED • The destination does not support searching a destination
    INSUFFICIENT_CRITERIA • Not enough search fields are populated
    Notes
    top

    Description Audit QR actions in an account
    URL /destination/search/audit
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    account_id • The id of the account
    filter.* Filters (optional)
    page.* Pagination (optional)
    sort_bySorting (optional)
    expand.* Field expansion (optional)
    Returns status • OK
    page • The pagination status hash
    destination_searches • An array of the QR audit events. Each event holds the following fields
    * uuid • Id of the audit event
    * status • Status of the destination search. 'N' - pending, 'I' - in progress, 'S' - success, 'F' - Failure
    * count • Number of found studies
    * created • Date and time when the QR was initiated
    * user_id • User who initiated the QR
    * payload • The search criteria, a JSON object that may contain the following fields:
    ** patientid Patient MRN
    ** patient_birth_date • Patient birth date
    ** accession_number • Accession number
    ** patient_sex • Patient sex
    ** modality • Modality
    ** studyDescription • Study description
    ** start_datetime • DICOM start date time stamp
    ** end_datetime • DICOM end date time stamp
    ** patient_name • Patient name
    ** study_uid • Study uid
    ** referring_physician • Referring physician
    ** order_number • Order number
    ** order_date • Date and time of the order
    * results • JSON array of the studies found. Each array element is a JSON object, the list of fields corresponds to the list of fields passed to /node/found in the studies key
    * front_destination_id • Id of the user-facing destination that was used in the QR process
    * real_destination_id • Id of the real destination that executed the QR, this may differ from the user-facing destination when a linked of a distributing destination was used
    * is_foreign_search • Flag if the search originates from another account
    * originator_account_id • UUID of the account where the search originated
    * originator_account_name • Name of the account where the search originated
    * study_fetches • JSON array of the study retrievals, each array element is a JSON object holding the following keys:
    ** uuid • Id of the Study Fetch job
    ** accession_number • Accession number
    ** study_uid • The study uid
    ** patientid Patient MRN
    ** created • Date and time when the study retrieve was initiated
    ** status • Status of the study retrieval. 'N' - pending, 'I' - in progress, 'S' - success, 'F' - Failure, 'P' - Partial
    Permission destination_search_view
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The account can not be found
    NOT_ENABLED • The QR audit feature is not enabled for the account
    Notes
    • Audit events are returned only for destinations that are accessible with the destination_search_view permission. This means that the endpoint returns an empty list for a user not having the permission.
    • Audit events are collected for accounts with enable_qr_audit account setting enabled, prio events are not visible.
    • user_id and front_destination_id can be expanded.
    top

    Route commands

    Routing rules

    Description List the routing rules for the account
    URL /route/list
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    account_id • uuid of the account
    filter.* Filters (optional)
    page.* Pagination (optional)
    sort_bySorting (optional)
    Returns status • OK
    page • The pagination status hash
    routes • An array of the routing rules. Each object holds the following same fields as the /route/get call
    Permission route_view
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The account can not be found
    NOT_PERMITTED • You are not permitted to view this list
    Notes
    top

    Description Add a routing rule
    URL /route/add
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    name • Name of the route
    (account_id || group_id || location_id || namespace_id) • uuid of the account, group or location or namespace the route is linked with
    for_group • Apply the rule to studies in any group in the account (optional)
    for_location • Apply the rule to studies in any location in the account (optional)
    conditions • Route conditions in JSON format
    actions • Route actions in JSON format
    options • Route options in JSON format (optional)
    schedule • Route schedule in JSON format (optional)
    sequence • An integer value. Routing rules are sorted from low number to high number (optional)
    on_share • Apply the rule to studies shared into the namespace
    on_harvest • Apply the rule to studies harvested into the namespace
    on_upload • Apply the rule to studies uploaded into the namespace - flag (optional)
    on_copy • Apply the rule to studies copied into the namespace - flag (optional)
    on_manual_route • Apply this rule for a manually routed study - flag (optional)
    on_thin • Apply this rule to thin studies when they are created - flag (optional)
    no_re_run • Do not run this rule on a re-notification from storage - flag (optional)
    only_re_run • Only run this rule on a re-notification from storage - flag (optional)
    suspended • This rule is suspended and not applied - flag (optional)
    delay • Number of minutes to delay running this rule for after it is triggered (optional)
    delay_seconds • Number of seconds to delay running this rule for after it is triggered (optional)
    delay_till_schedule • Delay running this rule after it is triggered until the next scheduled time - flag (optional)
    other_namespaces • A comma separated list of the uuid of other namespaces to apply this rule to (optional)
    manual_roles • A comma separated list of the uuid of roles that can run the rule manually (optional)
    delay_from_study_field • Delay running this rule, start counting from this study's datetime field (optional)
    delay_from_study_seconds • Number of seconds to delay running this rule for after a timepoint defined by delay_from_study_field (optional)
    rule_set_id • uuid of the rule set to add them to (optional)
    Returns status • OK
    uuid • The route uuid
    Permission route_edit
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    INVALID_JSON • The field is not in valid JSON format. The error_subtype holds the name of the field
    INVALID_FLAG • An invalid flag was passed. The error_subtype holds the name of the invalid flag
    ACCOUNT_NOT_FOUND • The account was not found
    NOT_PERMITTED • You are not permitted to add a route to that account
    NOT_FOUND • The object was not found. The error_subtype holds the type of object not found
    NOT_GLOBAL • Only global user can use for_group, for_location
    INVALID_LINKAGE • The linkage is invalid
    INVALID_CONDITION • A condition is invalid. The error_subtype holds the condition
    INVALID_ACTION • An action is invalid. The error_subtype holds the error detail
    INVALID_OPTION • An option is invalid. The error_subtype holds the error detail
    INVALID_SCHEDULE • The schedule is invalid. The error_subtype holds the error detail
    INVALID_OTHER_NAMESPACES • The other_namespaces is invalid. The error_subtype holds the error detail
    INVALID_MANUAL_ROLES • The manual_roles is invalid. The error_subtype holds the error detail
    Notes
    • JSON format
      • Conditions - A list of objects. Each object has the following fields
        • lv - left value to compare. The available left values are
          • modality
          • referring_physician
          • source_ae_title
          • destination_ae_title
          • patientid
          • study_date
          • study_description
          • study_status
          • attachment_count
          • patient_age
          • patient_birth_date
          • accession_number
          • created
          • customfield-CUSTOMFIELD_UUID
          • HL7 field to match in the format hl7_SEGMENT_FIELD e.g. hl7_PID_3 or in the format hl7_SEGMENT_FIELD_COMPONENT e.g. hl7_OBR_5_2
          • validate-VALIDATE_UUID - The lv will be the score value for the study as per /study/validate
        • lv_transform - Perform a transformation to the left value before comparing. The available transformations are years_old, days_old, hours_old, minutes_old - how many years, days, hours or minutes between the lv and now, respectively.
        • op - operator value. The available operators are
          • equals
          • in
          • contains
          • not_equals
          • not_contains
          • begins_with
          • not_begins_with
          • greater_than
          • greater_than_or_equals
          • less_than
          • less_than_or_equals
        • rv - right value to compare. The available options are
          • A free form textual entry
          • A JSON array with free form textual entries - only when op is in
          • PHYSICIAN_ALIAS - This means the lv will be compared with the account_aliases for the users in the account. equals is the only valid operator.
            If the account_alias is in the form of a regex i.e. /test.*\d/ a case insensitive regular expression comparison will be run. The regex can not have any modifier flags.
          • HL7 field to match in the format hl7_SEGMENT_FIELD e.g. hl7_PID_3 or in the format hl7_SEGMENT_FIELD_COMPONENT e.g. hl7_OBR_5_2
      • Actions - A list of action objects. The following fields are supported
        • destination - Push to a destination. The field value is the uuid of the destination. This is not a valid action for on_thin routing rules.
        • first_working_destination - A JSON list of destinations to try push to. If the gateway for the destination is not pinging then try the next destination. This is not a valid action for on_thin routing rules.
        • destination_hl7_orm - Send an HL7 ORM message to the destination. The field value is the uuid of the destination.
        • share_code - Share with a share code
        • namespace - Share with a namespace. The field value is either uuid of the namespace or if the right value on the conditions is PHYSICIAN_ALIAS then the following additional options are supported.
          • PERSONAL - The study is shared into the matched user's namespace.
          • GROUP - The study is shared into all the account groups the matched user is a member of
          • LOCATION - The study is shared into all the account locations the matched user is a member of
        • webhook - Run a webhook on the study. The field value is the uuid of the webhook
        • share_email - Share to an email address the field value is either an email address or the special token USER_ENTRY. The USER_ENTRY token only works for on_manual_route types of rules and requires that a email address be provided to the /study/manual/route call.
      • Options - A hash of route options. The following fields are supported
        • bypass_approval - Flag to bypass any approval the share into a namespace action might have
        • round_robin - If set to either namespace or destination the action will only be run on one of the actions in a round robin manner. Other actions will be processed as normal.
        • first_working_ping - The number of seconds since the last gateway ping to use for the first_working_destination action. Default value is 15 seconds.
        • hl7_report_physician_alias_regexp - A capturing regular expression (i.e. /To: (.*)$/) to capture text from the associated hl7 report. The text will be appended to the PHYSICIAN_ALIAS value for matching. The visibility of this field in the UI is controlled by the show_hl7_report_physician_alias_regexp flag in account settings.
        • round_robin_next_if_removed - Flag to check if used round_robin destination/namespace is removed from actions. When study has been routed somewhere by round_robin rule, then this destionation is "saved" to be used for reroute. If saved destination is removed from actions list, then study goes nowhere. With this flag set it is routed to next round_robin destination.
    • If a rule doesn't have any conditions it is an open rule and will match all studies in the namespace
    • If a route has a schedule it will only be applied during the scheduled times unless the delay_till_schedule flag is set, it that case the triggered route will be delayed until the next scheduled time.
    • If a rule is linked to a specific namespace, then for_group and for_location flags will be saved, but ignored when the rule is evaluated. If a rule is created with for_group or for_location flag, then account_id should also be passed to restrict the rule to the account only, in this case the account is not treated as a specific namespace. User has to be global in account to use those flags.
    top

    Description Save a routing rule
    URL /route/set
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • The route uuid
    name • Name of the route (optional)
    (account_id || group_id || location_id || namespace_id) • uuid of the account, group or location or namespace the route is linked with (optional)
    for_group • Apply the rule to studies in any group in the account (optional)
    for_location • Apply the rule to studies in any location in the account (optional)
    conditions • Route conditions in JSON format (optional)
    actions • Route actions in JSON format (optional)
    options • Route options in JSON format (optional)
    schedule • Route schedule in JSON format (optional)
    sequence • An integer value. Routing rules are sorted from low number to high number (optional)
    on_share • Apply the rule to studies shared into the namespace (optional)
    on_harvest • Apply the rule to studies harvested into the namespace (optional)
    on_upload • Apply the rule to studies uploaded into the namespace - flag (optional)
    on_copy • Apply the rule to studies copied into the namespace - flag (optional)
    on_manual_route • Apply this rule for a manually routed study- flag (optional)
    on_thin • Apply this rule to thin studies when they are created - flag (optional)
    no_re_run • Do not run this rule on a re-notification from storage - flag (optional)
    only_re_run • Only run this rule on a re-notification from storage - flag (optional)
    suspended • This rule is suspended and not applied - flag (optional)
    delay • Number of minutes to delay running this rule for after it is triggered (optional)
    delay_seconds • Number of seconds to delay running this rule for after it is triggered (optional)
    delay_till_schedule • Delay running this rule after it is triggered until the next scheduled time - flag (optional)
    other_namespaces • A comma separated list of the uuid of other namespaces to apply this rule to (optional)
    for_group • Apply the rule to studies in any group in the account (optional)
    for_location • Apply the rule to studies in any location in the account (optional)
    manual_roles • A comma separated list of the uuid of roles that can run the rule manually (optional)
    delay_from_study_field • Delay running this rule, start counting from this study's datetime field (optional)
    delay_from_study_seconds • Number of seconds to delay running this rule for after a timepoint defined by delay_from_study_field (optional)
    rule_set_id • uuid of the rule set to add them to (optional)
    Returns status • OK
    Permission route_edit
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The object was not found. The error_subtype holds the type of object not found
    NOT_PERMITTED • You are not permitted to edit the route
    NOT_GLOBAL • Only global user can use for_group, for_location
    INVALID_FLAG • An invalid flag was passed. The error_subtype holds the name of the invalid flag
    INVALID_JSON • The field is not in valid JSON format. The error_subtype holds the name of the field
    INVALID_LINKAGE • The linkage is invalid
    INVALID_CONDITION • A condition is invalid. The error_subtype holds the condition
    INVALID_ACTION • An action is invalid. The error_subtype holds the error detail
    INVALID_OPTION • An option is invalid. The error_subtype holds the error detail
    INVALID_SCHEDULE • The schedule is invalid. The error_subtype holds the error detail
    INVALID_OTHER_NAMESPACES • The other_namespaces is invalid. The error_subtype holds the error detail
    INVALID_MANUAL_ROLES • The manual_roles is invalid. The error_subtype holds the error detail
    WRONG_ACCOUNT • The passed linkage belongs to another account
    Notes See the /route/add command notes for the format of the conditions and actions fields
    top

    Description Get a routing rule
    URL /route/get
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • The route uuid
    Returns status • OK
    name • Name of the route
    namespace_id • uuid of the namespaces the route is associated with
    namespace_name • Name of the namespaces the route is associated with
    for_group • Apply the rule to studies in any group in the account
    for_location • Apply the rule to studies in any location in the account
    conditions • Route conditions as a JSON structure
    actions • Route actions as a JSON structure
    options • Route actions as a JSON structure
    schedule • Route schedule in JSON format
    sequence • An integer value. Routing rules are sorted from low number to high number
    on_share • Apply the rule to studies shared into the namespace - flag
    on_harvest • Apply the rule to studies harvested into the namespace - flag
    on_upload • Apply the rule to studies uploaded into the namespace - flag
    on_copy • Apply the rule to studies copied into the namespace - flag
    on_manual_route • Apply this rule for a manually routed study- flag
    on_thin • Apply this rule to thin studies when they are created - flag
    no_re_run • Do not run this rule on a re-notification from storage - flag
    only_re_run • Only run this rule on a re-notification from storage - flag
    suspended • This rule is suspended and not applied - flag
    delay • Number of minutes to delay running this rule for after it is triggered
    delay_seconds • Number of seconds to delay running this rule for after it is triggered
    delay_till_schedule • Delay running this rule after it is triggered until the next scheduled time - flag
    capture_email • Does an email need to be captured to run this rule - flag
    other_namespaces • A comma separated list of the uuid of other namespaces to apply this rule to
    manual_roles • A comma separated list of the uuid of roles that can run the rule manually
    delay_from_study_field • Delay running this rule, start counting from this study's datetime field
    delay_from_study_seconds • Number of seconds to delay running this rule for after a timepoint defined by delay_from_study_field
    rule_set_id • uuid of the rule set to add them to
    Permission route_view
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The route can not be found
    NOT_PERMITTED • You are not permitted to view the route
    Notes
    top

    Description Delete a routing rule
    URL /route/delete
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • The route uuid
    Returns status • OK
    Permission route_edit
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The route can not be found
    NOT_PERMITTED • You are not permitted to delete the route
    Notes
    top

    Description Test the matching on PHYSICIAN_ALIAS
    URL /route/physician/alias/match
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    account_id • The account to test in
    lv • The tag text to match against the PHYSICIAN_ALIAS rule.
    Returns status • OK
    users • An array of the users that matched the tag. Each object holds the fields from the /account/user/get call excluding the locations and groups fields
    Permission route_edit
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The account can not be found
    NOT_PERMITTED • You are not permitted to do this
    Notes
    top

    Account (organization) commands

    Description List the accounts the user belongs to
    URL /account/list
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    filter.* Filters (optional)
    page.* Pagination (optional)
    sort_bySorting (optional)
    permissions • Flag to return the users role and permissions in the accounts (optional)
    Returns status • OK
    page • The pagination status hash
    accounts • An array of the accounts. Each object holds the following same fields as the /account/get call
    --- The following field fields are append to the account objects if the permissions flag is specified ---
    * permissions • The users permissions in the account
    * role_id • uuid of the users account role
    * role_name • Name of the users account role
    * default_role_id • uuid of the default account role
    * default_role_name • Name of the default account role
    Errors
    Notes
    top

    Description Save an account
    URL /account/set
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • The account uuid
    name • Name of the account (optional)
    password_expire • Number of days before account passwords expire. No expiration if zero. (optional)
    session_expire • Number of minutes before an idle session expires. (optional)
    must_approve • Flag if shared studies must be approved for the account namespace (optional)
    must_approve_upload • Flag if uploaded studies must be approved (optional)
    must_approve_harvest • Flag if harvested studies must be approved (optional)
    must_approve_move • Flag if moved studies must be approved (optional)
    must_approve_copy • Flag if copied studies must be approved (optional)
    no_share • Flag if studies can not be shared with this account (optional). Studies can still be shared with locations, groups and users in the account.
    can_request • Flag if user can request to join the account (optional)
    share_code • The share code of the account (optional)
    share_description • The share description of the account (optional)
    share_settingsShare settings JSON structure of the share display settings (optional)
    share_via_gateway • Flag if a gateway share is allowed (optional)
    hl7_template • The HL7 reporting template for the account (optional)
    search_threshold • The number of studies record in the namespace to switch the UI from list to search mode (optional)
    settings • A hash of the account settings (optional)
    setting_{SETTING_NAME} • Set an individual setting. This is an alternative to the settings hash for easier use in the API tester (optional)
    css • Custom CSS for the account (optional)
    vendor • Vendor name (optional)
    client_code • The client_code (optional)
    role_id • Id for the default role for the account (optional)
    customfield-{CUSTOMFIELD_UUID} • Custom field(s) (optional)
    site_management_account_id • The corresponding site management account (optional)
    Returns status • OK
    Permission account_edit, sysadmin or support is required to set site_management_account_id
    Errors NOT_FOUND • The object was not found. The error_subtype holds the name of field that triggered the error
    NOT_PERMITTED • You are not permitted to modify this record
    DUPLICATE_NAME • The account name is already taken
    INVALID_FLAG • An invalid flag was passed. The error_subtype holds the name of the invalid flag
    DUP_SHARE_CODE • The share code is already used
    INVALID_CUSTOMFIELD • Invalid custom field(s) name or value were passed. The error_subtype holds an array of the error details
    INVALID_INTEGER • An invalid integer was passed. The error_subtype holds the name of the invalid integer
    INVALID_JSON • The field is not in valid JSON format. The error_subtype holds the name of the field
    ROLE_NAMESPACE_MISMATCH (INCOMPATIBLE_ROLE) • The role cannot be used for the account, data contains role_id and namespace_id
    NOT_SITE_MANAGEMENT_ACCOUNT • The account passed in site_management_account_id does not have the enable_site_management setting enabled
    NOT_SYSADMIN_OR_SUPPORT • The user is not a sysadmin or support user
    Notes
    • You do not need to pass in all the settings, you can modify a subset of the settings if desired.
    • If session_expire is set to zero the user picks up the system default which is 3 hours. Any setting above 3 hours is ignored.
    • Use /account/vanity/add to set vanity
    top

    Description Get an account
    URL /account/get
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • The account uuid
    permissions • Flag to return the users role and permissions in the accounts (optional)
    brand_settings • A comma delimited list of the settings from /brand/get for this vanity to return (optional)
    role_settings • A comma delimited list of the user's role settings to return (optional)
    Returns status • OK
    uuid • Account uuid
    name • Name of the account
    vanity • Vanity host name(s) for the account
    password_expire • Number of days before account passwords expire.
    session_expire • Number of minutes before an idle session expires.
    namespace_id • Namespace of the account
    must_approve • Flag if shared studies must be approved
    must_approve_upload • Flag if uploaded studies must be approved
    must_approve_harvest • Flag if harvested studies must be approved
    must_approve_move • Flag if moved studies must be approved
    must_approve_copy • Flag if copied studies must be approved
    no_share • Flag to stop sharing into this namespace
    can_request • Flag if user can request to join the account
    share_code • The share code of the account
    share_description • The share description of the account
    share_settingsShare settings JSON structure of the share display settings
    share_via_gateway • Flag if a gateway share is allowed
    hl7_template • The HL7 reporting template for the account
    search_threshold • The number of studies record in the namespace to switch the UI from list to search mode
    css • The account CSS settings
    vendor • Vendor name
    client_code • The client_code
    role_id • Id of the default role for the account
    role_name • Name of the default role for the account
    settings • A hash of the account settings and brand settings (returned as brand_(SETTING NAME)
    role_settings • A hash of the user's role settings
    connected • Flag if they are connected to a payment processor
    tags • An array of user tags associated with this object (This is only returned if the object has tags)
    customfields • An array of the custom fields associated with this account. Each object has the following fields (This is only returned if the group has custom fields)
    site_management_account_id • The corresponding site management account
    --- The following field fields are returned if the permissions flag is specified ---
    * permissions • The users permissions in the account
    * role_id • uuid of the users account role
    * role_name • Name of the users account role
    * default_role_id • uuid of the default account role
    * default_role_name • Name of the default account role
    * has_activity_permission • Flag if the user has activity permissions within the account
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The account can not be found
    Notes
    top

    Description Add a user to an account
    URL /account/user/add
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • The account uuid
    (email || user_id) • The email address or uuid of the user to add
    role_id • uuid of the users role in the account (optional).
    account_email • Users account_email. Only set this if it is different than the users login email (optional).
    account_alias • Users alias in the account. (optional).
    account_login • Users login name in the account. (optional).
    account_password • Password for the account_password. (optional).
    password_reset • Flag if the password needs to be reset. (optional).
    global • Flag if this is a global user (optional).
    global_role_id • uuid of a role to be used in groups and locations when the global user is added to them, this role overrides groups'/locations' default roles (optional).
    epic_user • Epic user used to map Epic users into Ambra's ones to track activity. (optional).
    session_expire • Number of minutes before an idle session expires. (optional)
    max_sessions • Over-ride value for the max number of simultaneous sessions the user can have. (optional).
    set_default_organization • A flag to set this account as a default one for the user using user_default_organization Setting. (optional)
    sso_only • Flag if the user can only login via SSO. (optional).
    external_roles • A comma separated list or a JSON list of External roles assigned to the user. These roles will be mapped when user logs in. (optional).
    event_share • Notify the user on a share into the account namespace (optional)
    event_share_unapproved • Notify the user when a study is shared with the namespace and requires an approval (optional)
    event_approve • Notify the user on a approval needed into the account namespace (optional)
    event_upload • Notify the user on an upload into the account namespace (optional)
    event_upload_fail • Notify the user on a failed upload into the account namespace (optional)
    event_harvest • Notify the user on a harvest into the account namespace (optional)
    event_copy • Notify the user when a study is copied into the account namespace (optional)
    event_join • Notify the user on a join request for the account (optional)
    event_purge • Notify the user the results of a purge job for the account (optional)
    event_new_report • Notify the user when a report is attached in the account namespace (optional)
    event_report_remove • Notify the user when a report is removed in the account namespace (optional)
    event_study_comment • Notify the user when a comment is attached to a study in the namespace (optional)
    event_status_change • Notify the user when the status of a study is changed (optional)
    event_message • Notify the user when a message is sent to the account namespace (optional)
    event_node • Notify the user when an account node sends an event (optional)
    event_link • Notify the user when an anonymous link is hit in the namespace (optional)
    event_link_mine • Notify the user when an anonymous link created by the user is hit in the namespace (optional)
    event_thin_study_success • Notify the user when a thin study retrieval they initiated succeeds (optional)
    event_thin_study_fail • Notify the user when a thin study retrieval they initiated fails (optional)
    event_case_assignment • Notify the user when they are assigned a case as a medical or admin user (optional)
    event_incoming_study_request • Notify the user when they get an incoming study request (optional)
    event_query_add • Notify the user when a new query is issued (optional)
    event_query_edit • Notify the user when a query is edited (optional)
    event_query_new_recipient • Notify the user when they are added to a query as a new recipient (optional)
    event_query_reply • Notify the user when they leave a new reply in a query (optional)
    event_site_qualified • Notify the user when a trial site is qualified for the clinical trial account (optional)
    settings • A hash of the account settings that the user can override (optional)
    setting_{SETTING_NAME} • Set an individual setting. This is an alternative to the settings hash for easier use in the API tester (optional)
    customfield-{CUSTOMFIELD_UUID} • Custom field(s) (optional)
    Returns status • OK
    uuid • uuid of the user
    Permission account_user_edit
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The account can not be found
    NOT_PERMITTED • You are not permitted to add this user to the account
    USER_NOT_FOUND • The user can not be found
    ALREADY_EXISTS • The user is already a member of the account
    INVALID_FLAG • An invalid flag was passed. The error_subtype holds the name of the invalid flag
    DUPLICATE_NAME • The account_login is already in use
    BAD_PASSWORD • Password needs to be at least 8 characters long, contain at least two numbers, contain at least two characters and can't be one of your last three passwords
    INVALID_CUSTOMFIELD • Invalid custom field(s) name or value were passed. The error_subtype holds an array of the error details
    ROLE_NAMESPACE_MISMATCH (INCOMPATIBLE_ROLE) • The role cannot be used for the account, data contains role_id and namespace_id
    ROLE_NAMESPACE_MISMATCH (GLOBAL_USER_WITH_RESTRICTED_ROLE) • They are adding a global user with a role restricted to group/location and there is a group/location in the account, data contains role_id, namespace_id and user_id
    Notes
    • A global user is automatically added to every current and future group and location in the account with the default role specified at the group and location levels (if there is no default role set for group/location the default account role is used) and event flags they have at the account level.
    top

    Description Edit the users account information
    URL /account/user/set
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • The account uuid
    user_id • The users uuid
    role_id • uuid of the users role in the account (optional).
    account_email • Users account_email. Only set this if it is different than the users login email (optional).
    account_alias • Users alias in the account. (optional).
    account_login • Users login name in the account. (optional).
    account_password • Password for the account_password. (optional).
    password_reset • Flag if the password needs to be reset. (optional).
    global • Flag if this is a global user. (optional).
    global_role_id • uuid of a role to be used in groups and locations when the global user is added to them, this role overrides groups'/locations' default roles (optional).
    epic_user • Epic user used to map Epic users into Ambra's ones to track activity (optional).
    session_expire • Number of minutes before an idle session expires. (optional)
    max_sessions • Over-ride value for the max number of simultaneous sessions the user can have. (optional).
    sso_only • Flag if the user can only login via SSO. (optional).
    external_roles • A comma separated list or a JSON list of External roles assigned to the user. These roles will be mapped when user logs in. (optional).
    event_share • Notify the user on a share into the account namespace (optional)
    event_share_unapproved • Notify the user when a study is shared with the namespace and requires an approval (optional)
    event_approve • Notify the user on a approval needed into the account namespace (optional)
    event_upload • Notify the user on an upload into the account namespace (optional)
    event_upload_fail • Notify the user on a failed upload into the account namespace (optional)
    event_harvest • Notify the user on a harvest into the account namespace (optional)
    event_copy • Notify the user when a study is copied into the account namespace (optional)
    event_join • Notify the user on a join request for the account (optional)
    event_purge • Notify the user the results of a purge job for the account (optional)
    event_new_report • Notify the user when a report is attached in the account namespace (optional)
    event_report_remove • Notify the user when a report is removed in the account namespace (optional)
    event_study_comment • Notify the user when a comment is attached to a study in the namespace (optional)
    event_status_change • Notify the user when the status of a study is changed (optional)
    event_message • Notify the user when a message is sent to the account namespace (optional)
    event_node • Notify the user when an account node sends an event (optional)
    event_link • Notify the user when an anonymous link is hit in the namespace (optional)
    event_link_mine • Notify the user when an anonymous link created by the user is hit in the namespace (optional)
    event_thin_study_success • Notify the user when a thin study retrieval they initiated succeeds (optional)
    event_thin_study_fail • Notify the user when a thin study retrieval they initiated fails (optional)
    event_case_assignment • Notify the user when they are assigned a case as a medical or admin user (optional)
    event_incoming_study_request • Notify the user when they get an incoming study request (optional)
    event_query_add • Notify the user when a new query is issued (optional)
    event_query_edit • Notify the user when a query is edited (optional)
    event_query_new_recipient • Notify the user when they are added to a query as a new recipient (optional)
    event_query_reply • Notify the user when they leave a new reply in a query (optional)
    event_site_qualified • Notify the user when a trial site is qualified for the clinical trial account (optional)
    customfield-{CUSTOMFIELD_UUID} • Custom field(s) (optional)
    settings • A hash of the account settings that the user can override (optional)
    setting_{SETTING_NAME} • Set an individual setting. This is an alternative to the settings hash for easier use in the API tester (optional)
    Returns status • OK
    Permission account_user_edit or the user can set the event flags and custom fields for themselves
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The account can not be found
    NOT_PERMITTED • You are not permitted to edit this user
    USER_NOT_FOUND • The user can not be found or is not a member of this account
    ROLE_NOT_FOUND • The role was not found or is not an account role
    INVALID_FLAG • An invalid flag was passed. The error_subtype holds the name of the invalid flag
    DUPLICATE_NAME • The account_login is already in use
    BAD_PASSWORD • Password needs to be at least 8 characters long, contain at least two numbers, contain at least two characters and can't be one of your last three passwords
    INVALID_CUSTOMFIELD • Invalid custom field(s) name or value were passed. The error_subtype holds an array of the error details
    CAN_NOT_PROMOTE • A user can not switch themselves to an admin role if they are currently not in an admin role
    NO_USER_OVERRIDE • The setting does not allow a user override
    ROLE_NAMESPACE_MISMATCH (INCOMPATIBLE_ROLE) • The role cannot be used for the account, data contains role_id and namespace_id
    ROLE_NAMESPACE_MISMATCH (GLOBAL_USER_WITH_RESTRICTED_ROLE) • They are making the user global with a role restricted to group/location and there is a group/location in the account, data contains role_id, namespace_id and user_id.
    Notes
    • The same account_email can be used for multiple users in an account. It does not have to be unique.
    • Use the value __DELETE__ to delete a setting, it will then revert to the account value of the setting
    top

    Description Get the users account information
    URL /account/user/get
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • The account uuid
    user_id • The users uuid
    Returns status • OK
    uuid • The user_account uuid
    user_id • The user id
    user_name • The user name
    user_email • The user email address
    user_alt_emails • The user alt_emails addresses
    role_id • uuid of the users account role
    role_name • Name of the users account role
    disabled • Is the user disabled
    disabled_in_account • Is the user disabled in the account
    account_email • Email address for account usage
    account_alias • Users account alias
    account_login • Users login name in the account
    password_reset • Flag if the password needs to be reset
    user_account_id • Id linking user and account for external integrations
    global • Flag if this is a global user.
    global_role_id • uuid of a role to be used in groups and locations when the global user is added to them, this role overrides groups'/locations' default roles.
    epic_user • Epic user used to map Epic users into Ambra's ones to track activity.
    session_expire • Number of minutes before an idle session expires
    last_login • The users last login date and time
    max_sessions • Over-ride value for the max number of simultaneous sessions the user can have
    sso_only • Flag if the user can only login via SSO
    external_roles • A comma separated list or a JSON list of External roles assigned to the user. These roles will be mapped when user logs in.
    event_share • Notify the user on a share into the account namespace
    event_share_unapproved • Notify the user when a study is shared with the namespace and requires an approval
    event_approve • Notify the user on a approval needed into the account namespace
    event_upload • Notify the user on an upload into the account namespace
    event_upload_fail • Notify the user on a failed upload into the account namespace
    event_harvest • Notify the user on a harvest into the account namespace
    event_copy • Notify the user when a study is copied into the account namespace
    event_join • Notify the user on a join request for the account
    event_purge • Notify the user the results of a purge job for the account
    event_new_report • Notify the user when a report is attached in the account namespace
    event_report_remove • Notify the user when a report is removed in the account namespace
    event_study_comment • Notify the user when a comment is attached to a study in the namespace
    event_status_change • Notify the user when the status of a study is changed
    event_message • Notify the user when a message is sent to the account namespace
    event_node • Notify the user when an account node sends an event
    event_link • Notify the user when an anonymous link is hit in the namespace
    event_link_mine • Notify the user when an anonymous link created by the user is hit in the namespace
    event_thin_study_success • Notify the user when a thin study retrieval they initiated succeeds (optional)
    event_thin_study_fail • Notify the user when a thin study retrieval they initiated fails (optional)
    event_case_assignment • Notify the user when they are assigned a case as a medical or admin user (optional)
    event_incoming_study_request • Notify the user when they get an incoming study request
    event_query_add • Notify the user when a new query is issued (optional)
    event_query_edit • Notify the user when a query is edited (optional)
    event_query_new_recipient • Notify the user when they are added to a query as a new recipient (optional)
    event_query_reply • Notify the user when they leave a new reply in a query (optional)
    event_site_qualified • Notify the user when a trial site is qualified for the clinical trial account (optional)
    groups • An array of the accounts groups the user is a member of
    locations • An array of the accounts locations the user is a member of. Both of these contain the following fields.
    * uuid • uuid of the group/location
    * name • name of the group/location
    * role_id • uuid of the role in the group/location
    * role_name • name of the role in the group/location
    tags • An array of user tags associated with this object (This is only returned if the object has tags)
    customfields • An array of the custom fields associated with this user. Each object has the following fields (This is only returned if the user has custom fields)
    settings • A hash of the account settings that the user has overridden
    Permission account_user_view or the user can get the information for themselves
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The account can not be found
    USER_NOT_FOUND • The user can not be found or is not a member of this account
    Notes Filter for disabled is filter.user_disabled.equals, filter for disabled_in_account is filter.disabled.equals
    top

    Description Delete a user from the account
    URL /account/user/delete
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • The account uuid
    user_id • The user uuid
    user_account_id • The user_account uuid from /account/user/get call. See Notes. (optional)
    Returns status • OK
    Permission account_user_edit
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The account can not be found
    NOT_PERMITTED • You are not permitted to delete this user
    USER_NOT_FOUND • The user can not be found or is not a member of this account
    IN_USE • The user is a sid user for an account webhook
    USER_ACCOUNT_NOT_FOUND • The user_account_id is not found
    Notes The user will also be deleted from all groups and locations in the account
    Parameter user_account_id is used only to delete user_account for already deleted user. In which case user_id should not be provided.
    top

    Description Enable/disable user in account
    URL /account/user/enable
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • The account uuid
    user_id • The user uuid
    disable • A flag indicating whether to disable the user (optional)
    Returns status • OK
    Permission sysadmin or support or administrator in provided account
    Errors NOT_FOUND • The USER, ACCOUNT, ACCOUNT_USER can not be found
    NOT_PERMITTED • You are not permitted to enable this user
    NOT_DISABLED • The user is not disabled
    NOT_ENABLED • The user is not enabled
    INVALID_FLAG • An invalid flag was passed. The error_subtype holds the name of the invalid flag
    Notes
    • You can not enable yourself
    • If user is disabled by /user/enable, then they can't login
    • If user is disabled in the account, then their permissions in the account and it's locations/groups are suppressed
    top

    Description List the users in an account
    URL /account/user/list
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • The account uuid
    filter_deleted_users • Filters for already deleted users to deal with dangling user_account records. If unset then interpreted as existing. See Notes. (optional)
    filter.* Filters (optional)
    page.* Pagination (optional)
    sort_bySorting (optional)
    Permission account_user_view or case_edit
    Returns status • OK
    page • The pagination status hash
    users • An array of the users. Each object holds the fields from the /account/user/get call excluding the locations and groups fields
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The account can not be found
    NOT_PERMITTED • You are not permitted to list the users in this account
    Notes Parameter filter_deleted_users is used for filtering dangling user_account records for deleted users:
    • none - No filtering.
    • existing (default) - Deleted users are not shown for that account
    • deleted - Only deleted users are shown for this account. Those uuid could be used in /account/user/delete as user_account_id parameter.
    top

    Description Build a user login report
    URL /account/user/report/login
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • The account uuid
    user_id • Limit to this user_id (optional)
    Permission account_user_view
    Returns status • OK
    report_id • The report id
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The account can not be found
    NOT_PERMITTED • You are not permitted to list the users in this account
    Notes This call will kick off the building of the report. Poll for the report status with /report/status command and download it with the /report/zip command.
    top

    Description Set a rule on who can share with whom
    URL /account/can/share
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    account_id • The account id
    by_type • The type of object that can share. (user|account|group|location)
    by_id • The uuid of the object that can share
    with_type • The type of object that they can share with (user|account|group|location)
    with_id • The uuid of the object that they can share with
    Returns status • OK
    Permission account_edit
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The account can not be found
    NOT_PERMITTED • You are not permitted to perform this action
    BY_NOT_FOUND • The "by" object can not be found
    WITH_NOT_FOUND • The "with" object can not be found
    INVALID_TYPE • The type of object is invalidate. The error_subtype holds the type that is invalid
    Notes
    top

    Description Stop a account share rule
    URL /account/can/share/stop
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    account_id • The account id
    by_type • The type of object that can share. (user|account|group|location)
    by_id • The uuid of the object that can share
    with_type • The type of object that they can share with (user|account|group|location)
    with_id • The uuid of the object that they can share with
    Returns status • OK
    Permission account_edit
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The account can not be found
    NOT_PERMITTED • You are not permitted to perform this action
    BY_NOT_FOUND • The "by" object can not be found
    WITH_NOT_FOUND • The "with" object can not be found
    INVALID_TYPE • The type of object is invalidate. The error_subtype holds the type that is invalid
    Notes
    top

    Description Get a list of the account share rules
    URL /account/can/share/list
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    account_id • The account id
    Returns status • OK
    rules • An array of the account share rules. Each rule holds the following fields.
    * by_type • The type of object that can share. (user|account|group|location)
    * by_id • The uuid of the object that can share
    * by_name • The name of the object that can share
    * with_type • The type of object that they can share with (user|account|group|location)
    * with_id • The uuid of the object that they can share with
    * with_name • The name of the object that they can share with
    Permission account_view
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The account can not be found
    NOT_PERMITTED • You are not permitted to perform this action
    Notes
    top

    Description Get any customized css for the account
    URL /account/css
    Parameters (account_id || vanity) • The account_id or vanity name to get the css for (optional)
    Returns A CSS file
    Errors
    Notes
    top

    Description Get the settings for an account
    URL /account/settings
    Parameters sid • The session id (optional if not passed then only un-authenticated settings are returned)
    (account_id || vanity) • The account_id or vanity name to get the settings for
    settings • A comma delimited list of the settings to return (optional)
    brand_settings • A comma delimited list of the settings from /brand/get for this vanity to return (optional)
    namespace_id • Apply overrides for the namespace (optional)
    Returns status • OK
    settings • A hash of the account settings, brand settings (returned as brand_(SETTING NAME)), vanity_(SETTING NAME), and vanity registration customfields if defined
    Errors NOT_FOUND • The account or namespace can not be found
    Notes vanity_(SETTING NAME) are returned only if vanity is provided
    top

    Description Validate settings for an account
    URL /account/settings/validate
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • The account uuid
    settings • A hash of the account settings with values to validate (optional)
    setting_{SETTING_NAME} • Validate an individual setting. This is an alternative to the settings hash (optional)
    Returns status • OK
    Errors NOT_FOUND • The account or namespace can not be found
    INVALID_SETTING • An invalid setting was passed. The error_subtype holds the name of the invalid setting
    INVALID_SETTING_VALUE • An invalid setting value was passed. The error_subtype holds the name of the setting with the invalid value
    Notes
    • You do not need to pass in all the settings, you can validate a subset of the settings if desired.
    top

    Description Connect the account to the payment processor
    URL /account/connect
    Parameters sid • The session id
    uuid • The account_id
    code • The OAuth code
    Returns status • OK
    Permission account_edit
    Errors NOT_FOUND • The account can not be found
    NOT_PERMITTED • You are not permitted to do this
    TOKEN_FAILED • The OAuth code did not return a valid token from the processor
    Notes
    top

    Description Return a counter value for the passed MD5 value
    URL /account/md5/counter
    Parameters (sid || node_id && serial_no) • Either a sid or the node id and serial number
    uuid • UUID of the account (only needed for sid authentication)
    md5 • The MD5 value
    Returns status • OK
    counter • The numeric counter value
    Errors NOT_FOUND • The account can not be found or the user is not a part of it
    Notes If the MD5 does not exist for the account a new counter value will be created. If it does exist the old counter value will be returned.
    top

    Description List the accounts that are allowed to be requested for a study
    URL /account/list/requestable
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    namespace_id • Id of the namespace to receive requested studies into
    Returns status • OK
    accounts • An array of the accounts. Each object holds the following fields: uuid, name
    Permission study_request_edit
    Errors NOT_FOUND • The namespace can not be found
    NOT_PERMITTED • You are not allowed to list requestable accounts
    Notes
    • study_request_accounts account setting should be set for this endpoint to function
    top

    Description Authorize the system to send out radreports
    URL /account/radreport/email/authorize
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • The account id
    captcha_response • A solved captcha
    Returns status • OK
    Permission The requesting user should be a sysadmin of the account
    Errors NOT_FOUND • The account can not be found
    NOT_PERMITTED • You are not the account's sysadmin
    NOT_ENABLED • The feature of sending radreports out is not enabled for the account
    CAPTCHA_FAILED • The captcha is not solved
    Notes
    top

    Description Adds the vanity
    URL /account/vanity/add
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    account_id • The account uuid
    vanity • The uuid or vanity of the record
    sort_order • Integer value for sorting (optional)
    ui_json • JSON for UI setting (optional)
    Returns status • OK
    Permission account_vanity_edit
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The account or account_vanity can not be found
    NOT_PERMITTED • You are not permitted to perform this operation
    VALIDATION_FAILED • Invalid vanity regexp.
    Notes
    • If uuid is provided, then vanity is ignored
    • If ui_json is not provided, then {} is used
    • If sort_order is not provided, then calculated as max(sort_order)+1
    top

    Description Get the vanity settings
    URL /account/vanity/get
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    account_id • The account uuid
    (uuid or vanity) • Uuid or vanity of the record
    Returns status • OK
    uuid • The account_vanity uuid
    vanity • The vanity
    ui_json • JSON for UI setting
    sort_order • Integer value for sorting
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The account or account_vanity can not be found
    Notes
    • If uuid is provided, then vanity is ignored. Otherwise vanity is calculated from site if not provided
    • Current list of vanity_(SETTING NAME) for /account/settings consists of: ui_json.
    top

    Description Edit the vanity settings
    URL /account/vanity/set
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    account_id • The account uuid
    (uuid or vanity) • The uuid or vanity of the record
    sort_order • Integer value for sorting (optional)
    ui_json • JSON for UI setting (optional)
    Returns status • OK
    Permission account_vanity_edit
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The account or account_vanity can not be found
    NOT_PERMITTED • You are not permitted to perform this operation
    Notes
    • If uuid is provided, then vanity is ignored
    top

    Description List vanities in the account
    URL /account/vanity/list
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    account_id • The account uuid
    filter.* Filters (optional)
    page.* Pagination (optional)
    sort_bySorting (optional)
    Returns status • OK
    page • The pagination status hash
    vanities • An array of the vanities. Each object holds the following same fields as the /accout/vanity/get call
    Permission account_vanity_view or sysadmin
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The account can not be found
    NOT_PERMITTED • You are not permitted to perform this operation
    Notes
    • This list contains all the records, including those vanities which are not in current account.vanity list. Flag active shows it's presence for each record.
    top

    Description Delete an account_vanity record
    URL /account/vanity/delete
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    account_id • The account uuid
    (uuid or vanity) • The uuid or vanity of the record
    Returns status • OK
    Permission account_vanity_edit or sysadmin
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The account or account_vanity can not be found
    NOT_PERMITTED • You are not permitted to perform this operation
    Notes
    top

    Description Get the list of SAML role mappings
    URL /account/saml/role/list
    Parameters sid • The session id of a system administrator or account support user
    account_id • UUID of the account
    Returns status • OK
    roles An array of the role mappings. Each object has the following fields.
    * saml_role • Value of the SAML role attribute to map
    * namespace_id • Assign the user to this namespace (if any)
    * for_group • A flag indicating whether to apply this mapping to groups in case no namespace_id specified
    * for_location • A flag indicating whether to apply this mapping to locations in case no namespace_id specified
    * namespace_name • The namespace name
    * role_id • Assign the user to this role
    * role_name • Role name
    * event_share • Notify the user on a share into the namespace
    * event_share_unapproved • Notify the user when a study is shared with the namespace and requires an approval
    * event_approve • Notify the user on a approval needed into the namespace
    * event_upload • Notify the user on an upload into the namespace
    * event_upload_fail • Notify the user on a failed upload into the namespace
    * event_harvest • Notify the user on a harvest into the namespace
    * event_new_report • Notify the user when a report is attached in the namespace
    * event_message • Notify the user when a message is sent to the namespace
    * event_node • Notify the user when a node sends an event
    * event_copy • Notify the user when a study is copied into the namespace
    * event_report_remove • Notify the user when a report is removed in the namespace
    * event_study_comment • Notify the user when a comment is attached to a study in the namespace
    * event_status_change • Notify the user when the status of a study is changed
    * event_link • Notify the user when an anonymous link is hit in the namespace
    * event_link_mine • Notify the user when an anonymous link created by the user is hit in the namespace
    * event_thin_study_success • Notify the user when a thin study retrieval they initiated succeeds
    * event_thin_study_fail • Notify the user when a thin study retrieval they initiated fails
    * event_case_assignment • Notify the user when they are assigned a case as a medical or admin user
    * event_query_add • Notify the user when a new query is issued
    * event_query_edit • Notify the user when a query is edited
    * event_query_new_recipient • Notify the user when they are added to a query as a new recipient
    * event_query_reply • Notify the user when they leave a new reply in a query
    * event_site_qualified • Notify the user when a trial site is qualified for the clinical trial account
    * event_incoming_study_request • Notify the user when they get an incoming study request
    * sequence • A numeric sequence field. Mappings are listed and processed by this order
    Permission saml_role_edit
    Errors NOT_SYSADMIN_OR_SUPPORT • The user is not a sysadmin or support user
    NOT_FOUND • The account can not be found
    NOT_FOUND • The account can not be found
    Notes
    top

    Description Edit a SAML role mapping
    URL /account/saml/role/set
    Parameters sid • The session id of a system administrator or account support user
    account_id • UUID of the account
    saml_role • Value of the SAML role attribute to map
    namespace_id • Assign the user to this namespace (optional)
    for_group • A flag indicating whether to apply this mapping to groups in case no namespace_id specified (optional)
    for_location • A flag indicating whether to apply this mapping to locations in case no namespace_id specified (optional)
    role_id • Assign the user to this role
    event_share • Notify the user on a share into the namespace (optional)
    event_share_unapproved • Notify the user when a study is shared with the namespace and requires an approval (optional)
    event_approve • Notify the user on a approval needed into the namespace (optional)
    event_upload • Notify the user on an upload into the namespace (optional)
    event_upload_fail • Notify the user on a failed upload into the namespace
    event_harvest • Notify the user on a harvest into the namespace (optional)
    event_new_report • Notify the user when a report is attached in the namespace (optional)
    event_message • Notify the user when a message is sent to the namespace (optional)
    event_node • Notify the user when a node sends an event (optional)
    event_copy • Notify the user when a study is copied into the namespace (optional)
    event_report_remove • Notify the user when a report is removed in the namespace (optional)
    event_study_comment • Notify the user when a comment is attached to a study in the namespace (optional)
    event_status_change • Notify the user when the status of a study is changed (optional)
    event_link • Notify the user when an anonymous link is hit in the namespace (optional)
    event_link_mine • Notify the user when an anonymous link created by the user is hit in the namespace (optional)
    event_thin_study_success • Notify the user when a thin study retrieval they initiated succeeds (optional)
    event_thin_study_fail • Notify the user when a thin study retrieval they initiated fails (optional)
    event_case_assignment • Notify the user when they are assigned a case as a medical or admin user (optional)
    event_incoming_study_request • Notify the user when they get an incoming study request (optional)
    event_query_add • Notify the user when a new query is issued (optional)
    event_query_edit • Notify the user when a query is edited (optional)
    event_query_new_recipient • Notify the user when they are added to a query as a new recipient (optional)
    event_query_reply • Notify the user when they leave a new reply in a query (optional)
    event_site_qualified • Notify the user when a trial site is qualified for the clinical trial account (optional)
    sequence • A numeric sequence field. Mappings are listed and processed by this order (optional)
    delete • Flag to delete this mapping (optional)
    Returns status • OK
    Permission saml_role_edit
    Errors NOT_SYSADMIN_OR_SUPPORT • The user is not a sysadmin or support user
    NOT_FOUND • The account, role or namespaces can not be found
    ROLE_NAMESPACE_MISMATCH, subtype INCOMPATIBLE_ROLE, data contains role_id and optionally namespace_id • A role in the mapping cannot be used for the namespace or conflicts with current for_* flags
    Notes
    • A saml_role, namespace_id combination can only have one role. If a saml_role, namespace_id already exists it will be updated with the new role.
    • If the saml_role value is __ANY__ the user will always match against the mapping
    • If a user matches multiple mappings for a namespace the first mapping as determined by the sequence field will be used, the corresponding event_* flags will be applied
    • The account setting saml_sync_on_create_only will limit the syncing to when the user is created instead of every login.
    • Avoid entering a full AD role with commas it is best to enter only the AD attribute you need i.e. CN=ABC not CN=ABC,DN=XYZ ...
    • If none of the saml_role entries have commas incoming SAML roles will be split on the comma and the individual parts used. If any of the saml_role entries have a comma the incoming SAML role value will not be split on the commas and the entire value will be used
    • If namespace_id is omitted, then the mapping will match any namespace of the type set by flags for_group and for_location, so they should set at least one of these flags in this case
    top

    Location commands

    Description List the locations for an account
    URL /location/list
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    account_id • uuid of the account
    filter.* Filters (optional)
    page.* Pagination (optional)
    sort_bySorting (optional)
    Returns status • OK
    page • The pagination status hash
    locations • An array of the locations. Each object holds the following same fields as the /location/get call
    Permission location_view
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The account can not be found
    NOT_PERMITTED • You are not permitted to view this list
    Notes
    top

    Description Add a location
    URL /location/add
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    name • Name of the location
    account_id • uuid of the account
    must_approve • Flag if shared studies must be approved for the location (optional)
    must_approve_upload • Flag if uploaded studies must be approved (optional)
    must_approve_harvest • Flag if harvested studies must be approved (optional)
    must_approve_move • Flag if moved studies must be approved (optional)
    must_approve_copy • Flag if copied studies must be approved (optional)
    no_share • Flag if studies can not be shared with this location (optional). Studies can still be shared with users in the location.
    share_code • The share code of the location (optional)
    share_description • The share description of the location (optional)
    share_settingsShare settings JSON structure of the share display settings (optional)
    share_via_gateway • Flag if a gateway share is allowed (optional)
    hl7_template • The HL7 reporting template for the location (optional)
    search_threshold • The number of studies record in the namespace to switch the UI from list to search mode (optional)
    role_id • Id for the default role for the location (optional)
    customfield-{CUSTOMFIELD_UUID} • Custom field(s) (optional)
    Returns status • OK
    uuid • The uuid
    namespace_id • The association namespace uuid
    Permission location_edit
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    ACCOUNT_NOT_FOUND • The account was not found
    NOT_FOUND • The object was not found. The error_subtype holds the name of field that triggered the error
    NOT_PERMITTED • You are not permitted to add a location to the account
    INVALID_FLAG • An invalid flag was passed. The error_subtype holds the name of the invalid flag
    DUP_SHARE_CODE • The share code is already used
    DUP_NAMESPACE_NAME • namespace_names_globally_unique is enabled and there is another namespace with the same name
    INVALID_CUSTOMFIELD • Invalid custom field(s) name or value were passed. The error_subtype holds an array of the error details
    INVALID_JSON • The field is not in valid JSON format. The error_subtype holds the name of the field
    ROLE_NAMESPACE_MISMATCH (INCOMPATIBLE_ROLE) • The role cannot be used for a location, data contains role_id and namespace_id
    ROLE_NAMESPACE_MISMATCH (GLOBAL_USER_WITH_RESTRICTED_ROLE) • You are adding the location to the account with a global user with restricted role, data contains role_id and user_id
    Notes
    top

    Description Save a location
    URL /location/set
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • The location uuid
    name • Name of the location (optional)
    must_approve • Flag if shared studies must be approved for the location (optional)
    must_approve_upload • Flag if uploaded studies must be approved (optional)
    must_approve_harvest • Flag if harvested studies must be approved (optional)
    must_approve_move • Flag if moved studies must be approved (optional)
    must_approve_copy • Flag if copied studies must be approved (optional)
    no_share • Flag if studies can not be shared with this location (optional). Studies can still be shared with users in the location.
    share_code • The share code of the location (optional)
    share_description • The share description of the location (optional)
    share_settingsShare settings JSON structure of the share display settings (optional)
    share_via_gateway • Flag if a gateway share is allowed (optional)
    hl7_template • The HL7 reporting template for the location (optional)
    search_threshold • The number of studies record in the namespace to switch the UI from list to search mode (optional)
    role_id • Id for the default role for the location (optional)
    customfield-{CUSTOMFIELD_UUID} • Custom field(s) (optional)
    Returns status • OK
    Permission location_edit
    Errors NOT_FOUND • The object was not found. The error_subtype holds the name of field that triggered the error
    NOT_PERMITTED • You are not permitted to edit the location
    INVALID_FLAG • An invalid flag was passed. The error_subtype holds the name of the invalid flag
    DUP_SHARE_CODE • The share code is already used
    DUP_NAMESPACE_NAME • namespace_names_globally_unique is enabled and there is another namespace with the same name
    INVALID_CUSTOMFIELD • Invalid custom field(s) name or value were passed. The error_subtype holds an array of the error details
    INVALID_JSON • The field is not in valid JSON format. The error_subtype holds the name of the field
    ROLE_NAMESPACE_MISMATCH (INCOMPATIBLE_ROLE) • The role cannot be used for locations, data contains role_id and namespace_id
    Notes
    top

    Description Get a location
    URL /location/get
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • The location uuid
    Returns status • OK
    uuid • The location uuid
    name • Name of the location
    namespace_id • namespace of the location
    must_approve • Flag if shared studies must be approved
    must_approve_upload • Flag if uploaded studies must be approved
    must_approve_harvest • Flag if harvested studies must be approved
    must_approve_move • Flag if moved studies must be approved
    must_approve_copy • Flag if copied studies must be approved
    no_share • Flag to stop sharing into this namespace
    share_code • The share code of the location
    share_description • The share description of the location
    share_settingsShare settings JSON structure of the share display settings
    share_via_gateway • Flag if a gateway share is allowed (optional)
    hl7_template • The HL7 reporting template for the location
    search_threshold • The number of studies record in the namespace to switch the UI from list to search mode (optional)
    tags • An array of user tags associated with this object (This is only returned if the object has tags)
    role_id • Id of the default role for the location
    role_name • Name of the default role for the location
    customfields • An array of the custom fields associated with this location. Each object has the following fields (This is only returned if the group has custom fields)
    Permission location_view
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The location can not be found
    NOT_PERMITTED • You are not permitted to view this location
    Notes
    top

    Description Delete a location
    URL /location/delete
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • The location uuid
    Returns status • OK
    Permission location_edit
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The location can not be found
    NOT_PERMITTED • You are not permitted to delete the location
    NOT_EMPTY • The location still has studies in it
    Notes
    top

    Description Add or update a user to a location
    URL /location/user/add
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • The location id
    user_id • Id of the user
    role_id • Id of the users role within the location (optional). If not passed the default location role will be assigned
    event_share • Notify the user on a share into the location namespace (optional)
    event_share_unapproved • Notify the user when a study is shared with the namespace and requires an approval (optional)
    event_approve • Notify the user on a approval needed into the location namespace (optional)
    event_upload • Notify the user on an upload into the location namespace (optional)
    event_upload_fail • Notify the user on a failed upload into the location namespace
    event_harvest • Notify the user on a harvest into the location namespace (optional)
    event_copy • Notify the user when a study is copied into the location namespace (optional)
    event_new_report • Notify the user when a report is attached in the location namespace (optional)
    event_report_remove • Notify the user when a report is removed in the location namespace (optional)
    event_study_comment • Notify the user when a comment is attached to a study in the namespace (optional)
    event_status_change • Notify the user when the status of a study is changed (optional)
    event_message • Notify the user when a message is sent to the location namespace (optional)
    event_node • Notify the user when a location node sends an event (optional)
    event_link • Notify the user when an anonymous link is hit in the namespace (optional)
    event_link_mine • Notify the user when an anonymous link created by the user is hit in the namespace (optional)
    event_thin_study_success • Notify the user when a thin study retrieval they initiated succeeds (optional)
    event_thin_study_fail • Notify the user when a thin study retrieval they initiated fails (optional)
    event_case_assignment • Notify the user when they are assigned a case as a medical or admin user (optional)
    event_incoming_study_request • Notify the user when they get an incoming study request (optional)
    event_query_add • Notify the user when a new query is issued (optional)
    event_query_edit • Notify the user when a query is edited (optional)
    event_query_new_recipient • Notify the user when they are added to a query as a new recipient (optional)
    event_query_reply • Notify the user when they leave a new reply in a query (optional)
    event_site_qualified • Notify the user when a trial site is qualified for the clinical trial account (optional)
    no_physician_alias_share • Flag to exclude this location from a physician alias share (optional)
    Returns status • OK
    Permission location_edit
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The location can not be found
    NOT_PERMITTED • You are not permitted to edit the location
    ROLE_NAMESPACE_MISMATCH (INCOMPATIBLE_ROLE) • The role cannot be used for locations, data contains role_id and namespace_id
    USER_NOT_FOUND • The user was not found or is not in the account
    ROLE_NOT_FOUND • The role was not found or is not in the account
    INVALID_FLAG • An invalid flag was passed. The error_subtype holds the name of the invalid flag
    CAN_NOT_PROMOTE • A user can not switch themselves to an admin role if they are currently not in an admin role
    Notes
    top

    Description Remove a user from a location
    URL /location/user/delete
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • The location id
    user_id • The user id
    Returns status • OK
    Permission location_edit
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The location can not be found
    NOT_PERMITTED • You are not permitted to edit the location
    Notes
    top

    Description List the users in a location
    URL /location/user/list
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • The location id
    filter.* Filters (optional)
    page.* Pagination (optional)
    sort_bySorting (optional)
    Returns status • OK
    page • The pagination status hash
    users • An array of the users. Each object holds the following fields
    * user_id • The user id
    * user_name • The user name
    * user_email • The user email
    * role_id • The users role id
    * role_name • The users role name
    * event_share • Notify the user on a share into the location namespace
    * event_share_unapproved • Notify the user when a study is shared with the namespace and requires an approval
    * event_approve • Notify the user on a approval needed into the location namespace
    * event_upload • Notify the user on an upload into the location namespace
    * event_upload_fail • Notify the user on a failed upload into the location namespace
    * event_harvest • Notify the user on a harvest into the location namespace
    * event_copy • Notify the user when a study is copied into the location namespace
    * event_new_report • Notify the user when a report is attached in the location namespace
    * event_report_remove • Notify the user when a report is removed in the location namespace
    * event_study_comment • Notify the user when a comment is attached to a study in the namespace
    * event_status_change • Notify the user when the status of a study is changed
    * event_message • Notify the user when a message is sent to the location namespace
    * event_node • Notify the user when a location node sends an event
    * event_link • Notify the user when an anonymous link is hit in the namespace
    * event_link_mine • Notify the user when an anonymous link created by the user is hit in the namespace
    * event_thin_study_success • Notify the user when a thin study retrieval they initiated succeeds
    * event_thin_study_fail • Notify the user when a thin study retrieval they initiated fails
    * event_case_assignment • Notify the user when they are assigned a case as a medical or admin user
    * event_incoming_study_request • Notify the user when they get an incoming study request
    * event_query_add • Notify the user when a new query is issued
    * event_query_edit • Notify the user when a query is edited
    * event_query_new_recipient • Notify the user when they are added to a query as a new recipient
    * event_query_reply • Notify the user when they leave a new reply in a query
    * event_site_qualified • Notify the user when a trial site is qualified for the clinical trial account
    * no_physician_alias_share • Flag to exclude this location from a physician alias share
    Permission location_view
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The location can not be found
    NOT_PERMITTED • You are not permitted list the users at the location
    Notes
    top

    Group commands

    Description List the groups for an account
    URL /group/list
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    account_id • uuid of the account
    filter.* Filters (optional)
    page.* Pagination (optional)
    sort_bySorting (optional)
    Returns status • OK
    page • The pagination status hash
    groups • An array of the groups. Each object holds the following same fields as the /group/get call
    Permission group_view
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The account can not be found
    NOT_PERMITTED • You are not permitted to view this list
    Notes
    top

    Description Add a group
    URL /group/add
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    name • Name of the group
    account_id • uuid of the account
    must_approve • Flag if shared studies must be approved for the group (optional)
    must_approve_upload • Flag if uploaded studies must be approved (optional)
    must_approve_harvest • Flag if harvested studies must be approved (optional)
    must_approve_move • Flag if moved studies must be approved (optional)
    must_approve_copy • Flag if copied studies must be approved (optional)
    no_share • Flag if studies can not be shared with this group (optional). Studies can still be shared with users in the group.
    share_code • The share code of the group (optional)
    share_description • The share description of the group (optional)
    share_settingsShare settings JSON structure of the share display settings (optional)
    share_via_gateway • Flag if a gateway share is allowed (optional)
    hl7_template • The HL7 reporting template for the group (optional)
    search_threshold • The number of studies record in the namespace to switch the UI from list to search mode (optional)
    role_id • Id for the default role for the group (optional)
    customfield-{CUSTOMFIELD_UUID} • Custom field(s) (optional)
    site_id • The associated site id. Required in case require_site_id_for_groups account setting is set (optional)
    Returns status • OK
    uuid • The uuid
    namespace_id • The association namespace uuid
    Permission group_edit
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    ACCOUNT_NOT_FOUND • The account was not found
    NOT_FOUND • The object was not found. The error_subtype holds the name of field that triggered the error
    NOT_PERMITTED • You are not permitted to add a group to that account
    INVALID_FLAG • An invalid flag was passed. The error_subtype holds the name of the invalid flag
    DUP_SHARE_CODE • The share code is already used
    DUP_NAMESPACE_NAME • namespace_names_globally_unique is enabled and there is another namespace with the same name
    INVALID_CUSTOMFIELD • Invalid custom field(s) name or value were passed. The error_subtype holds an array of the error details
    INVALID_JSON • The field is not in valid JSON format. The error_subtype holds the name of the field
    ROLE_NAMESPACE_MISMATCH (INCOMPATIBLE_ROLE) • The role cannot be used for a group, data contains role_id and namespace_id
    ROLE_NAMESPACE_MISMATCH (GLOBAL_USER_WITH_RESTRICTED_ROLE) • You are adding the group to the account with a global user with restricted role, data contains role_id and user_id
    SITE_NOT_ALLOWED • The account is not listed in the site account's linked_study_accounts setting
    Notes
    top

    Description Save a group
    URL /group/set
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • The group uuid
    name • Name of the group (optional)
    must_approve • Flag if shared studies must be approved for the group (optional)
    must_approve_upload • Flag if uploaded studies must be approved (optional)
    must_approve_harvest • Flag if harvested studies must be approved (optional)
    must_approve_move • Flag if moved studies must be approved (optional)
    must_approve_copy • Flag if copied studies must be approved (optional)
    no_share • Flag if studies can not be shared with this group (optional). Studies can still be shared with users in the group.
    share_code • The share code of the group (optional)
    share_description • The share description of the group (optional)
    share_settingsShare settings JSON structure of the share display settings (optional)
    share_via_gateway • Flag if a gateway share is allowed (optional)
    hl7_template • The HL7 reporting template for the group (optional)
    search_threshold • The number of studies record in the namespace to switch the UI from list to search mode (optional)
    role_id • Id for the default role for the group (optional)
    customfield-{CUSTOMFIELD_UUID} • Custom field(s) (optional)
    site_id • The associated site id. Required in case require_site_id_for_groups account setting is set (optional)
    site_qualified • Flag if the site is qualified for the trial (optional)
    site_inactive • Inactive flag to deactivate the site in a Trial Account (optional)
    Returns status • OK
    Permission group_edit
    Errors NOT_FOUND • The object was not found. The error_subtype holds the name of field that triggered the error
    NOT_PERMITTED • You are not permitted to edit the location
    INVALID_FLAG • An invalid flag was passed. The error_subtype holds the name of the invalid flag
    DUP_SHARE_CODE • The share code is already used
    DUP_NAMESPACE_NAME • namespace_names_globally_unique is enabled and there is another namespace with the same name
    INVALID_CUSTOMFIELD • Invalid custom field(s) name or value were passed. The error_subtype holds an array of the error details
    INVALID_JSON • The field is not in valid JSON format. The error_subtype holds the name of the field
    ROLE_NAMESPACE_MISMATCH (INCOMPATIBLE_ROLE) • The role cannot be used for groups, data contains role_id and namespace_id
    SITE_NOT_ALLOWED • The account is not listed in the site account's linked_study_accounts setting
    Notes
    top

    Description Get a group
    URL /group/get
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • The group uuid
    Returns status • OK
    uuid • The group uuid
    name • Name of the group
    namespace_id • Namespace of the group
    must_approve • Flag if shared studies must be approved
    must_approve_upload • Flag if uploaded studies must be approved
    must_approve_harvest • Flag if harvested studies must be approved
    must_approve_move • Flag if moved studies must be approved
    must_approve_copy • Flag if copied studies must be approved
    no_share • Flag to stop sharing into this group
    share_code • The share code of the group
    share_description • The share description of the group
    share_settingsShare settings JSON structure of the share display settings
    share_via_gateway • Flag if a gateway share is allowed (optional)
    hl7_template • The HL7 reporting template for the group
    search_threshold • The number of studies record in the namespace to switch the UI from list to search mode
    tags • An array of user tags associated with this object (This is only returned if the object has tags)
    role_id • Id of the default role for the group
    role_name • Name of the default role for the group
    customfields • An array of the custom fields associated with this group. Each object has the following fields (This is only returned if the group has custom fields)
    -- The following fields are returned when there is a site association for the group --
    site_id • The associated site id
    site_name • The associated site name
    site_qualified • Flag if the site is qualified for the trial
    site_inactive • Inactive flag to deactivate the site in a Trial Account
    scanners_validated • An array of the scanners validated for the group. Each object has the following fields.
    * uuid • Scanner Id
    * name • Scanner name
    * study_uid • The study UID used in the process of scanner validation for the group
    Permission group_view
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The group can not be found
    NOT_PERMITTED • You are not permitted to view this group
    Notes
    top

    Description Delete a group
    URL /group/delete
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • The group uuid
    Returns status • OK
    Permission group_edit
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The group can not be found
    NOT_PERMITTED • You are not permitted to delete this group
    NOT_EMPTY • The group still has studies in it
    ACTIVE_QUERY • The group has outstanding Queries
    Notes
    top

    Description Add or update a user to a group
    URL /group/user/add
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • The group id
    user_id • Id of the user
    role_id • Id of the users role within the group (optional). If not passed the default group role will be assigned
    event_share • Notify the user on a share into the group namespace (optional)
    event_share_unapproved • Notify the user when a study is shared with the namespace and requires an approval (optional)
    event_approve • Notify the user on a approval needed into the group namespace (optional)
    event_upload • Notify the user on an upload into the group namespace (optional)
    event_upload_fail • Notify the user on a failed upload into the group namespace (optional)
    event_harvest • Notify the user on a harvest into the group namespace (optional)
    event_copy • Notify the user when a study is copied into the group namespace (optional)
    event_new_report • Notify the user when a report is attached in the group namespace (optional)
    event_report_remove • Notify the user when a report is removed in the group namespace (optional)
    event_study_comment • Notify the user when a comment is attached to a study in the namespace (optional)
    event_status_change • Notify the user when the status of a study is changed (optional)
    event_message • Notify the user when a message is sent to the group namespace (optional)
    event_node • Notify the user when a group node sends an event (optional)
    event_link • Notify the user when an anonymous link is hit in the namespace (optional)
    event_link_mine • Notify the user when an anonymous link created by the user is hit in the namespace (optional)
    event_thin_study_success • Notify the user when a thin study retrieval they initiated succeeds (optional)
    event_thin_study_fail • Notify the user when a thin study retrieval they initiated fails (optional)
    event_case_assignment • Notify the user when they are assigned a case as a medical or admin user (optional)
    event_incoming_study_request • Notify the user when they get an incoming study request (optional)
    event_query_add • Notify the user when a new query is issued (optional)
    event_query_edit • Notify the user when a query is edited (optional)
    event_query_new_recipient • Notify the user when they are added to a query as a new recipient (optional)
    event_query_reply • Notify the user when they leave a new reply in a query (optional)
    event_site_qualified • Notify the user when a trial site is qualified for the clinical trial account (optional)
    no_physician_alias_share • Flag to exclude this group from a physician alias share (optional)
    Returns status • OK
    Permission group_edit
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The group can not be found
    NOT_PERMITTED • You are not permitted to edit the group
    ROLE_NAMESPACE_MISMATCH (INCOMPATIBLE_ROLE) • The role cannot be used for groups, data contains role_id and namespace_id
    USER_NOT_FOUND • The user was not found or is not in the account
    ROLE_NOT_FOUND • The role was not found or is not in the account
    INVALID_FLAG • An invalid flag was passed. The error_subtype holds the name of the invalid flag
    CAN_NOT_PROMOTE • A user can not switch themselves to an admin role if they are currently not in an admin role
    Notes
    top

    Description Remove a user from a group
    URL /group/user/delete
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • The group id
    user_id • Id of the user
    Returns status • OK
    Permission group_edit
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The group can not be found
    NOT_PERMITTED • You are not permitted to edit the group
    Notes
    top

    Description List the users in a group
    URL /group/user/list
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • The group id
    filter.* Filters (optional)
    page.* Pagination (optional)
    sort_bySorting (optional)
    Returns status • OK
    page • The pagination status hash
    users • An array of the users. Each object holds the following fields
    * user_id • The user id
    * user_name • The user name
    * user_email • The user email
    * role_id • The users role id
    * role_name • The users role name
    * event_share • Notify the user on a share into the group namespace
    * event_share_unapproved • Notify the user when a study is shared with the namespace and requires an approval
    * event_approve • Notify the user on a approval needed into the group namespace
    * event_upload • Notify the user on an upload into the group namespace
    * event_upload_fail • Notify the user on a failed upload into the group namespace
    * event_harvest • Notify the user on a harvest into the group namespace
    * event_copy • Notify the user when a study is copied into the group namespace
    * event_new_report • Notify the user when a report is attached in the group namespace
    * event_report_remove • Notify the user when a report is removed in the group namespace
    * event_study_comment • Notify the user when a comment is attached to a study in the namespace
    * event_status_change • Notify the user when the status of a study is changed
    * event_message • Notify the user when a message is sent to the group namespace
    * event_node • Notify the user when a group node sends an event
    * event_link • Notify the user when an anonymous link is hit in the namespace
    * event_link_mine • Notify the user when an anonymous link created by the user is hit in the namespace
    * event_thin_study_success • Notify the user when a thin study retrieval they initiated succeeds
    * event_thin_study_fail • Notify the user when a thin study retrieval they initiated fails
    * event_case_assignment • Notify the user when they are assigned a case as a medical or admin user
    * event_incoming_study_request • Notify the user when they get an incoming study request
    * event_query_add • Notify the user when a new query is issued
    * event_query_edit • Notify the user when a query is edited
    * event_query_new_recipient • Notify the user when they are added to a query as a new recipient
    * event_query_reply • Notify the user when they leave a new reply in a query
    * event_site_qualified • Notify the user when a trial site is qualified for the clinical trial account
    * no_physician_alias_share • Flag to exclude this group from a physician alias share
    Permission group_view
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The group can not be found
    NOT_PERMITTED • You are not permitted list the group
    Notes
    top

    Description Validate scanners in the group
    URL /group/scanner/validate
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • The group id
    scanner_id • The scanner id
    study_uid • The study uid used to validate the scaner. Required when validating (optional)
    invalidate • Flag if the scaner is being invalidated
    Returns status • OK
    Permission scanner_validate
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The group or scanner was not found. The error_subtype holds the type of field not found
    NOT_PERMITTED • You are not permitted to validate scanners
    ALREADY • The scanner is already validated/invalidated
    Notes
    top

    Role commands

    Description List the roles for an account
    URL /role/list
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    account_id • uuid of the account
    filter.* Filters (optional)
    page.* Pagination (optional)
    sort_bySorting (optional)
    Returns status • OK
    page • The pagination status hash
    roles • An array of the roles. Each object holds the following same fields as the /role/get call
    Permission role_view
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The account can not be found
    NOT_PERMITTED • You are not permitted to view this list
    Notes
    top

    Description Add a role
    URL /role/add
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    name • Name of the role
    for_account • A flag that the role can be used in an account, default is on (optional)
    for_group • A flag that the role can be used in a group, default is on (optional)
    for_location • A flag that the role can be used in a location, default is on (optional)
    account_id • uuid of the account
    permissions • A hash of the role permissions (optional)
    settings • A hash of the role settings (optional)
    setting_{SETTING_NAME} • Set an individual setting. This is an alternative to the settings hash for easier use in the API tester (optional)
    Returns status • OK
    uuid • The uuid
    Permission role_edit
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    ACCOUNT_NOT_FOUND • The account was not found
    NOT_PERMITTED • You are not permitted to add a role to that account
    INVALID_JSON • The field is not in valid JSON format. The error_subtype holds the name of the field
    INVALID_PERMISSION • Invalid permission flag. The error_subtype holds the name of the permission flag.
    INVALID_PERMISSION_VALUE • The permission flag has an invalid value. The error_subtype holds the name of the permission flag.
    Notes If permissions are not passed the role is given the default set of permissions
    top

    Description Save a role
    URL /role/set
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • The role uuid
    name • Name of the role (optional)
    description • Description of the role (optional)
    for_account • A flag that the role can be used in an account (optional)
    for_group • A flag that the role can be used in a group (optional)
    for_location • A flag that the role can be used in a location (optional)
    permissions • A hash of the role permissions (optional)
    permission_{PERMISSION_NAME} • Set an individual permission. This is an alternative to the permissions hash for easier use in the API tester (optional)
    settings • A hash of the role settings (optional)
    setting_{SETTING_NAME} • Set an individual setting. This is an alternative to the settings hash for easier use in the API tester (optional)
    Returns status • OK
    Permission role_edit
    Errors NOT_FOUND • The role can not be found
    NOT_PERMITTED • You are not permitted to edit the role
    INVALID_JSON • The field is not in valid JSON format. The error_subtype holds the name of the field
    INVALID_PERMISSION • Invalid permission flag. The error_subtype holds the name of the permission flag.
    INVALID_PERMISSION_VALUE • The permission flag has an invalid value. The error_subtype holds the name of the permission flag.
    NO_OTHER_ROLE_EDIT • No other role has role_edit permissions so you can not disable role_edit for this role
    Notes The permissions hash does not need to be complete. It can include only the items you want to update or the entire set.
    top

    Description Set some role settings fields
    URL /role/settings
    Parameters sid • The session id
    uuid • The role uuid
    settings • A hash of the role settings (optional)
    setting_{SETTING_NAME} • Set an individual setting. This is an alternative to the settings hash for easier use in the API tester (optional)
    Returns status • OK
    --- Settings after change. ---
    Permission role_setting_edit IF there is some setting passed to set, and for each setting there is check against permissions.setting_{SETTING_NAME}
    user have to be in the same account if no setting is passed to change, as if get current settings
    Errors NOT_FOUND • The role can not be found
    NOT_PERMITTED • You are not permitted to edit the role settings or user is not in the same account
    NOT_PERMITTED_SETTING • You are not permitted to edit this settings field. The error_subtype holds the name of the invalid setting
    NO_ROLE_OVERRIDE • The setting does not allow a role override
    INVALID_SETTING • An invalid setting was passed. The error_subtype holds the name of the invalid setting
    INVALID_SETTING_VALUE • An invalid setting value was passed. The error_subtype holds the name of the setting with the invalid value
    Notes This overwrites only provided keys for settings, not touching the others.
    top

    Description Get a role
    URL /role/get
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • The role uuid
    Returns status • OK
    uuid • The role uuid
    name • Name of the role
    description • Description of the role.
    for_account • A flag that the role can be used in an account
    for_group • A flag that the role can be used in a group
    for_location • A flag that the role can be used in a location,
    type • Type of the role. If it is system generated this will be either admin or user
    permissions • The role permissions as a JSON hash
    settings • The role settings as a JSON hash
    Permission role_view
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The role can not be found
    NOT_PERMITTED • You are not permitted to view this role
    Notes
    top

    Description Delete a role
    URL /role/delete
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • The role uuid
    Returns status • OK
    Permission role_edit
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The role can not be found
    NOT_PERMITTED • You are not permitted to delete this role
    IN_USE • The role is in use. The error_subtype holds a array of the objects that are using it
    Notes
    top

    Description Get the default permissions
    URL /role/default/permissions
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    account_id • The account id (optional)
    Returns status • OK
    permissions • A hash of the permissions. Each key is a permission and the value list is the default admin/user values as per the permissions documentation
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    Notes
    top

    Description Build a detailed role report
    URL /role/report/detail
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    account_id • The account id
    Returns status • OK
    report_id • The report id
    Permission role_view
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The account was not found
    NOT_PERMITTED • You are not permitted to run this report
    REPORT_ERROR • Unable to start the report
    Notes This call will kick off the building of the report. Poll for the report status with /report/status command and download it with the /report/zip command.
    top

    Description List the access control filters
    URL /role/filter/list
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    account_id • The account id
    filter.* Filters (optional)
    page.* Pagination (optional)
    sort_bySorting (optional)
    Returns status • OK
    page • The pagination status hash
    role_filters • An array of the access control filters. Each object holds the same fields as the /role/filter/get call
    Permission role_view
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_PERMITTED • You are not permitted to view the access control filters
    NOT_FOUND • The account can not be found
    Notes
    top

    Description Add an access contol filter
    URL /role/filter/add
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    account_id • The account id
    role_id • The role id (optional)
    name • The access control filter name (optional)
    filter • JSON hash of the object filter expression
    permissions_mask • JSON hash of permissions to restrict, values should be zeroes
    object_type • The object to associate the filter with (Route)
    Returns status • OK
    uuid • The uuid
    Permission role_edit
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_PERMITTED • You are not permitted to add access control filters
    NOT_HASH • The field is not a JSON hash. The error_subtype holds the name of the field
    VALIDATION_FAILED • A field failed validation. The error_subtype holds the name of the invalid field
    NOT_FOUND • The object was not found. The error_subtype holds the type of the object
    INVALID_PERMISSION • Invalid permission flag. The error_subtype holds the name of the permission flag.
    INVALID_PERMISSION_VALUE • The permission flag has an invalid value. The error_subtype holds the name of the permission flag.
    Notes
    top

    Description Modify an access control filter
    URL /role/filter/set
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • The access control filter id
    name • The access control filter name (optional)
    filter • JSON hash of the object filter expression (optional)
    permissions_mask • JSON hash of permissions to restrict, values should be zeroes (optional)
    Returns status • OK
    Permission role_edit
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The access control filter was not found
    NOT_PERMITTED • You are not permitted to modify access control filters
    NOT_HASH • The field is not a JSON hash. The error_subtype holds the name of the field
    INVALID_PERMISSION • Invalid permission flag. The error_subtype holds the name of the permission flag.
    INVALID_PERMISSION_VALUE • The permission flag has an invalid value. The error_subtype holds the name of the permission flag.
    Notes
    top

    Description Get an access control filter
    URL /role/filter/get
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • The access control filter id
    Returns status • OK
    uuid • The access control filter id
    account_id • The account id
    role_id • The role id
    name • The access control filter name
    filter • JSON hash of the object filter expression
    permissions_mask • JSON hash of permissions to restrict, values should be zeroes
    object_type • The object to associate the filter with
    created_by • Name of the user who created the access control filter
    created • Date and time the access control filter was created
    updated • Date and time the access control filter was updated
    Permission role_view
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The access control filter was not found.
    NOT_PERMITTED • You are not permitted to view the access control filter
    Notes
    top

    Description Delete the access control filter
    URL /role/filter/delete
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • Id of the access control filter
    Returns status • OK
    Permission role_edit
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The access control filter was not found.
    NOT_PERMITTED • You are not permitted to delete the access control filter
    Notes
    top

    Activity commands

    Description List the activities for the user
    URL /activity/list
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    account_id • Limit to activities in this account and the personal activities
    filter.* Filters (optional)
    page.* Pagination (optional)
    sort_bySorting (optional)
    strict_account_filter • Flag to apply the account_id to personal activites as well (optional)
    study_extra • Flag to return extra study fields (optional)
    Returns status • OK
    page • The pagination status hash
    activities • An array of the activities. Each object holds the same fields as the /activity/get call
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    Notes
    top

    Description Count the activities for the user
    URL /activity/list/count
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    account_id • Limit to activities in this account and the personal activities
    filter.* Filters (optional)
    Returns status • OK
    count • Count of the activities
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    RUNNING • This call is currently runnning for the user
    Notes
    top

    Description Get the activity
    URL /activity/get
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • The activity uuid
    study_extra • Flag to return extra study fields (optional)
    Returns status • OK
    uuid • The activity uuid
    created • The date and time the activity was created.
    created_by • The name of the user who created the activity.
    type • Type of activities. Based on the type different fields are returned as follows priority • Activity priority
    • STUDY_APPROVE - Notification to approve a study
      • study_id • Id of the study to approve
      • namespace_id • Id of the namespace the study is to be approved into
      • namespace_name • Name of the namespace
      • share_message • The share message
      • study • The study object. The fields are the same as the /study/get command
      • mwl_orders • An array of the MWL orders that were found. The orders structure is as per the /node/found/mwl command
      • approval_reason • A reason why the study must be approved. 'S' - the study has been shared, 'M' - moved, 'H' - harvested, 'U' - uploaded, 'D' - it duplicated another study with the same UID, 'E' - miscellaneous auto edits (Epic patient update, MPI workflow).
    • JOIN_REQUEST - A user has requested to join the account
      • account_id • Id of the account they have requested to join
      • account_name • Name of the account they have requested to join
      • user_id • Id of the user
      • user_name • User name
      • user_email • User email address
      • customfields • A JSON array of the customfield data optionally provided in /user/join. Each item is a hash with the customfield uuid, name, and value.
    • DESTINATION_SEARCH - Result of a destination search
      • namespace_id • Id of the namespace the study is to be imported into
      • namespace_name • Name of the namespace
      • destination_name • Name of the destination that was searched
      • study • The study object. The fields are the same as the study fields in the /node/found command
      • copy_to • If /destination/search had copy_to parameter, then it is showed here.
    • USER_INVITE- An invitation to join the account to user has being sent to a user
      • account_id • Id of the account they have been invited to
      • account_name • Name of the account they have been invited to
      • user_id • Id of the user that sent the invitation
      • user_name • User name that sent the invitation
      • invite_email • Email address the invitation was sent to
      • role_id • UUID of their role in the account they have been invited to
      • role_name • Name of their role in the account they have been invited to
      • locations • An array of locations specified in the invitation. Each item is a hash with name and role_name
      • groups • An array of groups specified in the invitation. Each item is a hash with name and role_name
    • NODE_CONNECT- A user has requested to connect the public node
      • node_id • Id of the node they have requested to connect
      • node_name • Name of the node they have requested to connect
      • account_id • Id of the account the request came from
      • account_name • Name of the account the request came from
    • STUDY_REQUEST_INBOUND - An incoming study request
      • study_request_id • Id of the incoming study request
      • status • Status of the study request
      • account_id • Id of the account that requests a study
      • account_name • Name of the account that requests a study
      • patientid • The MRN they want a study to match
      • patient_first_name • The patient first name they want a study to match
      • patient_last_name • The patient last name they want a study to match
      • patient_sex • The patient sex they want a study to match
      • patient_birth_date • The patient date of birth they want a study to match
      • modality • The modality a study should match
      • study_date_start • The DICOM date that a study date should be greater or equal to
      • study_date_end • The DICOM date that a study date should be less or equal to
      • study_description • The string a study description should partially match
      • message_count • The number of message passed through the study request. Returned if the user has message_view permission
    • STUDY_REQUEST_OUTBOUND - An outgoing study request
      • study_request_id • Id of the study request
      • status • Status of the study request
      • account_id • Id of the account the request is sent to
      • account_name • Name of the account the request is sent to
      • patientid • The MRN a study should match
      • patient_first_name • The patient first name a study should match
      • patient_last_name • The patient last name a study should match
      • patient_sex • The patient sex a study should match
      • patient_birth_date • The patient date of birth a study should match
      • modality • The modality a study should match
      • study_date_start • The DICOM date that a study date should be greater or equal to
      • study_date_end • The DICOM date that a study date should be less or equal to
      • study_description • The string a study description should partially match
      • message_count • The number of message passed through the study request. Returned if the user has message_view permission
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The activity was not found
    NOT_PERMITTED • You are not permitted to access this activity
    Notes
    • mwl_orders is not returned if no results are available
    • If multiple MWL searches were run mwl_orders returns the results of the last search
    top

    Description Delete an activity
    URL /activity/delete
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • The activity uuid
    Returns status • OK
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The activity was not found
    NOT_PERMITTED • You are not permitted to delete this activity
    Notes
    top

    Audit commands

    Description Audit the changes to an object
    URL /audit/object
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • The uuid of the object to audit
    filter.*Filters (optional)
    page.* Pagination (optional)
    reverse • Flag to reverse the default sort order (optional)
    download • Flag to create a zipped CSV file. A report_id will be returned and the file can be accessed via /report/status and /report/zip (optional)
    customfield_detail • Flag to include the customfield name in the detail (optional)
    Returns status • OK
    report_id • The report id if the download flag was set. The rest of the parameters will not be returned (optional)
    page • The pagination status hash
    events • An array of the events associated with this object. Each object in the array will have the following fields
    * uuid • uuid of the object
    * action • The type of change or event
    * what • Name of the object the action was on
    * who • Name of the user who did this
    * user_id • UUID of the user who did this (see notes)
    * proxy • Name of the proxy user who did this if the action was done by a proxy
    * proxy_id • UUID of the proxy user who did this if the action was done by a proxy (see notes)
    * when • Date and time
    * type • Type of object the action was on
    * detail • Details - see the notes
    * with • If this event involves another entity (e.g. a share) this field will exist and have the name of the other entity (optional)
    * track • A JSON hash of tracking keys and values if tracking is applied to this event (optional)
    * client_address • IP address that performed the action
    * sid • sid that performed the action
    * webhook_id • webhook that triggered the action. NOTE: This field exists only if action was triggered by webhook.
    * causality • A hash that give a clue of what triggered the change. All the hash keys are optional:
    ** timer_rule_idTimer rule that applied on the event
    ** webhook_id • Webhook that triggered the action
    ** dictionary_attach_id • Dictionary_attach that triggered the action
    ** purge_id • Purge rule that triggered the delete action
    ** parent_study_id • Study that triggered the edit action by the means of parent-child namespace relations
    ** other_study_id • Study that triggered the edit action by the means of update_all_studies account setting
    ** other_customfield_ids • A list of customfield UUIDs that were mapped to the object's customfields by the means of customfield mappings or customfield.other_customfield_id link
    ** customfield_mapping_ids • A list of customfield mappings applied to the edit
    Permission audit_view
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_PERMITTED • You are not permitted to audit this object
    NOT_FOUND • The object was not found
    Notes
    • The detail field holds a json structure structured as following for different event types
      • EDIT - A hash, each key is the name of the changed field and the value is a list of the original and new values
      •   if phi_namespace key exists, then additional keys phi_namespace_uuid and phi_namespace_name contain uuid and name pairs of phi_namespace change
      • DELETED - A hash of the record that was deleted
      • VIEWER_ACTION - A hash with key 'action' to indicate which action was run and 'detail' to provide an identifier
    • The default sort order is most recent first
    • user_id, proxy_id contain UUID of the user for regular/deleted user, empty string otherwise
    • who, proxy contain (DELETED) {user_name} if the user was deleted
    top

    Description Audit a user's public key edits and what a user has done in an account
    URL /audit/user
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    user_id • The id of the user to audit
    account_id • The id of the account
    page.* Pagination (optional)
    filter.* Filters (optional)
    reverse • Flag to reverse the default sort order (optional)
    study_fields • JSON list of study fields to include in the response (optional)
    download • Flag to create a zipped CSV file. A report_id will be returned and the file can be accessed via /report/status and /report/zip (optional)
    Returns status • OK
    report_id • The report id if the download flag was set. The rest of the parameters will not be returned (optional)
    page • The pagination status hash
    events • An array of the events associated with this object. Each object in the array will have the following fields
    * uuid • uuid of the object
    * action • The type of change or event
    * what • Name of the object the action was on
    * who • Name of the user who did this
    * proxy • Name of the proxy user who did this if the action was done by a proxy
    * when • Date and time
    * type • Type of object the action was on
    * detail • Details - see the notes in /audit/object
    * with • If this event involves another entity (e.g. a share) this field will exist and have the name of the other entity (optional)
    * track • A JSON hash of tracking keys and values if tracking is applied to this event (optional)
    * client_address • IP address that performed the action
    * sid • sid that performed the action
    * study • A JSON hash of study fields for study events. Returned only if study_fields are provided in the parameters
    * webhook_id • webhook that triggered the action. NOTE: This field exists only if action was triggered by webhook.
    Permission audit_view
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_PERMITTED • You are not permitted to access this user record
    NOT_FOUND • The user was not found
    Notes
    • The default sort order is most recent first
    top

    Description Audit all events in an account
    URL /audit/account
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    account_id • The id of the account
    filter.*Filters (optional)
    page.*Pagination (optional)
    reverse • Flag to reverse the default sort order (optional)
    download • Flag to create a zipped CSV file. A report_id will be returned and the file can be accessed via /report/status and /report/zip (optional)
    Returns status • OK
    report_id • The report id if the download flag was set. The rest of the parameters will not be returned (optional)
    page • The pagination status hash
    events • An array of the events associated with this object. Each object in the array will have the following fields
    * uuid • uuid of the object
    * action • The type of change or event
    * what • Name of the object the action was on
    * who • Name of the user who did this
    * proxy • Name of the proxy user who did this if the action was done by a proxy
    * when • Date and time
    * type • Type of object the action was on
    * detail • Details - see the notes in /audit/object
    * with • If this event involves another entity (e.g. a share) this field will exist and have the name of the other entity (optional)
    * track • A JSON hash of tracking keys and values if tracking is applied to this event (optional)
    * client_address • IP address that performed the action
    * sid • sid that performed the action
    * webhook_id • webhook that triggered the action. NOTE: This field exists only if action was triggered by webhook.
    Permission audit_view
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_PERMITTED • You are not permitted to access this information
    NOT_FOUND • The account was not found
    Notes
    • To filter by a time range use the created field with either a date or date time value. e.g. filter.created.ge=>'2014-01-08 05:38:30'
    • The default sort order is most recent first
    top

    Description Return deleted records
    URL /audit/deleted
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    account_id • The id of the account
    type • The type of the object (Study|User etc.)
    page.* Pagination (optional)
    Returns status • OK
    page • The pagination status hash
    objects • An array of the objects . Each object in the array will have the following fields
    * uuid • uuid of the deleted object
    * who • Name of the user who deleted the object
    * proxy • Name of the proxy user who did this if the action was done by a proxy
    * when • Date and time
    * client_address • IP address that performed the action
    * sid • sid that performed the action
    Permission audit_view
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_PERMITTED • You are not permitted to access this record
    Notes Use the uuid to retrieve the full history from /audit/object
    top

    Description Log a message
    URL /audit/log
    Parameters sid • sid (optional)
    bucket • Name of the bucket to log to
    rest_params** • Parameters are logged to a message in the bucket
    Returns status • OK
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    INVALID_BUCKET • The bucket name can only contain A-z characters and must be between 4 and 16 characters long
    Notes
    top

    Description Get the failed login events
    URL /audit/failedlogins
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    account_id • The id of the account
    from_time • Only return events after the epoch time (optional)
    Returns status • OK
    events • An array of the events. Each event is an array with the following fields
    * Epoch time of the event
    * LOCKOUT if the login failed due to the lockout or PRIMARY if the login failed due to invalid credentials
    * The vanity of the event
    * The client IP address
    * The rest of the fields hold the email and account information depending on the parameters used for /session/login
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_PERMITTED • You are not permitted to access this information
    NOT_FOUND • The account was not found
    Notes Collection of this data needs to be enabled via the audit_failed_logins account switch
    top

    Namespace commands

    Description Get the study permissions for the namespace
    URL /namespace/permissions
    Parameters (sid || uuid && serial_no) • Either the sid or the node id and serial number
    (namespace_id || study_id || study_uid && storage_namespace && phi_namespace) • The uuid of the namespace or study or the study_uid/storage_namespace/phi_namespace triplet
    oauth • Flag to return the OAuth token information for the user (optional)
    Returns status • OK
    study_edit • The permission flag setting
    ↳ study_edit_approved • The permission flag setting
    ↳ study_edit_unapproved • The permission flag setting
    study_download • The permission flag setting
    study_browse • The permission flag setting
    study_share • The permission flag setting
    ↳ study_share_email • The permission flag setting
    ↳ study_share_share_code • The permission flag setting
    ↳ study_share_account • The permission flag setting
    ↳ study_share_location • The permission flag setting
    ↳ study_share_group • The permission flag setting
    ↳ study_share_user • The permission flag setting
    ↳ study_share_rsna • The permission flag setting
    ↳ study_share_npi • The permission flag setting
    ↳ study_share_request • The permission flag setting
    study_push • The permission flag setting
    study_delete • The permission flag setting
    study_approve • The permission flag setting
    study_view • The permission flag setting
    study_upload • The permission flag setting
    study_report_upload • The permission flag setting
    study_report_delete • The permission flag setting
    study_sync • The permission flag setting
    study_merge • The permission flag setting
    reports • A JSON array of the report ids they can view. This is not returned if they can view all reports
    oauth • A JSON hash containing the the OAuth token and ttl
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    INVALID_CREDENTIALS • The sid or node credentials are invalid
    NOT_FOUND • The object was not found
    Notes
    top

    Description Set/get the settings for the namespace
    URL /namespace/settings
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • The uuid of the namespace
    no_dup_share • Flag to stop duplicate studies (same study_uid and image count) from getting shared into the namespace (optional)
    study_field_flags • A JSON hash of study_field_* role values to override the role values for studies in the namespace (optional)
    study_size_soft_threshold_per_user • A threshold for studies size per user. An email (by study_quota_exceeded template) will be sent when this limit is exceeded by a user. A JSON hash of study_field_* role values to override the role values for studies in the namespace (optional)
    share_related • Flag to make study shares with this namespace include related studies (same PHI namespace, same MRN) (optional)
    ira_namespace • Flag to make the namespace viable owner namespace for Queries (optional)
    download_anonymize • Anonymization rules to apply on study download. The setting format should follow the anonymize_tags parameter format of the Storage /study/{namespace}/{studyUid}/download call (optional)
    storage_always_dicom_tags • A JSON list of DICOM tags that should always be loaded from storage. This is useful for mapped custom fields which should always show the latest value in storage. (optional)
    -- The following account settings can be over-ridden in the namespace --
    remove_private_tags_on_upload • Flag the storage to anonymize or remove all private tags from a study (optional)
    enable_dicom_wrapping • Value for the setting (optional)
    auto_enable_dicom_wrapping • Value for the setting (optional)
    single_file_dicom_wrapping • Value for the setting (optional)
    disable_duplicate_study_upload • Value for the setting (optional)
    force_new_study_on_upload • Value for the setting (optional)
    enable_multipart_uploader • Value for the setting (optional)
    allow_drag_and_drop_in_study_uploader • Value for the setting (optional)
    link_defaults • Value for the setting (optional)
    upload_settings • Value for the setting (optional)
    auto_create_patient • Value for the setting (optional)
    enable_epic_patient_lookup • Value for the setting (optional)
    ui_json • JSON for UI setting (optional) possible options:
    • pixel_de_id_by_default (boolean) • Pixel de-id tool is set by default when uploading study to this namespace
    • show_image_on_upload_page (boolean) • Show computer image with CD on upload page when image is uploading to this namespace
    inbox_json • JSON for UI inbox setting (optional)
    cloud_storage_config • Value for the setting (optional)
    pixel_anonymize_color • Value for the setting (optional)
    priority_notifications • Value for the setting (optional)
    enable_namespace_ai_questions • Value for the setting (optional)
    disable_mobile_dicom_wrapping • Value for the setting (optional)
    enable_dicom_deidentification • Value for the setting (optional)
    try_update_original_study • Value for the setting (optional)
    try_update_original_study_from_namespaces • Value for the setting (optional)
    try_update_original_study_to_namespaces • Value for the setting (optional)
    must_approve_duplicate_study_uid • Value for the setting (optional)
    reverse_patient_name • Value for the setting (optional)
    epic_prompt_for_anonymize • Value for the setting (optional)
    viewer_study_enable_cpp_transcoding • Value for the setting (optional). Can be set only by sysdamin.
    ai_settings** • Other AI settings
    Returns status • OK
    no_dup_share • The setting value
    study_field_flags • The setting value
    ------ Account settings that have been over-ridden in the namespace ------
    Permission account_edit or ownership for a PHR namespace to modify the settings
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The namespace was not found
    INVALID_SETTING • An invalid setting was passed. The error_subtype holds the name of the invalid setting
    INVALID_SETTING_VALUE • An invalid setting value was passed. The error_subtype holds the name of the setting with the invalid value
    NO_NAMESPACE_OVERRIDE • The setting does not allow a namespace override for __DELETE__.
    Notes Use the value __DELETE__ to delete an account-overriden setting.
    top

    Description Validate and get the full description of a share code
    URL /namespace/share_code
    Parameters (share_code || namespace_id) • The share code or namespace id
    (sid || uuid && serial_no) • Either the sid or the node id and serial number (optional)
    Returns status • OK
    share_code • The share code
    share_description • The share description
    share_settingsShare settings JSON structure of the share display settings
    share_type • What are you sharing with (account|location|group|user)
    share_name • The name of what you are sharing with
    namespace_id • Namespace for the share code
    account_id • Id of the account
    currency • 3-letter ISO code for currency to charge in (optional - see notes)
    charge_description • The description of the charge (optional - see notes)
    second_opinion_share • Flag if this is a second opinion workflow (optional)
    second_opinion_config • JSON configuration for the second opinion workflow (optional)
    second_opinion_case • The second opinion case. The fields are per /case/get (optional)
    pricingPricing table in JSON format. (optional - see notes)
    customfields_pricingPricing table in JSON format. (optional - see notes)
    sum_price_matches • A flag to be used with customfields_pricing pricing table
    payment_processor • JSON hash of the payment processor information (optional)
    cc_description • A description of the users credit card on file (optional - see notes)
    enable_dicom_wrapping • Is dicom wrapping enabled for the associated account
    enable_dicom_deidentification • Is the dicom de-identification tool enabled for the associated account
    enable_dicomdir_scan • Is dicomdir scanning enabled for the associated account
    consolidate_wrapped_jpegs • Is consolidated wrapped jpegs enabled for the associated account
    upload_one_study • Only allow one study to be selected and uploaded
    render_wrapped_pdf • Value of the flag for the associated account
    render_wrapped_avi • Value of the flag for the associated account
    render_wrapped_video • Value of the flag for the associated account
    render_wrapped_docx • Value of the flag for the associated account
    sr_render_css • Value of the flag for the associated account
    auto_wrap_images • Value of the flag for the associated account
    reencode_dicom_mp4 • Value of the flag for the associated account
    duplicate_study_check • Value of the flag for the associated account
    enable_ingress_filter • Value of the flag for the associated account
    web_uploader_ingress_filter • Value of the setting for the associated account
    disable_duplicate_study_upload • Flag for the setting
    force_new_study_on_upload • Flag for the setting
    confirm_before_upload • Value of the flag for the associated account
    study_download_no_reports • Value of the flag for the associated account
    share_charge_by_modality • Charge shares (including second opinion) by modality of a shared study
    auto_enable_dicom_wrapping • Flag for the setting
    single_file_dicom_wrapping • Flag for the setting
    enable_multipart_uploader • Flag for the setting
    allow_drag_and_drop_in_study_uploader • Flag for the setting
    upload_select_none • Flag for the setting
    hide_help_tool • Flag for the setting
    is_production • Flag if this is a production site
    is_anonymous • Flag if this is an anonymous upload
    anonymize_rules • If the upload should anonymize the study this will hold the rules from the /namespace/anonymize calls
    dicom_tag_map • If the upload should anonymize the study this will hold the dicom tag to name map
    prompt_for_anonymize • Flag to prompt if the anonymization rules should be applied
    batch_encode_cine • Value of the flag for the associated account
    encapsulate_wrapped_pdf • Value of the flag for the associated account
    dicom_deidentification_at_ingress • Value of the flag for the associated account
    upload_settings • Value of the namespace setting
    customfields • An array of the custom fields that should be captured during the share process ordered by display_order. Each object has the following fields plus these additional fields. (This is only returned if the share has custom fields). If a sid is passed all custom fields for the namespace will be returned
    * capture_on_share_code • Should the field be capture on the share code
    * wrapped_dicom_only • Only capture for wrapped DICOM uploads
    * dicom_only • Only capture for non-wrapped DICOM uploads
    link_parameters • A JSON hash of any additional parameters generated by a link usage (optional)
    permissions • The namespace permissions
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The share code was not found or if gateway credentials are passed is not valid for gateway uploads
    INVALID_LINK • The anonymous upload link is no longer valid
    Notes
    • The currency, charge_description, pricing and customfields_pricing are only returned if the namespace has pricing and the account is setup to process credit cards.
    • The cc_description is only returned if the namespace has pricing and a sid was passed in the parameters
    • The second_opinion_case is only returned if the sid for a non-anonymous user is passed
    • If a vanity URL is used and the share code is not in the vanity account a NOT_FOUND error is returned
    • If the call returns a link_id parameter the UUID should be used on for a /link/redirect call to start an anonymous upload
    Share Settings

    Namespace share_settings is a JSON hash; keys are the action, value are specific to the action and defined here:

    • removeElements • value is an array of element selectors that will be removed from the share page (i.e. {"removeElements": ["#elementOne","#elementTwo"]})
    • autoAttachFileTypes • value is an array of file extensions that will trigger the web uploader to detect during the directory scan and present as reports to automatically upload with the study (i.e. {"autoAttachFileTypes": ["html","pdf","doc"])
    • do_not_allow_unmatched_uploads • flag to enable/disable forbiddance to upload study that doesn't match upload_match parameter of the link
    • pixel_de_id_by_default • flag to enable/disable behavour when DICOM pixel de-identifier checkbox is set by default when uploading to this namespace
    • show_image_on_upload_page • flag to enable/disable Show computer image with CD on upload page
    • force_report_upload_on_share • flag to enable/disable force report upload on ImageShare page
    • edit_study_during_upload • value is an object with keys header (values are "enable", "disable", empty (default) - disabled when uploading to share code) and studyRow (values are "disable", "disable_share", empty (default) - enabled). Allow editing of primary study data in Study Web Uploader and ImageShare platform. Always disabled for ImageShare platform on mobile devices
    • allow_multiple_share_upload• flag to enable/disable uploading of multiple files on the ImageShare platform
    • prompt_card_owner_name• flag to enable/disable prompt for card owner name on upload payment

    top

    Description Set/get the price for sharing with a namespace, also enable and configure the second opinion workflow
    URL /namespace/share/pricing
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • The uuid of the namespace
    currency • 3-letter ISO code for currency to charge in (USD|GBP) (optional)
    charge_description • The description of the charge (optional)
    pricingPricing table in JSON format (optional)
    customfields_pricingPricing table in JSON format (optional)
    sum_price_matches • Flag to search for all matches in customfields_pricing table and to add them up (optional)
    second_opinion_share • Flag to enable/disable the second opinion workflow for the share (optional)
    second_opinion_config • JSON configuration for the second opinion workflow (optional)
    share_charge_by_modality • Charge shares (including second opinion) by modality of a shared study if this flag is set (optional)
    Returns status • OK
    currency • 3-letter ISO code for currency to charge in
    is_production • Flag if this is a production site
    charge_description • The description of the charge
    pricingPricing table in JSON format.
    customfields_pricingPricing table in JSON format.
    sum_price_matches • Flag to search for all matches in pricing table and to add them up
    second_opinion_share • Flag to enable/disable the second opinion workflow for the share
    second_opinion_config • JSON configuration for the second opinion workflow
    share_charge_by_modality • Charge shares (including second opinion) by modality of a shared study if this flag is set
    Permission account_edit if setting account_view if getting
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_PERMITTED • You are not permitted to price this namespace
    NOT_FOUND • The namespace was not found
    INVALID_JSON • The field is not in valid JSON format. The error_subtype holds the name of the field
    INVALID_INTEGER • The price is not an integer number
    INVALID_CONDITION • The pricing condition is invalid
    INVALID_FLAG • The field is not a valid flag NOT_LIST • The customfields_pricing table is not a JSON list
    NOT_HASH • The pricing field is not a hash
    INVALID_CURRENCY • Invalid currency
    NEEDS_ANY_OR_ALL • The hash needs an "ANY" or "ALL" key
    ONLY_ALL • If the hash has an ALL value it can't have any other values
    INVALID_AMOUNT • An invalid amount. The error_subtype holds the invalid amount
    Notes Pricing table

    • pricing
      • The table is a JSON hash, keys are the modality of the study and the value is the price in cents.
      • The price can be either zero or greater than or equal to 50 cents.
      • The special key 'ANY' holds the price for any modality not specifically named and is required.
      • The special key 'ALL' holds the price for all studies uploaded during a single session
      • The sharer is charged for the study when it is successfully shared with the recipient.
      • Send an empty hash to clear out the pricing rules for the namespace.
    • customfields_pricing
      • The table is a JSON array, each element is a price item consisting of a condition and a price value (a hash with two keys, price and condition)
      • The price must be integer number of cents/pennies.
      • The condition is an logical expression compatible with Customfield's show_when expression.
      • There can be customfield references in condition. Customfield is referenced with string 'customfield-UUID', where UUID is an actual UUID on customfield object.
      • if sum_price_matches flag is false, table is searched line by line for the first condition match. The price amount from the match is the value to charge.
      • if sum_price_matches flag is true, all table rows are checked for a match, prices from all matched rows are added up together, and the total is the value charge.
      • Send an empty array to clear out the pricing rules for the namespace.
    top

    Description Calculate price for sharing with this namespace. The price is calculated based on customfields, so it is useless for namespaces set up to charge by modality.
    URL /namespace/share/price
    Parameters uuid • The uuid of the namespace
    customfield-{CUSTOMFIELD_UUID} • Custom field(s) defined for the case (or study) account objects with values entered in the second opinion wizard (or in the image share screen) (optional)
    Returns status • OK
    price • Calculated price in pennies or null for no price match
    Errors NOT_FOUND • The namespace can not be found
    NOT_CUSTOMFIELDS_PRICING • The namespace is set up to charge by modality
    Notes
    • To be used when share_charge_by_modality namespace flag is false
    top

    Description Set/get the anonymization rules for the namespace
    URL /namespace/anonymize
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • The uuid of the namespace
    rules • Anonymization rules in JSON format. The format is a hash with the keys the names of the fields to anonymize and the values the regular expressions to apply. (optional)
    anonymization_id • The uuid of the anonymization profile to connect to the namespace. (optional)
    prompt_for_anonymize • Flag to prompt if the anonymization rules should be applied. Only applicable to ingress anonymization. (optional)
    Returns status • OK
    rules • The anonymization rules in JSON format.
    anonymization_id • The uuid of the anonymization profile the namespace is connected to
    anonymize_at_ingress • If the anonymize at ingress feature is turned on this flag is returned
    prompt_for_anonymize • Flag to prompt if the anonymization rules should be applied. Only applicable to ingress anonymization
    dicom_tag_map • If the anonymize at ingress feature is turned on this map of field names to dicom tags is returned
    Permission account_edit
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_PERMITTED • You are not permitted to anonymize this namespace
    NOT_FOUND • The namespace or anonymization profile was not found. The error_subtype holds the type of the not found item
    INVALID_JSON • The field is not in valid JSON format. The error_subtype holds the name of the field
    NOT_HASH • The rules field is not a hash
    INVALID_FIELD_NAME • The field name is n the rules hash is invalid. The error_subtype holds the invalid field name
    INVALID_REGEXP • Invalid regular expression. The error_subtype holds the invalid regexp.
    ONLY_ONE • You can pass either the rules parameter with non-empty rule set or non-empty anonymization_id parameter, but not both
    HAS_ANONYMIZATION_PROFILE • The namespace has an anonymization profile connected, the anonymization rules cannot be set
    HAS_ANONYMIZATION_RULES • The namespace has anonymization rules set, the namespace cannot be connected to an anonymization profile therefore
    Notes
    • Valid field names are patient_name, patient_sex, patient_birth_date, patient_address, accession_number, study_description, study_date, patientid, referring_physician and the special fields OTHER_INGRESS_TAGS and ALL_PRIVATE_TAGS
    • The regular expression should be a substitution expression of the form s/.*/TEST/
    • Send an empty hash to clear out the anonymization rules for the namespace
    • The href variables $study and $sharer are available for use in the right side of the substitution regexp. $study contains the fields in /study/get and $sharer contains the fields in /user/get for the person who shared the study
    • The special OTHER_INGRESS_TAGS field is a meta field for a large number of other DICOM tags that will get the regexp for ingress anonymization. The values for this meta field can be modified for the account via the other_ingress_tags setting.
    • The special ALL_PRIVATE_TAGS field is a meta field that means anonymize all tags with an odd group number. This meta field is only applied for client side anonymization.
    • The special __MD5_HASH__ value in the right side of the regexp will be replaced with the MD5 hex transformation on the full field value. If the field is empty a UUID will be generate for the field then MD5 hashed.
    • The special __MD5_COUNTER__ value in the right side of the regexp will be replaced with the a counter value for the MD5 hex transformation on the full field value using the /account/md5/counter call.
    • The special __USER_EMAIL__ value in the right side of the regexp will be replaced with the users email address.
    • The special __UUID__ value in the right side of the regexp will be replaced with a UUID.
    • The special __COUNTER-000010__ value in the right side of the regexp will be replaced with a counter that will be formatted as per the pattern, in this case it will start at 10 and be padded to 6 places. Adjust starting number and padding as desired. Padding is not required i.e. DG-__COUNTER-20__ will start at twenty and not be padded and will start with DG-. Each different pattern will be a unique counter and the counter is scoped to the phi namespace.
    • The special __LCOUNTER-XXX__ value will be replaced with the last counter value
    • If anonymization is performed on the server side the original field values will be saved to any named customfields of the form pre_anon_FIELDNAME if the value is changed
    • Connecting an anonymization profile and setting anonymization rules are mutually exclusive.
    top

    Description Set/get the cover page template for the namespace
    URL /namespace/coverpage
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • The uuid of the namespace
    coverpage • The coverpage value. See the notes for formatting details or pass an empty string to remove the current cover page. (optional)
    Returns status • OK
    coverpage • The coverpage value.
    Permission account_edit
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_PERMITTED • You are not permitted to do this NOT_FOUND • The namespace was not found
    Notes
      If a coverpage is set a DICOM image will get generated and prepended to the study on creation of the study in the namespace.
      The coverpage value should be a JSON structure with Text::Template expressions for the key values. e.g.

                                  \{
                                  "title": "This is an outside study",
                                  "footer": "Dicomgrid.com",
                                  "uploadedDate": "{$created_at}",
                                  "uploadedBy": "{$created_by_name}",
                                  "studyInstanceUid": "{$study_uid}",
                                  "modality": "{$modality}",
                                  "accessionNumber": "{$accession_number}",
                                  "studyDescription": "{$study_description}",
                                  "studyDate": "{$study_date}"
                                  \}
                              
    top

    Description Validate custom field values for a namespace
    URL /namespace/validate/customfields
    Parameters sid • The session id (optional)
    share_code • The share code
    customfield-{CUSTOMFIELD_UUID} • Custom field(s)
    Returns status • OK
    Errors INVALID_CUSTOMFIELD • Invalid custom field(s) name or value were passed. The error_subtype holds an array of the error details
    FORBIDDEN_FIELD • A hidden or read-only customfield was passed. The error_subtype holds the invalid field name.
    Notes This call takes into account customfield visibility for the user if sid parameter is passed
    top

    Description Set/get the event default values that are applied when a user is added to a namespace
    URL /namespace/event/defaults
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • The uuid of the namespace
    event_share • Notify the user on a share into the namespace (optional)
    event_share_unapproved • Notify the user when a study is shared with the namespace and requires an approval (optional)
    event_approve • Notify the user on a approval needed into the namespace (optional)
    event_upload • Notify the user on an upload into the namespace (optional)
    event_upload_fail • Notify the user on a failed upload into the namespace (optional)
    event_harvest • Notify the user on a harvest into the namespace (optional)
    event_copy • Notify the user when a study is copied into the namespace (optional)
    event_new_report • Notify the user when a report is attached in the namespace (optional)
    event_report_remove • Notify the user when a report is removed in the namespace (optional)
    event_study_comment • Notify the user when a comment is attached to a study in the namespace (optional)
    event_status_change • Notify the user when the status of a study is changed (optional)
    event_message • Notify the user when a message is sent to the namespace (optional)
    event_node • Notify the user when a namespace node sends an event (optional)
    event_link • Notify the user when an anonymous link is hit in the namespace (optional)
    event_link_mine • Notify the user when an anonymous link created by the user is hit in the namespace (optional)
    event_thin_study_success • Notify the user when a thin study retrieval they initiated succeeds (optional)
    event_thin_study_fail • Notify the user when a thin study retrieval they initiated fails (optional)
    event_case_assignment • Notify the user when they are assigned a case as a medical or admin user (optional)
    event_incoming_study_request • Notify the user when they get an incoming study request (optional)
    event_query_add • Notify the user when a new query is issued (optional)
    event_query_edit • Notify the user when a query is edited (optional)
    event_query_new_recipient • Notify the user when they are added to a query as a new recipient (optional)
    event_query_reply • Notify the user when they leave a new reply in a query (optional)
    event_site_qualified • Notify the user when a trial site is qualified for the clinical trial account (optional)
    Returns status • OK
    event_share • Notify the user on a share into the namespace
    event_share_unapproved • Notify the user when a study is shared with the namespace and requires an approval
    event_approve • Notify the user on a approval needed into the namespace
    event_upload • Notify the user on an upload into the namespace
    event_upload_fail • Notify the user on a failed upload into the namespace
    event_harvest • Notify the user on a harvest into the namespace
    event_copy • Notify the user when a study is copied into the namespace
    event_new_report • Notify the user when a report is attached in the namespace
    event_report_remove • Notify the user when a report is removed in the namespace
    event_study_comment • Notify the user when a comment is attached to a study in the namespace
    event_status_change • Notify the user when the status of a study is changed
    event_message • Notify the user when a message is sent to the namespace
    event_node • Notify the user when a namespace node sends an event
    event_link • Notify the user when an anonymous link is hit in the namespace
    event_link_mine • Notify the user when an anonymous link created by the user is hit in the namespace
    event_thin_study_success • Notify the user when a thin study retrieval they initiated succeeds
    event_thin_study_fail • Notify the user when a thin study retrieval they initiated fails
    event_case_assignment • Notify the user when they are assigned a case as a medical or admin user
    event_incoming_study_request • Notify the user when they get an incoming study request
    event_query_add • Notify the user when a new query is issued
    event_query_edit • Notify the user when a query is edited
    event_query_new_recipient • Notify the user when they are added to a query as a new recipient
    event_query_reply • Notify the user when they leave a new reply in a query
    event_site_qualified • Notify the user when a trial site is qualified for the clinical trial account
    Permission account_edit
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_PERMITTED • You are not permitted to apply defaults to this namespace
    NOT_FOUND • The namespace was not found
    INVALID_FLAG • An invalid flag was passed. The error_subtype holds the name of the invalid flag
    Notes
    top

    Description Set/get the study default values for the namespace
    URL /namespace/study/defaults
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • The uuid of the namespace
    defaults • Default values in JSON format. The format is a hash with the keys the names of the fields and the values are the default value. The available field name are as listed in the returned field hash. (optional)
    Returns status • OK
    defaults • The default values in JSON format.
    fields • A hash of the fields that can have default values. The study fields have the DICOM tag as the value and the custom fields have the field name as the value.
    Permission account_edit
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_PERMITTED • You are not permitted to apply defaults to this namespace
    NOT_FOUND • The namespace was not found
    INVALID_JSON • The field is not in valid JSON format. The error_subtype holds the name of the field
    NOT_HASH • The rules field is not a hash
    INVALID_FIELD_NAME • The field name in the default hash is invalid. The error_subtype holds the invalid field name
    Notes
    • The default values are set on a study when it is added to the namespace and does not have a value for the field
    • Send an empty hash in rules to clear out the default rules for the namespace
    top

    Description Get the FQDN for the storage engine
    URL /namespace/engine/fqdn
    Parameters (namespace_id || study_id || study_uid && storage_namespace && phi_namespace) • The uuid of the namespace or study or the study_uid/storage_namespace/phi_namespace triplet
    source • The source of the query (optional)
    Returns status • OK
    engine_fqdn • The FQDN of the storage engine to use
    engine_url • URL of the storage engine to use
    storage_namespace • Storage namespace to use
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The namespace was not found
    PENDING_RESTORE • The study is getting retrieved from the archive. Try this call again after a delay
    Notes
    top

    Description Build a report of the users who have been removed from the namespace
    URL /namespace/removed/user/report
    Parameters sid • The session id
    uuid • The UUID of the namespace
    account_id • The UUID of the account. A report will be produced for group, location and account namespaces of this account
    email • Optional email address to send the report to
    Returns status • OK
    report_id • The report id
    Permission account_edit or sysadmin or support user
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The namespace was not found
    NOT_PERMITTED • You are not permitted to do this
    Notes
    top

    Description Ask an AI question for the namespace
    URL /namespace/question
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • The namespace id
    question • The question to ask or a JSON array of questions to ask
    detail • Optional detail to pass through to the AI stack
    Returns status • OK
    Permission group_edit, location_edit or account_edit
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The namespace or question was not found.
    NOT_PERMITTED • You are not permitted to do this
    NODE_NOT_SETUP • A node needs to be attached to the namespace for this question
    IN_PROCESS • The question is currently in process
    Notes
    • Any NAMESPACE_AI_QUESTION webhooks will be triggered for the answer.
    • A JSON array of questions is processed sequentially and waits for the answer before asking the next question
    top

    Description Attach an audit action to a namespace
    URL /namespace/audit
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • The id of the namespace
    action • The audit action (AI_ACTION)
    detail • Additional information
    Returns status • OK
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The study can not be found
    INVALID_ACTION • An invalid action was passed
    Notes
    top

    help commands

    Description Get help
    URL /help/get
    Parameters sid • The session id
    key • The help key
    Returns status • OK
    text • The help text
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The help was not found
    Notes
    top

    Description Set help text
    URL /help/set
    Parameters sid • The session id of a system administrator or account support user
    key • The help key
    text • The help text
    Returns status • OK
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_SYSADMIN_OR_SUPPORT • The user is not a sysadmin or support user
    Notes
    top

    Terminology commands

    Description List terminology overrides for the account
    URL /terminology/account/overrides
    Parameters sid • The session id of a system administrator or account administrator
    (account_id || vanity || study_uid && storage_namespace && phi_namespace) • The uuid or vanity name of the account or study triplet to apply any account overrides for (optional)
    Returns status • OK
    tags • An array of hashes of tags
    * tag • The tag
    * val • The value of the tag
    * language • The language of the tag
    * vanity • The vanity of the tag
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The account or vanity was not found
    Notes If a tag is not overridden for the account or vanity it is not returned.
    top

    Description Get the terminology tags
    URL /terminology/tags
    Parameters tags • A comma separated list of the terminology tags to look up (optional)
    language • The ISO 639-1 language code
    (account_id || vanity || study_uid && storage_namespace && phi_namespace) • The uuid or vanity name of the account or study triplet to apply any account overrides for (optional)
    Returns status • OK
    values • A hash of the tags and their values
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    Notes If a tag does not have a value in the database the tag is not returned
    top

    Description Set terminology values
    URL /terminology/set
    Parameters sid • The session id of a system administrator or account administrator
    tag • The tag to set
    language • The ISO 639-1 language code
    account_id • The uuid of the account to apply the tag for (optional)
    vanity • Vanity to apply the tag for (optional)
    value • The value of the tag. If this is empty the tag is deleted
    Returns status • OK
    Permission account_edit or sysadmin
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_SYSADMIN_OR_SUPPORT • The user is not a sysadmin or support user and is trying to set global tags
    NOT_PERMITTED • The user is not an account administrator and is trying to set account tags
    NO_VALUE • The value parameter was not passed
    NOT_FOUND • The account was not found
    Notes
    top

    Description Get a list of the terminology tags
    URL /terminology/list
    Parameters tags • A comma separated list of the terminology tags to look up
    language • The ISO 639-1 language code
    (account_id || vanity) • The uuid or vanity name of the account to apply any account overrides for (optional)
    Returns status • OK
    tags • An array of hashes of tags
    * tag • The tag
    * val • The value of the tag
    * language • The language of the tag
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    Notes If you pass in both a vanity and account_id the account/vanity override tags will be returned as well
    top

    Description Get the terminology in i18next format
    URL /terminology/i18next
    Parameters lng • The language code
    (account_id || vanity) • The uuid or vanity name of the account to apply any account overrides for (optional)
    Returns The data in i18next format
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    Notes
    top

    Analytics commands

    Description Get the study analytics
    URL /analytics/study
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    (account_id || namespace_id) • The account or namespace to get the analytics for. namespace_id parameter accepts JSON arrays of namespace UUIDs
    period • The time period (day|week|month|year)
    count • The number of periods to get
    end_date • The end date, default is today if not passed (optional)
    modality • Filter analytics by modality (optional)
    customfield-{CUSTOMFIELD_UUID} • Filter analytics by a subset of study customfields (optional)
    time_zone • The report's time zone. Time zone selection order: current user's time zone, time_zone parameter, UTC by default. report • Flag if the result should be returned as a report (optional)
    email • Send the report to this email address(es) when it is done (optional)
    Returns status • OK
    current • The date and timestamp for how current the analytics data is. This is not returned when report flag is passed.
    periods • An array of the periods for earliest to latest each object in the array will have the following fields. This is not returned when report flag is passed.
    * start • Starting date of the period
    * end • Ending date of the period
    * label • Display label for the period
    * study_create • Number of studies created
    * study_create_harvest • Number of harvested studies created
    * study_create_upload • Number of uploaded studies created
    * study_create_share • Number of shared studies created
    * study_create_copy • Number of copied studies created
    * study_delete • Number of studies deleted
    * study_view • Number of studies viewed
    * study_report_view • Number of reports viewed
    * study_download • Number of studies downloaded
    * study_push • Number of studies pushed
    * study_share_out • Number of studies shared out of the account or namespace
    * study_share_in • Number of studies shared into the account or namespace
    * study_approve • Number of studies approved into the account or namespace
    * study_auto_approve • Number of studies auto approved into the account or namespace
    * study_view_load • Average time in ms for the study view load time
    report_id • The report id. This is returned when report flag is passed.
    Permission analytics_view
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    INVALID_PARAMETERS • Only pass a account_id or namespace_id
    PHR_NAMESPACE • Only pass non-PHR namespaces
    NOT_LIST • The field is not a JSON array. The error_subtype holds the name of the field
    INVALID_FLAG • An invalid flag was passed. The error_subtype holds the name of the invalid flag
    INVALID_EMAIL • An invalid email address was passed
    INVALID_UUID • The field is not a valid UUID. The error_subtype holds the name of the field
    VALIDATION_FAILED • The modality parameter validation failed
    MULTIPLE_ACCOUNTS • Namespaces from different accounts provided
    NOT_FOUND • The account or namespace can not be found
    NOT_PERMITTED • You are not permitted to view analytics for this account or namespace
    INVALID_PERIOD • An invalid period
    INVALID_END_DATE • An invalid period
    INVALID_COUNT • Invalid or excessive count value
    Notes
    • If report flag is set, then this call will kick off the building of the report. Poll for the report status with /report/status command and download it with the /report/zip command.
    • The report will contain a header line and additionally one line per period. The report fields are listed under periods key in the "Returns" setion
    top

    Description Get the patient portal analytics
    URL /analytics/patient/portal
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    account_id • The account id
    patient_id • Patient filter (optional)
    period • The time period (day|week|month|year)
    count • The number of periods to get
    end_date • The end date, default is today if not passed (optional)
    time_zone • The report's time zone. Time zone selection order: current user's time zone, time_zone parameter, UTC by default
    group_by • The customfield to group report results by. The parameter should follow customfield-{CUSTOMFIELD_UUID} template (optional)
    Returns status • OK
    current • The date and timestamp for how current the analytics data is
    periods • An array of the periods for earliest to latest each object in the array will have the following fields
    * start • Starting date of the period
    * end • Ending date of the period
    * label • Display label for the period
    * study_view • Number of studies viewed
    * study_report_view • Number of reports viewed
    * study_download • Number of studies downloaded
    * study_share_out • Number of studies shared out of the account or namespace
    * login • Number of logins
    * group • A customfield value, returned only when group_by parameter is passed
    Permission analytics_view
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The account or patient can not be found
    NOT_PERMITTED • You are not permitted to view analytics for this account or namespace
    INVALID_PERIOD • An invalid period
    INVALID_END_DATE • An invalid period
    INVALID_COUNT • Invalid or excessive count value
    VALIDATION_FAILED • The group_by parameter validation failed
    Notes
    top

    Description Get the radreport analytics
    URL /analytics/radreport
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    account_id • The account id
    namespace_id • Namespace filter (optional)
    user_id • User filter (optional)
    period • The time period (day|week|month|year)
    count • The number of periods to get
    end_date • The end date, default is today if not passed (optional)
    time_zone • The report's time zone. Time zone selection order: current user's time zone, time_zone parameter, UTC by default.
    Returns status • OK
    current • The date and timestamp for how current the analytics data is
    periods • An array of the periods for earliest to latest each object in the array will have the following fields
    * start • Starting date of the period
    * end • Ending date of the period
    * label • Display label for the period
    * radreport_create • Number of radreports created
    * radreport_delete • Number of radreports deleted
    * radreport_signed • Number of radreports signed
    * radreport_report_generated • Number of radreports generated
    * namespaces • A JSON array of unique namespaces covered by the period. Each array element is a hash with a id and name kv pair
    * users • A JSON array of unique users covered by the period. Each array element is a hash with a id and name kv pair
    Permission analytics_view
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The account or patient can not be found
    NOT_PERMITTED • You are not permitted to view analytics for this account or namespace
    INVALID_PERIOD • An invalid period
    INVALID_END_DATE • An invalid period
    INVALID_COUNT • Invalid or excessive count value
    Notes
    top

    Description Get the user analytics
    URL /analytics/user
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    account_id • The account id
    namespace_id • Namespace filter (optional)
    user_id • User filter (optional)
    period • The time period (hour|day|week|month|year)
    count • The number of periods to get
    end_date • The end date, for backwards compatibility (optional)
    end_time • The end date and time, default is now if not passed (optional)
    time_zone • The report's time zone. Time zone selection order: current user's time zone, time_zone parameter, UTC by default.
    Returns status • OK
    current • The date and timestamp for how current the analytics data is
    periods • An array of the periods for earliest to latest each object in the array will have the following fields
    * start • Starting date and time of the period
    * end • Ending date and time of the period
    * label • Display label for the period
    * study_approve • Number of studies approved
    * study_reject • Number of studies rejected
    * study_upload_epic • Number of studies uploaded using Epic workflow
    * study_view • Number of studies viewed
    * study_view_load • Average time in ms for the study view load time
    * namespaces • A JSON array of unique namespaces covered by the period. Each array element is a hash with a id and name kv pair
    * users • A JSON array of unique users covered by the period. Each array element is a hash with a id and name kv pair
    Permission analytics_view
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The account or patient can not be found
    NOT_PERMITTED • You are not permitted to view analytics for this account or namespace
    INVALID_PERIOD • An invalid period
    INVALID_END_DATE • An invalid period
    INVALID_COUNT • Invalid or excessive count value
    Notes
    top

    Filter commands

    Description List the filters the user has
    URL /filter/list
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    type • The type of filter to list (repeat this to get multiple types)
    account_id • Limit to global filters and filters within the account namespaces
    filter.* Filters (optional)
    page.* Pagination (optional)
    sort_bySorting (optional)
    Returns status • OK
    page • The pagination status hash
    filters • An array of the filters the user has. Each object holds the following same fields as the /filter/get call
    Errors
    Notes
    top

    Description Add a filter
    URL /filter/add
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    name • The name of the filter
    type • The type of the filter
    configuration • The configuration as a JSON data structure
    account_id • The account id to link this filter with (optional)
    tier_parent_id • The uuid of the filter that this filter should be a child of (optional, for tiered filters)
    Returns status • OK
    uuid • The filter uuid
    Errors INVALID_CONFIG • The configuration is invalid
    Notes The configuration can be either of these forms
    • A JSON hash containing a filter expression that will be AND'ed together e.g. {"filter.phi_namespace.equals":"45153eb8-3141-4265-9f38-fa4fc285018f","filter.patient_name.like":"%mulloy%"}
    • A JSON array containing the UUID of other filters. The filters will be combined as an OR expression.
    top

    Description Get a filter
    URL /filter/get
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • The filter uuid
    Returns status • OK
    name • The name of the filter
    type • The type of the filter
    configuration • The configuration as a JSON data structure
    owner • Flag if the user is the owner of this filter
    account_id • The account id this filter is linked with
    namespace_id • The namespace id this filter is linked with
    tier_children • The tree of tiered filter descendants (empty list if no tiered descendants)
    tier_parent_id • The uuid of immediate tiered ancestor (not present if no tiered ancestor)
    Errors NOT_FOUND • The filter can not be found
    Notes
    top

    Description Edit a filter
    URL /filter/set
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • The filter uuid
    name • The name of the filter (optional)
    type • The type of the filter (optional)
    configuration • The configuration as a JSON data structure (optional)
    account_id • The account id to link this filter with (optional)
    Returns status • OK
    uuid • The filter uuid
    Errors NOT_FOUND • The filter can not be found
    NOT_PERMITTED • You are not the owner of the filter
    INVALID_CONFIG • The configuration is invalid
    Notes
    top

    Description Delete a filter
    URL /filter/delete
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • The filter uuid
    Returns status • OK
    Errors NOT_FOUND • The filter can not be found
    NOT_PERMITTED • You are not the owner of the filter
    Notes
    top

    Description Share a filter
    URL /filter/share
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • The filter uuid
    (account_id || location_id || group_id || user_id || role_id) • uuid of the account, location, group, user, or role to share this filter with
    Returns status • OK
    Errors NOT_FOUND • The filter or share object can not be found. The error_subtype holds a the name of the key that can not be found
    NOT_PERMITTED • You are not the owner of the filter or are not permitted to share a filter with the destination
    INVALID_PARAMETERS • Only pass a account_id or a location_id or a group_id or a user_id
    Notes
    top

    Description Stop sharing a filter
    URL /filter/share/stop
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • The filter uuid
    (account_id || location_id || group_id || user_id || role_id) • uuid of the account, location, group, user, or role to stop sharing this filter with
    Returns status • OK
    Errors NOT_FOUND • The filter can not be found
    NOT_PERMITTED • You are not the owner of the filter
    Notes
    top

    Description Get the filter shares
    URL /filter/share/list
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • The filter uuid
    Returns status • OK
    account_id • A list of the account_id's the filter is shared with
    location_id • A list of the location_id's the filter is shared with
    group_id • A list of the group_id's the filter is shared with
    user_id • A list of the user_id's the filter is shared with
    role_id • A list of the role_id's the filter is shared with
    Errors NOT_FOUND • The filter can not be found
    Notes
    top

    Custom field commands

    Custom fields

    Description List the custom fields for the account
    URL /customfield/list
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    account_id • uuid of the account
    filter.* Filters (optional)
    page.* Pagination (optional)
    sort_bySorting (optional)
    Returns status • OK
    page • The pagination status hash
    customfields • An array of the customfields. Each object holds the following same fields as the /customfield/get call
    Permission customfield_view or role_view
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The account can not be found
    NOT_PERMITTED • You are not permitted to view this list
    Notes
    top

    Description Add a custom field to the account
    URL /customfield/add
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    account_id • uuid of the account
    name • Name of the customfield
    object • The object to associate the customfield with (Study|User_account|Group|Location|Account|Patient|Case|Order|Appointment|Dicomdata|Scanner|Query)
    type • Type of the custom field (text|number|date|memo|select|multiselect|radio|checkbox|search|bool|picker|calculated) (optional)
    capture_on_share_code • Flag if the field should be captured during a share code exchange (only applicable to study fields) (optional)
    capture_on_destination_search • Flag if the field should be captured during query retrieve on /destination/search call (only applicable to study fields) (optional)
    display_order • Integer to order how the fields should be displayed (optional)
    wrapped_dicom_only • Only capture for wrapped DICOM uploads during a share code exchange (optional)
    dicom_only • Only capture for non-wrapped DICOM uploads during a share code exchange (optional)
    required • Flag if the field is required (optional)
    options • Additional options in JSON format (optional)
    hl7_segment • Segment to map this field to in HL7 ORM messages. Valid values are (NTE|PID|PID1|PV1|PV2|OBR|DG1|OBX|CTI|BLG|ORC) (only applicable to study fields) (optional)
    hl7_field • Segment field number to map this field to in HL7 ORM messages. Valid values are 1 to 64. (only applicable to study fields) (optional)
    hl7_component • Component number to map this field to in HL7 ORM messages. Valid values are 1 to 64. (only applicable to study fields) (optional)
    load_hl7 • If this is set to a HL7 message type the value of this field will be updated from the hl7_segment, hl7_field and hl7_component from incoming HL7 messages of the matching message type (only applicable to study fields) (optional)
    load_hl7_filter • Filter token for the load_hl7 option (only applicable to study fields) (optional)
    dicom_tag • DICOM tag to map this field to. Format should be of form (1234,1234). (only applicable to study fields) (optional)
    other_dicom_tags • JSON array of other DICOM tags to map this field to. (only applicable to study fields) (optional)
    load_dicom_tag • Flag to load the current value from the study into this field. (only applicable if a dicom_tag is specified) (optional)
    dicom_tag_ignore_empty • Flag to not map an empty custom field to the DICOM tag. (only applicable if a dicom_tag is specified) (optional)
    load_from_sr • Load the value from the structured reports in the study (only applicable to study fields) .(optional)
    field_flag • Default customfield flag (optional)
    ui_json • JSON for UI settings (optional)
    load_order • If this flag is on the value of this field will be loaded from a customfield of the matching Order. The customfield is defined by the other_customfield_id parameter (optional)
    other_customfield_id • Id of a customfield to map its value to this customfield's value (optional)
    include_in_analytics • Flag to include the customfield in analytical reports. See group_by parameter in /analytics/patient/portal (optional)
    Returns status • OK
    uuid • uuid of the customfield
    Permission customfield_edit
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    ACCOUNT_NOT_FOUND • The account can not be found
    NOT_FOUND • The Customfield can not be found
    NOT_PERMITTED • You are not permitted to add a customfield to this account or set options.recalculate_on_edit
    INVALID_FLAG • An invalid flag was passed. The error_subtype holds the name of the invalid flag
    INVALID_INTEGER • Invalid integer. The error_subtype holds the invalid integer.
    INVALID_TYPE • An invalid type was passed.
    INVALID_OBJECT • An invalid object was passed.
    INVALID_JSON • The field is not in valid JSON format. The error_subtype holds the name of the field
    INVALID_OPTIONS • An option is invalid. The error_subtype holds the specific error message
    INVALID_HL7_OBJECT • HL7 fields can only be applied to study fields
    INVALID_HL7_SEGMENT • Invalid segment name
    INVALID_DICOM_TAG_OBJECT • DICOM tags can only be applied to study fields
    INVALID_DICOM_TAG • The DICOM tag is invalid
    INVALID_SEARCH_SOURCE • An invalid search source was passed.
    NO_DICOM_TAG_DEFINED • The load_dicom_tag flag is set but the dicom_tag field is not defined
    RESERVED_NAME • This name is reserved
    DUPLICATE_NAME • There is already calculated field with such a name
    Notes
    • Date fields must be saved in a YYYY-MM-DD format
    • Checkboxes must be saved as a 1/0 flag
    • Multiselect, picker and radio fields must be saved as a CSV list of the values
    • Boolean values are serialized to true/false JSON values and are passed as 0/1 flags or true/false strings to API. show_when rules coerces booleans to 0/1 so they can be used in logical operations.
    • JSON format for options. Options is a hash with the following key value pairs
      • values - array of values for a select, multiselect, picker, radio or search field. Macro values can be used to dynamically generate values as documented below.
      • suggested_values - array of values for a search field, shown as default options when the user clicks into the field, before they enter a search string. Macro values can be used as documented below.
      • inactive_options - array of disabled values. Already set values from this list are left intact. This list of values is hidden for further user selection.
      • values_FIELD_NAME - hash of arrays of values for a select, multiselect, picker or radio field. FIELD_NAME should be name of the field to lookup and the field value is the key to the hash.
        e.g. "values_modality":{"CT":["A","B"],"MR":["C","D"]}. Only one values_FIELD_NAME key can exist.
      • labels - hash of labels for a select, multiselect or picker field (optional)
      • validate - a regular expression the field must validate against
      • validate_error - An error message to display for a failed validation
      • validate_pages - A list of pages to validate fields. Supported pages: study_add, study_set, study_set_must_approve, study_share. Empty list enables validation in all cases.
      • hint - A textual hint for the field
      • field_label - The label for the field
      • max_length - The maximum length of the field
      • show_when - A hash keyed by uuid of other customfield(s), the hash value is an array of values. If the referenced customfield has a value that is in the array of values this field should be shown. If it doesn't this field should be hidden.
      • admin_only - Only show customfield to administrators (only applies to User_account customfields)
      • hint_as_help_text - Make the hint appear below the field input
      • forbid_future_dates - Make the customfield accept only today and days in the past. User time zone is considered.
      • block_id - Any string identifier, optional. Custom fields with the same block_id will be rendered on one line
      • show_in_qr_activity - Flag if the custom field should be exposed in study retrieve activities
      • calculate_rules - For type=calculated it is JSON array of hashes {"value":VALUE,"condition":CONDITION}, where VALUE is some string which is "returned" for first CONDITION to match. CONDITION is the same as in show_when, where "-field" is one of Object's field or customfield-UUID or customfield-'name'. It's value is calculated on each object.save(). Example for "1 if two cf and study_status match, 0 otherwise":
        [
            {"value":1,
             "condition":{"-and":[
               {"-eq":[{"-field":"customfield-83873415-38ab-4100-9a83-235664771cd3"},"some-value"]},
               {"-eq":[{"-field":"customfield-'named-cf'"},"33"]},
               {"-eq":[{"-field":"study_status"},"status1"]}
              ]}
            },
            {"value":0,
             "condition":1}
        ]
      • recalculate_on_edit - if recalculate all object's cf.value in this account on cf change. Only for type=calculated. Requires sysadmin or level 2 support.
      • search_source - The data source for a search field. The available options are:
        • athena_providers • Search Athena for the provider
        • athena_order_types • Search Athena for the order types
        • us_states • Search US states
        • account_users • Search the users in the account
        • customfield_values • Search the array of values in the options JSON
    • Filter tokens for the load_hl7_filter
      • SEGMENT_FIELD_VALUE - The field in the segment must contain the value i.e. OBR_4_8LW means that OBR-4 must contain the value 8LW
    • The following value macros are supported. Macros are evaluated when the customfield is returned as part of an object.
      • __USER_NAMES__ • The macro value will be replaced by an ordered list of the user names in the account (can be used in customfield options: values)
      • __CUSTOMFIELD-uuid__ • The macro value will be replaced by a list generated from CSV data stored in the object customfield value (can be used in customfield options: suggested_values)
    • Nested DICOM tags are supported by specifying all the tags in the path separated by colons e.g. (0002,0003):(0002,0006)
    • A specific nested DICOM tag can be pulled in by specifying its index e.g. (0002,0003):(0002,0006)[2]. Indices start with 1 and count end-to-end through the DICOM file for a given tag.
    • The load_from_sr is a JSON array of the keys to traverse to get to the structured report value to load e.g. ["Summary","EDD from LMP"]
    • If a study has multiple SR they are checked in sequential order for the first value of traverse keys
    • If you would like the second or more value of the traverse keys use the special tag _INSTANCE_N_ where N is the number to select as the first element in the array e.g. ["_INSTANCE_2_","Summary","EDD from LMP"]
    • DICOM tags must be uppercase e.g. (0020,002D)
    • If a customfield is named _DATA_FIELD_fieldname the value will be loaded from the named database field e.g. _DATA_FIELD_integration_key
    • Customfield default flag is overridable with study_field_customfield_UUID role permissions and study_field_flags namespace setting
    • Customfield can be mapped from another customfield by the means of other_customfield_id. Sysadmin and support users are allowed to map customfields between accounts. Order->Study and Study->Study mappings are supported currently. Order customfield does not override current Study customfield. Studies match orders by MRN and accession number.
    • other_customfield_id parameter is DEPRECATED, use /customfield/mapping/add instead
    • There is reserved name=stat_filter for type=calculated. It is used instead of account setting stat_filter which is DEPRECATED now.
    top

    Description Edit a custom field
    URL /customfield/set
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • uuid of the customfield
    name • Name of the customfield (optional)
    capture_on_share_code • Flag if the study type field should be captured during a share code exchange (optional)
    capture_on_destination_search • Flag if the field should be captured during query retrieve on /destination/search call (optional)
    display_order • Integer to order how the fields should be displayed (optional)
    wrapped_dicom_only • Only capture for wrapped DICOM uploads during a share code exchange (optional)
    dicom_only • Only capture for non-wrapped DICOM uploads during a share code exchange (optional)
    required • Flag if the field is required (optional)
    options • Additional options in JSON format (optional)
    hl7_segment • Segment to map this field to in HL7 ORM messages. Valid values are (NTE|PID|PID1|PV1|PV2|OBR|DG1|OBX|CTI|BLG|ORC) (only applicable to study fields) (optional)
    hl7_field • Segment field number to map this field to in HL7 ORM messages. Valid values are 1 to 64. (only applicable to study fields) (optional)
    hl7_component • Component number to map this field to in HL7 ORM messages. Valid values are 1 to 64. (only applicable to study fields) (optional)
    load_hl7 • If this is set to a HL7 message type the value of this field will be updated from the hl7_segment, hl7_field and hl7_component from incoming HL7 messages of the matching message type (only applicable to study fields) (optional)
    load_hl7_filter • Filter token for the load_hl7 option (only applicable to study fields) (optional)
    dicom_tag • Dicom tag to map this field to. Format should be of form (1234,1234). (only applicable to study fields) (optional)
    other_dicom_tags • JSON array of other DICOM tags to map this field to. (only applicable to study fields) (optional)
    load_dicom_tag • Flag to load the current value from the study into this field. (only applicable if a dicom_tag is specified) (optional)
    dicom_tag_ignore_empty • Flag to not map an empty custom field to the DICOM tag. (only applicable if a dicom_tag is specified) (optional)
    load_from_sr • Load the value from the structured reports in the study. (only applicable to study fields) .(optional)
    field_flag • Default customfield flag (optional)
    ui_json • JSON for UI settings (optional)
    load_order • If this flag is on the value of this field will be loaded from a customfield of the matching Order. The customfield is defined by the other_customfield_id parameter (optional)
    other_customfield_id • Id of a customfield to map its value to this customfield's value (optional)
    other_customfield_no_overwrite_with_blank • Flag if the customfield should be updated with a blank value (optional)
    other_customfield_no_refresh_on_reshare • Flag if the customfield should be updated on Study reshare (optional)
    include_in_analytics • Flag to include the customfield in analytical reports. See group_by parameter in /analytics/patient/portal (optional)
    Returns status • OK
    Permission customfield_edit
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The object was not found. The error_subtype holds the name of the key for the object that can not be found
    NOT_PERMITTED • You are not permitted to edit the customfield or set options.recalculate_on_edit
    INVALID_FLAG • An invalid flag was passed. The error_subtype holds the name of the invalid flag
    INVALID_INTEGER • Invalid integer. The error_subtype holds the invalid integer.
    INVALID_JSON • The field is not in valid JSON format. The error_subtype holds the name of the field
    INVALID_OPTIONS • An option is invalid. The error_subtype holds the specific error message
    INVALID_HL7_OBJECT • HL7 fields can only be applied to study fields
    INVALID_HL7_SEGMENT • Invalid segment name
    INVALID_HL7_FIELD • Invalid field number
    INVALID_DICOM_TAG_OBJECT • DICOM tags can only be applied to study fields
    INVALID_DICOM_TAG • The DICOM tag is invalid
    NO_DICOM_TAG_DEFINED • The load_dicom_tag flag is set but the dicom_tag field is not defined
    RESERVED_NAME • This name is reserved. Reserved name is stat_filter for now.
    DUPLICATE_NAME • There is already calculated field with such a name
    USED_BY_ANOTHER_CF • This customfield is used by some calculated customfield
    Notes
    • See the /customfield/add command notes for the format of the options field
    • other_customfield_id, other_customfield_no_overwrite_with_blank and other_customfield_no_refresh_on_reshare parameters are DEPRECATED, use /customfield/mapping/add instead
    top

    Description Get a custom field
    URL /customfield/get
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • uuid of the customfield
    Returns status • OK
    uuid • uuid of the customfield
    name • Name of the customfield
    object • The object the customfield is associated with
    type • The type of the custom field
    capture_on_share_code • Flag if the study type field should be captured during a share code exchange
    capture_on_destination_search • Flag if the field should be captured during query retrieve on /destination/search call
    display_order • Integer to order how the fields should be displayed
    wrapped_dicom_only • Flag if only capture for wrapped DICOM uploads during a share code exchange
    dicom_only • Flag if only capture for non-wrapped DICOM uploads during a share code exchange
    required • Flag if the field is required
    options • Additional options in JSON format
    hl7_segment • Segment to map this field to in HL7 ORM messages. (only applicable to study fields)
    hl7_field • Segment field number to map this field to in HL7 ORM messages. (only applicable to study fields)
    hl7_component • Component number to map this field to in HL7 ORM messages. Valid values are 1 to 64. (only applicable to study fields) (optional)
    load_hl7 • If this is set to a HL7 message type the value of this field will be updated from the hl7_segment, hl7_field and hl7_component from incoming HL7 messages of the matching message type (only applicable to study fields)
    load_hl7_filter • Filter token for the load_hl7 option (only applicable to study fields)
    dicom_tag • Dicom tag to map this field to. (only applicable to study fields)
    other_dicom_tags • JSON array of other DICOM tags to map this field to. (only applicable to study fields) (optional)
    load_dicom_tag • Flag to load the current value from the study into this field. (only applicable if a dicom_tag is specified)
    dicom_tag_ignore_empty • Flag to not map an empty custom field to the DICOM tag. (only applicable if a dicom_tag is specified)
    load_from_sr • Load the value from the structured reports in the study
    field_flag • Default customfield flag
    ui_json • JSON for UI settings.
    load_order • If this flag is on the value of this field will be loaded from a customfield of the matching Order. The customfield is defined by the other_customfield_id parameter
    other_customfield_id • Id of a customfield to map its value to this customfield's value
    other_customfield_no_overwrite_with_blank • Flag if the customfield should be updated with a blank value
    other_customfield_no_refresh_on_reshare • Flag if the customfield should be updated on Study reshare
    include_in_analytics • Flag to include the customfield in analytical reports. See group_by parameter in /analytics/patient/portal
    customfield_mapping • An array of the customfield mappung rules that map this customfield to other customfields. Each object in the array has the same fields as the /customfield/mapping/get command.
    Permission customfield_view or role_view
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The customfield can not be found
    NOT_PERMITTED • You are not permitted to view the customfield
    Notes
    • Customfields mapped from orders (the load_order flag) do not overwrite existing Study cutomfield values
    • When customfields are returned as part of an object the following fields are returned
      • uuid • Id of the custom field
      • name • Name of the custom field
      • type • Type of the custom field
      • value • Value of the custom field
      • required • Is the field required
      • options • Field options
      • ui_json • JSON for UI settings.
    top

    Description Delete a customfield
    URL /customfield/delete
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • uuid of the customfield
    Returns status • OK
    Permission customfield_edit
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The customfield can not be found
    NOT_PERMITTED • You are not permitted to delete the customfield
    USED_BY_ANOTHER_CF • This customfield is used by some calculated customfield
    Notes
    top

    Description Lookup a custom field by name
    URL /customfield/lookup
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    account_id • uuid of the account
    name • Name of the customfield
    Returns status • OK
    uuid • Id of the customfield
    object • Object it is associated with
    type • Type of the customfield
    Permission You need to be a member of the account
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The customfield can not be found
    NOT_PERMITTED • You are not permitted to do this
    Notes
    top

    Description Search and return the results for a search type customfield
    URL /customfield/search
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • uuid of the customfield
    search • The value to search for (optional)
    extended • If provided then below parameters are used instead of search, see Notes. (optional)
    filter.*Filters, used for search_source=account_users only (optional)
    page.*Pagination, used for search_source=account_users only (optional)
    sort_bySorting, used for search_source=account_users only (optional)
    Returns status • OK
    results • An array of the search results
    Permission You need to be a member of the account
    For search_source=account_users and extended=1 account_user_view or case_edit is required.
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The customfield can not be found
    NOT_PERMITTED • You are not permitted to do this
    NOT_A_SEARCH • This is not a search type of customfield
    Notes If extended=1 provided, then for search_source=account_users not search but filter.* are applied and data returned is the same way as in /account/user/list. Plus extended filter.user_first_last.like=%part matches "first last" like "%part".
    top

    Description List customfield mapping rules
    URL /customfield/mapping/list
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    account_id • uuid of the account
    Returns status • OK
    customfield_mappings • An array of the mapping rules. Each object holds the following same fields as the /customfield/mapping/get call
    Permission customfield_view or customfield_edit
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The account can not be found
    NOT_PERMITTED • You are not permitted to view this list
    Notes
    top

    Description Add a mapping rule to the customfield
    URL /customfield/mapping/add
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    from_customfield_id • The source custom field id
    to_customfield_id • The destination custom field id
    rule_set_id • uuid of the rule set to add them to (optional)
    name • Name of the mapping (optional)
    overwrite_with_blank • Flag if the destination customfield should be updated with a blank value, 1 by default (optional)
    refresh_on_reshare • Flag if the destination customfield should be updated on Study reshare, 1 by default (optional)
    refresh_on_edit • Flag if the destination customfield should be updated on the source customfield edit, 1 by default (optional)
    reverse_refresh_on_edit • Flag if the mapping should apply in reverse, ie to the customfield designated as a from_customfield_id of the original study when a shared version of the study is edited, 0 by default (optional)
    Returns status • OK
    uuid • uuid of the mapping rule
    Permission customfield_edit in the account of the source customfield
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_PERMITTED • You are not permitted to do this
    NOT_FOUND • The customfield can not be found, The error_subtype refers to a customfield by the following values: FROM_CUSTOMFIELD or TO_CUSTOMFIELD
    ALREADY_EXISTS • The mapping rule already exists
    INVALID_FLAG • An invalid flag was passed. The error_subtype holds the name of the invalid flag
    Notes The calling user should be a support or sysadmin user to add a mapping rule to map custom fields between accounts.
    top

    Description Edit a customfield mapping rule
    URL /customfield/mapping/set
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • uuid of the customfield mapping rule
    name • Name of the mapping (optional)
    overwrite_with_blank • Flag if the destination customfield should be updated with a blank value, 1 by default (optional)
    refresh_on_reshare • Flag if the destination customfield should be updated on Study reshare, 1 by default (optional)
    refresh_on_edit • Flag if the destination customfield should be updated on the source customfield edit, 1 by default (optional)
    reverse_refresh_on_edit • Flag if the mapping should apply in reverse, ie to the customfield designated as a from_customfield_id of the original study when a shared version of the study is edited, 0 by default (optional)
    Returns status • OK
    Permission customfield_edit in the account of the source customfield
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_PERMITTED • You are not permitted to do this
    NOT_FOUND • The customfield mapping rule can not be found
    INVALID_FLAG • An invalid flag was passed. The error_subtype holds the name of the invalid flag
    Notes
    top

    Description Get a customfield mapping rule
    URL /customfield/mapping/get
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • uuid of the customfield mapping rule
    Returns uuid • uuid of the mapping rule
    name • Name of the mapping rule
    rule_set_id • uuid of the rule set to add them to
    to_customfield_id • uuid of the destination customfield
    from_customfield_id • uuid of the source customfield
    overwrite_with_blank • Flag if the destination customfield should be updated with a blank value
    refresh_on_reshare • Flag if the destination customfield should be updated on Study reshare
    refresh_on_edit • Flag if the destination customfield should be updated on the source customfield edit
    reverse_refresh_on_edit • Flag if the mapping should apply in reverse, i.e. to the customfield of the original study when a shared version of the study is edited
    status • OK
    Permission customfield_view or customfield_edit
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The customfield mapping rule can not be found
    NOT_PERMITTED • You are not permitted to view the customfield mapping rule
    Notes
    top

    Description Delete a customfield mapping rule
    URL /customfield/mapping/delete
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • uuid of the customfield mapping rule
    Returns status • OK
    Permission customfield_edit in the account of the source customfield
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_PERMITTED • You are not permitted to do this
    NOT_FOUND • The customfield mapping rule can not be found
    Notes
    top

    Webhook commands

    Description List the webhooks for the account
    URL /webhook/list
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    account_id • uuid of the account
    Returns status • OK
    webhooks • An array of the webhooks. Each object holds the following same fields as the /webhook/get call
    Permission webhook_view
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The account can not be found
    NOT_PERMITTED • You are not permitted to view this list
    Notes
    top

    Description Add a webhook to the account
    URL /webhook/add
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    account_id • uuid of the account
    node_id • uuid of the node to proxy the webhook through (optional)
    name • Name of the webhook
    event • Event to call it on (See the notes for the available events)
    url • URL to call
    method • Method to call it with (POST|GET|POST_JSON|PUT|GET_JSON)
    suspended • This webhook is suspended and not triggered (optional)
    parameters • A JSON object of the parameter names and values (optional)
    retry • Retry the webhook if it fails (optional)
    sid_user_id • UUID of the user to generate a sid as (optional)
    filter_field • Name of the study field (by default) or another object's field (should have prefix like "webhook.") to filter on (optional)
    filter_regexp • Regular expression to match the value of the filter_field against (optional)
    once • Flag that this webhook should only be run once for a specific study (optional)
    by_uid • Flag to expand the once search to include studies with the same study_uid (optional)
    by_accession_number • Flag to expand the once search to include studies with the same accession_number (optional)
    by_webhook_event • Flag to fire WEBHOOK_FAILED once at final unsuccessful try of a failing webhook (optional)
    delay • Number of seconds to delay running this webhook for after it is triggered (optional)
    max_age • Ignore studies that are more than this number of days old based on the study_date (optional)
    auth • A JSON hash with the authentication details (optional)
    cron • Cron timing string for CRON events e.g 0 9 * * mon-fri(optional)
    Returns status • OK
    uuid • uuid of the webhook
    Permission webhook_edit
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    ACCOUNT_NOT_FOUND • The account can not be found
    NODE_NOT_FOUND • The node can not be found
    USER_NOT_FOUND • The basic authentication user can not be found
    NOT_PERMITTED • You are not permitted to add a webhook to this account
    INVALID_METHOD • An invalid method was passed
    INVALID_EVENT • An invalid event was passed
    INVALID_JSON • The parameters field is not in valid JSON format.
    NOT_HASH • The parameter or auth field is not a hash.
    SID_USER_NOT_FOUND • The sid user can not be found
    SID_USER_NOT_IN_ACCOUNT • The sid user is not a member of this account
    INVALID_REGEXP • Invalid regular expression
    INVALID_FILTER_FIELD • Invalid filter field name
    INCOMPLETE_FILTER • Both a field and regexp are required
    INVALID_TRANSFORM_CONDITION • The transform condition is invalid
    SFDC_NOT_HASH • The SFDC auth value is not a JSON hash
    SFDC_JWT_NOT_HASH • The SFDC auth value is not a JSON hash
    SFDC_MISSING_FIELDS • Fields are missing for the SFDC auth hash
    SFDC_JWT_MISSING_FIELDS • Fields are missing for the SFDC auth hash
    FDC_JWT_INVALID_PRIVATE_KEY • The private key is invalid CUSTOM_NOT_HASH • The custom auth value is not a JSON hash
    INVALID_URL • The url value is invalid
    INVALID_CRON • The cron value is invalid
    NOT_WITH_CRON • The delay or retry option can not be used for cron events
    SID_USER_PRIVILEGE_ESCALATION • The user for sid_user_id has higher privileges that the calling user
    Notes
    • GET and POST will send the parameters and values as a URL encoded POST or GET (type application/x-www-form-urlencoded).
    • POST_JSON will POST a JSON hash (type application/json).
    • GET_JSON will send a GET request with JSON data (type application/json).
    • If the parameter value is of the form study.field where field is a field in /study/get the value will be set to the value of that field for the triggering study. e.g. name=>study.patient_name
    • If the parameter value is of the form study.customfield-CUSTOMFIELD_UUID it will be set to the customfield value of the triggering study.
    • If the parameter hash is of the form {"_REPLACE_WITH_JSON_":"study.FIELD_NAME"} the parameters will be replaced with a JSON evaluated of the value of the named field
    • If the parameter hash is of the form {"_JSON_TEMPLATE_":"JSON with substitutions"} the request body will be replaced with the text of the value, the text is processed as a template with substitutions of the form {{TOKEN}}. TOKENS should follow the same formatting rules as the parameters' values (e.g. study.uuid). Special characters (opening curly brackets and backslashes) should be escaped with backslash characters. For example to pass a substitution to the /bundle call they need to escape curly brackets as follows: \{\{studies.[0].uuid}}. The webhook method should be POST_JSON.
    • The available events are:
      • STUDY_SYNC - Called when a study is fully stored in the system
      • STUDY_REQUEST_APPROVAL - Called when a study is queued for approval
      • STUDY_APPROVE - Called when a study is approved
      • STUDY_SHARE - Called when an study is successfully shared (after any approvals)
      • STUDY_WAS_SHARED - Called on the study that was successfully shared (after any approvals)
      • ROUTE_RULE - This webhook is called by routing rules
      • STUDY_PUSH_STATUS - Called when a study push status is updated from a destination that has the fire_webhooks flag enabled
      • STUDY_UPLOAD_FAIL - Called when an individual study upload fails
      • STUDY_UPLOAD_SUCCESS - Called when an individual study upload succeeds
      • STUDY_UPLOAD_START - Called when a study upload session starts
      • STUDY_UPLOAD_END - Called when a study upload session ends
      • STUDY_UPLOAD_LINK - Called when a study upload link is accessed
      • STUDY_STATUS - Called when the study status changes
      • STUDY_REPORT - Called when a report is added to a study
      • STUDY_REPORT_REMOVE - Called when a report is removed from a study
      • STUDY_RADREPORT - Called when a rad report is attached to a study
      • STUDY_RADREPORT_SIGNED - Called when a rad report is signed
      • STUDY_THIN_FAIL - Called when a thin study fails to retrieve
      • STUDY_VIEW - Called when a study is viewed
      • STUDY_DOWNLOAD - Called when the the study is downloaded
      • STUDY_HL7 - Called when an HL7 message is attached to the study
      • STUDY_FIRST_IMAGE - Called when the first image(s) for the study hit storage
      • STUDY_DUPLICATE_UPLOAD - Called when a study is re-uploaded
      • STUDY_VIEWER_ERROR - Called when a viewer error occurs
      • STUDY_ANNOTATION - Called when an annotation is added to the study
      • STUDY_ANNOTATION_EDIT - Called when an annotation is edited
      • STUDY_ANNOTATION_DELETE - Called when an annotation is removed from a study
      • STUDY_AI_QUESTION - Called when an answer to the AI question is returned. e.g. STUDY_AI_has_scanned_docs
      • NAMESPACE_AI_QUESTION - Called when an answer to the AI question is returned. e.g. NAMESPACE_AI_run_custom_code_namespace_scripts
      • STUDY_REJECT - Called when the share of the study is rejected
      • STUDY_DELETE - Called when the the study is deleted. Use the study_deleted object for parameters e.g. study_deleted.study_uid
      • STUDY_REPORT_VIEW - Called when a report is viewed
      • STUDY_EDIT - Called when a study is edited via the UI
      • STUDY_MOVE - Called when a study is moved to a namespace
      • STUDY_MERGE - Called for a study when another study merges in
      • STUDY_MERGE_FAIL - Called for a study when the storage fails to merge in another study
      • STUDY_SPLIT - Called when a study is split
      • HL7_ADD - Called when an HL7 is added to Ambra
      • DESTINATION_SEARCH_RESULTS - Called for the results (/node/found) for a /destination/search query
      • DESTINATION_FETCH_FAIL - Called when a /destination/retrieve fails
      • DESTINATION_FETCH_SUCCESS - Called when a /destination/retrieve succeeds
      • WEBHOOK_FAILED - Called when a webhook fails
      • MANUAL - The webhook needs to be manually or programmatically triggered
      • CRON - The webhook is time triggered by the cron value
      • STUDY_DEID_FAIL - Called for a study when the storage fails to de-identify it
      • STUDY_IMAGE_COUNT - Called when image count for a study changes, not called for new studies
      • STUDY_COPY - Called when an study is successfully copied into a namespace
      • QUERY_ADD - Called when a new Query is issued
      • QUERY_STATUS - Called when the Query status changes
      • SITE_QUALIFIED - Called when the Site is qualified for a trial
      • QCTASK_COMPLETED - Called when the QC task is deleted
      • QCTASK_STATUS - Called when the QC task status changes
      • QCTASK_EDIT - Called when the QC task in the account is edited
      • ACCOUNT_USER_ADD - Called when a user is added to the account
      • ACCOUNT_USER_EDIT - Called when a user in the account is edited
      • ACCOUNT_USER_DELETE - Called when a user is removed from the account
      • GROUP_ADD - Called when a new Group is added
      • GROUP_EDIT - Called when a group in the account is edited
      • LOCATION_ADD - Called when a new location is added
      • LOCATION_EDIT - Called when a location in the account is edited
    • For the STUDY_PUSH_STATUS event the destination fields are available as destination.field and the push status as study_push.status for the letter status or study_push.success for a 1/0 flag where 0 is success and 1 is failed
    • For the STUDY_UPLOAD_FAIL event the reason the upload failed is available in the study.failed_upload_reason field
    • The information for the user who fired the webhook is available in the user.* fields e.g. user.name
    • If the retry flag is set on the web hook will retry up to three times until it succeeds. The spacing on the retries is a minute later, then 10 minutes later and then an hour later.
    • The sid_user_id is useful for calling API methods that require a sid. A sid will be generated and added to the call parameters.
    • The filter_field can be a customfield in the customfield-CUSTOMFIELD_UUID format
    • If the event is STUDY_RADREPORT or STUDY_RADREPORT_SIGNED both the study.* and radreport.* fields will be available for use
    • If the event is STUDY_REPORT or STUDY_REPORT_REMOVE and the filter_field is S-attachment_mime_type the mime type of the attachment will be filtered against the filter regular expression. attachment.filename, attachment.mime_type and attachment.guid will be available in the webhook parameters.
    • If the event is STUDY_HL7 or HL7_ADD and the filter_field is S-hl7_type the HL7 message type will be filtered against the filter regular expression. The fields in the HL7 object related to the Hl7 message that triggered the webhook are also for use in the webhook e.g. hl7.uuid. Hl7 message fields are accessible through hl7.hash prefix e.g. hl7.hash.PID_5
    • If the event is STUDY_HL7 or HL7_ADD and the filter_field is S-hl7_transform_condition the filter_field_regexp should be a transform condition expression to match against the HL7 message. See /hl7/transform/add for the format for the transform condition format.
    • A filter expression can be passed in the filter_field_regexp if the filter_field is S-list_filter (for studies) or OBJECT_TYPE.S-list_filter (for other objects). The filter will be evaluated against the object allowing fine grained and multi-field filtering e.g. filter.phi_namespace.equals=UUID&filter.study_push_status.equals=S
    • If multiple filter expressions are required pass JSON arrays to both the filter_field and filter_regexp fields. The webhook will only run if all the filter conditions are satisfied.
    • If the once flag is set the webhook is only run one time (after the flag is set) for a specific study. If by_uid or by_accession_number flag is specified as well the exclusion is expanded to include studies with the same study_uid or accession_number
    • If the once flag is set with the additional by_webhook_event then the webhook is only run once after a series of retries of a failing webhook (and also in case no retries enabled).
    • For the WEBHOOK_FAILED event the parameter values from the failed webhook will be available for use as well as the webhook.* values e.g. webhook.name, webhook.last_error etc.
    • For the ROUTE_RULE event route.id value contains route's uuid that triggered this webhook
    • For the ROUTE_RULE event the /study/manual/route's {email,message} parameter values will be available for use through parameters.* fields
    • For the STUDY_UPLOAD_START and STUDY_UPLOAD_END event the parameters passed to /webhook/event are available in the webhook_event.* fields e.g. webhook_event.study_count, webhook_event.integration_key, webhook_event.namespace_id, webhook_event.share_code. These fields can also be used in the filter_field to filter the webhook.
    • For the STUDY_UPLOAD_LINK event and other events for session created via a study upload link the following additional parameters are available: link_usage.client_email, link_usage.client_address, link_usage.link_id, link_usage.account_id also the user who is associated with or created the link is available via the user_account.* parameters
    • For the STUDY_ANNOTATION, STUDY_ANNOTATION_EDIT and STUDY_ANNOTATION_DELETE events the annotation data is available as annotation.* parameters
    • For the STUDY_STATUS event study_before.* and study_after.* parameters reflect the study state right before and after the status change respectively in addition to the current study state reflected in study.* parameters
    • study.shared_from_account_name contains the same value as in /study/get with parameter shared_from_account_name=1.
    • For the NAMESPACE_AI_* event the namespace data is available as namespace.* parameters, the question data is available as ai_question.* parameters
    • For the DESTINATION_SEARCH_RESULTS event the returned study list is in the destination_search.results field and the count is in the destination_search.count field, customfields passed to /destination/search are in the destination_search.customfield-* fields.
    • For the DESTINATION_FETCH_FAIL and DESTINATION_FETCH_SUCCESS events the details are available in the following fields study_fetch.(accession_number|study_uid|patientid|destination_name|destination_uuid|customfield-*) and study.* fields for the DESTINATION_FETCH_SUCCESS event
    • For the ACCOUNT_USER_ADD and ACCOUNT_USER_EDIT events the account user data is available as user_account.* parameters
    • The auth fields is a JSON hash with a single key that describes the type of auth and the value for the key is a hash with the auth details. The following types of auth are supported.
      • sfdc - Salesforce Username-Password OAuth Authentication. The following keys must be in the details hash, client_id, client_secret, username, and password. e.g. {"sfdc":{"client_id":"3MVG9lK","client_secret":"1955279","username":"testuser@salesforce.com","password":"mypassword1234"}}. /webhook/get will return the md5 of the password.
      • sfdc_jwt - Salesforce JWT Authentication. The following keys must be in the details hash iss, sub, aud, private_key, salesforce_url. /webhook/get will return the md5 of the private key. To convert the private key to a single line for JSON usage run the following command
        jq -sR < privatekey.pem
      • token_from_webhook - Get the access_token from the JSON returned from another webhook. Put the uuid of a manual webhook into the webhook_id key of the hash
      • basic - a hash with username and password keys and values
      • custom - a hash of keys and values that will be passed in the HTTP header of the webhook e.g. {"custom":{"name":"test"}}
    • For the QUERY_ADD and QUERY_STATUS events the query data is available as query.* parameters
    • For the SITE_QUALIFIED event the site and group data is available as site.* and group.* parameters respectively. The webhook can be defined in both site management and trial accounts.
    • For the QCTASK_COMPLETED and QCTASK_STATUS events the QC task data is available as qctask.* parameters. Nested study object can be referred to as qctask.study.*
    top

    Description Edit a webhook
    URL /webhook/set
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • uuid of the webhook
    name • Name of the webhook (optional)
    event • Event to call it on (optional see add command for options)
    url • URL to call (optional)
    method • Method to call it with (optional see add command for options)
    suspended • This webhook is suspended and not triggered (optional)
    parameters • A JSON object of the parameter names and values (optional see add command for options)
    node_id • uuid of the node to proxy the webhook through (optional)
    retry • Retry the webhook if it fails (optional)
    sid_user_id • UUID of the user to generate a sid as (optional)
    filter_field • Name of the field to filter on (optional)
    filter_regexp • Regular expression to match the value of the filter_field against (optional)
    once • Flag that this webhook should only be run once for a specific study (optional)
    by_uid • Flag to expand the once search to include studies with the same study_uid (optional)
    by_accession_number • Flag to expand the once search to include studies with the same accession_number (optional)
    by_webhook_event • Flag to fire WEBHOOK_FAILED once at final unsuccessful try of a failing webhook (optional)
    delay • Number of seconds to delay running this webhook for after it is triggered (optional)
    max_age • Ignore studies that are more than this number of days old based on the study_date (optional)
    auth • A JSON hash with the authentication details (optional)
    cron • Cron timing string for CRON events (optional)
    Returns status • OK
    Permission webhook_edit
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The webhook can not be found
    NOT_PERMITTED • You are not permitted to edit the webhook
    INVALID_METHOD • An invalid method was passed
    INVALID_EVENT • An invalid event was passed
    INVALID_JSON • The parameters field is not in valid JSON format.
    NOT_HASH • The parameter field is not a hash.
    NODE_NOT_FOUND • The node can not be found
    SID_USER_NOT_FOUND • The sid user can not be found
    SID_USER_NOT_IN_ACCOUNT • The sid user is not a member of this account
    INVALID_REGEXP • Invalid regular expression
    INVALID_FILTER_FIELD • Invalid filter field name
    INCOMPLETE_FILTER • Both a field and regexp are required
    INVALID_TRANSFORM_CONDITION • The transform condition is invalid
    SFDC_NOT_HASH • The SFDC auth value is not a JSON hash
    SFDC_MISSING_FIELDS • Fields are missing for the SFDC auth hash
    INVALID_URL • The url value is invalid
    INVALID_CRON • The cron value is invalid
    NOT_WITH_CRON • The delay or retry option can not be used for cron events
    SID_USER_PRIVILEGE_ESCALATION • The user for sid_user_id has higher privileges that the calling user
    Notes
    top

    Description Get a webhook
    URL /webhook/get
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • uuid of the webhook
    Returns status • OK
    uuid • uuid of the webhook
    name • Name of the webhook
    event • Event to call it on
    url • URL to call
    method • Method to call it with
    suspended • This webhook is suspended and not triggered
    parameters • An object of the parameter names and values
    node_id • uuid of the node to proxy the webhook through
    retry • Retry the webhook if it fails
    sid_user_id • UUID of the user to generate a sid as
    filter_field • Name of the field to filter on
    filter_regexp • Regular expression to match the value of the filter_field against
    once • Flag that this webhook should only be run once for a specific study
    by_uid • Flag to expand the once search to include studies with the same study_uid
    by_accession_number • Flag to expand the once search to include studies with the same accession_number
    by_webhook_event • Flag to fire WEBHOOK_FAILED once at final unsuccessful try of a failing webhook
    last_error • Error text from the last time this webhook failed
    delay • Number of seconds to delay running this webhook for after it is triggered
    max_age • Ignore studies that are more than this number of days old based on the study_date
    auth • A JSON hash with the authentication details
    cron • Cron timing string for CRON events
    Permission webhook_view
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The webhook can not be found
    NOT_PERMITTED • You are not permitted to view the webhook
    Notes
    top

    Description Delete a webhook
    URL /webhook/delete
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • uuid of the webhook
    Returns status • OK
    Permission webhook_edit
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The webhook can not be found
    NOT_PERMITTED • You are not permitted to delete the webhook
    Notes
    top

    Description Manually trigger a webhook
    URL /webhook/trigger
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • uuid of the webhook
    study_id • uuid of the study to fire the webhook for
    Returns status • OK
    Permission webhook_edit
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The webhook or study can not be found
    NOT_PERMITTED • You are not permitted to trigger the webhook
    Notes This is an administrative call that can be used to re-fire triggers
    top

    Description Run a webhook and return the results
    URL /webhook/run
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • uuid of the webhook
    study_id • uuid of the study to run the webhook for
    Returns status • OK
    results • The content returned from the webhook call
    Permission webhook_run
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The webhook or study can not be found
    NOT_PERMITTED • You are not permitted to run the webhook
    INVALID_WEBHOOK_SETUP • The webhook must be a MANUAL webhook with no delay or retry options enabled
    Notes
    • Additional parameters can be passed and will be inserted into the webhook if the webhook parameters value has fields named "parameters.PARAMETER_NAME"
    top

    Description Send an event that may trigger a webhook
    URL /webhook/event
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    type • The type of event (STUDY_UPLOAD_START|STUDY_UPLOAD_END)
    (namespace_id || share_code) • The namespace or share code for the event
    integration_key • The integration key associated with the event (optional)
    study_count • The number of studies associated with the event (optional)
    Returns status • OK
    Permission
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    INVALID_TYPE • Invalid event type
    Notes
    top

    Description Send an email (a helper method for webhooks)
    URL /webhook/email
    Parameters webhook_id • The uuid of the calling webhook
    to • The email address(es) to send the email to
    subject • The subject of the email
    text • The text part of the email
    html • The HTML part of the email
    template_id • The email template UUID to be used
    Returns status • OK
    Permission This can only be called by a webhook
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_PERMITTED • This is not a call from a valid webhook PARSE_FAILED • Template parsing failed for a field. The error_subtype holds the name of the field
    Notes
    • You can pass the template_id parameter to use a preexisting mail template or to, subject and text/html parameters as separate values.
    • The to, subject, text/html fields will be evaluated as text templates
    • The to, subject, text/html fields or a template will be evaluated using any other parameters passed in the call .e.g if the subject is Hi {$first_name} and the parameter first_name is set to Joe the subject will be Hi Joe
    top

    Link commands

    Links allow you to generate static URLs that give controlled access to the application

    Description List the links for the study, user or account
    URL /link/list
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    (study_id || user_id || account_id) • uuid of the study, user or account to get the links for
    filter.* Filters (optional)
    page.* Pagination (optional)
    sort_bySorting (optional)
    Returns status • OK
    page • The pagination status hash
    links • An array of the links. Each object holds the following same fields as the /link/get call
    Permission link_view
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The account can not be found
    NOT_PERMITTED • You are not permitted to view this list
    Notes
    top

    Description Add a link
    URL /link/add
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    (study_id || filter && account_id || namespace_id || user_id && account_id) • uuid of the study or a JSON hash of the study filter expression and the account_id or the namespace_id if the action is STUDY_UPLOAD or the user_id and the account_id if the action is LOGIN
    action • Link action (STUDY_LIST|STUDY_VIEW|STUDY_UPLOAD|LOGIN)
    password • Link password (optional)
    password_max_attempts • The maximum number of failed password attempt (optional)
    password_is_dob • Flag that the password is the patient_birth_date for the study (study_id is required) (optional)
    skip_email_prompt • Skip the prompt for email step (optional)
    pin_auth • An account member email and PIN authentication is required (optional)
    include_priors • Include prior studies (optional)
    max_hits • The maximum number of times the link can be used (optional)
    minutes_alive • The maximum number of minutes the link will be alive for (optional)
    email • Email the link to these addresses (optional)
    mobile_phone • Send the link to this phone number (optional)
    message • Message to include in the email (optional)
    share_on_view • Flag to share the study with the email after it is viewed (optional)
    notify • Comma or space separated list of additional emails to notify of link usage (optional)
    use_share_code • Flag to use the namespace share code settings for a STUDY_UPLOAD (optional)
    share_code • share code for a STUDY_UPLOAD (optional)
    parameters • JSON array of parameters to add to the redirect URL or return in /namespace/share_code if an upload e.g. ["integration_key","abc"] Where abc is integration key. (optional)
    meeting_id • UUID of the meeting to associate the link with (optional)
    anonymize • Anonymization rules to the applied to any STUDY_UPLOAD done with this link. Rules are formatted as per the rules parameter in /namespace/anonymize (optional)
    prompt_for_anonymize • Flag to prompt if the anonymization rules should be applied on ingress
    referer • The link can only be accessed from the specified referer. The referer can be a regexp to match multiple referers (optional)
    acceptance_required • Flag that acceptance of TOS is required (optional)
    mfm_page • Flag to launch the MFM page instead of the viewer (optional)
    charge_amount • Amount to charge in pennies before the link can be accessed (optional)
    charge_currency • Charge currency (optional)
    charge_description • Charge description (optional)
    upload_match • A JSON hash of DICOM tags and regular expressions they must match uploaded against this link, an optional key match (an integer value) makes the matching process flexible and requires this number of matches (optional)
    upload_study_customfields • A JSON hash of customfields that will be mapped to a study on study upload. A key is a customfield UUID, a value is a value for the field (optional)
    workflow • The workflow this link is intended for (patient_studies) (optional)
    ui_json • JSON for UI settings (optional)
    inherit_permissions • Flag for the link sessions to inherit permissions from the user stored in the user_id link attribute (optional)
    viewer • The study viewer to use for the link (optional)
    Returns status • OK
    uuid • The link uuid
    url • URL for the link which will take you to the UI entry point for links to enter email, password etc.
    redirect_url • URL for the /link/redirect API which will take you directly to the study viewer or uploader
    Permission link_edit for STUDY_(VIEW|LIST) or LOGIN and link_edit_upload for STUDY_UPLOAD
    can_proxy_login for action's account is required to pass the user_id parameter
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The patient or study could not be found. The error_subtype holds the type of object not found
    NOT_PERMITTED • You are not permitted to create links
    INVALID_ACTION • An invalid action was passed
    INVALID_EMAIL • An invalid email address was passed
    INVALID_PHONE • An invalid cellular phone number was passed
    NOT_LIST • The field is not a JSON array. The error_subtype holds the name of the field
    INVALID_JSON • The field is not in valid JSON format. The error_subtype holds the name of the field
    NOT_HASH • The rules field is not a hash
    INVALID_FIELD_NAME • The field name in the rules hash is invalid. The error_subtype holds the invalid field name
    INVALID_REGEXP • Invalid regular expression. The error_subtype holds the invalid regexp.
    INVALID_PHI_FIELD • The password_is_phi field is invalid or a study_id was not passed
    VALIDATE • A validation error. The error_subtype holds the details on the error
    INVALID_CHARGE • The charge is invalid. The error_subtype holds the details on the error
    INVALID_UPLOAD_MATCH • The upload_match is invalid. The error_subtype holds the details on the error
    VALIDATION_FAILED • The workflow parameter validation failed
    INSECURE_PARAMETERS • The LOGIN link is not a one-time link and not secured by a password
    VIEWER_DISABLED • The viewer parameter is passes while disable_external_viewer_for_links account setting is in effect
    VIEWER_NOT_ALLOWED • The viewer passed is not listed in allowed_viewer_overrides_in_links account setting
    VIEWER_NOT_CONFIGURED • The viewer is not configured for the account
    FORBIDDEN_FIELD • Anonymization rules or upload_study_customfields parameter refer to hidden or read-only study fields. The error_subtype holds the invalid field name.
    Notes
    • The STUDY_LIST action will open up the study in the list view
    • The STUDY_VIEW action will open up the study in the viewer
    • The STUDY_UPLOAD action will allow the user to upload a study to the namespace
    • The LOGIN action will start a new session as the link user and open up the study in the list view
    • If a filter is used STUDY_LIST or STUDY_VIEW is determined by the count of the studies that match the filter. More than 1 is opened in a list.
    • The parameters are an array of parameter keys and values and should not be URL encoded e.g. ["name","jack frost","age",30]
    • If the password_is_dob feature is used the password can be in any date format and it will be parsed and compared against the study date
    • A sample upload_match field to restrict the study to a specific birth date would look like this {"(0010,0030)":"/^19800401$/"}
    • The email parameter can contain comma separated list of emails. Only the first one will be saved as link's email attribute.
    • The user_id will be recorded as a proxy user for the link events in the audit trail.
    • Any filter is applied in the context of user_id, defaults to the current user if not passed.
    • Email notifications are sent to user.email and user.alt_emails.
    top

    Description Get a link
    URL /link/get
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • Id of the link
    short_id • Short ID of the link for the 'patient_studies' workflow
    url • URL for the link which will take you to the UI entry point for links to enter email, password etc.
    redirect_url • URL for the /link/redirect API which will take you directly to the study viewer or uploader
    description • Description of the link
    email • Email address the link was sent to
    mobile_phone • Cellular phone number the link was sent to
    message • Message to include in the email
    share_on_view • Flag to share the study with the email after it is viewed
    notify • Comma or space separated list of additional emails to notify of link usage
    study_id • uuid of the study
    filter • The filter expression
    user_id • The user id
    account_id • The account id
    action • Link action
    has_password • Flag if the link has a password or not
    password_is_dob • Flag that the password is the patient_birth_date for the study
    skip_email_prompt • Skip the prompt for email step
    pin_auth • An account member email and PIN authentication is required
    password_max_attempts • The maximum number of failed password attempt
    is_meeting • Flag if the link is for a meeting
    max_hits • The maximum number of times the link can be used
    include_priors • Include prior studies
    minutes_alive • The maximum number of minutes the link will be alive for
    namespace_id • Id of the namespace for upload links
    namespace_name • Name of the namespace for upload links
    use_share_code • Flag to use the namespace share code settings for a STUDY_UPLOAD
    parameters • JSON array parameters to add to the redirect URL
    anonymize • Any anonymization rules
    prompt_for_anonymize • Flag to prompt if the anonymization rules should be applied on ingress
    referer • The link can only be accessed from the specified referer
    acceptance_required • Flag that acceptance of TOS is required
    mfm_page • Flag to launch the MFM page instead of the viewer
    charge_amount • Amount to charge in pennies before the link can be accessed
    charge_currency • Charge currency
    charge_description • Charge description
    upload_match • A JSON hash of DICOM tags and regular expressions they must match uploaded against this link
    upload_study_customfields • A JSON hash of customfields that will be mapped to a study on study upload
    created • Created datetime stamp of the link
    workflow • The workflow this link is intended for
    ui_json • JSON for UI settings
    inherit_permissions • Flag for the link sessions to inherit permissions from the user stored in the user_id link attribute
    Returns status • OK
    Permission link_view
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The link was not found
    NOT_PERMITTED • You are not permitted to view the link
    Notes
    top

    Description Delete a link
    URL /link/delete
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • Id of the link
    Returns status • OK
    Permission link_edit or link_edit_upload
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The link was not found
    NOT_PERMITTED • You are not permitted to delete the link
    Notes
    • Any active sessions against the link are dropped
    top

    Description Get the status of a link
    URL /link/status
    Parameters (uuid || pin) • Id or PIN of the link
    link_charge_id • The uuid of the prior charge against this link (optional)
    Returns status • OK
    action • Link action
    has_password • Flag if the link has a password or not
    is_meeting • Flag if the link is for a meeting
    skip_email_prompt • Flag to skip the prompt for email step
    pin_auth • An account member email and PIN authentication is required
    pin_auth_text • The account setting value, only returned if pin_auth is required
    acceptance_required • Flag that acceptance of TOS is required
    charge_amount • Amount to charge in pennies before the link can be accessed
    charge_currency • Charge currency
    charge_description • Charge description
    upload_match • A JSON hash of DICOM tags and the values they must match for a study to be uploaded against this link (optional)
    Permission
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The link was not found
    INVALID_SOURCE • The referer is invalid
    IP_BLOCKED • An IP whitelist blocked access
    INVALID_PIN • An invalid PIN was entered
    PIN_LOCKOUT • Too many invalid PIN entries
    Notes
    top

    Description Get a session for the link
    URL /link/session
    Parameters (uuid || pin || short_id) • Id, short Id or PIN of the link
    password • Password if needed (optional)
    email_address • The users email (optional)
    link_charge_id • The uuid of the prior charge against this link (optional)
    Returns status • OK
    sid • sid
    action • Link action
    study_count • The study count for the list
    share_code • The share code to use if this is an upload
    pin_required • Flag if a PIN is required to validate this session
    pin_via • How was the PIN sent, the options are TOKEN,EMAIL or SMS
    acceptance_required • Flag that acceptance of TOS is required
    Permission
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The link was not found
    INVALID_CREDENTIALS • Invalid password or email if pin_auth is required.
    INVALID_SOURCE • The referer is invalid
    IP_BLOCKED • An IP whitelist blocked access
    CHARGE_REQUIRED • A charge is required to access this link
    DISABLED • This call is disabled for the account, you must use /link/redirect
    INVALID_PIN • An invalid PIN was entered
    PIN_LOCKOUT • Too many invalid PIN entries
    ONLY_ONE • You can pass either uuid or short_id, not both
    Notes
    top

    Description Try a link and get a redirect to the study
    URL /link/redirect
    Parameters (uuid || pin || short_id) • Id, short Id or PIN of the link
    sid • sid from /link/session (optional)
    password • Password if needed (optional)
    link_charge_id • The uuid of the prior charge against this link (optional)
    v • A JSON hash with the following keys pairs. The JSON must be encrypted (optional)
    • context_user_id - an account user id for eUnity
    Returns This call returns a 302 redirect to either the study list or study viewer or uploader page with the session setup in a cookie or in the URL if the link is valid
    Permission
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    LINK_NOT_FOUND • The link was not found
    INVALID_CREDENTIALS • Invalid password.
    EXPIRED • The link has expired
    INVALID_SOURCE • The referer is invalid
    IP_BLOCKED • An IP whitelist blocked access
    NOT_PERMITTED • The configuration of this link requires the link UI be used instead of direct access
    INVALID_PIN • An invalid PIN was entered
    PIN_LOCKOUT • Too many invalid PIN entries
    ONLY_ONE • You can pass either uuid or short_id, not both
    Notes
    • This is an alternate method to the /link/(status|session) method that requires no client side work and avoids the flash of the client side redirect for a valid link
    • Typical usage would be to get the link uuid and direct the user to https://site/api/v3/link/redirect?uuid=UUID
    • Any extra parameters will be stored for auditing
    • The parameters email_address, redirect_url, integration_key, skip_email_prompt, pin_auth and upload_match will be available in /namespace/share_code if this is an upload link and the parameters exist
    • If the link is valid but an associated study is not found an HTML "Study not found." message is returned for display in the browser.
    • If the link is valid but more than 100 studies match it an HTML "Too many studies found." message is returned for display in the browser.
    • If the link comes from a different vanity than the study an "Invalid vanity" message is returned for display in the browser
    top

    Description Construct a link from external data. This enables creation of links without other API calls
    URL /link/external
    Parameters u • The uuid of the user_account record to create the guest link as
    v • A JSON hash with the following keys pairs. The JSON must be encrypted and base64 encoded
    • filter.*=>Filter field(s) as per the /study/list to specify the study(s) to construct the link for
    • The include_priors link option value can be passed as a key
    • Any additional fields will be saved in the study audit trail and the following fields email_address, redirect_url, integration_key and skip_email_prompt will be available in /namespace/share_code if this is an upload link
    Returns This creates a link and uses the /link/redirect call to redirect the user to either the study viewer or a study list if multiple studies are found
    Errors MISSING_PARAMETERS • The u or v parameter is missing
    ACCOUNT_USER_NOT_FOUND • The account user record was not found
    ACCOUNT_NOT_SET • The account is not setup for the integration
    DECRYPT_FAILED • The decryption failed
    NOT_HASH • The v parameter is not a JSON hash
    NO_FILTER • A filter expressions was not passed
    INVALID_SOURCE • The referer is invalid
    Notes Setup and encryption details are here
    If the link is valid but an associated study is not found this returns an HTML "Study not found." error for display in the browser.

    Description Construct a link for a SSO with share to PHR account access
    URL /link/sso
    Parameters u • The uuid of the user_account record
    v • An encrypted JSON hash as per the instructions in the SSO to a PHR account with a study share section of the documentation
    Returns This link logs the user into a PHR account with any associated studies shared into it
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    ACCOUNT_USER_NOT_FOUND • The account user record was not found
    ACCOUNT_NOT_SET • The account is not setup for the integration
    DECRYPT_FAILED • The decryption failed
    NOT_HASH • The v parameter is not a JSON hash
    MISSING_INFO • User information is missing from the hash
    Notes

    Description Return the sid for a link usage
    URL /link/sid
    Parameters uuid • The uuid of the link usage
    email • Email address to associate with this usage
    Returns status • OK
    sid • sid
    Errors NOT_FOUND • The usage was not found
    Notes

    Description email the link to another person
    URL /link/mail
    Parameters sid • sid
    uuid • The uuid of the link
    email • Email address
    Returns status • OK
    Permission link_view
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The link was not found
    NOT_PERMITTED • You are not permitted to do this
    INVALID_EMAIL • Enter a valid email address
    Notes

    Description Apply a charge against the link
    URL /link/charge
    Parameters uuid • The uuid of the link
    charge_token • The stripe charge token
    Returns status • OK
    uuid • The link charge uuid
    Permission
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The link was not found
    CHARGE_FAILED • The charge failed. The error_subtype holds the details on the error
    Notes

    Description Generate a one time PIN to access the link
    URL /link/pin
    Parameters sid • sid
    uuid • The uuid of the link
    Returns status • OK
    pin • The PIN
    duration • The number of seconds the PIN is valid for
    Permission link_view link_edit_pin
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The link was not found
    Notes The PIN can we used in place of the UUID in the link session or redirect calls

    Purge commands

    Purging rules

    Description List the purging rules for the account
    URL /purge/list
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    account_id • uuid of the account
    filter.* Filters (optional)
    page.* Pagination (optional)
    sort_bySorting (optional)
    Returns status • OK
    page • The pagination status hash
    purges • An array of the purging rules. Each object holds the following same fields as the /purge/get call
    Permission purge_view
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The account can not be found
    NOT_PERMITTED • You are not permitted to view this list
    Notes
    top

    Description Add a purging rule
    URL /purge/add
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    name • Name of the purge rule
    account_id • uuid of the account the rule is for
    object • The object to be purged, Study by default (Study|Hl7) (optional)
    days_old • Studies greater than or equal to these days old will be purged
    days_old_how • How should the days old value be calculated using the 'U'pdated, 'C'reated or 'S'tudy date
    namespaces • A JSON array of namespace uuid to limit the rule to (optional)
    modalities • A JSON array of modalities to limit the rule to (optional)
    minors • Apply this rule to minors - flag (optional)
    adults • Apply this rule to adults - flag (optional)
    thin • Make the studies thin rather than deleting - flag (optional)
    archive • Archive the studies rather than deleting them - flag (optional)
    skinny • Make the studies skinny rather than deleting - flag (optional)
    owned_phr • Apply this rule to owned PHR namespaces - flag (optional)
    delete_shares • Flag to delete all the shared versions of a study in the storage namespace (optional)
    shared_from_phr • If a study was shared from a PHR namespace delete the copy in the PHR namespace as well - flag (optional)
    suspended • This rule is suspended and not applied - flag (optional)
    max_deletes • Maximum number of purges per run of the rule (optional)
    study_status_tags • A comma separated list of study status tags to purge (optional)
    global • Flag to make this a global purge rule (optional)
    Returns status • OK
    uuid • The purge uuid
    Permission purge_edit
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_LIST • The field is not a JSON array. The error_subtype holds the name of the field
    INVALID_FLAG • An invalid flag was passed. The error_subtype holds the name of the invalid flag
    VALIDATION_FAILED • A field failed validation. The error_subtype holds the name of the invalid field
    GT_ZERO • The parameter must be great than zero. The error_subtype holds the name of the parameter
    NOT_A_NUMBER • The parameter must be a valid number. The error_subtype holds the name of the parameter
    NOT_FOUND • The account or namespace was not found. The error_subtype holds the uuid of the not found item
    NOT_PERMITTED • You are not permitted to add a purge to that account
    ONLY_ONE_FLAG • You can set either the skinny, thin or archive flag, not multiple
    Notes
    • If the thin, skinny or archive flag is set the following rules will be effect
      1. The study will only be made thin, skinny or archived if it is the last or primary copy of the study
      2. To retrieve a thin study the PHI namespace needs to have a gateway setup to support the /study/retrieve workflow
      3. A study will only be archived if an up to date archive copy exists
      4. You can only set one of the flags
      5. A skinny study is one in which all the DICOM images are deleted but the attachments still remain
    • A coverpage must exists for the PHI namespace before a skinny study will be generated
    • A purge rule can only be made global by a sysadmin and the site needs to have global purge rule support enabled
    • The definition of minor is "was the study created before they were 21 years old"
    • The following parameters are applicable to Hl7 objects: account_id, name, days_old, object, suspended, max_deletes and global
    top

    Description Modify a purging rule
    URL /purge/set
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • Id of the purge rule
    name • Name of the purge rule (optional)
    days_old • Studies greater than or equal to these days old will be purged (optional)
    days_old_how • How should the days old value be calculated using the 'U'pdated, 'C'reated or 'S'tudy date (optional)
    namespaces • A JSON array of namespace uuid to limit the rule to (optional)
    modalities • A JSON array of modalities to limit the rule to) (optional)
    minors • Apply this rule to minors - flag (optional)
    adults • Apply this rule to adults - flag (optional)
    thin • Make the studies thin rather than deleting - flag (optional)
    archive • Archive the studies rather than deleting them - flag (optional)
    skinny • Make the studies skinny rather than deleting - flag (optional)
    owned_phr • Apply this rule owned PHR namespaces - flag (optional)
    delete_shares • Flag to delete all the shared versions of a study in the storage namespace (optional)
    shared_from_phr • If a study was shared from a PHR namespace delete the copy in the PHR namespace as well - flag (optional)
    suspended • This rule is suspended and not applied - flag (optional)
    max_deletes • Maximum number of purges per run of the rule (optional)
    study_status_tags • A comma separated list of study status tags to purge (optional)
    global • Flag to make this a global purge rule (optional)
    Returns status • OK
    Permission purge_edit
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    INVALID_JSON • The field is not in valid JSON format. The error_subtype holds the name of the field
    INVALID_FLAG • An invalid flag was passed. The error_subtype holds the name of the invalid flag
    VALIDATION_FAILED • A field failed validation. The error_subtype holds the name of the invalid field
    GT_ZERO • The parameter must be great than zero. The error_subtype holds the name of the parameter
    NOT_A_NUMBER • The parameter must be a valid number. The error_subtype holds the name of the parameter
    NOT_FOUND • The account or namespace was not found. The error_subtype holds the uuid of the not found item
    NOT_PERMITTED • You are not permitted to edit a purge rule
    ONLY_ONE_FLAG • You can set either the skinny, thin or archive flag, not multiple
    Notes
    top

    Description Get a purging rule
    URL /purge/get
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • Id of the purge rule
    Returns status • OK
    account_id • uuid of the account the rule is for
    object • The object to be purged
    name • Name of the purge rule
    days_old • Studies greater than or equal to these days old will be purged
    days_old_how • How should the days old value be calculated using the 'U'pdated, 'C'reated or 'S'tudy date
    namespaces • A JSON array of namespace uuid to limit the rule to
    namespaces_names • A JSON array of the namespace names to limit the rule to
    modalities • A JSON array of modalities to limit the rule to
    minors • Apply this rule to minors - flag
    adults • Apply this rule to adults - flag
    thin • Make the studies thin rather than deleting - flag
    archive • Archive the studies rather than deleting them - flag
    skinny • Make the studies skinny rather than deleting - flag
    owned_phr • Apply this rule owned PHR namespaces - flag
    shared_from_phr • If a study was shared from a PHR namespace delete the copy in the PHR namespace as well - flag
    delete_shares • Flag to delete all the shared versions of a study in the storage namespace
    suspended • This rule is suspended and not applied - flag
    max_deletes • Maximum number of purges per run of the rule
    study_status_tags • A comma separated list of study status tags to purge
    global • Is this a global purge rule
    Permission purge_view
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The rule was not found
    NOT_PERMITTED • You are not permitted to view purge rules for this account
    Notes
    top

    Description Delete a purging rule
    URL /purge/delete
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • Id of the purge rule
    Returns status • OK
    Permission purge_edit
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The rule was not found
    NOT_PERMITTED • You are not permitted to delete purge rules for this account
    Notes
    top

    Description Run purge rule(s)
    URL /purge/run
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    (rule_id || account_id) • Id of the purge rule or the account id if all purge rules should be run
    object • Limit purging to this object only (optional)
    dry_run • Do a dry run of the rule - flag
    Returns status • OK
    Permission purge_edit
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The rule or account was not found
    NOT_PERMITTED • You are not permitted to run purge rules for this account
    Notes
    • This call queues a purging job and the results are emailed to all users who are subscribed to the purge notification event for the account
    • In a dry run studies are not deleted but the rule is evaluated and notifications sent
    • The account purge rules are automatically run every night
    top

    Message commands

    Description Get a list of the users messages
    URL /message/list
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    filter.* Filters (optional)
    page.* Pagination (optional)
    sort_bySorting (optional)
    Returns status • OK
    page • The pagination status hash
    messages • An array of the messages. Each object holds the following same fields as the /message/get call
    Permission message_view
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    Notes
    • The default sort order is most recent message first
    top

    Description Send a message
    URL /message/add
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    (namespace_id || user_id || group_id || location_id || account_id || email || share_code || study_id || study_request_id || query_id) • The namespace, entity, email, share code, study, study request or query to send the message to
    body • The body of the message
    subject • The subject of the message (optional)
    parent_id • The uuid of the parent message (optional)
    Returns status • OK
    uuid • The message uuid
    Permission message_edit query_reply
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The recipient or the parent message cannot be found
    NOT_PERMITTED • You are not permitted to send to the recipient
    Notes
    top

    Description Get a message
    URL /message/get
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • Id of the message
    Returns status • OK
    user_id • Id of the user who send the message
    user_name • Name of the user who sent the message
    namespace_id • Id of the namespace the message was sent to
    namespace_name • Name of the namespace the message was sent to
    body • The message body
    subject • The message subject
    created • Created datetime stamp of the message
    is_mine • Flag if I created this message
    parent_id • The uuid of the parent message
    study_id • The uuid of study associated with this message
    query_id • The uuid of the Query associated with this message
    tags • An array of user tags associated with this object (This is only returned if the object has tags)
    Permission message_view query_view
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The message can not be found
    NOT_PERMITTED • You are not permitted to view this message
    Notes
    top

    Description Delete a message
    URL /message/delete
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • Id of the message
    Returns status • OK
    Permission message_edit
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The message can not be found
    NOT_PERMITTED • You are not permitted to delete this message
    Notes
    • You can only delete messages you created
    top

    Description Return the count of messages since the counter was reset
    URL /message/count
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    reset • Flag to reset counter back to zero (optional)
    Returns status • OK
    count • Number of messages
    Errors
    Notes
    top

    Dictionary commands

    Dictionaries are used to do a lookup and replace on records. Once defined they can be attached to accounts or namespaces and are triggered when a record is created or edited.

    Description Get a list of the account dictionaries
    URL /dictionary/list
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    account_id • The account id
    filter.* Filters (optional)
    page.* Pagination (optional)
    sort_bySorting (optional)
    Returns status • OK
    page • The pagination status hash
    dictionaries • An array of the dictionaries. Each object holds the following same fields as the /dictionary/get call
    Permission dictionary_view
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The account can not be found
    NOT_PERMITTED • You are not permitted to do this
    Notes
    top

    Description Add a dictionary
    URL /dictionary/add
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    account_id • The account id
    name • The dictionary name
    object • Object this is applied against (Study|Order|User_account|Case|Patient)
    lookup • A JSON array of field names that will be concatenated and MD5 hashed for the dictionary lookup value
    replace • A JSON array of the field names that will be replaced for a successful lookup
    case_sensitive • Flag if the dictionary lookup is case sensitive or not
    sequence • An integer value. Dictionaries are processed from low number to high number. This is of higher priority than the same field of the dictionary attachments (optional)
    Returns status • OK
    uuid • The dictionary uuid
    Permission dictionary_edit
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The account can not be found
    NOT_PERMITTED • You are not permitted to do this
    NOT_LIST • The field is not a JSON array. The error_subtype holds the name of the field
    INVALID_FLAG • An invalid flag was passed. The error_subtype holds the name of the invalid flag
    INVALID_FIELD • An invalid field name was passed. The error_subtype holds the name of the invalid field
    INVALID_OBJECT • An invalid object was passed
    Notes
    • The lookup and replace field(s) can be either standard field names or the UUID of a custom field
    top

    Description Edit a dictionary
    URL /dictionary/set
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • The dictionary id
    name • The dictionary name
    sequence • An integer value. Dictionaries are processed from low number to high number. This is of higher priority than the same field of the dictionary attachments (optional)
    Returns status • OK
    Permission dictionary_edit
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The dictionary can not be found
    NOT_PERMITTED • You are not permitted to do this
    Notes
    top

    Description Get a dictionary
    URL /dictionary/get
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • The dictionary id
    Returns status • OK
    uuid • The dictionary id
    account_id • The account id
    name • The dictionary name
    object • The object this is applied against
    lookup • A JSON array of field names that will be concatenated and MD5 hashed for the dictionary lookup value
    replace • A JSON array of the field names to replace for a successful lookup
    case_sensitive • Flag if the dictionary is case sensitive or not
    sequence • An integer value. Dictionaries are processed from low number to high number. This is of higher priority than the same field of the dictionary attachments
    attachments • An array of the attachments the dictionary has. Each record has the following fields
    * uuid • Id of the attachment
    * account_id|namespace_id • Id of the account or namespace it is attached to
    * name • Name of the account or namespace it is attached to
    * sequence • An integer value. Attachments are processed from low number to high number
    * skip_if_lookup_unchanged • Flag to skip the lookup if the lookup field(s) are un-changed
    * skip_if_replace_has_value • Flag to skip the lookup if the replace field already has a value
    * add_if_no_match • Flag to add the lookup and replace values to the dictionary if no match occurs
    * approve_if_match • Approve the object if there was a match (optional)
    Permission dictionary_view
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The dictionary can not be found
    NOT_PERMITTED • You are not permitted to do this
    Notes
    top

    Description Delete a dictionary
    URL /dictionary/delete
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • The dictionary id
    Returns status • OK
    Permission dictionary_edit
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The dictionary can not be found
    NOT_PERMITTED • You are not permitted to do this
    Notes
    top

    Description List all the entries in a dictionary
    URL /dictionary/entries
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • The dictionary id
    lookup • Only return the entry for the optional lookup entry (optional)
    Returns status • OK
    entries • An array of the entries with the following fields.
    * lookup • The JSON array of the lookup values
    * replace • The JSON array of the replacement fields
    * md5 • The md5 of the lookup values
    * regexp • The regexp ordering number
    Permission dictionary_view
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The dictionary can not be found
    NOT_PERMITTED • You are not permitted to do this
    NOT_LIST • The field is not a JSON array. The error_subtype holds the name of the field
    Notes
    top

    Description Add or update an entry to the dictionary
    URL /dictionary/entry/add
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • The dictionary id
    lookup • The JSON array of the lookup values to add. Alternatively a regular expression if the regexp parameter is passed
    replace • The JSON array of the replacement field values
    regexp • An integer value that indicates that this entry is a regular expression (optional)
    Returns status • OK
    Permission dictionary_edit
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The dictionary can not be found
    NOT_PERMITTED • You are not permitted to do this
    NOT_LIST • The field is not a JSON array. The error_subtype holds the name of the field
    INVALID_LOOKUP • The lookup does not have the required number of fields
    INVALID_REGEXP • Invalid regular expression. The error_subtype holds the invalid regexp.
    INVALID_INTEGER • Invalid integer. The error_subtype holds the invalid integer.
    Notes
    • Replacement values can be either literal values or a Text::Template expression. For example if this is a study dictionary and the replacement value is {$patient_name} the replace value will be the current value of the patient_name field
    • The following functions are available in the replace Text::Template.
      • full_years_between(date1, date2) • Calculate how many full years passed between the passed dates
      • dicom_to_date(dicom_date) • Convert a DICOM date to a date in the format used by the API
      • date_interval(timestamp1, timestamp2, units, [timezone]) • calculate the length of the time interval between the two timestamps (dates are also accepted) expressed in units. Supported units: year, month, day, hour, minute, second
    • Customfields can get accessed from the template as follows {$customfield_h{'UUID_OF_CUSTOM_FIELD'}}
    • Regular expressions are evaluated against the space concatenated value of the lookup field(s).
    • Regular expressions are evaluated if there is no match against the normal JSON entries
    • Regular expressions are evaluated in order from low to high regexp number and evaluation stops at the first match
    • To wildcard match any lookup value use this regular expression /.*/
    • To apply a entry only if the record is new or the field is empty use this regular expression /^\s*$/
    • The __COUNTER-XXX__ , __LCOUNTER-XXX__ , __MD5_HASH__ and __MD5_COUNTER__ values as documented in /namespace/anonymize are supported as a replacement value. This does not need to be in a Text::Template expression and if it is it should be quoted as a literal string.
    top

    Description Delete an entry form the dictionary
    URL /dictionary/entry/delete
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • The dictionary id
    lookup • The JSON array of the lookup values or the regular expression to delete
    Returns status • OK
    Permission dictionary_edit
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The dictionary or entry can not be found
    NOT_PERMITTED • You are not permitted to do this
    NOT_LIST • The field is not a JSON array. The error_subtype holds the name of the field
    Notes
    top

    Description Attach a dictionary to an account or namespace
    URL /dictionary/attach
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • The dictionary id
    (account_id || namespace_id) • uuid of the account or namespace to the dictionary to
    sequence • An integer value. Attachments are processed from low number to high number (optional)
    skip_if_lookup_unchanged • Flag to skip the lookup if the lookup field(s) are un-changed (optional)
    skip_if_replace_has_value • Flag to skip the lookup if the replace field already has a value (optional)
    add_if_no_match • Flag to add the lookup and replace values to the dictionary if no match occurs (optional)
    approve_if_match • Approve the object if there was a match (optional)
    run_once • Flag to make dictionary apply only once per object (optional)
    delay • An integer number of seconds to delay the dictionary application (optional)
    global_counter • A flag if you want the counter to run against the account namespace instead of the object namespace (optional)
    Returns status • OK
    uuid • Id of the attachment
    Permission dictionary_edit
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The dictionary or entry can not be found
    NOT_PERMITTED • You are not permitted to do this
    Notes
    • Once a dictionary is attached it will be checked every time a record in the account or namespace is created or edited
    • If a dictionary is attached to an account it will be applied to all the namespaces in the account
    • The add_if_no_match logic is not triggered if any of the skip conditions are true or the replace field is empty
    • If there is a customfield called approved_by_name in the account then it will be populated with 'System' string for the Study in event of auto approval (the approve_if_match flag)
    top

    Description Modify a dictionary attachment
    URL /dictionary/attach/set
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • The dictionary attach id
    sequence • An integer value. Attachments are processed from low number to high number (optional)
    skip_if_lookup_unchanged • Flag to skip the lookup if the lookup field(s) are un-changed (optional)
    skip_if_replace_has_value • Flag to skip the lookup if any of the replace fields already has a value (optional)
    add_if_no_match • Flag to add the lookup and replace values to the dictionary if no match occurs (optional)
    approve_if_match • Approve the object if there was a match (optional)
    run_once • Flag to make dictionary apply only once per object (optional)
    delay • An integer number of seconds to delay the dictionary application (optional)
    global_counter • A flag if you want the counter to run against the account namespace instead of the object namespace (optional)
    Returns status • OK
    Permission dictionary_edit
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The dictionary attachment can not be found
    NOT_PERMITTED • You are not permitted to do this
    Notes
    top

    Description Detach a dictionary
    URL /dictionary/detach
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • The dictionary attach id
    Returns status • OK
    Permission dictionary_edit
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The dictionary attachment can not be found
    NOT_PERMITTED • You are not permitted to do this
    Notes
    top

    Report commands

    Description Get the status of the report
    URL /report/status
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    report_id • The report id
    Returns status • OK
    percent • The percent complete the report is. An integer from 0 to 100
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The report can not be found
    REPORT_FAILED • The report failed
    Notes When the report is 100 percent complete download it using the /report/zip command
    top

    Description Download the zipped report
    URL /report/zip
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    report_id • The report id
    Returns A binary stream of the zipped data with a content type of application/zip
    Errors [404] • The report can not be found or is not available for download
    Notes
    • Reports are expired either 4 hours after creation or 10 minutes after download
    top

    Meeting commands

    A meeting is when a presenters actions in the viewer are broadcast to the meeting participants

    Description Create a meeting
    URL /meeting/add
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    (study_id || study_uid && storage_namespace && phi_namespace) • The uuid of the study or the storage triplet
    name • Title of the meeting
    state • State of the meeting
    Returns status • OK
    uuid • The uuid of the meeting
    Permission meeting_edit
    Errors NOT_FOUND • The study can not be found
    NOT_PERMITTED • You are not permitted to create a meeting for the study
    Notes
    • A channel called meeting.MEETING_UUID is created
    • The meetings for a study are returned in the /study/get call
    top

    Description Modify a meeting
    URL /meeting/set
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • UUID of the meeting
    name • Title of the meeting (optional)
    state • State of the meeting (optional)
    Returns status • OK
    Permission meeting_edit
    Errors NOT_FOUND • The meeting can not be found
    NOT_PERMITTED • You are not permitted to modify the meeting
    Notes
    top

    Description Get a meeting
    URL /meeting/get
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • UUID of the meeting
    Returns status • OK
    uuid • UUID of the meeting
    name • Title of the meeting
    state • Current state of the meeting
    user_id • User who created the meeting
    user_name • The user name
    link_id • UUID of the associated link
    Permission meeting_view
    Errors NOT_FOUND • The meeting can not be found
    NOT_PERMITTED • You are not permitted to get the meeting
    Notes
    top

    Description Join a meeting
    URL /meeting/join
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • UUID of the meeting
    Returns The fields from /meeting/get
    Permission meeting_view
    Errors NOT_FOUND • The meeting can not be found
    NOT_PERMITTED • You are not permitted to do this
    Notes
    top

    Description Leave the meeting
    URL /meeting/leave
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • UUID of the meeting
    Returns status • OK
    Permission
    Errors
    Notes
    top

    Description List of meeting attendees
    URL /meeting/roster
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • UUID of the meeting
    Returns status • OK
    users • JSON array containing the following for each attendee:
    * uuid • User id
    * name • The user name
    * presenter • 1/0 Flag if they are the presenter
    Permission meeting_view
    Errors NOT_FOUND • The meeting can not be found
    NOT_PERMITTED • You are not permitted to do this
    Notes
    top

    Description Change the meeting presenters
    URL /meeting/presenter
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • UUID of the meeting
    user_id • UUID of the user to make the presenter
    Returns status • OK
    Permission meeting_edit
    Errors NOT_FOUND • The meeting can not be found
    NOT_PERMITTED • You are not permitted to do this
    NOT_ATTENDING • The user is not attending the meeting
    Notes
    top

    Description A keep alive ping by the meeting owner
    URL /meeting/ping
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • UUID of the meeting
    Returns status • OK
    Permission meeting_view
    Errors NOT_FOUND • The meeting can not be found
    Notes
    • The meeting will end and be deleted if a ping has not being received within the last 60 seconds
    • Other users can ping with no negative effects
    top

    Description Delete a meeting
    URL /meeting/delete
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • UUID of the meeting
    Returns status • OK
    Permission meeting_edit
    Errors NOT_FOUND • The meeting can not be found
    NOT_PERMITTED • You are not permitted to delete the meeting
    Notes
    • Meetings are automatically deleted 30 minutes after the last state change is sent
    top

    Description Send an event to a meeting
    URL /meeting/events/add
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • UUID of the meeting
    event • Event to send to the meeting
    Returns status • OK
    Permission meeting_edit
    Errors NOT_FOUND • The meeting can not be found
    NOT_PERMITTED • You are not permitted to do this
    Notes
    top

    Appointment commands

    Description Add a appointment
    URL /appointment/add
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    account_id • uuid of the account to add them to
    patient_id • Id of the patient to create the appointment for
    user_id • Id of the user to create the appointment for (optional defaults to current user)
    description • Description of the appointment (optional)
    start_time • Start date and time of the appointment
    end_time • End date and time of the appointment
    customfield-{CUSTOMFIELD_UUID} • Custom field(s) (optional)
    Returns status • OK
    uuid • The uuid
    Permission appointment_edit
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The object was not found. The error_subtype holds the type of object not found
    NOT_PERMITTED • You are not permitted to add a appointment to the account
    INVALID_CUSTOMFIELD • Invalid custom field(s) name or value were passed. The error_subtype holds an array of the error details
    INVALID_DATE_TIME • The timestamp is invalid
    INVALID_RANGE • An invalid time range was specified
    Notes
    • The start and end times must be in 24hr YYYY-MM-DD HH:MM:SS format
    top

    Description Get an appointment
    URL /appointment/get
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • The appointment uuid
    Returns status • OK
    uuid • The appointment uuid
    patient_id • Id of the patient
    patient_name • Name of the patient
    first • First name of the patient
    last • Last name of the patient
    patient_mrn • MRN of the patient
    user_id • Id of the user
    user_name • Name of the user
    description • Description of the appointment
    start_time • Start date and time of the appointment
    end_time • End date and time of the appointment
    customfields • An array of the custom fields associated with this appointment. Each object has the following fields (This is only returned if the group has custom fields)
    external_id • The appointment ID in a placer/filler Hl7 application
    appointment_status • Status of the appointment (A|C|D) - Active, Cancelled, Discontinued
    Permission appointment_view
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The appointment can not be found
    NOT_PERMITTED • You are not permitted to view this appointment
    Notes
    top

    Description Edit a appointment
    URL /appointment/set
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • The appointment uuid
    user_id • Id of the user
    description • Description of the appointment
    start_time • Start date and time of the appointment
    end_time • End date and time of the appointment
    customfields • An array of the custom fields associated with this appointment. Each object has the following fields (This is only returned if the group has custom fields)
    status • Status of the appointment (A|C|D) - Active, Cancelled, Discontinued (optional)
    Returns status • OK
    Permission appointment_edit
    Errors NOT_FOUND • The appointment can not be found
    NOT_PERMITTED • You are not permitted to edit the appointment
    INVALID_CUSTOMFIELD • Invalid custom field(s) name or value were passed. The error_subtype holds an array of the error details
    INVALID_DATE_TIME • The timestamp is invalid
    INVALID_RANGE • An invalid time range was specified
    Notes
    top

    Description Delete a appointment
    URL /appointment/delete
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • The appointment uuid
    Returns status • OK
    Permission appointment_edit
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The appointment can not be found
    NOT_PERMITTED • You are not permitted to delete the appointment
    Notes
    top

    Description Get a list of the appointments in the account
    URL /appointment/list
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    account_id • uuid of the account
    filter.* Filters (optional)
    page.* Pagination (optional)
    sort_bySorting (optional)
    Returns status • OK
    page • The pagination status hash
    appointments • An array of the appointments. Each object holds the same fields as the /appointment/get call
    Permission appointment_view
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The account can not be found
    NOT_PERMITTED • You are not permitted to view appointments in this account
    Notes
    • The default sort order is by start_time
    top

    Training commands

    Description Get the training forms to be done
    URL /training/todo
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    Returns status • OK
    account_id • Id of the account the training is for
    account_name • The name of the account the training is for
    group_number • The group number
    group_description • The description for the group of forms
    forms • JSON array containing the forms to be done
    * form_number • The formstack id of the form
    * form_description • The form description
    Errors ALL_DONE • No more training is needed
    Notes
    top

    Description Mark the form as done
    URL /training/done
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    account_id • Id of the account the training is for
    form_number • The formstack id of the form
    additional_parameters** • Additional parameters will be logged as part of the TRAINING_DONE user audit event
    Returns status • OK
    next • If the user has more training this will contain a hash of the fields from /training/todo
    Errors NOT_FOUND • The form was not found for this user
    Notes
    top

    RSNA commands

    Description Retrieve RSNA Image Share exam
    URL /rsna/phr_study
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    exam_id • RSNA-generated exam ID/token/email (DEPRECATED June 2015 - use access_code)
    dob • Patient's date of birth YYYYMMDD
    pin • RSNA-generated PIN (DEPRECATED June 2015 - use access_code)
    access_code • RSNA-generated access code
    namespace • Namespace where retrieved exam will be stored
    clearinghouse • Clearinghouse to retrieve exam from: test or blank (optional)
    Returns studies • JSON array containing the following for each study in the exam:
    * study_uuid • The study_uuid
    * study_uid • The study_uid
    * report • Is a report associated to the study (0 = no, 1 = yes)
    Errors EXAM_NOT_FOUND • Exam cannot be found in designated RSNA Image Share clearinghouse
    ERROR_CREATING_STUDY • An unknown error was received when study was added via /study/add
    Notes The exam is retrieved in a background job. Poll /api/v3/storage/study/{namespace}/{study_uid}/schema to determine when the retrieval is complete.
    top

    NPI commands

    Description Find an NPI number
    URL /npi/find
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    last • Last name
    state • 2 letter state code
    first • First name (optional)
    zip • Zip code (optional)
    Returns providers • JSON array containing the following fields for each provider:
    * npi • The NPI
    * name • The providers name
    * city • The city the provider is located in
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    LOOKUP_FAILED • The lookup against the NPI registry failed
    Notes
    top

    Site commands

    Description Get a list of the sites in the account
    URL /site/list
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    account_id • uuid of the account
    filter.* Filters (optional)
    page.* Pagination (optional)
    sort_bySorting (optional)
    Returns status • OK
    page • The pagination status hash
    sites • An array of the sites. Each object holds the same fields as the /site/get call
    Permission site_view
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The account can not be found
    NOT_PERMITTED • You are not permitted to view sites in this account
    Notes
    top

    Description Add a site
    URL /site/add
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    account_id • uuid of the account to add them to
    name • The sites name
    site_id • The site to attach them to as a satellite site (optional)
    country • The country of the site (optional)
    state • The state code of the site (optional)
    zip • The zip code of the site (optional)
    city • The city the site is located in (optional)
    address1 • Address line 1 of the site (optional)
    address2 • Address line 2 of the site (optional)
    Returns status • OK
    uuid • The uuid
    Permission site_add
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The object was not found. The error_subtype holds the type of object not found
    NOT_PERMITTED • You are not permitted to add a site to the account
    DIFFERENT_ACCOUNTS • The site and satellite sites are from different accounts
    NESTED_SATELLITE_SITE • The satellite site has its satellite sites
    Notes
    top

    Description Edit a site
    URL /site/set
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • The site uuid
    name • The sites name (optional)
    site_id • The site to attach them to as a satellite site (optional)
    country • The country of the site (optional)
    state • The state code of the site (optional)
    zip • The zip code of the site (optional)
    city • The city the site is located in (optional)
    inactive • Flag if the site is actively used. Might be used to filter out inactive sites (optional)
    address1 • Address line 1 of the site (optional)
    address2 • Address line 2 of the site (optional)
    Returns status • OK
    Permission site_edit
    Errors NOT_FOUND • The site can not be found
    NOT_PERMITTED • You are not permitted to edit the site
    MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    DIFFERENT_ACCOUNTS • The site and satellite sites are from different accounts
    NESTED_SATELLITE_SITE • The satellite site has its satellite sites
    INVALID_FLAG • An invalid flag was passed. The error_subtype holds the name of the invalid flag
    Notes
    top

    Description Get a site
    URL /site/get
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • The site uuid
    Returns status • OK
    uuid • The site uuid
    name • The sites name
    site_id • The site to attach them to as a satellite site
    country • The country of the site
    state • The state code of the site
    zip • The zip code of the site
    city • The city the site is located in
    address1 • Address line 1 of the site
    address2 • Address line 2 of the site
    account_id • UUID of the account
    satellite_sites • An array of the satellite sites. Each object has the following fields.
    * uuid • Site Id
    * name • Site name
    trials • An array of the associated trials (groups). Each object has the following fields.
    * uuid • Group Id
    * name • Group name
    * account_name • The group's account (Trial study) name
    * inactive • Flag if the trial is inactive (corresponds to the group's site_inactive flag)
    * qualified • Flag if the trial is qualified (corresponds to the group's site_qualified flag)
    inactive • Flag if the site is actively used. Might be used to filter out inactive sites
    Permission site_view
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The site can not be found
    NOT_PERMITTED • You are not permitted to view this site
    Notes
    top

    Description Delete a site
    URL /site/delete
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • The site uuid
    Returns status • OK
    Permission site_delete
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The site can not be found
    NOT_PERMITTED • You are not permitted to delete the site
    Notes
    top

    Description Add a user to a site contact list
    URL /site/user/add
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • The site id
    (user_id || email) • Id or email of the user
    role_name • The role name that should be used for the user in groups
    site_email • Users contact email for the site. Only set this if it is different than the users login email (optional).
    Returns status • OK
    Permission site_user_add
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The site can not be found
    NOT_PERMITTED • You are not permitted to add users to the site
    USER_NOT_FOUND • The user was not found
    ALREADY_EXISTS • The user is in the contact list already
    Notes
    top

    Description Edit a site contact list record
    URL /site/user/set
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • The site id
    user_id • Id of the user
    role_name • The role name that should be used for the user in groups (optional)
    site_email • Users contact email for the site. Only set this if it is different than the users login email (optional).
    Returns status • OK
    Permission site_user_edit
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The site can not be found
    NOT_PERMITTED • You are not permitted to edit users in the site
    USER_NOT_FOUND • The user was not found in the contact list
    Notes
    top

    Description List the users in a site contact list
    URL /site/user/list
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • The site id
    filter.* Filters (optional)
    page.* Pagination (optional)
    sort_bySorting (optional)
    Returns status • OK
    page • The pagination status hash
    users • An array of the users. Each object holds the following fields
    * user_id • The user id
    * user_name • The user name
    * user_email • The user email
    * role_name • The users role name
    * site_email • Users contact email for the site.
    * groups • An array of trials the user is a member of. Each object in the array will have the following fields
    ** group_name • The trial site name
    ** group_account_name • The trial account name
    ** group_role_name • The role name of the user in the trial site
    Permission site_user_view
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The site can not be found
    NOT_PERMITTED • You are not permitted list the site contact list
    Notes
    top

    Description Remove a user from a site contact list
    URL /site/user/delete
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • The site id
    user_id • Id of the user
    Returns status • OK
    Permission site_user_delete
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The site can not be found
    USER_NOT_FOUND • The user can not be found in the contact list
    NOT_PERMITTED • You are not permitted to delete users from the contact list
    Notes
    top

    Scanner commands

    Description Get a list of the scanners in the account
    URL /scanner/list
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    account_id • uuid of the account
    filter.* Filters (optional)
    page.* Pagination (optional)
    sort_bySorting (optional)
    Returns status • OK
    page • The pagination status hash
    scanners • An array of the scanners. Each object holds the same fields as the /scanner/get call
    Permission scanner_view
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The account can not be found
    NOT_PERMITTED • You are not permitted to view scanners in this account
    Notes
    top

    Description Add a scanner
    URL /scanner/add
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    site_id • Id of the site to add them to
    name • Name of the scanner
    modality • Modality (optional)
    serial_no • The serial number of the scanner (optional)
    manufacturer • The manufacturer of the scanner (optional)
    model • The scanner model (optional)
    customfield-{CUSTOMFIELD_UUID} • Custom field(s) (optional)
    Returns status • OK
    uuid • The uuid
    Permission scanner_add
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The object was not found. The error_subtype holds the type of object not found
    NOT_PERMITTED • You are not permitted to add a scanner to the account
    Notes
    top

    Description Edit a scanner
    URL /scanner/set
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • The scanner uuid
    name • Name of the scanner (optional)
    modality • Modality (optional)
    serial_no • The serial number of the scanner (optional)
    manufacturer • The manufacturer of the scanner (optional)
    model • The scanner model (optional)
    customfield-{CUSTOMFIELD_UUID} • Custom field(s) (optional)
    Returns status • OK
    Permission scanner_edit
    Errors NOT_FOUND • The scanner can not be found
    NOT_PERMITTED • You are not permitted to edit the scanner
    MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    Notes
    top

    Description Get a scanner
    URL /scanner/get
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • The scanner uuid
    Returns status • OK
    uuid • The scanner uuid
    name • The scanner name
    modality • The scanner modality
    serial_no • The serial number of the scanner
    manufacturer • The manufacturer of the scanner
    model • The scanner model
    customfields • An array of the custom fields associated with this scanner. Each object has the following fields (This is only returned if the scanner has custom fields)
    validated_for • An array of the trials (groups) the scanner is validated for. Each object has the following fields.
    * uuid • Group Id
    * name • Group name
    * study_uid • The study UID used in the process of scanner validation for the group
    Permission scanner_view
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The scanner can not be found
    NOT_PERMITTED • You are not permitted to view the scaner
    Notes
    top

    Description Delete a scanner
    URL /scanner/delete
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • The scanner uuid
    Returns status • OK
    Permission scanner_delete
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The scanner can not be found
    NOT_PERMITTED • You are not permitted to delete the scanner
    Notes
    top

    Query commands

    Description Get a list of the queries
    URL /query/list
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    filter.* Filters (optional)
    page.* Pagination (optional)
    sort_bySorting (optional)
    Returns status • OK
    page • The pagination status hash
    queries • An array of the queries. Each object holds the same fields as the /query/get call
    Permission query_view
    Errors
    Notes
    top

    Description Count the user queries needing attention
    URL /query/count
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    Returns status • OK
    count_assigned • The number of queries assigned to the current user, but not seen yet
    count_unassigned • The number of Queries not assigned to a specific user
    count_unread • The number of Queries having new messages
    Permission
    Errors
    Notes
    top

    Description Add a query
    URL /query/add
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    group_id • Id of the group associated to a trial site to add them to
    subject • Subject line of the query (optional)
    body • The query body (optional)
    query_type • The query type (optional)
    owner_namespace_id • The namespace owning the query. The account default from the default_query_owner_namespace account setting is used if not passed through the parameter (optional)
    owner_user_id • The user owning the query (optional)
    created_study_id • The study the query is related to (optional)
    recipients • JSON array of the user UUIDs to add to the query as recipients (optional)
    notify • Comma delimited list of the emails to be notified of the query events (optional)
    customfield-{CUSTOMFIELD_UUID} • Custom field(s) (optional)
    Returns status • OK
    uuid • The uuid
    Permission query_add
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The object was not found. The error_subtype holds the type of object not found
    NOT_PERMITTED • You are not permitted to add a query to the namespace
    INVALID_GROUP • The group passed is not linked to a trial site
    NOT_CONFIGURED • The group's account is not configured
    INVALID_TYPE • The passed type is not valid for the group and patient arm
    Notes The query is created with the first status defined for the acount using the query_status_tags account setting
    top

    Description Edit a query
    URL /query/set
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • The query uuid
    query_type • The query type (optional)
    group_id • Id of the group associated to a trial site to add them to. Group change is not allowed for study-related queries (optional)
    subject • Subject line of the query (optional)
    body • The query body (optional)
    owner_user_id • The user owning the query (optional)
    recipients • JSON array of the user UUIDs to add to the query as recipients (optional)
    notify • Comma delimited list of the emails to be notified of the query events (optional)
    customfield-{CUSTOMFIELD_UUID} • Custom field(s) (optional)
    Returns status • OK
    Permission query_edit
    Errors NOT_FOUND • The object was not found. The error_subtype holds the type of object not found
    NOT_PERMITTED • You are not permitted to edit the query
    MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    STUDY_QUERY_GROUP_CHANGE • Cannot change group for the study-related query
    INVALID_GROUP • The group passed is not linked to a trial site or is from another account
    NOT_CONFIGURED • The group's account is not configured
    INVALID_TYPE • The passed type is not valid for the group and patient arm
    Notes
    top

    Description Get a Query
    URL /query/get
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • The query uuid
    Returns status • OK
    uuid • The query uuid
    query_type • The query type
    query_status • The query status tag
    subject • Subject line of the query
    body • The query body
    query_no • The query number
    created • Date and time the query was created
    owner_namespace_id • The namespace UUID owning the query
    owner_namespace_name • The owning namespace's name
    owner_user_id • The user owning user's UUID
    owner_user_name • The user owning user's name
    owner_user_email • The user owning user's email
    created_study_id • The study the query was associated to during query creation
    study_uid • The study UID the query is related to
    study_storage_namespace • The study storage namespace the query is related to
    study_modality • The related study modality
    account_id • Account ID of the trial site
    group_id • Id of the group associated to a trial site
    group_name • Name of the group associated to a trial site
    visit_name • The visit name defined by a study named custom field called trial_visit_name
    project_tims • The project TIMS defined by a study named custom field called trial_project_tims
    subject_number • The subject number
    attachments • An array of the query attachments. Each object has the following fields.
    * uuid • Attachment Id
    * created • Date and time the attachment was created
    * created_by_id • UUID of the user who added the attachment
    * length • The attachment size in bytes
    * type • The attachment MIME-type
    * name • The attachment display name
    * url • The URL to download the attachment
    * headers • The headers to include in the download request. For the headers format see /query/attachment/add
    * thumbnail_url • The URL to download the attachment thumbnail. Returned when there is a thumbnail for the attachment
    * thumbnail_headers • The headers to include in the thumbnail download request. Returned when there is a thumbnail for the attachment
    --- The following fields are only returned if the user has query_view_meta permission ---
    notify • Comma delimited list of the emails to be notified of the query events
    recipients • JSON array of the study recipients. Each array element is a HASH with two keys: uuid and email
    last_reply • Date and time when the last reply was added
    last_status_change • Date and time when the query status changes for the last time
    last_reminder • Date and time when the last reminder was sent out for the query
    escalation_count_since_status_change • The escalation count since the last status change for the query
    reminder_count_since_reply • The count o remiders sent out since the last reply
    patient_id • The patient id
    patient_mrn • The patient MRN
    patient_name • The patient name
    patient_arm • The patient arm (defined by the trial_arm named customfield)
    tags • An array of user tags associated with this object (This is only returned if the object has tags)
    customfields • An array of the custom fields associated with this query. Each object has the following fields (This is only returned if the query has custom fields)
    unread_message_count • Number of unread messages in the Query
    created_by_name • Name of the user who created the query
    created_by_email • Email of the user who created the query
    created_by_type • Type of user who created the query
    Permission query_view query_view_meta
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The query can not be found
    NOT_PERMITTED • You are not permitted to view the query
    Notes
    top

    Description Delete a query
    URL /query/delete
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • The query uuid
    Returns status • OK
    Permission query_delete
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The query can not be found
    NOT_PERMITTED • You are not permitted to delete the query
    Notes
    top

    Description Mark query messages seen
    URL /query/seen
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • The query uuid
    message_id • ID of the last seen message (optional)
    Returns status • OK
    Permission query_view
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The query can not be found
    NOT_PERMITTED • You are not permitted to view the query
    Notes
    top

    Description Set the status of a query
    URL /query/status/set
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • Query uuid
    old • The old query status value
    new • The new query status value
    Returns status • OK
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The query can not be found
    NOT_PERMITTED • You are not permitted to set the status for this query
    STALE • The query status you have is stale
    INVALID_TAG • The query status new value is not a valid value
    Notes
    top

    Description Add an attachment to a query
    URL /query/attachment/add
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    query_id • Query UUID
    name • The attachment display name
    length • The attachment size in bytes
    type • The attachment MIME-type
    thumbnail_length • The attachment's thumbnail MIME-type (optional)
    thumbnail_type • The attachment's thumbnail size in bytes (optional)
    Returns status • OK
    uuid • The attachment uuid
    upload_url • The URL to use for content upload
    upload_headers • The headers to include in the upload request
    thumbnail_upload_url • The URL to use for content upload
    thumbnail_upload_headers • The headers to include in the upload request
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The query can not be found
    NOT_PERMITTED • You are not permitted to add attachments to this query
    TOO_BIG • The attachment size exceeds the limit
    NOT_CONFIGURED • The Azure keys are not configured
    Notes
    • thumbnail_length and thumbnail_type parameters must be used together.
    • The request to put file contents should be of type PUT and include all the headers provided with the call result.
    • The headers in the response are encoded as an array of two-element arrays, the first element is the name of a header, the second is the header's value.
    • Current file size limit is 10MB
    • thumbnail_upload_url and thumbnail_upload_headers are returned when thumbnail-related parameters are passed.
    top

    Description Finish a query attachment upload
    URL /query/attachment/commit
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • Attachment UUID
    Returns status • OK
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The query attachment can not be found
    NOT_PERMITTED • You are not the creator of the query attachment
    NOT_PHANTOM • The attachment is not phantom
    NOT_CONFIGURED • The Azure keys are not configured
    Notes
    top

    Description Delete an attachment from the query
    URL /query/attachment/delete
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • Attachment UUID
    Returns status • OK
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The query attachment can not be found
    NOT_PERMITTED • You are not permitted to delete attachments from this query
    THUMBNAIL • The attachment is a thumbnail for the attachment, Use the main attachment to delete the thumbnail
    NOT_CONFIGURED • The Azure keys are not configured
    Notes
    top

    QC Task commands

    Description Add a QC Task
    URL /qctask/add
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    (account_id || namespace_id) • uuid of an account to attach the QC task to, account can be referred to by using a namespace_id from the account
    assigned_group • The assigned group reference (optional)
    user_id • Id of the user to assign the QC Task to (optional)
    query_id • Id of the query to associate the QC Task to (optional)
    priority • QC Task priority
    customfield-{CUSTOMFIELD_UUID} • Custom field(s) (optional)
    message • Explanatory message for the QC Task (optional)
    study_id • The associated study
    queries • A JSON array of the query uuid(s) associate the QC Task to (optional)
    qctask_status • Status of the QC task, Open by default (Open|InProgress|Closed) (optional)
    Returns status • OK
    uuid • The uuid
    Permission qctask_add
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The object was not found. The error_subtype holds the type of object not found
    NOT_PERMITTED • You are not permitted to assign a QC Task in the account
    NAMESPACE_NOT_ACCOUNT_RELATED • The assigned namespace is not associated with an Account (it is a PHR account)
    OWNING_NAMESPACE_FROM_ANOTHER_ACCOUNT • The Query's account differs from the passed one
    INVISIBLE_QUERY • The passed Query is not visible to the user the QC Task is being assigned to
    INVALID_INTEGER • An invalid integer was passed. The error_subtype holds the name of the invalid integer
    Notes
    top

    Description Edit a QC Task
    URL /qctask/set
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • The QC Task uuid
    assigned_group • The assigned group reference (optional)
    user_id • Id of the user to assign the QC Task to (optional)
    priority • QC Task priority (optional)
    customfield-{CUSTOMFIELD_UUID} • Custom field(s) (optional)
    message • Explanatory message for the QC Task (optional)
    study_id • The associated study (optional)
    queries • A JSON array of the query uuid(s) associate the QC Task to (optional)
    Returns status • OK
    Permission qctask_edit qctask_prioritize
    Errors NOT_FOUND • The object was not found. The error_subtype holds the type of object not found
    NOT_PERMITTED • You are not permitted to edit the QC Task
    MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    INVALID_INTEGER • An invalid integer was passed. The error_subtype holds the name of the invalid integer
    INVISIBLE_QUERY • The passed Query is not visible to the user the QC Task is being assigned to
    OWNING_NAMESPACE_FROM_ANOTHER_ACCOUNT • The Query's account differs from the passed one
    Notes
    top

    Description Get a list of the QC Tasks the user can view
    URL /qctask/list
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    closed_study_queries • Flag to return only QC tasks for studies with no open Queries associated with them (optional)
    filter.* Filters (optional)
    page.* Pagination (optional)
    sort_bySorting (optional)
    Returns status • OK
    page • The pagination status hash
    qctasks • An array of the QC tasks. Each object holds the same fields as the /qctask/get call
    Permission qctask_view
    Errors
    Notes
    top

    Description Get a QC Task
    URL /qctask/get
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • The QC Task uuid
    Returns namespace_id • Id of the namespace assigned to the QC Task
    user_id • Id of the QC task assignee
    user_name • Name of the QC task assignee
    priority • QC Task priority
    customfields • An array of the custom fields associated with this QC Task. Each object has the following fields (This is only returned if the QC Task has custom fields)
    message • Explanatory message for the QC Task
    created • Date and time the QC Task was created
    study_id • The associated study
    study • The associated study. Returned only when expand.qctask=["study"] parameter is passed
    queries • An array of the associated query uuid(s)
    qctask_status • Status of the QC task
    site_name • The trial site name
    qctask_no • The QC task number
    assigned_group • The assigned group reference
    Permission qctask_view
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The QC Task can not be found
    NOT_PERMITTED • You are not permitted to view the QC Task
    Notes
    • The nested study object can be expanded in the API response by passing expand.qctask=["study"] parameter.
    top

    Description Delete a QC Task
    URL /qctask/delete
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • The QC Task uuid
    Returns status • OK
    Permission qctask_delete
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The QC Task can not be found
    NOT_PERMITTED • You are not permitted to view the QC Task
    Notes
    top

    Description Set the status of a QC task
    URL /qctask/status/set
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • QC task uuid
    old • The old QC task status value
    new • The new QC task status value (Open|InProgress|Closed)
    Returns status • OK
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The QC task can not be found
    NOT_PERMITTED • You are not permitted to set the status for this QC task
    STALE • The QC task status you have is stale
    INVALID_TAG • The QC task status new value is not a valid value
    Notes
    top

    Anonymization profile commands

    Description Get a list of the anonymization profiles in the account
    URL /anonymization/list
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    account_id • uuid of the account
    filter.* Filters (optional)
    page.* Pagination (optional)
    sort_bySorting (optional)
    Returns status • OK
    page • The pagination status hash
    anonymization_profiles • An array of the anonymization profiles. Each object holds the same fields as the /anonymization/get call
    Permission account_view
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The account can not be found
    NOT_PERMITTED • You are not permitted to view anonymization profiles in this account
    Notes
    top

    Description Add an anonymization profile
    URL /anonymization/add
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    account_id • uuid of the account to add them to
    name • Name of the anonymization profile
    rules • A JSON hash of anonymization rules to apply to retrieved studies
    Returns status • OK
    uuid • The uuid
    Permission account_edit
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The account was not found. The error_subtype holds the type of object not found
    NOT_HASH • The rules field is not a hash
    NOT_PERMITTED • You are not permitted to add an anonymization profile to the account
    Notes
    top

    Description Edit an anonymization profile
    URL /anonymization/set
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • The anonymization profile uuid
    name • Name of the anonymization profile (optional)
    rules • A JSON hash of anonymization rules to apply to retrieved studies (optional)
    Returns status • OK
    Permission account_edit
    Errors NOT_FOUND • The anonymization profile can not be found
    NOT_PERMITTED • You are not permitted to edit the anonymization profile
    MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_HASH • The rules field is not a hash
    IN_USE • The anonymization profile is connected to an account, its rule set cannot be changed
    Notes
    • Rules in an anonymization profile becomes read-only when connected to a namespace
    top

    Description Get an anonymization profile
    URL /anonymization/get
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • The anonymization profile uuid
    Returns status • OK
    uuid • The anonymization profile uuid
    name • Name of the anonymization profile
    rules • A JSON hash of anonymization rules to apply to retrieved studies
    account_id • account uuid
    namespaces • An array of the namespaces the anonymization profile applies to. Each namespace holds the following fields.
    * uuid • Id of the namespace
    * name • Description of the namespace
    Permission account_view
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The anonymization profile can not be found
    NOT_PERMITTED • You are not permitted to view the anonymization profile
    Notes
    top

    Description Delete an anonymization profile
    URL /anonymization/delete
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • The anonymization profile uuid
    Returns status • OK
    Permission account_edit
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The anonymization profile can not be found
    NOT_PERMITTED • You are not permitted to delete the anonymization profile
    IN_USE • The anonymization profile is connected to an account and cannot be removed
    Notes
    top

    Rule set commands

    Description Get a list of the rule sets in the account
    URL /rule_set/list
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    account_id • uuid of the account
    filter.* Filters (optional)
    page.* Pagination (optional)
    sort_bySorting (optional)
    Returns status • OK
    page • The pagination status hash
    rule_sets • An array of the account rule sets. Each object holds the same fields as the /rule_set/get call
    Permission account_view
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The account can not be found
    NOT_PERMITTED • You are not permitted to view rule sets in this account
    Notes
    top

    Description Add a rule set
    URL /rule_set/add
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    account_id • uuid of the account to add them to
    name • Name of the rule set
    Returns status • OK
    uuid • The uuid
    Permission account_edit
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The account was not found. The error_subtype holds the type of object not found
    NOT_PERMITTED • You are not permitted to add a rule set to the account
    Notes
    top

    Description Edit a rule set
    URL /rule_set/set
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • The rule set uuid
    name • Name of the rule set (optional)
    Returns status • OK
    Permission account_edit
    Errors NOT_FOUND • The rule set can not be found
    NOT_PERMITTED • You are not permitted to edit the rule set
    MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    Notes
    top

    Description Get a rule set
    URL /rule_set/get
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • The rule set uuid
    Returns status • OK
    uuid • The rule set uuid
    name • Name of the rule set
    account_id • account uuid
    Permission account_view
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The rule set can not be found
    NOT_PERMITTED • You are not permitted to view the rule set
    Notes
    top

    Description Delete a rule set
    URL /rule_set/delete
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • The rule set uuid
    Returns status • OK
    Permission account_edit
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The rule set can not be found
    NOT_PERMITTED • You are not permitted to delete the rule set
    IN_USE • The rule set contains study status timet rules and cannot be removed
    Notes
    top

    Study timer rule commands

    Description Get a list of the study timer rules in the account
    URL /timer_rule/list
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    account_id • uuid of the account
    filter.* Filters (optional)
    page.* Pagination (optional)
    sort_bySorting (optional)
    Returns status • OK
    page • The pagination status hash
    timer_rules • An array of the account timer rules. Each object holds the same fields as the /timer_rule/get call
    Permission account_view
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The account can not be found
    NOT_PERMITTED • You are not permitted to view timer rules in this account
    Notes
    top

    Description Add a timer rule
    URL /timer_rule/add
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    rule_set_id • uuid of the rule set to add them to
    action • The action to perform on rule match (reset|reset_and_stop|reset_and_resume|resume|stop|do_nothing)
    sequence • An integer value. Rules are processed from low number to high number (optional)
    old_values • JSON hash of the values to compare with the previous study state. Keys correspond to study fields, each hash element is an ARRAY of actual values to use in comparison (optional)
    new_values • JSON hash of the values to compare with the next study state. Keys correspond to study fields, each hash element is an ARRAY of actual values to use in comparison (optional)
    name • Name of the timer rule
    Returns status • OK
    uuid • The uuid
    Permission account_edit
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The rule set can not be found
    NOT_PERMITTED • You are not permitted to add a rule set to the account
    INVALID_INTEGER • An invalid integer was passed. The error_subtype holds the name of the invalid integer
    VALIDATION_FAILED • A field failed validation. The error_subtype holds the name of the invalid field
    NOT_HASH • The field is not a JSON hash. The error_subtype holds the name of the field
    UNSUPPORTED_STUDY_FIELD • The referred study field is not supported
    NAMESPACE_NOT_FOUND • The namespace referred by the rule was not found
    INVALID_VALUE • The rule condition value is not an array
    Notes
    • Each study change initiates timer rules processing. The account timer rules are processed from low sequence number to high sequence number. For each rule old_values and new_values are compared (if set) with the old study state (prior to the study change) and the new study state. Each of the old_values and new_values keys are compared with the corresponding study attribute in turn, any key array value for every key must be equal to the study attribute to trigger the rule action for the study. Rules processing stops on the first match. If none of the rules match then no action is taken. Timer is stopped for new studies by default. If neither of old_values and new_values are set, then the rule matches unconditionally.
    • The following study attributes are supported in condition definitions: study_status, phi_namespace, must_approve
    top

    Description Edit a timer rule
    URL /timer_rule/set
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • The timer rule uuid
    action • The action to perform on rule match (reset|reset_and_stop|reset_and_resume|resume|stop|do_nothing) (optional)
    sequence • An integer value. Rules are processed from low number to high number (optional)
    old_values • JSON hash of the values to compare with the previous study state. Keys correspond to study fields, each hash element is an ARRAY of actual values to use in comparison (optional)
    new_values • JSON hash of the values to compare with the next study state. Keys correspond to study fields, each hash element is an ARRAY of actual values to use in comparison (optional)
    name • Name of the timer rule (optional)
    Returns status • OK
    Permission account_edit
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The timer rule was not found
    NOT_PERMITTED • You are not permitted to edit the timer rule
    INVALID_INTEGER • An invalid integer was passed. The error_subtype holds the name of the invalid integer
    VALIDATION_FAILED • A field failed validation. The error_subtype holds the name of the invalid field
    NOT_HASH • The field is not a JSON hash. The error_subtype holds the name of the field
    UNSUPPORTED_STUDY_FIELD • The referred study field is not supported
    NAMESPACE_NOT_FOUND • The namespace referred by the rule was not found
    INVALID_VALUE • The rule condition value is not an array
    Notes
    top

    Description Get a timer rule
    URL /timer_rule/get
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • The timer rule uuid
    Returns status • OK
    uuid • The timer rule uuid
    name • Name of the timer rule
    rule_set_id • uuid of the rule set
    action • The action to perform on rule match
    sequence • An integer value. Rules are processed from low number to high number
    old_values • JSON hash of the values to compare with the previous study state
    new_values • JSON hash of the values to compare with the next study state
    Permission account_view
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The timer rule can not be found
    NOT_PERMITTED • You are not permitted to view the timer rule
    Notes
    top

    Description Delete a timer rule
    URL /timer_rule/delete
    Parameters sid • The session id (optional if basic authentication or an OAuth token is used)
    uuid • The timer rule uuid
    Returns status • OK
    Permission account_edit
    Errors MISSING_FIELDS • A required field is missing or does not have data in it. The error_subtype holds a array of all the missing fields
    NOT_FOUND • The timer rule can not be found
    NOT_PERMITTED • You are not permitted to delete the timer rule
    Notes
    top