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. AI questions
  13. Session commands
  14. User commands
  15. Study commands
  16. Tag commands
  17. Annotation commands
  18. Keyimage commands
  19. Study validation commands
  20. Study DICOM data commands
  21. Radiology reports commands
  22. Custom code commands
  23. Case commands
  24. Patient commands
  25. Order commands
  26. HL7 commands
  27. Settings commands
  28. Node commands
  29. Destination commands
  30. Route commands
  31. Account commands
  32. Location commands
  33. Group commands
  34. Role commands
  35. Activity commands
  36. Audit commands
  37. Namespace commands
  38. Help commands
  39. Terminology commands
  40. Analytics commands
  41. Filter commands
  42. Custom field commands
  43. Webhook commands
  44. Purge commands
  45. Link commands
  46. Message commands
  47. Dictionary commands
  48. Report commands
  49. Meeting commands
  50. Appointment commands
  51. Training commands
  52. RSNA commands
  53. NPI 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

will sort the results by name in ascending order and then date in descending order.

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.

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.

Flag Admin
Value
User
Value
PHR
Value
Anonymous
Value
Description
account_edit 1 0 0 0 Can they add and edit the account
account_view 1 0 0 0 Can they view account information
account_user_view 1 0 0 0 Can they view or list the users in the account
account_user_edit 1 0 0 0 Can they add, edit and remove users from an account
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
group_view 1 0 0 0 Can they view or list the groups in the account
group_edit 1 0 0 0 Can they add, edit and remove groups from an account
location_view 1 0 0 0 Can they view or list the locations in the account
location_edit 1 0 0 0 Can they add, edit and remove locations from an account
role_view 1 0 0 0 Can they view or list the roles in the account
role_edit 1 0 0 0 Can they add, edit and remove roles from an account
route_view 1 0 0 0 Can they view or list the routes in the account
route_edit 1 0 0 0 Can they add, edit and remove routes from an account
node_view 1 0 0 0 Can they view or list the nodes in the account
node_edit 1 0 0 0 Can they add, edit and remove nodes from an account
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
study_approve 1 0 1 0 Can they approve or reject shared studies in the account, group, location
study_view 1 1 1 1 Can they view the studies in the account, group, location
study_edit 1 0 1 0 Can they edit the PHI of the study
↳ study_edit_approved 1 1 1 0 Can they edit the PHI of an approved study
↳ study_edit_unapproved 1 1 1 0 Can they edit the PHI of an unapproved study
study_star 1 1 0 0 Can they star studies
study_tag 1 1 0 0 Can they tag studies
study_upload 1 0 0 0 Can they upload a study to the account, group, location
study_upload_validate 0 0 0 0 An upload requires session validation
study_report_detail 1 0 1 0 Can they get the detail report for studies in the account, group, location
study_download 1 0 1 0 Can they download the study
study_download_viewer 1 0 1 0 Can they download the local study viewer
study_download_iso 1 0 1 0 Can they download the study ISO
study_browse 1 1 1 1 Can they view studies in the web viewer
study_push 1 0 0 0 Can they push the study to a destination
study_share 1 0 1 0 Can they share the study
↳ study_share_email 0 0 1 0 Can they share the study via email
↳ study_share_share_code 1 1 1 0 Can they share the study via a share code
↳ study_share_account 1 1 1 0 Can they share the study with accounts
↳ study_share_location 1 1 1 0 Can they share the study with locations
↳ study_share_group 1 1 1 0 Can they share the study with groups
↳ study_share_user 1 1 1 0 Can they share the study with users
↳ study_share_rsna 0 0 0 0 Can they share the study with the RSNA network
↳ study_share_npi 0 0 0 0 Can they share the study with a NPI number
study_delete 0 0 1 0 Can they delete a study
study_delete_image 0 0 0 0 Can they delete images and series within a study
study_thin 0 0 0 0 Can they create a thin study
study_report_view 1 1 1 1 Can they view attached reports for a study
study_report_view_approved 1 1 1 1 Can they view attached reports for an approved study
study_report_view_unapproved 0 0 0 0 Can they view attached reports for an unapproved study
study_report_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_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_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_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_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
audit_view 1 0 1 0 Can they view audit information
analytics_view 1 0 1 0 Can they view analytics information
study_search_require_patient_name 0 0 0 0 Patient name is required for a study search
study_search_require_patient_sex 0 0 0 0 Patient gender is required for a study search
study_search_require_accession_number 0 0 0 0 Accession number is required for a study search
study_search_require_patient_birth_date 0 0 0 0 Patient birth date is required for a study search
study_search_require_patientid 0 0 0 0 MRN is required for a study search
filter_share 1 0 1 0 Can they share filters
customfield_view 1 0 0 0 Can they view or list the customfields in the account
customfield_edit 1 0 0 0 Can they add, edit and remove customfields from an account
case_view 0 0 0 0 Can they view or list the cases in the account
case_edit 0 0 0 0 Can they add, edit and remove cases from an account
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
patient_view 0 0 0 0 Can they view or list the patients in the account
patient_edit 0 0 0 0 Can they add, edit and remove patients from an account
order_view 0 0 0 0 Can they view or list the orders in the account
order_edit 0 0 0 0 Can they add, edit and remove orders from an account
webhook_view 0 0 0 0 Can they view or list the webhooks in the account
webhook_edit 0 0 0 0 Can they add, edit and remove webhooks from an account
can_proxy_login 0 0 0 0 Can they proxy login for "owned" users in an account
radreport_view 0 0 0 0 Can they view or list the radreports in the account
radreport_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_template_view 0 0 0 0 Can they view or list the HL7 templates in the account
hl7_template_edit 0 0 0 0 Can they add, edit and remove HL7 templates from an account
hl7_transform_view 0 0 0 0 Can they view or list the HL7 transformations in the account
hl7_transform_edit 0 0 0 0 Can they add, edit and remove HL7 transformations from an account
annotation_view 1 1 1 1 Can they view annotations on a study
annotation_view_only_own 0 0 0 0 Can they view only their annotations on a study
annotation_edit 1 1 1 0 Can edit annotations on a study
meeting_view 1 1 1 1 Can they view meetings for a study
meeting_edit 0 0 0 0 Can create and edit meetings for a study
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 1 1 Can they view and copy the direct link to the study
link_view 0 0 0 0 Can they view or list the links in the account
link_edit 0 0 0 0 Can they add, edit and remove links from an account
link_edit_upload 0 0 0 0 Can they add, edit and remove study upload links from an account
message_view 1 1 1 0 Can they view messages in the namespace
message_edit 1 0 1 0 Can they send messages to the namespace
user_modify_sharecode 1 1 1 0 Can they modify their personal share code
user_modify_defaults 1 1 1 0 Can they modify their personal defaults
user_modify_notifications 1 1 1 0 Can they modify their notifications
user_request_access 1 1 1 0 Can they request access to an org
channel_study 1 1 1 1 Can they subscribe to a study channel
channel_activity 1 1 1 0 Can they subscribe to an activity channel
viewer_config JSON viewer configuration for the role. Optionally pass in the UUID of a user and that user's viewer configuration will be copied into the role

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. 0
Name Type Default Un-authenticated
access
allowed
User
override
allowed
Namespace
override
allowed
Node
override
allowed
Description
show_hl7_report_physician_alias_regexp Flag 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 Update the study source for every notification
allow_phr_upload Flag 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 Enable credit card processing for the account
paypal_account Text 0 0 0 0 The paypal account email for credit card processing
request_join_on_vanity_registration Flag 0 0 0 0 0 Automatically submit a join request if a user registers under a vanity domain
login_json Text 1 0 0 0 JSON structure to control the login page HTML
ui_json Text 0 1 1 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 (default, will use external viewer if configured)
    • browse-study-new-tab - Open with Study Viewer in New Tab (will use external viewer if configured)
    • browse-study-ambra - Open with Ambra Study Viewer
    • browse-study-ambra-new-tab - Open with Ambra Study Viewer in New Tab
    • 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
  • 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 (text) • Date format to be used for patient portal
  • view_study_namespace_filter_types (text) • Show selected types of namespaces in the study list namespace dropdown (comma-delmited list). If none are selected, all types will show. Possible types: account_id, location_id, group_id, user_id
  • enable_viewer_v3 (boolean): Use the v3 viewer when launching from the study list
  • 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
  • study_edit_reason_per_field (boolean) • display one reason field for each edited study field
baa_text Text 1 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 The HTML to display for the training manual link
faq_text Text 1 0 0 0 The HTML to display for the FAQ link
other_manual_text Text 1 0 0 0 The HTML to display for the "other" manual link
pin_auth_text Text 1 0 0 0 The HTML to display for a failed pin_auth for /link/session
homepage_links Text 1 0 0 0 A JSON hash of the links to display on the home page
enable_dicom_wrapping Flag 0 0 0 1 0 Enable dicom wrapping support on uploading
auto_enable_dicom_wrapping Flag 0 0 0 1 0 Enable dicom wrapping support on uploading if no DICOM is detected
enable_multipart_uploader Flag 1 0 0 1 0 Enable multipart uploading
enable_dicom_deidentification Flag 0 0 0 1 0 Enable the dicom de-identification tool on uploading
dicom_deidentification_at_ingress Flag 1 0 0 0 0 De-identify at ingress
enable_dicomdir_scan Flag 1 0 0 0 0 Enable dicomdir scanning on uploading
from_email_address Text 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 Use this display name in emails for email sent from the account.
enable_v2_viewer Flag 0 0 0 0 0 Use the version 2 viewer for this account
auto_create_patient Flag 0 0 0 1 0 Auto create patients from approved studies
auto_update_patient_studies Flag 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 Require that the patient primary phone and email address be unique
anonymize_at_ingress Flag 0 0 0 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 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 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 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 Update the PHI from ADT HL7 messages
update_phi_hl7_namespaces Text 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_phi_syngo_match Flag 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 Fire the upload event notification when the /study/sync webhook is run
logo_action Text 0 0 0 0 What action to take when the logo is clicked
viewer_show_reports Flag 1 0 1 0 0 Show reports in the viewer
enable_viewer_print Flag 1 0 1 0 0 Enable the print feature on the viewer
enable_viewer_export Flag 1 0 1 0 0 Enable the export feature on the viewer
viewer_diagnostic_quality Flag 0 0 1 0 0 Diagnostic quality viewing
viewer_diagnostic_quality_always Flag 0 0 1 0 0 Diagnostic quality viewing in all modes including tools
viewer_preload_diagnostic_images Flag 0 0 1 0 0 Preload diagnostic images in the viewer
viewer_enable_mpr Flag 0 0 1 0 0 Flag to enable multi planar reconstruction in the viewer
viewer_store_extra_annotation_data Number 0 0 1 0 0 Capture extra annotation information
viewer_default_drop_shape_width Number 0 0 1 0 0 Customize the default size of circle and square drop shapes
viewer_link_series Flag 0 0 1 0 0 Link the series
viewer_single_instance_series Flag 0 0 1 0 0 Flag to enable viewing each image as a series
viewer_multiframe_split_method Number 0 0 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 Should the "Go to Study Page" link display in the viewer
viewer_study_page_link_url Text 0 1 0 0 Optional URL for the "Go to Study Page" link in the viewer
viewer_setting_not_diagnostic Flag 0 0 1 0 0 Show a dialog explaining diagnostic usage when opening the viewer
viewer_show_priors_worklist_only Flag 0 0 1 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 Have the viewer look for available accelerators
enable_viewer_toggle_annotations Flag 1 0 0 0 0 Enable the toggle annotations button for the viewer
viewer_default_mouse_tool Text Scroll 0 1 0 0 The default mouse tool in the viewer
auto_transcode_modalities Text 0 0 0 0 Comma separated list of modalities to preemptively transcode data for
case_status_tags Text 0 0 0 0 Comma separated list of case status tags
case_notify_submitted Text 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 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 Comma separated list of study status tags
study_status_mutex_tags Text 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 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 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 A JSON hash. The keys are study status tags and the values are a list of the attributes attached to the tag
study_share_use_account_template Flag 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 0 0 0 0 0 Require double entry of the share email address to confirm it
logout_url Text 0 0 0 0 URL to take the user to on logout
consolidate_wrapped_jpegs Flag 0 1 0 0 0 Consolidate JPEGS when wrapping them
enable_masshiway Flag 0 0 0 0 0 Enable Mass Hiway integration
default_list_view Text 0 0 0 0 The default list view
enable_dicom_tag_customfields Flag 0 0 0 0 0 Enable storage of any DICOM tag in the study customfield
patients_from_hl7 Text 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_adt Text 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}"}
update_patients_from_hl7 Flag 0 0 0 0 0 Update patients from the hl7 messages
appointments_from_hl7_adt Text 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.
orders_from_hl7 Flag 0 0 0 0 0 Generate orders from HL7 ORM messages
orders_from_hl7_adt Flag 0 0 0 0 0 Generate orders from HL7 ADT messages
allow_multiple_use_of_orders Flag 0 0 0 0 0 Allow an order to be applied to multiple studies
link_first_study_only Flag 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 Enable look of HL7 orders to override PHI in the approval process
study_push_status Flag 0 0 0 0 0 Enable tracking and display of the study push status for the account
reverse_patient_name Flag 0 0 0 0 0 Define patient name as last^first instead of first^last
enable_click_to_filter Flag 0 0 0 0 0 Enable the click to filter feature in the UI
customfields_last_on_search Flag 0 0 0 0 0 Show the customfields last on the study search dialog
auto_wrap_images Flag 0 0 0 0 0 Auto wrap the images in storage
reencode_dicom_mp4 Flag 0 0 0 0 0 Re-encode MP4 DICOM
render_wrapped_pdf Flag 0 0 0 0 0 Convert PDF to viewer format
render_wrapped_avi Flag 0 0 0 0 0 Convert AVI to viewer format
sr_render_css Text 0 0 0 0 CSS for SR rendering>
upload_one_study Flag 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 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 Get the radreport branding from the PHI namespace instead of the storage namespace
viewer_anon_annotations_clear Flag 0 0 0 0 0 Clear out the annotations created by an anonymous viewer
viewer_enable_tap_navigation Flag 0 0 0 0 0 Enable tap to scroll on the viewer
viewer_hide_thumbnails Flag 0 0 1 0 0 Hide the viewer thumbnails by default
viewer_hide_thumbnails_datetime Flag 0 0 1 0 0 Hide the viewer datetime on the thumbnails by default
viewer_hide_ruler Flag 0 0 1 0 0 Hide the viewer annotation ruler
viewer_hide_active_measurement_info Flag 0 0 1 0 0 Hide the viewer thumbnails by default
viewer_show_std_dev Flag 0 0 0 0 0 Show the standard deviation calculation
other_ingress_tags Text 0 0 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 0 0 Use the other ingress tags for server side anonymization as well as client side anonymization
login_location Text 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 Enable the PHR sharing workflow of the account
sso_share_phr_workflow_options Text 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
  • 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
