Skip to content

Create clinical review plug-in #179

@joshliberty

Description

@joshliberty

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":""
        }
      }
   ]
}
  1. 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.
  2. Workflow name should be provided as a parameter. This should be exposed in context.workflow.name.
  3. Task ID and correlation ID should be provided the plug-in as standard.
  4. An interface will need to be provided to the plug-in to publish messages to RabbitMQ
  5. 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

Labels

Type

No type

Projects

Status

Done

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions