Core concepts

This document introduces the basic concepts of the MONAI Deploy App SDK. If you are eager to try out the SDK in practice, you can start with the tutorial. After the tutorial, you can return to this document to learn more about how MONAI Deploy App SDK works.

As described in the Architecture of MONAI Deploy App SDK, an application is implemented by subclassing Application class.

%%{init: {"theme": "base", "themeVariables": { "fontSize": "12px"}} }%% classDiagram direction TB class Application { } class Graph { } class Operator { } <<abstract>> Application <<abstract>> Graph <<abstract>> Operator Application --> Graph : makes use of Graph "1" --> "many" Operator : contains

Application represents a workflow as a Graph and the graph handles Operators which are computational tasks.

To develop and deploy your MONAI App, you can follow the steps below (click a node to see the detail):

1. Developing Application

%%{init: {"theme": "base", "themeVariables": { "fontSize": "12px"}} }%% graph TD Design(Designing Workflow) --> Operator(Creating Operator classes) --> App(Creating Application class) --> ExecApp(Executing app locally) click Design "./designing_workflow.html" "Go to the document" _self click Operator "./creating_operator_classes.html" "Go to the document" _self click App "./creating_application_class.html" "Go to the document" _self click ExecApp "./executing_app_locally.html" "Go to the document" _self

⠀⠀Steps to develop an application

First, you will need to design the workflow of your application that defines Operators (tasks) and flows among them. Once the workflow is designed, you can start implementing operator classes for those that you cannot use existing operators as they are. Then implement an Application class to make a workflow graph with the operators.

You can execute and debug your application locally in a Jupyter notebook or through CLI.

2. Packaging, Local-Running, and Deploying Application Package

%%{init: {"theme": "base", "themeVariables": { "fontSize": "12px"}} }%% graph TD Package(Packaging app) --> ExecPackage(Executing packaged app locally) --> DeployPackage(Deploying to the remote server) click Package "./packaging_app.html" "Go to the document" _self click ExecPackage "./executing_packaged_app_locally.html" "Go to the document" _self click DeployPackage "./deploying_to_the_remote_server.html" "Go to the document" _self

⠀⠀Steps to package, local-running, and deploying a MONAI Application Package (MAP)

After your application is tested and verified well and you feel you made a great application :), it’s time to package your application, test locally, and deploy it to the remote server.