sso_second_opinion_workflow Text 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 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 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 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 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 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 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 Ignore a blank or empty accession number from storage
study_stat_filter Text 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
refresh_data_on_reshare Flag 0 0 0 0 0 Refresh the integration key and customfields on a re-share of a study
study_status_timer Flag 0 0 0 0 0 Enable the study status timer feature
max_link_studies Text 100 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 Update the study status in all versions of the study
athena_subscribe_orders Flag 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 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 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 Authenticate against both the account_password and user password when logging in using an account_alias
ip_whitelist Text 0 0 0 0 Restrict logins to the specified network e.g. 195.114.80/24. A CSV list can be used to specify multiple networks. This is only applied to users who solely belong to the account
load_ack_as_hl7 Flag 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 Modify the /user/invite behavior to automatically add the user to the account if they are already on the system
duplicate_study_check Flag 0 0 0 0 0 Check for a duplicate study on upload
add_patientid_to_hl7_query_retrieve Flag 0 0 0 0 1 Add the MRN to the query retrieve triggered via a HL7 message
max_match_study_hl7 Number 100 0 0 0 0 Maximum number of studies to match against an HL7 message
include_adt_in_study_find_order Flag 0 0 0 0 0 Include ADT messages when search for orders in /study/find/order
use_namespace_name_on_upload_request Flag 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 Require the user confirm that they are authorized to upload the study
study_status_timer_attributes Text 0 0 0 0 The JSON for color coding studies based on a timer
enable_patient_portal Flag 0 0 0 0 0 Enable the patient portal feature
require_mrn_for_patient_portal Flag 0 1 0 0 0 Require a MRN when searching for patients in the portal
enable_thin_retrieve_in_patient_portal Flag 0 0 0 0 0 Allow retrieving of thin studies in the patient portal
allow_portal_pin_to_dup_addresses Flag 0 0 0 0 0 Allow the patient portal pin to be send to duplicate patient emails or phone numbers
use_link_on_patient_portal_share Text 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 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 Suppress all emails to the patients
study_search_modifiers Text 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 Require a reason for a PHI update
radreport_sign Text 0 0 0 0 A JSON hash holding the information for signing a radreport
passwdqc Text 0 0 0 0 The specification string for a passwdqc check against proposed passwords for account users
passwd_regexp Text 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 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 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 Use a cfind instead of a MWL query for the MWL searching workflow
mwl_filter_if_matching_study Flag 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 All attachments must be downloaded before they can be opened
show_radreport_in_all_namespaces Flag 0 0 0 0 0 Show radreports on all versions of the study
enable_radreport_attestation Flag 0 0 0 0 0 Require electronic signing of radreport
disable_csrf_on_links Flag 0 0 0 0 0 Disable the CSRF cookie for /link/redirect
disable_link_session Flag 0 0 0 0 0 Disable the /link/session API call for the account
report_view_phr_delay Number 0 0 0 0 0 Number of minutes after study creation to not show reports on studies shared into a PHR namespace
link_defaults Text 0 0 0 1 0 A JSON hash of the default link add values for the UI
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 HL7 message will be attached to the mapped account. 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
report_csv_download_concat Flag 0 0 0 0 0 Export all CSV rad reports into one CSV file
update_all_studies Text 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 Use slower batched rendering for producing cine files from series; use only if older OS/browser combination prevents viewing regular cine files
compress_audio_recordings Flag 0 0 0 0 0 Compress audio recordings in the browser before sending them to storage
upload_hold Number 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 Propagate study default values for parent child namespace setups
compress_audio_recordings Flag 0 0 0 0 0 Compress audio in the browser before uploading
study_search_require_regexp Text 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 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}/"}
enable_drchrono Flag 0 0 0 0 0 Enable the drchrono integration
exclude_load_dicom_tag Flag 1 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 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 A JSON hash that specifies the message type as the key and the hl7 field/subfield as the value. The base64 encoded report will be extracted from message as per these specs and be attached as a report to the associated studies e.g. {"ORU":"OBX-12_5_5"}
upload_select_none Flag 0 0 0 0 0 Require selecting studies to upload when multiple studies are added
link_external_referer Text 0 0 0 0 Limit access to /link/external to the specific referer. The referer can be a regexp to match multiple referers
audit_failed_logins Number 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.
radreport_attestation_signature Flag 0 0 0 0 0 Attach the users signature to the radreport
hide_help_tool Flag 0 1 0 0 0 Hide the help icon from the UI
mwl_sending_facility_filter Text 0 0 0 1 A JSON list of sending_facility values to limit node queries for /order/sps/find too.
mwl_filter_expression Text 0 0 0 1 A filter expression to limit node queries for /order/sps/find e.g. filter.order_sps.modality.equals=MR
mrn_qr Text 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 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
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 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.
saml_sync_on_create_only Flag 0 1 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
external_viewer Text 0 0 0 0 A JSON hash to configure an external viewer for the account. The keys and values in the hash are as follows:
  • type • The type of external viewer (resmd|eunity|iconnect)
  • 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 or iconnect 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)
