REST API

Phoenix CTMS includes a full-featured REST (representational state transfer) API (application programming interface). This is the common approach to provide a interface aside the regular webapplication UI (user interface), in order to eg.

  • programatically manipulate and fetch data items
  • automate processes
  • integrate with other systems
  • built streamlined UIs, eg. the subject self-registration portal
  • enhance EDC form scripting (eg. ICD-10 code edit check)

This REST API is implemented with Jersey and capable to expose any of the operations implemented in the Phoenix CTMS backend layers. The API’s http URLs (rails) require authentication (basic auth over https) and are well-defined by means of

  • strict http method mapping
  • strict http status code mapping
  • generated rail paths (eg. collection listings)
  • collection pagination URL query parameters

The REST API is enabled by default, reachable at http://<server-address>/rest/ . It covers the areas below out-of-the box:

  • CRUD (create-update-delete) operations for all root entities: inventory items, staff persons and organisations, courses, trials, input fields, subjects and application users
  • app. 15% of CRUD operations so far for detail entities as required by interfacing components; eg. subject address input or eCRF setup and data entry.
  • query editor operations to define and execute queries eg. for finding matching subjects
  • DMS (document management system) operations to store and retrieve documents or other files associated with root entities (streaming files up to 2GB size possible)
  • document rendering (.pdf and .xls) eg. subject lists, visit schedules, search results, eCRFs, audit trail, discrepancies …
  • end points for auto-completion/lookup of master data backed in Phoenix CTMS, eg. street names and zip codes, ICD-10 (international classification of diseases), ICPM (international classification of procedures in medicine), ATC (anatomical therapeutic chemical classification system)

The full catalogue of implemented rails can be found in the generated JSON index, also available in swagger specification format.