Project-MONAI / Project-MONAI/MONAI

Define categories for the MONAI bundle properties

Open
#7,904 7 comments 0 reactions 3 assignees View on GitHub

@yiheng-wang-nv is already working on this.

Since Jul 8, 2024.

Bundles Feature request
Dominant language
Python
Stars
8.7k
Forks
1.6k
Avg merge
5d 1h
Merged PRs (30d)
20

Description

Hi All,

Currently, we defined all the required bundle properties in 1 file: https://github.com/Project-MONAI/MONAI/blob/dev/monai/bundle/properties.py, which were collected from our MONAI Label, MONAI deploy, NVFlare projects.
But actually, it may not be necessary to require every bundle to provide all these properties. I would like to define different property categories for different applications, then the bundle developer can declare the supported applications in the metadata.json. It can help reduce the development effort and limitation for a bundle, and provide more flexibility.

Detailed implementation steps:

  1. Referring to the existing property list, MONAI Label, MONAI Deploy, NVFlare and even other apps define its own required properties in its repo.
  2. We maintain a small mapping list in the model-zoo repo:
    [
        "monai-label": {"0.4": "<URL to the properties>", "0.5": "URL to the properties"},
        "monai-deploy": {...},
        "nvflare": {...},
        "other-app": {...}
    ]
    
  3. A bundle developer decides which apps he wants to support for this bundle, then list the apps name in the metadata.json, for example:
    "supported_apps": ["monai-label", "nvflare"]
  4. The CICD of MONAI model-zoo repo can check the declared properties and we can also try to show the supported apps as labels in the bundle list.

@ericspod @KumoLiu welcome your discussion here.

Thanks.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.