disable_external_viewer_for_links Flag 0 0 0 0 0 Do not use the external viewer for studies viewed via a link by an anonymous user
limit_oru_by_storage_namespace Text 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 A JSON hash to with the information needed for the Epic patient lookup workflow. 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
  • password • The basic auth password, this will be encrypted for storage and future viewing
  • 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
  • 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
  • timeout • Optional number of seconds for the timeout on the FHIR call to Epic, defaults to 5
epic_name_format Text 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 Enable the Epic patient lookup for the account or namespace
epic_prompt_for_anonymize Flag 0 0 0 0 0 Enable the prompt_for_anonymize feature for uploads via the Epic integration
epic_upload_match Text 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_ or _MRN_ 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_patient_lookup_info Text 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
enable_link_charging Flag 0 0 0 0 0 Enable charging for accessing a link
ai_anonymize_study_images Text 0 0 1 0 Settings for the AI question
ai_anonymize_study_hl7 Text 0 0 1 0 Settings for the AI question
anonymize_study_images_google_dlp Text 0 0 1 0 Settings for the AI question
anonymize_study_images_aws_rekognition Text 0 0 1 0 Settings for the AI question
anonymize_study_images_tensorflow_east Text 0 0 1 0 Settings for the AI question
ai_study_manual_route Text 0 0 1 0 Settings for the AI question
ai_search_and_replace_study_tags Text 0 0 1 0 Settings for the AI question
ai_roche_validate_study Text 0 0 1 0 Settings for the AI question
ai_delete_duplicate_images Text 0 0 1 0 Settings for the AI question
ai_anonymize_attached_pdf Text 0 0 1 0 Settings for the AI question
ai_anonymize_attached_pdf_google_dlp Text 0 0 1 0 Settings for the AI question
ai_lookup_billing_code Text 0 0 1 0 Settings for the AI question
ai_run_custom_code_scripts Text 0 0 1 0 Settings for the AI question
apply_settings_to_owned_phr Flag 0 0 0 0 0 Apply account settings to studies in owned PHR accounts
cloud_storage_config Text 0 0 1 0 Configuration for the cloud storage provider
enable_doximity_auth Flag 0 0 0 0 0 Enable Doximity login for the account vanity(s)
enable_google_auth Flag 0 0 0 0 0 Enable Google login for the account vanity(s)
suppress_hl7_eom_sep Flag 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 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 In a smart search try parse the value as a DOB
only_this_account_in_vanity Flag 0 0 0 0 0 Only show this account if accessing it via a vanity URL
sync_user_login_to_account_login Flag 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
exclude_from_global_purge Flag 0 0 0 0 0 Exclude this account from global purging rules
helpscout_beacon_id Text 1 0 0 0 Account override for the helpscout beacon id
sendgrid_key Text 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 Set the background color for pixel anonymization
priority_notifications Flag 0 0 0 1 0 Prioritize notifications on the storage queue for the account or namespace
disable_user_days Number 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 Allow users to see all the available destination searches in the activity queue
multiple_sso_connections Flag 0 0 0 0 0 Support multiple Pingone connections for the account

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
attach_scanned_docs_as_pdf Deletes AI identified scanned images within the study
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_opencv Anonymize the study images using OpenCV ai_anonymize_study_images_opencv
anonymize_study_images_tensorflow_east Anonymize the study images using Tensorflow EAST ai_anonymize_study_images_tensorflow_east
anonymize_study_images_aws_rekognition Anonymize the study images using AWS ai_anonymize_study_images_aws_rekognition
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
roche_validate_study Custom validation logic required for Roche ai_roche_validate_study
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

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 • The password
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
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)
Errors MISSING_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
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 lowest 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.
top

Description Get the user information for the session owner
URL /session/user
Parameters sid • The session id (optional if basic authentication is used)
settings • A JSON list of user settings set via /setting/set to return (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
Notes
top

Description Get the permissions information for the session owner
URL /session/permissions
Parameters sid • The session id (optional if basic authentication 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 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
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
Notes The client must not store the sid in a cookie for CSRF checking to work
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 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 Validate the PIN for the session
URL /session/pin
Parameters sid • The session id
pin • The PIN
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
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)
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
Notes
  • The call must be a POST
top

Description Add a user
URL /user/add
Parameters sid • The session id (optional if basic authentication is used)
account_id • Account id to check for the user_edit permission
first • First name
last • Last name
password • Password
email • Email
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
Notes
  • The call must be a POST
top

Description Get the information for a user
URL /user/get
Parameters sid • The session id (optional if basic authentication 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)
Returns status • OK
uuid • The user uuid
name • The user name
first • First name
last • Last name
email • Email
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_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_new_report • Notify the user when a report is attached 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
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
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
Errors MISSING_FIELDS • A required 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 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)
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)
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
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
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. 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.
top

Description Delete yourself from the system
URL /user/delete
Parameters sid • The session id (optional if basic authentication 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
Notes
top

Description A lost password request
URL /user/password/lost
Parameters email • The email
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 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
  • 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 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 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 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)
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 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
Notes
  • An email will be sent to the user 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
top

Description Accept an invitation
URL /user/invite/accept
Parameters sid • The session id (optional if basic authentication 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 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)
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
* settings • The namespace settings
* destinations • An array of the destinations the users can push too. 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
Errors
Notes
top

Description Set the users event flags for a namespace
URL /user/event/set
Parameters sid • The session id (optional if basic authentication is used)
namespace_id • Id of the namespace to set the flags on
event_share • Notify the user on a share into the namespace (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_new_report • Notify the user when a report is attached 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)
Returns status • OK
Errors NOT_FOUND • The namespace can not be found
NOT_MEMBER • You are not a member of this namespace
INVALID_FLAG • An invalid flag was passed. The error_subtype holds the name of the invalid flag
Notes
top

