1256 lines
36 KiB
YAML
1256 lines
36 KiB
YAML
openapi: "3.0.2"
|
|
info:
|
|
version: 1.0.0
|
|
title: Workflow Microservice
|
|
license:
|
|
name: MIT
|
|
servers:
|
|
- url: http://localhost:5000/v1.0
|
|
security:
|
|
- jwt: ['secret']
|
|
paths:
|
|
/sso_backdoor:
|
|
get:
|
|
operationId: crc.api.user.backdoor
|
|
summary: A backdoor that allows someone to log in as a specific user, if they
|
|
are in a staging environment.
|
|
security: [] # Disable security for this endpoint only.
|
|
parameters:
|
|
- name: uid
|
|
in: query
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: email_address
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
- name: display_name
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
- name: affiliation
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
- name: eppn
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
- name: first_name
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
- name: last_name
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
- name: title
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
- name: redirect_url
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
tags:
|
|
- Users
|
|
responses:
|
|
'304':
|
|
description: Redirection to the hosted frontend with an auth_token header.
|
|
/user:
|
|
get:
|
|
operationId: crc.api.user.get_current_user
|
|
summary: Returns the current user.
|
|
tags:
|
|
- Users
|
|
responses:
|
|
'200':
|
|
description: The currently authenticated user.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/User"
|
|
# /v1.0/study
|
|
/study:
|
|
get:
|
|
operationId: crc.api.study.all_studies
|
|
summary: Provides a list of studies related to the current user.
|
|
tags:
|
|
- Studies
|
|
responses:
|
|
'200':
|
|
description: An array of studies, ordered by the last modified date.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/Study"
|
|
post:
|
|
operationId: crc.api.study.add_study
|
|
summary: Creates a new study with the given parameters.
|
|
tags:
|
|
- Studies
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Study'
|
|
responses:
|
|
'200':
|
|
description: Study created successfully.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/Study"
|
|
/study-files:
|
|
get:
|
|
operationId: crc.api.study.all_studies_and_files
|
|
summary: Provides a list of studies with submitted files
|
|
tags:
|
|
- Studies
|
|
responses:
|
|
'200':
|
|
description: An array of studies, with submitted files, ordered by the last modified date.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/Study"
|
|
/study/{study_id}:
|
|
parameters:
|
|
- name: study_id
|
|
in: path
|
|
required: true
|
|
description: The id of the study for which workflows should be returned.
|
|
schema:
|
|
type: integer
|
|
format: int32
|
|
get:
|
|
operationId: crc.api.study.get_study
|
|
summary: Provides a single study
|
|
tags:
|
|
- Studies
|
|
responses:
|
|
'200':
|
|
description: An Study Object
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/Study"
|
|
delete:
|
|
operationId: crc.api.study.delete_study
|
|
summary: Removes the given study completely.
|
|
tags:
|
|
- Studies
|
|
responses:
|
|
'204':
|
|
description: The study has been removed.
|
|
put:
|
|
operationId: crc.api.study.update_study
|
|
summary: Updates an existing study with the given parameters.
|
|
tags:
|
|
- Studies
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Study'
|
|
responses:
|
|
'200':
|
|
description: Study updated successfully.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/Study"
|
|
/workflow-specification:
|
|
get:
|
|
operationId: crc.api.workflow.all_specifications
|
|
summary: Provides a list of workflows specifications that can be added to a study manually. Please note that Protocol Builder will handle this most of the time.
|
|
tags:
|
|
- Workflow Specifications
|
|
responses:
|
|
'200':
|
|
description: An array of workflow specifications
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/WorkflowSpec"
|
|
post:
|
|
operationId: crc.api.workflow.add_workflow_specification
|
|
summary: Creates a new workflow specification with the given parameters.
|
|
tags:
|
|
- Workflow Specifications
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/WorkflowSpec'
|
|
responses:
|
|
'200':
|
|
description: Workflow specification created successfully.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/WorkflowSpec"
|
|
/workflow-specification/{spec_id}:
|
|
parameters:
|
|
- name: spec_id
|
|
in: path
|
|
required: false
|
|
description: The unique id of an existing workflow specification to modify.
|
|
schema:
|
|
type: string
|
|
get:
|
|
operationId: crc.api.workflow.get_workflow_specification
|
|
summary: Returns a single workflow specification
|
|
tags:
|
|
- Workflow Specifications
|
|
responses:
|
|
'200':
|
|
description: Workflow specification.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/WorkflowSpec"
|
|
put:
|
|
operationId: crc.api.workflow.update_workflow_specification
|
|
summary: Modifies an existing workflow specification with the given parameters.
|
|
tags:
|
|
- Workflow Specifications
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/WorkflowSpec'
|
|
responses:
|
|
'200':
|
|
description: Workflow specification created successfully.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/WorkflowSpec"
|
|
delete:
|
|
operationId: crc.api.workflow.delete_workflow_specification
|
|
summary: Removes an existing workflow specification
|
|
tags:
|
|
- Workflow Specifications
|
|
responses:
|
|
'204':
|
|
description: The workflow specification has been removed.
|
|
/workflow-specification/{spec_id}/validate:
|
|
parameters:
|
|
- name: spec_id
|
|
in: path
|
|
required: false
|
|
description: The unique id of an existing workflow specification to validate.
|
|
schema:
|
|
type: string
|
|
get:
|
|
operationId: crc.api.workflow.validate_workflow_specification
|
|
summary: Loads and attempts to execute a Workflow Specification, returning a list of errors encountered
|
|
tags:
|
|
- Workflow Specifications
|
|
responses:
|
|
'200':
|
|
description: Workflow specification.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/Error"
|
|
/workflow-specification-category:
|
|
get:
|
|
operationId: crc.api.workflow.list_workflow_spec_categories
|
|
summary: Provides a list of categories that can be added to a workflow spec.
|
|
tags:
|
|
- Workflow Specification Category
|
|
responses:
|
|
'200':
|
|
description: An array of workflow specification categories
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/WorkflowSpecCategory"
|
|
post:
|
|
operationId: crc.api.workflow.add_workflow_spec_category
|
|
summary: Creates a new workflow spec category with the given parameters.
|
|
tags:
|
|
- Workflow Specification Category
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/WorkflowSpecCategory'
|
|
responses:
|
|
'200':
|
|
description: Workflow spec category created successfully.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/WorkflowSpecCategory"
|
|
/workflow-specification-category/{cat_id}:
|
|
parameters:
|
|
- name: cat_id
|
|
in: path
|
|
required: false
|
|
description: The unique id of an existing workflow spec category to modify.
|
|
schema:
|
|
type: string
|
|
get:
|
|
operationId: crc.api.workflow.get_workflow_spec_category
|
|
summary: Returns a single workflow spec category
|
|
tags:
|
|
- Workflow Specification Category
|
|
responses:
|
|
'200':
|
|
description: Workflow spec category.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/WorkflowSpecCategory"
|
|
put:
|
|
operationId: crc.api.workflow.update_workflow_spec_category
|
|
summary: Modifies an existing workflow spec category with the given parameters.
|
|
tags:
|
|
- Workflow Specification Category
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/WorkflowSpecCategory'
|
|
responses:
|
|
'200':
|
|
description: Workflow spec category created successfully.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/WorkflowSpecCategory"
|
|
delete:
|
|
operationId: crc.api.workflow.delete_workflow_spec_category
|
|
summary: Removes an existing workflow spec category
|
|
tags:
|
|
- Workflow Specification Category
|
|
responses:
|
|
'204':
|
|
description: The workflow spec category has been removed.
|
|
/file:
|
|
parameters:
|
|
- name: workflow_spec_id
|
|
in: query
|
|
required: false
|
|
description: The unique id of a workflow specification
|
|
schema:
|
|
type: string
|
|
- name: study_id
|
|
in: query
|
|
required: false
|
|
description: The unique id of a study
|
|
schema:
|
|
type: integer
|
|
- name: workflow_id
|
|
in: query
|
|
required: false
|
|
description: The unique id of a workflow instance
|
|
schema:
|
|
type: integer
|
|
- name: task_id
|
|
in: query
|
|
required: false
|
|
description: The unique id of a workflow task
|
|
schema:
|
|
type: string
|
|
- name: form_field_key
|
|
in: query
|
|
required: false
|
|
description: The unique key of a workflow task form field. Make sure this matches a document in the irb_documents.xslx reference sheet.
|
|
schema:
|
|
type: string
|
|
get:
|
|
operationId: crc.api.file.get_files
|
|
summary: Provides a list of files that match the given parameters (such as a spec id) IMPORTANT, only includes metadata, not the file content.
|
|
tags:
|
|
- Files
|
|
responses:
|
|
'200':
|
|
description: An array of file descriptions (not the file content)
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/File"
|
|
|
|
post:
|
|
operationId: crc.api.file.add_file
|
|
summary: Add a new file
|
|
tags:
|
|
- Files
|
|
requestBody:
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
responses:
|
|
'200':
|
|
description: Metadata about the uploaded file, but not the file content.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/File"
|
|
/file/{file_id}:
|
|
parameters:
|
|
- name: file_id
|
|
in: path
|
|
required: true
|
|
description: The id of the File requested
|
|
schema:
|
|
type: integer
|
|
get:
|
|
operationId: crc.api.file.get_file_info
|
|
summary: Returns metadata about a file.
|
|
tags:
|
|
- Files
|
|
responses:
|
|
'200':
|
|
description: Returns the file information requested.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/File"
|
|
put:
|
|
operationId: crc.api.file.update_file_info
|
|
summary: Updates existing file info with the given parameters.
|
|
tags:
|
|
- Files
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/File'
|
|
responses:
|
|
'200':
|
|
description: File info updated successfully.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/File"
|
|
delete:
|
|
operationId: crc.api.file.delete_file
|
|
summary: Removes an existing file
|
|
tags:
|
|
- Files
|
|
responses:
|
|
'204':
|
|
description: The file has been removed.
|
|
/file/{file_id}/data:
|
|
parameters:
|
|
- name: file_id
|
|
in: path
|
|
required: true
|
|
description: The id of the File requested
|
|
schema:
|
|
type: integer
|
|
get:
|
|
operationId: crc.api.file.get_file_data
|
|
summary: Returns only the file contents
|
|
tags:
|
|
- Files
|
|
responses:
|
|
'200':
|
|
description: Returns the actual file
|
|
content:
|
|
application/octet-stream:
|
|
schema:
|
|
type: string
|
|
format: binary
|
|
example: '<?xml version="1.0" encoding="UTF-8"?><bpmn:definitions></bpmn:definitions>'
|
|
put:
|
|
operationId: crc.api.file.update_file_data
|
|
summary: Update only the file contents for a given file
|
|
tags:
|
|
- Files
|
|
requestBody:
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
x-body-name: file
|
|
type: object
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
required:
|
|
- file
|
|
responses:
|
|
'200':
|
|
description: Returns the updated file model with the new version information.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/File"
|
|
# /v1.0/workflow/0
|
|
/reference_file:
|
|
get:
|
|
operationId: crc.api.file.get_reference_files
|
|
summary: Provides a list of existing reference files that are available in the system.
|
|
tags:
|
|
- Files
|
|
responses:
|
|
'200':
|
|
description: An array of file descriptions (not the file content)
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/File"
|
|
/reference_file/{name}:
|
|
parameters:
|
|
- name: name
|
|
in: path
|
|
required: true
|
|
description: The special name of the reference file.
|
|
schema:
|
|
type: string
|
|
get:
|
|
operationId: crc.api.file.get_reference_file
|
|
summary: Reference files are called by name rather than by id.
|
|
tags:
|
|
- Files
|
|
responses:
|
|
'200':
|
|
description: Returns the actual file
|
|
content:
|
|
application/octet-stream:
|
|
schema:
|
|
type: string
|
|
format: binary
|
|
example: '<?xml version="1.0" encoding="UTF-8"?><bpmn:definitions></bpmn:definitions>'
|
|
put:
|
|
operationId: crc.api.file.set_reference_file
|
|
summary: Update the contents of a named reference file.
|
|
tags:
|
|
- Files
|
|
requestBody:
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
responses:
|
|
'200':
|
|
description: Returns the actual file
|
|
content:
|
|
application/octet-stream:
|
|
schema:
|
|
type: string
|
|
format: binary
|
|
example: '<?xml version="1.0" encoding="UTF-8"?><bpmn:definitions></bpmn:definitions>'
|
|
# /v1.0/workflow/0
|
|
/workflow/{workflow_id}:
|
|
parameters:
|
|
- name: workflow_id
|
|
in: path
|
|
required: true
|
|
description: The id of the workflow
|
|
schema:
|
|
type: integer
|
|
format: int32
|
|
get:
|
|
operationId: crc.api.workflow.get_workflow
|
|
summary: Returns a workflow, can also be used to do a soft or hard reset on the workflow.
|
|
parameters:
|
|
- name: soft_reset
|
|
in: query
|
|
required: false
|
|
description: Set this to true to use the latest workflow specification to load minor modifications to the spec.
|
|
schema:
|
|
type: boolean
|
|
- name: hard_reset
|
|
in: query
|
|
required: false
|
|
description: Set this to true to reset the workflow
|
|
schema:
|
|
type: boolean
|
|
tags:
|
|
- Workflows and Tasks
|
|
responses:
|
|
'200':
|
|
description: Returns details about the workflows state and current task
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/Workflow"
|
|
delete:
|
|
operationId: crc.api.workflow.delete_workflow
|
|
summary: Removes an existing workflow
|
|
tags:
|
|
- Workflows and Tasks
|
|
responses:
|
|
'204':
|
|
description: The workflow was removed
|
|
/workflow/{workflow_id}/task/{task_id}/data:
|
|
parameters:
|
|
- name: workflow_id
|
|
in: path
|
|
required: true
|
|
description: The id of the workflow
|
|
schema:
|
|
type: integer
|
|
format: int32
|
|
- name: task_id
|
|
in: path
|
|
required: true
|
|
description: The id of the task
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
put:
|
|
operationId: crc.api.workflow.update_task
|
|
summary: Exclusively for User Tasks, submits form data as a flat set of key/values.
|
|
tags:
|
|
- Workflows and Tasks
|
|
requestBody:
|
|
description: Key / Value pairs in JSON format.
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
example:
|
|
favorite_color: blue
|
|
capital_assyria: Assur
|
|
responses:
|
|
'201':
|
|
description: Returns the updated workflow with this task as the current task.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/Workflow"
|
|
/workflow/{workflow_id}/task/{task_id}/set_token:
|
|
parameters:
|
|
- name: workflow_id
|
|
in: path
|
|
required: true
|
|
description: The id of the workflow
|
|
schema:
|
|
type: integer
|
|
format: int32
|
|
- name: task_id
|
|
in: path
|
|
required: true
|
|
description: The id of the task
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
put:
|
|
operationId: crc.api.workflow.set_current_task
|
|
summary: Attempts to make the given task the Current Active Task
|
|
tags:
|
|
- Workflows and Tasks
|
|
responses:
|
|
'201':
|
|
description: Returns the updated workflow with this task as the current task.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/Workflow"
|
|
/workflow/{workflow_id}/task/{task_id}/lookup/{field_id}:
|
|
parameters:
|
|
- name: workflow_id
|
|
in: path
|
|
required: true
|
|
description: The id of the workflow
|
|
schema:
|
|
type: integer
|
|
format: int32
|
|
- name: task_id
|
|
in: path
|
|
required: true
|
|
description: The id of the task
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
- name: field_id
|
|
in: path
|
|
required: true
|
|
description: The id of the field (as set in the bpmn editor) on which to do a lookup.
|
|
schema:
|
|
type: string
|
|
- name: query
|
|
in: query
|
|
required: false
|
|
description: The string to search for in the Value column of the lookup table.
|
|
schema:
|
|
type: string
|
|
- name: limit
|
|
in: query
|
|
required: false
|
|
description: The total number of records to return, defaults to 10.
|
|
schema:
|
|
type: integer
|
|
get:
|
|
operationId: crc.api.workflow.lookup
|
|
summary: Provides type-ahead search against a lookup table associted with a form field.
|
|
tags:
|
|
- Workflows and Tasks
|
|
responses:
|
|
'201':
|
|
description: Returns the a list of values and labels for a lookup form.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/LookupItem"
|
|
/render_markdown:
|
|
parameters:
|
|
- name: data
|
|
in: query
|
|
required: true
|
|
description: The json data to use in populating the template
|
|
schema:
|
|
type: string
|
|
- name: template
|
|
in: query
|
|
required: true
|
|
description: The markdown template to process.
|
|
schema:
|
|
type: string
|
|
get:
|
|
operationId: crc.api.tools.render_markdown
|
|
security: [] # Disable security for this endpoint only.
|
|
summary: Processes the markdown template using the data provided.
|
|
tags:
|
|
- Configurator Tools
|
|
responses:
|
|
'201':
|
|
description: Returns the updated workflow with the task completed.
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
/render_docx:
|
|
put:
|
|
operationId: crc.api.tools.render_docx
|
|
security: [] # Disable security for this endpoint only.
|
|
summary: Renders a docx template with embedded jinja2 markup.
|
|
tags:
|
|
- Configurator Tools
|
|
requestBody:
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
data:
|
|
type: string
|
|
format: json
|
|
responses:
|
|
'200':
|
|
description: Returns the generated document.
|
|
content:
|
|
application/octet-stream:
|
|
schema:
|
|
type: string
|
|
format: binary
|
|
example: '<?xml version="1.0" encoding="UTF-8"?><bpmn:definitions></bpmn:definitions>'
|
|
/list_scripts:
|
|
get:
|
|
operationId: crc.api.tools.list_scripts
|
|
security: [] # Disable security for this endpoint only.
|
|
summary: Returns an list of scripts, along with their descriptions
|
|
tags:
|
|
- Configurator Tools
|
|
responses:
|
|
'201':
|
|
description: The list of scripts
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/Script"
|
|
/approval:
|
|
parameters:
|
|
- name: approver_uid
|
|
in: query
|
|
required: false
|
|
description: Restrict results to a given approver uid, maybe we restrict the use of this at somepoint.
|
|
schema:
|
|
type: string
|
|
get:
|
|
operationId: crc.api.approval.get_approvals
|
|
summary: Provides a list of workflows approvals
|
|
tags:
|
|
- Approvals
|
|
responses:
|
|
'200':
|
|
description: An array of approvals
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/Approval"
|
|
/approval/{approval_id}:
|
|
parameters:
|
|
- name: approval_id
|
|
in: path
|
|
required: true
|
|
description: The id of the approval in question.
|
|
schema:
|
|
type: integer
|
|
format: int32
|
|
put:
|
|
operationId: crc.api.approval.update_approval
|
|
summary: Updates an approval with the given parameters
|
|
tags:
|
|
- Approvals
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Approval'
|
|
responses:
|
|
'200':
|
|
description: Study updated successfully.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/Approval"
|
|
components:
|
|
securitySchemes:
|
|
jwt:
|
|
type: http
|
|
scheme: bearer
|
|
bearerFormat: JWT
|
|
x-bearerInfoFunc: crc.api.user.verify_token
|
|
schemas:
|
|
User:
|
|
properties:
|
|
uid:
|
|
type: string
|
|
email_address:
|
|
type: string
|
|
display_name:
|
|
type: string
|
|
affiliation:
|
|
type: string
|
|
eppn:
|
|
type: string
|
|
first_name:
|
|
type: string
|
|
last_name:
|
|
type: string
|
|
title:
|
|
type: string
|
|
DataModel:
|
|
properties:
|
|
id:
|
|
type: string
|
|
Study:
|
|
properties:
|
|
id:
|
|
type: integer
|
|
example: 1234
|
|
title:
|
|
type: string
|
|
example: The impact of fried pickles on beer consumption in bipedal software developers.
|
|
last_updated:
|
|
type: string
|
|
format: date_time
|
|
example: "2019-12-25T09:12:33.001Z"
|
|
primary_investigator_id:
|
|
type: string
|
|
example: dhf8r
|
|
user_uid:
|
|
type: string
|
|
example: dhf8r
|
|
protocol_builder_status:
|
|
type: string
|
|
enum: [INCOMPLETE, ACTIVE, HOLD, OPEN, ABANDONED]
|
|
example: done
|
|
sponsor:
|
|
type: string
|
|
example: "Sartography Pharmaceuticals"
|
|
ind_number:
|
|
type: string
|
|
example: "27b-6-42"
|
|
hsr_number:
|
|
type: string
|
|
x-nullable: true
|
|
example: "27b-6-1212"
|
|
categories:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/WorkflowSpecCategory"
|
|
WorkflowSpec:
|
|
properties:
|
|
id:
|
|
type: string
|
|
name:
|
|
type: string
|
|
display_name:
|
|
type: string
|
|
description:
|
|
type: string
|
|
primary_process_id:
|
|
type: string
|
|
nullable: true
|
|
category_id:
|
|
type: integer
|
|
nullable: true
|
|
workflow_spec_category:
|
|
$ref: "#/components/schemas/WorkflowSpecCategory"
|
|
is_status:
|
|
type: boolean
|
|
nullable: true
|
|
WorkflowSpecCategory:
|
|
properties:
|
|
id:
|
|
type: integer
|
|
name:
|
|
type: string
|
|
display_name:
|
|
type: string
|
|
display_order:
|
|
type: integer
|
|
workflows:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/Workflow"
|
|
File:
|
|
properties:
|
|
id:
|
|
type: number
|
|
name:
|
|
type: string
|
|
example: "random_fact.bpmn"
|
|
version:
|
|
type: integer
|
|
last_updated:
|
|
type: string
|
|
format: date_time
|
|
example: "2019-12-25T09:12:33.001Z"
|
|
type:
|
|
type: string
|
|
primary:
|
|
type: boolean
|
|
content_type:
|
|
type: string
|
|
example: "application/xml"
|
|
workflow_spec_id:
|
|
type: string
|
|
example: "random_fact"
|
|
x-nullable: true
|
|
file:
|
|
type: file
|
|
format: binary
|
|
Workflow:
|
|
properties:
|
|
id:
|
|
readOnly: true
|
|
type: integer
|
|
format: int64
|
|
status:
|
|
type: enum
|
|
enum: ['new','user_input_required','waiting','complete']
|
|
navigation:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/NavigationItem"
|
|
next_task:
|
|
$ref: "#/components/schemas/Task"
|
|
workflow_spec_id:
|
|
type: string
|
|
spec_version:
|
|
type: string
|
|
is_latest_spec:
|
|
type: boolean
|
|
num_tasks_total:
|
|
type: integer
|
|
num_tasks_complete:
|
|
type: integer
|
|
num_tasks_incomplete:
|
|
type: integer
|
|
|
|
example:
|
|
id: 291234
|
|
status: 'user_input_required'
|
|
workflow_spec_id: 'random_fact'
|
|
spec_version: 'v1.1 [22,23]'
|
|
is_latest_spec: True
|
|
next_task:
|
|
id: study_identification
|
|
name: Study Identification
|
|
title: IRB Review
|
|
documentation: "# Heading 1\n\nMarkdown documentation text goes here"
|
|
type: form
|
|
state: ready
|
|
Task:
|
|
properties:
|
|
id:
|
|
readOnly: true
|
|
type: string
|
|
name:
|
|
type: string
|
|
title:
|
|
type: string
|
|
type:
|
|
type: string
|
|
state:
|
|
type: string
|
|
form:
|
|
$ref: "#/components/schemas/Form"
|
|
documentation:
|
|
type: string
|
|
data:
|
|
type: object
|
|
multi_instance_type:
|
|
type: enum
|
|
enum: ['none', 'looping', 'parallel', 'sequential']
|
|
multi_instance_count:
|
|
type: number
|
|
multi_instance_index:
|
|
type: number
|
|
process_name:
|
|
type: string
|
|
properties:
|
|
type: object
|
|
example:
|
|
id: study_identification
|
|
name: Study Identification
|
|
title: IRB Review
|
|
documentation: "# Heading 1\n\nMarkdown documentation text goes here"
|
|
type: form
|
|
state: ready
|
|
form:
|
|
"key": "irb_review_form"
|
|
"fields":
|
|
- "id": "irb_review_type"
|
|
"type": "enum"
|
|
"label": "Select IRB Review Type"
|
|
"options":
|
|
- id: "emergency_use"
|
|
name: "Emergency Use"
|
|
- id: "humanitarian_device"
|
|
name: "Humanitarian Device"
|
|
- id: "non_human"
|
|
name: "Non-Human"
|
|
- id: "non_uva_agent"
|
|
name: "Non-UVA Agent"
|
|
- id: "exempt"
|
|
name: "Exempt"
|
|
- id: "non_engaged"
|
|
name: "Non-Engaged"
|
|
- id: "expedited"
|
|
name: "Expedited"
|
|
- id: "full_board"
|
|
name: "Full Board"
|
|
"default_value": "Full Board"
|
|
"validation":
|
|
- name: "required"
|
|
config: "true"
|
|
"properties":
|
|
- id: "description"
|
|
value: "Description text goes here"
|
|
- id: "help"
|
|
value: "# Heading 1\n\nMarkdown help text goes here"
|
|
- id: "required_expression"
|
|
value: "model.my_boolean_field_id && model.my_enum_field_value !== 'something'"
|
|
- id: "hide_expression"
|
|
value: "model.my_enum_field_value === 'something'"
|
|
Form:
|
|
properties:
|
|
key:
|
|
type: string
|
|
fields:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/Field"
|
|
example:
|
|
"key": "irb_review_form"
|
|
"fields":
|
|
- "id": "irb_review_type"
|
|
"type": "enum"
|
|
"label": "Select IRB Review Type"
|
|
"options":
|
|
- id: "emergency_use"
|
|
name: "Emergency Use"
|
|
- id: "humanitarian_device"
|
|
name: "Humanitarian Device"
|
|
- id: "non_human"
|
|
name: "Non-Human"
|
|
- id: "non_uva_agent"
|
|
name: "Non-UVA Agent"
|
|
- id: "exempt"
|
|
name: "Exempt"
|
|
- id: "non_engaged"
|
|
name: "Non-Engaged"
|
|
- id: "expedited"
|
|
name: "Expedited"
|
|
- id: "full_board"
|
|
name: "Full Board"
|
|
"default_value": "Full Board"
|
|
"validation":
|
|
- name: "required"
|
|
config: "true"
|
|
"properties":
|
|
- id: "description"
|
|
value: "Description text goes here"
|
|
- id: "help"
|
|
value: "# Heading 1\n\nMarkdown help text goes here"
|
|
- id: "required_expression"
|
|
value: "model.my_boolean_field_id && model.my_enum_field_value !== 'something'"
|
|
- id: "hide_expression"
|
|
value: "model.my_enum_field_value === 'something'"
|
|
Field:
|
|
properties:
|
|
id:
|
|
type: string
|
|
readOnly: true
|
|
type:
|
|
type: enum
|
|
enum: ['string', 'long', 'boolean', 'date', 'enum']
|
|
readOnly: true
|
|
label:
|
|
type: string
|
|
readOnly: true
|
|
options:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/EnumFieldOption"
|
|
readOnly: true
|
|
default_value:
|
|
type: string
|
|
readOnly: true
|
|
validation:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/FieldValidation"
|
|
readOnly: true
|
|
"properties":
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/FieldProperty"
|
|
readOnly: true
|
|
EnumFieldOption:
|
|
properties:
|
|
id:
|
|
type: string
|
|
name:
|
|
type: string
|
|
FieldValidation:
|
|
properties:
|
|
name:
|
|
type: string
|
|
config:
|
|
type: string
|
|
FieldProperty:
|
|
properties:
|
|
id:
|
|
type: string
|
|
value:
|
|
type: string
|
|
example:
|
|
id: "required_expression"
|
|
value: "model.should_require"
|
|
Error:
|
|
required:
|
|
- code
|
|
- message
|
|
properties:
|
|
code:
|
|
type: string
|
|
format: string
|
|
example: "access_denied"
|
|
message:
|
|
type: string
|
|
example: "You do not have permission to view the requested study."
|
|
Script:
|
|
properties:
|
|
name:
|
|
type: string
|
|
format: string
|
|
example: "random_fact"
|
|
description:
|
|
type: string
|
|
example: "Returns a random fact about a topic. Provide an argument of either 'cat', 'norris', or 'buzzword'"
|
|
LookupItem:
|
|
properties:
|
|
value:
|
|
type: string
|
|
format: string
|
|
example: "1000"
|
|
label:
|
|
type: string
|
|
example: "Chuck Norris"
|
|
data:
|
|
type: any
|
|
NavigationItem:
|
|
properties:
|
|
id:
|
|
type: number
|
|
format: integer
|
|
example: 5
|
|
task_id:
|
|
type: string
|
|
format: uuid
|
|
example: "1234123uuid1234"
|
|
name:
|
|
type: string
|
|
example: "Task_Has_bananas"
|
|
description:
|
|
type: string
|
|
example: "Has Bananas?"
|
|
backtracks:
|
|
type: boolean
|
|
example: false
|
|
level:
|
|
type: integer
|
|
example: 1
|
|
indent:
|
|
type: integer
|
|
example: 2
|
|
child_count:
|
|
type: integer
|
|
example: 4
|
|
state:
|
|
type: enum
|
|
enum: ['FUTURE', 'WAITING', 'READY', 'CANCELLED', 'COMPLETED','LIKELY','MAYBE']
|
|
readOnly: true
|
|
is_decision:
|
|
type: boolean
|
|
example: False
|
|
readOnly: true
|
|
task:
|
|
$ref: "#/components/schemas/Task"
|
|
Approval:
|
|
properties:
|
|
id:
|
|
type: number
|
|
format: integer
|
|
example: 5
|
|
|