From 2889ef1231e8feccfd6b640971c47f49c3a51229 Mon Sep 17 00:00:00 2001 From: Dan Funk Date: Thu, 9 Jan 2020 10:09:59 -0500 Subject: [PATCH] Cleanup. --- README.md | 5 +- crc/protocol_builder.yml | 756 --------------------------------------- docs/index.rst | 2 + 3 files changed, 4 insertions(+), 759 deletions(-) delete mode 100644 crc/protocol_builder.yml diff --git a/README.md b/README.md index 39fe0649..48c746d7 100644 --- a/README.md +++ b/README.md @@ -60,7 +60,8 @@ You can try re-running this and getting the question wrong. You might open up the Joke bpmn diagram so you can see what this looks like to draw out. - +## Documentation +Additional Documentation is available on [ReadTheDocs](https://cr-connect-workflow.readthedocs.io/en/latest/#) ### Additional Reading @@ -73,5 +74,3 @@ other software systems for businesses are built. Know it well. 1. Be sure to give each task a thoughtful (but unique!) id. This will make the command line and debugging far far easier. I've tended to pre-fix these, so task_ask_riddle if a task is asking a riddle for instance. - -2. \ No newline at end of file diff --git a/crc/protocol_builder.yml b/crc/protocol_builder.yml deleted file mode 100644 index 55c5bf81..00000000 --- a/crc/protocol_builder.yml +++ /dev/null @@ -1,756 +0,0 @@ -openapi: "3.0.2" -info: - version: 1.0.0 - title: Workflow Microservice - license: - name: MIT -servers: - - url: http://localhost:5000/v1.0 -paths: - # /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" - default: - description: unexpected error - content: - application/json: - schema: - $ref: "#/components/schemas/Error" - 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" - default: - description: unexpected error - content: - application/json: - schema: - $ref: "#/components/schemas/Error" - /study/{study_id}: - get: - operationId: crc.api.study.get_study - summary: Provides a single study - tags: - - Studies - 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 - responses: - '200': - description: An Study Object - content: - application/json: - schema: - $ref: "#/components/schemas/Study" - default: - description: unexpected error - content: - application/json: - schema: - $ref: "#/components/schemas/Error" - post: - operationId: crc.api.study.update_study - summary: Updates an existing study with the given parameters. - tags: - - Studies - 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 - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/Study' - responses: - '200': - description: Study updated successfully. - content: - application/json: - schema: - $ref: "#/components/schemas/Study" - default: - description: unexpected error - content: - application/json: - schema: - $ref: "#/components/schemas/Error" - /study-update/{study_id}: - post: - operationId: crc.api.study.post_update_study_from_protocol_builder - summary: If the study is up-to-date with Protocol Builder, returns a 304 Not Modified. If out of date, return a 202 Accepted and study state changes to updating. - tags: - - Study Status - parameters: - - name: study_id - in: path - required: true - description: The id of the study that should be checked for updates. - schema: - type: integer - format: int32 - responses: - '304': - description: Study is currently up to date and does not need to be reloaded from Protocol Builder - '202': - description: Request accepted, will preform an update. Study state set to "updating" - default: - description: unexpected error - content: - application/json: - schema: - $ref: "#/components/schemas/Error" - - /study/{study_id}/workflows: - get: - operationId: crc.api.study.get_study_workflows - summary: Provides a list of workflows to be completed for the given study. - tags: - - Studies - 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 - responses: - '200': - description: An array of workflows - content: - application/json: - schema: - type: array - items: - $ref: "#/components/schemas/Workflow" - default: - description: unexpected error - content: - application/json: - schema: - $ref: "#/components/schemas/Error" - post: - operationId: crc.api.study.add_workflow_to_study - summary: Starts a new workflow for the given study using the provided spec. This is atypical, and should be left to the protocol builder. - tags: - - Studies - parameters: - - name: study_id - in: path - required: true - description: The id of the study for which a workflow should start - schema: - type: integer - format: int32 - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/WorkflowSpec' - responses: - '200': - description: An array of workflows - content: - application/json: - schema: - type: array - items: - $ref: "#/components/schemas/Workflow" - default: - description: unexpected error - content: - application/json: - schema: - $ref: "#/components/schemas/Error" - /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: - - Workflows and Tasks - responses: - '200': - description: An array of workflow specifications - content: - application/json: - schema: - type: array - items: - $ref: "#/components/schemas/WorkflowSpec" - default: - description: unexpected error - content: - application/json: - schema: - $ref: "#/components/schemas/Error" - /file: - parameters: - - name: spec_id - in: query - required: false - description: The unique name of a specification - 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" - default: - description: unexpected error - content: - application/json: - schema: - $ref: "#/components/schemas/Error" - post: - operationId: crc.api.file.add_file - summary: Add a new file - tags: - - Files - requestBody: - content: - multipart/form-data: - schema: - type: object - properties: - workflow_spec_id: - type: string - 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 - summary: Update a file - tags: - - Files - requestBody: - content: - multipart/form-data: - schema: - type: object - properties: - workflow_spec_id: - type: string - 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" - 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 - 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: '' - # /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: Detailed information for a specific workflow instance - tags: - - Workflows and Tasks - responses: - '200': - description: Returns details about the workflows state and current task - content: - application/json: - schema: - $ref: "#/components/schemas/Workflow" - default: - description: unexpected error - content: - application/json: - schema: - $ref: "#/components/schemas/Error" - delete: - operationId: crc.api.workflow.delete - summary: Removes an existing workflow - tags: - - Workflows and Tasks - responses: - '204': - description: The workflow was removed - /workflow/{workflow_id}/tasks: - get: - operationId: crc.api.workflow.get_tasks - summary: Return a list of all tasks for this workflow - tags: - - Workflows and Tasks - parameters: - - name: workflow_id - in: path - required: true - description: The id of the workflow - schema: - type: integer - format: int32 - responses: - '200': - description: Expected response to a valid request - content: - application/json: - schema: - type: array - items: - $ref: "#/components/schemas/Task" - default: - description: unexpected error - content: - application/json: - schema: - $ref: "#/components/schemas/Error" - # /v1.0/workflow/0/task/0 - /workflow/{workflow_id}/task/{task_id}: - get: - operationId: crc.api.workflow.get_task - summary: Get details of specific task in specific workflow instance - tags: - - Workflows and Tasks - 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 - responses: - '200': - description: Expected response to a valid request - content: - application/json: - schema: - $ref: "#/components/schemas/Task" - default: - description: unexpected error - content: - application/json: - schema: - $ref: "#/components/schemas/Error" - - put: - operationId: crc.api.workflow.update_task - summary: Update, attempt to complete a workflow task - tags: - - Workflows and Tasks - parameters: - - in: body - name: task - schema: - $ref: '#/components/schemas/Task' - - 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 - responses: - '201': - description: Null response - default: - description: unexpected error - content: - application/json: - schema: - $ref: "#/components/schemas/Error" - - -components: - schemas: - 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" - protocol_builder_status: - type: string - enum: [out_of_date, in_process, complete, updating] - example: done - primary_investigator_id: - type: string - example: dhf8r - sponsor: - type: string - example: "Sartography Pharmaceuticals" - ind_number: - type: string - example: "27b-6-42" - WorkflowSpec: - properties: - id: - type: string - display_name: - type: string - description: - type: string - bpmn_url: - type: string - svg_url: - type: string - File: - properties: - id: - type: number - readOnly: true - name: - type: string - example: "random_fact.bpmn" - version: - type: string - readOnly: true - last_updated: - type: string - format: date_time - example: "2019-12-25T09:12:33.001Z" - readOnly: true - type: - type: enum - enum: ['bpmn','svg', 'dmn'] - readOnly: true - primary: - type: boolean - readOnly: true - content_type: - type: string - example: "application/xml" - workflow_spec_id: - type: string - example: "random_fact" - file: - type: file - format: binary - Workflow: - properties: - id: - readOnly: true - type: integer - format: int64 - status: - type: enum - enum: ['user_input_required','waiting','complete'] - study_id: - readOnly: true - type: integer - workflow_spec: - $ref: "#/components/schemas/WorkflowSpec" - current_task_ids: - type: array - items: - type: String - messages: - type: array - items: - type: String - example: - id: 291234 - status: 'user_input_required' - current_task_ids: ['study_identification','Detailed Reports'] - workflow_spec: - id: 'prot_def' - display_name: 'Protocol Definition' - description: 'Collect some additional information about your protocol to complete forms and processes.' - bpmn_url: 'https://crconnect.viriginia.edu/prot_def.bpmn' - svg_url: 'https://crconnect.viriginia.edu/prot_def.svg' - messages: [ - "Protocol Builder reports that the protocol process is complete for this study.", - "IDS Submission Template was generated successfully." - ] - 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 - 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" - "defaultValue": "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" - "defaultValue": "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 - defaultValue: - type: string - 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." diff --git a/docs/index.rst b/docs/index.rst index be65adce..f32f1c8a 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -18,3 +18,5 @@ Indices and tables * :ref:`genindex` * :ref:`modindex` * :ref:`search` + +