Description Set and get the shared secret for a token authenticator
URL /user/token
Parameters sid • The session id (optional if basic authentication 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 Set and get the users signature
URL /user/signature
Parameters sid • The session id (optional if basic authentication 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 is used)
uuid • User uuid
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
Notes
  • You can not enable yourself
  • A sysadmin or support user can enable anyone else
  • An account user with an adminstrative role can enable any user in the account
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
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_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_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_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_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
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_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_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_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)
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
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 • The session id (optional if basic authentication is used)
(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
top

Description Get a list of the studies the user can see
URL /study/list
Parameters sid • The session id (optional if basic authentication 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)
fields • A JSON list of the study fields to return (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
top

Description Get a count of the studies the user can see
URL /study/count
Parameters sid • The session id (optional if basic authentication is used)
filter.* Filters (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
Notes
  • All filters from the /study/list call apply here
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
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)
extra • Flag to return extra data as detailed below (optional)
customfield_h • Flag to return a customfield hash as detailed below (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
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_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_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_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)
image_count • Images in the study
attachment_count • Attachment count
must_approve • Is the study waiting approval
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
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_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
has_external_viewer • A flag if the study has an external viewer option
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
* status • The status, either 'I'n process, pe'N'ding, 'S'uccessful, 'P'artial or 'F'ailed
* 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
--- The following fields are only returned if the extra flag is specified ---
created_at • Date and time the record 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
hipaa_name • HIPAA compliant version of the patient name
first_name • Patient first name
last_name • Patient last name
study_status • Study status value
--- 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
Errors MISSING_FIELDS • A required 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 Get the users permissions on the study
URL /study/permissions
Parameters sid • The session id (optional if basic authentication 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_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
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_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 Push a study to a destination
URL /study/push
Parameters sid • The session id (optional if basic authentication 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 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
top

Description Returns a PDF report for the study HL7 message
URL /study/pdf/hl7
Parameters sid • The session id (optional if basic authentication 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 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 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 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 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) • uuid of the account, location, group, user 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
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 • The share failed. The error_subtype holds one of the following conditions.
  • SAME - The study can't be shared into the same namespace
  • DECLINED - The charge card was declined
  • NO_CARD - The user does not have a card on file
  • NO_CHARGE_MODALITY - The charge modality is required if charge_authorized is set and the charging is by modality
  • 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
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
top

Description Stop sharing a study
URL /study/share/stop
Parameters sid • The session id (optional if basic authentication 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 is used)
uuid • The study uuid
name • Flag to return a hash with both the uuid and name of the object (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 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
Notes
top

Description Reject a study
URL /study/reject
Parameters sid • The session id (optional if basic authentication 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 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_EDIT|REPORT_UPLOAD|REPORT_VIEW|IMAGE_ADDED|IMAGE_UPDATED|STUDY_DOWNLOAD|ACCEPTED_NOT_DIAGNOSTIC|CANCELED_NOT_DIAGNOSTIC|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

Description Set the star flag on a study for the user
URL /study/star
Parameters sid • The session id (optional if basic authentication 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 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 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 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_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_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
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 to check and redirect to if available
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 Set the status of a study
URL /study/status/set
Parameters sid • The session id (optional if basic authentication 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
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 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 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 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 is used)
uuid • The study id
namespace_id • The namespace id to duplicate it to
include_attachments • Also duplicate attachments
Returns status • OK
Permission study_duplicate 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_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
Notes This creates a full copy of the study as if it was uploaded into the namespace
top

Description Split a study into multiple studies, one per series
URL /study/split
Parameters sid • The session id (optional if basic authentication 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
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 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 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
Errors MISSING_FIELDS • A required 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 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
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 message are searched, if the account setting include_adt_in_study_find_order is enabled ADT messages will also be searched
top

Description Archive a study
URL /study/archive
Parameters sid • The session id (optional if basic authentication 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 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 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 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 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 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 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 is used)
uuid • The study id
redirect • A flag to return an HTTP redirect to the viewer URL rather than the JSON structure
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
top

Description Ask an AI question for the study
URL /study/question
Parameters sid • The session id (optional if basic authentication is used)
uuid • The study id
question • The question to ask or a JSON array of questions to ask
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 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 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

Tag commands

Description List the tags
URL /tag/list
Parameters sid • The session id (optional if basic authentication is used)
object • Object class (Study|User_account|Group|Location|Account|Patient|Case|Order)
filter.*Filters (optional)
page.* Pagination (optional)
sort_bySorting (optional)
Returns status • OK
tags • An array of the tag
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 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
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 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 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 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 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
Errors MISSING_FIELDS • A required 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 Get the annotation
URL /annotation/get
Parameters sid • The session id (optional if basic authentication 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
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 is used)
uuid • Id of the annotation
Returns status • OK
Permission annotation_edit and annotation 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 annotation was not found.
NOT_PERMITTED • You are not permitted to delete the annotation
Notes
top

Key image commands

Description List the key images
URL /keyimage/list
Parameters sid • The session id (optional if basic authentication 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 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 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 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 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 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
top

Description Modify a validation rule
URL /validate/set
Parameters sid • The session id (optional if basic authentication 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 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 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 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 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 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)
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
Notes
top

Description Modify a radreport
URL /radreport/set
Parameters sid • The session id (optional if basic authentication 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)
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
Notes
top

Description Get the radreport
URL /radreport/get
Parameters sid • The session id (optional if basic authentication 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
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 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 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
Notes
top

Description Get the description of the radreport
URL /radreport/description
Parameters sid • The session id (optional if basic authentication 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
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 List the radreports for a user
URL /radreport/user/list
Parameters sid • The session id (optional if basic authentication 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 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 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 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 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 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 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 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
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
Notes
top

Description Get a list of the account radreport templates
URL /radreport/template/list
Parameters sid • The session id (optional if basic authentication 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 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 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 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 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 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 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 is used)
name • The name of the code
type • Type of code (AI_CUSTOM_VALIDATION_CODE)
language • Language of code (PYTHON)
code • The code
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
Notes
top

Description Get the code
URL /customcode/get
Parameters sid • The session id (optional if basic authentication is used)
uuid • The code uuid
Returns status • OK
uuid • The code uuid
name • code name
type • code type
language • code language
code • The code
Permission customcode_view or 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_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 is used)
uuid • The code uuid
name • The name of the code (optional)
code • The code (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
Notes
top

Description Delete the code
URL /customcode/delete
Parameters sid • The session id (optional if basic authentication 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
Notes
top

Description Get a list of the code for the account
URL /customcode/list
Parameters sid • The session id (optional if basic authentication 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
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 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
Errors MISSING_FIELDS • A required 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 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
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
top

Description Return a case to the owner
URL /case/return
Parameters sid • The session id (optional if basic authentication is used)
uuid • The case uuid
reason • The reason the case was returned
Returns status • OK
Permission case_edit
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 is used)
uuid • The case uuid
Returns status • OK
Permission case_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 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 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
Errors MISSING_FIELDS • A required 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 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 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)
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
top

Description Get a patient
URL /patient/get
Parameters sid • The session id (optional if basic authentication 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
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)
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 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)
customfield-CUSTOMFIELD_UUID • Custom field(s) (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
Notes
top

Description Delete a patient
URL /patient/delete
Parameters sid • The session id (optional if basic authentication 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 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 is used)
uuid • The patient id
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
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

Order commands

Description Add a order
URL /order/add
Parameters sid • The session id (optional if basic authentication 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 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
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 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 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 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
top

Description Add a scheduled procedure step to an order
URL /order/sps/add
Parameters sid • The session id (optional if basic authentication 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 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 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 are excluded from this search
top

HL7 commands

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
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 is used)
uuid • The hl7 uuid
Returns status • OK
Permission 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 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 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 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 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 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.
top

Description Modify a HL7 template
URL /hl7/template/set
Parameters sid • The session id (optional if basic authentication 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 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 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 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 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 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
top

Description Modify a HL7 transform
URL /hl7/transform/set
Parameters sid • The session id (optional if basic authentication 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 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 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 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 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)
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
Notes
  • Use the value __DELETE__ to delete a setting
top

Description Get a setting value for the user
URL /setting/get
Parameters sid • The session id (optional if basic authentication is used)
key • The key to get
user_id • A sysadmin user can get the value for a specific user (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
Notes
top

Description Get all the settings for a user
URL /setting/get/all
Parameters sid • The session id (optional if basic authentication is used)
Returns status • OK
settings • The hash of all non-temporary user settings
Errors
Notes
top

Node commands

Harvester commands

Description List the nodes for an account
URL /node/list
Parameters sid • The session id (optional if basic authentication 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
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
top

Description List public nodes
URL /node/public
Parameters sid • The session id (optional if basic authentication 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
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
top

Description Request a connection to a public node
URL /node/connect
Parameters sid • The session id (optional if basic authentication 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
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 Add a node
URL /node/add
Parameters sid • The session id (optional if basic authentication is used)
name • Description of the node
uuid • uuid of the node (optional, you can use this to explicitly set the UUID)
(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)
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)
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_TYPE • Invalid type of node
INVALID_LINKAGE • The linkage is invalid
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.
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)
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_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_email • Email address(es) to send monitor failure 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)
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
Notes The configuration hash does not need to be complete. It can include only the items you want to update or the entire set.
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
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_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_email • Email address(es) to send monitor failure 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
Errors MISSING_FIELDS • A required 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.
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)
* 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
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 • 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
* 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
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
* study_uid • The study uid to attach the log to
* storage_namespace • The storage namespace of the study
* phi_namespace • The phi namespace of the study
* engine_fqdn • The FQDN of the storage engine for the study
* start • The start date and time for the log range
* end • The end date and time for the log range
Errors MISSING_FIELDS • A required 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
status • Status code of the job (S|F|P|B|U) - Success, failure, partial transfer, blocked or uncached
ack • The HL7 ACK if this was an HL7 job (optional)
email_reason • Email the user this reason for the status change (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
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 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 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
studies • A JSON array of the studies found. Each object has the following fields
* 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
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
orders • A JSON array of the orders found. Each object has the following fields
* 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
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 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) 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 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 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 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 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 • The session id (optional if basic authentication 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
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 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 or UPLOADER. Defaults to DICOM (optional)
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_mwl_search • Can this destination support searching a modality work list (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)
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
Notes A virtual destination will send HL7 messages directly to the destinations hl7 address and port. It does not currently support study operations.
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 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_mwl_search • Can this destination support searching a modality work list (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)
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
Notes
top

Description Get a destination
URL /destination/get
Parameters sid • The session id (optional if basic authentication 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_mwl_search • Can this destination support searching a modality work list
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
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 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 • The session id (optional if basic authentication is used)
uuid • uuid of the destination
copy_to • uuid of a namespace to copy the retrieved or create_thin studies into (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)
-- 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
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 namespace 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 Retrieve a study from a destination
URL /destination/retrieve
Parameters sid • The session id (optional if basic authentication is used)
activity_id • uuid of the DESTINATION_SEARCH activity to retrieve from
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 activity can not be found
Notes
top

Description Run a modality worklist search on a destination
URL /destination/search/mwl
Parameters sid • The session id (optional if basic authentication 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

Route commands

Routing rules

Description List the routing rules for the account
URL /route/list
Parameters sid • The session id (optional if basic authentication 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 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
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)
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_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)
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_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)
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
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
        • accession_number
        • 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
        • days_old - How many days between the lv and now
      • op - operator value. The available operators are
        • equals
        • 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
        • 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.
    • 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.
top

Description Save a routing rule
URL /route/set
Parameters sid • The session id (optional if basic authentication is used)
uuid • The route uuid
name • Name of the route (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)
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_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)
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_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)
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 edit the route
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_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 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 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
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
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_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
suspended • This rule is suspended and not applied - flag
delay • Number of minutes 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
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 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 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 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 is used)
uuid • The account uuid
name • Name of the account (optional)
vanity • Vanity host name for the account. Multiple host names can be specified in a comma separate list (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)
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
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)
role_id • Id for the default role for the account (optional)
customfield-CUSTOMFIELD_UUID • Custom field(s) (optional)
Returns status • OK
Permission account_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 modify this record
DUPLICATE_NAME • The account name is already taken
DUPLICATE_VANITY • The vanity host name is already taken. The error_subtype holds the taken hostname
INVALID_VANITY • The vanity host name is invalid. The error_subtype holds the invalid hostname
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
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.
top

Description Get an account
URL /account/get
Parameters sid • The session id (optional if basic authentication is used)
uuid • The account uuid
permissions • Flag to return the users role and permissions in the accounts (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
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
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
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)
--- 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 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).
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).
event_share • Notify the user on a share into the account namespace (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_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_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)
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
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
Notes
  • A global user is automatically added to every current and future group and location in the account with the same role and event flags they have in the account.
top

Description Edit the users account information
URL /account/user/set
Parameters sid • The session id (optional if basic authentication 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).
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).
event_share • Notify the user on a share into the account namespace (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_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_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)
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
Notes The same account_email can be used for multiple users in an account. It does not have to be unique.
top

Description Get the users account information
URL /account/user/get
Parameters sid • The session id (optional if basic authentication is used)
uuid • The account uuid
user_id • The users uuid
Returns status • OK
user_id • The user id
user_name • The user name
user_email • The users email address
role_id • uuid of the users account role
role_name • Name of the users account role
disabled • Is the user disabled
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.
session_expire • Number of minutes before an idle session expires
max_sessions • Over-ride value for the max number of simultaneous sessions the user can have
event_share • Notify the user on a share into the account namespace
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_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_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)
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
top

Description Delete a user from the account
URL /account/user/delete
Parameters sid • The session id (optional if basic authentication is used)
uuid • The account uuid
user_id • The user uuid
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
Notes The user will also be deleted from all groups and locations in the account
top

Description List the users in an account
URL /account/user/list
Parameters sid • The session id (optional if basic authentication is used)
uuid • The account uuid
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
top

Description Build a user login report
URL /account/user/report/login
Parameters sid • The session id (optional if basic authentication 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 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 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 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)
namespace_id • Apply overrides for the namespace (optional)
Returns status • OK
settings • A hash of the account settings
Errors NOT_FOUND • The account or namespace can not be found
Notes
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

Location commands

Description List the locations for an account
URL /location/list
Parameters sid • The session id (optional if basic authentication 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 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)
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
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
Notes
top

Description Save a location
URL /location/set
Parameters sid • The session id (optional if basic authentication 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)
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
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
Notes
top

Description Get a location
URL /location/get
Parameters sid • The session id (optional if basic authentication 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
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 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 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_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_new_report • Notify the user when a report is attached 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)
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
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
Notes
top

Description Remove a user from a location
URL /location/user/delete
Parameters sid • The session id (optional if basic authentication 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 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
* 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_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_new_report • Notify the user when a report is attached 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
* 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 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 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)
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)
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
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
Notes
top

Description Save a group
URL /group/set
Parameters sid • The session id (optional if basic authentication 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)
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)
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
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
Notes
top

Description Get a group
URL /group/get
Parameters sid • The session id (optional if basic authentication 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
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)
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 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
Notes
top

Description Add or update a user to a group
URL /group/user/add
Parameters sid • The session id (optional if basic authentication 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_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_new_report • Notify the user when a report is attached 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)
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
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
Notes
top

Description Remove a user from a group
URL /group/user/delete
Parameters sid • The session id (optional if basic authentication 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 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
* 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_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_new_report • Notify the user when a report is attached 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
* 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

Role commands

Description List the roles for an account
URL /role/list
Parameters sid • The session id (optional if basic authentication 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 is used)
name • Name of the role
account_id • uuid of the account
permissions • A hash of the role permissions (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 is used)
uuid • The role uuid
name • Name of the role (optional)
description • Description of the role (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)
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 Get a role
URL /role/get
Parameters sid • The session id (optional if basic authentication is used)
uuid • The role uuid
Returns status • OK
uuid • The role uuid
name • Name of the role
description • Description of the role.
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
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 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 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 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

Activity commands

Description List the activities for the user
URL /activity/list
Parameters sid • The session id (optional if basic authentication 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)
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 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 is used)
uuid • The activity uuid
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
  • 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
  • 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
  • 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
  • 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
Errors MISSING_FIELDS • A required 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 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 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
* 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
* 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
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 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
    • DELETED - A hash of the record that was deleted
  • The default sort order is most recent first
top

Description Audit what a user has done in an account
URL /audit/user
Parameters sid • The session id (optional if basic authentication is used)
user_id • The id of the user to audit
account_id • The id of the account
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
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 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
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 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
The rest of the 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 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_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 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
study_field_flags • A JSON hash of study_field_* role values to override the role values for studies in the namespace
------ The following account settings can be over-ridden in the namespace ------
enable_dicom_wrapping • Value for the setting
auto_enable_dicom_wrapping • Value for the setting
enable_multipart_uploader • Value for the setting
link_defaults • Value for the setting
auto_create_patient • Value for the setting
enable_epic_patient_lookup • Value for the setting
ui_json • Value for the setting
cloud_storage_config • Value for the setting
pixel_anonymize_color • Value for the setting
priority_notifications • Value for the setting
And all the 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
Notes
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)
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
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
confirm_before_upload • Value of the flag for the associated account
auto_enable_dicom_wrapping • Flag for the setting
enable_multipart_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
dicom_deidentification_at_ingress • Value of the flag for the associated account
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
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 and 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"])

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 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)
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)
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.
second_opinion_share Flag to enable/disable the second opinion workflow for the share
second_opinion_config JSON configuration for the second opinion workflow
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
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

  • 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.
top

Description Set/get the anonymization rules for the namespace
URL /namespace/anonymize
Parameters sid • The session id (optional if basic authentication 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)
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.
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 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 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.
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
top

Description Set/get the cover page template for the namespace
URL /namespace/coverpage
Parameters sid • The session id (optional if basic authentication 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 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
Notes
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 is used)
uuid • The uuid of the namespace
event_share • Notify the user on a share into the namespace (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_new_report • Notify the user when a report is attached 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)
Returns status • OK
event_share • Notify the user on a share into the namespace
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_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 (optional)
event_thin_study_fail • Notify the user when a thin study retrieval they initiated fails (optional)
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 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
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
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

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 is used)
(account_id|namespace_id) • The account or namespace to get the analytics for
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)
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_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
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
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
top

