-
Notifications
You must be signed in to change notification settings - Fork 4
Closed
Description
AIDE provides a clinical review service, meaning the outputs of tasks can be sent to AIDE to be reviewed by clinician manually, before the workflow resumes. A plug-in should be created for the workflow manager to interact with this clinical review service.
Requirements
The AIDE clinical review service is triggered using a RabbitMQ message. This message should be created by the plug-in and published to the aide.clinical_review.request queue.
Implementation Notes
The event should be of the following schema:
{
"execution_id": "ID of the current task execution",
"correlation_id": "correlation ID of the current payload execution",
"task_id": "the task ID as defined in the workflow specification",
"workflow_name": "the name of the currently running workflow",
"patient_metadata":{
"patient_name":" string",
"patient_id":" string",
"patient_dob":"string",
"patient_gender":" string"
},
"files": [
{
"name": "string",
"endpoint": "string - the MinIO address",
"bucket": "string",
"relative_root_path":"string -path in bucket",
"credentials": {
"access_key":"",
"access_token":"",
"session_token":""
}
}
]
}
- Patient information should be passed to the plug-in as parameters. This should make use of the pre extracted patient information, see Save patient details in database #174.
- Workflow name should be provided as a parameter. This should be exposed in
context.workflow.name. - Task ID and correlation ID should be provided the plug-in as standard.
- An interface will need to be provided to the plug-in to publish messages to RabbitMQ
- The original input as well as the data to be reviewed should be passed to the plug-in as artefacts. These should be added to the clinical review request task.
Example task definition
{
"id": "clinical_review",
"type": "aide_clinical_review",
"args": {
"queue_name": "aide.clinical_review.request",
"parameters": [
{
"name": "patient_id",
"value": "{{ context.input.patient_details.id }}"
},
{
"name": "patient_name",
"value": "{{ context.input.patient_details.name }}"
},
{
"name": "patient_sex",
"value": "{{ context.input.patient_details.sex }}"
},
{
"name": "patient_dob",
"value": "{{ context.input.patient_details.dob }}"
},
{
"name": "workflow_name",
"value": "{{ context.workflow.name }}"
},
{
"name": "reviewed_task_id",
"value": "{{ context.executions.my_amazing_task.task_id }}"
},
{
"name": "reviewed_execution_id",
"value": "{{ context.executions.my_amazing_task.execution_id }}"
}
]
},
"artifacts": {
"input": [
{
"name": "original_dicom",
"value": "{{ context.input.dicom }}"
},
{
"name": "additional_dicom",
"value": "{{ context.executions['my_amazing_task'].artifacts.my_amazing_result }}"
}
]
},
"task_destinations": [
{
"name": "export_to_pacs",
"conditions": "{{ context.executions['clinical_review'].result['approved'] }} == true"
}
]
}
Metadata
Metadata
Assignees
Labels
Type
Projects
Status
Done