8. API¶
The Explorer API is made up of two distinct parts:
An external API that is used by other applications to present data in e.g. a dashboard or an alternative user interface.
An internal API that is used by the built-in user interface.
Note that all paths should be prepended by /api/v1 when calling them.
8.1. External API¶
- GET /platform/data/{presetref}¶
Get data for the specified preset reference
- Parameters:
presetref (string) – A preset reference
- Status Codes:
200 OK – Success
400 Bad Request – Filter name or value is unknown
403 Forbidden – User is unauthorized
404 Not Found – Preset reference is unknown
500 Internal Server Error – Unexpected error
- Response JSON Object:
table.count (integer) – Number of rows in the table
table.header[].description (string) – Column description
table.header[].id (string) – Column identifier
table.header[].name (string) – Column name
table.poprows[][] (object) – Value of a cell in a population row
table.preset (any) – Preset used for the table
table.rows[][] (object) – Value of a cell in a row
table_meta.last_update (string) – Timestamp of last update to the table
- GET /platform/filter/{filter_id}¶
Get filter values for the specified filter
- Parameters:
filter_id (string) – A filter identifier
- Status Codes:
200 OK – Success
403 Forbidden – User is unauthorized
404 Not Found – Filter identifier is unknown
500 Internal Server Error – Unexpected error
- Response JSON Object:
values[] (object) – Value of a filter
- GET /platform/presets¶
Get list of presets and presetcategories
- Status Codes:
200 OK – Success
403 Forbidden – User is unauthorized
500 Internal Server Error – Unexpected error
- Response JSON Object:
categories[].description (string) – Description of the category
categories[].id (integer) – Identifier of the category
categories[].level (integer) – Distance between the category and the top
categories[].locked (boolean) – Is the category locked (true) or unlocked (false)
categories[].name (string) – Name of the category
categories[].parent (string) – Identifier of the parent category
categories[].predefined (boolean) – Is the category predefined (true) or userdefined (false)
items[].category (string) – Category of the report
items[].description (string) – Description of the report
items[].id (integer) – Identifier of the report
items[].name (string) – Name of the report
items[].predefined (boolean) – Is the report predefined (true) or userdefined (false)
items[].public (boolean) – Is the report public (true) or private (false)
- GET /platform/reports¶
Get list of reports and reportcategories
- Status Codes:
200 OK – Success
403 Forbidden – User is unauthorized
500 Internal Server Error – Unexpected error
- Response JSON Object:
categories[].description (string) – Description of the category
categories[].id (integer) – Identifier of the category
categories[].level (integer) – Distance between the category and the top
categories[].locked (boolean) – Is the category locked (true) or unlocked (false)
categories[].name (string) – Name of the category
categories[].parent (string) – Identifier of the parent category
categories[].predefined (boolean) – Is the category predefined (true) or userdefined (false)
items[].category (string) – Category of the report
items[].description (string) – Description of the report
items[].id (integer) – Identifier of the report
items[].name (string) – Name of the report
items[].predefined (boolean) – Is the report predefined (true) or userdefined (false)
items[].public (boolean) – Is the report public (true) or private (false)
- GET /platform/user¶
Get user account data
- Status Codes:
200 OK – Success
403 Forbidden – User is unauthorized
500 Internal Server Error – Unexpected error
- Response JSON Object:
account_view (integer) – Account view identifier
display_name (string) – Name of the user as it should be displayed
group_id (integer) – Identifier of the group the user belongs to
organization_ids[] (string) – List of organization identifiers
organization_name (string) – Name of the organization the user belongs to
scoping_organization_name (string) – Name of the organization when comparing with others
user_id (string) – Unique identifier of the user
user_name (string) – Name of the user
8.2. Internal API¶
- DELETE /configadmin/filters/{filter_id}¶
- Parameters:
filter_id (string) –
- Status Codes:
200 OK – Success
- PUT /configadmin/filters/{filter_id}¶
- Parameters:
filter_id (string) –
- Status Codes:
200 OK – Success
- DELETE /configadmin/projections/{projection_id}¶
- Parameters:
projection_id (string) –
- Status Codes:
200 OK – Success
- PUT /configadmin/projections/{projection_id}¶
- Parameters:
projection_id (string) –
- Status Codes:
200 OK – Success
- POST /presets¶
/api/v1/presets
Create new preset.
- Parameters:
name – Preset name
description – Preset description
category – Preset category
visibility – Preset visibility
- Return:
Created preset
- Status Codes:
200 OK – Success
- GET /presets¶
/api/v1/presets
Get list of presets.
- Return:
List of presets. Dictionary containing “presets”, “categories” and “roots”.
- Status Codes:
200 OK – Success
- GET /presets/breadcrumbs¶
/api/v1/presets/breadcrumbs
Get breadcrumbs for active preset. Returns a list containing a breadcrumb list (each breadcrumb having a number and a name), the name of the preset, and a flag signaling if the preset has been modified by the user.
- Return:
Breadcrumbs for active preset. Example: [[[3, “Public presets”], [10, “CGM”]], “Overview”, false]
- Status Codes:
200 OK – Success
- POST /presets/category¶
/api/v1/presets/category
Create new preset category.
- Parameters:
name – Preset category name
parent – Identifier of the parent category
- Return:
Created preset category. Example: {“id”: 25, “name”: “New category”, “description”: null, “schema_id”: 1, “user_id”: 2, “group_id”: null, “parent”: 1, “public”: false, “readonly”: false, “predefined”: false}
- Status Codes:
200 OK – Success
- DELETE /presets/category/{category_id}¶
/api/v1/presets/category/{category_id}
Delete preset category with specified identifier.
- Parameters:
preset_id – Identifier of the preset category.
category_id (integer) –
- Return:
{}
- Status Codes:
200 OK – Success
- PUT /presets/category/{category_id}¶
/api/v1/presets/category/{category_id}
Update preset category with specified identifier.
- Parameters:
preset_id – Identifier of the preset category.
name – Preset category name
parent – Identifier of the parent category
category_id (integer) –
- Return:
Created preset category. Example: {“id”: 25, “name”: “Renamed category”, “description”: null, “schema_id”: 1, “user_id”: 2, “group_id”: null, “parent”: 1, “public”: false, “readonly”: false, “predefined”: false}
- Status Codes:
200 OK – Success
- GET /presets/search¶
/api/v1/presets/search
Search for presets based on specified keyword(s).
- Parameters:
q – Keyword(s) to search for (separated by spaces).
- Return:
List of presets. Example: [{“id”: 4, “name”: “All patients”, “path”: “Public presets, Patientlists”, “description”: “All patients”, “public”: true}]
- Status Codes:
200 OK – Success
- DELETE /presets/{preset_id}¶
/api/v1/presets/{preset_id}
Delete preset with specified identifier.
- Parameters:
preset_id (integer) – Identifier of the preset.
preset_id –
- Return:
{}
- Status Codes:
200 OK – Success
- PUT /presets/{preset_id}¶
/api/v1/presets/{preset_id}
Update preset with specified identifier.
- Parameters:
preset_id (integer) – Identifier of the preset.
name – Preset name
description – Preset description
category – Preset category
visibility – Preset visibility
preset_id –
- Return:
Updated preset
- Status Codes:
200 OK – Success
- GET /report/parameter/{param_id}¶
Return list of parameter values
- Parameters:
param_id (string) –
- Status Codes:
200 OK – Success
- POST /report/template/{template_id}¶
- Parameters:
template_id (string) –
- Status Codes:
200 OK – Success
- GET /table/filter/{filter_id}¶
/api/v1/table/filter/{filter_id}
Get filter identified by filter_id.
- Parameters:
filter_id (string) – Identifier of the filter.
filter_id –
- Return:
Filter identified by filter_id. Example: [{“id”: 1, “text”: “Determined”}, {“id”: 2, “text”: “< 3”}, {“id”: 3, “text”: “3-5”}, {“id”: 4, “text”: “5-10”}, {“id”: 5, “text”: “>= 10”}]
- Status Codes:
200 OK – Success
- GET /table/state¶
/api/v1/table/state
Get the active table.
- Return:
Active table. Example: {“poprows”: [], “count”: 3, “page”: 1, “pages”: 1, “rows”: [[1, “257333”, “12-08-1901”], [2, “443871”, “20-05-1972”], [3, “210487”, “18-05-1962”]], “action_ids”: [null, null, null], “filters”: “acq_score 1”, “preset”: {“id”: 1, “name”: “All patients”, “description”: “Overview of all patients”, “ref”: “PATIENT_OVERVIEW”, “group_id”: null, “user_id”: null, “public”: true, “predefined”: true, “category”: 7, “visibility”: “Public presets”, “custom”: true, “type”: “flat”, “breadcrumb”: [[3, “Public presets”], [7, “Patientlists”]], “path”: “Public presets, Patientlists”}, “header”: [{“id”: “_rownumber”, “name”: “No.”, “description”: “Row number”, “sort”: null, “align”: “right”, “decimals”: 0, “kind”: “rownumber”}, {“id”: “patient_id”, “name”: “Patientnumber”, “description”: “Patientnumber”, “sort”: null, “align”: “right”, “decimals”: “”, “kind”: “value”}, {“id”: “patient_birthdate”, “name”: “Birthdate”, “description”: “Birthdate”, “sort”: null, “align”: “right”, “decimals”: “”, “kind”: “value”}], “pagenumbers”: [1], “showing”: “Showing 1 to 3 of 3 rows”, “action_function”: null}
- Status Codes:
200 OK – Success
- DELETE /table/state/column¶
/api/v1/table/state/column
Delete the active columns.
- Return:
[]
- Status Codes:
200 OK – Success
- GET /table/state/column¶
/api/v1/table/state/column
Get list of all columns. Optionally, the list is sorted by how well its items match given keyword(s).
- Parameters:
q – Keyword(s) to search for (separated by spaces).
- Return:
List of columns. Example: [{“id”: “patient_id”, “text”: “Patientnumber”, “selected”: true}, {“id”: “patient_name”, “text”: “Patientname”, “selected”: true}]
- Status Codes:
200 OK – Success
- PUT /table/state/column/order¶
/api/v1/table/state/column/order
Set a new column ordering.
- Parameters:
values – List of column names. Example: [“result_smoking”, “result_acq”]
- Return:
True
- Status Codes:
200 OK – Success
- PUT /table/state/column/sort/{column_id}¶
/api/v1/table/state/column/sort/{column_id}
Toggle the sort ordering for a column (switch between no sorting, ascending and descending).
- Parameters:
column_id (string) – Identifier of the column.
column_id –
- Return:
True
- Status Codes:
200 OK – Success
- PUT /table/state/column/toggle/{column_id}¶
/api/v1/table/state/column/toggle/{column_id}
Toggle column (switch between active and inactive).
- Parameters:
column_id (string) – Identifier of the column.
column_id –
- Return:
True
- Status Codes:
200 OK – Success
- GET /table/state/filter¶
/api/v1/table/state/filter
Get list of active (i.e. selected) filters.
- Return:
List of filters. Example: [{“id”: “acq_score”, “text”: “ACQ Score”, “description”: “ACQ Score”, “selected”: [{“id”: 4, “text”: “1”}], “userexpr”: true}]
- Status Codes:
200 OK – Success
- PUT /table/state/filter/{filter_id}¶
/api/v1/table/state/filter/{filter_id}
Set a number of valid values for a particular filter.
- Parameters:
filter_id (string) – Identifier of the filter.
values – List of filter values. Example: [“5”, “7”]
filter_id –
- Return:
True
- Status Codes:
200 OK – Success
- PUT /table/state/filterexpr/{filter_id}/{expression}¶
/api/v1/table/state/filterexpr/{filter_id}/{expression}
Add a user expression.
- Parameters:
filter_id (string) – Identifier of the filter.
expression (string) – User expression. Example for value greater than 3: %3C%203
filter_id –
expression –
- Return:
Index of user expression in filter if user expression is valid, else None
- Status Codes:
200 OK – Success
- GET /table/state/filters/inactive¶
/api/v1/table/state/filters/inactive
Get list of all inactive filters.
- Return:
List of filters. Example: [{“id”: “result_acq”, “text”: “ACQ Score”, “selected”: false}, {“id”: “result_acq_timestamp”, “text”: “ACQ Score, last measurement”, “selected”: false}]
- Status Codes:
200 OK – Success
- PUT /table/state/group/aggregate/{column_id}/{index}¶
/api/v1/table/state/group/aggregate/{column_id}/{index}
Set group aggregate.
- Parameters:
column_id (string) – Identifier of the column.
index (integer) – Index of the aggregate.
column_id –
index –
- Return:
True
- Status Codes:
200 OK – Success
- DELETE /table/state/group/data¶
/api/v1/table/state/group/data
Delete the active group data fields.
- Return:
[]
- Status Codes:
200 OK – Success
- GET /table/state/group/data¶
/api/v1/table/state/group/data
Get list of group data fields.
Optionally, the list is filtered by the given keyword(s).
- Parameters:
q – Keyword(s) to search for (separated by spaces).
- Return:
List of group data fields. Example: [{“id”: “result_acq”, “text”: “ACQ Score”, “aggregates”: [“count”, “avg”, “sum”, “max”, “min”, “var_pop”, “var_samp”, “variance”, “stddev_pop”, “stddev_samp”, “stddev”], “selected”: false, “aggregate”: null}]
- Status Codes:
200 OK – Success
- DELETE /table/state/group/field¶
/api/v1/table/state/group/field
Delete the active group fields.
- Return:
[]
- Status Codes:
200 OK – Success
- GET /table/state/group/field¶
/api/v1/table/state/group/field
Get list of group fields. Optionally, the list is filtered by the given keyword(s).
- Parameters:
q – Keyword(s) to search for (separated by spaces).
- Return:
List of group fields. Example: [{“id”: “result_acq”, “text”: “ACQ Score”, “selected”: false}, {“id”: “result_acq_timestamp”, “text”: “ACQ Score, last measurement”, “selected”: false}]
- Status Codes:
200 OK – Success
- PUT /table/state/group/toggle/data/{column_id}¶
/api/v1/table/state/group/toggle/data/{column_id}
Toggle a data field (switch between active and inactive).
- Parameters:
column_id (string) – Identifier of the column.
column_id –
- Return:
True
- Status Codes:
200 OK – Success
- PUT /table/state/group/toggle/field/{column_id}¶
/api/v1/table/state/group/toggle/field/{column_id}
Toggle a group field (switch between active and inactive).
- Parameters:
column_id (string) – Identifier of the column.
column_id –
- Return:
True
- Status Codes:
200 OK – Success
- GET /table/state/groupfraction¶
/api/v1/table/state/groupfraction
Get list of active (i.e. selected) group fractions.
- Return:
List of all active group fractions. Example: [{“id”: “acq_score”, “text”: “ACQ Score”, “description”: “ACQ Score”, “selected”: [{“id”: 4, “text”: “1”}], “userexpr”: true}]
- Status Codes:
200 OK – Success
- PUT /table/state/groupfraction/{filter_id}¶
/api/v1/table/state/groupfraction/{filter_id}
Set a number of valid values for a particular group fraction.
- Parameters:
filter_id (string) – Identifier of the filter.
values – List of filter values. Example: [“5”, “7”]
filter_id –
- Return:
True
- Status Codes:
200 OK – Success
- GET /table/state/groupfractions/inactive¶
/api/v1/table/state/groupfractions/inactive
Get list of all inactive group fractions. Optionally, the list is sorted by how well its items match given keyword(s).
- Parameters:
q – Keyword(s) to search for (separated by spaces).
- Return:
List of group fractions. Example: [{“id”: “acq_score”, “text”: “ACQ Score”, “description”: “ACQ Score”, “selected”: [{“id”: 4, “text”: “1”}], “userexpr”: true}]
- Status Codes:
200 OK – Success
- PUT /table/state/page/{page_id}¶
/api/v1/table/state/page/{page_id}
Move to specified page in table.
- Return:
True
- Parameters:
page_id (integer) –
- Status Codes:
200 OK – Success
- PUT /table/state/pivot/aggregate/{column_id}/{index}¶
/api/v1/table/state/pivot/aggregate/{column_id}/{index}
Set pivot aggregate.
- Parameters:
column_id (string) – Identifier of the column.
index (integer) – Index of the aggregate.
column_id –
index –
- Return:
True
- Status Codes:
200 OK – Success
- DELETE /table/state/pivot/column¶
/api/v1/table/state/pivot/column
Delete the active pivot columns.
- Return:
[]
- Status Codes:
200 OK – Success
- GET /table/state/pivot/column¶
/api/v1/table/state/pivot/column
Get all pivot columns. Optionally, the list is sorted by how well its items match given keyword(s).
- Parameters:
q – Keyword(s) to search for (separated by spaces).
- Return:
List of pivot columns. Example: [{“id”: “result_acq”, “text”: “ACQ Score”, “selected”: true}, {“id”: “result_acq_timestamp”, “text”: “ACQ Score, last measurement”, “selected”: false}]
- Status Codes:
200 OK – Success
- DELETE /table/state/pivot/data¶
/api/v1/table/state/pivot/data
Delete the active pivot data.
- Return:
[]
- Status Codes:
200 OK – Success
- GET /table/state/pivot/data¶
/api/v1/table/state/pivot/data
Get list of pivot data. Optionally, the list is filtered by the given keyword(s).
- Parameters:
q – Keyword(s) to search for (separated by spaces).
- Return:
List of pivot data. Example: [{“id”: “number_examinations”, “text”: “Number of examinations”, “aggregates”: [“count”, “avg”], “selected”: false, “aggregate”: null}]
- Status Codes:
200 OK – Success
- DELETE /table/state/pivot/row¶
/api/v1/table/state/pivot/row
Delete all pivot rows.
- Return:
[]
- Status Codes:
200 OK – Success
- GET /table/state/pivot/row¶
/api/v1/table/state/pivot/row
Get list of pivot rows. Optionally, the list is filtered by the given keyword(s).
- Parameters:
q – Keyword(s) to search for (separated by spaces).
- Return:
List of pivot rows. Example: [{“id”: “result_acq”, “text”: “ACQ Score”, “selected”: false}, {“id”: “result_acq_timestamp”, “text”: “ACQ Score, last measurement”, “selected”: false}]
- Status Codes:
200 OK – Success
- PUT /table/state/pivot/toggle/column/{column_id}¶
/api/v1/table/state/pivot/toggle/column/{column_id}
Toggle pivot column (between active and inactive).
- Parameters:
column_id (string) – Identifier of the column.
column_id –
- Return:
True
- Status Codes:
200 OK – Success
- PUT /table/state/pivot/toggle/data/{column_id}¶
/api/v1/table/state/pivot/toggle/data/{column_id}
Toggle pivot data (between active and inactive).
- Parameters:
column_id (string) – Identifier of the column.
column_id –
- Return:
True
- Status Codes:
200 OK – Success