Description Get the patient portal analytics
URL /analytics/patient/portal
Parameters sid • The session id (optional if basic authentication 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)
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
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 radreport analytics
URL /analytics/radreport
Parameters sid • The session id (optional if basic authentication 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)
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_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

Filter commands

Description List the filters the user has
URL /filter/list
Parameters sid • The session id (optional if basic authentication is used)
type • The type of filter to list
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 is used)
name • The name of the filter
type • The type of the filter
configuration • The configuration as a JSON data structure
Returns status • OK
uuid • The filter uuid
Errors
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 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
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 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)
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
Notes
top

Description Delete a filter
URL /filter/delete
Parameters sid • The session id (optional if basic authentication 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 is used)
uuid • The filter uuid
(account_id|location_id|group_id|user_id) • uuid of the account, location, group or user 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 is used)
uuid • The filter uuid
(account_id|location_id|group_id|user_id) • uuid of the account, location, group or user 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 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
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 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 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)
type • Type of the custom field (text|number|date|memo|select|multiselect|radio|checkbox|search)
capture_on_share_code • Flag if the field should be captured during a share code exchange (only applicable to study fields)
display_order • Integer to order how the fields should be displayed
wrapped_dicom_only • Only capture for wrapped DICOM uploads during a share code exchange
required • Flag if the field is required
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)
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
NOT_FOUND • The account can not be found
NOT_PERMITTED • You are not permitted to add a customfield to this account
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
Notes
  • Date fields must be saved in a YYYY-MM-DD format
  • Checkboxes must be saved as a 1/0 flag
  • Multiselect and radio field must be saved as a CSV list of the values
  • JSON format for options. Options is a hash with the following key value pairs
    • values - array of values for a select, multiselect or radio field. Macro values can be used to dynamically generate values as documented below.
    • values_FIELD_NAME - hash of arrays of values for a select, multiselect 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 or multiselect field (optional)
    • validate - a regular expression the field must validate against
    • validate_error - An error message to display for a failed validation
    • 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.
    • 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
  • 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
  • Nested DICOM tags are supported by specifying all the tags in the path separated by colons e.g. (0002,0003):(0002,0006)
  • 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
top

Description Edit a custom field
URL /customfield/set
Parameters sid • The session id (optional if basic authentication 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)
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)
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)
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 edit the customfield
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
Notes See the /customfield/add command notes for the format of the options field
top

Description Get a custom field
URL /customfield/get
Parameters sid • The session id (optional if basic authentication 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
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
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
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 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
top

Description Delete a customfield
URL /customfield/delete
Parameters sid • The session id (optional if basic authentication 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
Notes
top

Description Lookup a custom field by name
URL /customfield/lookup
Parameters sid • The session id (optional if basic authentication 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 is used)
uuid • uuid of the customfield
search • The value to search for (optional)
Returns status • OK
results • An array of the search results
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
NOT_A_SEARCH • This is not a search type of customfield
Notes
top

Webhook commands

Description List the webhooks for the account
URL /webhook/list
Parameters sid • The session id (optional if basic authentication 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 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)
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 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)
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_MISSING_FIELDS • Fields are missing for the SFDC auth hash
CUSTOM_NOT_HASH • The custom auth value is not a JSON hash
INVALID_CRON • The cron value is invalid
NOT_WITH_CRON • The delay or retry option can not be used for cron events
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).
  • 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.
  • 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_RADREPORT - Called when a rad report is attached to a study
    • STUDY_THIN_FAIL - Called when a thin study fails to retrieve
    • STUDY_VIEW - Called when a study is viewed
    • 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_AI_QUESTION - Called when an answer to the AI question is returned. e.g. STUDY_AI_has_scanned_docs
    • STUDY_REJECT - Called when the share of the study is rejected
    • STUDY_REPORT_VIEW - Called when a report is viewed
    • DESTINATION_SEARCH_RESULTS - Called for the results (/node/found) for a /destination/search query
    • DESTINATION_FETCH_FAIL - Called when a /destination/retrieve fails
    • 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
  • 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 both the study.* and radreport.* fields will be available for use
  • If the event is STUDY_REPORT and the filter_field is S-attachment_mime_type the mime type of the attachment will be filtered against the filter regular expression
  • If the event is STUDY_HL7 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 message that triggered the webhook are also for use in the webhook e.g. hl7.uuid
  • If the event is STUDY_HL7 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. The filter will be evaluated against the study 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
  • 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 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 also the user who is associated with or created the link is available via the user_account.* parameters
  • For the STUDY_ANNOTATION event the annotation data is available as annotation.* 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
  • For the DESTINATION_FETCH_FAIL event the details are available in the following fields study_fetch.(accession_number|study_uid|patientid|destination_name|destination_uuid)
  • 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.
    • custom - a hash of keys and values that will be passed in the HTTP header of the webhook e.g. {"custom":{"name":"test"}}
