Skip to content

Commit 28a8ef4

Browse files
committed
Prepared changes for releasing v3
Signed-off-by: M Q <[email protected]>
1 parent 96f7e31 commit 28a8ef4

File tree

17 files changed

+2317
-3081
lines changed

17 files changed

+2317
-3081
lines changed

README.md

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ MONAI Deploy App SDK offers a framework and associated tools to design, develop
1515
- Build medical imaging inference applications using a flexible, extensible & usable Pythonic API
1616
- Easy management of inference applications via programmable Directed Acyclic Graphs (DAGs)
1717
- Built-in operators to load DICOM data to be ingested in an inference app
18-
- Out-of-the-box support for in-proc PyTorch based inference
18+
- Out-of-the-box support for in-proc PyTorch based inference, as well as remote inference via Triton Inference Server
1919
- Easy incorporation of MONAI based pre and post transformations in the inference application
2020
- Package inference application with a single command into a portable MONAI Application Package
2121
- Locally run and debug your inference application using App Runner
@@ -33,7 +33,7 @@ If you have used MONAI in your research, please cite us! The citation can be exp
3333
To install [the current release](https://pypi.org/project/monai-deploy-app-sdk/), you can simply run:
3434

3535
```bash
36-
pip install monai-deploy-app-sdk # '--pre' to install a pre-release version.
36+
pip install monai-deploy-app-sdk
3737
```
3838

3939
### Prerequisites
@@ -48,7 +48,7 @@ pip install monai-deploy-app-sdk # '--pre' to install a pre-release version.
4848
Getting started guide is available at [here](https://docs.monai.io/projects/monai-deploy-app-sdk/en/stable/getting_started/index.html).
4949

5050
```bash
51-
pip install monai-deploy-app-sdk # '--pre' to install a pre-release version.
51+
pip install monai-deploy-app-sdk
5252

5353
# Clone monai-deploy-app-sdk repository for accessing examples.
5454
git clone https://github.com/Project-MONAI/monai-deploy-app-sdk.git
@@ -62,7 +62,7 @@ python examples/apps/simple_imaging_app/app.py -i examples/apps/simple_imaging_a
6262

6363
# Package app (creating MAP Docker image), using `-l DEBUG` option to see progress.
6464
# Also please note that postfix will be added to user supplied tag for identifying CPU architecture and GPU type etc.
65-
monai-deploy package examples/apps/simple_imaging_app -c examples/apps/simple_imaging_app/app.yaml -t simple_app:latest --platform x64-workstation -l DEBUG
65+
monai-deploy package examples/apps/simple_imaging_app -c examples/apps/simple_imaging_app/app.yaml -t simple_app:latest --platform x86_64 -l DEBUG
6666

6767
# Run the app with docker image and an input file locally
6868
## Copy a test input file to 'input' folder
@@ -86,7 +86,7 @@ YouTube Video (to be updated with the new version):
8686

8787
### [3) Creating a Segmentation app](https://docs.monai.io/projects/monai-deploy-app-sdk/en/stable/getting_started/tutorials/segmentation_app.html)
8888

89-
YouTube Video (to be updated with the new version):
89+
YouTube Video (demonstrating the previous version of the App SDK):
9090

9191
- [Spleen Organ Segmentation - Jupyter Notebook Tutorial](https://www.youtube.com/watch?v=cqDVxzYt9lY)
9292
- [Spleen Organ Segmentation - Deep Dive](https://www.youtube.com/watch?v=nivgfD4pwWE)
@@ -97,14 +97,16 @@ YouTube Video (to be updated with the new version):
9797

9898
### [Examples](https://docs.monai.io/projects/monai-deploy-app-sdk/en/stable/getting_started/examples.html)
9999

100-
<https://github.com/Project-MONAI/monai-deploy-app-sdk/tree/main/examples/apps> has example apps that you can see.
100+
<https://github.com/Project-MONAI/monai-deploy-app-sdk/tree/main/examples/apps> has example apps that you can see, to name but a few
101101

102+
- simple_imaging_app
102103
- ai_livertumor_seg_app
103104
- ai_spleen_seg_app
104105
- ai_unetr_seg_app
105106
- dicom_series_to_image_app
106107
- mednist_classifier_monaideploy
107-
- simple_imaging_app
108+
- ai_remote_infer_app
109+
108110

109111
## Contributing
110112

docs/source/developing_with_sdk/packaging_app.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,15 @@ It is required that the application configuration yaml file as well as the depen
1313
### Basic Usage of MONAI Application Packager
1414

1515
```bash
16-
monai-deploy package <APP_PATH> --config <CONFIG> --tag <TAG> --platform <x64-workstation> [--models <MODEL_PATH>] [--log-level <LEVEL>] [-h]
16+
monai-deploy package <APP_PATH> --config <CONFIG> --tag <TAG> --platform <x86_64> [--models <MODEL_PATH>] [--log-level <LEVEL>] [-h]
1717
```
1818

1919
#### Required Arguments
2020

2121
* `<APP_PATH>`: A path to MONAI Deploy Application folder or main code.
2222
* `--config, -c <CONFIG>`: Path to the application configuration file.
2323
* `--tag, -t <TAG>`: A MAP name and optionally a tag in the 'name:tag' format.
24-
* `--platform <PLATFORM>`: Platform type of the container image, must be `x64-workstation` for x86-64 system.
24+
* `--platform <PLATFORM>`: Platform type of the container image, must be `x86_64` for x86-64 system.
2525

2626
:::{note}
2727
If `<APP_PATH>` refers to a python code (such as `./my_app.py`), the whole parent folder of the file would be packaged into the MAP container image, effectively the same as specifying the application folder path which includes `__main__.py` file. In both cases, the image's environment variable, `HOLOSCAN_APPLICATION` will be set with the path of the application folder in the image, i.e. `HOLOSCAN_APPLICATION=/opt/holoscan/app`. So, it is essential to provide the `__main__.py` file in the application folder, which usually would look like below:
@@ -54,7 +54,7 @@ The following lists a few most likely used [optional arguments](https://docs.nvi
5454
Given an example MONAI Deploy App SDK application with its code residing in a directory `./my_app`, packaging this application with the Packager to create a Docker image tagged `my_app:latest` would look like this:
5555

5656
```bash
57-
$ monai-deploy package ./my_app -c --config ./my_app/app.yaml -t my_app:latest --models ./model.ts --platform x64-workstation
57+
$ monai-deploy package ./my_app -c --config ./my_app/app.yaml -t my_app:latest --models ./model.ts --platform x86_64
5858

5959
Building MONAI Application Package...
6060
Successfully built my_app:latest
@@ -65,7 +65,7 @@ The MAP image name will be postfixed with the platform info to become `my_app-x6
6565
:::{note}
6666
* The current implementation of the Packager **ONLY** supports a set of [platform](https://docs.nvidia.com/holoscan/sdk-user-guide/cli/package.html#platform-platform) specific base images from `nvcr.io` as base images for the MAP.
6767

68-
* To package a MAP to run on ARMv8 AArch64 on Linux with discrete GPU, replace the commandline option `--platform x64-workstation` with `--platform igx-orin-devkit --platform-config dgpu`. It has been tested on [NVIDIA IGX Orin](https://www.nvidia.com/en-us/edge-computing/products/igx/).
68+
* To package a MAP to run on ARMv8 AArch64 on Linux with discrete GPU, replace the commandline option `--platform x86_64` with `--platform igx-dgpu`. It has been tested on [NVIDIA IGX Orin](https://www.nvidia.com/en-us/edge-computing/products/igx/).
6969
:::
7070

7171
## Next Step

docs/source/getting_started/tutorials/mednist_app.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ monai-deploy package examples/apps/mednist_classifier_monaideploy/mednist_classi
9898
--config examples/apps/mednist_classifier_monaideploy/app.yaml \
9999
--tag mednist_app:latest \
100100
--models mednist_model/classifier.zip \
101-
--platform x64-workstation \
101+
--platform x86_64 \
102102
-l DEBUG
103103

104104
# Note: for AMD GPUs, nvidia-docker is not required, but the dependency of the App SDK, namely Holoscan SDK

docs/source/getting_started/tutorials/monai_bundle_app.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ jupyter-lab
3838

3939
```{raw} html
4040
<p style="text-align: center;">
41-
<a class="sphinx-bs btn text-wrap btn-outline-primary col-md-6 reference external" href="../../_static/notebooks/tutorials/05_monai_bundle_app.ipynb">
41+
<a class="sphinx-bs btn text-wrap btn-outline-primary col-md-6 reference external" href="../../_static/notebooks/tutorials/04_monai_bundle_app.ipynb">
4242
<span>Download 04_monai_bundle_app.ipynb</span>
4343
</a>
4444
</p>
@@ -86,7 +86,7 @@ monai-deploy package examples/apps/ai_spleen_seg_app \
8686
--config examples/apps/ai_spleen_seg_app/app.yaml \
8787
--tag seg_app:latest \
8888
--models spleen_model/model.ts \
89-
--platform x64-workstation \
89+
--platform x86_64 \
9090
-l DEBUG
9191

9292
# Note: for AMD GPUs, nvidia-docker is not required, but the dependency of the App SDK, namely Holoscan SDK

docs/source/getting_started/tutorials/multi_model_app.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ monai-deploy package examples/apps/ai_multi_ai_app \
7070
--tag multi_model_app:latest \
7171
--config examples/apps/ai_multi_ai_app/app.yaml \
7272
--models multi_models \
73-
--platform x64-workstation \
73+
--platform x86_64 \
7474
-l DEBUG
7575

7676
# Note: for AMD GPUs, nvidia-docker is not required, but the dependency of the App SDK, namely Holoscan SDK

docs/source/getting_started/tutorials/segmentation_app.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ monai-deploy package examples/apps/ai_spleen_seg_app \
7272
--config examples/apps/ai_spleen_seg_app/app.yaml \
7373
--tag seg_app:latest \
7474
--models spleen_model/model.ts \
75-
--platform x64-workstation \
75+
--platform x86_64 \
7676
-l DEBUG
7777

7878
# Note: for AMD GPUs, nvidia-docker is not required, but the dependency of the App SDK, namely Holoscan SDK

docs/source/getting_started/tutorials/simple_app.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ ls output
6969
# This assumes that nvidia docker is installed in the local machine.
7070
# Please see https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#docker to install nvidia-docker2.
7171

72-
monai-deploy package examples/apps/simple_imaging_app -c examples/apps/simple_imaging_app/app.yaml -t simple_app:latest --platform x64-workstation -l DEBUG
72+
monai-deploy package examples/apps/simple_imaging_app -c examples/apps/simple_imaging_app/app.yaml -t simple_app:latest --platform x86_64 -l DEBUG
7373

7474
# Show the application and package manifest files of the MONAI Application Package
7575

docs/source/release_notes/index.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,13 @@
44
:hidden:
55
:maxdepth: 2
66
7+
```
8+
## Version 3.0
9+
10+
```{toctree}
11+
:maxdepth: 1
12+
13+
v3.0.0
714
```
815
## Version 2.0
916

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
# Version 2.0.0 (April 24th, 2024)
2+
3+
## What's new in 3.0.0
4+
5+
- This version of the App SDK is based on the newly released [Holoscan SDK v3](https://pypi.org/project/holoscan/), and is expected to be so with future minor releases of Holoscan SDK v3.
6+
7+
- Starting with version 3.0.0, [Holoscan SDK](https://pypi.org/project/holoscan/) and [Holoscan CLI](https://pypi.org/project/holoscan-cli/) are released in separate packages, and as such, this version of the MONAI Deploy App SDK has both as dependencies. As of now, version 3 of both packages are compatible.
8+
9+
- Remote inference on [Triton Inference Server](https://github.com/triton-inference-server) is now supported. Effort was made to make it user-friendly so existing example applications can be easily converted to use this feature by simply providing the network location of the server as well as the [Triton model configuration file](https://github.com/triton-inference-server/server/blob/main/docs/user_guide/model_configuration.md) sans the actual model files. [An example application](https://github.com/Project-MONAI/monai-deploy-app-sdk/tree/main/examples/apps/ai_remote_infer_app) has been provided to demonstrate such use case.
10+
11+
### Key changes
12+
13+
- [Cincinnati Children's Hospital Medical Cente](https://www.cincinnatichildrens.org/) researchers, @[Bryan](https://github.com/bluna301) @[Will](https://github.com/WillButAgain) and Elan, contributed numerous enhancements from experience developing and deploying MONAI based AI applications in clinical environments, to name but a few
14+
15+
- Enhanced the DICOM data loader to handle multi-phase DICOM series where multiple acquisitions exist and some DICOM SOP instances have the same image pospositiontion patient.
16+
17+
- Enahnced the DICOM series to volume operator to better handle the data types of the converted volume image for improved efficiency and memory usage.
18+
19+
- Enhanced the DICOM Segmentation operator to populate DICOM tags with AI model information which are consistent with other DICOM writers in the SDK.
20+
21+
22+
Please also see the <a href="https://github.com/Project-MONAI/monai-deploy-app-sdk/issues?q=is%3Aissue+is%3Aclosed">closed issues on Github</a> and the <a href="https://github.com/Project-MONAI/monai-deploy-app-sdk/pulls?q=is%3Apr+is%3Aclosed">closed pull requests on Github</a>.
23+
24+
## Additional information
25+
Please visit [GETTING STARTED](/getting_started/index) guide and follow the tutorials.
26+
27+
You can learn more about SDK usage through [DEVELOPING WITH SDK](/developing_with_sdk/index).
28+
29+
Please let us know how you like it and what could be improved by [submitting an issue](https://github.com/Project-MONAI/monai-deploy-app-sdk/issues/new/choose) or [asking questions](https://github.com/Project-MONAI/monai-deploy-app-sdk/discussions)

notebooks/tutorials/01_simple_app.ipynb

Lines changed: 253 additions & 484 deletions
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)