Kaapana Services
You can access Kaapana services in processing containers:
dicom-web-filter: Access control to dicom files (PACS)
access-information-interface: Manage users, roles, rights, software and other access control data.
notifications: Manage user or project notifications
minio: Manage files in the persistent object store
There is a kaapanapy library package that should allow you to easily use these services.
Notification Service
You can send notifications to the user (yourself) or to the project within your authorization scope (project users) using the following commands.
You can also find an example in:
templates_and_examples/examples/processing-pipelines/example/processing-containers/notify/files/example-notify.py
Example usage:
from kaapanapy.services import Notification, NotificationService
NotificationService.send(
project_id: str, user_id: str, notification: Notification
)
NotificationService.send(
project_id: str, notification: Notification
)
Notification Model
class Notification(BaseModel):
topic: Optional[str]
title: str
description: str
icon: Optional[str]
link: Optional[str]
It is possible to send notification on failure of the workflow. Be aware that workflows with Single Execution flag will send notification for each failed job. You can set it up for the dag by adding it to the DAG arguments:
args = {
"ui_forms": ui_forms,
"ui_visible": True,
"owner": "kaapana",
"start_date": days_ago(0),
"retries": 1,
"retry_delay": timedelta(seconds=30),
"send_notification_on_workflow_failure" : True
}
dag = DAG(
dag_id="collect-metadata",
default_args=args,
concurrency=50,
max_active_runs=50,
schedule_interval=None,
)