top

Description Edit a webhook
URL /webhook/set
Parameters sid • The session id (optional if basic authentication 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)
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_CRON • The cron value is invalid
NOT_WITH_CRON • The delay or retry option can not be used for cron events
Notes
top

Description Get a webhook
URL /webhook/get
Parameters sid • The session id (optional if basic authentication 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
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 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 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 Send an event that may trigger a webhook
URL /webhook/event
Parameters sid • The session id (optional if basic authentication 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 body of the email
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
  • The to, subject and text fields will be evaluated as text templates 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 is used)
(study_id|user_id|account_id) • uuid of the study, user or account to get the links for
page.* Pagination (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 is used)
(study_id|filter && account_id|namespace_id) • uuid of the study or a JSON hash of the study filter expression and the account_id or namespace_id if the action is STUDY_UPLOAD
action • Link action (STUDY_LIST|STUDY_VIEW|STUDY_UPLOAD)
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 this address (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 (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)
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 (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) and link_edit_upload for STUDY_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 patient or study could not be found. The error_subtype holds the uuid that can not be 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
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
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
  • 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$/"}
top

Description Get a link
URL /link/get
Parameters sid • The session id (optional if basic authentication is used)
uuid • Id of the link
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
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
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
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 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 • Id 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
Notes
top

Description Get a session for the link
URL /link/session
Parameters uuid • Id 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
CHARGE_REQUIRED • A charge is required to access this link
DISABLED • This call is disabled for the account, you must use /link/redirect
Notes
top

Description Try a link and get a redirect to the study
URL /link/redirect
Parameters uuid • Id 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)
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
NOT_PERMITTED • The configuration of this link requires the link UI be used instead of direct access
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
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
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 the 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
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.
Notes Setup and encryption details are here

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

Purge commands

Purging rules

Description List the purging rules for the account
URL /purge/list
Parameters sid • The session id (optional if basic authentication 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 is used)
name • Name of the purge rule
account_id • uuid of the account the rule is for
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 or 'C'reated 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)
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"
top

Description Modify a purging rule
URL /purge/set
Parameters sid • The session id (optional if basic authentication 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 or 'C'reated 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)
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 is used)
uuid • Id of the purge rule
Returns status • OK
account_id • uuid of the account the rule is for
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 or 'C'reated 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
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 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 is used)
(rule_id|account_id) • Id of the purge rule or the account id if all purge rules should be run
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 is used)
filter.* Filters (optional)
page.* Pagination (optional)
sort_bySorting (optional)
Returns status • OK
page • The pagination status hash
groups • 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 is used)
(namespace_id|user_id|group_id|location_id|account_id|email|share_code) • The namespace, entity, email or share code to send the message to
body • The body 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 recipient can not 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 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
created • Created datetime stamp of the message
is_mine • Flag if I created this message
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
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 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 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 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 is used)
account_id • The account id
name • The dictionary name
object • Object this is applied against (Study)
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
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 is used)
uuid • The dictionary id
name • The dictionary name
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 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
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 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 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 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
  • 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 /.*/
top

Description Delete an entry form the dictionary
URL /dictionary/entry/delete
Parameters sid • The session id (optional if basic authentication 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 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)
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
top

Description Modify a dictionary attachment
URL /dictionary/attach/set
Parameters sid • The session id (optional if basic authentication 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)
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 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 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 is used)
report_id • The report id
Returns A binary stream of the zipped data with a content type of application/zip
Errors Returns a 404 HTTP error if the report can not be found or is not available for download
Returns a 401 HTTP error if authentication failed
Notes
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 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 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 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 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 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 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 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 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 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 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 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 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
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)
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 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)
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 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 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 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 is used)
account_id • Id of the account the training is for
form_number • The formstack id of the form
All 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 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 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