diff --git a/docs/source/getting_started/tutorials/mednist_app.md b/docs/source/getting_started/tutorials/mednist_app.md index 7ad98c1e..3a4a43ba 100644 --- a/docs/source/getting_started/tutorials/mednist_app.md +++ b/docs/source/getting_started/tutorials/mednist_app.md @@ -56,6 +56,8 @@ jupyter-lab ## Executing from Shell +**_Note:_** Data files are now access controlled. Please first request permission to access the [shared folder on Google Drive](https://drive.google.com/drive/folders/1EONJsrwbGsS30td0hs8zl4WKjihew1Z3?usp=sharing). Please download zip file, `mednist_classifier_data.zip` in the `medmist_classifier_app` folder, to the same folder as the notebook example. + ```bash # Clone the github project (the latest version of the main branch only) git clone --branch main --depth 1 https://github.com/Project-MONAI/monai-deploy-app-sdk.git @@ -67,11 +69,8 @@ pip install monai-deploy-app-sdk # Download/Extract mednist_classifier_data.zip from https://drive.google.com/file/d/1yJ4P-xMNEfN6lIOq_u6x1eMAq1_MJu-E/view?usp=sharing -# Download mednist_classifier_data.zip -pip install gdown -gdown https://drive.google.com/uc?id=1yJ4P-xMNEfN6lIOq_u6x1eMAq1_MJu-E -# After downloading mednist_classifier_data.zip from the web browser or using gdown +# After having downloaded mednist_classifier_data.zip from the web browser or using gdown unzip -o mednist_classifier_data.zip # Install necessary packages required by the app diff --git a/docs/source/getting_started/tutorials/monai_bundle_app.md b/docs/source/getting_started/tutorials/monai_bundle_app.md index e93c65e4..a8467d40 100644 --- a/docs/source/getting_started/tutorials/monai_bundle_app.md +++ b/docs/source/getting_started/tutorials/monai_bundle_app.md @@ -46,6 +46,8 @@ jupyter-lab ## Executing from Shell +**_Note:_** Data files are now access controlled. Please first request permission to access the [shared folder on Google Drive](https://drive.google.com/drive/folders/1EONJsrwbGsS30td0hs8zl4WKjihew1Z3?usp=sharing). Please download zip file, `mednist_classifieai_spleen_seg_bundle_data.zip` in the `ai_spleen_seg_app` folder, to the same folder as the notebook example. + ```bash # Clone the github project (the latest version of main branch only) git clone --branch main --depth 1 https://github.com/Project-MONAI/monai-deploy-app-sdk.git @@ -57,10 +59,7 @@ pip install --upgrade monai-deploy-app-sdk # Download/Extract ai_spleen_bundle_data zip file from https://drive.google.com/file/d/1cJq0iQh_yzYIxVElSlVa141aEmHZADJh/view?usp=sharing -# Download the zip file containing both the model and test data -pip install gdown -gdown https://drive.google.com/uc?id=1Uds8mEvdGNYUuvFpTtCQ8gNU97bAPCaQ - +# Download the zip file containing both the model and test data. # After downloading it using gdown, unzip the zip file saved by gdown and # copy the model file into a folder structure that is required by CLI Packager rm -rf dcm diff --git a/docs/source/getting_started/tutorials/multi_model_app.md b/docs/source/getting_started/tutorials/multi_model_app.md index c197c88e..801aec20 100644 --- a/docs/source/getting_started/tutorials/multi_model_app.md +++ b/docs/source/getting_started/tutorials/multi_model_app.md @@ -34,6 +34,8 @@ jupyter-lab ## Executing from Shell +**_Note:_** Data files are now access controlled. Please first request permission to access the [shared folder on Google Drive](https://drive.google.com/drive/folders/1EONJsrwbGsS30td0hs8zl4WKjihew1Z3?usp=sharing). Please download zip file, `ai_multi_model_bundle_data.zip` in the `ai_multi_ai_app` folder, to the same folder as the notebook example. + ```bash # Clone the github project (the latest version of main branch only) git clone --branch main --depth 1 https://github.com/Project-MONAI/monai-deploy-app-sdk.git @@ -43,10 +45,7 @@ cd monai-deploy-app-sdk # Install monai-deploy-app-sdk package pip install --upgrade monai-deploy-app-sdk -# Download the zip file containing both the model and test data -pip install gdown -gdown https://drive.google.com/uc?id=1llJ4NGNTjY187RLX4MtlmHYhfGxBNWmd - +# Download the zip file containing both the model and test data. # After downloading it using gdown, unzip the zip file saved by gdown rm -rf dcm && rm -rf multi_models unzip -o ai_multi_model_bundle_data.zip diff --git a/docs/source/getting_started/tutorials/segmentation_app.md b/docs/source/getting_started/tutorials/segmentation_app.md index 3ef9e55b..6497c874 100644 --- a/docs/source/getting_started/tutorials/segmentation_app.md +++ b/docs/source/getting_started/tutorials/segmentation_app.md @@ -33,7 +33,9 @@ jupyter-lab ``` ## Executing from Shell -Please note that this part of the example uses the latest application source code on Github, as well as the corresponding test data. + +**_Note:_** Data files are now access controlled. Please first request permission to access the [shared folder on Google Drive](https://drive.google.com/drive/folders/1EONJsrwbGsS30td0hs8zl4WKjihew1Z3?usp=sharing). Please download zip file, `ai_spleen_seg_bundle_data.zip` in the `ai_spleen_seg_app` folder, to the same folder as the notebook example. + ```bash # Clone the github project (the latest version of main branch only) git clone --branch main --depth 1 https://github.com/Project-MONAI/monai-deploy-app-sdk.git @@ -43,12 +45,7 @@ cd monai-deploy-app-sdk # Install monai-deploy-app-sdk package pip install --upgrade monai-deploy-app-sdk -# Download/Extract ai_spleen_bundle_data zip file from https://drive.google.com/file/d/1cJq0iQh_yzYIxVElSlVa141aEmHZADJh/view?usp=sharing - -# Download the zip file containing both the model and test data -pip install gdown -gdown https://drive.google.com/uc?id=1Uds8mEvdGNYUuvFpTtCQ8gNU97bAPCaQ - +# Download the zip file containing both the model and test data. # After downloading it using gdown, unzip the zip file saved by gdown and # copy the model file into a folder structure that is required by CLI Packager rm -rf dcm diff --git a/monai/deploy/_version.py b/monai/deploy/_version.py index 9eeaaf17..f1502cc2 100644 --- a/monai/deploy/_version.py +++ b/monai/deploy/_version.py @@ -1,623 +1,21 @@ -# This file helps to compute a version number in source trees obtained from -# git-archive tarball (such as those provided by githubs download-from-tag -# feature). Distribution tarballs (built by setup.py sdist) and build -# directories (produced by setup.py build) will contain a much shorter file -# that just contains the computed version number. +# This file was generated by 'versioneer.py' (0.19) from +# revision-control system data, or from the parent directory name of an +# unpacked source archive. Distribution tarballs contain a pre-generated copy +# of this file. -# This file is released into the public domain. Generated by -# versioneer-0.20 (https://github.com/python-versioneer/python-versioneer) +import json -"""Git implementation of _version.py.""" - -import errno -import os -import re -import subprocess -import sys - - -def get_keywords(): - """Get the keywords needed to look up the version information.""" - # these strings will be replaced by git during git-archive. - # setup.py/versioneer.py will grep for the variable names, so they must - # each be defined on a line of their own. _version.py will just call - # get_keywords(). - git_refnames = "$Format:%d$" - git_full = "$Format:%H$" - git_date = "$Format:%ci$" - keywords = {"refnames": git_refnames, "full": git_full, "date": git_date} - return keywords - - -class VersioneerConfig: # pylint: disable=too-few-public-methods - """Container for Versioneer configuration parameters.""" - - -def get_config(): - """Create, populate and return the VersioneerConfig() object.""" - # these strings are filled in when 'setup.py versioneer' creates - # _version.py - cfg = VersioneerConfig() - cfg.VCS = "git" - cfg.style = "pep440" - cfg.tag_prefix = "" - cfg.parentdir_prefix = "" - cfg.versionfile_source = "monai/deploy/_version.py" - cfg.verbose = False - return cfg - - -class NotThisMethod(Exception): - """Exception raised if a method is not valid for the current scenario.""" - - -LONG_VERSION_PY = {} -HANDLERS = {} - - -def register_vcs_handler(vcs, method): # decorator - """Create decorator to mark a method as the handler of a VCS.""" - def decorate(f): - """Store f in HANDLERS[vcs][method].""" - if vcs not in HANDLERS: - HANDLERS[vcs] = {} - HANDLERS[vcs][method] = f - return f - return decorate - - -# pylint:disable=too-many-arguments,consider-using-with # noqa -def run_command(commands, args, cwd=None, verbose=False, hide_stderr=False, - env=None): - """Call the given command(s).""" - assert isinstance(commands, list) - process = None - for command in commands: - try: - dispcmd = str([command] + args) - # remember shell=False, so use git.cmd on windows, not just git - process = subprocess.Popen([command] + args, cwd=cwd, env=env, - stdout=subprocess.PIPE, - stderr=(subprocess.PIPE if hide_stderr - else None)) - break - except EnvironmentError: - e = sys.exc_info()[1] - if e.errno == errno.ENOENT: - continue - if verbose: - print("unable to run %s" % dispcmd) - print(e) - return None, None - else: - if verbose: - print("unable to find command, tried %s" % (commands,)) - return None, None - stdout = process.communicate()[0].strip().decode() - if process.returncode != 0: - if verbose: - print("unable to run %s (error)" % dispcmd) - print("stdout was %s" % stdout) - return None, process.returncode - return stdout, process.returncode - - -def versions_from_parentdir(parentdir_prefix, root, verbose): - """Try to determine the version from the parent directory name. - - Source tarballs conventionally unpack into a directory that includes both - the project name and a version string. We will also support searching up - two directory levels for an appropriately named parent directory - """ - rootdirs = [] - - for _ in range(3): - dirname = os.path.basename(root) - if dirname.startswith(parentdir_prefix): - return {"version": dirname[len(parentdir_prefix):], - "full-revisionid": None, - "dirty": False, "error": None, "date": None} - rootdirs.append(root) - root = os.path.dirname(root) # up a level - - if verbose: - print("Tried directories %s but none started with prefix %s" % - (str(rootdirs), parentdir_prefix)) - raise NotThisMethod("rootdir doesn't start with parentdir_prefix") - - -@register_vcs_handler("git", "get_keywords") -def git_get_keywords(versionfile_abs): - """Extract version information from the given file.""" - # the code embedded in _version.py can just fetch the value of these - # keywords. When used from setup.py, we don't want to import _version.py, - # so we do it with a regexp instead. This function is not used from - # _version.py. - keywords = {} - try: - with open(versionfile_abs, "r") as fobj: - for line in fobj: - if line.strip().startswith("git_refnames ="): - mo = re.search(r'=\s*"(.*)"', line) - if mo: - keywords["refnames"] = mo.group(1) - if line.strip().startswith("git_full ="): - mo = re.search(r'=\s*"(.*)"', line) - if mo: - keywords["full"] = mo.group(1) - if line.strip().startswith("git_date ="): - mo = re.search(r'=\s*"(.*)"', line) - if mo: - keywords["date"] = mo.group(1) - except EnvironmentError: - pass - return keywords - - -@register_vcs_handler("git", "keywords") -def git_versions_from_keywords(keywords, tag_prefix, verbose): - """Get version information from git keywords.""" - if "refnames" not in keywords: - raise NotThisMethod("Short version file found") - date = keywords.get("date") - if date is not None: - # Use only the last line. Previous lines may contain GPG signature - # information. - date = date.splitlines()[-1] - - # git-2.2.0 added "%cI", which expands to an ISO-8601 -compliant - # datestamp. However we prefer "%ci" (which expands to an "ISO-8601 - # -like" string, which we must then edit to make compliant), because - # it's been around since git-1.5.3, and it's too difficult to - # discover which version we're using, or to work around using an - # older one. - date = date.strip().replace(" ", "T", 1).replace(" ", "", 1) - refnames = keywords["refnames"].strip() - if refnames.startswith("$Format"): - if verbose: - print("keywords are unexpanded, not using") - raise NotThisMethod("unexpanded keywords, not a git-archive tarball") - refs = {r.strip() for r in refnames.strip("()").split(",")} - # starting in git-1.8.3, tags are listed as "tag: foo-1.0" instead of - # just "foo-1.0". If we see a "tag: " prefix, prefer those. - TAG = "tag: " - tags = {r[len(TAG):] for r in refs if r.startswith(TAG)} - if not tags: - # Either we're using git < 1.8.3, or there really are no tags. We use - # a heuristic: assume all version tags have a digit. The old git %d - # expansion behaves like git log --decorate=short and strips out the - # refs/heads/ and refs/tags/ prefixes that would let us distinguish - # between branches and tags. By ignoring refnames without digits, we - # filter out many common branch names like "release" and - # "stabilization", as well as "HEAD" and "master". - tags = {r for r in refs if re.search(r'\d', r)} - if verbose: - print("discarding '%s', no digits" % ",".join(refs - tags)) - if verbose: - print("likely tags: %s" % ",".join(sorted(tags))) - for ref in sorted(tags): - # sorting will prefer e.g. "2.0" over "2.0rc1" - if ref.startswith(tag_prefix): - r = ref[len(tag_prefix):] - # Filter out refs that exactly match prefix or that don't start - # with a number once the prefix is stripped (mostly a concern - # when prefix is '') - if not re.match(r'\d', r): - continue - if verbose: - print("picking %s" % r) - return {"version": r, - "full-revisionid": keywords["full"].strip(), - "dirty": False, "error": None, - "date": date} - # no suitable tags, so version is "0+unknown", but full hex is still there - if verbose: - print("no suitable tags, using unknown + full revision id") - return {"version": "0+unknown", - "full-revisionid": keywords["full"].strip(), - "dirty": False, "error": "no suitable tags", "date": None} - - -@register_vcs_handler("git", "pieces_from_vcs") -def git_pieces_from_vcs(tag_prefix, root, verbose, runner=run_command): - """Get version from 'git describe' in the root of the source tree. - - This only gets called if the git-archive 'subst' keywords were *not* - expanded, and _version.py hasn't already been rewritten with a short - version string, meaning we're inside a checked out source tree. - """ - GITS = ["git"] - if sys.platform == "win32": - GITS = ["git.cmd", "git.exe"] - - _, rc = runner(GITS, ["rev-parse", "--git-dir"], cwd=root, - hide_stderr=True) - if rc != 0: - if verbose: - print("Directory %s not under git control" % root) - raise NotThisMethod("'git rev-parse --git-dir' returned error") - - # if there is a tag matching tag_prefix, this yields TAG-NUM-gHEX[-dirty] - # if there isn't one, this yields HEX[-dirty] (no NUM) - describe_out, rc = runner(GITS, ["describe", "--tags", "--dirty", - "--always", "--long", - "--match", "%s*" % tag_prefix], - cwd=root) - # --long was added in git-1.5.5 - if describe_out is None: - raise NotThisMethod("'git describe' failed") - describe_out = describe_out.strip() - full_out, rc = runner(GITS, ["rev-parse", "HEAD"], cwd=root) - if full_out is None: - raise NotThisMethod("'git rev-parse' failed") - full_out = full_out.strip() - - pieces = {} - pieces["long"] = full_out - pieces["short"] = full_out[:7] # maybe improved later - pieces["error"] = None - - branch_name, rc = runner(GITS, ["rev-parse", "--abbrev-ref", "HEAD"], - cwd=root) - # --abbrev-ref was added in git-1.6.3 - if rc != 0 or branch_name is None: - raise NotThisMethod("'git rev-parse --abbrev-ref' returned error") - branch_name = branch_name.strip() - - if branch_name == "HEAD": - # If we aren't exactly on a branch, pick a branch which represents - # the current commit. If all else fails, we are on a branchless - # commit. - branches, rc = runner(GITS, ["branch", "--contains"], cwd=root) - # --contains was added in git-1.5.4 - if rc != 0 or branches is None: - raise NotThisMethod("'git branch --contains' returned error") - branches = branches.split("\n") - - # Remove the first line if we're running detached - if "(" in branches[0]: - branches.pop(0) - - # Strip off the leading "* " from the list of branches. - branches = [branch[2:] for branch in branches] - if "master" in branches: - branch_name = "master" - elif not branches: - branch_name = None - else: - # Pick the first branch that is returned. Good or bad. - branch_name = branches[0] - - pieces["branch"] = branch_name - - # parse describe_out. It will be like TAG-NUM-gHEX[-dirty] or HEX[-dirty] - # TAG might have hyphens. - git_describe = describe_out - - # look for -dirty suffix - dirty = git_describe.endswith("-dirty") - pieces["dirty"] = dirty - if dirty: - git_describe = git_describe[:git_describe.rindex("-dirty")] - - # now we have TAG-NUM-gHEX or HEX - - if "-" in git_describe: - # TAG-NUM-gHEX - mo = re.search(r'^(.+)-(\d+)-g([0-9a-f]+)$', git_describe) - if not mo: - # unparseable. Maybe git-describe is misbehaving? - pieces["error"] = ("unable to parse git-describe output: '%s'" - % describe_out) - return pieces - - # tag - full_tag = mo.group(1) - if not full_tag.startswith(tag_prefix): - if verbose: - fmt = "tag '%s' doesn't start with prefix '%s'" - print(fmt % (full_tag, tag_prefix)) - pieces["error"] = ("tag '%s' doesn't start with prefix '%s'" - % (full_tag, tag_prefix)) - return pieces - pieces["closest-tag"] = full_tag[len(tag_prefix):] - - # distance: number of commits since tag - pieces["distance"] = int(mo.group(2)) - - # commit: short hex revision ID - pieces["short"] = mo.group(3) - - else: - # HEX: no tags - pieces["closest-tag"] = None - count_out, rc = runner(GITS, ["rev-list", "HEAD", "--count"], cwd=root) - pieces["distance"] = int(count_out) # total number of commits - - # commit date: see ISO-8601 comment in git_versions_from_keywords() - date = runner(GITS, ["show", "-s", "--format=%ci", "HEAD"], cwd=root)[0].strip() - # Use only the last line. Previous lines may contain GPG signature - # information. - date = date.splitlines()[-1] - pieces["date"] = date.strip().replace(" ", "T", 1).replace(" ", "", 1) - - return pieces - - -def plus_or_dot(pieces): - """Return a + if we don't already have one, else return a .""" - if "+" in pieces.get("closest-tag", ""): - return "." - return "+" - - -def render_pep440(pieces): - """Build up version string, with post-release "local version identifier". - - Our goal: TAG[+DISTANCE.gHEX[.dirty]] . Note that if you - get a tagged build and then dirty it, you'll get TAG+0.gHEX.dirty - - Exceptions: - 1: no tags. git_describe was just HEX. 0+untagged.DISTANCE.gHEX[.dirty] - """ - if pieces["closest-tag"]: - rendered = pieces["closest-tag"] - if pieces["distance"] or pieces["dirty"]: - rendered += plus_or_dot(pieces) - rendered += "%d.g%s" % (pieces["distance"], pieces["short"]) - if pieces["dirty"]: - rendered += ".dirty" - else: - # exception #1 - rendered = "0+untagged.%d.g%s" % (pieces["distance"], - pieces["short"]) - if pieces["dirty"]: - rendered += ".dirty" - return rendered - - -def render_pep440_branch(pieces): - """TAG[[.dev0]+DISTANCE.gHEX[.dirty]] . - - The ".dev0" means not master branch. Note that .dev0 sorts backwards - (a feature branch will appear "older" than the master branch). - - Exceptions: - 1: no tags. 0[.dev0]+untagged.DISTANCE.gHEX[.dirty] - """ - if pieces["closest-tag"]: - rendered = pieces["closest-tag"] - if pieces["distance"] or pieces["dirty"]: - if pieces["branch"] != "master": - rendered += ".dev0" - rendered += plus_or_dot(pieces) - rendered += "%d.g%s" % (pieces["distance"], pieces["short"]) - if pieces["dirty"]: - rendered += ".dirty" - else: - # exception #1 - rendered = "0" - if pieces["branch"] != "master": - rendered += ".dev0" - rendered += "+untagged.%d.g%s" % (pieces["distance"], - pieces["short"]) - if pieces["dirty"]: - rendered += ".dirty" - return rendered - - -def render_pep440_pre(pieces): - """TAG[.post0.devDISTANCE] -- No -dirty. - - Exceptions: - 1: no tags. 0.post0.devDISTANCE - """ - if pieces["closest-tag"]: - rendered = pieces["closest-tag"] - if pieces["distance"]: - rendered += ".post0.dev%d" % pieces["distance"] - else: - # exception #1 - rendered = "0.post0.dev%d" % pieces["distance"] - return rendered - - -def render_pep440_post(pieces): - """TAG[.postDISTANCE[.dev0]+gHEX] . - - The ".dev0" means dirty. Note that .dev0 sorts backwards - (a dirty tree will appear "older" than the corresponding clean one), - but you shouldn't be releasing software with -dirty anyways. - - Exceptions: - 1: no tags. 0.postDISTANCE[.dev0] - """ - if pieces["closest-tag"]: - rendered = pieces["closest-tag"] - if pieces["distance"] or pieces["dirty"]: - rendered += ".post%d" % pieces["distance"] - if pieces["dirty"]: - rendered += ".dev0" - rendered += plus_or_dot(pieces) - rendered += "g%s" % pieces["short"] - else: - # exception #1 - rendered = "0.post%d" % pieces["distance"] - if pieces["dirty"]: - rendered += ".dev0" - rendered += "+g%s" % pieces["short"] - return rendered - - -def render_pep440_post_branch(pieces): - """TAG[.postDISTANCE[.dev0]+gHEX[.dirty]] . - - The ".dev0" means not master branch. - - Exceptions: - 1: no tags. 0.postDISTANCE[.dev0]+gHEX[.dirty] - """ - if pieces["closest-tag"]: - rendered = pieces["closest-tag"] - if pieces["distance"] or pieces["dirty"]: - rendered += ".post%d" % pieces["distance"] - if pieces["branch"] != "master": - rendered += ".dev0" - rendered += plus_or_dot(pieces) - rendered += "g%s" % pieces["short"] - if pieces["dirty"]: - rendered += ".dirty" - else: - # exception #1 - rendered = "0.post%d" % pieces["distance"] - if pieces["branch"] != "master": - rendered += ".dev0" - rendered += "+g%s" % pieces["short"] - if pieces["dirty"]: - rendered += ".dirty" - return rendered - - -def render_pep440_old(pieces): - """TAG[.postDISTANCE[.dev0]] . - - The ".dev0" means dirty. - - Exceptions: - 1: no tags. 0.postDISTANCE[.dev0] - """ - if pieces["closest-tag"]: - rendered = pieces["closest-tag"] - if pieces["distance"] or pieces["dirty"]: - rendered += ".post%d" % pieces["distance"] - if pieces["dirty"]: - rendered += ".dev0" - else: - # exception #1 - rendered = "0.post%d" % pieces["distance"] - if pieces["dirty"]: - rendered += ".dev0" - return rendered - - -def render_git_describe(pieces): - """TAG[-DISTANCE-gHEX][-dirty]. - - Like 'git describe --tags --dirty --always'. - - Exceptions: - 1: no tags. HEX[-dirty] (note: no 'g' prefix) - """ - if pieces["closest-tag"]: - rendered = pieces["closest-tag"] - if pieces["distance"]: - rendered += "-%d-g%s" % (pieces["distance"], pieces["short"]) - else: - # exception #1 - rendered = pieces["short"] - if pieces["dirty"]: - rendered += "-dirty" - return rendered - - -def render_git_describe_long(pieces): - """TAG-DISTANCE-gHEX[-dirty]. - - Like 'git describe --tags --dirty --always -long'. - The distance/hash is unconditional. - - Exceptions: - 1: no tags. HEX[-dirty] (note: no 'g' prefix) - """ - if pieces["closest-tag"]: - rendered = pieces["closest-tag"] - rendered += "-%d-g%s" % (pieces["distance"], pieces["short"]) - else: - # exception #1 - rendered = pieces["short"] - if pieces["dirty"]: - rendered += "-dirty" - return rendered - - -def render(pieces, style): - """Render the given version pieces into the requested style.""" - if pieces["error"]: - return {"version": "unknown", - "full-revisionid": pieces.get("long"), - "dirty": None, - "error": pieces["error"], - "date": None} - - if not style or style == "default": - style = "pep440" # the default - - if style == "pep440": - rendered = render_pep440(pieces) - elif style == "pep440-branch": - rendered = render_pep440_branch(pieces) - elif style == "pep440-pre": - rendered = render_pep440_pre(pieces) - elif style == "pep440-post": - rendered = render_pep440_post(pieces) - elif style == "pep440-post-branch": - rendered = render_pep440_post_branch(pieces) - elif style == "pep440-old": - rendered = render_pep440_old(pieces) - elif style == "git-describe": - rendered = render_git_describe(pieces) - elif style == "git-describe-long": - rendered = render_git_describe_long(pieces) - else: - raise ValueError("unknown style '%s'" % style) - - return {"version": rendered, "full-revisionid": pieces["long"], - "dirty": pieces["dirty"], "error": None, - "date": pieces.get("date")} +version_json = ''' +{ + "date": "2024-04-24T16:20:37-0700", + "dirty": false, + "error": null, + "full-revisionid": "d0760904a1248ce316ae0237c8a1127ac5673d7f", + "version": "2.0.0" +} +''' # END VERSION_JSON def get_versions(): - """Get version information or return default if unable to do so.""" - # I am in _version.py, which lives at ROOT/VERSIONFILE_SOURCE. If we have - # __file__, we can work backwards from there to the root. Some - # py2exe/bbfreeze/non-CPython implementations don't do __file__, in which - # case we can only use expanded keywords. - - cfg = get_config() - verbose = cfg.verbose - - try: - return git_versions_from_keywords(get_keywords(), cfg.tag_prefix, - verbose) - except NotThisMethod: - pass - - try: - root = os.path.realpath(__file__) - # versionfile_source is the relative path from the top of the source - # tree (where the .git directory might live) to this file. Invert - # this to find the root from __file__. - for _ in cfg.versionfile_source.split('/'): - root = os.path.dirname(root) - except NameError: - return {"version": "0+unknown", "full-revisionid": None, - "dirty": None, - "error": "unable to find root of source tree", - "date": None} - - try: - pieces = git_pieces_from_vcs(cfg.tag_prefix, root, verbose) - return render(pieces, cfg.style) - except NotThisMethod: - pass - - try: - if cfg.parentdir_prefix: - return versions_from_parentdir(cfg.parentdir_prefix, root, verbose) - except NotThisMethod: - pass - - return {"version": "0+unknown", "full-revisionid": None, - "dirty": None, - "error": "unable to compute version", "date": None} + return json.loads(version_json) diff --git a/notebooks/tutorials/01_simple_app.ipynb b/notebooks/tutorials/01_simple_app.ipynb index 11874ae0..d5f1dbf3 100644 --- a/notebooks/tutorials/01_simple_app.ipynb +++ b/notebooks/tutorials/01_simple_app.ipynb @@ -54,7 +54,7 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ @@ -82,7 +82,7 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 2, "metadata": {}, "outputs": [ { @@ -92,19 +92,27 @@ "Test input file path: '/tmp/simple_app/normal-brain-mri-4.png'\n" ] }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/tmp/ipykernel_2020944/2727006292.py:16: FutureWarning: `imshow` is deprecated since version 0.25 and will be removed in version 0.27. Please use `matplotlib`, `napari`, etc. to visualize images.\n", + " io.imshow(test_image)\n" + ] + }, { "data": { "text/plain": [ - "" + "" ] }, - "execution_count": 29, + "execution_count": 2, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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o1EcPnwYR44c2cCebR4MDw8jm81WjGEqlcLBgwfVGB45cgTpdBoHDhxQZQ4fPoxoNIoXXnjhsvf5SkE+nwcAdHR0AABefPFFrKysVIzl7t27sW3btoqxvPXWW9Hb26vKPPDAAygUCnjttdcuY++vDKytreGJJ57AwsICDh06FI5hFXj00Ufx0EMPVYwZEM7HoDhx4gQGBgZw3XXX4ZFHHsHo6CiAyzuOm+o0pKmpKaytrVXcNAD09vbizTff3KBebS5ks1kAMI4hv8tms+jp6an4vrGxER0dHarMtYb19XV8+tOfxj333INbbrkFwPlxam5uRjqdriirj6VprPndtYJXX30Vhw4dwtLSEtra2vCNb3wDN910E44ePRqOYQA88cQT+NnPfoaf/OQnF30Xzkd7HDx4EF/96ldx4403Ynx8HH/2Z3+Ge++9F8eOHbus47ipCDhEiI3Co48+imPHjuG5557b6K5sStx44404evQo8vk8/uM//gMf+chH8Oyzz250tzYVzpw5g0996lN4+umnEYvFNro7mxoPPvig+nvv3r04ePAghoaG8LWvfQ3xePyy9WNTmaC7urrQ0NBwUTTaxMQE+vr6NqhXmwscJ68x7Ovrw+TkZMX3q6urmJmZuSbH+ZOf/CS+9a1v4Qc/+AEGBwfV5319fSiXy5ibm6sor4+laaz53bWC5uZmXH/99di/fz8ef/xx7Nu3D3/7t38bjmEAvPjii5icnMTtt9+OxsZGNDY24tlnn8Xf/d3fobGxEb29veFYVol0Oo0bbrgBJ0+evKxzclMRcHNzM/bv349nnnlGfba+vo5nnnkGhw4d2sCebR7s2LEDfX19FWNYKBTwwgsvqDE8dOgQ5ubm8OKLL6oy3//+97G+vo6DBw9e9j5vFBzHwSc/+Ul84xvfwPe//33s2LGj4vv9+/ejqampYiyPHz+O0dHRirF89dVXKwSap59+GslkEjfddNPluZErEOvr61heXg7HMADe85734NVXX8XRo0fVz4EDB/DII4+ov8OxrA7z8/M4deoU+vv7L++crCqEbAPxxBNPOC0tLc5Xv/pV5/XXX3d++7d/20mn0xXRaNc6isWi89JLLzkvvfSSA8D567/+a+ell15yRkZGHMc5vw0pnU47//Vf/+W88sorzgc+8AHjNqTbbrvNeeGFF5znnnvO2bVr1zW3DekTn/iEk0qlnB/+8IcV2xUWFxdVmY9//OPOtm3bnO9///vOT3/6U+fQoUPOoUOH1PfcrnD//fc7R48edb773e863d3d19S2j89//vPOs88+6wwPDzuvvPKK8/nPf96JRCLO9773PcdxwjGsBTIK2nHCsbTFZz/7WeeHP/yhMzw87PzoRz9yDh8+7HR1dTmTk5OO41y+cdx0BOw4jvP3f//3zrZt25zm5mbnzjvvdJ5//vmN7tIVhR/84AcOgIt+PvKRjziOc34r0p/8yZ84vb29TktLi/Oe97zHOX78eEUd09PTzsMPP+y0tbU5yWTS+ehHP+oUi8UNuJuNg2kMAThf+cpXVJlSqeT8zu/8jpPJZJzW1lbngx/8oDM+Pl5Rz9tvv+08+OCDTjwed7q6upzPfvazzsrKymW+m43Db/7mbzpDQ0NOc3Oz093d7bznPe9R5Os44RjWAp2Aw7G0w4c//GGnv7/faW5udrZs2eJ8+MMfdk6ePKm+v1zjGJ4HHCJEiBAhQmwANpUPOESIECFChLhaEBJwiBAhQoQIsQEICThEiBAhQoTYAIQEHCJEiBAhQmwAQgIOESJEiBAhNgAhAYcIESJEiBAbgJCAQ4QIESJEiA1ASMAhQoQIESLEBiAk4BAhQoQIEWIDEBJwiBAhQoQIsQEICThEiBAhQoTYAPw/PrqZCbjWN/UAAAAASUVORK5CYII=", + "image/png": "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kZgjRPUIx7E+CMexPgjHsX4Ix7I+8BvHIJovUVMijhAhQoQIESJEdQgJOESIECFChNgAbFoCbmlpwWOPPRZm0KoR4TjWB+E41gfhONYP4VjWB5dyHDdlEFaIECFChAix2bFpNeAQIUKECBFiMyMk4BAhQoQIEWIDEBJwiBAhQoQIsQEICThEiBAhQoTYAIQEHCJEiBAhQmwANiUB/8M//AO2b9+OWCyGgwcP4sc//vFGd+mKwv/8z//g/e9/PwYGBhCJRPDkk09WfO84Dv70T/8U/f39iMfjOHz4ME6cOFFRZmZmBo888giSySTS6TQ+9rGPYX5+/jLexcbj8ccfxx133IH29nb09PTgl3/5l3H8+PGKMktLS3j00UfR2dmJtrY2fOhDH8LExERFmdHRUTz00ENobW1FT08PPve5z2F1dfVy3sqG4stf/jL27t2rMgkdOnQITz31lPo+HMPq8KUvfQmRSASf/vSn1WfhWNrhi1/8ojrFjD+7d+9W31+2cXQ2GZ544gmnubnZ+dd//Vfntddec37rt37LSafTzsTExEZ37YrBd77zHeeP/uiPnP/8z/90ADjf+MY3Kr7/0pe+5KRSKefJJ590Xn75ZeeXfumXnB07djilUkmVee973+vs27fPef75553//d//da6//nrn4Ycfvsx3srF44IEHnK985SvOsWPHnKNHjzq/+Iu/6Gzbts2Zn59XZT7+8Y87W7dudZ555hnnpz/9qXPXXXc5d999t/p+dXXVueWWW5zDhw87L730kvOd73zH6erqcr7whS9sxC1tCL75zW863/72t5233nrLOX78uPOHf/iHTlNTk3Ps2DHHccIxrAY//vGPne3btzt79+51PvWpT6nPw7G0w2OPPebcfPPNzvj4uPrJ5XLq+8s1jpuOgO+8807n0UcfVf+vra05AwMDzuOPP76BvbpyoRPw+vq609fX5/zVX/2V+mxubs5paWlx/v3f/91xHMd5/fXXHQDOT37yE1XmqaeeciKRiHP27NnL1vcrDZOTkw4A59lnn3Uc5/y4NTU1OV//+tdVmTfeeMMB4Bw5csRxnPPCUDQadbLZrCrz5S9/2Ukmk87y8vLlvYErCJlMxvmXf/mXcAyrQLFYdHbt2uU8/fTTzn333acIOBxLezz22GPOvn37jN9dznHcVCbocrmMF198EYcPH1afRaNRHD58GEeOHNnAnm0eDA8PI5vNVoxhKpXCwYMH1RgeOXIE6XQaBw4cUGUOHz6MaDSKF1544bL3+UpBPp8HAHR0dAAAXnzxRaysrFSM5e7du7Ft27aKsbz11lvR29uryjzwwAMoFAp47bXXLmPvrwysra3hiSeewMLCAg4dOhSOYRV49NFH8dBDD1WMGRDOx6A4ceIEBgYGcN111+GRRx7B6OgogMs7jpvqNKSpqSmsra1V3DQA9Pb24s0339ygXm0uZLNZADCOIb/LZrPo6emp+L6xsREdHR2qzLWG9fV1fPrTn8Y999yDW265BcD5cWpubkY6na4oq4+laaz53bWCV199FYcOHcLS0hLa2trwjW98AzfddBOOHj0ajmEAPPHEE/jZz36Gn/zkJxd9F85Hexw8eBBf/epXceONN2J8fBx/9md/hnvvvRfHjh27rOO4qQg4RIiNwqOPPopjx47hueee2+iubErceOONOHr0KPL5PP7jP/4DH/nIR/Dss89udLc2Fc6cOYNPfepTePrppxGLxTa6O5saDz74oPp77969OHjwIIaGhvC1r30N8Xj8svVjU5mgu7q60NDQcFE02sTEBPr6+jaoV5sLHCevMezr68Pk5GTF96urq5iZmbkmx/mTn/wkvvWtb+EHP/gBBgcH1ed9fX0ol8uYm5urKK+PpWms+d21gubmZlx//fXYv38/Hn/8cezbtw9/+7d/G45hALz44ouYnJzE7bffjsbGRjQ2NuLZZ5/F3/3d36GxsRG9vb3hWFaJdDqNG264ASdPnrysc3JTEXBzczP279+PZ555Rn22vr6OZ555BocOHdrAnm0e7NixA319fRVjWCgU8MILL6gxPHToEObm5vDiiy+qMt///vexvr6OgwcPXvY+bxQcx8EnP/lJfOMb38D3v/997Nixo+L7/fv3o6mpqWIsjx8/jtHR0YqxfPXVVysEmqeffhrJZBI33XTT5bmRKxDr6+tYXl4OxzAA3vOe9+DVV1/F0aNH1c+BAwfwyCOPqL/DsawO8/PzOHXqFPr7+y/vnKwqhGwD8cQTTzgtLS3OV7/6Vef11193fvu3f9tJp9MV0WjXOorFovPSSy85L730kgPA+eu//mvnpZdeckZGRhzHOb8NKZ1OO//1X//lvPLKK84HPvAB4zak2267zXnhhRec5557ztm1a9c1tw3pE5/4hJNKpZwf/vCHFdsVFhcXVZmPf/zjzrZt25zvf//7zk9/+lPn0KFDzqFDh9T33K5w//33O0ePHnW++93vOt3d3dfUto/Pf/7zzrPPPusMDw87r7zyivP5z3/eiUQizve+9z3HccIxrAUyCtpxwrG0xWc/+1nnhz/8oTM8POz86Ec/cg4fPux0dXU5k5OTjuNcvnHcdATsOI7z93//9862bduc5uZm584773Sef/75je7SFYUf/OAHDoCLfj7ykY84jnN+K9Kf/MmfOL29vU5LS4vznve8xzl+/HhFHdPT087DDz/stLW1Oclk0vnoRz/qFIvFDbibjYNpDAE4X/nKV1SZUqnk/M7v/I6TyWSc1tZW54Mf/KAzPj5eUc/bb7/tPPjgg048Hne6urqcz372s87KysplvpuNw2/+5m86Q0NDTnNzs9Pd3e285z3vUeTrOOEY1gKdgMOxtMOHP/xhp7+/32lubna2bNnifPjDH3ZOnjypvr9c4xieBxwiRIgQIUJsADaVDzhEiBAhQoS4WhAScIgQIUKECLEBCAk4RIgQIUKE2ACEBBwiRIgQIUJsAEICDhEiRIgQITYAIQGHCBEiRIgQG4CQgEOECBEiRIgNQEjAIUKECBEixAYgJOAQIUKECBFiAxAScIgQIUKECLEBCAk4RIgQIUKE2AD8Pz66mQm41jf1AAAAAElFTkSuQmCC", "text/plain": [ "
" ] @@ -145,7 +153,7 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 3, "metadata": {}, "outputs": [ { @@ -179,7 +187,7 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -212,7 +220,7 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": 5, "metadata": {}, "outputs": [], "source": [ @@ -283,7 +291,7 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": 6, "metadata": {}, "outputs": [], "source": [ @@ -335,7 +343,7 @@ }, { "cell_type": "code", - "execution_count": 34, + "execution_count": 7, "metadata": {}, "outputs": [], "source": [ @@ -428,7 +436,7 @@ }, { "cell_type": "code", - "execution_count": 35, + "execution_count": 8, "metadata": {}, "outputs": [ { @@ -507,57 +515,59 @@ }, { "cell_type": "code", - "execution_count": 36, + "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - "[2024-04-23 15:26:29,737] [INFO] (root) - Parsed args: Namespace(log_level=None, input=None, output=None, model=None, workdir=None, argv=[])\n", - "[2024-04-23 15:26:29,745] [INFO] (root) - AppContext object: AppContext(input_path=/tmp/simple_app/normal-brain-mri-4.png, output_path=output, model_path=models, workdir=)\n" + "[info] [fragment.cpp:588] Loading extensions from configs...\n", + "[2025-01-16 10:20:47,518] [INFO] (root) - Parsed args: Namespace(log_level=None, input=None, output=None, model=None, workdir=None, argv=[])\n", + "[2025-01-16 10:20:47,531] [INFO] (root) - AppContext object: AppContext(input_path=/tmp/simple_app/normal-brain-mri-4.png, output_path=output, model_path=models, workdir=)\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "sample_data_path: /tmp/simple_app/normal-brain-mri-4.png\n", - "\u001b[0m2024-04-23 15:26:29.768 INFO gxf/std/greedy_scheduler.cpp@191: Scheduling 3 entities\u001b[0m\n", - "Number of times operator sobel_op whose class is defined in __main__ called: 1\n", - "Input from: /tmp/simple_app/normal-brain-mri-4.png, whose absolute path: /tmp/simple_app/normal-brain-mri-4.png\n" + "sample_data_path: /tmp/simple_app/normal-brain-mri-4.png\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "[info] [gxf_executor.cpp:247] Creating context\n", - "[info] [gxf_executor.cpp:1672] Loading extensions from configs...\n", - "[info] [gxf_executor.cpp:1842] Activating Graph...\n", - "[info] [gxf_executor.cpp:1874] Running Graph...\n", - "[info] [gxf_executor.cpp:1876] Waiting for completion...\n" + "[info] [gxf_executor.cpp:262] Creating context\n", + "[info] [gxf_executor.cpp:1767] creating input IOSpec named 'in1'\n", + "[info] [gxf_executor.cpp:1767] creating input IOSpec named 'in1'\n", + "[info] [gxf_executor.cpp:2178] Activating Graph...\n", + "[info] [gxf_executor.cpp:2208] Running Graph...\n", + "[info] [gxf_executor.cpp:2210] Waiting for completion...\n", + "[info] [greedy_scheduler.cpp:191] Scheduling 3 entities\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ + "Number of times operator sobel_op whose class is defined in __main__ called: 1\n", + "Input from: /tmp/simple_app/normal-brain-mri-4.png, whose absolute path: /tmp/simple_app/normal-brain-mri-4.png\n", "Number of times operator median_op whose class is defined in __main__ called: 1\n", "Number of times operator gaussian_op whose class is defined in __main__ called: 1\n", "Data type of output: , max = 0.35821119421406195\n", - "Data type of output post conversion: , max = 91\n", - "\u001b[0m2024-04-23 15:26:30.023 INFO gxf/std/greedy_scheduler.cpp@372: Scheduler stopped: Some entities are waiting for execution, but there are no periodic or async entities to get out of the deadlock.\u001b[0m\n", - "\u001b[0m2024-04-23 15:26:30.023 INFO gxf/std/greedy_scheduler.cpp@401: Scheduler finished.\u001b[0m\n" + "Data type of output post conversion: , max = 91\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "[info] [gxf_executor.cpp:1879] Deactivating Graph...\n", - "[info] [gxf_executor.cpp:1887] Graph execution finished.\n", - "[info] [gxf_executor.cpp:275] Destroying context\n" + "[info] [greedy_scheduler.cpp:372] Scheduler stopped: Some entities are waiting for execution, but there are no periodic or async entities to get out of the deadlock.\n", + "[info] [greedy_scheduler.cpp:401] Scheduler finished.\n", + "[info] [gxf_executor.cpp:2213] Deactivating Graph...\n", + "[info] [gxf_executor.cpp:2221] Graph execution finished.\n", + "[info] [gxf_executor.cpp:292] Destroying context\n" ] } ], @@ -568,7 +578,7 @@ }, { "cell_type": "code", - "execution_count": 37, + "execution_count": 10, "metadata": {}, "outputs": [ { @@ -585,22 +595,30 @@ }, { "cell_type": "code", - "execution_count": 38, + "execution_count": 11, "metadata": {}, "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/tmp/ipykernel_2020944/1643627018.py:3: FutureWarning: `imshow` is deprecated since version 0.25 and will be removed in version 0.27. Please use `matplotlib`, `napari`, etc. to visualize images.\n", + " io.imshow(output_image)\n" + ] + }, { "data": { "text/plain": [ - "" + "" ] }, - "execution_count": 38, + "execution_count": 11, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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", + "image/png": "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", "text/plain": [ "
" ] @@ -641,7 +659,7 @@ }, { "cell_type": "code", - "execution_count": 39, + "execution_count": 12, "metadata": {}, "outputs": [], "source": [ @@ -659,7 +677,7 @@ }, { "cell_type": "code", - "execution_count": 40, + "execution_count": 13, "metadata": {}, "outputs": [ { @@ -739,7 +757,7 @@ }, { "cell_type": "code", - "execution_count": 41, + "execution_count": 14, "metadata": {}, "outputs": [ { @@ -801,7 +819,7 @@ }, { "cell_type": "code", - "execution_count": 42, + "execution_count": 15, "metadata": {}, "outputs": [ { @@ -897,7 +915,7 @@ }, { "cell_type": "code", - "execution_count": 43, + "execution_count": 16, "metadata": {}, "outputs": [ { @@ -999,7 +1017,7 @@ }, { "cell_type": "code", - "execution_count": 44, + "execution_count": 17, "metadata": {}, "outputs": [ { @@ -1020,7 +1038,7 @@ }, { "cell_type": "code", - "execution_count": 45, + "execution_count": 18, "metadata": {}, "outputs": [ { @@ -1050,92 +1068,94 @@ }, { "cell_type": "code", - "execution_count": 46, + "execution_count": 19, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "[2024-04-23 15:26:34,943] [INFO] (root) - Parsed args: Namespace(log_level='DEBUG', input=PosixPath('/tmp/simple_app'), output=PosixPath('/home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/output'), model=None, workdir=None, argv=['simple_imaging_app', '-i', '/tmp/simple_app', '-o', 'output', '-l', 'DEBUG'])\n", - "[2024-04-23 15:26:34,945] [INFO] (root) - AppContext object: AppContext(input_path=/tmp/simple_app, output_path=/home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/output, model_path=models, workdir=)\n", - "[2024-04-23 15:26:34,945] [INFO] (root) - sample_data_path: /tmp/simple_app\n", - "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:247] Creating context\n", - "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:1672] Loading extensions from configs...\n", - "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:1842] Activating Graph...\n", - "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:1874] Running Graph...\n", - "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:1876] Waiting for completion...\n", - "\u001b[0m2024-04-23 15:26:34.968 INFO gxf/std/greedy_scheduler.cpp@191: Scheduling 3 entities\u001b[0m\n", + "[\u001b[32minfo\u001b[m] [fragment.cpp:588] Loading extensions from configs...\n", + "[2025-01-16 10:20:53,264] [INFO] (root) - Parsed args: Namespace(log_level='DEBUG', input=PosixPath('/tmp/simple_app'), output=PosixPath('/home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/output'), model=None, workdir=None, argv=['simple_imaging_app', '-i', '/tmp/simple_app', '-o', 'output', '-l', 'DEBUG'])\n", + "[2025-01-16 10:20:53,266] [INFO] (root) - AppContext object: AppContext(input_path=/tmp/simple_app, output_path=/home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/output, model_path=models, workdir=)\n", + "[2025-01-16 10:20:53,266] [INFO] (root) - sample_data_path: /tmp/simple_app\n", + "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:262] Creating context\n", + "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:1767] creating input IOSpec named 'in1'\n", + "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:1767] creating input IOSpec named 'in1'\n", + "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:2178] Activating Graph...\n", + "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:2208] Running Graph...\n", + "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:2210] Waiting for completion...\n", + "[\u001b[32minfo\u001b[m] [greedy_scheduler.cpp:191] Scheduling 3 entities\n", "Number of times operator sobel_op whose class is defined in sobel_operator called: 1\n", "Input from: /tmp/simple_app, whose absolute path: /tmp/simple_app\n", - "[2024-04-23 15:26:34,996] [DEBUG] (PIL.PngImagePlugin) - STREAM b'IHDR' 16 13\n", - "[2024-04-23 15:26:34,996] [DEBUG] (PIL.PngImagePlugin) - STREAM b'sRGB' 41 1\n", - "[2024-04-23 15:26:34,996] [DEBUG] (PIL.PngImagePlugin) - STREAM b'gAMA' 54 4\n", - "[2024-04-23 15:26:34,996] [DEBUG] (PIL.PngImagePlugin) - STREAM b'pHYs' 70 9\n", - "[2024-04-23 15:26:34,996] [DEBUG] (PIL.PngImagePlugin) - STREAM b'IDAT' 91 65445\n", - "[2024-04-23 15:26:34,996] [DEBUG] (PIL.PngImagePlugin) - STREAM b'IHDR' 16 13\n", - "[2024-04-23 15:26:34,996] [DEBUG] (PIL.PngImagePlugin) - STREAM b'sRGB' 41 1\n", - "[2024-04-23 15:26:34,996] [DEBUG] (PIL.PngImagePlugin) - STREAM b'gAMA' 54 4\n", - "[2024-04-23 15:26:34,996] [DEBUG] (PIL.PngImagePlugin) - STREAM b'pHYs' 70 9\n", - "[2024-04-23 15:26:34,996] [DEBUG] (PIL.PngImagePlugin) - STREAM b'IDAT' 91 65445\n", - "[2024-04-23 15:26:35,002] [DEBUG] (PIL.Image) - Error closing: Operation on closed image\n", + "[2025-01-16 10:20:53,288] [DEBUG] (PIL.PngImagePlugin) - STREAM b'IHDR' 16 13\n", + "[2025-01-16 10:20:53,288] [DEBUG] (PIL.PngImagePlugin) - STREAM b'sRGB' 41 1\n", + "[2025-01-16 10:20:53,288] [DEBUG] (PIL.PngImagePlugin) - STREAM b'gAMA' 54 4\n", + "[2025-01-16 10:20:53,288] [DEBUG] (PIL.PngImagePlugin) - STREAM b'pHYs' 70 9\n", + "[2025-01-16 10:20:53,288] [DEBUG] (PIL.PngImagePlugin) - STREAM b'IDAT' 91 65445\n", + "[2025-01-16 10:20:53,289] [DEBUG] (PIL.PngImagePlugin) - STREAM b'IHDR' 16 13\n", + "[2025-01-16 10:20:53,289] [DEBUG] (PIL.PngImagePlugin) - STREAM b'sRGB' 41 1\n", + "[2025-01-16 10:20:53,289] [DEBUG] (PIL.PngImagePlugin) - STREAM b'gAMA' 54 4\n", + "[2025-01-16 10:20:53,289] [DEBUG] (PIL.PngImagePlugin) - STREAM b'pHYs' 70 9\n", + "[2025-01-16 10:20:53,289] [DEBUG] (PIL.PngImagePlugin) - STREAM b'IDAT' 91 65445\n", + "[2025-01-16 10:20:53,293] [DEBUG] (PIL.Image) - Error closing: Operation on closed image\n", "Number of times operator median_op whose class is defined in median_operator called: 1\n", "Number of times operator gaussian_op whose class is defined in gaussian_operator called: 1\n", "Data type of output: , max = 0.35821119421406195\n", "Data type of output post conversion: , max = 91\n", - "[2024-04-23 15:26:35,225] [DEBUG] (PIL.Image) - Importing BlpImagePlugin\n", - "[2024-04-23 15:26:35,226] [DEBUG] (PIL.Image) - Importing BmpImagePlugin\n", - "[2024-04-23 15:26:35,226] [DEBUG] (PIL.Image) - Importing BufrStubImagePlugin\n", - "[2024-04-23 15:26:35,227] [DEBUG] (PIL.Image) - Importing CurImagePlugin\n", - "[2024-04-23 15:26:35,227] [DEBUG] (PIL.Image) - Importing DcxImagePlugin\n", - "[2024-04-23 15:26:35,227] [DEBUG] (PIL.Image) - Importing DdsImagePlugin\n", - "[2024-04-23 15:26:35,230] [DEBUG] (PIL.Image) - Importing EpsImagePlugin\n", - "[2024-04-23 15:26:35,231] [DEBUG] (PIL.Image) - Importing FitsImagePlugin\n", - "[2024-04-23 15:26:35,231] [DEBUG] (PIL.Image) - Importing FliImagePlugin\n", - "[2024-04-23 15:26:35,231] [DEBUG] (PIL.Image) - Importing FpxImagePlugin\n", - "[2024-04-23 15:26:35,231] [DEBUG] (PIL.Image) - Image: failed to import FpxImagePlugin: No module named 'olefile'\n", - "[2024-04-23 15:26:35,231] [DEBUG] (PIL.Image) - Importing FtexImagePlugin\n", - "[2024-04-23 15:26:35,232] [DEBUG] (PIL.Image) - Importing GbrImagePlugin\n", - "[2024-04-23 15:26:35,232] [DEBUG] (PIL.Image) - Importing GifImagePlugin\n", - "[2024-04-23 15:26:35,232] [DEBUG] (PIL.Image) - Importing GribStubImagePlugin\n", - "[2024-04-23 15:26:35,232] [DEBUG] (PIL.Image) - Importing Hdf5StubImagePlugin\n", - "[2024-04-23 15:26:35,232] [DEBUG] (PIL.Image) - Importing IcnsImagePlugin\n", - "[2024-04-23 15:26:35,233] [DEBUG] (PIL.Image) - Importing IcoImagePlugin\n", - "[2024-04-23 15:26:35,233] [DEBUG] (PIL.Image) - Importing ImImagePlugin\n", - "[2024-04-23 15:26:35,234] [DEBUG] (PIL.Image) - Importing ImtImagePlugin\n", - "[2024-04-23 15:26:35,234] [DEBUG] (PIL.Image) - Importing IptcImagePlugin\n", - "[2024-04-23 15:26:35,235] [DEBUG] (PIL.Image) - Importing JpegImagePlugin\n", - "[2024-04-23 15:26:35,235] [DEBUG] (PIL.Image) - Importing Jpeg2KImagePlugin\n", - "[2024-04-23 15:26:35,235] [DEBUG] (PIL.Image) - Importing McIdasImagePlugin\n", - "[2024-04-23 15:26:35,235] [DEBUG] (PIL.Image) - Importing MicImagePlugin\n", - "[2024-04-23 15:26:35,235] [DEBUG] (PIL.Image) - Image: failed to import MicImagePlugin: No module named 'olefile'\n", - "[2024-04-23 15:26:35,235] [DEBUG] (PIL.Image) - Importing MpegImagePlugin\n", - "[2024-04-23 15:26:35,235] [DEBUG] (PIL.Image) - Importing MpoImagePlugin\n", - "[2024-04-23 15:26:35,236] [DEBUG] (PIL.Image) - Importing MspImagePlugin\n", - "[2024-04-23 15:26:35,237] [DEBUG] (PIL.Image) - Importing PalmImagePlugin\n", - "[2024-04-23 15:26:35,237] [DEBUG] (PIL.Image) - Importing PcdImagePlugin\n", - "[2024-04-23 15:26:35,237] [DEBUG] (PIL.Image) - Importing PcxImagePlugin\n", - "[2024-04-23 15:26:35,237] [DEBUG] (PIL.Image) - Importing PdfImagePlugin\n", - "[2024-04-23 15:26:35,242] [DEBUG] (PIL.Image) - Importing PixarImagePlugin\n", - "[2024-04-23 15:26:35,242] [DEBUG] (PIL.Image) - Importing PngImagePlugin\n", - "[2024-04-23 15:26:35,242] [DEBUG] (PIL.Image) - Importing PpmImagePlugin\n", - "[2024-04-23 15:26:35,242] [DEBUG] (PIL.Image) - Importing PsdImagePlugin\n", - "[2024-04-23 15:26:35,242] [DEBUG] (PIL.Image) - Importing QoiImagePlugin\n", - "[2024-04-23 15:26:35,242] [DEBUG] (PIL.Image) - Importing SgiImagePlugin\n", - "[2024-04-23 15:26:35,242] [DEBUG] (PIL.Image) - Importing SpiderImagePlugin\n", - "[2024-04-23 15:26:35,243] [DEBUG] (PIL.Image) - Importing SunImagePlugin\n", - "[2024-04-23 15:26:35,243] [DEBUG] (PIL.Image) - Importing TgaImagePlugin\n", - "[2024-04-23 15:26:35,243] [DEBUG] (PIL.Image) - Importing TiffImagePlugin\n", - "[2024-04-23 15:26:35,243] [DEBUG] (PIL.Image) - Importing WebPImagePlugin\n", - "[2024-04-23 15:26:35,244] [DEBUG] (PIL.Image) - Importing WmfImagePlugin\n", - "[2024-04-23 15:26:35,245] [DEBUG] (PIL.Image) - Importing XbmImagePlugin\n", - "[2024-04-23 15:26:35,245] [DEBUG] (PIL.Image) - Importing XpmImagePlugin\n", - "[2024-04-23 15:26:35,245] [DEBUG] (PIL.Image) - Importing XVThumbImagePlugin\n", - "\u001b[0m2024-04-23 15:26:35.273 INFO gxf/std/greedy_scheduler.cpp@372: Scheduler stopped: Some entities are waiting for execution, but there are no periodic or async entities to get out of the deadlock.\u001b[0m\n", - "\u001b[0m2024-04-23 15:26:35.273 INFO gxf/std/greedy_scheduler.cpp@401: Scheduler finished.\u001b[0m\n", - "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:1879] Deactivating Graph...\n", - "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:1887] Graph execution finished.\n", - "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:275] Destroying context\n" + "[2025-01-16 10:20:53,538] [DEBUG] (PIL.Image) - Importing BlpImagePlugin\n", + "[2025-01-16 10:20:53,540] [DEBUG] (PIL.Image) - Importing BmpImagePlugin\n", + "[2025-01-16 10:20:53,540] [DEBUG] (PIL.Image) - Importing BufrStubImagePlugin\n", + "[2025-01-16 10:20:53,540] [DEBUG] (PIL.Image) - Importing CurImagePlugin\n", + "[2025-01-16 10:20:53,540] [DEBUG] (PIL.Image) - Importing DcxImagePlugin\n", + "[2025-01-16 10:20:53,541] [DEBUG] (PIL.Image) - Importing DdsImagePlugin\n", + "[2025-01-16 10:20:53,543] [DEBUG] (PIL.Image) - Importing EpsImagePlugin\n", + "[2025-01-16 10:20:53,544] [DEBUG] (PIL.Image) - Importing FitsImagePlugin\n", + "[2025-01-16 10:20:53,544] [DEBUG] (PIL.Image) - Importing FliImagePlugin\n", + "[2025-01-16 10:20:53,544] [DEBUG] (PIL.Image) - Importing FpxImagePlugin\n", + "[2025-01-16 10:20:53,545] [DEBUG] (PIL.Image) - Image: failed to import FpxImagePlugin: No module named 'olefile'\n", + "[2025-01-16 10:20:53,545] [DEBUG] (PIL.Image) - Importing FtexImagePlugin\n", + "[2025-01-16 10:20:53,545] [DEBUG] (PIL.Image) - Importing GbrImagePlugin\n", + "[2025-01-16 10:20:53,545] [DEBUG] (PIL.Image) - Importing GifImagePlugin\n", + "[2025-01-16 10:20:53,545] [DEBUG] (PIL.Image) - Importing GribStubImagePlugin\n", + "[2025-01-16 10:20:53,545] [DEBUG] (PIL.Image) - Importing Hdf5StubImagePlugin\n", + "[2025-01-16 10:20:53,546] [DEBUG] (PIL.Image) - Importing IcnsImagePlugin\n", + "[2025-01-16 10:20:53,546] [DEBUG] (PIL.Image) - Importing IcoImagePlugin\n", + "[2025-01-16 10:20:53,547] [DEBUG] (PIL.Image) - Importing ImImagePlugin\n", + "[2025-01-16 10:20:53,547] [DEBUG] (PIL.Image) - Importing ImtImagePlugin\n", + "[2025-01-16 10:20:53,547] [DEBUG] (PIL.Image) - Importing IptcImagePlugin\n", + "[2025-01-16 10:20:53,548] [DEBUG] (PIL.Image) - Importing JpegImagePlugin\n", + "[2025-01-16 10:20:53,548] [DEBUG] (PIL.Image) - Importing Jpeg2KImagePlugin\n", + "[2025-01-16 10:20:53,548] [DEBUG] (PIL.Image) - Importing McIdasImagePlugin\n", + "[2025-01-16 10:20:53,548] [DEBUG] (PIL.Image) - Importing MicImagePlugin\n", + "[2025-01-16 10:20:53,548] [DEBUG] (PIL.Image) - Image: failed to import MicImagePlugin: No module named 'olefile'\n", + "[2025-01-16 10:20:53,548] [DEBUG] (PIL.Image) - Importing MpegImagePlugin\n", + "[2025-01-16 10:20:53,548] [DEBUG] (PIL.Image) - Importing MpoImagePlugin\n", + "[2025-01-16 10:20:53,549] [DEBUG] (PIL.Image) - Importing MspImagePlugin\n", + "[2025-01-16 10:20:53,550] [DEBUG] (PIL.Image) - Importing PalmImagePlugin\n", + "[2025-01-16 10:20:53,550] [DEBUG] (PIL.Image) - Importing PcdImagePlugin\n", + "[2025-01-16 10:20:53,550] [DEBUG] (PIL.Image) - Importing PcxImagePlugin\n", + "[2025-01-16 10:20:53,550] [DEBUG] (PIL.Image) - Importing PdfImagePlugin\n", + "[2025-01-16 10:20:53,555] [DEBUG] (PIL.Image) - Importing PixarImagePlugin\n", + "[2025-01-16 10:20:53,555] [DEBUG] (PIL.Image) - Importing PngImagePlugin\n", + "[2025-01-16 10:20:53,555] [DEBUG] (PIL.Image) - Importing PpmImagePlugin\n", + "[2025-01-16 10:20:53,555] [DEBUG] (PIL.Image) - Importing PsdImagePlugin\n", + "[2025-01-16 10:20:53,555] [DEBUG] (PIL.Image) - Importing QoiImagePlugin\n", + "[2025-01-16 10:20:53,556] [DEBUG] (PIL.Image) - Importing SgiImagePlugin\n", + "[2025-01-16 10:20:53,556] [DEBUG] (PIL.Image) - Importing SpiderImagePlugin\n", + "[2025-01-16 10:20:53,556] [DEBUG] (PIL.Image) - Importing SunImagePlugin\n", + "[2025-01-16 10:20:53,556] [DEBUG] (PIL.Image) - Importing TgaImagePlugin\n", + "[2025-01-16 10:20:53,556] [DEBUG] (PIL.Image) - Importing TiffImagePlugin\n", + "[2025-01-16 10:20:53,556] [DEBUG] (PIL.Image) - Importing WebPImagePlugin\n", + "[2025-01-16 10:20:53,558] [DEBUG] (PIL.Image) - Importing WmfImagePlugin\n", + "[2025-01-16 10:20:53,558] [DEBUG] (PIL.Image) - Importing XbmImagePlugin\n", + "[2025-01-16 10:20:53,558] [DEBUG] (PIL.Image) - Importing XpmImagePlugin\n", + "[2025-01-16 10:20:53,559] [DEBUG] (PIL.Image) - Importing XVThumbImagePlugin\n", + "[\u001b[32minfo\u001b[m] [greedy_scheduler.cpp:372] Scheduler stopped: Some entities are waiting for execution, but there are no periodic or async entities to get out of the deadlock.\n", + "[\u001b[32minfo\u001b[m] [greedy_scheduler.cpp:401] Scheduler finished.\n", + "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:2213] Deactivating Graph...\n", + "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:2221] Graph execution finished.\n", + "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:292] Destroying context\n" ] } ], @@ -1146,22 +1166,30 @@ }, { "cell_type": "code", - "execution_count": 47, + "execution_count": 20, "metadata": {}, "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/tmp/ipykernel_2020944/3197869135.py:3: FutureWarning: `imshow` is deprecated since version 0.25 and will be removed in version 0.27. Please use `matplotlib`, `napari`, etc. to visualize images.\n", + " io.imshow(output_image)\n" + ] + }, { "data": { "text/plain": [ - "" + "" ] }, - "execution_count": 47, + "execution_count": 20, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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", + "image/png": "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", "text/plain": [ "
" ] @@ -1184,6 +1212,13 @@ "## Packaging app" ] }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, { "attachments": {}, "cell_type": "markdown", @@ -1196,7 +1231,7 @@ }, { "cell_type": "code", - "execution_count": 48, + "execution_count": 21, "metadata": {}, "outputs": [ { @@ -1226,7 +1261,7 @@ }, { "cell_type": "code", - "execution_count": 49, + "execution_count": 22, "metadata": {}, "outputs": [ { @@ -1240,7 +1275,8 @@ "source": [ "%%writefile simple_imaging_app/requirements.txt\n", "scikit-image\n", - "setuptools>=59.5.0 # for pkg_resources\n" + "setuptools>=59.5.0 # for pkg_resources\n", + "holoscan==2.6.0 # avoid v2.7 and v2.8 for a known issue\n" ] }, { @@ -1252,21 +1288,21 @@ }, { "cell_type": "code", - "execution_count": 50, + "execution_count": 23, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "[2024-04-23 15:26:37,078] [INFO] (common) - Downloading CLI manifest file...\n", - "[2024-04-23 15:26:37,629] [DEBUG] (common) - Validating CLI manifest file...\n", - "[2024-04-23 15:26:37,631] [INFO] (packager.parameters) - Application: /home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/simple_imaging_app\n", - "[2024-04-23 15:26:37,632] [INFO] (packager.parameters) - Detected application type: Python Module\n", - "[2024-04-23 15:26:37,632] [INFO] (packager) - Reading application configuration from /home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/simple_imaging_app/app.yaml...\n", - "[2024-04-23 15:26:37,636] [INFO] (packager) - Generating app.json...\n", - "[2024-04-23 15:26:37,636] [INFO] (packager) - Generating pkg.json...\n", - "[2024-04-23 15:26:37,649] [DEBUG] (common) - \n", + "[2025-01-16 10:20:55,653] [INFO] (common) - Downloading CLI manifest file...\n", + "[2025-01-16 10:20:56,166] [DEBUG] (common) - Validating CLI manifest file...\n", + "[2025-01-16 10:20:56,167] [INFO] (packager.parameters) - Application: /home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/simple_imaging_app\n", + "[2025-01-16 10:20:56,167] [INFO] (packager.parameters) - Detected application type: Python Module\n", + "[2025-01-16 10:20:56,167] [INFO] (packager) - Reading application configuration from /home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/simple_imaging_app/app.yaml...\n", + "[2025-01-16 10:20:56,172] [INFO] (packager) - Generating app.json...\n", + "[2025-01-16 10:20:56,173] [INFO] (packager) - Generating pkg.json...\n", + "[2025-01-16 10:20:56,176] [DEBUG] (common) - \n", "=============== Begin app.json ===============\n", "{\n", " \"apiVersion\": \"1.0.0\",\n", @@ -1294,14 +1330,14 @@ " },\n", " \"readiness\": null,\n", " \"sdk\": \"monai-deploy\",\n", - " \"sdkVersion\": \"0.5.1\",\n", + " \"sdkVersion\": \"2.0.0\",\n", " \"timeout\": 0,\n", " \"version\": 1.0,\n", " \"workingDirectory\": \"/var/holoscan\"\n", "}\n", "================ End app.json ================\n", " \n", - "[2024-04-23 15:26:37,650] [DEBUG] (common) - \n", + "[2025-01-16 10:20:56,177] [DEBUG] (common) - \n", "=============== Begin pkg.json ===============\n", "{\n", " \"apiVersion\": \"1.0.0\",\n", @@ -1319,15 +1355,114 @@ "}\n", "================ End pkg.json ================\n", " \n", - "[2024-04-23 15:26:37,673] [DEBUG] (packager.builder) - \n", + "[2025-01-16 10:20:56,185] [DEBUG] (packager.builder) - \n", + "========== Begin Build Parameters ==========\n", + "{'additional_lib_paths': '',\n", + " 'app_config_file_path': PosixPath('/home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/simple_imaging_app/app.yaml'),\n", + " 'app_dir': PosixPath('/opt/holoscan/app'),\n", + " 'app_json': '/etc/holoscan/app.json',\n", + " 'application': PosixPath('/home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/simple_imaging_app'),\n", + " 'application_directory': PosixPath('/home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/simple_imaging_app'),\n", + " 'application_type': 'PythonModule',\n", + " 'build_cache': PosixPath('/home/mqin/.holoscan_build_cache'),\n", + " 'cmake_args': '',\n", + " 'command': '[\"python3\", \"/opt/holoscan/app\"]',\n", + " 'command_filename': 'simple_imaging_app',\n", + " 'config_file_path': PosixPath('/var/holoscan/app.yaml'),\n", + " 'docs_dir': PosixPath('/opt/holoscan/docs'),\n", + " 'full_input_path': PosixPath('/var/holoscan/input'),\n", + " 'full_output_path': PosixPath('/var/holoscan/output'),\n", + " 'gid': 1000,\n", + " 'holoscan_sdk_version': '2.8.0',\n", + " 'includes': [],\n", + " 'input_dir': 'input/',\n", + " 'lib_dir': PosixPath('/opt/holoscan/lib'),\n", + " 'logs_dir': PosixPath('/var/holoscan/logs'),\n", + " 'models_dir': PosixPath('/opt/holoscan/models'),\n", + " 'monai_deploy_app_sdk_version': '2.0.0',\n", + " 'no_cache': False,\n", + " 'output_dir': 'output/',\n", + " 'pip_packages': None,\n", + " 'pkg_json': '/etc/holoscan/pkg.json',\n", + " 'requirements_file_path': PosixPath('/home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/simple_imaging_app/requirements.txt'),\n", + " 'sdk': ,\n", + " 'sdk_type': 'monai-deploy',\n", + " 'tarball_output': None,\n", + " 'timeout': 0,\n", + " 'title': 'MONAI Deploy App Package - Simple Imaging App',\n", + " 'uid': 1000,\n", + " 'username': 'holoscan',\n", + " 'version': 1.0,\n", + " 'working_dir': PosixPath('/var/holoscan')}\n", + "=========== End Build Parameters ===========\n", + "\n", + "[2025-01-16 10:20:56,185] [DEBUG] (packager.builder) - \n", + "========== Begin Platform Parameters ==========\n", + "{'base_image': 'nvcr.io/nvidia/cuda:12.6.0-runtime-ubuntu22.04',\n", + " 'build_image': None,\n", + " 'cuda_deb_arch': 'x86_64',\n", + " 'custom_base_image': False,\n", + " 'custom_holoscan_sdk': False,\n", + " 'custom_monai_deploy_sdk': False,\n", + " 'gpu_type': 'dgpu',\n", + " 'holoscan_deb_arch': 'amd64',\n", + " 'holoscan_sdk_file': '2.8.0',\n", + " 'holoscan_sdk_filename': '2.8.0',\n", + " 'monai_deploy_sdk_file': None,\n", + " 'monai_deploy_sdk_filename': None,\n", + " 'tag': 'simple_imaging_app:1.0',\n", + " 'target_arch': 'x86_64'}\n", + "=========== End Platform Parameters ===========\n", + "\n", + "[2025-01-16 10:20:56,213] [DEBUG] (packager.builder) - \n", "========== Begin Dockerfile ==========\n", "\n", + "ARG GPU_TYPE=dgpu\n", + "\n", + "\n", + "\n", + "\n", + "FROM nvcr.io/nvidia/cuda:12.6.0-runtime-ubuntu22.04 AS base\n", + "\n", + "RUN apt-get update \\\n", + " && apt-get install -y --no-install-recommends --no-install-suggests \\\n", + " curl \\\n", + " jq \\\n", + " && rm -rf /var/lib/apt/lists/*\n", + "\n", "\n", - "FROM nvcr.io/nvidia/clara-holoscan/holoscan:v2.0.0-dgpu\n", "\n", + "\n", + "# FROM base AS mofed-installer\n", + "# ARG MOFED_VERSION=23.10-2.1.3.1\n", + "\n", + "# # In a container, we only need to install the user space libraries, though the drivers are still\n", + "# # needed on the host.\n", + "# # Note: MOFED's installation is not easily portable, so we can't copy the output of this stage\n", + "# # to our final stage, but must inherit from it. For that reason, we keep track of the build/install\n", + "# # only dependencies in the `MOFED_DEPS` variable (parsing the output of `--check-deps-only`) to\n", + "# # remove them in that same layer, to ensure they are not propagated in the final image.\n", + "# WORKDIR /opt/nvidia/mofed\n", + "# ARG MOFED_INSTALL_FLAGS=\"--dpdk --with-mft --user-space-only --force --without-fw-update\"\n", + "# RUN UBUNTU_VERSION=$(cat /etc/lsb-release | grep DISTRIB_RELEASE | cut -d= -f2) \\\n", + "# && OFED_PACKAGE=\"MLNX_OFED_LINUX-${MOFED_VERSION}-ubuntu${UBUNTU_VERSION}-$(uname -m)\" \\\n", + "# && curl -S -# -o ${OFED_PACKAGE}.tgz -L \\\n", + "# https://www.mellanox.com/downloads/ofed/MLNX_OFED-${MOFED_VERSION}/${OFED_PACKAGE}.tgz \\\n", + "# && tar xf ${OFED_PACKAGE}.tgz \\\n", + "# && MOFED_INSTALLER=$(find . -name mlnxofedinstall -type f -executable -print) \\\n", + "# && MOFED_DEPS=$(${MOFED_INSTALLER} ${MOFED_INSTALL_FLAGS} --check-deps-only 2>/dev/null | tail -n1 | cut -d' ' -f3-) \\\n", + "# && apt-get update \\\n", + "# && apt-get install --no-install-recommends -y ${MOFED_DEPS} \\\n", + "# && ${MOFED_INSTALLER} ${MOFED_INSTALL_FLAGS} \\\n", + "# && rm -r * \\\n", + "# && apt-get remove -y ${MOFED_DEPS} && apt-get autoremove -y \\\n", + "# && rm -rf /var/lib/apt/lists/*\n", + "\n", + "FROM base AS release\n", "ENV DEBIAN_FRONTEND=noninteractive\n", "ENV TERM=xterm-256color\n", "\n", + "ARG GPU_TYPE\n", "ARG UNAME\n", "ARG UID\n", "ARG GID\n", @@ -1339,15 +1474,14 @@ " && mkdir -p /var/holoscan/input \\\n", " && mkdir -p /var/holoscan/output\n", "\n", - "LABEL base=\"nvcr.io/nvidia/clara-holoscan/holoscan:v2.0.0-dgpu\"\n", + "LABEL base=\"nvcr.io/nvidia/cuda:12.6.0-runtime-ubuntu22.04\"\n", "LABEL tag=\"simple_imaging_app:1.0\"\n", "LABEL org.opencontainers.image.title=\"MONAI Deploy App Package - Simple Imaging App\"\n", "LABEL org.opencontainers.image.version=\"1.0\"\n", - "LABEL org.nvidia.holoscan=\"2.0.0\"\n", - "LABEL org.monai.deploy.app-sdk=\"0.5.1\"\n", + "LABEL org.nvidia.holoscan=\"2.8.0\"\n", "\n", + "LABEL org.monai.deploy.app-sdk=\"2.0.0\"\n", "\n", - "ENV HOLOSCAN_ENABLE_HEALTH_CHECK=true\n", "ENV HOLOSCAN_INPUT_PATH=/var/holoscan/input\n", "ENV HOLOSCAN_OUTPUT_PATH=/var/holoscan/output\n", "ENV HOLOSCAN_WORKDIR=/var/holoscan\n", @@ -1359,21 +1493,40 @@ "ENV HOLOSCAN_APP_MANIFEST_PATH=/etc/holoscan/app.json\n", "ENV HOLOSCAN_PKG_MANIFEST_PATH=/etc/holoscan/pkg.json\n", "ENV HOLOSCAN_LOGS_PATH=/var/holoscan/logs\n", - "ENV PATH=/root/.local/bin:/opt/nvidia/holoscan:$PATH\n", - "ENV LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/libtorch/1.13.1/lib/:/opt/nvidia/holoscan/lib\n", + "ENV HOLOSCAN_VERSION=2.8.0\n", "\n", - "RUN apt-get update \\\n", - " && apt-get install -y curl jq \\\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "# If torch is installed, we can skip installing Python\n", + "ENV PYTHON_VERSION=3.10.6-1~22.04\n", + "ENV PYTHON_PIP_VERSION=22.0.2+dfsg-*\n", + "\n", + "RUN apt update \\\n", + " && apt-get install -y --no-install-recommends --no-install-suggests \\\n", + " python3-minimal=${PYTHON_VERSION} \\\n", + " libpython3-stdlib=${PYTHON_VERSION} \\\n", + " python3=${PYTHON_VERSION} \\\n", + " python3-venv=${PYTHON_VERSION} \\\n", + " python3-pip=${PYTHON_PIP_VERSION} \\\n", " && rm -rf /var/lib/apt/lists/*\n", "\n", - "ENV PYTHONPATH=\"/opt/holoscan/app:$PYTHONPATH\"\n", + "\n", + "\n", + "\n", + "\n", "\n", "\n", "RUN groupadd -f -g $GID $UNAME\n", "RUN useradd -rm -d /home/$UNAME -s /bin/bash -g $GID -G sudo -u $UID $UNAME\n", - "RUN chown -R holoscan /var/holoscan \n", - "RUN chown -R holoscan /var/holoscan/input \n", - "RUN chown -R holoscan /var/holoscan/output \n", + "RUN chown -R holoscan /var/holoscan && \\\n", + " chown -R holoscan /var/holoscan/input && \\\n", + " chown -R holoscan /var/holoscan/output\n", "\n", "# Set the working directory\n", "WORKDIR /var/holoscan\n", @@ -1382,24 +1535,25 @@ "COPY ./tools /var/holoscan/tools\n", "RUN chmod +x /var/holoscan/tools\n", "\n", - "\n", - "# Copy gRPC health probe\n", + "# Set the working directory\n", + "WORKDIR /var/holoscan\n", "\n", "USER $UNAME\n", "\n", - "ENV PATH=/root/.local/bin:/home/holoscan/.local/bin:/opt/nvidia/holoscan:$PATH\n", + "ENV PATH=/home/${UNAME}/.local/bin:/opt/nvidia/holoscan/bin:$PATH\n", + "ENV LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/${UNAME}/.local/lib/python3.10/site-packages/holoscan/lib\n", "\n", "COPY ./pip/requirements.txt /tmp/requirements.txt\n", "\n", "RUN pip install --upgrade pip\n", "RUN pip install --no-cache-dir --user -r /tmp/requirements.txt\n", "\n", - " \n", - "# MONAI Deploy\n", "\n", - "# Copy user-specified MONAI Deploy SDK file\n", - "COPY ./monai_deploy_app_sdk-0.5.1+20.gb869749.dirty-py3-none-any.whl /tmp/monai_deploy_app_sdk-0.5.1+20.gb869749.dirty-py3-none-any.whl\n", - "RUN pip install /tmp/monai_deploy_app_sdk-0.5.1+20.gb869749.dirty-py3-none-any.whl\n", + "# Install MONAI Deploy App SDK\n", + "\n", + "# Install MONAI Deploy from PyPI org\n", + "RUN pip install monai-deploy-app-sdk==2.0.0\n", + "\n", "\n", "\n", "\n", @@ -1409,273 +1563,357 @@ "\n", "COPY ./app /opt/holoscan/app\n", "\n", + "\n", "ENTRYPOINT [\"/var/holoscan/tools\"]\n", "=========== End Dockerfile ===========\n", "\n", - "[2024-04-23 15:26:37,673] [INFO] (packager.builder) - \n", + "[2025-01-16 10:20:56,214] [INFO] (packager.builder) - \n", "===============================================================================\n", "Building image for: x64-workstation\n", " Architecture: linux/amd64\n", - " Base Image: nvcr.io/nvidia/clara-holoscan/holoscan:v2.0.0-dgpu\n", + " Base Image: nvcr.io/nvidia/cuda:12.6.0-runtime-ubuntu22.04\n", " Build Image: N/A\n", " Cache: Enabled\n", " Configuration: dgpu\n", - " Holoscan SDK Package: pypi.org\n", - " MONAI Deploy App SDK Package: /home/mqin/src/monai-deploy-app-sdk/dist/monai_deploy_app_sdk-0.5.1+20.gb869749.dirty-py3-none-any.whl\n", + " Holoscan SDK Package: 2.8.0\n", + " MONAI Deploy App SDK Package: N/A\n", " gRPC Health Probe: N/A\n", - " SDK Version: 2.0.0\n", + " SDK Version: 2.8.0\n", " SDK: monai-deploy\n", " Tag: simple_imaging_app-x64-workstation-dgpu-linux-amd64:1.0\n", + " Included features/dependencies: N/A\n", " \n", - "[2024-04-23 15:26:38,231] [INFO] (common) - Using existing Docker BuildKit builder `holoscan_app_builder`\n", - "[2024-04-23 15:26:38,231] [DEBUG] (packager.builder) - Building Holoscan Application Package: tag=simple_imaging_app-x64-workstation-dgpu-linux-amd64:1.0\n", + "[2025-01-16 10:20:57,613] [INFO] (common) - Using existing Docker BuildKit builder `holoscan_app_builder`\n", + "[2025-01-16 10:20:57,614] [DEBUG] (packager.builder) - Building Holoscan Application Package: tag=simple_imaging_app-x64-workstation-dgpu-linux-amd64:1.0\n", "#0 building with \"holoscan_app_builder\" instance using docker-container driver\n", "\n", "#1 [internal] load build definition from Dockerfile\n", - "#1 transferring dockerfile: 2.63kB done\n", - "#1 DONE 0.0s\n", + "#1 transferring dockerfile: 30B\n", + "#1 transferring dockerfile: 4.53kB done\n", + "#1 DONE 0.1s\n", "\n", - "#2 [internal] load metadata for nvcr.io/nvidia/clara-holoscan/holoscan:v2.0.0-dgpu\n", - "#2 DONE 0.5s\n", + "#2 [auth] nvidia/cuda:pull token for nvcr.io\n", + "#2 DONE 0.0s\n", "\n", - "#3 [internal] load .dockerignore\n", - "#3 transferring context: 1.79kB done\n", - "#3 DONE 0.0s\n", + "#3 [internal] load metadata for nvcr.io/nvidia/cuda:12.6.0-runtime-ubuntu22.04\n", + "#3 DONE 0.5s\n", "\n", - "#4 [internal] load build context\n", - "#4 DONE 0.0s\n", + "#4 [internal] load .dockerignore\n", + "#4 transferring context: 1.79kB done\n", + "#4 DONE 0.1s\n", "\n", - "#5 importing cache manifest from local:10678196058931023490\n", + "#5 importing cache manifest from local:4071450130461523494\n", "#5 inferred cache manifest type: application/vnd.oci.image.index.v1+json done\n", "#5 DONE 0.0s\n", "\n", - "#6 [ 1/20] FROM nvcr.io/nvidia/clara-holoscan/holoscan:v2.0.0-dgpu@sha256:20adbccd2c7b12dfb1798f6953f071631c3b85cd337858a7506f8e420add6d4a\n", - "#6 resolve nvcr.io/nvidia/clara-holoscan/holoscan:v2.0.0-dgpu@sha256:20adbccd2c7b12dfb1798f6953f071631c3b85cd337858a7506f8e420add6d4a 0.0s done\n", + "#6 [internal] load build context\n", "#6 DONE 0.0s\n", "\n", - "#7 importing cache manifest from nvcr.io/nvidia/clara-holoscan/holoscan:v2.0.0-dgpu\n", - "#7 inferred cache manifest type: application/vnd.docker.distribution.manifest.list.v2+json done\n", - "#7 DONE 0.9s\n", + "#7 [base 1/2] FROM nvcr.io/nvidia/cuda:12.6.0-runtime-ubuntu22.04@sha256:22fc009e5cea0b8b91d94c99fdd419d2366810b5ea835e47b8343bc15800c186\n", + "#7 resolve nvcr.io/nvidia/cuda:12.6.0-runtime-ubuntu22.04@sha256:22fc009e5cea0b8b91d94c99fdd419d2366810b5ea835e47b8343bc15800c186 0.0s done\n", + "#7 DONE 0.1s\n", "\n", - "#4 [internal] load build context\n", - "#4 transferring context: 157.77kB 0.0s done\n", - "#4 DONE 0.0s\n", + "#8 importing cache manifest from nvcr.io/nvidia/cuda:12.6.0-runtime-ubuntu22.04\n", + "#8 inferred cache manifest type: application/vnd.docker.distribution.manifest.list.v2+json done\n", + "#8 DONE 0.9s\n", "\n", - "#8 [ 5/20] RUN useradd -rm -d /home/holoscan -s /bin/bash -g 1000 -G sudo -u 1000 holoscan\n", - "#8 CACHED\n", + "#6 [internal] load build context\n", + "#6 transferring context: 24.94kB 0.0s done\n", + "#6 DONE 0.1s\n", "\n", - "#9 [ 3/20] RUN apt-get update && apt-get install -y curl jq && rm -rf /var/lib/apt/lists/*\n", + "#9 [release 6/17] WORKDIR /var/holoscan\n", "#9 CACHED\n", "\n", - "#10 [ 6/20] RUN chown -R holoscan /var/holoscan\n", + "#10 [base 2/2] RUN apt-get update && apt-get install -y --no-install-recommends --no-install-suggests curl jq && rm -rf /var/lib/apt/lists/*\n", "#10 CACHED\n", "\n", - "#11 [13/20] RUN pip install --upgrade pip\n", + "#11 [release 3/17] RUN groupadd -f -g 1000 holoscan\n", "#11 CACHED\n", "\n", - "#12 [ 8/20] RUN chown -R holoscan /var/holoscan/output\n", + "#12 [release 2/17] RUN apt update && apt-get install -y --no-install-recommends --no-install-suggests python3-minimal=3.10.6-1~22.04 libpython3-stdlib=3.10.6-1~22.04 python3=3.10.6-1~22.04 python3-venv=3.10.6-1~22.04 python3-pip=22.0.2+dfsg-* && rm -rf /var/lib/apt/lists/*\n", "#12 CACHED\n", "\n", - "#13 [ 7/20] RUN chown -R holoscan /var/holoscan/input\n", + "#13 [release 4/17] RUN useradd -rm -d /home/holoscan -s /bin/bash -g 1000 -G sudo -u 1000 holoscan\n", "#13 CACHED\n", "\n", - "#14 [ 2/20] RUN mkdir -p /etc/holoscan/ && mkdir -p /opt/holoscan/ && mkdir -p /var/holoscan && mkdir -p /opt/holoscan/app && mkdir -p /var/holoscan/input && mkdir -p /var/holoscan/output\n", + "#14 [release 5/17] RUN chown -R holoscan /var/holoscan && chown -R holoscan /var/holoscan/input && chown -R holoscan /var/holoscan/output\n", "#14 CACHED\n", "\n", - "#15 [12/20] COPY ./pip/requirements.txt /tmp/requirements.txt\n", + "#15 [release 8/17] RUN chmod +x /var/holoscan/tools\n", "#15 CACHED\n", "\n", - "#16 [11/20] RUN chmod +x /var/holoscan/tools\n", + "#16 [release 1/17] RUN mkdir -p /etc/holoscan/ && mkdir -p /opt/holoscan/ && mkdir -p /var/holoscan && mkdir -p /opt/holoscan/app && mkdir -p /var/holoscan/input && mkdir -p /var/holoscan/output\n", "#16 CACHED\n", "\n", - "#17 [ 9/20] WORKDIR /var/holoscan\n", + "#17 [release 7/17] COPY ./tools /var/holoscan/tools\n", "#17 CACHED\n", "\n", - "#18 [ 4/20] RUN groupadd -f -g 1000 holoscan\n", + "#18 [release 9/17] WORKDIR /var/holoscan\n", "#18 CACHED\n", "\n", - "#19 [10/20] COPY ./tools /var/holoscan/tools\n", - "#19 CACHED\n", - "\n", - "#20 [14/20] RUN pip install --no-cache-dir --user -r /tmp/requirements.txt\n", - "#20 CACHED\n", - "\n", - "#21 [15/20] COPY ./monai_deploy_app_sdk-0.5.1+20.gb869749.dirty-py3-none-any.whl /tmp/monai_deploy_app_sdk-0.5.1+20.gb869749.dirty-py3-none-any.whl\n", - "#21 DONE 0.1s\n", - "\n", - "#22 [16/20] RUN pip install /tmp/monai_deploy_app_sdk-0.5.1+20.gb869749.dirty-py3-none-any.whl\n", - "#22 0.725 Defaulting to user installation because normal site-packages is not writeable\n", - "#22 0.802 Processing /tmp/monai_deploy_app_sdk-0.5.1+20.gb869749.dirty-py3-none-any.whl\n", - "#22 0.815 Requirement already satisfied: numpy>=1.21.6 in /usr/local/lib/python3.10/dist-packages (from monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (1.23.5)\n", - "#22 1.004 Collecting holoscan~=2.0 (from monai-deploy-app-sdk==0.5.1+20.gb869749.dirty)\n", - "#22 1.074 Downloading holoscan-2.0.0-cp310-cp310-manylinux_2_35_x86_64.whl.metadata (6.7 kB)\n", - "#22 1.118 Collecting colorama>=0.4.1 (from monai-deploy-app-sdk==0.5.1+20.gb869749.dirty)\n", - "#22 1.122 Downloading colorama-0.4.6-py2.py3-none-any.whl.metadata (17 kB)\n", - "#22 1.172 Collecting typeguard>=3.0.0 (from monai-deploy-app-sdk==0.5.1+20.gb869749.dirty)\n", - "#22 1.176 Downloading typeguard-4.2.1-py3-none-any.whl.metadata (3.7 kB)\n", - "#22 1.192 Requirement already satisfied: pip>=20.3 in /home/holoscan/.local/lib/python3.10/site-packages (from holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (24.0)\n", - "#22 1.193 Requirement already satisfied: cupy-cuda12x==12.2 in /usr/local/lib/python3.10/dist-packages (from holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (12.2.0)\n", - "#22 1.193 Requirement already satisfied: cloudpickle==2.2.1 in /usr/local/lib/python3.10/dist-packages (from holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (2.2.1)\n", - "#22 1.194 Requirement already satisfied: python-on-whales==0.60.1 in /usr/local/lib/python3.10/dist-packages (from holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (0.60.1)\n", - "#22 1.195 Requirement already satisfied: Jinja2==3.1.3 in /usr/local/lib/python3.10/dist-packages (from holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (3.1.3)\n", - "#22 1.195 Requirement already satisfied: packaging==23.1 in /usr/local/lib/python3.10/dist-packages (from holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (23.1)\n", - "#22 1.196 Requirement already satisfied: pyyaml==6.0 in /usr/local/lib/python3.10/dist-packages (from holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (6.0)\n", - "#22 1.197 Requirement already satisfied: requests==2.31.0 in /usr/local/lib/python3.10/dist-packages (from holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (2.31.0)\n", - "#22 1.197 Requirement already satisfied: psutil==5.9.6 in /usr/local/lib/python3.10/dist-packages (from holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (5.9.6)\n", - "#22 1.296 Collecting wheel-axle-runtime<1.0 (from holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty)\n", - "#22 1.302 Downloading wheel_axle_runtime-0.0.5-py3-none-any.whl.metadata (7.7 kB)\n", - "#22 1.326 Requirement already satisfied: fastrlock>=0.5 in /usr/local/lib/python3.10/dist-packages (from cupy-cuda12x==12.2->holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (0.8.2)\n", - "#22 1.329 Requirement already satisfied: MarkupSafe>=2.0 in /usr/local/lib/python3.10/dist-packages (from Jinja2==3.1.3->holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (2.1.3)\n", - "#22 1.342 Requirement already satisfied: pydantic<2,>=1.5 in /usr/local/lib/python3.10/dist-packages (from python-on-whales==0.60.1->holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (1.10.15)\n", - "#22 1.342 Requirement already satisfied: tqdm in /usr/local/lib/python3.10/dist-packages (from python-on-whales==0.60.1->holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (4.66.2)\n", - "#22 1.343 Requirement already satisfied: typer>=0.4.1 in /usr/local/lib/python3.10/dist-packages (from python-on-whales==0.60.1->holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (0.12.3)\n", - "#22 1.343 Requirement already satisfied: typing-extensions in /usr/local/lib/python3.10/dist-packages (from python-on-whales==0.60.1->holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (4.7.1)\n", - "#22 1.352 Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.10/dist-packages (from requests==2.31.0->holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (3.3.2)\n", - "#22 1.352 Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests==2.31.0->holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (3.7)\n", - "#22 1.353 Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests==2.31.0->holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (2.2.1)\n", - "#22 1.353 Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from requests==2.31.0->holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (2024.2.2)\n", - "#22 1.389 Collecting typing-extensions (from python-on-whales==0.60.1->holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty)\n", - "#22 1.392 Downloading typing_extensions-4.11.0-py3-none-any.whl.metadata (3.0 kB)\n", - "#22 1.451 Collecting filelock (from wheel-axle-runtime<1.0->holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty)\n", - "#22 1.455 Downloading filelock-3.13.4-py3-none-any.whl.metadata (2.8 kB)\n", - "#22 1.486 Requirement already satisfied: click>=8.0.0 in /usr/local/lib/python3.10/dist-packages (from typer>=0.4.1->python-on-whales==0.60.1->holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (8.1.7)\n", - "#22 1.490 Requirement already satisfied: shellingham>=1.3.0 in /usr/local/lib/python3.10/dist-packages (from typer>=0.4.1->python-on-whales==0.60.1->holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (1.5.4)\n", - "#22 1.491 Requirement already satisfied: rich>=10.11.0 in /usr/local/lib/python3.10/dist-packages (from typer>=0.4.1->python-on-whales==0.60.1->holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (13.7.1)\n", - "#22 1.533 Requirement already satisfied: markdown-it-py>=2.2.0 in /usr/local/lib/python3.10/dist-packages (from rich>=10.11.0->typer>=0.4.1->python-on-whales==0.60.1->holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (3.0.0)\n", - "#22 1.533 Requirement already satisfied: pygments<3.0.0,>=2.13.0 in /usr/local/lib/python3.10/dist-packages (from rich>=10.11.0->typer>=0.4.1->python-on-whales==0.60.1->holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (2.17.2)\n", - "#22 1.556 Requirement already satisfied: mdurl~=0.1 in /usr/local/lib/python3.10/dist-packages (from markdown-it-py>=2.2.0->rich>=10.11.0->typer>=0.4.1->python-on-whales==0.60.1->holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (0.1.2)\n", - "#22 1.570 Downloading colorama-0.4.6-py2.py3-none-any.whl (25 kB)\n", - "#22 1.585 Downloading holoscan-2.0.0-cp310-cp310-manylinux_2_35_x86_64.whl (33.2 MB)\n", - "#22 3.441 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 33.2/33.2 MB 25.5 MB/s eta 0:00:00\n", - "#22 3.447 Downloading typeguard-4.2.1-py3-none-any.whl (34 kB)\n", - "#22 3.465 Downloading typing_extensions-4.11.0-py3-none-any.whl (34 kB)\n", - "#22 3.484 Downloading wheel_axle_runtime-0.0.5-py3-none-any.whl (12 kB)\n", - "#22 3.499 Downloading filelock-3.13.4-py3-none-any.whl (11 kB)\n", - "#22 3.799 Installing collected packages: typing-extensions, filelock, colorama, wheel-axle-runtime, typeguard, holoscan, monai-deploy-app-sdk\n", - "#22 4.520 Successfully installed colorama-0.4.6 filelock-3.13.4 holoscan-2.0.0 monai-deploy-app-sdk-0.5.1+20.gb869749.dirty typeguard-4.2.1 typing-extensions-4.11.0 wheel-axle-runtime-0.0.5\n", - "#22 DONE 5.2s\n", - "\n", - "#23 [17/20] COPY ./map/app.json /etc/holoscan/app.json\n", + "#19 [release 10/17] COPY ./pip/requirements.txt /tmp/requirements.txt\n", + "#19 DONE 0.3s\n", + "\n", + "#20 [release 11/17] RUN pip install --upgrade pip\n", + "#20 0.894 Defaulting to user installation because normal site-packages is not writeable\n", + "#20 0.942 Requirement already satisfied: pip in /usr/lib/python3/dist-packages (22.0.2)\n", + "#20 1.117 Collecting pip\n", + "#20 1.177 Downloading pip-24.3.1-py3-none-any.whl (1.8 MB)\n", + "#20 1.242 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.8/1.8 MB 29.6 MB/s eta 0:00:00\n", + "#20 1.275 Installing collected packages: pip\n", + "#20 2.016 Successfully installed pip-24.3.1\n", + "#20 DONE 2.3s\n", + "\n", + "#21 [release 12/17] RUN pip install --no-cache-dir --user -r /tmp/requirements.txt\n", + "#21 0.688 Collecting scikit-image (from -r /tmp/requirements.txt (line 1))\n", + "#21 0.701 Downloading scikit_image-0.25.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (14 kB)\n", + "#21 0.717 Requirement already satisfied: setuptools>=59.5.0 in /usr/lib/python3/dist-packages (from -r /tmp/requirements.txt (line 2)) (59.6.0)\n", + "#21 0.806 Collecting holoscan==2.6.0 (from -r /tmp/requirements.txt (line 3))\n", + "#21 0.811 Downloading holoscan-2.6.0-cp310-cp310-manylinux_2_35_x86_64.whl.metadata (7.2 kB)\n", + "#21 0.816 Requirement already satisfied: pip>22.0.2 in /home/holoscan/.local/lib/python3.10/site-packages (from holoscan==2.6.0->-r /tmp/requirements.txt (line 3)) (24.3.1)\n", + "#21 0.830 Collecting cupy-cuda12x==12.2 (from holoscan==2.6.0->-r /tmp/requirements.txt (line 3))\n", + "#21 0.836 Downloading cupy_cuda12x-12.2.0-cp310-cp310-manylinux2014_x86_64.whl.metadata (2.6 kB)\n", + "#21 0.854 Collecting cloudpickle==2.2.1 (from holoscan==2.6.0->-r /tmp/requirements.txt (line 3))\n", + "#21 0.860 Downloading cloudpickle-2.2.1-py3-none-any.whl.metadata (6.9 kB)\n", + "#21 0.983 Collecting python-on-whales==0.60.1 (from holoscan==2.6.0->-r /tmp/requirements.txt (line 3))\n", + "#21 0.988 Downloading python_on_whales-0.60.1-py3-none-any.whl.metadata (16 kB)\n", + "#21 1.005 Collecting Jinja2==3.1.3 (from holoscan==2.6.0->-r /tmp/requirements.txt (line 3))\n", + "#21 1.010 Downloading Jinja2-3.1.3-py3-none-any.whl.metadata (3.3 kB)\n", + "#21 1.035 Collecting packaging==23.1 (from holoscan==2.6.0->-r /tmp/requirements.txt (line 3))\n", + "#21 1.039 Downloading packaging-23.1-py3-none-any.whl.metadata (3.1 kB)\n", + "#21 1.079 Collecting pyyaml==6.0 (from holoscan==2.6.0->-r /tmp/requirements.txt (line 3))\n", + "#21 1.083 Downloading PyYAML-6.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl.metadata (2.0 kB)\n", + "#21 1.117 Collecting requests==2.31.0 (from holoscan==2.6.0->-r /tmp/requirements.txt (line 3))\n", + "#21 1.121 Downloading requests-2.31.0-py3-none-any.whl.metadata (4.6 kB)\n", + "#21 1.209 Collecting psutil==6.0.0 (from holoscan==2.6.0->-r /tmp/requirements.txt (line 3))\n", + "#21 1.213 Downloading psutil-6.0.0-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (21 kB)\n", + "#21 1.300 Collecting wheel-axle-runtime<1.0 (from holoscan==2.6.0->-r /tmp/requirements.txt (line 3))\n", + "#21 1.308 Downloading wheel_axle_runtime-0.0.6-py3-none-any.whl.metadata (8.1 kB)\n", + "#21 1.511 Collecting numpy<1.27,>=1.20 (from cupy-cuda12x==12.2->holoscan==2.6.0->-r /tmp/requirements.txt (line 3))\n", + "#21 1.515 Downloading numpy-1.26.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (61 kB)\n", + "#21 1.573 Collecting fastrlock>=0.5 (from cupy-cuda12x==12.2->holoscan==2.6.0->-r /tmp/requirements.txt (line 3))\n", + "#21 1.579 Downloading fastrlock-0.8.3-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_28_x86_64.whl.metadata (7.7 kB)\n", + "#21 1.637 Collecting MarkupSafe>=2.0 (from Jinja2==3.1.3->holoscan==2.6.0->-r /tmp/requirements.txt (line 3))\n", + "#21 1.640 Downloading MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (4.0 kB)\n", + "#21 1.819 Collecting pydantic<2,>=1.5 (from python-on-whales==0.60.1->holoscan==2.6.0->-r /tmp/requirements.txt (line 3))\n", + "#21 1.823 Downloading pydantic-1.10.21-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (153 kB)\n", + "#21 1.888 Collecting tqdm (from python-on-whales==0.60.1->holoscan==2.6.0->-r /tmp/requirements.txt (line 3))\n", + "#21 1.892 Downloading tqdm-4.67.1-py3-none-any.whl.metadata (57 kB)\n", + "#21 1.927 Collecting typer>=0.4.1 (from python-on-whales==0.60.1->holoscan==2.6.0->-r /tmp/requirements.txt (line 3))\n", + "#21 1.933 Downloading typer-0.15.1-py3-none-any.whl.metadata (15 kB)\n", + "#21 1.960 Collecting typing-extensions (from python-on-whales==0.60.1->holoscan==2.6.0->-r /tmp/requirements.txt (line 3))\n", + "#21 1.969 Downloading typing_extensions-4.12.2-py3-none-any.whl.metadata (3.0 kB)\n", + "#21 2.064 Collecting charset-normalizer<4,>=2 (from requests==2.31.0->holoscan==2.6.0->-r /tmp/requirements.txt (line 3))\n", + "#21 2.068 Downloading charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (35 kB)\n", + "#21 2.088 Collecting idna<4,>=2.5 (from requests==2.31.0->holoscan==2.6.0->-r /tmp/requirements.txt (line 3))\n", + "#21 2.092 Downloading idna-3.10-py3-none-any.whl.metadata (10 kB)\n", + "#21 2.149 Collecting urllib3<3,>=1.21.1 (from requests==2.31.0->holoscan==2.6.0->-r /tmp/requirements.txt (line 3))\n", + "#21 2.154 Downloading urllib3-2.3.0-py3-none-any.whl.metadata (6.5 kB)\n", + "#21 2.174 Collecting certifi>=2017.4.17 (from requests==2.31.0->holoscan==2.6.0->-r /tmp/requirements.txt (line 3))\n", + "#21 2.178 Downloading certifi-2024.12.14-py3-none-any.whl.metadata (2.3 kB)\n", + "#21 2.312 Collecting scipy>=1.11.2 (from scikit-image->-r /tmp/requirements.txt (line 1))\n", + "#21 2.315 Downloading scipy-1.15.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (61 kB)\n", + "#21 2.348 Collecting networkx>=3.0 (from scikit-image->-r /tmp/requirements.txt (line 1))\n", + "#21 2.352 Downloading networkx-3.4.2-py3-none-any.whl.metadata (6.3 kB)\n", + "#21 2.639 Collecting pillow>=10.1 (from scikit-image->-r /tmp/requirements.txt (line 1))\n", + "#21 2.644 Downloading pillow-11.1.0-cp310-cp310-manylinux_2_28_x86_64.whl.metadata (9.1 kB)\n", + "#21 2.707 Collecting imageio!=2.35.0,>=2.33 (from scikit-image->-r /tmp/requirements.txt (line 1))\n", + "#21 2.712 Downloading imageio-2.36.1-py3-none-any.whl.metadata (5.2 kB)\n", + "#21 2.802 Collecting tifffile>=2022.8.12 (from scikit-image->-r /tmp/requirements.txt (line 1))\n", + "#21 2.807 Downloading tifffile-2025.1.10-py3-none-any.whl.metadata (31 kB)\n", + "#21 2.828 Collecting lazy-loader>=0.4 (from scikit-image->-r /tmp/requirements.txt (line 1))\n", + "#21 2.836 Downloading lazy_loader-0.4-py3-none-any.whl.metadata (7.6 kB)\n", + "#21 2.912 Collecting filelock (from wheel-axle-runtime<1.0->holoscan==2.6.0->-r /tmp/requirements.txt (line 3))\n", + "#21 2.917 Downloading filelock-3.16.1-py3-none-any.whl.metadata (2.9 kB)\n", + "#21 2.956 Collecting click>=8.0.0 (from typer>=0.4.1->python-on-whales==0.60.1->holoscan==2.6.0->-r /tmp/requirements.txt (line 3))\n", + "#21 2.960 Downloading click-8.1.8-py3-none-any.whl.metadata (2.3 kB)\n", + "#21 2.986 Collecting shellingham>=1.3.0 (from typer>=0.4.1->python-on-whales==0.60.1->holoscan==2.6.0->-r /tmp/requirements.txt (line 3))\n", + "#21 2.990 Downloading shellingham-1.5.4-py2.py3-none-any.whl.metadata (3.5 kB)\n", + "#21 3.081 Collecting rich>=10.11.0 (from typer>=0.4.1->python-on-whales==0.60.1->holoscan==2.6.0->-r /tmp/requirements.txt (line 3))\n", + "#21 3.088 Downloading rich-13.9.4-py3-none-any.whl.metadata (18 kB)\n", + "#21 3.139 Collecting markdown-it-py>=2.2.0 (from rich>=10.11.0->typer>=0.4.1->python-on-whales==0.60.1->holoscan==2.6.0->-r /tmp/requirements.txt (line 3))\n", + "#21 3.143 Downloading markdown_it_py-3.0.0-py3-none-any.whl.metadata (6.9 kB)\n", + "#21 3.175 Collecting pygments<3.0.0,>=2.13.0 (from rich>=10.11.0->typer>=0.4.1->python-on-whales==0.60.1->holoscan==2.6.0->-r /tmp/requirements.txt (line 3))\n", + "#21 3.179 Downloading pygments-2.19.1-py3-none-any.whl.metadata (2.5 kB)\n", + "#21 3.200 Collecting mdurl~=0.1 (from markdown-it-py>=2.2.0->rich>=10.11.0->typer>=0.4.1->python-on-whales==0.60.1->holoscan==2.6.0->-r /tmp/requirements.txt (line 3))\n", + "#21 3.205 Downloading mdurl-0.1.2-py3-none-any.whl.metadata (1.6 kB)\n", + "#21 3.219 Downloading holoscan-2.6.0-cp310-cp310-manylinux_2_35_x86_64.whl (40.8 MB)\n", + "#21 5.813 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 40.8/40.8 MB 15.7 MB/s eta 0:00:00\n", + "#21 5.821 Downloading cloudpickle-2.2.1-py3-none-any.whl (25 kB)\n", + "#21 5.828 Downloading cupy_cuda12x-12.2.0-cp310-cp310-manylinux2014_x86_64.whl (82.0 MB)\n", + "#21 6.919 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 82.0/82.0 MB 75.4 MB/s eta 0:00:00\n", + "#21 6.924 Downloading Jinja2-3.1.3-py3-none-any.whl (133 kB)\n", + "#21 6.928 Downloading packaging-23.1-py3-none-any.whl (48 kB)\n", + "#21 6.932 Downloading psutil-6.0.0-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (290 kB)\n", + "#21 6.942 Downloading python_on_whales-0.60.1-py3-none-any.whl (103 kB)\n", + "#21 6.948 Downloading PyYAML-6.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (682 kB)\n", + "#21 6.958 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 682.2/682.2 kB 135.1 MB/s eta 0:00:00\n", + "#21 6.964 Downloading requests-2.31.0-py3-none-any.whl (62 kB)\n", + "#21 6.970 Downloading scikit_image-0.25.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (14.8 MB)\n", + "#21 7.169 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 14.8/14.8 MB 74.4 MB/s eta 0:00:00\n", + "#21 7.175 Downloading imageio-2.36.1-py3-none-any.whl (315 kB)\n", + "#21 7.182 Downloading lazy_loader-0.4-py3-none-any.whl (12 kB)\n", + "#21 7.187 Downloading networkx-3.4.2-py3-none-any.whl (1.7 MB)\n", + "#21 7.204 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.7/1.7 MB 122.2 MB/s eta 0:00:00\n", + "#21 7.209 Downloading numpy-1.26.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (18.2 MB)\n", + "#21 7.367 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 18.2/18.2 MB 117.5 MB/s eta 0:00:00\n", + "#21 7.372 Downloading pillow-11.1.0-cp310-cp310-manylinux_2_28_x86_64.whl (4.5 MB)\n", + "#21 7.416 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4.5/4.5 MB 116.4 MB/s eta 0:00:00\n", + "#21 7.424 Downloading scipy-1.15.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (40.6 MB)\n", + "#21 7.833 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 40.6/40.6 MB 100.0 MB/s eta 0:00:00\n", + "#21 7.842 Downloading tifffile-2025.1.10-py3-none-any.whl (227 kB)\n", + "#21 7.854 Downloading wheel_axle_runtime-0.0.6-py3-none-any.whl (14 kB)\n", + "#21 7.862 Downloading certifi-2024.12.14-py3-none-any.whl (164 kB)\n", + "#21 7.870 Downloading charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (146 kB)\n", + "#21 7.879 Downloading fastrlock-0.8.3-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_28_x86_64.whl (53 kB)\n", + "#21 7.889 Downloading idna-3.10-py3-none-any.whl (70 kB)\n", + "#21 7.897 Downloading MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (20 kB)\n", + "#21 7.904 Downloading pydantic-1.10.21-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.3 MB)\n", + "#21 7.958 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.3/3.3 MB 79.8 MB/s eta 0:00:00\n", + "#21 7.963 Downloading typer-0.15.1-py3-none-any.whl (44 kB)\n", + "#21 7.966 Downloading typing_extensions-4.12.2-py3-none-any.whl (37 kB)\n", + "#21 7.972 Downloading urllib3-2.3.0-py3-none-any.whl (128 kB)\n", + "#21 7.977 Downloading filelock-3.16.1-py3-none-any.whl (16 kB)\n", + "#21 7.981 Downloading tqdm-4.67.1-py3-none-any.whl (78 kB)\n", + "#21 7.985 Downloading click-8.1.8-py3-none-any.whl (98 kB)\n", + "#21 7.990 Downloading rich-13.9.4-py3-none-any.whl (242 kB)\n", + "#21 7.995 Downloading shellingham-1.5.4-py2.py3-none-any.whl (9.8 kB)\n", + "#21 7.999 Downloading markdown_it_py-3.0.0-py3-none-any.whl (87 kB)\n", + "#21 8.004 Downloading pygments-2.19.1-py3-none-any.whl (1.2 MB)\n", + "#21 8.025 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.2/1.2 MB 71.2 MB/s eta 0:00:00\n", + "#21 8.032 Downloading mdurl-0.1.2-py3-none-any.whl (10.0 kB)\n", + "#21 8.743 Installing collected packages: fastrlock, urllib3, typing-extensions, tqdm, shellingham, pyyaml, pygments, psutil, pillow, packaging, numpy, networkx, mdurl, MarkupSafe, idna, filelock, cloudpickle, click, charset-normalizer, certifi, wheel-axle-runtime, tifffile, scipy, requests, pydantic, markdown-it-py, lazy-loader, Jinja2, imageio, cupy-cuda12x, scikit-image, rich, typer, python-on-whales, holoscan\n", + "#21 22.15 Successfully installed Jinja2-3.1.3 MarkupSafe-3.0.2 certifi-2024.12.14 charset-normalizer-3.4.1 click-8.1.8 cloudpickle-2.2.1 cupy-cuda12x-12.2.0 fastrlock-0.8.3 filelock-3.16.1 holoscan-2.6.0 idna-3.10 imageio-2.36.1 lazy-loader-0.4 markdown-it-py-3.0.0 mdurl-0.1.2 networkx-3.4.2 numpy-1.26.4 packaging-23.1 pillow-11.1.0 psutil-6.0.0 pydantic-1.10.21 pygments-2.19.1 python-on-whales-0.60.1 pyyaml-6.0 requests-2.31.0 rich-13.9.4 scikit-image-0.25.0 scipy-1.15.1 shellingham-1.5.4 tifffile-2025.1.10 tqdm-4.67.1 typer-0.15.1 typing-extensions-4.12.2 urllib3-2.3.0 wheel-axle-runtime-0.0.6\n", + "#21 DONE 24.2s\n", + "\n", + "#22 [release 13/17] RUN pip install monai-deploy-app-sdk==2.0.0\n", + "#22 1.117 Defaulting to user installation because normal site-packages is not writeable\n", + "#22 1.330 Collecting monai-deploy-app-sdk==2.0.0\n", + "#22 1.396 Downloading monai_deploy_app_sdk-2.0.0-py3-none-any.whl (132 kB)\n", + "#22 1.434 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 132.6/132.6 KB 3.6 MB/s eta 0:00:00\n", + "#22 1.490 Collecting colorama>=0.4.1\n", + "#22 1.495 Downloading colorama-0.4.6-py2.py3-none-any.whl (25 kB)\n", + "#22 1.507 Requirement already satisfied: numpy>=1.21.6 in /home/holoscan/.local/lib/python3.10/site-packages (from monai-deploy-app-sdk==2.0.0) (1.26.4)\n", + "#22 1.508 Requirement already satisfied: holoscan~=2.0 in /home/holoscan/.local/lib/python3.10/site-packages (from monai-deploy-app-sdk==2.0.0) (2.6.0)\n", + "#22 1.578 Collecting typeguard>=3.0.0\n", + "#22 1.583 Downloading typeguard-4.4.1-py3-none-any.whl (35 kB)\n", + "#22 1.609 Requirement already satisfied: Jinja2==3.1.3 in /home/holoscan/.local/lib/python3.10/site-packages (from holoscan~=2.0->monai-deploy-app-sdk==2.0.0) (3.1.3)\n", + "#22 1.610 Requirement already satisfied: requests==2.31.0 in /home/holoscan/.local/lib/python3.10/site-packages (from holoscan~=2.0->monai-deploy-app-sdk==2.0.0) (2.31.0)\n", + "#22 1.611 Requirement already satisfied: cupy-cuda12x==12.2 in /home/holoscan/.local/lib/python3.10/site-packages (from holoscan~=2.0->monai-deploy-app-sdk==2.0.0) (12.2.0)\n", + "#22 1.724 Collecting pip>22.0.2\n", + "#22 1.738 Using cached pip-24.3.1-py3-none-any.whl (1.8 MB)\n", + "#22 1.756 Requirement already satisfied: psutil==6.0.0 in /home/holoscan/.local/lib/python3.10/site-packages (from holoscan~=2.0->monai-deploy-app-sdk==2.0.0) (6.0.0)\n", + "#22 1.757 Requirement already satisfied: cloudpickle==2.2.1 in /home/holoscan/.local/lib/python3.10/site-packages (from holoscan~=2.0->monai-deploy-app-sdk==2.0.0) (2.2.1)\n", + "#22 1.758 Requirement already satisfied: packaging==23.1 in /home/holoscan/.local/lib/python3.10/site-packages (from holoscan~=2.0->monai-deploy-app-sdk==2.0.0) (23.1)\n", + "#22 1.759 Requirement already satisfied: python-on-whales==0.60.1 in /home/holoscan/.local/lib/python3.10/site-packages (from holoscan~=2.0->monai-deploy-app-sdk==2.0.0) (0.60.1)\n", + "#22 1.760 Requirement already satisfied: pyyaml==6.0 in /home/holoscan/.local/lib/python3.10/site-packages (from holoscan~=2.0->monai-deploy-app-sdk==2.0.0) (6.0)\n", + "#22 1.761 Requirement already satisfied: wheel-axle-runtime<1.0 in /home/holoscan/.local/lib/python3.10/site-packages (from holoscan~=2.0->monai-deploy-app-sdk==2.0.0) (0.0.6)\n", + "#22 1.779 Requirement already satisfied: fastrlock>=0.5 in /home/holoscan/.local/lib/python3.10/site-packages (from cupy-cuda12x==12.2->holoscan~=2.0->monai-deploy-app-sdk==2.0.0) (0.8.3)\n", + "#22 1.784 Requirement already satisfied: MarkupSafe>=2.0 in /home/holoscan/.local/lib/python3.10/site-packages (from Jinja2==3.1.3->holoscan~=2.0->monai-deploy-app-sdk==2.0.0) (3.0.2)\n", + "#22 1.801 Requirement already satisfied: typing-extensions in /home/holoscan/.local/lib/python3.10/site-packages (from python-on-whales==0.60.1->holoscan~=2.0->monai-deploy-app-sdk==2.0.0) (4.12.2)\n", + "#22 1.802 Requirement already satisfied: pydantic<2,>=1.5 in /home/holoscan/.local/lib/python3.10/site-packages (from python-on-whales==0.60.1->holoscan~=2.0->monai-deploy-app-sdk==2.0.0) (1.10.21)\n", + "#22 1.802 Requirement already satisfied: tqdm in /home/holoscan/.local/lib/python3.10/site-packages (from python-on-whales==0.60.1->holoscan~=2.0->monai-deploy-app-sdk==2.0.0) (4.67.1)\n", + "#22 1.803 Requirement already satisfied: typer>=0.4.1 in /home/holoscan/.local/lib/python3.10/site-packages (from python-on-whales==0.60.1->holoscan~=2.0->monai-deploy-app-sdk==2.0.0) (0.15.1)\n", + "#22 1.813 Requirement already satisfied: charset-normalizer<4,>=2 in /home/holoscan/.local/lib/python3.10/site-packages (from requests==2.31.0->holoscan~=2.0->monai-deploy-app-sdk==2.0.0) (3.4.1)\n", + "#22 1.813 Requirement already satisfied: idna<4,>=2.5 in /home/holoscan/.local/lib/python3.10/site-packages (from requests==2.31.0->holoscan~=2.0->monai-deploy-app-sdk==2.0.0) (3.10)\n", + "#22 1.814 Requirement already satisfied: urllib3<3,>=1.21.1 in /home/holoscan/.local/lib/python3.10/site-packages (from requests==2.31.0->holoscan~=2.0->monai-deploy-app-sdk==2.0.0) (2.3.0)\n", + "#22 1.815 Requirement already satisfied: certifi>=2017.4.17 in /home/holoscan/.local/lib/python3.10/site-packages (from requests==2.31.0->holoscan~=2.0->monai-deploy-app-sdk==2.0.0) (2024.12.14)\n", + "#22 1.845 Requirement already satisfied: filelock in /home/holoscan/.local/lib/python3.10/site-packages (from wheel-axle-runtime<1.0->holoscan~=2.0->monai-deploy-app-sdk==2.0.0) (3.16.1)\n", + "#22 1.881 Requirement already satisfied: rich>=10.11.0 in /home/holoscan/.local/lib/python3.10/site-packages (from typer>=0.4.1->python-on-whales==0.60.1->holoscan~=2.0->monai-deploy-app-sdk==2.0.0) (13.9.4)\n", + "#22 1.882 Requirement already satisfied: shellingham>=1.3.0 in /home/holoscan/.local/lib/python3.10/site-packages (from typer>=0.4.1->python-on-whales==0.60.1->holoscan~=2.0->monai-deploy-app-sdk==2.0.0) (1.5.4)\n", + "#22 1.883 Requirement already satisfied: click>=8.0.0 in /home/holoscan/.local/lib/python3.10/site-packages (from typer>=0.4.1->python-on-whales==0.60.1->holoscan~=2.0->monai-deploy-app-sdk==2.0.0) (8.1.8)\n", + "#22 1.949 Requirement already satisfied: markdown-it-py>=2.2.0 in /home/holoscan/.local/lib/python3.10/site-packages (from rich>=10.11.0->typer>=0.4.1->python-on-whales==0.60.1->holoscan~=2.0->monai-deploy-app-sdk==2.0.0) (3.0.0)\n", + "#22 1.950 Requirement already satisfied: pygments<3.0.0,>=2.13.0 in /home/holoscan/.local/lib/python3.10/site-packages (from rich>=10.11.0->typer>=0.4.1->python-on-whales==0.60.1->holoscan~=2.0->monai-deploy-app-sdk==2.0.0) (2.19.1)\n", + "#22 1.985 Requirement already satisfied: mdurl~=0.1 in /home/holoscan/.local/lib/python3.10/site-packages (from markdown-it-py>=2.2.0->rich>=10.11.0->typer>=0.4.1->python-on-whales==0.60.1->holoscan~=2.0->monai-deploy-app-sdk==2.0.0) (0.1.2)\n", + "#22 2.261 Installing collected packages: typeguard, pip, colorama, monai-deploy-app-sdk\n", + "#22 3.247 Successfully installed colorama-0.4.6 monai-deploy-app-sdk-2.0.0 pip-24.3.1 typeguard-4.4.1\n", + "#22 DONE 3.6s\n", + "\n", + "#23 [release 14/17] COPY ./map/app.json /etc/holoscan/app.json\n", "#23 DONE 0.1s\n", "\n", - "#24 [18/20] COPY ./app.config /var/holoscan/app.yaml\n", - "#24 DONE 0.0s\n", + "#24 [release 15/17] COPY ./app.config /var/holoscan/app.yaml\n", + "#24 DONE 0.1s\n", "\n", - "#25 [19/20] COPY ./map/pkg.json /etc/holoscan/pkg.json\n", - "#25 DONE 0.0s\n", + "#25 [release 16/17] COPY ./map/pkg.json /etc/holoscan/pkg.json\n", + "#25 DONE 0.1s\n", "\n", - "#26 [20/20] COPY ./app /opt/holoscan/app\n", - "#26 DONE 0.0s\n", + "#26 [release 17/17] COPY ./app /opt/holoscan/app\n", + "#26 DONE 0.1s\n", "\n", "#27 exporting to docker image format\n", "#27 exporting layers\n", - "#27 exporting layers 4.7s done\n", - "#27 exporting manifest sha256:b2f214d50ea4107e85a01c007f24375e996d9dc954742f585907f47d96cc3c1a 0.0s done\n", - "#27 exporting config sha256:6485f181da93a3c0fc12abe1cf367c89306b7e8f7b110993be48f38b56164b89 0.0s done\n", + "#27 exporting layers 24.0s done\n", + "#27 exporting manifest sha256:cc7706093c83a3a726ef89196569affd7a7462bb7c4d0f2ee43b135224920095 0.0s done\n", + "#27 exporting config sha256:70d7701f92d3ce5f4031fd4e0cbf5c1df2d07600f6549cfd50b960afefe42515 0.0s done\n", "#27 sending tarball\n", "#27 ...\n", "\n", "#28 importing to docker\n", - "#28 loading layer d16586f61a51 32.77kB / 125.82kB\n", - "#28 loading layer bb2ce52783d3 557.06kB / 67.52MB\n", - "#28 loading layer 5f42a2d4a17c 492B / 492B\n", - "#28 loading layer 93299cfbc42b 312B / 312B\n", - "#28 loading layer 222cc4dc3d9f 294B / 294B\n", - "#28 loading layer 4dbebd69efec 3.18kB / 3.18kB\n", - "#28 loading layer 5f42a2d4a17c 492B / 492B 1.0s done\n", - "#28 loading layer d16586f61a51 32.77kB / 125.82kB 2.9s done\n", - "#28 loading layer bb2ce52783d3 557.06kB / 67.52MB 2.9s done\n", - "#28 loading layer 93299cfbc42b 312B / 312B 1.0s done\n", - "#28 loading layer 222cc4dc3d9f 294B / 294B 1.0s done\n", - "#28 loading layer 4dbebd69efec 3.18kB / 3.18kB 0.9s done\n", - "#28 DONE 2.9s\n", + "#28 loading layer 1b024ad82f5a 229B / 229B\n", + "#28 loading layer b8bccbd3b506 65.54kB / 5.03MB\n", + "#28 loading layer 5a9d3c09196c 557.06kB / 226.89MB\n", + "#28 loading layer 5a9d3c09196c 93.59MB / 226.89MB 2.1s\n", + "#28 loading layer 5a9d3c09196c 137.04MB / 226.89MB 4.2s\n", + "#28 loading layer 5a9d3c09196c 178.81MB / 226.89MB 6.3s\n", + "#28 loading layer 5a9d3c09196c 226.16MB / 226.89MB 8.3s\n", + "#28 loading layer c99258ac4505 65.54kB / 3.78MB\n", + "#28 loading layer 3170063eb987 490B / 490B\n", + "#28 loading layer fd5e217f4633 313B / 313B\n", + "#28 loading layer f6848a086f32 295B / 295B\n", + "#28 loading layer bf3b68165975 3.21kB / 3.21kB\n", + "#28 loading layer 1b024ad82f5a 229B / 229B 10.3s done\n", + "#28 loading layer b8bccbd3b506 65.54kB / 5.03MB 10.2s done\n", + "#28 loading layer 5a9d3c09196c 226.16MB / 226.89MB 9.6s done\n", + "#28 loading layer c99258ac4505 65.54kB / 3.78MB 1.1s done\n", + "#28 loading layer 3170063eb987 490B / 490B 0.4s done\n", + "#28 loading layer fd5e217f4633 313B / 313B 0.4s done\n", + "#28 loading layer f6848a086f32 295B / 295B 0.3s done\n", + "#28 loading layer bf3b68165975 3.21kB / 3.21kB 0.2s done\n", + "#28 DONE 10.3s\n", "\n", "#27 exporting to docker image format\n", - "#27 sending tarball 39.7s done\n", - "#27 DONE 44.4s\n", + "#27 sending tarball 24.8s done\n", + "#27 DONE 48.8s\n", "\n", "#29 exporting cache to client directory\n", "#29 preparing build cache for export\n", - "#29 writing layer sha256:014cff740c9ec6e9a30d0b859219a700ae880eb385d62095d348f5ea136d6015\n", - "#29 writing layer sha256:014cff740c9ec6e9a30d0b859219a700ae880eb385d62095d348f5ea136d6015 done\n", - "#29 writing layer sha256:0487800842442c7a031a39e1e1857bc6dae4b4f7e5daf3d625f7a8a4833fb364 done\n", - "#29 writing layer sha256:06c6aee94862daf0603783db4e1de6f8524b30ac9fbe0374ab3f1d85b2f76f7f done\n", - "#29 writing layer sha256:0a1756432df4a4350712d8ae5c003f1526bd2180800b3ae6301cfc9ccf370254 done\n", - "#29 writing layer sha256:0a77dcbd0e648ddc4f8e5230ade8fdb781d99e24fa4f13ca96a360c7f7e6751f done\n", - "#29 writing layer sha256:0ec682bf99715a9f88631226f3749e2271b8b9f254528ef61f65ed829984821c done\n", - "#29 writing layer sha256:18ff8faa5fb62bc13ea7af97d3ed57fd4dbffbcb15b37606935aa20a1b2b9879\n", - "#29 writing layer sha256:18ff8faa5fb62bc13ea7af97d3ed57fd4dbffbcb15b37606935aa20a1b2b9879 1.2s done\n", - "#29 writing layer sha256:1c5c3aa9c2c8bfd1b9eb36248f5b6d67b3db73ef43440f9dd897615771974b39\n", - "#29 writing layer sha256:1c5c3aa9c2c8bfd1b9eb36248f5b6d67b3db73ef43440f9dd897615771974b39 done\n", - "#29 writing layer sha256:1f73278b7f17492ce1a8b28b139d54596961596d6790dc20046fa6d5909f3e9c done\n", - "#29 writing layer sha256:20d331454f5fb557f2692dfbdbe092c718fd2cb55d5db9d661b62228dacca5c2 done\n", - "#29 writing layer sha256:238f69a43816e481f0295995fcf5fe74d59facf0f9f99734c8d0a2fb140630e0 done\n", - "#29 writing layer sha256:2ad84487f9d4d31cd1e0a92697a5447dd241935253d036b272ef16d31620c1e7 done\n", - "#29 writing layer sha256:2e367cdca270a2175c84537f99cfd3f00f286e5977884762ba2b7045637f7eb8 done\n", - "#29 writing layer sha256:2f65750928993b5b31fe572d9e085b53853c5a344feeb0e8615898e285a8c256 done\n", - "#29 writing layer sha256:3777c6498f08c0400339c243e827d465075b7296eb2526e38d9b01c84f8764d8 done\n", - "#29 writing layer sha256:3e3e04011ebdba380ab129f0ee390626cb2a600623815ca756340c18bedb9517 done\n", - "#29 writing layer sha256:42619ce4a0c9e54cfd0ee41a8e5f27d58b3f51becabd1ac6de725fbe6c42b14a done\n", - "#29 writing layer sha256:44b45fba2f5d69895a3b96828a250406b216add7940feab849e3bf18bc864780 0.0s done\n", - "#29 writing layer sha256:49bdc9abf8a437ccff67cc11490ba52c976577992909856a86be872a34d3b950 done\n", - "#29 writing layer sha256:4b691ba9f48b41eaa0c754feba8366f1c030464fcbc55eeffa6c86675990933a done\n", - "#29 writing layer sha256:4d04a8db404f16c2704fa10739cb6745a0187713a21a6ef0deb34b48629b54c1 done\n", - "#29 writing layer sha256:4dde81c0149c8207008e2b45ce8533f41589094e1b998390a2d39fb50b337992 0.0s done\n", + "#29 writing layer sha256:0f288e66a79a71cef90c6368b4adaad8ed36262f6000f8acf8d49cce95577d68\n", + "#29 writing layer sha256:0f288e66a79a71cef90c6368b4adaad8ed36262f6000f8acf8d49cce95577d68 0.0s done\n", + "#29 writing layer sha256:1a0d52c93099897b518eb6cc6cd0fa3d52ff733e8606b4d8c92675ba9e7101ff done\n", + "#29 writing layer sha256:1a5c607fac617c9a47a6fc2a6bda367b1f4be6b5e2c6cfdc7bf0ca16c6e969c0 0.1s done\n", + "#29 writing layer sha256:234b866f57e0c5d555af2d87a1857a17ec4ac7e70d2dc6c31ff0a072a4607f24\n", + "#29 writing layer sha256:234b866f57e0c5d555af2d87a1857a17ec4ac7e70d2dc6c31ff0a072a4607f24 done\n", + "#29 writing layer sha256:255905badeaa82f032e1043580eed8b745c19cd4a2cb7183883ee5a30f851d6d done\n", + "#29 writing layer sha256:3713021b02770a720dea9b54c03d0ed83e03a2ef5dce2898c56a327fee9a8bca done\n", + "#29 writing layer sha256:3a80776cdc9c9ef79bb38510849c9160f82462d346bf5a8bf29c811391b4e763 done\n", + "#29 writing layer sha256:419f5fe8264f5c5f64aad0cfa4cf85e93d877a9424e0c4467ac5f2a450d6e056 0.0s done\n", + "#29 writing layer sha256:41e173df84c503c9e717e0e67c22260d4e6bb14660577b225dec5733b4155a78 done\n", + "#29 writing layer sha256:46c9c54348df10b0d7700bf932d5de7dc5bf9ab91e685db7086e29e381ff8e12 done\n", "#29 writing layer sha256:4f4fb700ef54461cfa02571ae0db9a0dc1e0cdb5577484a6d75e68dc38e8acc1 done\n", - "#29 writing layer sha256:542bc8c8d18fbc95e6794122c3593a4a693f8ab6dda4460406f4d7b1ae64a2bc done\n", - "#29 writing layer sha256:57f244836ad318f9bbb3b29856ae1a5b31038bfbb9b43d2466d51c199eb55041 done\n", - "#29 writing layer sha256:5b5b131e0f20db4cb8e568b623a95f8fc16ed1c6b322a9366df70b59a881f24f done\n", - "#29 writing layer sha256:5b90d17b5048adcadefd0b1e4dba9a99247a8827a887e1ca042df375c85b518d done\n", - "#29 writing layer sha256:62452179df7c18e292f141d4aec29e6aba9ff8270c893731169fc6f41dc07631 done\n", - "#29 writing layer sha256:6630c387f5f2115bca2e646fd0c2f64e1f3d5431c2e050abe607633883eda230 done\n", - "#29 writing layer sha256:6661e0146e77a8bcb03edbfda95bf7780c8bb4c4f98bc03a398c88f4b2403d12 done\n", - "#29 writing layer sha256:717ebf8c9c66ae393ad01e50dbac4413d7b026b9c97d4d348b22ad17052a1a35 done\n", - "#29 writing layer sha256:758ac279497f68ba566bbdb5686aaaa9e362ca063c817c725de96fd205aeaa53 0.0s done\n", - "#29 writing layer sha256:773c6815e5e7d6855a62f8c5e2fabce3d939ded36c5420f15b54dd7908cdbcfa done\n", - "#29 writing layer sha256:7852b73ea931e3a8d3287ee7ef3cf4bad068e44f046583bfc2b81336fb299284 done\n", - "#29 writing layer sha256:7f8ec130348bcdac81c295e37fe82b4a6e5e9a3ca980a6343809c561020d82d7 done\n", - "#29 writing layer sha256:80885adcad6b5d021bb9f68b6c952018085bb4ce72011bdc0cf7fe8178b5960b done\n", - "#29 writing layer sha256:82a3436133b2b17bb407c7fe488932aa0ca55411f23ab55c34a6134b287c6a27 done\n", - "#29 writing layer sha256:8371d15eb4d69b1d98174dd098b8ddd5c4f19ec6f8d8b67e72dfa9891dc454b4 done\n", - "#29 writing layer sha256:85713f9b166b5add777c524ee807f6265d88b967cbeb9f961d6b09bf220c9a65 done\n", - "#29 writing layer sha256:8fe00505006a09966e763918147ef6ed55bb6695b26e4940c780ee430dc5da8e done\n", - "#29 writing layer sha256:90eae6faa5cc5ba62f12c25915cdfb1a7a51abfba0d05cb5818c3f908f4e345f done\n", - "#29 writing layer sha256:9205d97d9d3e906698bcc6c42d45727c2fa6ec2622abf953d46778c3b8c78edc done\n", - "#29 writing layer sha256:993369dbcc13162a6654d2a3e990b8d8b5f37963564d25710e12764337261ae3 done\n", - "#29 writing layer sha256:99e42a4adebadb39bf55bf94bbd9fb8034230ee19b6b0a42e6ff96f2e7794f30 done\n", - "#29 writing layer sha256:9ac855545fa90ed2bf3b388fdff9ef06ac9427b0c0fca07c9e59161983d8827e done\n", - "#29 writing layer sha256:9d19ee268e0d7bcf6716e6658ee1b0384a71d6f2f9aa1ae2085610cf7c7b316f done\n", - "#29 writing layer sha256:9fafbd4203c4fefe007a462e0d2cd4c1c7c41db2cfdc58d212279e1b9b4b230c done\n", - "#29 writing layer sha256:a1748eee9d376f97bd19225ba61dfada9986f063f4fc429e435f157abb629fc6 done\n", - "#29 writing layer sha256:a251fe5ae6c6d2d5034e4ca88b5dfe5d4827ff90b18e9b143a073232a32bb18d done\n", - "#29 writing layer sha256:a68f4e0ec09ec3b78cb4cf8e4511d658e34e7b6f676d7806ad9703194ff17604 done\n", - "#29 writing layer sha256:a8e4decc8f7289623b8fd7b9ba1ca555b5a755ebdbf81328d68209f148d9e602 done\n", - "#29 writing layer sha256:afde1c269453ce68a0f2b54c1ba8c5ecddeb18a19e5618a4acdef1f0fe3921af done\n", - "#29 writing layer sha256:b406feb20a37b8c87ef4f5ef814039e3adc90473d50c366b7d9bb6ded4e94a2e done\n", - "#29 writing layer sha256:b48a5fafcaba74eb5d7e7665601509e2889285b50a04b5b639a23f8adc818157\n", - "#29 preparing build cache for export 1.7s done\n", - "#29 writing layer sha256:b48a5fafcaba74eb5d7e7665601509e2889285b50a04b5b639a23f8adc818157 done\n", - "#29 writing layer sha256:b98f5f4d1c99ef6c3b4ecce24d32753787f67982a13b216d17115c13fee3aa58 done\n", - "#29 writing layer sha256:ba9f7c75e4dd7942b944679995365aab766d3677da2e69e1d74472f471a484dd done\n", - "#29 writing layer sha256:bdc13166216ae226fa6976f9ce91f4f259d43972f1e0a9b723e436919534b2f4 done\n", - "#29 writing layer sha256:c815f0be64eded102822d81e029bd23b0d8d9a0fbfeb492ec0b4b0bc4ee777bf done\n", - "#29 writing layer sha256:c98533d2908f36a5e9b52faae83809b3b6865b50e90e2817308acfc64cd3655f done\n", - "#29 writing layer sha256:d7da5c5e9a40c476c4b3188a845e3276dedfd752e015ea5113df5af64d4d43f7 done\n", - "#29 writing layer sha256:db20521a869adda8244cb64b783c65e1a911efaae0e73ae00e4a34ea6213d6ce done\n", - "#29 writing layer sha256:df4fd0ac710d7af949afbc6d25b5b4daf3f0596dabf3dec36fa7ca8fa6e1d049 done\n", - "#29 writing layer sha256:e16d56ac40a253ee3622e4a00c4d5f0cc28effdef15ac4b2c51b78f4732abcef done\n", - "#29 writing layer sha256:e291ddecfbe16b95ee9e90b5e90b1a3d0cfd53dc5e720d6b0f3d28e4a47cf5ac done\n", - "#29 writing layer sha256:e2cb45922077b1926bf021323ddd666dbc92d2c9daea0acf78515292da5000c8 done\n", - "#29 writing layer sha256:e79b8737ab7fc2e26d2e35f3e6572c9ababcbaaa232c1ff5987cdbf9ccd55b88 done\n", - "#29 writing layer sha256:e8acb678f16bc0c369d5cf9c184f2d3a1c773986816526e5e3e9c0354f7e757f done\n", - "#29 writing layer sha256:e9225f7ab6606813ec9acba98a064826ebfd6713a9645a58cd068538af1ecddb done\n", - "#29 writing layer sha256:f249faf9663a96b0911a903f8803b11a553c59b698013fb8343492fefdaaea90 done\n", - "#29 writing layer sha256:f608e2fbff86e98627b7e462057e7d2416522096d73fe4664b82fe6ce8a4047d done\n", - "#29 writing layer sha256:f65d191416580d6c38e3d95eee12377b75a4df548be1492618ce2a8c3c41b99e done\n", - "#29 writing config sha256:339862140e56654739f221a003e85d34c38ecd35b385c81ec1172b98fc0def66 0.0s done\n", - "#29 writing cache manifest sha256:5120653f7a3d293475e31a259659d8eb2d8883ab243f43924a2d526e754e676c 0.0s done\n", - "#29 DONE 1.7s\n", - "[2024-04-23 15:27:32,621] [INFO] (packager) - Build Summary:\n", + "#29 writing layer sha256:5b30d2811318a73c976648ae475ac270801091fbf9e25d455ab1272863f37139 0.0s done\n", + "#29 writing layer sha256:67b3546b211deefd67122e680c0932886e0b3c6bd6ae0665e3ab25d2d9f0cda0 done\n", + "#29 writing layer sha256:834f38ff94a8090956102675d8f74ea3c8dd46a273f4a1f070bb2972b3003271\n", + "#29 writing layer sha256:834f38ff94a8090956102675d8f74ea3c8dd46a273f4a1f070bb2972b3003271 3.3s done\n", + "#29 writing layer sha256:875bf82ef536517b9ff04de88d1b32370335edb06abc9c9802ebaae0e33bb16c\n", + "#29 writing layer sha256:875bf82ef536517b9ff04de88d1b32370335edb06abc9c9802ebaae0e33bb16c 0.1s done\n", + "#29 writing layer sha256:94ea8fe9174939142272c5d49e179ba19f357ea997b5d4f3900d1fb7d4fe6707\n", + "#29 writing layer sha256:94ea8fe9174939142272c5d49e179ba19f357ea997b5d4f3900d1fb7d4fe6707 done\n", + "#29 writing layer sha256:94ed629bf6769eea21c1bcc9c2527c040075d6f7ddbf8e6f45d83a1a3a7430b5 0.0s done\n", + "#29 writing layer sha256:980c13e156f90218b216bc6b0430472bbda71c0202804d350c0e16ef02075885 done\n", + "#29 writing layer sha256:ac52600be001236a2c291a4c5902c915bf5ec9d2441c06d2a54c587b76345847 done\n", + "#29 writing layer sha256:bc25d810fc1fd99656c1b07d422e88cdb896508730175bc3ec187b79f3787044 done\n", + "#29 writing layer sha256:c0e9112106766f6d918279426468ca3a81ddca90d82a7e3e41ed3d96b0464a94 done\n", + "#29 writing layer sha256:c8937b741c9ecd6b257aeb18daf07eddbf1c77b0c93f9ba4164faa8353cd1d3c done\n", + "#29 writing layer sha256:d339273dfb7fc3b7fd896d3610d360ab9a09ab33a818093cb73b4be7639b6e99 done\n", + "#29 writing layer sha256:d6a3aed185061848dad38d40fc87ecf54ea6773924fd4596cd74b5e3e5bfb1f2 0.0s done\n", + "#29 writing layer sha256:e540d242f419a27800d601d7275f4fbb3488b97d209b454f52e63f1eb413a912 done\n", + "#29 writing layer sha256:efc9014e2a4cb1e133b80bb4f047e9141e98685eb95b8d2471a8e35b86643e31 done\n", + "#29 writing config sha256:692173dc5432d2da6886f738a6b98d063c1f53f7aab1c09c888cf9edde90e0ec 0.0s done\n", + "#29 preparing build cache for export 4.0s done\n", + "#29 writing cache manifest sha256:a902154876d24757b32216424d3293c210d819dff65948054a3f83e51acad1d4 0.0s done\n", + "#29 DONE 4.0s\n", + "[2025-01-16 10:22:24,149] [INFO] (packager) - Build Summary:\n", "\n", "Platform: x64-workstation/dgpu\n", " Status: Succeeded\n", @@ -1705,14 +1943,14 @@ }, { "cell_type": "code", - "execution_count": 51, + "execution_count": 24, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "simple_imaging_app-x64-workstation-dgpu-linux-amd64 1.0 6485f181da93 46 seconds ago 12.5GB\n" + "simple_imaging_app-x64-workstation-dgpu-linux-amd64 1.0 70d7701f92d3 54 seconds ago 2.98GB\n" ] } ], @@ -1734,7 +1972,7 @@ }, { "cell_type": "code", - "execution_count": 52, + "execution_count": 25, "metadata": {}, "outputs": [ { @@ -1770,7 +2008,7 @@ " },\n", " \"readiness\": null,\n", " \"sdk\": \"monai-deploy\",\n", - " \"sdkVersion\": \"0.5.1\",\n", + " \"sdkVersion\": \"2.0.0\",\n", " \"timeout\": 0,\n", " \"version\": 1,\n", " \"workingDirectory\": \"/var/holoscan\"\n", @@ -1792,17 +2030,17 @@ " \"platformConfig\": \"dgpu\"\n", "}\n", "\n", - "2024-04-23 22:27:35 [INFO] Copying application from /opt/holoscan/app to /var/run/holoscan/export/app\n", + "2025-01-16 18:22:27 [INFO] Copying application from /opt/holoscan/app to /var/run/holoscan/export/app\n", "\n", - "2024-04-23 22:27:35 [INFO] Copying application manifest file from /etc/holoscan/app.json to /var/run/holoscan/export/config/app.json\n", - "2024-04-23 22:27:35 [INFO] Copying pkg manifest file from /etc/holoscan/pkg.json to /var/run/holoscan/export/config/pkg.json\n", - "2024-04-23 22:27:35 [INFO] Copying application configuration from /var/holoscan/app.yaml to /var/run/holoscan/export/config/app.yaml\n", + "2025-01-16 18:22:27 [INFO] Copying application manifest file from /etc/holoscan/app.json to /var/run/holoscan/export/config/app.json\n", + "2025-01-16 18:22:27 [INFO] Copying pkg manifest file from /etc/holoscan/pkg.json to /var/run/holoscan/export/config/pkg.json\n", + "2025-01-16 18:22:27 [INFO] Copying application configuration from /var/holoscan/app.yaml to /var/run/holoscan/export/config/app.yaml\n", "\n", - "2024-04-23 22:27:35 [INFO] Copying models from /opt/holoscan/models to /var/run/holoscan/export/models\n", - "2024-04-23 22:27:35 [INFO] '/opt/holoscan/models' cannot be found.\n", + "2025-01-16 18:22:27 [INFO] Copying models from /opt/holoscan/models to /var/run/holoscan/export/models\n", + "2025-01-16 18:22:27 [INFO] '/opt/holoscan/models' cannot be found.\n", "\n", - "2024-04-23 22:27:35 [INFO] Copying documentation from /opt/holoscan/docs/ to /var/run/holoscan/export/docs\n", - "2024-04-23 22:27:35 [INFO] '/opt/holoscan/docs/' cannot be found.\n", + "2025-01-16 18:22:27 [INFO] Copying documentation from /opt/holoscan/docs/ to /var/run/holoscan/export/docs\n", + "2025-01-16 18:22:27 [INFO] '/opt/holoscan/docs/' cannot be found.\n", "\n", "app config\n" ] @@ -1829,29 +2067,29 @@ }, { "cell_type": "code", - "execution_count": 53, + "execution_count": 26, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "[2024-04-23 15:27:36,245] [INFO] (runner) - Checking dependencies...\n", - "[2024-04-23 15:27:36,245] [INFO] (runner) - --> Verifying if \"docker\" is installed...\n", + "[2025-01-16 10:22:29,375] [INFO] (runner) - Checking dependencies...\n", + "[2025-01-16 10:22:29,375] [INFO] (runner) - --> Verifying if \"docker\" is installed...\n", "\n", - "[2024-04-23 15:27:36,245] [INFO] (runner) - --> Verifying if \"docker-buildx\" is installed...\n", + "[2025-01-16 10:22:29,375] [INFO] (runner) - --> Verifying if \"docker-buildx\" is installed...\n", "\n", - "[2024-04-23 15:27:36,245] [INFO] (runner) - --> Verifying if \"simple_imaging_app-x64-workstation-dgpu-linux-amd64:1.0\" is available...\n", + "[2025-01-16 10:22:29,375] [INFO] (runner) - --> Verifying if \"simple_imaging_app-x64-workstation-dgpu-linux-amd64:1.0\" is available...\n", "\n", - "[2024-04-23 15:27:36,326] [INFO] (runner) - Reading HAP/MAP manifest...\n", - "\u001b[sPreparing to copy...\u001b[?25l\u001b[u\u001b[2KCopying from container - 0B\u001b[?25h\u001b[u\u001b[2KSuccessfully copied 2.56kB to /tmp/tmpv5e8cb_i/app.json\n", - "\u001b[sPreparing to copy...\u001b[?25l\u001b[u\u001b[2KCopying from container - 0B\u001b[?25h\u001b[u\u001b[2KSuccessfully copied 2.05kB to /tmp/tmpv5e8cb_i/pkg.json\n", - "[2024-04-23 15:27:36,492] [INFO] (runner) - --> Verifying if \"nvidia-ctk\" is installed...\n", + "[2025-01-16 10:22:29,473] [INFO] (runner) - Reading HAP/MAP manifest...\n", + "Successfully copied 2.56kB to /tmp/tmptn3vmu2k/app.json\n", + "Successfully copied 2.05kB to /tmp/tmptn3vmu2k/pkg.json\n", + "[2025-01-16 10:22:29,824] [INFO] (runner) - --> Verifying if \"nvidia-ctk\" is installed...\n", "\n", - "[2024-04-23 15:27:36,492] [INFO] (runner) - --> Verifying \"nvidia-ctk\" version...\n", + "[2025-01-16 10:22:29,824] [INFO] (runner) - --> Verifying \"nvidia-ctk\" version...\n", "\n", - "[2024-04-23 15:27:36,761] [INFO] (common) - Launching container (94febd6eabce) using image 'simple_imaging_app-x64-workstation-dgpu-linux-amd64:1.0'...\n", - " container name: dazzling_kowalevski\n", + "[2025-01-16 10:22:30,105] [INFO] (common) - Launching container (cbedd97d041f) using image 'simple_imaging_app-x64-workstation-dgpu-linux-amd64:1.0'...\n", + " container name: quizzical_meitner\n", " host name: mingq-dt\n", " network: host\n", " user: 1000:1000\n", @@ -1861,39 +2099,39 @@ " shared memory size: 67108864\n", " devices: \n", " group_add: 44\n", - "2024-04-23 22:27:37 [INFO] Launching application python3 /opt/holoscan/app ...\n", + "2025-01-16 18:22:30 [INFO] Launching application python3 /opt/holoscan/app ...\n", "\n", - "[2024-04-23 22:27:37,772] [INFO] (root) - Parsed args: Namespace(log_level=None, input=None, output=None, model=None, workdir=None, argv=['/opt/holoscan/app'])\n", + "[info] [fragment.cpp:585] Loading extensions from configs...\n", "\n", - "[2024-04-23 22:27:37,772] [INFO] (root) - AppContext object: AppContext(input_path=/var/holoscan/input, output_path=/var/holoscan/output, model_path=/opt/holoscan/models, workdir=/var/holoscan)\n", + "[info] [gxf_executor.cpp:255] Creating context\n", "\n", - "[2024-04-23 22:27:37,772] [INFO] (root) - sample_data_path: /var/holoscan/input\n", + "[2025-01-16 18:22:31,102] [INFO] (root) - Parsed args: Namespace(log_level=None, input=None, output=None, model=None, workdir=None, argv=['/opt/holoscan/app'])\n", "\n", - "[info] [app_driver.cpp:1161] Launching the driver/health checking service\n", + "[2025-01-16 18:22:31,102] [INFO] (root) - AppContext object: AppContext(input_path=/var/holoscan/input, output_path=/var/holoscan/output, model_path=/opt/holoscan/models, workdir=/var/holoscan)\n", "\n", - "[info] [gxf_executor.cpp:247] Creating context\n", + "[2025-01-16 18:22:31,102] [INFO] (root) - sample_data_path: /var/holoscan/input\n", "\n", - "[info] [server.cpp:87] Health checking server listening on 0.0.0.0:8777\n", + "[info] [app_driver.cpp:1176] Launching the driver/health checking service\n", "\n", - "[info] [gxf_executor.cpp:1672] Loading extensions from configs...\n", + "[info] [gxf_executor.cpp:1973] Activating Graph...\n", "\n", - "[info] [gxf_executor.cpp:1842] Activating Graph...\n", + "[info] [gxf_executor.cpp:2003] Running Graph...\n", "\n", - "[info] [gxf_executor.cpp:1874] Running Graph...\n", + "[info] [gxf_executor.cpp:2005] Waiting for completion...\n", "\n", - "[info] [gxf_executor.cpp:1876] Waiting for completion...\n", + "\u001b[0m2025-01-16 18:22:31.105 INFO gxf/std/greedy_scheduler.cpp@191: Scheduling 3 entities\u001b[0m\n", "\n", - "\u001b[0m2024-04-23 22:27:37.797 INFO gxf/std/greedy_scheduler.cpp@191: Scheduling 3 entities\u001b[0m\n", + "[info] [server.cpp:87] Health checking server listening on 0.0.0.0:8777\n", "\n", - "\u001b[0m2024-04-23 22:27:38.257 INFO gxf/std/greedy_scheduler.cpp@372: Scheduler stopped: Some entities are waiting for execution, but there are no periodic or async entities to get out of the deadlock.\u001b[0m\n", + "\u001b[0m2025-01-16 18:22:31.765 INFO gxf/std/greedy_scheduler.cpp@372: Scheduler stopped: Some entities are waiting for execution, but there are no periodic or async entities to get out of the deadlock.\u001b[0m\n", "\n", - "\u001b[0m2024-04-23 22:27:38.257 INFO gxf/std/greedy_scheduler.cpp@401: Scheduler finished.\u001b[0m\n", + "\u001b[0m2025-01-16 18:22:31.765 INFO gxf/std/greedy_scheduler.cpp@401: Scheduler finished.\u001b[0m\n", "\n", - "[info] [gxf_executor.cpp:1879] Deactivating Graph...\n", + "[info] [gxf_executor.cpp:2008] Deactivating Graph...\n", "\n", - "[info] [gxf_executor.cpp:1887] Graph execution finished.\n", + "[info] [gxf_executor.cpp:2016] Graph execution finished.\n", "\n", - "[info] [gxf_executor.cpp:275] Destroying context\n", + "[info] [gxf_executor.cpp:284] Destroying context\n", "\n", "Number of times operator sobel_op whose class is defined in sobel_operator called: 1\n", "\n", @@ -1907,7 +2145,7 @@ "\n", "Data type of output post conversion: , max = 91\n", "\n", - "[2024-04-23 15:27:38,526] [INFO] (common) - Container 'dazzling_kowalevski'(94febd6eabce) exited.\n" + "[2025-01-16 10:22:32,099] [INFO] (common) - Container 'quizzical_meitner'(cbedd97d041f) exited.\n" ] } ], @@ -1919,22 +2157,30 @@ }, { "cell_type": "code", - "execution_count": 54, + "execution_count": 27, "metadata": {}, "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/tmp/ipykernel_2020944/3197869135.py:3: FutureWarning: `imshow` is deprecated since version 0.25 and will be removed in version 0.27. Please use `matplotlib`, `napari`, etc. to visualize images.\n", + " io.imshow(output_image)\n" + ] + }, { "data": { "text/plain": [ - "" + "" ] }, - "execution_count": 54, + "execution_count": 27, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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", + "image/png": "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", "text/plain": [ "
" ] @@ -1952,7 +2198,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3.8.10 ('.venv': venv)", + "display_name": ".venv", "language": "python", "name": "python3" }, @@ -1967,11 +2213,6 @@ "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.12" - }, - "vscode": { - "interpreter": { - "hash": "9b4ab1155d0cd1042497eb40fd55b2d15caf4b3c0f9fbfcc7ba4404045d40f12" - } } }, "nbformat": 4, diff --git a/notebooks/tutorials/02_mednist_app-prebuilt.ipynb b/notebooks/tutorials/02_mednist_app-prebuilt.ipynb index 60e6a2d5..7dc6bc3a 100644 --- a/notebooks/tutorials/02_mednist_app-prebuilt.ipynb +++ b/notebooks/tutorials/02_mednist_app-prebuilt.ipynb @@ -20,7 +20,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 18, "metadata": {}, "outputs": [ { @@ -28,12 +28,12 @@ "output_type": "stream", "text": [ "Cloning into 'source'...\n", - "remote: Enumerating objects: 277, done.\u001b[K\n", - "remote: Counting objects: 100% (277/277), done.\u001b[K\n", - "remote: Compressing objects: 100% (222/222), done.\u001b[K\n", - "remote: Total 277 (delta 55), reused 159 (delta 33), pack-reused 0\u001b[K\n", - "Receiving objects: 100% (277/277), 1.44 MiB | 10.45 MiB/s, done.\n", - "Resolving deltas: 100% (55/55), done.\n" + "remote: Enumerating objects: 280, done.\u001b[K\n", + "remote: Counting objects: 100% (280/280), done.\u001b[K\n", + "remote: Compressing objects: 100% (225/225), done.\u001b[K\n", + "remote: Total 280 (delta 59), reused 154 (delta 33), pack-reused 0 (from 0)\u001b[K\n", + "Receiving objects: 100% (280/280), 1.40 MiB | 4.93 MiB/s, done.\n", + "Resolving deltas: 100% (59/59), done.\n" ] } ], @@ -45,7 +45,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 19, "metadata": {}, "outputs": [ { @@ -70,45 +70,39 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 20, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Requirement already satisfied: monai-deploy-app-sdk in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (0.5.1+18.gea0c032.dirty)\n", + "Requirement already satisfied: monai-deploy-app-sdk in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (2.0.0)\n", "Requirement already satisfied: numpy>=1.21.6 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from monai-deploy-app-sdk) (1.26.4)\n", - "Requirement already satisfied: holoscan~=2.0 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from monai-deploy-app-sdk) (2.0.0)\n", + "Requirement already satisfied: holoscan~=2.0 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from monai-deploy-app-sdk) (2.8.0)\n", "Requirement already satisfied: colorama>=0.4.1 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from monai-deploy-app-sdk) (0.4.6)\n", - "Requirement already satisfied: typeguard>=3.0.0 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from monai-deploy-app-sdk) (4.2.1)\n", - "Requirement already satisfied: pip>=20.3 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from holoscan~=2.0->monai-deploy-app-sdk) (24.0)\n", - "Requirement already satisfied: cupy-cuda12x==12.2 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from holoscan~=2.0->monai-deploy-app-sdk) (12.2.0)\n", - "Requirement already satisfied: cloudpickle==2.2.1 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from holoscan~=2.0->monai-deploy-app-sdk) (2.2.1)\n", - "Requirement already satisfied: python-on-whales==0.60.1 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from holoscan~=2.0->monai-deploy-app-sdk) (0.60.1)\n", - "Requirement already satisfied: Jinja2==3.1.3 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from holoscan~=2.0->monai-deploy-app-sdk) (3.1.3)\n", - "Requirement already satisfied: packaging==23.1 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from holoscan~=2.0->monai-deploy-app-sdk) (23.1)\n", - "Requirement already satisfied: pyyaml==6.0 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from holoscan~=2.0->monai-deploy-app-sdk) (6.0)\n", - "Requirement already satisfied: requests==2.31.0 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from holoscan~=2.0->monai-deploy-app-sdk) (2.31.0)\n", - "Requirement already satisfied: psutil==5.9.6 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from holoscan~=2.0->monai-deploy-app-sdk) (5.9.6)\n", - "Requirement already satisfied: wheel-axle-runtime<1.0 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from holoscan~=2.0->monai-deploy-app-sdk) (0.0.5)\n", - "Requirement already satisfied: fastrlock>=0.5 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from cupy-cuda12x==12.2->holoscan~=2.0->monai-deploy-app-sdk) (0.8.2)\n", - "Requirement already satisfied: MarkupSafe>=2.0 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from Jinja2==3.1.3->holoscan~=2.0->monai-deploy-app-sdk) (2.1.5)\n", - "Requirement already satisfied: pydantic<2,>=1.5 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from python-on-whales==0.60.1->holoscan~=2.0->monai-deploy-app-sdk) (1.10.15)\n", - "Requirement already satisfied: tqdm in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from python-on-whales==0.60.1->holoscan~=2.0->monai-deploy-app-sdk) (4.66.2)\n", - "Requirement already satisfied: typer>=0.4.1 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from python-on-whales==0.60.1->holoscan~=2.0->monai-deploy-app-sdk) (0.12.3)\n", - "Requirement already satisfied: typing-extensions in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from python-on-whales==0.60.1->holoscan~=2.0->monai-deploy-app-sdk) (4.11.0)\n", - "Requirement already satisfied: charset-normalizer<4,>=2 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from requests==2.31.0->holoscan~=2.0->monai-deploy-app-sdk) (3.3.2)\n", - "Requirement already satisfied: idna<4,>=2.5 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from requests==2.31.0->holoscan~=2.0->monai-deploy-app-sdk) (3.7)\n", - "Requirement already satisfied: urllib3<3,>=1.21.1 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from requests==2.31.0->holoscan~=2.0->monai-deploy-app-sdk) (2.2.1)\n", - "Requirement already satisfied: certifi>=2017.4.17 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from requests==2.31.0->holoscan~=2.0->monai-deploy-app-sdk) (2024.2.2)\n", - "Requirement already satisfied: filelock in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from wheel-axle-runtime<1.0->holoscan~=2.0->monai-deploy-app-sdk) (3.13.4)\n", - "Requirement already satisfied: click>=8.0.0 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from typer>=0.4.1->python-on-whales==0.60.1->holoscan~=2.0->monai-deploy-app-sdk) (8.1.7)\n", - "Requirement already satisfied: shellingham>=1.3.0 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from typer>=0.4.1->python-on-whales==0.60.1->holoscan~=2.0->monai-deploy-app-sdk) (1.5.4)\n", - "Requirement already satisfied: rich>=10.11.0 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from typer>=0.4.1->python-on-whales==0.60.1->holoscan~=2.0->monai-deploy-app-sdk) (13.7.1)\n", - "Requirement already satisfied: markdown-it-py>=2.2.0 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from rich>=10.11.0->typer>=0.4.1->python-on-whales==0.60.1->holoscan~=2.0->monai-deploy-app-sdk) (3.0.0)\n", - "Requirement already satisfied: pygments<3.0.0,>=2.13.0 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from rich>=10.11.0->typer>=0.4.1->python-on-whales==0.60.1->holoscan~=2.0->monai-deploy-app-sdk) (2.17.2)\n", - "Requirement already satisfied: mdurl~=0.1 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from markdown-it-py>=2.2.0->rich>=10.11.0->typer>=0.4.1->python-on-whales==0.60.1->holoscan~=2.0->monai-deploy-app-sdk) (0.1.2)\n" + "Requirement already satisfied: typeguard>=3.0.0 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from monai-deploy-app-sdk) (4.4.1)\n", + "Requirement already satisfied: pip>22.0.2 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from holoscan~=2.0->monai-deploy-app-sdk) (24.3.1)\n", + "Requirement already satisfied: cupy-cuda12x<14.0,>=12.2 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from holoscan~=2.0->monai-deploy-app-sdk) (13.3.0)\n", + "Requirement already satisfied: cloudpickle<4.0,>=3.0 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from holoscan~=2.0->monai-deploy-app-sdk) (3.1.1)\n", + "Requirement already satisfied: python-on-whales<1.0,>=0.60.1 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from holoscan~=2.0->monai-deploy-app-sdk) (0.75.1)\n", + "Requirement already satisfied: Jinja2<4.0,>=3.1.3 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from holoscan~=2.0->monai-deploy-app-sdk) (3.1.5)\n", + "Requirement already satisfied: packaging>=23.1 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from holoscan~=2.0->monai-deploy-app-sdk) (24.2)\n", + "Requirement already satisfied: pyyaml<7.0,>=6.0 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from holoscan~=2.0->monai-deploy-app-sdk) (6.0.2)\n", + "Requirement already satisfied: requests<3.0,>=2.31.0 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from holoscan~=2.0->monai-deploy-app-sdk) (2.32.3)\n", + "Requirement already satisfied: psutil<7.0,>=6.0.0 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from holoscan~=2.0->monai-deploy-app-sdk) (6.1.1)\n", + "Requirement already satisfied: wheel-axle-runtime<1.0 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from holoscan~=2.0->monai-deploy-app-sdk) (0.0.6)\n", + "Requirement already satisfied: typing-extensions>=4.10.0 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from typeguard>=3.0.0->monai-deploy-app-sdk) (4.12.2)\n", + "Requirement already satisfied: fastrlock>=0.5 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from cupy-cuda12x<14.0,>=12.2->holoscan~=2.0->monai-deploy-app-sdk) (0.8.3)\n", + "Requirement already satisfied: MarkupSafe>=2.0 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from Jinja2<4.0,>=3.1.3->holoscan~=2.0->monai-deploy-app-sdk) (3.0.2)\n", + "Requirement already satisfied: pydantic!=2.0.*,<3,>=2 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from python-on-whales<1.0,>=0.60.1->holoscan~=2.0->monai-deploy-app-sdk) (2.10.5)\n", + "Requirement already satisfied: charset-normalizer<4,>=2 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from requests<3.0,>=2.31.0->holoscan~=2.0->monai-deploy-app-sdk) (3.4.1)\n", + "Requirement already satisfied: idna<4,>=2.5 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from requests<3.0,>=2.31.0->holoscan~=2.0->monai-deploy-app-sdk) (3.10)\n", + "Requirement already satisfied: urllib3<3,>=1.21.1 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from requests<3.0,>=2.31.0->holoscan~=2.0->monai-deploy-app-sdk) (2.3.0)\n", + "Requirement already satisfied: certifi>=2017.4.17 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from requests<3.0,>=2.31.0->holoscan~=2.0->monai-deploy-app-sdk) (2024.12.14)\n", + "Requirement already satisfied: filelock in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from wheel-axle-runtime<1.0->holoscan~=2.0->monai-deploy-app-sdk) (3.16.1)\n", + "Requirement already satisfied: annotated-types>=0.6.0 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from pydantic!=2.0.*,<3,>=2->python-on-whales<1.0,>=0.60.1->holoscan~=2.0->monai-deploy-app-sdk) (0.7.0)\n", + "Requirement already satisfied: pydantic-core==2.27.2 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from pydantic!=2.0.*,<3,>=2->python-on-whales<1.0,>=0.60.1->holoscan~=2.0->monai-deploy-app-sdk) (2.27.2)\n" ] } ], @@ -126,40 +120,38 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 21, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Requirement already satisfied: monai in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (1.3.0)\n", - "Requirement already satisfied: Pillow in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (10.3.0)\n", - "Requirement already satisfied: numpy>=1.20 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from monai) (1.26.4)\n", - "Requirement already satisfied: torch>=1.9 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from monai) (2.0.1)\n", - "Requirement already satisfied: filelock in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from torch>=1.9->monai) (3.13.4)\n", - "Requirement already satisfied: typing-extensions in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from torch>=1.9->monai) (4.11.0)\n", - "Requirement already satisfied: sympy in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from torch>=1.9->monai) (1.12)\n", - "Requirement already satisfied: networkx in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from torch>=1.9->monai) (3.1)\n", - "Requirement already satisfied: jinja2 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from torch>=1.9->monai) (3.1.3)\n", - "Requirement already satisfied: nvidia-cuda-nvrtc-cu11==11.7.99 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from torch>=1.9->monai) (11.7.99)\n", - "Requirement already satisfied: nvidia-cuda-runtime-cu11==11.7.99 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from torch>=1.9->monai) (11.7.99)\n", - "Requirement already satisfied: nvidia-cuda-cupti-cu11==11.7.101 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from torch>=1.9->monai) (11.7.101)\n", - "Requirement already satisfied: nvidia-cudnn-cu11==8.5.0.96 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from torch>=1.9->monai) (8.5.0.96)\n", - "Requirement already satisfied: nvidia-cublas-cu11==11.10.3.66 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from torch>=1.9->monai) (11.10.3.66)\n", - "Requirement already satisfied: nvidia-cufft-cu11==10.9.0.58 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from torch>=1.9->monai) (10.9.0.58)\n", - "Requirement already satisfied: nvidia-curand-cu11==10.2.10.91 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from torch>=1.9->monai) (10.2.10.91)\n", - "Requirement already satisfied: nvidia-cusolver-cu11==11.4.0.1 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from torch>=1.9->monai) (11.4.0.1)\n", - "Requirement already satisfied: nvidia-cusparse-cu11==11.7.4.91 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from torch>=1.9->monai) (11.7.4.91)\n", - "Requirement already satisfied: nvidia-nccl-cu11==2.14.3 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from torch>=1.9->monai) (2.14.3)\n", - "Requirement already satisfied: nvidia-nvtx-cu11==11.7.91 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from torch>=1.9->monai) (11.7.91)\n", - "Requirement already satisfied: triton==2.0.0 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from torch>=1.9->monai) (2.0.0)\n", - "Requirement already satisfied: setuptools in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from nvidia-cublas-cu11==11.10.3.66->torch>=1.9->monai) (69.5.1)\n", - "Requirement already satisfied: wheel in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from nvidia-cublas-cu11==11.10.3.66->torch>=1.9->monai) (0.43.0)\n", - "Requirement already satisfied: cmake in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from triton==2.0.0->torch>=1.9->monai) (3.29.2)\n", - "Requirement already satisfied: lit in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from triton==2.0.0->torch>=1.9->monai) (18.1.3)\n", - "Requirement already satisfied: MarkupSafe>=2.0 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from jinja2->torch>=1.9->monai) (2.1.5)\n", - "Requirement already satisfied: mpmath>=0.19 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from sympy->torch>=1.9->monai) (1.3.0)\n" + "Requirement already satisfied: monai in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (1.4.0)\n", + "Requirement already satisfied: Pillow in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (11.1.0)\n", + "Requirement already satisfied: numpy<2.0,>=1.24 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from monai) (1.26.4)\n", + "Requirement already satisfied: torch>=1.9 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from monai) (2.5.1)\n", + "Requirement already satisfied: filelock in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from torch>=1.9->monai) (3.16.1)\n", + "Requirement already satisfied: typing-extensions>=4.8.0 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from torch>=1.9->monai) (4.12.2)\n", + "Requirement already satisfied: networkx in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from torch>=1.9->monai) (3.4.2)\n", + "Requirement already satisfied: jinja2 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from torch>=1.9->monai) (3.1.5)\n", + "Requirement already satisfied: fsspec in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from torch>=1.9->monai) (2024.12.0)\n", + "Requirement already satisfied: nvidia-cuda-nvrtc-cu12==12.4.127 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from torch>=1.9->monai) (12.4.127)\n", + "Requirement already satisfied: nvidia-cuda-runtime-cu12==12.4.127 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from torch>=1.9->monai) (12.4.127)\n", + "Requirement already satisfied: nvidia-cuda-cupti-cu12==12.4.127 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from torch>=1.9->monai) (12.4.127)\n", + "Requirement already satisfied: nvidia-cudnn-cu12==9.1.0.70 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from torch>=1.9->monai) (9.1.0.70)\n", + "Requirement already satisfied: nvidia-cublas-cu12==12.4.5.8 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from torch>=1.9->monai) (12.4.5.8)\n", + "Requirement already satisfied: nvidia-cufft-cu12==11.2.1.3 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from torch>=1.9->monai) (11.2.1.3)\n", + "Requirement already satisfied: nvidia-curand-cu12==10.3.5.147 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from torch>=1.9->monai) (10.3.5.147)\n", + "Requirement already satisfied: nvidia-cusolver-cu12==11.6.1.9 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from torch>=1.9->monai) (11.6.1.9)\n", + "Requirement already satisfied: nvidia-cusparse-cu12==12.3.1.170 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from torch>=1.9->monai) (12.3.1.170)\n", + "Requirement already satisfied: nvidia-nccl-cu12==2.21.5 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from torch>=1.9->monai) (2.21.5)\n", + "Requirement already satisfied: nvidia-nvtx-cu12==12.4.127 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from torch>=1.9->monai) (12.4.127)\n", + "Requirement already satisfied: nvidia-nvjitlink-cu12==12.4.127 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from torch>=1.9->monai) (12.4.127)\n", + "Requirement already satisfied: triton==3.1.0 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from torch>=1.9->monai) (3.1.0)\n", + "Requirement already satisfied: sympy==1.13.1 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from torch>=1.9->monai) (1.13.1)\n", + "Requirement already satisfied: mpmath<1.4,>=1.1.0 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from sympy==1.13.1->torch>=1.9->monai) (1.3.0)\n", + "Requirement already satisfied: MarkupSafe>=2.0 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from jinja2->torch>=1.9->monai) (3.0.2)\n" ] } ], @@ -174,46 +166,48 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## Download/Extract mednist_classifier_data.zip from Google Drive" + "## Download/Extract mednist_classifier_data.zip from Google Drive\n", + "\n", + "**_Note:_** Data files are now access controlled. Please first request permission to access the [shared folder on Google Drive](https://drive.google.com/drive/folders/1EONJsrwbGsS30td0hs8zl4WKjihew1Z3?usp=sharing). Please download zip file, `mednist_classifier_data.zip` in the `medmist_classifier_app` folder, to the same folder as the notebook example." ] }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 22, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Requirement already satisfied: gdown in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (5.1.0)\n", + "Requirement already satisfied: gdown in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (5.2.0)\n", "Requirement already satisfied: beautifulsoup4 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from gdown) (4.12.3)\n", - "Requirement already satisfied: filelock in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from gdown) (3.13.4)\n", - "Requirement already satisfied: requests[socks] in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from gdown) (2.31.0)\n", - "Requirement already satisfied: tqdm in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from gdown) (4.66.2)\n", - "Requirement already satisfied: soupsieve>1.2 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from beautifulsoup4->gdown) (2.5)\n", - "Requirement already satisfied: charset-normalizer<4,>=2 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from requests[socks]->gdown) (3.3.2)\n", - "Requirement already satisfied: idna<4,>=2.5 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from requests[socks]->gdown) (3.7)\n", - "Requirement already satisfied: urllib3<3,>=1.21.1 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from requests[socks]->gdown) (2.2.1)\n", - "Requirement already satisfied: certifi>=2017.4.17 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from requests[socks]->gdown) (2024.2.2)\n", + "Requirement already satisfied: filelock in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from gdown) (3.16.1)\n", + "Requirement already satisfied: requests[socks] in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from gdown) (2.32.3)\n", + "Requirement already satisfied: tqdm in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from gdown) (4.67.1)\n", + "Requirement already satisfied: soupsieve>1.2 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from beautifulsoup4->gdown) (2.6)\n", + "Requirement already satisfied: charset-normalizer<4,>=2 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from requests[socks]->gdown) (3.4.1)\n", + "Requirement already satisfied: idna<4,>=2.5 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from requests[socks]->gdown) (3.10)\n", + "Requirement already satisfied: urllib3<3,>=1.21.1 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from requests[socks]->gdown) (2.3.0)\n", + "Requirement already satisfied: certifi>=2017.4.17 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from requests[socks]->gdown) (2024.12.14)\n", "Requirement already satisfied: PySocks!=1.5.7,>=1.5.6 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from requests[socks]->gdown) (1.7.1)\n", "Downloading...\n", - "From (original): https://drive.google.com/uc?id=1yJ4P-xMNEfN6lIOq_u6x1eMAq1_MJu-E\n", - "From (redirected): https://drive.google.com/uc?id=1yJ4P-xMNEfN6lIOq_u6x1eMAq1_MJu-E&confirm=t&uuid=72f2b083-c6ce-44ba-aafd-19c9bd097d63\n", + "From (original): https://drive.google.com/uc?id=1IoEJZFFixcNtPPKeKZfD_xSJSFQCbawl\n", + "From (redirected): https://drive.google.com/uc?id=1IoEJZFFixcNtPPKeKZfD_xSJSFQCbawl&confirm=t&uuid=d65df8b8-9813-4fd7-9d5c-c3a7a18fbab0\n", "To: /home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/mednist_classifier_data.zip\n", - "100%|██████████████████████████████████████| 28.6M/28.6M [00:00<00:00, 34.3MB/s]\n" + "100%|██████████████████████████████████████| 28.6M/28.6M [00:00<00:00, 36.7MB/s]\n" ] } ], "source": [ "# Download mednist_classifier_data.zip\n", - "!pip install gdown \n", - "!gdown \"https://drive.google.com/uc?id=1yJ4P-xMNEfN6lIOq_u6x1eMAq1_MJu-E\"" + "!pip install gdown\n", + "!gdown \"https://drive.google.com/uc?id=1IoEJZFFixcNtPPKeKZfD_xSJSFQCbawl\" # Redundant if already manually downloaded the file to avoid permission issue." ] }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 23, "metadata": {}, "outputs": [ { @@ -228,7 +222,7 @@ } ], "source": [ - "# Unzip the downloaded mednist_classifier_data.zip from the web browser or using gdown, and set up folders\n", + "# Unzip the downloaded mednist_classifier_data.zip from the web browser or using gdown, to the notebook/turotials folder, and set up folders\n", "input_folder = \"input\"\n", "output_folder = \"output\"\n", "models_folder = \"models\"\n", @@ -253,7 +247,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 24, "metadata": {}, "outputs": [ { @@ -289,23 +283,23 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 25, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "[2024-04-23 15:33:53,163] [INFO] (common) - Downloading CLI manifest file...\n", - "[2024-04-23 15:33:53,444] [DEBUG] (common) - Validating CLI manifest file...\n", - "[2024-04-23 15:33:53,446] [INFO] (packager.parameters) - Application: /home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/source/examples/apps/mednist_classifier_monaideploy/mednist_classifier_monaideploy.py\n", - "[2024-04-23 15:33:53,446] [INFO] (packager.parameters) - Detected application type: Python File\n", - "[2024-04-23 15:33:53,447] [INFO] (packager) - Scanning for models in /home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/models...\n", - "[2024-04-23 15:33:53,447] [DEBUG] (packager) - Model model=/home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/models/model added.\n", - "[2024-04-23 15:33:53,447] [INFO] (packager) - Reading application configuration from /home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/source/examples/apps/mednist_classifier_monaideploy/app.yaml...\n", - "[2024-04-23 15:33:53,453] [INFO] (packager) - Generating app.json...\n", - "[2024-04-23 15:33:53,453] [INFO] (packager) - Generating pkg.json...\n", - "[2024-04-23 15:33:53,464] [DEBUG] (common) - \n", + "[2025-01-16 15:25:15,655] [INFO] (common) - Downloading CLI manifest file...\n", + "[2025-01-16 15:25:15,916] [DEBUG] (common) - Validating CLI manifest file...\n", + "[2025-01-16 15:25:15,917] [INFO] (packager.parameters) - Application: /home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/source/examples/apps/mednist_classifier_monaideploy/mednist_classifier_monaideploy.py\n", + "[2025-01-16 15:25:15,917] [INFO] (packager.parameters) - Detected application type: Python File\n", + "[2025-01-16 15:25:15,918] [INFO] (packager) - Scanning for models in /home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/models...\n", + "[2025-01-16 15:25:15,918] [DEBUG] (packager) - Model model=/home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/models/model added.\n", + "[2025-01-16 15:25:15,918] [INFO] (packager) - Reading application configuration from /home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/source/examples/apps/mednist_classifier_monaideploy/app.yaml...\n", + "[2025-01-16 15:25:15,924] [INFO] (packager) - Generating app.json...\n", + "[2025-01-16 15:25:15,924] [INFO] (packager) - Generating pkg.json...\n", + "[2025-01-16 15:25:15,928] [DEBUG] (common) - \n", "=============== Begin app.json ===============\n", "{\n", " \"apiVersion\": \"1.0.0\",\n", @@ -333,14 +327,14 @@ " },\n", " \"readiness\": null,\n", " \"sdk\": \"monai-deploy\",\n", - " \"sdkVersion\": \"0.5.1\",\n", + " \"sdkVersion\": \"2.0.0\",\n", " \"timeout\": 0,\n", " \"version\": 1.0,\n", " \"workingDirectory\": \"/var/holoscan\"\n", "}\n", "================ End app.json ================\n", " \n", - "[2024-04-23 15:33:53,465] [DEBUG] (common) - \n", + "[2025-01-16 15:25:15,928] [DEBUG] (common) - \n", "=============== Begin pkg.json ===============\n", "{\n", " \"apiVersion\": \"1.0.0\",\n", @@ -360,15 +354,116 @@ "}\n", "================ End pkg.json ================\n", " \n", - "[2024-04-23 15:33:53,510] [DEBUG] (packager.builder) - \n", + "[2025-01-16 15:25:15,966] [DEBUG] (packager.builder) - \n", + "========== Begin Build Parameters ==========\n", + "{'additional_lib_paths': '',\n", + " 'app_config_file_path': PosixPath('/home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/source/examples/apps/mednist_classifier_monaideploy/app.yaml'),\n", + " 'app_dir': PosixPath('/opt/holoscan/app'),\n", + " 'app_json': '/etc/holoscan/app.json',\n", + " 'application': PosixPath('/home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/source/examples/apps/mednist_classifier_monaideploy/mednist_classifier_monaideploy.py'),\n", + " 'application_directory': PosixPath('/home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/source/examples/apps/mednist_classifier_monaideploy'),\n", + " 'application_type': 'PythonFile',\n", + " 'build_cache': PosixPath('/home/mqin/.holoscan_build_cache'),\n", + " 'cmake_args': '',\n", + " 'command': '[\"python3\", '\n", + " '\"/opt/holoscan/app/mednist_classifier_monaideploy.py\"]',\n", + " 'command_filename': 'mednist_classifier_monaideploy.py',\n", + " 'config_file_path': PosixPath('/var/holoscan/app.yaml'),\n", + " 'docs_dir': PosixPath('/opt/holoscan/docs'),\n", + " 'full_input_path': PosixPath('/var/holoscan/input'),\n", + " 'full_output_path': PosixPath('/var/holoscan/output'),\n", + " 'gid': 1000,\n", + " 'holoscan_sdk_version': '2.8.0',\n", + " 'includes': [],\n", + " 'input_dir': 'input/',\n", + " 'lib_dir': PosixPath('/opt/holoscan/lib'),\n", + " 'logs_dir': PosixPath('/var/holoscan/logs'),\n", + " 'models': {'model': PosixPath('/home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/models/model')},\n", + " 'models_dir': PosixPath('/opt/holoscan/models'),\n", + " 'monai_deploy_app_sdk_version': '2.0.0',\n", + " 'no_cache': False,\n", + " 'output_dir': 'output/',\n", + " 'pip_packages': None,\n", + " 'pkg_json': '/etc/holoscan/pkg.json',\n", + " 'requirements_file_path': PosixPath('/home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/source/examples/apps/mednist_classifier_monaideploy/requirements.txt'),\n", + " 'sdk': ,\n", + " 'sdk_type': 'monai-deploy',\n", + " 'tarball_output': None,\n", + " 'timeout': 0,\n", + " 'title': 'MONAI Deploy App Package - MedNIST Classifier App',\n", + " 'uid': 1000,\n", + " 'username': 'holoscan',\n", + " 'version': 1.0,\n", + " 'working_dir': PosixPath('/var/holoscan')}\n", + "=========== End Build Parameters ===========\n", + "\n", + "[2025-01-16 15:25:15,967] [DEBUG] (packager.builder) - \n", + "========== Begin Platform Parameters ==========\n", + "{'base_image': 'nvcr.io/nvidia/cuda:12.6.0-runtime-ubuntu22.04',\n", + " 'build_image': None,\n", + " 'cuda_deb_arch': 'x86_64',\n", + " 'custom_base_image': False,\n", + " 'custom_holoscan_sdk': False,\n", + " 'custom_monai_deploy_sdk': False,\n", + " 'gpu_type': 'dgpu',\n", + " 'holoscan_deb_arch': 'amd64',\n", + " 'holoscan_sdk_file': '2.8.0',\n", + " 'holoscan_sdk_filename': '2.8.0',\n", + " 'monai_deploy_sdk_file': None,\n", + " 'monai_deploy_sdk_filename': None,\n", + " 'tag': 'mednist_app:1.0',\n", + " 'target_arch': 'x86_64'}\n", + "=========== End Platform Parameters ===========\n", + "\n", + "[2025-01-16 15:25:16,013] [DEBUG] (packager.builder) - \n", "========== Begin Dockerfile ==========\n", "\n", + "ARG GPU_TYPE=dgpu\n", + "\n", + "\n", "\n", - "FROM nvcr.io/nvidia/clara-holoscan/holoscan:v2.0.0-dgpu\n", "\n", + "FROM nvcr.io/nvidia/cuda:12.6.0-runtime-ubuntu22.04 AS base\n", + "\n", + "RUN apt-get update \\\n", + " && apt-get install -y --no-install-recommends --no-install-suggests \\\n", + " curl \\\n", + " jq \\\n", + " && rm -rf /var/lib/apt/lists/*\n", + "\n", + "\n", + "\n", + "\n", + "# FROM base AS mofed-installer\n", + "# ARG MOFED_VERSION=23.10-2.1.3.1\n", + "\n", + "# # In a container, we only need to install the user space libraries, though the drivers are still\n", + "# # needed on the host.\n", + "# # Note: MOFED's installation is not easily portable, so we can't copy the output of this stage\n", + "# # to our final stage, but must inherit from it. For that reason, we keep track of the build/install\n", + "# # only dependencies in the `MOFED_DEPS` variable (parsing the output of `--check-deps-only`) to\n", + "# # remove them in that same layer, to ensure they are not propagated in the final image.\n", + "# WORKDIR /opt/nvidia/mofed\n", + "# ARG MOFED_INSTALL_FLAGS=\"--dpdk --with-mft --user-space-only --force --without-fw-update\"\n", + "# RUN UBUNTU_VERSION=$(cat /etc/lsb-release | grep DISTRIB_RELEASE | cut -d= -f2) \\\n", + "# && OFED_PACKAGE=\"MLNX_OFED_LINUX-${MOFED_VERSION}-ubuntu${UBUNTU_VERSION}-$(uname -m)\" \\\n", + "# && curl -S -# -o ${OFED_PACKAGE}.tgz -L \\\n", + "# https://www.mellanox.com/downloads/ofed/MLNX_OFED-${MOFED_VERSION}/${OFED_PACKAGE}.tgz \\\n", + "# && tar xf ${OFED_PACKAGE}.tgz \\\n", + "# && MOFED_INSTALLER=$(find . -name mlnxofedinstall -type f -executable -print) \\\n", + "# && MOFED_DEPS=$(${MOFED_INSTALLER} ${MOFED_INSTALL_FLAGS} --check-deps-only 2>/dev/null | tail -n1 | cut -d' ' -f3-) \\\n", + "# && apt-get update \\\n", + "# && apt-get install --no-install-recommends -y ${MOFED_DEPS} \\\n", + "# && ${MOFED_INSTALLER} ${MOFED_INSTALL_FLAGS} \\\n", + "# && rm -r * \\\n", + "# && apt-get remove -y ${MOFED_DEPS} && apt-get autoremove -y \\\n", + "# && rm -rf /var/lib/apt/lists/*\n", + "\n", + "FROM base AS release\n", "ENV DEBIAN_FRONTEND=noninteractive\n", "ENV TERM=xterm-256color\n", "\n", + "ARG GPU_TYPE\n", "ARG UNAME\n", "ARG UID\n", "ARG GID\n", @@ -380,15 +475,14 @@ " && mkdir -p /var/holoscan/input \\\n", " && mkdir -p /var/holoscan/output\n", "\n", - "LABEL base=\"nvcr.io/nvidia/clara-holoscan/holoscan:v2.0.0-dgpu\"\n", + "LABEL base=\"nvcr.io/nvidia/cuda:12.6.0-runtime-ubuntu22.04\"\n", "LABEL tag=\"mednist_app:1.0\"\n", "LABEL org.opencontainers.image.title=\"MONAI Deploy App Package - MedNIST Classifier App\"\n", "LABEL org.opencontainers.image.version=\"1.0\"\n", - "LABEL org.nvidia.holoscan=\"2.0.0\"\n", - "LABEL org.monai.deploy.app-sdk=\"0.5.1\"\n", + "LABEL org.nvidia.holoscan=\"2.8.0\"\n", "\n", + "LABEL org.monai.deploy.app-sdk=\"2.0.0\"\n", "\n", - "ENV HOLOSCAN_ENABLE_HEALTH_CHECK=true\n", "ENV HOLOSCAN_INPUT_PATH=/var/holoscan/input\n", "ENV HOLOSCAN_OUTPUT_PATH=/var/holoscan/output\n", "ENV HOLOSCAN_WORKDIR=/var/holoscan\n", @@ -400,21 +494,40 @@ "ENV HOLOSCAN_APP_MANIFEST_PATH=/etc/holoscan/app.json\n", "ENV HOLOSCAN_PKG_MANIFEST_PATH=/etc/holoscan/pkg.json\n", "ENV HOLOSCAN_LOGS_PATH=/var/holoscan/logs\n", - "ENV PATH=/root/.local/bin:/opt/nvidia/holoscan:$PATH\n", - "ENV LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/libtorch/1.13.1/lib/:/opt/nvidia/holoscan/lib\n", + "ENV HOLOSCAN_VERSION=2.8.0\n", "\n", - "RUN apt-get update \\\n", - " && apt-get install -y curl jq \\\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "# If torch is installed, we can skip installing Python\n", + "ENV PYTHON_VERSION=3.10.6-1~22.04\n", + "ENV PYTHON_PIP_VERSION=22.0.2+dfsg-*\n", + "\n", + "RUN apt update \\\n", + " && apt-get install -y --no-install-recommends --no-install-suggests \\\n", + " python3-minimal=${PYTHON_VERSION} \\\n", + " libpython3-stdlib=${PYTHON_VERSION} \\\n", + " python3=${PYTHON_VERSION} \\\n", + " python3-venv=${PYTHON_VERSION} \\\n", + " python3-pip=${PYTHON_PIP_VERSION} \\\n", " && rm -rf /var/lib/apt/lists/*\n", "\n", - "ENV PYTHONPATH=\"/opt/holoscan/app:$PYTHONPATH\"\n", + "\n", + "\n", + "\n", + "\n", "\n", "\n", "RUN groupadd -f -g $GID $UNAME\n", "RUN useradd -rm -d /home/$UNAME -s /bin/bash -g $GID -G sudo -u $UID $UNAME\n", - "RUN chown -R holoscan /var/holoscan \n", - "RUN chown -R holoscan /var/holoscan/input \n", - "RUN chown -R holoscan /var/holoscan/output \n", + "RUN chown -R holoscan /var/holoscan && \\\n", + " chown -R holoscan /var/holoscan/input && \\\n", + " chown -R holoscan /var/holoscan/output\n", "\n", "# Set the working directory\n", "WORKDIR /var/holoscan\n", @@ -423,431 +536,216 @@ "COPY ./tools /var/holoscan/tools\n", "RUN chmod +x /var/holoscan/tools\n", "\n", - "\n", - "# Copy gRPC health probe\n", + "# Set the working directory\n", + "WORKDIR /var/holoscan\n", "\n", "USER $UNAME\n", "\n", - "ENV PATH=/root/.local/bin:/home/holoscan/.local/bin:/opt/nvidia/holoscan:$PATH\n", + "ENV PATH=/home/${UNAME}/.local/bin:/opt/nvidia/holoscan/bin:$PATH\n", + "ENV LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/${UNAME}/.local/lib/python3.10/site-packages/holoscan/lib\n", "\n", "COPY ./pip/requirements.txt /tmp/requirements.txt\n", "\n", "RUN pip install --upgrade pip\n", "RUN pip install --no-cache-dir --user -r /tmp/requirements.txt\n", "\n", - " \n", - "# MONAI Deploy\n", "\n", - "# Copy user-specified MONAI Deploy SDK file\n", - "COPY ./monai_deploy_app_sdk-0.5.1+20.gb869749.dirty-py3-none-any.whl /tmp/monai_deploy_app_sdk-0.5.1+20.gb869749.dirty-py3-none-any.whl\n", - "RUN pip install /tmp/monai_deploy_app_sdk-0.5.1+20.gb869749.dirty-py3-none-any.whl\n", + "# Install MONAI Deploy App SDK\n", + "\n", + "# Install MONAI Deploy from PyPI org\n", + "RUN pip install monai-deploy-app-sdk==2.0.0\n", "\n", "\n", "COPY ./models /opt/holoscan/models\n", "\n", + "\n", "COPY ./map/app.json /etc/holoscan/app.json\n", "COPY ./app.config /var/holoscan/app.yaml\n", "COPY ./map/pkg.json /etc/holoscan/pkg.json\n", "\n", "COPY ./app /opt/holoscan/app\n", "\n", + "\n", "ENTRYPOINT [\"/var/holoscan/tools\"]\n", "=========== End Dockerfile ===========\n", "\n", - "[2024-04-23 15:33:53,510] [INFO] (packager.builder) - \n", + "[2025-01-16 15:25:16,014] [INFO] (packager.builder) - \n", "===============================================================================\n", "Building image for: x64-workstation\n", " Architecture: linux/amd64\n", - " Base Image: nvcr.io/nvidia/clara-holoscan/holoscan:v2.0.0-dgpu\n", + " Base Image: nvcr.io/nvidia/cuda:12.6.0-runtime-ubuntu22.04\n", " Build Image: N/A\n", " Cache: Enabled\n", " Configuration: dgpu\n", - " Holoscan SDK Package: pypi.org\n", - " MONAI Deploy App SDK Package: /home/mqin/src/monai-deploy-app-sdk/dist/monai_deploy_app_sdk-0.5.1+20.gb869749.dirty-py3-none-any.whl\n", + " Holoscan SDK Package: 2.8.0\n", + " MONAI Deploy App SDK Package: N/A\n", " gRPC Health Probe: N/A\n", - " SDK Version: 2.0.0\n", + " SDK Version: 2.8.0\n", " SDK: monai-deploy\n", " Tag: mednist_app-x64-workstation-dgpu-linux-amd64:1.0\n", + " Included features/dependencies: N/A\n", " \n", - "[2024-04-23 15:33:53,781] [INFO] (common) - Using existing Docker BuildKit builder `holoscan_app_builder`\n", - "[2024-04-23 15:33:53,782] [DEBUG] (packager.builder) - Building Holoscan Application Package: tag=mednist_app-x64-workstation-dgpu-linux-amd64:1.0\n", + "[2025-01-16 15:25:16,839] [INFO] (common) - Using existing Docker BuildKit builder `holoscan_app_builder`\n", + "[2025-01-16 15:25:16,840] [DEBUG] (packager.builder) - Building Holoscan Application Package: tag=mednist_app-x64-workstation-dgpu-linux-amd64:1.0\n", "#0 building with \"holoscan_app_builder\" instance using docker-container driver\n", "\n", "#1 [internal] load build definition from Dockerfile\n", - "#1 transferring dockerfile: 2.67kB done\n", - "#1 DONE 0.0s\n", + "#1 transferring dockerfile:\n", + "#1 transferring dockerfile: 4.57kB 0.0s done\n", + "#1 DONE 0.1s\n", "\n", - "#2 [internal] load metadata for nvcr.io/nvidia/clara-holoscan/holoscan:v2.0.0-dgpu\n", - "#2 DONE 0.1s\n", + "#2 [auth] nvidia/cuda:pull token for nvcr.io\n", + "#2 DONE 0.0s\n", "\n", - "#3 [internal] load .dockerignore\n", - "#3 transferring context: 1.79kB done\n", - "#3 DONE 0.0s\n", + "#3 [internal] load metadata for nvcr.io/nvidia/cuda:12.6.0-runtime-ubuntu22.04\n", + "#3 DONE 0.4s\n", "\n", - "#4 [internal] load build context\n", - "#4 DONE 0.0s\n", + "#4 [internal] load .dockerignore\n", + "#4 transferring context: 1.79kB done\n", + "#4 DONE 0.1s\n", "\n", - "#5 importing cache manifest from local:3840576277762201667\n", - "#5 inferred cache manifest type: application/vnd.oci.image.index.v1+json done\n", - "#5 DONE 0.0s\n", + "#5 importing cache manifest from nvcr.io/nvidia/cuda:12.6.0-runtime-ubuntu22.04\n", + "#5 ...\n", "\n", - "#6 [ 1/21] FROM nvcr.io/nvidia/clara-holoscan/holoscan:v2.0.0-dgpu@sha256:20adbccd2c7b12dfb1798f6953f071631c3b85cd337858a7506f8e420add6d4a\n", - "#6 resolve nvcr.io/nvidia/clara-holoscan/holoscan:v2.0.0-dgpu@sha256:20adbccd2c7b12dfb1798f6953f071631c3b85cd337858a7506f8e420add6d4a 0.0s done\n", + "#6 [internal] load build context\n", "#6 DONE 0.0s\n", "\n", - "#7 importing cache manifest from nvcr.io/nvidia/clara-holoscan/holoscan:v2.0.0-dgpu\n", - "#7 inferred cache manifest type: application/vnd.docker.distribution.manifest.list.v2+json done\n", - "#7 DONE 0.4s\n", + "#7 importing cache manifest from local:17114664432413636321\n", + "#7 inferred cache manifest type: application/vnd.oci.image.index.v1+json done\n", + "#7 DONE 0.0s\n", + "\n", + "#8 [base 1/2] FROM nvcr.io/nvidia/cuda:12.6.0-runtime-ubuntu22.04@sha256:22fc009e5cea0b8b91d94c99fdd419d2366810b5ea835e47b8343bc15800c186\n", + "#8 resolve nvcr.io/nvidia/cuda:12.6.0-runtime-ubuntu22.04@sha256:22fc009e5cea0b8b91d94c99fdd419d2366810b5ea835e47b8343bc15800c186 0.0s done\n", + "#8 DONE 0.1s\n", "\n", - "#4 [internal] load build context\n", - "#4 transferring context: 28.73MB 0.2s done\n", - "#4 DONE 0.2s\n", + "#5 importing cache manifest from nvcr.io/nvidia/cuda:12.6.0-runtime-ubuntu22.04\n", + "#5 inferred cache manifest type: application/vnd.docker.distribution.manifest.list.v2+json done\n", + "#5 DONE 0.8s\n", "\n", - "#8 [10/21] COPY ./tools /var/holoscan/tools\n", - "#8 CACHED\n", + "#6 [internal] load build context\n", + "#6 transferring context: 28.60MB 0.2s done\n", + "#6 DONE 0.3s\n", "\n", - "#9 [11/21] RUN chmod +x /var/holoscan/tools\n", + "#9 [release 10/18] COPY ./pip/requirements.txt /tmp/requirements.txt\n", "#9 CACHED\n", "\n", - "#10 [ 5/21] RUN useradd -rm -d /home/holoscan -s /bin/bash -g 1000 -G sudo -u 1000 holoscan\n", + "#10 [release 6/18] WORKDIR /var/holoscan\n", "#10 CACHED\n", "\n", - "#11 [ 4/21] RUN groupadd -f -g 1000 holoscan\n", + "#11 [release 8/18] RUN chmod +x /var/holoscan/tools\n", "#11 CACHED\n", "\n", - "#12 [ 6/21] RUN chown -R holoscan /var/holoscan\n", + "#12 [release 2/18] RUN apt update && apt-get install -y --no-install-recommends --no-install-suggests python3-minimal=3.10.6-1~22.04 libpython3-stdlib=3.10.6-1~22.04 python3=3.10.6-1~22.04 python3-venv=3.10.6-1~22.04 python3-pip=22.0.2+dfsg-* && rm -rf /var/lib/apt/lists/*\n", "#12 CACHED\n", "\n", - "#13 [ 2/21] RUN mkdir -p /etc/holoscan/ && mkdir -p /opt/holoscan/ && mkdir -p /var/holoscan && mkdir -p /opt/holoscan/app && mkdir -p /var/holoscan/input && mkdir -p /var/holoscan/output\n", + "#13 [release 5/18] RUN chown -R holoscan /var/holoscan && chown -R holoscan /var/holoscan/input && chown -R holoscan /var/holoscan/output\n", "#13 CACHED\n", "\n", - "#14 [ 9/21] WORKDIR /var/holoscan\n", + "#14 [base 2/2] RUN apt-get update && apt-get install -y --no-install-recommends --no-install-suggests curl jq && rm -rf /var/lib/apt/lists/*\n", "#14 CACHED\n", "\n", - "#15 [ 3/21] RUN apt-get update && apt-get install -y curl jq && rm -rf /var/lib/apt/lists/*\n", + "#15 [release 1/18] RUN mkdir -p /etc/holoscan/ && mkdir -p /opt/holoscan/ && mkdir -p /var/holoscan && mkdir -p /opt/holoscan/app && mkdir -p /var/holoscan/input && mkdir -p /var/holoscan/output\n", "#15 CACHED\n", "\n", - "#16 [ 8/21] RUN chown -R holoscan /var/holoscan/output\n", + "#16 [release 4/18] RUN useradd -rm -d /home/holoscan -s /bin/bash -g 1000 -G sudo -u 1000 holoscan\n", "#16 CACHED\n", "\n", - "#17 [ 7/21] RUN chown -R holoscan /var/holoscan/input\n", + "#17 [release 7/18] COPY ./tools /var/holoscan/tools\n", "#17 CACHED\n", "\n", - "#18 [12/21] COPY ./pip/requirements.txt /tmp/requirements.txt\n", + "#18 [release 12/18] RUN pip install --no-cache-dir --user -r /tmp/requirements.txt\n", "#18 CACHED\n", "\n", - "#19 [13/21] RUN pip install --upgrade pip\n", + "#19 [release 3/18] RUN groupadd -f -g 1000 holoscan\n", "#19 CACHED\n", "\n", - "#20 [14/21] RUN pip install --no-cache-dir --user -r /tmp/requirements.txt\n", - "#20 0.770 Collecting monai>=1.2.0 (from -r /tmp/requirements.txt (line 1))\n", - "#20 0.845 Downloading monai-1.3.0-202310121228-py3-none-any.whl.metadata (10 kB)\n", - "#20 1.064 Collecting Pillow>=8.4.0 (from -r /tmp/requirements.txt (line 2))\n", - "#20 1.068 Downloading pillow-10.3.0-cp310-cp310-manylinux_2_28_x86_64.whl.metadata (9.2 kB)\n", - "#20 1.168 Collecting pydicom>=2.3.0 (from -r /tmp/requirements.txt (line 3))\n", - "#20 1.179 Downloading pydicom-2.4.4-py3-none-any.whl.metadata (7.8 kB)\n", - "#20 1.292 Collecting highdicom>=0.18.2 (from -r /tmp/requirements.txt (line 4))\n", - "#20 1.299 Downloading highdicom-0.22.0-py3-none-any.whl.metadata (3.8 kB)\n", - "#20 1.417 Collecting SimpleITK>=2.0.0 (from -r /tmp/requirements.txt (line 5))\n", - "#20 1.422 Downloading SimpleITK-2.3.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (7.9 kB)\n", - "#20 1.424 Requirement already satisfied: setuptools>=59.5.0 in /usr/lib/python3/dist-packages (from -r /tmp/requirements.txt (line 6)) (59.6.0)\n", - "#20 1.492 Requirement already satisfied: numpy>=1.20 in /usr/local/lib/python3.10/dist-packages (from monai>=1.2.0->-r /tmp/requirements.txt (line 1)) (1.23.5)\n", - "#20 1.536 Collecting torch>=1.9 (from monai>=1.2.0->-r /tmp/requirements.txt (line 1))\n", - "#20 1.541 Downloading torch-2.2.2-cp310-cp310-manylinux1_x86_64.whl.metadata (26 kB)\n", - "#20 1.728 Collecting pillow-jpls>=1.0 (from highdicom>=0.18.2->-r /tmp/requirements.txt (line 4))\n", - "#20 1.808 Downloading pillow_jpls-1.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (3.1 kB)\n", - "#20 1.882 Collecting filelock (from torch>=1.9->monai>=1.2.0->-r /tmp/requirements.txt (line 1))\n", - "#20 1.886 Downloading filelock-3.13.4-py3-none-any.whl.metadata (2.8 kB)\n", - "#20 1.912 Collecting typing-extensions>=4.8.0 (from torch>=1.9->monai>=1.2.0->-r /tmp/requirements.txt (line 1))\n", - "#20 1.915 Downloading typing_extensions-4.11.0-py3-none-any.whl.metadata (3.0 kB)\n", - "#20 1.942 Collecting sympy (from torch>=1.9->monai>=1.2.0->-r /tmp/requirements.txt (line 1))\n", - "#20 1.946 Downloading sympy-1.12-py3-none-any.whl.metadata (12 kB)\n", - "#20 1.976 Collecting networkx (from torch>=1.9->monai>=1.2.0->-r /tmp/requirements.txt (line 1))\n", - "#20 1.980 Downloading networkx-3.3-py3-none-any.whl.metadata (5.1 kB)\n", - "#20 1.982 Requirement already satisfied: jinja2 in /usr/local/lib/python3.10/dist-packages (from torch>=1.9->monai>=1.2.0->-r /tmp/requirements.txt (line 1)) (3.1.3)\n", - "#20 2.021 Collecting fsspec (from torch>=1.9->monai>=1.2.0->-r /tmp/requirements.txt (line 1))\n", - "#20 2.025 Downloading fsspec-2024.3.1-py3-none-any.whl.metadata (6.8 kB)\n", - "#20 2.045 Collecting nvidia-cuda-nvrtc-cu12==12.1.105 (from torch>=1.9->monai>=1.2.0->-r /tmp/requirements.txt (line 1))\n", - "#20 2.050 Downloading nvidia_cuda_nvrtc_cu12-12.1.105-py3-none-manylinux1_x86_64.whl.metadata (1.5 kB)\n", - "#20 2.073 Collecting nvidia-cuda-runtime-cu12==12.1.105 (from torch>=1.9->monai>=1.2.0->-r /tmp/requirements.txt (line 1))\n", - "#20 2.077 Downloading nvidia_cuda_runtime_cu12-12.1.105-py3-none-manylinux1_x86_64.whl.metadata (1.5 kB)\n", - "#20 2.095 Collecting nvidia-cuda-cupti-cu12==12.1.105 (from torch>=1.9->monai>=1.2.0->-r /tmp/requirements.txt (line 1))\n", - "#20 2.099 Downloading nvidia_cuda_cupti_cu12-12.1.105-py3-none-manylinux1_x86_64.whl.metadata (1.6 kB)\n", - "#20 2.117 Collecting nvidia-cudnn-cu12==8.9.2.26 (from torch>=1.9->monai>=1.2.0->-r /tmp/requirements.txt (line 1))\n", - "#20 2.120 Downloading nvidia_cudnn_cu12-8.9.2.26-py3-none-manylinux1_x86_64.whl.metadata (1.6 kB)\n", - "#20 2.136 Collecting nvidia-cublas-cu12==12.1.3.1 (from torch>=1.9->monai>=1.2.0->-r /tmp/requirements.txt (line 1))\n", - "#20 2.139 Downloading nvidia_cublas_cu12-12.1.3.1-py3-none-manylinux1_x86_64.whl.metadata (1.5 kB)\n", - "#20 2.155 Collecting nvidia-cufft-cu12==11.0.2.54 (from torch>=1.9->monai>=1.2.0->-r /tmp/requirements.txt (line 1))\n", - "#20 2.158 Downloading nvidia_cufft_cu12-11.0.2.54-py3-none-manylinux1_x86_64.whl.metadata (1.5 kB)\n", - "#20 2.172 Collecting nvidia-curand-cu12==10.3.2.106 (from torch>=1.9->monai>=1.2.0->-r /tmp/requirements.txt (line 1))\n", - "#20 2.175 Downloading nvidia_curand_cu12-10.3.2.106-py3-none-manylinux1_x86_64.whl.metadata (1.5 kB)\n", - "#20 2.193 Collecting nvidia-cusolver-cu12==11.4.5.107 (from torch>=1.9->monai>=1.2.0->-r /tmp/requirements.txt (line 1))\n", - "#20 2.197 Downloading nvidia_cusolver_cu12-11.4.5.107-py3-none-manylinux1_x86_64.whl.metadata (1.6 kB)\n", - "#20 2.214 Collecting nvidia-cusparse-cu12==12.1.0.106 (from torch>=1.9->monai>=1.2.0->-r /tmp/requirements.txt (line 1))\n", - "#20 2.218 Downloading nvidia_cusparse_cu12-12.1.0.106-py3-none-manylinux1_x86_64.whl.metadata (1.6 kB)\n", - "#20 2.233 Collecting nvidia-nccl-cu12==2.19.3 (from torch>=1.9->monai>=1.2.0->-r /tmp/requirements.txt (line 1))\n", - "#20 2.238 Downloading nvidia_nccl_cu12-2.19.3-py3-none-manylinux1_x86_64.whl.metadata (1.8 kB)\n", - "#20 2.258 Collecting nvidia-nvtx-cu12==12.1.105 (from torch>=1.9->monai>=1.2.0->-r /tmp/requirements.txt (line 1))\n", - "#20 2.262 Downloading nvidia_nvtx_cu12-12.1.105-py3-none-manylinux1_x86_64.whl.metadata (1.7 kB)\n", - "#20 2.286 Collecting triton==2.2.0 (from torch>=1.9->monai>=1.2.0->-r /tmp/requirements.txt (line 1))\n", - "#20 2.291 Downloading triton-2.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (1.4 kB)\n", - "#20 2.327 Collecting nvidia-nvjitlink-cu12 (from nvidia-cusolver-cu12==11.4.5.107->torch>=1.9->monai>=1.2.0->-r /tmp/requirements.txt (line 1))\n", - "#20 2.336 Downloading nvidia_nvjitlink_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)\n", - "#20 2.404 Requirement already satisfied: MarkupSafe>=2.0 in /usr/local/lib/python3.10/dist-packages (from jinja2->torch>=1.9->monai>=1.2.0->-r /tmp/requirements.txt (line 1)) (2.1.3)\n", - "#20 2.442 Collecting mpmath>=0.19 (from sympy->torch>=1.9->monai>=1.2.0->-r /tmp/requirements.txt (line 1))\n", - "#20 2.446 Downloading mpmath-1.3.0-py3-none-any.whl.metadata (8.6 kB)\n", - "#20 2.469 Downloading monai-1.3.0-202310121228-py3-none-any.whl (1.3 MB)\n", - "#20 2.504 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.3/1.3 MB 48.0 MB/s eta 0:00:00\n", - "#20 2.510 Downloading pillow-10.3.0-cp310-cp310-manylinux_2_28_x86_64.whl (4.5 MB)\n", - "#20 2.559 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4.5/4.5 MB 104.0 MB/s eta 0:00:00\n", - "#20 2.683 Downloading pydicom-2.4.4-py3-none-any.whl (1.8 MB)\n", - "#20 2.704 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.8/1.8 MB 104.8 MB/s eta 0:00:00\n", - "#20 2.710 Downloading highdicom-0.22.0-py3-none-any.whl (825 kB)\n", - "#20 2.719 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 825.0/825.0 kB 133.9 MB/s eta 0:00:00\n", - "#20 2.728 Downloading SimpleITK-2.3.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (52.7 MB)\n", - "#20 3.239 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 52.7/52.7 MB 115.0 MB/s eta 0:00:00\n", - "#20 3.245 Downloading pillow_jpls-1.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (305 kB)\n", - "#20 3.249 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 305.6/305.6 kB 225.9 MB/s eta 0:00:00\n", - "#20 3.254 Downloading torch-2.2.2-cp310-cp310-manylinux1_x86_64.whl (755.5 MB)\n", - "#20 10.47 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 755.5/755.5 MB 116.7 MB/s eta 0:00:00\n", - "#20 10.48 Downloading nvidia_cublas_cu12-12.1.3.1-py3-none-manylinux1_x86_64.whl (410.6 MB)\n", - "#20 14.42 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 410.6/410.6 MB 113.5 MB/s eta 0:00:00\n", - "#20 14.43 Downloading nvidia_cuda_cupti_cu12-12.1.105-py3-none-manylinux1_x86_64.whl (14.1 MB)\n", - "#20 14.59 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 14.1/14.1 MB 82.1 MB/s eta 0:00:00\n", - "#20 14.60 Downloading nvidia_cuda_nvrtc_cu12-12.1.105-py3-none-manylinux1_x86_64.whl (23.7 MB)\n", - "#20 14.90 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 23.7/23.7 MB 56.1 MB/s eta 0:00:00\n", - "#20 14.90 Downloading nvidia_cuda_runtime_cu12-12.1.105-py3-none-manylinux1_x86_64.whl (823 kB)\n", - "#20 14.91 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 823.6/823.6 kB 161.9 MB/s eta 0:00:00\n", - "#20 14.92 Downloading nvidia_cudnn_cu12-8.9.2.26-py3-none-manylinux1_x86_64.whl (731.7 MB)\n", - "#20 22.57 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 731.7/731.7 MB 27.6 MB/s eta 0:00:00\n", - "#20 22.58 Downloading nvidia_cufft_cu12-11.0.2.54-py3-none-manylinux1_x86_64.whl (121.6 MB)\n", - "#20 23.73 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 121.6/121.6 MB 116.1 MB/s eta 0:00:00\n", - "#20 23.74 Downloading nvidia_curand_cu12-10.3.2.106-py3-none-manylinux1_x86_64.whl (56.5 MB)\n", - "#20 24.30 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 56.5/56.5 MB 72.6 MB/s eta 0:00:00\n", - "#20 24.30 Downloading nvidia_cusolver_cu12-11.4.5.107-py3-none-manylinux1_x86_64.whl (124.2 MB)\n", - "#20 25.47 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 124.2/124.2 MB 121.6 MB/s eta 0:00:00\n", - "#20 25.48 Downloading nvidia_cusparse_cu12-12.1.0.106-py3-none-manylinux1_x86_64.whl (196.0 MB)\n", - "#20 27.64 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 196.0/196.0 MB 112.9 MB/s eta 0:00:00\n", - "#20 27.65 Downloading nvidia_nccl_cu12-2.19.3-py3-none-manylinux1_x86_64.whl (166.0 MB)\n", - "#20 30.17 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 166.0/166.0 MB 24.2 MB/s eta 0:00:00\n", - "#20 30.17 Downloading nvidia_nvtx_cu12-12.1.105-py3-none-manylinux1_x86_64.whl (99 kB)\n", - "#20 30.18 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 99.1/99.1 kB 124.9 MB/s eta 0:00:00\n", - "#20 30.18 Downloading triton-2.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (167.9 MB)\n", - "#20 31.71 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 167.9/167.9 MB 117.2 MB/s eta 0:00:00\n", - "#20 31.72 Downloading typing_extensions-4.11.0-py3-none-any.whl (34 kB)\n", - "#20 31.72 Downloading filelock-3.13.4-py3-none-any.whl (11 kB)\n", - "#20 31.73 Downloading fsspec-2024.3.1-py3-none-any.whl (171 kB)\n", - "#20 31.73 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 172.0/172.0 kB 289.9 MB/s eta 0:00:00\n", - "#20 31.73 Downloading networkx-3.3-py3-none-any.whl (1.7 MB)\n", - "#20 31.75 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.7/1.7 MB 135.8 MB/s eta 0:00:00\n", - "#20 31.75 Downloading sympy-1.12-py3-none-any.whl (5.7 MB)\n", - "#20 31.81 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 5.7/5.7 MB 104.1 MB/s eta 0:00:00\n", - "#20 31.81 Downloading mpmath-1.3.0-py3-none-any.whl (536 kB)\n", - "#20 31.82 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 536.2/536.2 kB 207.8 MB/s eta 0:00:00\n", - "#20 32.03 Downloading nvidia_nvjitlink_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl (21.1 MB)\n", - "#20 32.25 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 21.1/21.1 MB 112.2 MB/s eta 0:00:00\n", - "#20 39.25 Installing collected packages: SimpleITK, mpmath, typing-extensions, sympy, pydicom, Pillow, nvidia-nvtx-cu12, nvidia-nvjitlink-cu12, nvidia-nccl-cu12, nvidia-curand-cu12, nvidia-cufft-cu12, nvidia-cuda-runtime-cu12, nvidia-cuda-nvrtc-cu12, nvidia-cuda-cupti-cu12, nvidia-cublas-cu12, networkx, fsspec, filelock, triton, pillow-jpls, nvidia-cusparse-cu12, nvidia-cudnn-cu12, nvidia-cusolver-cu12, highdicom, torch, monai\n", - "#20 82.08 Successfully installed Pillow-10.3.0 SimpleITK-2.3.1 filelock-3.13.4 fsspec-2024.3.1 highdicom-0.22.0 monai-1.3.0 mpmath-1.3.0 networkx-3.3 nvidia-cublas-cu12-12.1.3.1 nvidia-cuda-cupti-cu12-12.1.105 nvidia-cuda-nvrtc-cu12-12.1.105 nvidia-cuda-runtime-cu12-12.1.105 nvidia-cudnn-cu12-8.9.2.26 nvidia-cufft-cu12-11.0.2.54 nvidia-curand-cu12-10.3.2.106 nvidia-cusolver-cu12-11.4.5.107 nvidia-cusparse-cu12-12.1.0.106 nvidia-nccl-cu12-2.19.3 nvidia-nvjitlink-cu12-12.4.127 nvidia-nvtx-cu12-12.1.105 pillow-jpls-1.3.2 pydicom-2.4.4 sympy-1.12 torch-2.2.2 triton-2.2.0 typing-extensions-4.11.0\n", - "#20 DONE 84.1s\n", - "\n", - "#21 [15/21] COPY ./monai_deploy_app_sdk-0.5.1+20.gb869749.dirty-py3-none-any.whl /tmp/monai_deploy_app_sdk-0.5.1+20.gb869749.dirty-py3-none-any.whl\n", - "#21 DONE 0.3s\n", - "\n", - "#22 [16/21] RUN pip install /tmp/monai_deploy_app_sdk-0.5.1+20.gb869749.dirty-py3-none-any.whl\n", - "#22 0.474 Defaulting to user installation because normal site-packages is not writeable\n", - "#22 0.542 Processing /tmp/monai_deploy_app_sdk-0.5.1+20.gb869749.dirty-py3-none-any.whl\n", - "#22 0.554 Requirement already satisfied: numpy>=1.21.6 in /usr/local/lib/python3.10/dist-packages (from monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (1.23.5)\n", - "#22 0.676 Collecting holoscan~=2.0 (from monai-deploy-app-sdk==0.5.1+20.gb869749.dirty)\n", - "#22 0.744 Downloading holoscan-2.0.0-cp310-cp310-manylinux_2_35_x86_64.whl.metadata (6.7 kB)\n", - "#22 0.816 Collecting colorama>=0.4.1 (from monai-deploy-app-sdk==0.5.1+20.gb869749.dirty)\n", - "#22 0.820 Downloading colorama-0.4.6-py2.py3-none-any.whl.metadata (17 kB)\n", - "#22 0.892 Collecting typeguard>=3.0.0 (from monai-deploy-app-sdk==0.5.1+20.gb869749.dirty)\n", - "#22 0.896 Downloading typeguard-4.2.1-py3-none-any.whl.metadata (3.7 kB)\n", - "#22 0.935 Requirement already satisfied: pip>=20.3 in /home/holoscan/.local/lib/python3.10/site-packages (from holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (24.0)\n", - "#22 0.936 Requirement already satisfied: cupy-cuda12x==12.2 in /usr/local/lib/python3.10/dist-packages (from holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (12.2.0)\n", - "#22 0.937 Requirement already satisfied: cloudpickle==2.2.1 in /usr/local/lib/python3.10/dist-packages (from holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (2.2.1)\n", - "#22 0.937 Requirement already satisfied: python-on-whales==0.60.1 in /usr/local/lib/python3.10/dist-packages (from holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (0.60.1)\n", - "#22 0.938 Requirement already satisfied: Jinja2==3.1.3 in /usr/local/lib/python3.10/dist-packages (from holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (3.1.3)\n", - "#22 0.939 Requirement already satisfied: packaging==23.1 in /usr/local/lib/python3.10/dist-packages (from holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (23.1)\n", - "#22 0.940 Requirement already satisfied: pyyaml==6.0 in /usr/local/lib/python3.10/dist-packages (from holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (6.0)\n", - "#22 0.940 Requirement already satisfied: requests==2.31.0 in /usr/local/lib/python3.10/dist-packages (from holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (2.31.0)\n", - "#22 0.941 Requirement already satisfied: psutil==5.9.6 in /usr/local/lib/python3.10/dist-packages (from holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (5.9.6)\n", - "#22 0.975 Collecting wheel-axle-runtime<1.0 (from holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty)\n", - "#22 0.979 Downloading wheel_axle_runtime-0.0.5-py3-none-any.whl.metadata (7.7 kB)\n", - "#22 1.016 Requirement already satisfied: fastrlock>=0.5 in /usr/local/lib/python3.10/dist-packages (from cupy-cuda12x==12.2->holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (0.8.2)\n", - "#22 1.019 Requirement already satisfied: MarkupSafe>=2.0 in /usr/local/lib/python3.10/dist-packages (from Jinja2==3.1.3->holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (2.1.3)\n", - "#22 1.031 Requirement already satisfied: pydantic<2,>=1.5 in /usr/local/lib/python3.10/dist-packages (from python-on-whales==0.60.1->holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (1.10.15)\n", - "#22 1.032 Requirement already satisfied: tqdm in /usr/local/lib/python3.10/dist-packages (from python-on-whales==0.60.1->holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (4.66.2)\n", - "#22 1.032 Requirement already satisfied: typer>=0.4.1 in /usr/local/lib/python3.10/dist-packages (from python-on-whales==0.60.1->holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (0.12.3)\n", - "#22 1.033 Requirement already satisfied: typing-extensions in /home/holoscan/.local/lib/python3.10/site-packages (from python-on-whales==0.60.1->holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (4.11.0)\n", - "#22 1.042 Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.10/dist-packages (from requests==2.31.0->holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (3.3.2)\n", - "#22 1.043 Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests==2.31.0->holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (3.7)\n", - "#22 1.043 Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests==2.31.0->holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (2.2.1)\n", - "#22 1.044 Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from requests==2.31.0->holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (2024.2.2)\n", - "#22 1.061 Requirement already satisfied: filelock in /home/holoscan/.local/lib/python3.10/site-packages (from wheel-axle-runtime<1.0->holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (3.13.4)\n", - "#22 1.081 Requirement already satisfied: click>=8.0.0 in /usr/local/lib/python3.10/dist-packages (from typer>=0.4.1->python-on-whales==0.60.1->holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (8.1.7)\n", - "#22 1.082 Requirement already satisfied: shellingham>=1.3.0 in /usr/local/lib/python3.10/dist-packages (from typer>=0.4.1->python-on-whales==0.60.1->holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (1.5.4)\n", - "#22 1.083 Requirement already satisfied: rich>=10.11.0 in /usr/local/lib/python3.10/dist-packages (from typer>=0.4.1->python-on-whales==0.60.1->holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (13.7.1)\n", - "#22 1.120 Requirement already satisfied: markdown-it-py>=2.2.0 in /usr/local/lib/python3.10/dist-packages (from rich>=10.11.0->typer>=0.4.1->python-on-whales==0.60.1->holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (3.0.0)\n", - "#22 1.121 Requirement already satisfied: pygments<3.0.0,>=2.13.0 in /usr/local/lib/python3.10/dist-packages (from rich>=10.11.0->typer>=0.4.1->python-on-whales==0.60.1->holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (2.17.2)\n", - "#22 1.143 Requirement already satisfied: mdurl~=0.1 in /usr/local/lib/python3.10/dist-packages (from markdown-it-py>=2.2.0->rich>=10.11.0->typer>=0.4.1->python-on-whales==0.60.1->holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (0.1.2)\n", - "#22 1.157 Downloading colorama-0.4.6-py2.py3-none-any.whl (25 kB)\n", - "#22 1.181 Downloading holoscan-2.0.0-cp310-cp310-manylinux_2_35_x86_64.whl (33.2 MB)\n", - "#22 1.668 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 33.2/33.2 MB 36.8 MB/s eta 0:00:00\n", - "#22 1.673 Downloading typeguard-4.2.1-py3-none-any.whl (34 kB)\n", - "#22 1.696 Downloading wheel_axle_runtime-0.0.5-py3-none-any.whl (12 kB)\n", - "#22 2.029 Installing collected packages: wheel-axle-runtime, typeguard, colorama, holoscan, monai-deploy-app-sdk\n", - "#22 2.773 Successfully installed colorama-0.4.6 holoscan-2.0.0 monai-deploy-app-sdk-0.5.1+20.gb869749.dirty typeguard-4.2.1 wheel-axle-runtime-0.0.5\n", - "#22 DONE 3.3s\n", - "\n", - "#23 [17/21] COPY ./models /opt/holoscan/models\n", - "#23 DONE 0.3s\n", - "\n", - "#24 [18/21] COPY ./map/app.json /etc/holoscan/app.json\n", - "#24 DONE 0.1s\n", - "\n", - "#25 [19/21] COPY ./app.config /var/holoscan/app.yaml\n", - "#25 DONE 0.1s\n", - "\n", - "#26 [20/21] COPY ./map/pkg.json /etc/holoscan/pkg.json\n", - "#26 DONE 0.1s\n", - "\n", - "#27 [21/21] COPY ./app /opt/holoscan/app\n", - "#27 DONE 0.1s\n", + "#20 [release 11/18] RUN pip install --upgrade pip\n", + "#20 CACHED\n", + "\n", + "#21 [release 9/18] WORKDIR /var/holoscan\n", + "#21 CACHED\n", + "\n", + "#22 [release 13/18] RUN pip install monai-deploy-app-sdk==2.0.0\n", + "#22 CACHED\n", + "\n", + "#23 [release 14/18] COPY ./models /opt/holoscan/models\n", + "#23 DONE 0.6s\n", + "\n", + "#24 [release 15/18] COPY ./map/app.json /etc/holoscan/app.json\n", + "#24 DONE 0.2s\n", + "\n", + "#25 [release 16/18] COPY ./app.config /var/holoscan/app.yaml\n", + "#25 DONE 0.2s\n", + "\n", + "#26 [release 17/18] COPY ./map/pkg.json /etc/holoscan/pkg.json\n", + "#26 DONE 0.2s\n", + "\n", + "#27 [release 18/18] COPY ./app /opt/holoscan/app\n", + "#27 DONE 0.2s\n", "\n", "#28 exporting to docker image format\n", "#28 exporting layers\n", - "#28 exporting layers 152.5s done\n", - "#28 exporting manifest sha256:c70218a06b33b272ca2399e48c3804a3632c64ad2026e95b55d9ddae0cae7e74 0.0s done\n", - "#28 exporting config sha256:553a0ca99a2e26fc278babfe7ad247254fbaeadbc8cbad3e0053f4aede0c3aae 0.0s done\n", + "#28 exporting layers 1.9s done\n", + "#28 exporting manifest sha256:afbc907fa0a369a2f16f26a77411e7649a79063efffcf7cf5adad38183291b94 0.0s done\n", + "#28 exporting config sha256:5c1b6f89e061f5f67b24c8cf506f572b2c000c5585b641a9c46ebe77dbc76788 0.0s done\n", "#28 sending tarball\n", "#28 ...\n", "\n", "#29 importing to docker\n", - "#29 loading layer 072c1594ab9f 557.06kB / 2.90GB\n", - "#29 loading layer 072c1594ab9f 108.63MB / 2.90GB 6.2s\n", - "#29 loading layer 072c1594ab9f 317.52MB / 2.90GB 10.3s\n", - "#29 loading layer 072c1594ab9f 514.72MB / 2.90GB 14.5s\n", - "#29 loading layer 072c1594ab9f 706.90MB / 2.90GB 18.6s\n", - "#29 loading layer 072c1594ab9f 889.06MB / 2.90GB 22.7s\n", - "#29 loading layer 072c1594ab9f 1.09GB / 2.90GB 26.8s\n", - "#29 loading layer 072c1594ab9f 1.32GB / 2.90GB 31.0s\n", - "#29 loading layer 072c1594ab9f 1.52GB / 2.90GB 35.1s\n", - "#29 loading layer 072c1594ab9f 1.76GB / 2.90GB 39.2s\n", - "#29 loading layer 072c1594ab9f 1.95GB / 2.90GB 43.3s\n", - "#29 loading layer 072c1594ab9f 1.98GB / 2.90GB 50.1s\n", - "#29 loading layer 072c1594ab9f 2.13GB / 2.90GB 56.3s\n", - "#29 loading layer 072c1594ab9f 2.32GB / 2.90GB 60.5s\n", - "#29 loading layer 072c1594ab9f 2.54GB / 2.90GB 64.6s\n", - "#29 loading layer 072c1594ab9f 2.73GB / 2.90GB 68.8s\n", - "#29 loading layer 072c1594ab9f 2.90GB / 2.90GB 75.0s\n", - "#29 loading layer f11aaa8e87ac 32.77kB / 125.83kB\n", - "#29 loading layer fa504599989c 557.06kB / 67.36MB\n", - "#29 loading layer 671fce7ea0e7 262.14kB / 25.59MB\n", - "#29 loading layer 1c0f42dfa575 514B / 514B\n", - "#29 loading layer 6fb8bbe7fb20 698B / 698B\n", - "#29 loading layer 2903a6d1ea2e 300B / 300B\n", - "#29 loading layer 1602070f430e 4.17kB / 4.17kB\n", - "#29 loading layer fa504599989c 557.06kB / 67.36MB 3.3s done\n", - "#29 loading layer 072c1594ab9f 2.90GB / 2.90GB 78.6s done\n", - "#29 loading layer f11aaa8e87ac 32.77kB / 125.83kB 3.4s done\n", - "#29 loading layer 671fce7ea0e7 262.14kB / 25.59MB 1.4s done\n", - "#29 loading layer 1c0f42dfa575 514B / 514B 1.0s done\n", - "#29 loading layer 6fb8bbe7fb20 698B / 698B 0.9s done\n", - "#29 loading layer 2903a6d1ea2e 300B / 300B 0.9s done\n", - "#29 loading layer 1602070f430e 4.17kB / 4.17kB 0.8s done\n", - "#29 DONE 78.6s\n", + "#29 loading layer dd1c2998eccf 262.14kB / 25.59MB\n", + "#29 loading layer a8f3aa43fe53 512B / 512B\n", + "#29 loading layer 5be43d70908a 696B / 696B\n", + "#29 loading layer 74efae286fce 299B / 299B\n", + "#29 loading layer 68ee590555d3 4.17kB / 4.17kB\n", + "#29 loading layer 68ee590555d3 4.17kB / 4.17kB 0.4s done\n", + "#29 loading layer dd1c2998eccf 262.14kB / 25.59MB 0.9s done\n", + "#29 loading layer a8f3aa43fe53 512B / 512B 0.5s done\n", + "#29 loading layer 5be43d70908a 696B / 696B 0.5s done\n", + "#29 loading layer 74efae286fce 299B / 299B 0.4s done\n", + "#29 DONE 0.9s\n", "\n", "#28 exporting to docker image format\n", - "#28 sending tarball 119.9s done\n", - "#28 DONE 272.5s\n", + "#28 sending tarball 50.5s done\n", + "#28 DONE 52.5s\n", "\n", "#30 exporting cache to client directory\n", "#30 preparing build cache for export\n", - "#30 writing layer sha256:014cff740c9ec6e9a30d0b859219a700ae880eb385d62095d348f5ea136d6015\n", - "#30 writing layer sha256:014cff740c9ec6e9a30d0b859219a700ae880eb385d62095d348f5ea136d6015 done\n", - "#30 writing layer sha256:0487800842442c7a031a39e1e1857bc6dae4b4f7e5daf3d625f7a8a4833fb364 done\n", - "#30 writing layer sha256:06c6aee94862daf0603783db4e1de6f8524b30ac9fbe0374ab3f1d85b2f76f7f done\n", - "#30 writing layer sha256:0a1756432df4a4350712d8ae5c003f1526bd2180800b3ae6301cfc9ccf370254 done\n", - "#30 writing layer sha256:0a77dcbd0e648ddc4f8e5230ade8fdb781d99e24fa4f13ca96a360c7f7e6751f done\n", - "#30 writing layer sha256:0ec682bf99715a9f88631226f3749e2271b8b9f254528ef61f65ed829984821c done\n", - "#30 writing layer sha256:1c5c3aa9c2c8bfd1b9eb36248f5b6d67b3db73ef43440f9dd897615771974b39 done\n", - "#30 writing layer sha256:1f73278b7f17492ce1a8b28b139d54596961596d6790dc20046fa6d5909f3e9c done\n", - "#30 writing layer sha256:2070dbb5e4fec1f79111a1b9934b95a4bda91fff6888840d2e53b48b655f352d\n", - "#30 writing layer sha256:2070dbb5e4fec1f79111a1b9934b95a4bda91fff6888840d2e53b48b655f352d 1.3s done\n", - "#30 writing layer sha256:20d331454f5fb557f2692dfbdbe092c718fd2cb55d5db9d661b62228dacca5c2\n", - "#30 writing layer sha256:20d331454f5fb557f2692dfbdbe092c718fd2cb55d5db9d661b62228dacca5c2 done\n", - "#30 writing layer sha256:238f69a43816e481f0295995fcf5fe74d59facf0f9f99734c8d0a2fb140630e0 done\n", - "#30 writing layer sha256:2ad84487f9d4d31cd1e0a92697a5447dd241935253d036b272ef16d31620c1e7 done\n", - "#30 writing layer sha256:2f65750928993b5b31fe572d9e085b53853c5a344feeb0e8615898e285a8c256 done\n", - "#30 writing layer sha256:2f868c17ea0c13f86d79c6ea231aa9677089aa72e290ec3b95f9983f46048136 0.0s done\n", - "#30 writing layer sha256:3777c6498f08c0400339c243e827d465075b7296eb2526e38d9b01c84f8764d8 done\n", - "#30 writing layer sha256:3e3e04011ebdba380ab129f0ee390626cb2a600623815ca756340c18bedb9517 done\n", - "#30 writing layer sha256:42619ce4a0c9e54cfd0ee41a8e5f27d58b3f51becabd1ac6de725fbe6c42b14a done\n", - "#30 writing layer sha256:49bdc9abf8a437ccff67cc11490ba52c976577992909856a86be872a34d3b950 done\n", - "#30 writing layer sha256:4b691ba9f48b41eaa0c754feba8366f1c030464fcbc55eeffa6c86675990933a done\n", - "#30 writing layer sha256:4d04a8db404f16c2704fa10739cb6745a0187713a21a6ef0deb34b48629b54c1 done\n", + "#30 writing layer sha256:1a0d52c93099897b518eb6cc6cd0fa3d52ff733e8606b4d8c92675ba9e7101ff\n", + "#30 writing layer sha256:1a0d52c93099897b518eb6cc6cd0fa3d52ff733e8606b4d8c92675ba9e7101ff 0.0s done\n", + "#30 writing layer sha256:234b866f57e0c5d555af2d87a1857a17ec4ac7e70d2dc6c31ff0a072a4607f24 done\n", + "#30 writing layer sha256:255905badeaa82f032e1043580eed8b745c19cd4a2cb7183883ee5a30f851d6d done\n", + "#30 writing layer sha256:3713021b02770a720dea9b54c03d0ed83e03a2ef5dce2898c56a327fee9a8bca done\n", + "#30 writing layer sha256:3a80776cdc9c9ef79bb38510849c9160f82462d346bf5a8bf29c811391b4e763 done\n", + "#30 writing layer sha256:41e173df84c503c9e717e0e67c22260d4e6bb14660577b225dec5733b4155a78 done\n", + "#30 writing layer sha256:46c9c54348df10b0d7700bf932d5de7dc5bf9ab91e685db7086e29e381ff8e12 done\n", "#30 writing layer sha256:4f4fb700ef54461cfa02571ae0db9a0dc1e0cdb5577484a6d75e68dc38e8acc1 done\n", - "#30 writing layer sha256:51d232f1f4212f460f268207affeab6246b2b60caf6d9f61b4fab22202848747 0.0s done\n", - "#30 writing layer sha256:53e291bdb605f68216b97e71175b5a348001546ff073083ae622feb044916445 done\n", - "#30 writing layer sha256:542bc8c8d18fbc95e6794122c3593a4a693f8ab6dda4460406f4d7b1ae64a2bc done\n", - "#30 writing layer sha256:57f244836ad318f9bbb3b29856ae1a5b31038bfbb9b43d2466d51c199eb55041 done\n", - "#30 writing layer sha256:5b5b131e0f20db4cb8e568b623a95f8fc16ed1c6b322a9366df70b59a881f24f done\n", - "#30 writing layer sha256:5b90d17b5048adcadefd0b1e4dba9a99247a8827a887e1ca042df375c85b518d done\n", - "#30 writing layer sha256:5e622c7efc8f430c7e6928544ba87f94eac8a4127d711933a0bf49e6a76eda0c\n", - "#30 writing layer sha256:5e622c7efc8f430c7e6928544ba87f94eac8a4127d711933a0bf49e6a76eda0c 0.4s done\n", - "#30 writing layer sha256:62452179df7c18e292f141d4aec29e6aba9ff8270c893731169fc6f41dc07631\n", - "#30 writing layer sha256:62452179df7c18e292f141d4aec29e6aba9ff8270c893731169fc6f41dc07631 done\n", - "#30 writing layer sha256:6630c387f5f2115bca2e646fd0c2f64e1f3d5431c2e050abe607633883eda230 done\n", - "#30 writing layer sha256:6661e0146e77a8bcb03edbfda95bf7780c8bb4c4f98bc03a398c88f4b2403d12 done\n", - "#30 writing layer sha256:717ebf8c9c66ae393ad01e50dbac4413d7b026b9c97d4d348b22ad17052a1a35 done\n", - "#30 writing layer sha256:773c6815e5e7d6855a62f8c5e2fabce3d939ded36c5420f15b54dd7908cdbcfa done\n", - "#30 writing layer sha256:7852b73ea931e3a8d3287ee7ef3cf4bad068e44f046583bfc2b81336fb299284 done\n", - "#30 writing layer sha256:7f8ec130348bcdac81c295e37fe82b4a6e5e9a3ca980a6343809c561020d82d7 done\n", - "#30 writing layer sha256:80885adcad6b5d021bb9f68b6c952018085bb4ce72011bdc0cf7fe8178b5960b done\n", - "#30 writing layer sha256:826d794ef7ef68566c3eede8e80bca99b8e40994c5dea2079da82d7d429e0203 0.0s done\n", - "#30 writing layer sha256:82a3436133b2b17bb407c7fe488932aa0ca55411f23ab55c34a6134b287c6a27 done\n", - "#30 writing layer sha256:8371d15eb4d69b1d98174dd098b8ddd5c4f19ec6f8d8b67e72dfa9891dc454b4 done\n", - "#30 writing layer sha256:85713f9b166b5add777c524ee807f6265d88b967cbeb9f961d6b09bf220c9a65 done\n", - "#30 writing layer sha256:8fe00505006a09966e763918147ef6ed55bb6695b26e4940c780ee430dc5da8e done\n", - "#30 writing layer sha256:90eae6faa5cc5ba62f12c25915cdfb1a7a51abfba0d05cb5818c3f908f4e345f done\n", - "#30 writing layer sha256:9205d97d9d3e906698bcc6c42d45727c2fa6ec2622abf953d46778c3b8c78edc done\n", - "#30 writing layer sha256:993369dbcc13162a6654d2a3e990b8d8b5f37963564d25710e12764337261ae3 done\n", - "#30 writing layer sha256:99e42a4adebadb39bf55bf94bbd9fb8034230ee19b6b0a42e6ff96f2e7794f30 done\n", - "#30 writing layer sha256:9ac855545fa90ed2bf3b388fdff9ef06ac9427b0c0fca07c9e59161983d8827e done\n", - "#30 writing layer sha256:9bd8f1c975ca5c9efcdedc1e1a31269e8492195a76e73b95af8c0fc7c7d8a2c6\n", - "#30 writing layer sha256:9bd8f1c975ca5c9efcdedc1e1a31269e8492195a76e73b95af8c0fc7c7d8a2c6 46.2s done\n", - "#30 writing layer sha256:9d19ee268e0d7bcf6716e6658ee1b0384a71d6f2f9aa1ae2085610cf7c7b316f\n", - "#30 writing layer sha256:9d19ee268e0d7bcf6716e6658ee1b0384a71d6f2f9aa1ae2085610cf7c7b316f done\n", - "#30 writing layer sha256:9fafbd4203c4fefe007a462e0d2cd4c1c7c41db2cfdc58d212279e1b9b4b230c done\n", - "#30 writing layer sha256:a1748eee9d376f97bd19225ba61dfada9986f063f4fc429e435f157abb629fc6 done\n", - "#30 writing layer sha256:a251fe5ae6c6d2d5034e4ca88b5dfe5d4827ff90b18e9b143a073232a32bb18d done\n", - "#30 writing layer sha256:a68f4e0ec09ec3b78cb4cf8e4511d658e34e7b6f676d7806ad9703194ff17604 done\n", - "#30 writing layer sha256:a8e4decc8f7289623b8fd7b9ba1ca555b5a755ebdbf81328d68209f148d9e602 done\n", - "#30 writing layer sha256:afa8073b7854514d2a2a4c91eb31250d02a8cbb6a4364c38d20219ed08dcdb13 done\n", - "#30 writing layer sha256:afde1c269453ce68a0f2b54c1ba8c5ecddeb18a19e5618a4acdef1f0fe3921af done\n", - "#30 writing layer sha256:b406feb20a37b8c87ef4f5ef814039e3adc90473d50c366b7d9bb6ded4e94a2e done\n", - "#30 writing layer sha256:b48a5fafcaba74eb5d7e7665601509e2889285b50a04b5b639a23f8adc818157 done\n", - "#30 writing layer sha256:ba9f7c75e4dd7942b944679995365aab766d3677da2e69e1d74472f471a484dd done\n", - "#30 writing layer sha256:bdc13166216ae226fa6976f9ce91f4f259d43972f1e0a9b723e436919534b2f4 done\n", - "#30 writing layer sha256:c815f0be64eded102822d81e029bd23b0d8d9a0fbfeb492ec0b4b0bc4ee777bf done\n", - "#30 writing layer sha256:c98533d2908f36a5e9b52faae83809b3b6865b50e90e2817308acfc64cd3655f done\n", - "#30 writing layer sha256:d0a18329aa85666501e304a488b966559ff54fab09dd36886f4ba1c97d9a3f4c 0.0s done\n", - "#30 writing layer sha256:d7da5c5e9a40c476c4b3188a845e3276dedfd752e015ea5113df5af64d4d43f7 done\n", - "#30 writing layer sha256:db20521a869adda8244cb64b783c65e1a911efaae0e73ae00e4a34ea6213d6ce done\n", - "#30 writing layer sha256:de6e4313f5826cce8249354c2525b5a9acde7edea4ca02018e437c9b4de3d9fc 0.0s done\n", - "#30 writing layer sha256:df4fd0ac710d7af949afbc6d25b5b4daf3f0596dabf3dec36fa7ca8fa6e1d049 done\n", - "#30 writing layer sha256:e291ddecfbe16b95ee9e90b5e90b1a3d0cfd53dc5e720d6b0f3d28e4a47cf5ac done\n", - "#30 writing layer sha256:e8acb678f16bc0c369d5cf9c184f2d3a1c773986816526e5e3e9c0354f7e757f done\n", - "#30 writing layer sha256:e9225f7ab6606813ec9acba98a064826ebfd6713a9645a58cd068538af1ecddb done\n", - "#30 writing layer sha256:f249faf9663a96b0911a903f8803b11a553c59b698013fb8343492fefdaaea90 done\n", - "#30 writing layer sha256:f608e2fbff86e98627b7e462057e7d2416522096d73fe4664b82fe6ce8a4047d done\n", - "#30 writing layer sha256:f65d191416580d6c38e3d95eee12377b75a4df548be1492618ce2a8c3c41b99e done\n", - "#30 writing config sha256:c5d7ca2ff9b60cb7174369608d683a7735902b5a315ccbd3661cdb01d19b7db3 0.0s done\n", - "#30 preparing build cache for export 48.8s done\n", - "#30 writing cache manifest sha256:43a5a705376a7f516f02e6223e10f78f54002aca9882c7de45970b0d70baa3e8 0.0s done\n", - "#30 DONE 48.8s\n", - "[2024-04-23 15:40:45,771] [INFO] (packager) - Build Summary:\n", + "#30 writing layer sha256:67b3546b211deefd67122e680c0932886e0b3c6bd6ae0665e3ab25d2d9f0cda0 done\n", + "#30 writing layer sha256:69a43436b2ce855cf28cf641ceb9106bf500f2cb12e3a07cbae366c79d72be7c\n", + "#30 writing layer sha256:69a43436b2ce855cf28cf641ceb9106bf500f2cb12e3a07cbae366c79d72be7c 0.5s done\n", + "#30 writing layer sha256:6cb8bb8a1d4ff0968b1928e3a7c2a7a5c29934ce062651403efa8169f1ef2f22\n", + "#30 writing layer sha256:6cb8bb8a1d4ff0968b1928e3a7c2a7a5c29934ce062651403efa8169f1ef2f22 done\n", + "#30 writing layer sha256:729bf790873c4425097dd140c6a8fc2f6b8f0a583c05665cfcdde34bcde55a71 0.0s done\n", + "#30 writing layer sha256:94ea8fe9174939142272c5d49e179ba19f357ea997b5d4f3900d1fb7d4fe6707 done\n", + "#30 writing layer sha256:95d5aad5207ff23e9733fd253a606be845749054783466d8c9a3f73d0a2d25b8 0.0s done\n", + "#30 writing layer sha256:980c13e156f90218b216bc6b0430472bbda71c0202804d350c0e16ef02075885 done\n", + "#30 writing layer sha256:9b72862f620f8b7b4f1fb1e44a1e06c5121b21f1ff5132364cc7cc00f883abd1 0.0s done\n", + "#30 writing layer sha256:a40bb4ae02b3d3fa186140aaca178144ef5d504f6581bcd05af95b357c082116 done\n", + "#30 writing layer sha256:ac52600be001236a2c291a4c5902c915bf5ec9d2441c06d2a54c587b76345847 done\n", + "#30 writing layer sha256:b3a705dd063a4b184f4ae8095ca2eba91e8aa4eb2a0a561b869c06d85ec83929\n", + "#30 preparing build cache for export 1.0s done\n", + "#30 writing layer sha256:b3a705dd063a4b184f4ae8095ca2eba91e8aa4eb2a0a561b869c06d85ec83929 0.0s done\n", + "#30 writing layer sha256:bc25d810fc1fd99656c1b07d422e88cdb896508730175bc3ec187b79f3787044 done\n", + "#30 writing layer sha256:c0e9112106766f6d918279426468ca3a81ddca90d82a7e3e41ed3d96b0464a94 done\n", + "#30 writing layer sha256:c8937b741c9ecd6b257aeb18daf07eddbf1c77b0c93f9ba4164faa8353cd1d3c done\n", + "#30 writing layer sha256:d339273dfb7fc3b7fd896d3610d360ab9a09ab33a818093cb73b4be7639b6e99 done\n", + "#30 writing layer sha256:e540d242f419a27800d601d7275f4fbb3488b97d209b454f52e63f1eb413a912 done\n", + "#30 writing layer sha256:efc9014e2a4cb1e133b80bb4f047e9141e98685eb95b8d2471a8e35b86643e31 done\n", + "#30 writing layer sha256:fcb63189ed471f44270645dedc0ac5966ac9fa2ef705eb6d2678e7695ceebb95 done\n", + "#30 writing layer sha256:fd70b1234d70e071e4309175d0612d1ae9984e18bdaf1a1426dd218b747427bc done\n", + "#30 writing config sha256:e49757ae9f8e6f65b6803fe303ffd44430c2d32fdc429bc50c8b7262f20d89d0 0.0s done\n", + "#30 writing cache manifest sha256:968ad4e004ca52bdfb4f7686b9cab58437499e739f9670ddab325f23501545da 0.0s done\n", + "#30 DONE 1.0s\n", + "[2025-01-16 15:26:14,630] [INFO] (packager) - Build Summary:\n", "\n", "Platform: x64-workstation/dgpu\n", " Status: Succeeded\n", @@ -871,14 +769,14 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 26, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "mednist_app-x64-workstation-dgpu-linux-amd64 1.0 553a0ca99a2e 5 minutes ago 17.7GB\n" + "mednist_app-x64-workstation-dgpu-linux-amd64 1.0 5c1b6f89e061 55 seconds ago 8.6GB\n" ] } ], @@ -900,7 +798,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 27, "metadata": {}, "outputs": [ { @@ -936,7 +834,7 @@ " },\n", " \"readiness\": null,\n", " \"sdk\": \"monai-deploy\",\n", - " \"sdkVersion\": \"0.5.1\",\n", + " \"sdkVersion\": \"2.0.0\",\n", " \"timeout\": 0,\n", " \"version\": 1,\n", " \"workingDirectory\": \"/var/holoscan\"\n", @@ -960,16 +858,16 @@ " \"platformConfig\": \"dgpu\"\n", "}\n", "\n", - "2024-04-23 22:40:48 [INFO] Copying application from /opt/holoscan/app to /var/run/holoscan/export/app\n", + "2025-01-16 23:26:18 [INFO] Copying application from /opt/holoscan/app to /var/run/holoscan/export/app\n", "\n", - "2024-04-23 22:40:48 [INFO] Copying application manifest file from /etc/holoscan/app.json to /var/run/holoscan/export/config/app.json\n", - "2024-04-23 22:40:48 [INFO] Copying pkg manifest file from /etc/holoscan/pkg.json to /var/run/holoscan/export/config/pkg.json\n", - "2024-04-23 22:40:48 [INFO] Copying application configuration from /var/holoscan/app.yaml to /var/run/holoscan/export/config/app.yaml\n", + "2025-01-16 23:26:18 [INFO] Copying application manifest file from /etc/holoscan/app.json to /var/run/holoscan/export/config/app.json\n", + "2025-01-16 23:26:18 [INFO] Copying pkg manifest file from /etc/holoscan/pkg.json to /var/run/holoscan/export/config/pkg.json\n", + "2025-01-16 23:26:18 [INFO] Copying application configuration from /var/holoscan/app.yaml to /var/run/holoscan/export/config/app.yaml\n", "\n", - "2024-04-23 22:40:48 [INFO] Copying models from /opt/holoscan/models to /var/run/holoscan/export/models\n", + "2025-01-16 23:26:18 [INFO] Copying models from /opt/holoscan/models to /var/run/holoscan/export/models\n", "\n", - "2024-04-23 22:40:48 [INFO] Copying documentation from /opt/holoscan/docs/ to /var/run/holoscan/export/docs\n", - "2024-04-23 22:40:48 [INFO] '/opt/holoscan/docs/' cannot be found.\n", + "2025-01-16 23:26:18 [INFO] Copying documentation from /opt/holoscan/docs/ to /var/run/holoscan/export/docs\n", + "2025-01-16 23:26:18 [INFO] '/opt/holoscan/docs/' cannot be found.\n", "\n", "app config models\n" ] @@ -994,29 +892,29 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 28, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "[2024-04-23 15:40:49,986] [INFO] (runner) - Checking dependencies...\n", - "[2024-04-23 15:40:49,986] [INFO] (runner) - --> Verifying if \"docker\" is installed...\n", + "[2025-01-16 15:26:20,643] [INFO] (runner) - Checking dependencies...\n", + "[2025-01-16 15:26:20,643] [INFO] (runner) - --> Verifying if \"docker\" is installed...\n", "\n", - "[2024-04-23 15:40:49,986] [INFO] (runner) - --> Verifying if \"docker-buildx\" is installed...\n", + "[2025-01-16 15:26:20,644] [INFO] (runner) - --> Verifying if \"docker-buildx\" is installed...\n", "\n", - "[2024-04-23 15:40:49,986] [INFO] (runner) - --> Verifying if \"mednist_app-x64-workstation-dgpu-linux-amd64:1.0\" is available...\n", + "[2025-01-16 15:26:20,646] [INFO] (runner) - --> Verifying if \"mednist_app-x64-workstation-dgpu-linux-amd64:1.0\" is available...\n", "\n", - "[2024-04-23 15:40:50,062] [INFO] (runner) - Reading HAP/MAP manifest...\n", - "\u001b[sPreparing to copy...\u001b[?25l\u001b[u\u001b[2KCopying from container - 0B\u001b[?25h\u001b[u\u001b[2KSuccessfully copied 2.56kB to /tmp/tmp9_4t5v97/app.json\n", - "\u001b[sPreparing to copy...\u001b[?25l\u001b[u\u001b[2KCopying from container - 0B\u001b[?25h\u001b[u\u001b[2KSuccessfully copied 2.05kB to /tmp/tmp9_4t5v97/pkg.json\n", - "[2024-04-23 15:40:50,322] [INFO] (runner) - --> Verifying if \"nvidia-ctk\" is installed...\n", + "[2025-01-16 15:26:20,837] [INFO] (runner) - Reading HAP/MAP manifest...\n", + "Successfully copied 2.56kB to /tmp/tmpwakl5ani/app.json\n", + "Successfully copied 2.05kB to /tmp/tmpwakl5ani/pkg.json\n", + "[2025-01-16 15:26:21,167] [INFO] (runner) - --> Verifying if \"nvidia-ctk\" is installed...\n", "\n", - "[2024-04-23 15:40:50,322] [INFO] (runner) - --> Verifying \"nvidia-ctk\" version...\n", + "[2025-01-16 15:26:21,169] [INFO] (runner) - --> Verifying \"nvidia-ctk\" version...\n", "\n", - "[2024-04-23 15:40:50,636] [INFO] (common) - Launching container (f9af17c16239) using image 'mednist_app-x64-workstation-dgpu-linux-amd64:1.0'...\n", - " container name: objective_merkle\n", + "[2025-01-16 15:26:21,592] [INFO] (common) - Launching container (06dd3af216d1) using image 'mednist_app-x64-workstation-dgpu-linux-amd64:1.0'...\n", + " container name: angry_einstein\n", " host name: mingq-dt\n", " network: host\n", " user: 1000:1000\n", @@ -1026,49 +924,37 @@ " shared memory size: 67108864\n", " devices: \n", " group_add: 44\n", - "2024-04-23 22:40:51 [INFO] Launching application python3 /opt/holoscan/app/mednist_classifier_monaideploy.py ...\n", - "\n", - "[2024-04-23 22:40:54,170] [INFO] (root) - Parsed args: Namespace(log_level=None, input=None, output=None, model=None, workdir=None, argv=['/opt/holoscan/app/mednist_classifier_monaideploy.py'])\n", + "2025-01-16 23:26:22 [INFO] Launching application python3 /opt/holoscan/app/mednist_classifier_monaideploy.py ...\n", "\n", - "[2024-04-23 22:40:54,175] [INFO] (root) - AppContext object: AppContext(input_path=/var/holoscan/input, output_path=/var/holoscan/output, model_path=/opt/holoscan/models, workdir=/var/holoscan)\n", + "Traceback (most recent call last):\n", "\n", - "[info] [app_driver.cpp:1161] Launching the driver/health checking service\n", + " File \"/opt/holoscan/app/mednist_classifier_monaideploy.py\", line 19, in \n", "\n", - "[info] [gxf_executor.cpp:247] Creating context\n", + " from monai.deploy.conditions import CountCondition\n", "\n", - "[info] [server.cpp:87] Health checking server listening on 0.0.0.0:8777\n", + " File \"/home/holoscan/.local/lib/python3.10/site-packages/monai/__init__.py\", line 101, in \n", "\n", - "[info] [gxf_executor.cpp:1672] Loading extensions from configs...\n", + " load_submodules(sys.modules[__name__], False, exclude_pattern=excludes)\n", "\n", - "[info] [gxf_executor.cpp:1842] Activating Graph...\n", + " File \"/home/holoscan/.local/lib/python3.10/site-packages/monai/utils/module.py\", line 187, in load_submodules\n", "\n", - "[info] [gxf_executor.cpp:1874] Running Graph...\n", + " mod = import_module(name)\n", "\n", - "[info] [gxf_executor.cpp:1876] Waiting for completion...\n", + " File \"/usr/lib/python3.10/importlib/__init__.py\", line 126, in import_module\n", "\n", - "\u001b[0m2024-04-23 22:40:54.201 INFO gxf/std/greedy_scheduler.cpp@191: Scheduling 3 entities\u001b[0m\n", + " return _bootstrap._gcd_import(name[level:], package, level)\n", "\n", - "/home/holoscan/.local/lib/python3.10/site-packages/monai/data/meta_tensor.py:116: UserWarning: The given NumPy array is not writable, and PyTorch does not support non-writable tensors. This means writing to this tensor will result in undefined behavior. You may want to copy the array to protect its data or make it writable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at ../torch/csrc/utils/tensor_numpy.cpp:206.)\n", - "\n", - " return torch.as_tensor(x, *args, **_kwargs).as_subclass(cls)\n", + " File \"/home/holoscan/.local/lib/python3.10/site-packages/monai/deploy/__init__.py\", line 23, in \n", "\n", - "[2024-04-23 22:40:55,396] [INFO] (root) - Finished writing DICOM instance to file /var/holoscan/output/1.2.826.0.1.3680043.8.498.27996829466530719648374470054709482881.dcm\n", + " from . import _version, conditions, core, exceptions, logger, resources, utils\n", "\n", - "[2024-04-23 22:40:55,396] [INFO] (monai.deploy.operators.dicom_text_sr_writer_operator.DICOMTextSRWriterOperator) - DICOM SOP instance saved in /var/holoscan/output/1.2.826.0.1.3680043.8.498.27996829466530719648374470054709482881.dcm\n", + " File \"/home/holoscan/.local/lib/python3.10/site-packages/monai/deploy/core/__init__.py\", line 32, in \n", "\n", - "\u001b[0m2024-04-23 22:40:55.396 INFO gxf/std/greedy_scheduler.cpp@372: Scheduler stopped: Some entities are waiting for execution, but there are no periodic or async entities to get out of the deadlock.\u001b[0m\n", + " from holoscan.core import *\n", "\n", - "[info] [gxf_executor.cpp:1879] Deactivating Graph...\n", + "AttributeError: module 'holoscan.core' has no attribute 'MultiMessageConditionInfo'\n", "\n", - "\u001b[0m2024-04-23 22:40:55.397 INFO gxf/std/greedy_scheduler.cpp@401: Scheduler finished.\u001b[0m\n", - "\n", - "[info] [gxf_executor.cpp:1887] Graph execution finished.\n", - "\n", - "[info] [gxf_executor.cpp:275] Destroying context\n", - "\n", - "AbdomenCT\n", - "\n", - "[2024-04-23 15:40:56,349] [INFO] (common) - Container 'objective_merkle'(f9af17c16239) exited.\n" + "[2025-01-16 15:26:30,695] [INFO] (common) - Container 'angry_einstein'(06dd3af216d1) exited.\n" ] } ], @@ -1080,14 +966,14 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 29, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "\"AbdomenCT\"" + "cat: output/output.json: No such file or directory\n" ] } ], @@ -1133,7 +1019,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 30, "metadata": {}, "outputs": [], "source": [ @@ -1164,7 +1050,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 31, "metadata": {}, "outputs": [], "source": [ @@ -1235,7 +1121,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 32, "metadata": {}, "outputs": [], "source": [ @@ -1374,7 +1260,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 33, "metadata": {}, "outputs": [], "source": [ @@ -1425,57 +1311,53 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 34, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - "[2024-04-23 15:41:01,799] [INFO] (root) - Parsed args: Namespace(log_level=None, input=None, output=None, model=None, workdir=None, argv=[])\n", - "[2024-04-23 15:41:01,818] [INFO] (root) - AppContext object: AppContext(input_path=input, output_path=output, model_path=models, workdir=)\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\u001b[0m2024-04-23 15:41:01.850 INFO gxf/std/greedy_scheduler.cpp@191: Scheduling 3 entities\u001b[0m\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "[info] [gxf_executor.cpp:247] Creating context\n", - "[info] [gxf_executor.cpp:1672] Loading extensions from configs...\n", - "[info] [gxf_executor.cpp:1842] Activating Graph...\n", - "[info] [gxf_executor.cpp:1874] Running Graph...\n", - "[info] [gxf_executor.cpp:1876] Waiting for completion...\n", + "[info] [fragment.cpp:588] Loading extensions from configs...\n", + "[2025-01-16 15:26:31,607] [INFO] (root) - Parsed args: Namespace(log_level=None, input=None, output=None, model=None, workdir=None, argv=[])\n", + "[2025-01-16 15:26:31,631] [INFO] (root) - AppContext object: AppContext(input_path=input, output_path=output, model_path=models, workdir=)\n", + "[info] [gxf_executor.cpp:262] Creating context\n", + "[info] [gxf_executor.cpp:1767] creating input IOSpec named 'output_folder'\n", + "[info] [gxf_executor.cpp:1767] creating input IOSpec named 'image'\n", + "[info] [gxf_executor.cpp:1767] creating input IOSpec named 'study_selected_series_list'\n", + "[info] [gxf_executor.cpp:1767] creating input IOSpec named 'text'\n", + "[info] [gxf_executor.cpp:2178] Activating Graph...\n", + "[info] [gxf_executor.cpp:2208] Running Graph...\n", + "[info] [gxf_executor.cpp:2210] Waiting for completion...\n", + "[info] [greedy_scheduler.cpp:191] Scheduling 3 entities\n", "/home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages/monai/data/meta_tensor.py:116: UserWarning: The given NumPy array is not writable, and PyTorch does not support non-writable tensors. This means writing to this tensor will result in undefined behavior. You may want to copy the array to protect its data or make it writable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at ../torch/csrc/utils/tensor_numpy.cpp:206.)\n", " return torch.as_tensor(x, *args, **_kwargs).as_subclass(cls)\n", - "/home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages/pydicom/valuerep.py:443: UserWarning: Invalid value for VR UI: 'xyz'. Please see for allowed values for each VR.\n", - " warnings.warn(msg)\n", - "[2024-04-23 15:41:04,196] [INFO] (root) - Finished writing DICOM instance to file output/1.2.826.0.1.3680043.8.498.35898050102915969373889764509894247367.dcm\n", - "[2024-04-23 15:41:04,198] [INFO] (monai.deploy.operators.dicom_text_sr_writer_operator.DICOMTextSRWriterOperator) - DICOM SOP instance saved in output/1.2.826.0.1.3680043.8.498.35898050102915969373889764509894247367.dcm\n" + "[2025-01-16 15:26:34,118] [WARNING] (pydicom) - 'Dataset.is_implicit_VR' will be removed in v4.0, set the Transfer Syntax UID or use the 'implicit_vr' argument with Dataset.save_as() or dcmwrite() instead\n", + "[2025-01-16 15:26:34,122] [WARNING] (pydicom) - 'Dataset.is_little_endian' will be removed in v4.0, set the Transfer Syntax UID or use the 'little_endian' argument with Dataset.save_as() or dcmwrite() instead\n", + "[2025-01-16 15:26:34,127] [WARNING] (pydicom) - Invalid value for VR UI: 'xyz'. Please see for allowed values for each VR.\n", + "/home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages/pydicom/valuerep.py:440: UserWarning: Invalid value for VR UI: 'xyz'. Please see for allowed values for each VR.\n", + " warn_and_log(msg)\n", + "[2025-01-16 15:26:34,140] [WARNING] (pydicom) - 'write_like_original' is deprecated and will be removed in v4.0, please use 'enforce_file_format' instead\n", + "[2025-01-16 15:26:34,154] [INFO] (root) - Finished writing DICOM instance to file output/1.2.826.0.1.3680043.8.498.93995131736580848135236915797288568855.dcm\n", + "[2025-01-16 15:26:34,160] [INFO] (monai.deploy.operators.dicom_text_sr_writer_operator.DICOMTextSRWriterOperator) - DICOM SOP instance saved in output/1.2.826.0.1.3680043.8.498.93995131736580848135236915797288568855.dcm\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "AbdomenCT\n", - "\u001b[0m2024-04-23 15:41:04.199 INFO gxf/std/greedy_scheduler.cpp@372: Scheduler stopped: Some entities are waiting for execution, but there are no periodic or async entities to get out of the deadlock.\u001b[0m\n", - "\u001b[0m2024-04-23 15:41:04.200 INFO gxf/std/greedy_scheduler.cpp@401: Scheduler finished.\u001b[0m\n" + "AbdomenCT\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "[info] [gxf_executor.cpp:1879] Deactivating Graph...\n", - "[info] [gxf_executor.cpp:1887] Graph execution finished.\n", - "[info] [gxf_executor.cpp:275] Destroying context\n" + "[info] [greedy_scheduler.cpp:372] Scheduler stopped: Some entities are waiting for execution, but there are no periodic or async entities to get out of the deadlock.\n", + "[info] [greedy_scheduler.cpp:401] Scheduler finished.\n", + "[info] [gxf_executor.cpp:2213] Deactivating Graph...\n", + "[info] [gxf_executor.cpp:2221] Graph execution finished.\n", + "[info] [gxf_executor.cpp:292] Destroying context\n" ] } ], @@ -1486,7 +1368,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 35, "metadata": {}, "outputs": [ { @@ -1520,7 +1402,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 36, "metadata": {}, "outputs": [], "source": [ @@ -1530,7 +1412,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 37, "metadata": {}, "outputs": [ { @@ -1795,161 +1677,169 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 38, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "[2024-04-23 15:41:08,736] [INFO] (root) - Parsed args: Namespace(log_level='DEBUG', input=PosixPath('/home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/input'), output=PosixPath('/home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/output'), model=PosixPath('/home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/models'), workdir=None, argv=['mednist_app/mednist_classifier_monaideploy.py', '-i', 'input', '-o', 'output', '-m', 'models', '-l', 'DEBUG'])\n", - "[2024-04-23 15:41:08,740] [INFO] (root) - AppContext object: AppContext(input_path=/home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/input, output_path=/home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/output, model_path=/home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/models, workdir=)\n", - "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:247] Creating context\n", - "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:1672] Loading extensions from configs...\n", - "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:1842] Activating Graph...\n", - "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:1874] Running Graph...\n", - "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:1876] Waiting for completion...\n", - "\u001b[0m2024-04-23 15:41:08.763 INFO gxf/std/greedy_scheduler.cpp@191: Scheduling 3 entities\u001b[0m\n", + "[\u001b[32minfo\u001b[m] [fragment.cpp:588] Loading extensions from configs...\n", + "[2025-01-16 15:30:21,251] [INFO] (root) - Parsed args: Namespace(log_level='DEBUG', input=PosixPath('/home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/input'), output=PosixPath('/home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/output'), model=PosixPath('/home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/models'), workdir=None, argv=['mednist_app/mednist_classifier_monaideploy.py', '-i', 'input', '-o', 'output', '-m', 'models', '-l', 'DEBUG'])\n", + "[2025-01-16 15:30:21,312] [INFO] (root) - AppContext object: AppContext(input_path=/home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/input, output_path=/home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/output, model_path=/home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/models, workdir=)\n", + "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:262] Creating context\n", + "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:1767] creating input IOSpec named 'output_folder'\n", + "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:1767] creating input IOSpec named 'image'\n", + "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:1767] creating input IOSpec named 'study_selected_series_list'\n", + "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:1767] creating input IOSpec named 'text'\n", + "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:2178] Activating Graph...\n", + "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:2208] Running Graph...\n", + "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:2210] Waiting for completion...\n", + "[\u001b[32minfo\u001b[m] [greedy_scheduler.cpp:191] Scheduling 3 entities\n", "/home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages/monai/data/meta_tensor.py:116: UserWarning: The given NumPy array is not writable, and PyTorch does not support non-writable tensors. This means writing to this tensor will result in undefined behavior. You may want to copy the array to protect its data or make it writable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at ../torch/csrc/utils/tensor_numpy.cpp:206.)\n", " return torch.as_tensor(x, *args, **_kwargs).as_subclass(cls)\n", "AbdomenCT\n", - "[2024-04-23 15:41:10,980] [DEBUG] (monai.deploy.operators.dicom_text_sr_writer_operator.DICOMTextSRWriterOperator) - Writing DICOM object...\n", - "\n", - "[2024-04-23 15:41:10,980] [DEBUG] (root) - Writing DICOM common modules...\n", - "/home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages/pydicom/valuerep.py:443: UserWarning: Invalid value for VR UI: 'xyz'. Please see for allowed values for each VR.\n", - " warnings.warn(msg)\n", - "[2024-04-23 15:41:10,983] [DEBUG] (root) - DICOM common modules written:\n", + "[2025-01-16 15:30:28,728] [DEBUG] (monai.deploy.operators.dicom_text_sr_writer_operator.DICOMTextSRWriterOperator) - Writing DICOM object...\n", + "\n", + "[2025-01-16 15:30:28,728] [DEBUG] (root) - Writing DICOM common modules...\n", + "[2025-01-16 15:30:28,733] [WARNING] (pydicom) - 'Dataset.is_implicit_VR' will be removed in v4.0, set the Transfer Syntax UID or use the 'implicit_vr' argument with Dataset.save_as() or dcmwrite() instead\n", + "[2025-01-16 15:30:28,733] [WARNING] (pydicom) - 'Dataset.is_little_endian' will be removed in v4.0, set the Transfer Syntax UID or use the 'little_endian' argument with Dataset.save_as() or dcmwrite() instead\n", + "[2025-01-16 15:30:28,734] [WARNING] (pydicom) - Invalid value for VR UI: 'xyz'. Please see for allowed values for each VR.\n", + "/home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages/pydicom/valuerep.py:440: UserWarning: Invalid value for VR UI: 'xyz'. Please see for allowed values for each VR.\n", + " warn_and_log(msg)\n", + "[2025-01-16 15:30:28,738] [DEBUG] (root) - DICOM common modules written:\n", "Dataset.file_meta -------------------------------\n", - "(0002, 0000) File Meta Information Group Length UL: 198\n", - "(0002, 0001) File Meta Information Version OB: b'01'\n", - "(0002, 0002) Media Storage SOP Class UID UI: Basic Text SR Storage\n", - "(0002, 0003) Media Storage SOP Instance UID UI: 1.2.826.0.1.3680043.8.498.10612655328316632493342405878828496728\n", - "(0002, 0010) Transfer Syntax UID UI: Implicit VR Little Endian\n", - "(0002, 0012) Implementation Class UID UI: 1.2.40.0.13.1.1.1\n", - "(0002, 0013) Implementation Version Name SH: '0.5.1+20.gb8697'\n", + "(0002,0000) File Meta Information Group Length UL: 198\n", + "(0002,0001) File Meta Information Version OB: b'01'\n", + "(0002,0002) Media Storage SOP Class UID UI: Basic Text SR Storage\n", + "(0002,0003) Media Storage SOP Instance UID UI: 1.2.826.0.1.3680043.8.498.13684611543954986424990493574500114133\n", + "(0002,0010) Transfer Syntax UID UI: Implicit VR Little Endian\n", + "(0002,0012) Implementation Class UID UI: 1.2.40.0.13.1.1.1\n", + "(0002,0013) Implementation Version Name SH: '2.0.0'\n", "-------------------------------------------------\n", - "(0008, 0005) Specific Character Set CS: 'ISO_IR 100'\n", - "(0008, 0012) Instance Creation Date DA: '20240423'\n", - "(0008, 0013) Instance Creation Time TM: '154110'\n", - "(0008, 0016) SOP Class UID UI: Basic Text SR Storage\n", - "(0008, 0018) SOP Instance UID UI: 1.2.826.0.1.3680043.8.498.10612655328316632493342405878828496728\n", - "(0008, 0020) Study Date DA: '20240423'\n", - "(0008, 0021) Series Date DA: '20240423'\n", - "(0008, 0023) Content Date DA: '20240423'\n", - "(0008, 002a) Acquisition DateTime DT: '20240423154110'\n", - "(0008, 0030) Study Time TM: '154110'\n", - "(0008, 0031) Series Time TM: '154110'\n", - "(0008, 0033) Content Time TM: '154110'\n", - "(0008, 0050) Accession Number SH: ''\n", - "(0008, 0060) Modality CS: 'SR'\n", - "(0008, 0070) Manufacturer LO: 'MOANI Deploy App SDK'\n", - "(0008, 0090) Referring Physician's Name PN: ''\n", - "(0008, 0201) Timezone Offset From UTC SH: '-0700'\n", - "(0008, 1030) Study Description LO: 'AI results.'\n", - "(0008, 103e) Series Description LO: 'CAUTION: Not for Diagnostic Use, for research use only.'\n", - "(0008, 1090) Manufacturer's Model Name LO: 'DICOM SR Writer'\n", - "(0010, 0010) Patient's Name PN: ''\n", - "(0010, 0020) Patient ID LO: ''\n", - "(0010, 0021) Issuer of Patient ID LO: ''\n", - "(0010, 0030) Patient's Birth Date DA: ''\n", - "(0010, 0040) Patient's Sex CS: ''\n", - "(0018, 0015) Body Part Examined CS: ''\n", - "(0018, 1020) Software Versions LO: '0.5.1+20.gb8697'\n", - "(0018, a001) Contributing Equipment Sequence 1 item(s) ---- \n", - " (0008, 0070) Manufacturer LO: 'MONAI WG Trainer'\n", - " (0008, 1090) Manufacturer's Model Name LO: 'MEDNIST Classifier'\n", - " (0018, 1002) Device UID UI: xyz\n", - " (0018, 1020) Software Versions LO: '0.1'\n", - " (0040, a170) Purpose of Reference Code Sequence 1 item(s) ---- \n", - " (0008, 0100) Code Value SH: 'Newcode1'\n", - " (0008, 0102) Coding Scheme Designator SH: '99IHE'\n", - " (0008, 0104) Code Meaning LO: '\"Processing Algorithm'\n", + "(0008,0005) Specific Character Set CS: 'ISO_IR 100'\n", + "(0008,0012) Instance Creation Date DA: '20250116'\n", + "(0008,0013) Instance Creation Time TM: '153028'\n", + "(0008,0016) SOP Class UID UI: Basic Text SR Storage\n", + "(0008,0018) SOP Instance UID UI: 1.2.826.0.1.3680043.8.498.13684611543954986424990493574500114133\n", + "(0008,0020) Study Date DA: '20250116'\n", + "(0008,0021) Series Date DA: '20250116'\n", + "(0008,0023) Content Date DA: '20250116'\n", + "(0008,002A) Acquisition DateTime DT: '20250116153028'\n", + "(0008,0030) Study Time TM: '153028'\n", + "(0008,0031) Series Time TM: '153028'\n", + "(0008,0033) Content Time TM: '153028'\n", + "(0008,0050) Accession Number SH: ''\n", + "(0008,0060) Modality CS: 'SR'\n", + "(0008,0070) Manufacturer LO: 'MOANI Deploy App SDK'\n", + "(0008,0090) Referring Physician's Name PN: ''\n", + "(0008,0201) Timezone Offset From UTC SH: '-0800'\n", + "(0008,1030) Study Description LO: 'AI results.'\n", + "(0008,103E) Series Description LO: 'CAUTION: Not for Diagnostic Use, for research use only.'\n", + "(0008,1090) Manufacturer's Model Name LO: 'DICOM SR Writer'\n", + "(0010,0010) Patient's Name PN: ''\n", + "(0010,0020) Patient ID LO: ''\n", + "(0010,0021) Issuer of Patient ID LO: ''\n", + "(0010,0030) Patient's Birth Date DA: ''\n", + "(0010,0040) Patient's Sex CS: ''\n", + "(0018,0015) Body Part Examined CS: ''\n", + "(0018,1020) Software Versions LO: '2.0.0'\n", + "(0018,A001) Contributing Equipment Sequence 1 item(s) ---- \n", + " (0008,0070) Manufacturer LO: 'MONAI WG Trainer'\n", + " (0008,1090) Manufacturer's Model Name LO: 'MEDNIST Classifier'\n", + " (0018,1002) Device UID UI: xyz\n", + " (0018,1020) Software Versions LO: '0.1'\n", + " (0040,A170) Purpose of Reference Code Sequence 1 item(s) ---- \n", + " (0008,0100) Code Value SH: 'Newcode1'\n", + " (0008,0102) Coding Scheme Designator SH: '99IHE'\n", + " (0008,0104) Code Meaning LO: '\"Processing Algorithm'\n", " ---------\n", " ---------\n", - "(0020, 000d) Study Instance UID UI: 1.2.826.0.1.3680043.8.498.12077853224410842102200362099184100728\n", - "(0020, 000e) Series Instance UID UI: 1.2.826.0.1.3680043.8.498.11250566385163932995456431918851640579\n", - "(0020, 0010) Study ID SH: '1'\n", - "(0020, 0011) Series Number IS: '2474'\n", - "(0020, 0013) Instance Number IS: '1'\n", - "(0040, 1001) Requested Procedure ID SH: ''\n", - "[2024-04-23 15:41:10,984] [DEBUG] (root) - DICOM dataset to be written:Dataset.file_meta -------------------------------\n", - "(0002, 0000) File Meta Information Group Length UL: 198\n", - "(0002, 0001) File Meta Information Version OB: b'01'\n", - "(0002, 0002) Media Storage SOP Class UID UI: Basic Text SR Storage\n", - "(0002, 0003) Media Storage SOP Instance UID UI: 1.2.826.0.1.3680043.8.498.10612655328316632493342405878828496728\n", - "(0002, 0010) Transfer Syntax UID UI: Implicit VR Little Endian\n", - "(0002, 0012) Implementation Class UID UI: 1.2.40.0.13.1.1.1\n", - "(0002, 0013) Implementation Version Name SH: '0.5.1+20.gb8697'\n", + "(0020,000D) Study Instance UID UI: 1.2.826.0.1.3680043.8.498.39702691697742919696761863378444809409\n", + "(0020,000E) Series Instance UID UI: 1.2.826.0.1.3680043.8.498.77611673418592382830839709647664909683\n", + "(0020,0010) Study ID SH: '1'\n", + "(0020,0011) Series Number IS: '4686'\n", + "(0020,0013) Instance Number IS: '1'\n", + "(0040,1001) Requested Procedure ID SH: ''\n", + "[2025-01-16 15:30:28,740] [DEBUG] (root) - DICOM dataset to be written:Dataset.file_meta -------------------------------\n", + "(0002,0000) File Meta Information Group Length UL: 198\n", + "(0002,0001) File Meta Information Version OB: b'01'\n", + "(0002,0002) Media Storage SOP Class UID UI: Basic Text SR Storage\n", + "(0002,0003) Media Storage SOP Instance UID UI: 1.2.826.0.1.3680043.8.498.13684611543954986424990493574500114133\n", + "(0002,0010) Transfer Syntax UID UI: Implicit VR Little Endian\n", + "(0002,0012) Implementation Class UID UI: 1.2.40.0.13.1.1.1\n", + "(0002,0013) Implementation Version Name SH: '2.0.0'\n", "-------------------------------------------------\n", - "(0008, 0005) Specific Character Set CS: 'ISO_IR 100'\n", - "(0008, 0012) Instance Creation Date DA: '20240423'\n", - "(0008, 0013) Instance Creation Time TM: '154110'\n", - "(0008, 0016) SOP Class UID UI: Basic Text SR Storage\n", - "(0008, 0018) SOP Instance UID UI: 1.2.826.0.1.3680043.8.498.10612655328316632493342405878828496728\n", - "(0008, 0020) Study Date DA: '20240423'\n", - "(0008, 0021) Series Date DA: '20240423'\n", - "(0008, 0023) Content Date DA: '20240423'\n", - "(0008, 002a) Acquisition DateTime DT: '20240423154110'\n", - "(0008, 0030) Study Time TM: '154110'\n", - "(0008, 0031) Series Time TM: '154110'\n", - "(0008, 0033) Content Time TM: '154110'\n", - "(0008, 0050) Accession Number SH: ''\n", - "(0008, 0060) Modality CS: 'SR'\n", - "(0008, 0070) Manufacturer LO: 'MOANI Deploy App SDK'\n", - "(0008, 0090) Referring Physician's Name PN: ''\n", - "(0008, 0201) Timezone Offset From UTC SH: '-0700'\n", - "(0008, 1030) Study Description LO: 'AI results.'\n", - "(0008, 103e) Series Description LO: 'Not for clinical use. The result is for research use only.'\n", - "(0008, 1090) Manufacturer's Model Name LO: 'DICOM SR Writer'\n", - "(0010, 0010) Patient's Name PN: ''\n", - "(0010, 0020) Patient ID LO: ''\n", - "(0010, 0021) Issuer of Patient ID LO: ''\n", - "(0010, 0030) Patient's Birth Date DA: ''\n", - "(0010, 0040) Patient's Sex CS: ''\n", - "(0018, 0015) Body Part Examined CS: ''\n", - "(0018, 1020) Software Versions LO: '0.5.1+20.gb8697'\n", - "(0018, a001) Contributing Equipment Sequence 1 item(s) ---- \n", - " (0008, 0070) Manufacturer LO: 'MONAI WG Trainer'\n", - " (0008, 1090) Manufacturer's Model Name LO: 'MEDNIST Classifier'\n", - " (0018, 1002) Device UID UI: xyz\n", - " (0018, 1020) Software Versions LO: '0.1'\n", - " (0040, a170) Purpose of Reference Code Sequence 1 item(s) ---- \n", - " (0008, 0100) Code Value SH: 'Newcode1'\n", - " (0008, 0102) Coding Scheme Designator SH: '99IHE'\n", - " (0008, 0104) Code Meaning LO: '\"Processing Algorithm'\n", + "(0008,0005) Specific Character Set CS: 'ISO_IR 100'\n", + "(0008,0012) Instance Creation Date DA: '20250116'\n", + "(0008,0013) Instance Creation Time TM: '153028'\n", + "(0008,0016) SOP Class UID UI: Basic Text SR Storage\n", + "(0008,0018) SOP Instance UID UI: 1.2.826.0.1.3680043.8.498.13684611543954986424990493574500114133\n", + "(0008,0020) Study Date DA: '20250116'\n", + "(0008,0021) Series Date DA: '20250116'\n", + "(0008,0023) Content Date DA: '20250116'\n", + "(0008,002A) Acquisition DateTime DT: '20250116153028'\n", + "(0008,0030) Study Time TM: '153028'\n", + "(0008,0031) Series Time TM: '153028'\n", + "(0008,0033) Content Time TM: '153028'\n", + "(0008,0050) Accession Number SH: ''\n", + "(0008,0060) Modality CS: 'SR'\n", + "(0008,0070) Manufacturer LO: 'MOANI Deploy App SDK'\n", + "(0008,0090) Referring Physician's Name PN: ''\n", + "(0008,0201) Timezone Offset From UTC SH: '-0800'\n", + "(0008,1030) Study Description LO: 'AI results.'\n", + "(0008,103E) Series Description LO: 'Not for clinical use. The result is for research use only.'\n", + "(0008,1090) Manufacturer's Model Name LO: 'DICOM SR Writer'\n", + "(0010,0010) Patient's Name PN: ''\n", + "(0010,0020) Patient ID LO: ''\n", + "(0010,0021) Issuer of Patient ID LO: ''\n", + "(0010,0030) Patient's Birth Date DA: ''\n", + "(0010,0040) Patient's Sex CS: ''\n", + "(0018,0015) Body Part Examined CS: ''\n", + "(0018,1020) Software Versions LO: '2.0.0'\n", + "(0018,A001) Contributing Equipment Sequence 1 item(s) ---- \n", + " (0008,0070) Manufacturer LO: 'MONAI WG Trainer'\n", + " (0008,1090) Manufacturer's Model Name LO: 'MEDNIST Classifier'\n", + " (0018,1002) Device UID UI: xyz\n", + " (0018,1020) Software Versions LO: '0.1'\n", + " (0040,A170) Purpose of Reference Code Sequence 1 item(s) ---- \n", + " (0008,0100) Code Value SH: 'Newcode1'\n", + " (0008,0102) Coding Scheme Designator SH: '99IHE'\n", + " (0008,0104) Code Meaning LO: '\"Processing Algorithm'\n", " ---------\n", " ---------\n", - "(0020, 000d) Study Instance UID UI: 1.2.826.0.1.3680043.8.498.12077853224410842102200362099184100728\n", - "(0020, 000e) Series Instance UID UI: 1.2.826.0.1.3680043.8.498.11250566385163932995456431918851640579\n", - "(0020, 0010) Study ID SH: '1'\n", - "(0020, 0011) Series Number IS: '2474'\n", - "(0020, 0013) Instance Number IS: '1'\n", - "(0040, 1001) Requested Procedure ID SH: ''\n", - "(0040, a040) Value Type CS: 'CONTAINER'\n", - "(0040, a043) Concept Name Code Sequence 1 item(s) ---- \n", - " (0008, 0100) Code Value SH: '18748-4'\n", - " (0008, 0102) Coding Scheme Designator SH: 'LN'\n", - " (0008, 0104) Code Meaning LO: 'Diagnostic Imaging Report'\n", + "(0020,000D) Study Instance UID UI: 1.2.826.0.1.3680043.8.498.39702691697742919696761863378444809409\n", + "(0020,000E) Series Instance UID UI: 1.2.826.0.1.3680043.8.498.77611673418592382830839709647664909683\n", + "(0020,0010) Study ID SH: '1'\n", + "(0020,0011) Series Number IS: '4686'\n", + "(0020,0013) Instance Number IS: '1'\n", + "(0040,1001) Requested Procedure ID SH: ''\n", + "(0040,A040) Value Type CS: 'CONTAINER'\n", + "(0040,A043) Concept Name Code Sequence 1 item(s) ---- \n", + " (0008,0100) Code Value SH: '18748-4'\n", + " (0008,0102) Coding Scheme Designator SH: 'LN'\n", + " (0008,0104) Code Meaning LO: 'Diagnostic Imaging Report'\n", " ---------\n", - "(0040, a050) Continuity Of Content CS: 'SEPARATE'\n", - "(0040, a493) Verification Flag CS: 'UNVERIFIED'\n", - "(0040, a730) Content Sequence 1 item(s) ---- \n", - " (0040, a010) Relationship Type CS: 'CONTAINS'\n", - " (0040, a040) Value Type CS: 'TEXT'\n", - " (0040, a043) Concept Name Code Sequence 1 item(s) ---- \n", - " (0008, 0100) Code Value SH: '111412'\n", - " (0008, 0102) Coding Scheme Designator SH: 'DCM'\n", - " (0008, 0104) Code Meaning LO: 'Narrative Summary'\n", + "(0040,A050) Continuity Of Content CS: 'SEPARATE'\n", + "(0040,A493) Verification Flag CS: 'UNVERIFIED'\n", + "(0040,A730) Content Sequence 1 item(s) ---- \n", + " (0040,A010) Relationship Type CS: 'CONTAINS'\n", + " (0040,A040) Value Type CS: 'TEXT'\n", + " (0040,A043) Concept Name Code Sequence 1 item(s) ---- \n", + " (0008,0100) Code Value SH: '111412'\n", + " (0008,0102) Coding Scheme Designator SH: 'DCM'\n", + " (0008,0104) Code Meaning LO: 'Narrative Summary'\n", " ---------\n", - " (0040, a160) Text Value UT: 'AbdomenCT'\n", + " (0040,A160) Text Value UT: 'AbdomenCT'\n", " ---------\n", - "[2024-04-23 15:41:10,987] [INFO] (root) - Finished writing DICOM instance to file /home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/output/1.2.826.0.1.3680043.8.498.10612655328316632493342405878828496728.dcm\n", - "[2024-04-23 15:41:10,988] [INFO] (monai.deploy.operators.dicom_text_sr_writer_operator.DICOMTextSRWriterOperator) - DICOM SOP instance saved in /home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/output/1.2.826.0.1.3680043.8.498.10612655328316632493342405878828496728.dcm\n", - "\u001b[0m2024-04-23 15:41:10.988 INFO gxf/std/greedy_scheduler.cpp@372: Scheduler stopped: Some entities are waiting for execution, but there are no periodic or async entities to get out of the deadlock.\u001b[0m\n", - "\u001b[0m2024-04-23 15:41:10.988 INFO gxf/std/greedy_scheduler.cpp@401: Scheduler finished.\u001b[0m\n", - "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:1879] Deactivating Graph...\n", - "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:1887] Graph execution finished.\n", - "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:275] Destroying context\n" + "[2025-01-16 15:30:28,740] [WARNING] (pydicom) - 'write_like_original' is deprecated and will be removed in v4.0, please use 'enforce_file_format' instead\n", + "[2025-01-16 15:30:28,745] [INFO] (root) - Finished writing DICOM instance to file /home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/output/1.2.826.0.1.3680043.8.498.13684611543954986424990493574500114133.dcm\n", + "[2025-01-16 15:30:28,748] [INFO] (monai.deploy.operators.dicom_text_sr_writer_operator.DICOMTextSRWriterOperator) - DICOM SOP instance saved in /home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/output/1.2.826.0.1.3680043.8.498.13684611543954986424990493574500114133.dcm\n", + "[\u001b[32minfo\u001b[m] [greedy_scheduler.cpp:372] Scheduler stopped: Some entities are waiting for execution, but there are no periodic or async entities to get out of the deadlock.\n", + "[\u001b[32minfo\u001b[m] [greedy_scheduler.cpp:401] Scheduler finished.\n", + "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:2213] Deactivating Graph...\n", + "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:2221] Graph execution finished.\n", + "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:292] Destroying context\n" ] } ], @@ -1959,7 +1849,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 39, "metadata": {}, "outputs": [ { @@ -1986,7 +1876,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 40, "metadata": {}, "outputs": [ { @@ -2016,7 +1906,7 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 41, "metadata": {}, "outputs": [ { @@ -2034,7 +1924,8 @@ "pydicom>=2.3.0\n", "highdicom>=0.18.2\n", "SimpleITK>=2.0.0\n", - "setuptools>=59.5.0 # for pkg_resources" + "setuptools>=59.5.0 # for pkg_resources\n", + "holoscan==2.6.0 # avoid v2.7 and v2.8 for a known issue" ] }, { @@ -2047,7 +1938,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": ".venv", "language": "python", "name": "python3" }, diff --git a/notebooks/tutorials/02_mednist_app.ipynb b/notebooks/tutorials/02_mednist_app.ipynb index 57212003..c04812cf 100644 --- a/notebooks/tutorials/02_mednist_app.ipynb +++ b/notebooks/tutorials/02_mednist_app.ipynb @@ -29,7 +29,16 @@ "cell_type": "code", "execution_count": 1, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "/home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages/ignite/handlers/checkpoint.py:17: DeprecationWarning: `TorchScript` support for functional optimizers is deprecated and will be removed in a future PyTorch release. Consider using the `torch.compile` optimizer instead.\n", + " from torch.distributed.optim import ZeroRedundancyOptimizer\n" + ] + } + ], "source": [ "# Install necessary packages for MONAI Core\n", "!python -c \"import monai\" || pip install -q \"monai[pillow, tqdm]\"\n", @@ -56,30 +65,38 @@ "tags": [] }, "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages/ignite/handlers/checkpoint.py:17: DeprecationWarning: `TorchScript` support for functional optimizers is deprecated and will be removed in a future PyTorch release. Consider using the `torch.compile` optimizer instead.\n", + " from torch.distributed.optim import ZeroRedundancyOptimizer\n" + ] + }, { "name": "stdout", "output_type": "stream", "text": [ - "MONAI version: 1.3.0\n", + "MONAI version: 1.4.0\n", "Numpy version: 1.26.4\n", - "Pytorch version: 2.0.1+cu117\n", + "Pytorch version: 2.5.1+cu124\n", "MONAI flags: HAS_EXT = False, USE_COMPILED = False, USE_META_DICT = False\n", - "MONAI rev id: 865972f7a791bf7b42efbcd87c8402bd865b329e\n", + "MONAI rev id: 46a5272196a6c2590ca2589029eed8e4d56ff008\n", "MONAI __file__: /home//src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages/monai/__init__.py\n", "\n", "Optional dependencies:\n", "Pytorch Ignite version: 0.4.11\n", "ITK version: NOT INSTALLED or UNKNOWN VERSION.\n", - "Nibabel version: 5.2.1\n", - "scikit-image version: 0.23.2\n", - "scipy version: 1.13.0\n", - "Pillow version: 10.3.0\n", + "Nibabel version: 5.3.2\n", + "scikit-image version: 0.25.0\n", + "scipy version: 1.15.1\n", + "Pillow version: 11.1.0\n", "Tensorboard version: NOT INSTALLED or UNKNOWN VERSION.\n", - "gdown version: 4.7.3\n", + "gdown version: 5.2.0\n", "TorchVision version: NOT INSTALLED or UNKNOWN VERSION.\n", - "tqdm version: 4.66.2\n", + "tqdm version: 4.67.1\n", "lmdb version: NOT INSTALLED or UNKNOWN VERSION.\n", - "psutil version: 5.9.6\n", + "psutil version: 6.1.1\n", "pandas version: NOT INSTALLED or UNKNOWN VERSION.\n", "einops version: NOT INSTALLED or UNKNOWN VERSION.\n", "transformers version: NOT INSTALLED or UNKNOWN VERSION.\n", @@ -149,12 +166,14 @@ "The dataset is kindly made available by [Dr. Bradley J. Erickson M.D., Ph.D.](https://www.mayo.edu/research/labs/radiology-informatics/overview) (Department of Radiology, Mayo Clinic)\n", "under the Creative Commons [CC BY-SA 4.0 license](https://creativecommons.org/licenses/by-sa/4.0/).\n", "\n", - "If you use the MedNIST dataset, please acknowledge the source." + "If you use the MedNIST dataset, please acknowledge the source.\n", + "\n", + "**_Note:_** Data files are now access controlled. Please first request permission to access the [shared folder on Google Drive](https://drive.google.com/drive/folders/1Z9s3JB2YdKjcw8ELwjVYJcCEvqlQ_HTN?usp=drive_link)" ] }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "metadata": { "tags": [] }, @@ -163,46 +182,16 @@ "name": "stdout", "output_type": "stream", "text": [ - "/tmp/tmp0iht_c0l\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Downloading...\n", - "From (original): https://drive.google.com/uc?id=1QsnnkvZyJPcbRoV_ArW8SnE1OTuoVbKE\n", - "From (redirected): https://drive.google.com/uc?id=1QsnnkvZyJPcbRoV_ArW8SnE1OTuoVbKE&confirm=t&uuid=af0469cc-fefc-4bd4-9ba2-60e15ffc2168\n", - "To: /tmp/tmpquityog6/MedNIST.tar.gz\n", - "100%|██████████| 61.8M/61.8M [00:00<00:00, 66.5MB/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2024-04-23 17:01:37,537 - INFO - Downloaded: /tmp/tmp0iht_c0l/MedNIST.tar.gz\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2024-04-23 17:01:37,643 - INFO - Verified 'MedNIST.tar.gz', md5: 0bc7306e7427e00ad1c5526a6677552d.\n", - "2024-04-23 17:01:37,644 - INFO - Writing into directory: /tmp/tmp0iht_c0l.\n" + ".\n", + "2025-01-16 12:16:03,094 - INFO - Verified 'MedNIST.tar.gz', md5: 0bc7306e7427e00ad1c5526a6677552d.\n", + "2025-01-16 12:16:03,094 - INFO - File exists: MedNIST.tar.gz, skipped downloading.\n", + "2025-01-16 12:16:03,095 - INFO - Writing into directory: ..\n" ] } ], "source": [ "directory = os.environ.get(\"MONAI_DATA_DIRECTORY\")\n", - "root_dir = tempfile.mkdtemp() if directory is None else directory\n", + "root_dir = os.path.curdir + \"MedNIST_DATA\" if directory is None else directory\n", "print(root_dir)\n", "\n", "resource = \"https://drive.google.com/uc?id=1QsnnkvZyJPcbRoV_ArW8SnE1OTuoVbKE\"\n", @@ -315,21 +304,9 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Epoch 1/5 Loss: 0.18928290903568268\n", - "Epoch 2/5 Loss: 0.06710730493068695\n", - "Epoch 3/5 Loss: 0.029032323509454727\n", - "Epoch 4/5 Loss: 0.01877668686211109\n", - "Epoch 5/5 Loss: 0.01939055137336254\n" - ] - } - ], + "outputs": [], "source": [ "def _prepare_batch(batch, device, non_blocking):\n", " return tuple(b.to(device) for b in batch)\n", @@ -355,7 +332,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -438,21 +415,9 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "001420.jpeg\n", - "classifier.zip\n", - "env: HOLOSCAN_INPUT_PATH=input\n", - "env: HOLOSCAN_OUTPUT_PATH=output\n", - "env: HOLOSCAN_MODEL_PATH=models\n" - ] - } - ], + "outputs": [], "source": [ "input_folder = \"input\"\n", "output_foler = \"output\"\n", @@ -480,7 +445,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -510,7 +475,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -580,7 +545,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -718,7 +683,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -762,60 +727,9 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "[2024-04-23 17:08:56,466] [INFO] (root) - Parsed args: Namespace(log_level=None, input=None, output=None, model=None, workdir=None, argv=[])\n", - "[2024-04-23 17:08:56,478] [INFO] (root) - AppContext object: AppContext(input_path=input, output_path=output, model_path=models, workdir=)\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\u001b[0m2024-04-23 17:08:56.514 INFO gxf/std/greedy_scheduler.cpp@191: Scheduling 3 entities\u001b[0m\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "[info] [gxf_executor.cpp:247] Creating context\n", - "[info] [gxf_executor.cpp:1672] Loading extensions from configs...\n", - "[info] [gxf_executor.cpp:1842] Activating Graph...\n", - "[info] [gxf_executor.cpp:1874] Running Graph...\n", - "[info] [gxf_executor.cpp:1876] Waiting for completion...\n", - "/home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages/monai/data/meta_tensor.py:116: UserWarning: The given NumPy array is not writable, and PyTorch does not support non-writable tensors. This means writing to this tensor will result in undefined behavior. You may want to copy the array to protect its data or make it writable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at ../torch/csrc/utils/tensor_numpy.cpp:206.)\n", - " return torch.as_tensor(x, *args, **_kwargs).as_subclass(cls)\n", - "/home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages/pydicom/valuerep.py:443: UserWarning: Invalid value for VR UI: 'xyz'. Please see for allowed values for each VR.\n", - " warnings.warn(msg)\n", - "[2024-04-23 17:08:57,259] [INFO] (root) - Finished writing DICOM instance to file output/1.2.826.0.1.3680043.8.498.77299510031662020162686125612902317163.dcm\n", - "[2024-04-23 17:08:57,261] [INFO] (monai.deploy.operators.dicom_text_sr_writer_operator.DICOMTextSRWriterOperator) - DICOM SOP instance saved in output/1.2.826.0.1.3680043.8.498.77299510031662020162686125612902317163.dcm\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "AbdomenCT\n", - "\u001b[0m2024-04-23 17:08:57.263 INFO gxf/std/greedy_scheduler.cpp@372: Scheduler stopped: Some entities are waiting for execution, but there are no periodic or async entities to get out of the deadlock.\u001b[0m\n", - "\u001b[0m2024-04-23 17:08:57.263 INFO gxf/std/greedy_scheduler.cpp@401: Scheduler finished.\u001b[0m\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "[info] [gxf_executor.cpp:1879] Deactivating Graph...\n", - "[info] [gxf_executor.cpp:1887] Graph execution finished.\n", - "[info] [gxf_executor.cpp:275] Destroying context\n" - ] - } - ], + "outputs": [], "source": [ "!rm -rf $HOLOSCAN_OUTPUT_PATH\n", "app = App().run()" @@ -823,17 +737,9 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\"AbdomenCT\"" - ] - } - ], + "outputs": [], "source": [ "!cat $HOLOSCAN_OUTPUT_PATH/output.json" ] @@ -854,7 +760,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -865,17 +771,9 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Writing mednist_app/mednist_classifier_monaideploy.py\n" - ] - } - ], + "outputs": [], "source": [ "%%writefile mednist_app/mednist_classifier_monaideploy.py\n", "\n", @@ -1124,49 +1022,18 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:247] Creating context\n", - "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:1672] Loading extensions from configs...\n", - "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:1842] Activating Graph...\n", - "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:1874] Running Graph...\n", - "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:1876] Waiting for completion...\n", - "\u001b[0m2024-04-23 17:09:01.847 INFO gxf/std/greedy_scheduler.cpp@191: Scheduling 3 entities\u001b[0m\n", - "/home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages/monai/data/meta_tensor.py:116: UserWarning: The given NumPy array is not writable, and PyTorch does not support non-writable tensors. This means writing to this tensor will result in undefined behavior. You may want to copy the array to protect its data or make it writable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at ../torch/csrc/utils/tensor_numpy.cpp:206.)\n", - " return torch.as_tensor(x, *args, **_kwargs).as_subclass(cls)\n", - "AbdomenCT\n", - "/home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages/pydicom/valuerep.py:443: UserWarning: Invalid value for VR UI: 'xyz'. Please see for allowed values for each VR.\n", - " warnings.warn(msg)\n", - "\u001b[0m2024-04-23 17:09:03.971 INFO gxf/std/greedy_scheduler.cpp@372: Scheduler stopped: Some entities are waiting for execution, but there are no periodic or async entities to get out of the deadlock.\u001b[0m\n", - "\u001b[0m2024-04-23 17:09:03.971 INFO gxf/std/greedy_scheduler.cpp@401: Scheduler finished.\u001b[0m\n", - "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:1879] Deactivating Graph...\n", - "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:1887] Graph execution finished.\n", - "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:275] Destroying context\n" - ] - } - ], + "outputs": [], "source": [ "!python \"mednist_app/mednist_classifier_monaideploy.py\"" ] }, { "cell_type": "code", - "execution_count": 20, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\"AbdomenCT\"" - ] - } - ], + "outputs": [], "source": [ "!cat $HOLOSCAN_OUTPUT_PATH/output.json" ] @@ -1189,17 +1056,9 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Writing mednist_app/app.yaml\n" - ] - } - ], + "outputs": [], "source": [ "%%writefile mednist_app/app.yaml\n", "%YAML 1.2\n", @@ -1219,17 +1078,9 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Writing mednist_app/requirements.txt\n" - ] - } - ], + "outputs": [], "source": [ "%%writefile mednist_app/requirements.txt\n", "monai>=1.2.0\n", @@ -1237,472 +1088,15 @@ "pydicom>=2.3.0\n", "highdicom>=0.18.2\n", "SimpleITK>=2.0.0\n", - "setuptools>=59.5.0 # for pkg_resources" + "setuptools>=59.5.0 # for pkg_resources\n", + "holoscan==2.6.0 # avoid v2.7 and v2.8 for a known issue" ] }, { "cell_type": "code", - "execution_count": 23, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[2024-04-23 17:09:06,108] [INFO] (common) - Downloading CLI manifest file...\n", - "[2024-04-23 17:09:06,368] [DEBUG] (common) - Validating CLI manifest file...\n", - "[2024-04-23 17:09:06,371] [INFO] (packager.parameters) - Application: /home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/mednist_app/mednist_classifier_monaideploy.py\n", - "[2024-04-23 17:09:06,372] [INFO] (packager.parameters) - Detected application type: Python File\n", - "[2024-04-23 17:09:06,372] [INFO] (packager) - Scanning for models in /home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/models...\n", - "[2024-04-23 17:09:06,373] [DEBUG] (packager) - Model model=/home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/models/model added.\n", - "[2024-04-23 17:09:06,373] [INFO] (packager) - Reading application configuration from /home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/mednist_app/app.yaml...\n", - "[2024-04-23 17:09:06,378] [INFO] (packager) - Generating app.json...\n", - "[2024-04-23 17:09:06,379] [INFO] (packager) - Generating pkg.json...\n", - "[2024-04-23 17:09:06,393] [DEBUG] (common) - \n", - "=============== Begin app.json ===============\n", - "{\n", - " \"apiVersion\": \"1.0.0\",\n", - " \"command\": \"[\\\"python3\\\", \\\"/opt/holoscan/app/mednist_classifier_monaideploy.py\\\"]\",\n", - " \"environment\": {\n", - " \"HOLOSCAN_APPLICATION\": \"/opt/holoscan/app\",\n", - " \"HOLOSCAN_INPUT_PATH\": \"input/\",\n", - " \"HOLOSCAN_OUTPUT_PATH\": \"output/\",\n", - " \"HOLOSCAN_WORKDIR\": \"/var/holoscan\",\n", - " \"HOLOSCAN_MODEL_PATH\": \"/opt/holoscan/models\",\n", - " \"HOLOSCAN_CONFIG_PATH\": \"/var/holoscan/app.yaml\",\n", - " \"HOLOSCAN_APP_MANIFEST_PATH\": \"/etc/holoscan/app.json\",\n", - " \"HOLOSCAN_PKG_MANIFEST_PATH\": \"/etc/holoscan/pkg.json\",\n", - " \"HOLOSCAN_DOCS_PATH\": \"/opt/holoscan/docs\",\n", - " \"HOLOSCAN_LOGS_PATH\": \"/var/holoscan/logs\"\n", - " },\n", - " \"input\": {\n", - " \"path\": \"input/\",\n", - " \"formats\": null\n", - " },\n", - " \"liveness\": null,\n", - " \"output\": {\n", - " \"path\": \"output/\",\n", - " \"formats\": null\n", - " },\n", - " \"readiness\": null,\n", - " \"sdk\": \"monai-deploy\",\n", - " \"sdkVersion\": \"0.5.1\",\n", - " \"timeout\": 0,\n", - " \"version\": 1.0,\n", - " \"workingDirectory\": \"/var/holoscan\"\n", - "}\n", - "================ End app.json ================\n", - " \n", - "[2024-04-23 17:09:06,393] [DEBUG] (common) - \n", - "=============== Begin pkg.json ===============\n", - "{\n", - " \"apiVersion\": \"1.0.0\",\n", - " \"applicationRoot\": \"/opt/holoscan/app\",\n", - " \"modelRoot\": \"/opt/holoscan/models\",\n", - " \"models\": {\n", - " \"model\": \"/opt/holoscan/models/model\"\n", - " },\n", - " \"resources\": {\n", - " \"cpu\": 1,\n", - " \"gpu\": 1,\n", - " \"memory\": \"1Gi\",\n", - " \"gpuMemory\": \"1Gi\"\n", - " },\n", - " \"version\": 1.0,\n", - " \"platformConfig\": \"dgpu\"\n", - "}\n", - "================ End pkg.json ================\n", - " \n", - "[2024-04-23 17:09:06,435] [DEBUG] (packager.builder) - \n", - "========== Begin Dockerfile ==========\n", - "\n", - "\n", - "FROM nvcr.io/nvidia/clara-holoscan/holoscan:v2.0.0-dgpu\n", - "\n", - "ENV DEBIAN_FRONTEND=noninteractive\n", - "ENV TERM=xterm-256color\n", - "\n", - "ARG UNAME\n", - "ARG UID\n", - "ARG GID\n", - "\n", - "RUN mkdir -p /etc/holoscan/ \\\n", - " && mkdir -p /opt/holoscan/ \\\n", - " && mkdir -p /var/holoscan \\\n", - " && mkdir -p /opt/holoscan/app \\\n", - " && mkdir -p /var/holoscan/input \\\n", - " && mkdir -p /var/holoscan/output\n", - "\n", - "LABEL base=\"nvcr.io/nvidia/clara-holoscan/holoscan:v2.0.0-dgpu\"\n", - "LABEL tag=\"mednist_app:1.0\"\n", - "LABEL org.opencontainers.image.title=\"MONAI Deploy App Package - MedNIST Classifier App\"\n", - "LABEL org.opencontainers.image.version=\"1.0\"\n", - "LABEL org.nvidia.holoscan=\"2.0.0\"\n", - "LABEL org.monai.deploy.app-sdk=\"0.5.1\"\n", - "\n", - "\n", - "ENV HOLOSCAN_ENABLE_HEALTH_CHECK=true\n", - "ENV HOLOSCAN_INPUT_PATH=/var/holoscan/input\n", - "ENV HOLOSCAN_OUTPUT_PATH=/var/holoscan/output\n", - "ENV HOLOSCAN_WORKDIR=/var/holoscan\n", - "ENV HOLOSCAN_APPLICATION=/opt/holoscan/app\n", - "ENV HOLOSCAN_TIMEOUT=0\n", - "ENV HOLOSCAN_MODEL_PATH=/opt/holoscan/models\n", - "ENV HOLOSCAN_DOCS_PATH=/opt/holoscan/docs\n", - "ENV HOLOSCAN_CONFIG_PATH=/var/holoscan/app.yaml\n", - "ENV HOLOSCAN_APP_MANIFEST_PATH=/etc/holoscan/app.json\n", - "ENV HOLOSCAN_PKG_MANIFEST_PATH=/etc/holoscan/pkg.json\n", - "ENV HOLOSCAN_LOGS_PATH=/var/holoscan/logs\n", - "ENV PATH=/root/.local/bin:/opt/nvidia/holoscan:$PATH\n", - "ENV LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/libtorch/1.13.1/lib/:/opt/nvidia/holoscan/lib\n", - "\n", - "RUN apt-get update \\\n", - " && apt-get install -y curl jq \\\n", - " && rm -rf /var/lib/apt/lists/*\n", - "\n", - "ENV PYTHONPATH=\"/opt/holoscan/app:$PYTHONPATH\"\n", - "\n", - "\n", - "RUN groupadd -f -g $GID $UNAME\n", - "RUN useradd -rm -d /home/$UNAME -s /bin/bash -g $GID -G sudo -u $UID $UNAME\n", - "RUN chown -R holoscan /var/holoscan \n", - "RUN chown -R holoscan /var/holoscan/input \n", - "RUN chown -R holoscan /var/holoscan/output \n", - "\n", - "# Set the working directory\n", - "WORKDIR /var/holoscan\n", - "\n", - "# Copy HAP/MAP tool script\n", - "COPY ./tools /var/holoscan/tools\n", - "RUN chmod +x /var/holoscan/tools\n", - "\n", - "\n", - "# Copy gRPC health probe\n", - "\n", - "USER $UNAME\n", - "\n", - "ENV PATH=/root/.local/bin:/home/holoscan/.local/bin:/opt/nvidia/holoscan:$PATH\n", - "\n", - "COPY ./pip/requirements.txt /tmp/requirements.txt\n", - "\n", - "RUN pip install --upgrade pip\n", - "RUN pip install --no-cache-dir --user -r /tmp/requirements.txt\n", - "\n", - " \n", - "# MONAI Deploy\n", - "\n", - "# Copy user-specified MONAI Deploy SDK file\n", - "COPY ./monai_deploy_app_sdk-0.5.1+20.gb869749.dirty-py3-none-any.whl /tmp/monai_deploy_app_sdk-0.5.1+20.gb869749.dirty-py3-none-any.whl\n", - "RUN pip install /tmp/monai_deploy_app_sdk-0.5.1+20.gb869749.dirty-py3-none-any.whl\n", - "\n", - "\n", - "COPY ./models /opt/holoscan/models\n", - "\n", - "COPY ./map/app.json /etc/holoscan/app.json\n", - "COPY ./app.config /var/holoscan/app.yaml\n", - "COPY ./map/pkg.json /etc/holoscan/pkg.json\n", - "\n", - "COPY ./app /opt/holoscan/app\n", - "\n", - "ENTRYPOINT [\"/var/holoscan/tools\"]\n", - "=========== End Dockerfile ===========\n", - "\n", - "[2024-04-23 17:09:06,435] [INFO] (packager.builder) - \n", - "===============================================================================\n", - "Building image for: x64-workstation\n", - " Architecture: linux/amd64\n", - " Base Image: nvcr.io/nvidia/clara-holoscan/holoscan:v2.0.0-dgpu\n", - " Build Image: N/A\n", - " Cache: Enabled\n", - " Configuration: dgpu\n", - " Holoscan SDK Package: pypi.org\n", - " MONAI Deploy App SDK Package: /home/mqin/src/monai-deploy-app-sdk/dist/monai_deploy_app_sdk-0.5.1+20.gb869749.dirty-py3-none-any.whl\n", - " gRPC Health Probe: N/A\n", - " SDK Version: 2.0.0\n", - " SDK: monai-deploy\n", - " Tag: mednist_app-x64-workstation-dgpu-linux-amd64:1.0\n", - " \n", - "[2024-04-23 17:09:06,753] [INFO] (common) - Using existing Docker BuildKit builder `holoscan_app_builder`\n", - "[2024-04-23 17:09:06,753] [DEBUG] (packager.builder) - Building Holoscan Application Package: tag=mednist_app-x64-workstation-dgpu-linux-amd64:1.0\n", - "#0 building with \"holoscan_app_builder\" instance using docker-container driver\n", - "\n", - "#1 [internal] load build definition from Dockerfile\n", - "#1 transferring dockerfile: 2.67kB done\n", - "#1 DONE 0.0s\n", - "\n", - "#2 [internal] load metadata for nvcr.io/nvidia/clara-holoscan/holoscan:v2.0.0-dgpu\n", - "#2 DONE 0.4s\n", - "\n", - "#3 [internal] load .dockerignore\n", - "#3 transferring context: 1.79kB done\n", - "#3 DONE 0.0s\n", - "\n", - "#4 [internal] load build context\n", - "#4 DONE 0.0s\n", - "\n", - "#5 importing cache manifest from local:14814255791215325379\n", - "#5 inferred cache manifest type: application/vnd.oci.image.index.v1+json done\n", - "#5 DONE 0.0s\n", - "\n", - "#6 [ 1/21] FROM nvcr.io/nvidia/clara-holoscan/holoscan:v2.0.0-dgpu@sha256:20adbccd2c7b12dfb1798f6953f071631c3b85cd337858a7506f8e420add6d4a\n", - "#6 resolve nvcr.io/nvidia/clara-holoscan/holoscan:v2.0.0-dgpu@sha256:20adbccd2c7b12dfb1798f6953f071631c3b85cd337858a7506f8e420add6d4a 0.0s done\n", - "#6 DONE 0.0s\n", - "\n", - "#7 importing cache manifest from nvcr.io/nvidia/clara-holoscan/holoscan:v2.0.0-dgpu\n", - "#7 inferred cache manifest type: application/vnd.docker.distribution.manifest.list.v2+json done\n", - "#7 DONE 0.6s\n", - "\n", - "#4 [internal] load build context\n", - "#4 transferring context: 28.76MB 0.2s done\n", - "#4 DONE 0.2s\n", - "\n", - "#8 [ 6/21] RUN chown -R holoscan /var/holoscan\n", - "#8 CACHED\n", - "\n", - "#9 [ 3/21] RUN apt-get update && apt-get install -y curl jq && rm -rf /var/lib/apt/lists/*\n", - "#9 CACHED\n", - "\n", - "#10 [ 5/21] RUN useradd -rm -d /home/holoscan -s /bin/bash -g 1000 -G sudo -u 1000 holoscan\n", - "#10 CACHED\n", - "\n", - "#11 [10/21] COPY ./tools /var/holoscan/tools\n", - "#11 CACHED\n", - "\n", - "#12 [ 4/21] RUN groupadd -f -g 1000 holoscan\n", - "#12 CACHED\n", - "\n", - "#13 [12/21] COPY ./pip/requirements.txt /tmp/requirements.txt\n", - "#13 CACHED\n", - "\n", - "#14 [ 7/21] RUN chown -R holoscan /var/holoscan/input\n", - "#14 CACHED\n", - "\n", - "#15 [ 8/21] RUN chown -R holoscan /var/holoscan/output\n", - "#15 CACHED\n", - "\n", - "#16 [13/21] RUN pip install --upgrade pip\n", - "#16 CACHED\n", - "\n", - "#17 [ 9/21] WORKDIR /var/holoscan\n", - "#17 CACHED\n", - "\n", - "#18 [ 2/21] RUN mkdir -p /etc/holoscan/ && mkdir -p /opt/holoscan/ && mkdir -p /var/holoscan && mkdir -p /opt/holoscan/app && mkdir -p /var/holoscan/input && mkdir -p /var/holoscan/output\n", - "#18 CACHED\n", - "\n", - "#19 [11/21] RUN chmod +x /var/holoscan/tools\n", - "#19 CACHED\n", - "\n", - "#20 [14/21] RUN pip install --no-cache-dir --user -r /tmp/requirements.txt\n", - "#20 CACHED\n", - "\n", - "#21 [15/21] COPY ./monai_deploy_app_sdk-0.5.1+20.gb869749.dirty-py3-none-any.whl /tmp/monai_deploy_app_sdk-0.5.1+20.gb869749.dirty-py3-none-any.whl\n", - "#21 DONE 0.2s\n", - "\n", - "#22 [16/21] RUN pip install /tmp/monai_deploy_app_sdk-0.5.1+20.gb869749.dirty-py3-none-any.whl\n", - "#22 0.646 Defaulting to user installation because normal site-packages is not writeable\n", - "#22 0.740 Processing /tmp/monai_deploy_app_sdk-0.5.1+20.gb869749.dirty-py3-none-any.whl\n", - "#22 0.751 Requirement already satisfied: numpy>=1.21.6 in /usr/local/lib/python3.10/dist-packages (from monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (1.23.5)\n", - "#22 0.850 Collecting holoscan~=2.0 (from monai-deploy-app-sdk==0.5.1+20.gb869749.dirty)\n", - "#22 0.921 Downloading holoscan-2.0.0-cp310-cp310-manylinux_2_35_x86_64.whl.metadata (6.7 kB)\n", - "#22 0.978 Collecting colorama>=0.4.1 (from monai-deploy-app-sdk==0.5.1+20.gb869749.dirty)\n", - "#22 0.982 Downloading colorama-0.4.6-py2.py3-none-any.whl.metadata (17 kB)\n", - "#22 1.026 Collecting typeguard>=3.0.0 (from monai-deploy-app-sdk==0.5.1+20.gb869749.dirty)\n", - "#22 1.030 Downloading typeguard-4.2.1-py3-none-any.whl.metadata (3.7 kB)\n", - "#22 1.044 Requirement already satisfied: pip>=20.3 in /home/holoscan/.local/lib/python3.10/site-packages (from holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (24.0)\n", - "#22 1.045 Requirement already satisfied: cupy-cuda12x==12.2 in /usr/local/lib/python3.10/dist-packages (from holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (12.2.0)\n", - "#22 1.045 Requirement already satisfied: cloudpickle==2.2.1 in /usr/local/lib/python3.10/dist-packages (from holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (2.2.1)\n", - "#22 1.046 Requirement already satisfied: python-on-whales==0.60.1 in /usr/local/lib/python3.10/dist-packages (from holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (0.60.1)\n", - "#22 1.047 Requirement already satisfied: Jinja2==3.1.3 in /usr/local/lib/python3.10/dist-packages (from holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (3.1.3)\n", - "#22 1.048 Requirement already satisfied: packaging==23.1 in /usr/local/lib/python3.10/dist-packages (from holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (23.1)\n", - "#22 1.048 Requirement already satisfied: pyyaml==6.0 in /usr/local/lib/python3.10/dist-packages (from holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (6.0)\n", - "#22 1.049 Requirement already satisfied: requests==2.31.0 in /usr/local/lib/python3.10/dist-packages (from holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (2.31.0)\n", - "#22 1.050 Requirement already satisfied: psutil==5.9.6 in /usr/local/lib/python3.10/dist-packages (from holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (5.9.6)\n", - "#22 1.070 Collecting wheel-axle-runtime<1.0 (from holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty)\n", - "#22 1.075 Downloading wheel_axle_runtime-0.0.5-py3-none-any.whl.metadata (7.7 kB)\n", - "#22 1.107 Requirement already satisfied: fastrlock>=0.5 in /usr/local/lib/python3.10/dist-packages (from cupy-cuda12x==12.2->holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (0.8.2)\n", - "#22 1.112 Requirement already satisfied: MarkupSafe>=2.0 in /usr/local/lib/python3.10/dist-packages (from Jinja2==3.1.3->holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (2.1.3)\n", - "#22 1.126 Requirement already satisfied: pydantic<2,>=1.5 in /usr/local/lib/python3.10/dist-packages (from python-on-whales==0.60.1->holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (1.10.15)\n", - "#22 1.126 Requirement already satisfied: tqdm in /usr/local/lib/python3.10/dist-packages (from python-on-whales==0.60.1->holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (4.66.2)\n", - "#22 1.127 Requirement already satisfied: typer>=0.4.1 in /usr/local/lib/python3.10/dist-packages (from python-on-whales==0.60.1->holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (0.12.3)\n", - "#22 1.128 Requirement already satisfied: typing-extensions in /home/holoscan/.local/lib/python3.10/site-packages (from python-on-whales==0.60.1->holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (4.11.0)\n", - "#22 1.135 Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.10/dist-packages (from requests==2.31.0->holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (3.3.2)\n", - "#22 1.136 Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests==2.31.0->holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (3.7)\n", - "#22 1.137 Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests==2.31.0->holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (2.2.1)\n", - "#22 1.137 Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from requests==2.31.0->holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (2024.2.2)\n", - "#22 1.155 Requirement already satisfied: filelock in /home/holoscan/.local/lib/python3.10/site-packages (from wheel-axle-runtime<1.0->holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (3.13.4)\n", - "#22 1.176 Requirement already satisfied: click>=8.0.0 in /usr/local/lib/python3.10/dist-packages (from typer>=0.4.1->python-on-whales==0.60.1->holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (8.1.7)\n", - "#22 1.177 Requirement already satisfied: shellingham>=1.3.0 in /usr/local/lib/python3.10/dist-packages (from typer>=0.4.1->python-on-whales==0.60.1->holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (1.5.4)\n", - "#22 1.178 Requirement already satisfied: rich>=10.11.0 in /usr/local/lib/python3.10/dist-packages (from typer>=0.4.1->python-on-whales==0.60.1->holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (13.7.1)\n", - "#22 1.212 Requirement already satisfied: markdown-it-py>=2.2.0 in /usr/local/lib/python3.10/dist-packages (from rich>=10.11.0->typer>=0.4.1->python-on-whales==0.60.1->holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (3.0.0)\n", - "#22 1.213 Requirement already satisfied: pygments<3.0.0,>=2.13.0 in /usr/local/lib/python3.10/dist-packages (from rich>=10.11.0->typer>=0.4.1->python-on-whales==0.60.1->holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (2.17.2)\n", - "#22 1.233 Requirement already satisfied: mdurl~=0.1 in /usr/local/lib/python3.10/dist-packages (from markdown-it-py>=2.2.0->rich>=10.11.0->typer>=0.4.1->python-on-whales==0.60.1->holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (0.1.2)\n", - "#22 1.245 Downloading colorama-0.4.6-py2.py3-none-any.whl (25 kB)\n", - "#22 1.260 Downloading holoscan-2.0.0-cp310-cp310-manylinux_2_35_x86_64.whl (33.2 MB)\n", - "#22 1.691 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 33.2/33.2 MB 46.8 MB/s eta 0:00:00\n", - "#22 1.696 Downloading typeguard-4.2.1-py3-none-any.whl (34 kB)\n", - "#22 1.709 Downloading wheel_axle_runtime-0.0.5-py3-none-any.whl (12 kB)\n", - "#22 2.033 Installing collected packages: wheel-axle-runtime, typeguard, colorama, holoscan, monai-deploy-app-sdk\n", - "#22 2.711 Successfully installed colorama-0.4.6 holoscan-2.0.0 monai-deploy-app-sdk-0.5.1+20.gb869749.dirty typeguard-4.2.1 wheel-axle-runtime-0.0.5\n", - "#22 DONE 3.0s\n", - "\n", - "#23 [17/21] COPY ./models /opt/holoscan/models\n", - "#23 DONE 0.2s\n", - "\n", - "#24 [18/21] COPY ./map/app.json /etc/holoscan/app.json\n", - "#24 DONE 0.0s\n", - "\n", - "#25 [19/21] COPY ./app.config /var/holoscan/app.yaml\n", - "#25 DONE 0.0s\n", - "\n", - "#26 [20/21] COPY ./map/pkg.json /etc/holoscan/pkg.json\n", - "#26 DONE 0.1s\n", - "\n", - "#27 [21/21] COPY ./app /opt/holoscan/app\n", - "#27 DONE 0.0s\n", - "\n", - "#28 exporting to docker image format\n", - "#28 exporting layers\n", - "#28 exporting layers 4.4s done\n", - "#28 exporting manifest sha256:457dd7263681b35a427e304797922e6c9c1a453deadebb6e234e5d3f63947b18 0.0s done\n", - "#28 exporting config sha256:63c2bd27a2230b0ee99597a2475f434ae68969da3a8328b78d7d5bc277409172 0.0s done\n", - "#28 sending tarball\n", - "#28 ...\n", - "\n", - "#29 importing to docker\n", - "#29 loading layer 36f9dbeb2e4f 238B / 238B\n", - "#29 loading layer 5828d73ee0ce 65.54kB / 5.86MB\n", - "#29 loading layer f50931954a7a 557.06kB / 2.90GB\n", - "#29 loading layer f50931954a7a 122.00MB / 2.90GB 6.2s\n", - "#29 loading layer f50931954a7a 330.89MB / 2.90GB 10.3s\n", - "#29 loading layer f50931954a7a 511.93MB / 2.90GB 14.4s\n", - "#29 loading layer f50931954a7a 681.28MB / 2.90GB 18.5s\n", - "#29 loading layer f50931954a7a 840.60MB / 2.90GB 22.6s\n", - "#29 loading layer f50931954a7a 1.05GB / 2.90GB 26.8s\n", - "#29 loading layer f50931954a7a 1.26GB / 2.90GB 30.9s\n", - "#29 loading layer f50931954a7a 1.43GB / 2.90GB 35.0s\n", - "#29 loading layer f50931954a7a 1.64GB / 2.90GB 39.0s\n", - "#29 loading layer f50931954a7a 1.89GB / 2.90GB 43.1s\n", - "#29 loading layer f50931954a7a 1.98GB / 2.90GB 50.1s\n", - "#29 loading layer f50931954a7a 2.10GB / 2.90GB 56.4s\n", - "#29 loading layer f50931954a7a 2.30GB / 2.90GB 62.4s\n", - "#29 loading layer f50931954a7a 2.47GB / 2.90GB 66.5s\n", - "#29 loading layer f50931954a7a 2.67GB / 2.90GB 70.6s\n", - "#29 loading layer f50931954a7a 2.84GB / 2.90GB 76.8s\n", - "#29 loading layer 6e852bd260ad 32.77kB / 125.82kB\n", - "#29 loading layer d8a5c55be301 557.06kB / 67.35MB\n", - "#29 loading layer 82e6702b8274 262.14kB / 26.20MB\n", - "#29 loading layer d1b690ac41a7 513B / 513B\n", - "#29 loading layer a85ba680dedd 318B / 318B\n", - "#29 loading layer 7e4618ac3cb0 297B / 297B\n", - "#29 loading layer 43922422e132 4.00kB / 4.00kB\n", - "#29 loading layer 5828d73ee0ce 65.54kB / 5.86MB 82.3s done\n", - "#29 loading layer 36f9dbeb2e4f 238B / 238B 82.4s done\n", - "#29 loading layer f50931954a7a 2.84GB / 2.90GB 81.6s done\n", - "#29 loading layer 6e852bd260ad 32.77kB / 125.82kB 3.0s done\n", - "#29 loading layer d8a5c55be301 557.06kB / 67.35MB 2.9s done\n", - "#29 loading layer 82e6702b8274 262.14kB / 26.20MB 1.1s done\n", - "#29 loading layer d1b690ac41a7 513B / 513B 0.7s done\n", - "#29 loading layer a85ba680dedd 318B / 318B 0.6s done\n", - "#29 loading layer 7e4618ac3cb0 297B / 297B 0.5s done\n", - "#29 loading layer 43922422e132 4.00kB / 4.00kB 0.5s done\n", - "#29 DONE 82.4s\n", - "\n", - "#28 exporting to docker image format\n", - "#28 sending tarball 147.4s done\n", - "#28 DONE 151.9s\n", - "\n", - "#30 exporting cache to client directory\n", - "#30 preparing build cache for export\n", - "#30 writing layer sha256:0023eecf78ab7134b1dd4aba34e20134fe1a5e0827f3a2a65dead15239c056dd\n", - "#30 writing layer sha256:0023eecf78ab7134b1dd4aba34e20134fe1a5e0827f3a2a65dead15239c056dd 0.0s done\n", - "#30 writing layer sha256:014cff740c9ec6e9a30d0b859219a700ae880eb385d62095d348f5ea136d6015 done\n", - "#30 writing layer sha256:0487800842442c7a031a39e1e1857bc6dae4b4f7e5daf3d625f7a8a4833fb364 done\n", - "#30 writing layer sha256:06c6aee94862daf0603783db4e1de6f8524b30ac9fbe0374ab3f1d85b2f76f7f done\n", - "#30 writing layer sha256:0a1756432df4a4350712d8ae5c003f1526bd2180800b3ae6301cfc9ccf370254 done\n", - "#30 writing layer sha256:0a77dcbd0e648ddc4f8e5230ade8fdb781d99e24fa4f13ca96a360c7f7e6751f done\n", - "#30 writing layer sha256:0ec682bf99715a9f88631226f3749e2271b8b9f254528ef61f65ed829984821c done\n", - "#30 writing layer sha256:1c5c3aa9c2c8bfd1b9eb36248f5b6d67b3db73ef43440f9dd897615771974b39 done\n", - "#30 writing layer sha256:1f73278b7f17492ce1a8b28b139d54596961596d6790dc20046fa6d5909f3e9c done\n", - "#30 writing layer sha256:20d331454f5fb557f2692dfbdbe092c718fd2cb55d5db9d661b62228dacca5c2 done\n", - "#30 writing layer sha256:238f69a43816e481f0295995fcf5fe74d59facf0f9f99734c8d0a2fb140630e0 done\n", - "#30 writing layer sha256:2ad84487f9d4d31cd1e0a92697a5447dd241935253d036b272ef16d31620c1e7 done\n", - "#30 writing layer sha256:2f65750928993b5b31fe572d9e085b53853c5a344feeb0e8615898e285a8c256 done\n", - "#30 writing layer sha256:3777c6498f08c0400339c243e827d465075b7296eb2526e38d9b01c84f8764d8 done\n", - "#30 writing layer sha256:39d418046e5154e0c5c7e83ba5a4cabbca254facefc9cb7b3f1bc1a6cf51ade3 done\n", - "#30 writing layer sha256:3e3e04011ebdba380ab129f0ee390626cb2a600623815ca756340c18bedb9517 done\n", - "#30 writing layer sha256:42619ce4a0c9e54cfd0ee41a8e5f27d58b3f51becabd1ac6de725fbe6c42b14a done\n", - "#30 writing layer sha256:49bdc9abf8a437ccff67cc11490ba52c976577992909856a86be872a34d3b950 done\n", - "#30 writing layer sha256:4b691ba9f48b41eaa0c754feba8366f1c030464fcbc55eeffa6c86675990933a done\n", - "#30 writing layer sha256:4d04a8db404f16c2704fa10739cb6745a0187713a21a6ef0deb34b48629b54c1 done\n", - "#30 writing layer sha256:4f4fb700ef54461cfa02571ae0db9a0dc1e0cdb5577484a6d75e68dc38e8acc1 done\n", - "#30 writing layer sha256:542bc8c8d18fbc95e6794122c3593a4a693f8ab6dda4460406f4d7b1ae64a2bc done\n", - "#30 writing layer sha256:564f81ac5635380cf724ba7ab6fb8f4d3ff9a308a8c63c2ed585363b78804d5b\n", - "#30 writing layer sha256:564f81ac5635380cf724ba7ab6fb8f4d3ff9a308a8c63c2ed585363b78804d5b 0.4s done\n", - "#30 writing layer sha256:57f244836ad318f9bbb3b29856ae1a5b31038bfbb9b43d2466d51c199eb55041\n", - "#30 writing layer sha256:57f244836ad318f9bbb3b29856ae1a5b31038bfbb9b43d2466d51c199eb55041 done\n", - "#30 writing layer sha256:5b5b131e0f20db4cb8e568b623a95f8fc16ed1c6b322a9366df70b59a881f24f done\n", - "#30 writing layer sha256:5b90d17b5048adcadefd0b1e4dba9a99247a8827a887e1ca042df375c85b518d done\n", - "#30 writing layer sha256:62452179df7c18e292f141d4aec29e6aba9ff8270c893731169fc6f41dc07631 done\n", - "#30 writing layer sha256:6630c387f5f2115bca2e646fd0c2f64e1f3d5431c2e050abe607633883eda230 done\n", - "#30 writing layer sha256:6661e0146e77a8bcb03edbfda95bf7780c8bb4c4f98bc03a398c88f4b2403d12 done\n", - "#30 writing layer sha256:717ebf8c9c66ae393ad01e50dbac4413d7b026b9c97d4d348b22ad17052a1a35 done\n", - "#30 writing layer sha256:773c6815e5e7d6855a62f8c5e2fabce3d939ded36c5420f15b54dd7908cdbcfa done\n", - "#30 writing layer sha256:7852b73ea931e3a8d3287ee7ef3cf4bad068e44f046583bfc2b81336fb299284 done\n", - "#30 writing layer sha256:7f8ec130348bcdac81c295e37fe82b4a6e5e9a3ca980a6343809c561020d82d7 done\n", - "#30 writing layer sha256:80885adcad6b5d021bb9f68b6c952018085bb4ce72011bdc0cf7fe8178b5960b done\n", - "#30 writing layer sha256:81222fcc1cc074d3cda4ae4a57ce0376c275a9ba3ef167c9e0715489c4e63593 0.0s done\n", - "#30 writing layer sha256:82a3436133b2b17bb407c7fe488932aa0ca55411f23ab55c34a6134b287c6a27 done\n", - "#30 writing layer sha256:8371d15eb4d69b1d98174dd098b8ddd5c4f19ec6f8d8b67e72dfa9891dc454b4 done\n", - "#30 writing layer sha256:85713f9b166b5add777c524ee807f6265d88b967cbeb9f961d6b09bf220c9a65 done\n", - "#30 writing layer sha256:8fe00505006a09966e763918147ef6ed55bb6695b26e4940c780ee430dc5da8e done\n", - "#30 writing layer sha256:90eae6faa5cc5ba62f12c25915cdfb1a7a51abfba0d05cb5818c3f908f4e345f done\n", - "#30 writing layer sha256:9205d97d9d3e906698bcc6c42d45727c2fa6ec2622abf953d46778c3b8c78edc done\n", - "#30 writing layer sha256:993369dbcc13162a6654d2a3e990b8d8b5f37963564d25710e12764337261ae3 done\n", - "#30 writing layer sha256:99e42a4adebadb39bf55bf94bbd9fb8034230ee19b6b0a42e6ff96f2e7794f30 done\n", - "#30 writing layer sha256:9ac855545fa90ed2bf3b388fdff9ef06ac9427b0c0fca07c9e59161983d8827e done\n", - "#30 writing layer sha256:9d19ee268e0d7bcf6716e6658ee1b0384a71d6f2f9aa1ae2085610cf7c7b316f done\n", - "#30 writing layer sha256:9fafbd4203c4fefe007a462e0d2cd4c1c7c41db2cfdc58d212279e1b9b4b230c done\n", - "#30 writing layer sha256:a1748eee9d376f97bd19225ba61dfada9986f063f4fc429e435f157abb629fc6 done\n", - "#30 writing layer sha256:a251fe5ae6c6d2d5034e4ca88b5dfe5d4827ff90b18e9b143a073232a32bb18d done\n", - "#30 writing layer sha256:a68f4e0ec09ec3b78cb4cf8e4511d658e34e7b6f676d7806ad9703194ff17604 done\n", - "#30 writing layer sha256:a8e4decc8f7289623b8fd7b9ba1ca555b5a755ebdbf81328d68209f148d9e602 done\n", - "#30 writing layer sha256:acdd7441f23e148bb954e879221b72454121a7bba702612df91c871ef14129a1\n", - "#30 writing layer sha256:acdd7441f23e148bb954e879221b72454121a7bba702612df91c871ef14129a1 1.3s done\n", - "#30 writing layer sha256:afde1c269453ce68a0f2b54c1ba8c5ecddeb18a19e5618a4acdef1f0fe3921af\n", - "#30 writing layer sha256:afde1c269453ce68a0f2b54c1ba8c5ecddeb18a19e5618a4acdef1f0fe3921af done\n", - "#30 writing layer sha256:b406feb20a37b8c87ef4f5ef814039e3adc90473d50c366b7d9bb6ded4e94a2e done\n", - "#30 writing layer sha256:b48a5fafcaba74eb5d7e7665601509e2889285b50a04b5b639a23f8adc818157 done\n", - "#30 writing layer sha256:b9f7221ef56856ac3291be12159de2576b44cd2ab53493532f7c40e33b89106c done\n", - "#30 writing layer sha256:ba9f7c75e4dd7942b944679995365aab766d3677da2e69e1d74472f471a484dd done\n", - "#30 writing layer sha256:bdc13166216ae226fa6976f9ce91f4f259d43972f1e0a9b723e436919534b2f4 done\n", - "#30 writing layer sha256:c815f0be64eded102822d81e029bd23b0d8d9a0fbfeb492ec0b4b0bc4ee777bf done\n", - "#30 writing layer sha256:c98533d2908f36a5e9b52faae83809b3b6865b50e90e2817308acfc64cd3655f done\n", - "#30 writing layer sha256:d577841fd502ec678ac975415c7c08cc25663bc74b610b82dfbc012f52547f4b done\n", - "#30 writing layer sha256:d7da5c5e9a40c476c4b3188a845e3276dedfd752e015ea5113df5af64d4d43f7 done\n", - "#30 writing layer sha256:db20521a869adda8244cb64b783c65e1a911efaae0e73ae00e4a34ea6213d6ce done\n", - "#30 writing layer sha256:df4fd0ac710d7af949afbc6d25b5b4daf3f0596dabf3dec36fa7ca8fa6e1d049 done\n", - "#30 writing layer sha256:e1b6cb9ccb6b87a9b02f2d1913a5886076b6ef31ff1417fd63257b0d118e13e9 0.0s done\n", - "#30 writing layer sha256:e291ddecfbe16b95ee9e90b5e90b1a3d0cfd53dc5e720d6b0f3d28e4a47cf5ac done\n", - "#30 writing layer sha256:e8acb678f16bc0c369d5cf9c184f2d3a1c773986816526e5e3e9c0354f7e757f done\n", - "#30 writing layer sha256:e9225f7ab6606813ec9acba98a064826ebfd6713a9645a58cd068538af1ecddb done\n", - "#30 writing layer sha256:f249faf9663a96b0911a903f8803b11a553c59b698013fb8343492fefdaaea90 done\n", - "#30 writing layer sha256:f608e2fbff86e98627b7e462057e7d2416522096d73fe4664b82fe6ce8a4047d done\n", - "#30 writing layer sha256:f65d191416580d6c38e3d95eee12377b75a4df548be1492618ce2a8c3c41b99e done\n", - "#30 writing layer sha256:f7ff8f11209b473ea771d9abe10f41a9a65716da379f39ea47ddbae875701e0f 0.0s done\n", - "#30 writing layer sha256:f98f3676b44915df64d6115f562f826117cd134942616876d0d7c7d79c00ad0e 0.0s done\n", - "#30 writing config sha256:98d05c4f7922b70a3b4fb0ca92707228e91ce8bab93500fdcc0c31b1b0b64130 0.0s done\n", - "#30 preparing build cache for export 2.5s done\n", - "#30 writing cache manifest sha256:045b1d7a7e988bbb6957ed94aa829d8e4ce6fb0c09c284a2b102d385595e15d3 0.0s done\n", - "#30 DONE 2.5s\n", - "[2024-04-23 17:11:47,683] [INFO] (packager) - Build Summary:\n", - "\n", - "Platform: x64-workstation/dgpu\n", - " Status: Succeeded\n", - " Docker Tag: mednist_app-x64-workstation-dgpu-linux-amd64:1.0\n", - " Tarball: None\n" - ] - } - ], + "outputs": [], "source": [ "tag_prefix = \"mednist_app\"\n", "\n", @@ -1723,17 +1117,9 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "mednist_app-x64-workstation-dgpu-linux-amd64 1.0 63c2bd27a223 2 minutes ago 17.7GB\n" - ] - } - ], + "outputs": [], "source": [ "!docker image ls | grep {tag_prefix}" ] @@ -1749,80 +1135,9 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[2024-04-23 17:11:48,890] [INFO] (runner) - Checking dependencies...\n", - "[2024-04-23 17:11:48,890] [INFO] (runner) - --> Verifying if \"docker\" is installed...\n", - "\n", - "[2024-04-23 17:11:48,891] [INFO] (runner) - --> Verifying if \"docker-buildx\" is installed...\n", - "\n", - "[2024-04-23 17:11:48,891] [INFO] (runner) - --> Verifying if \"mednist_app-x64-workstation-dgpu-linux-amd64:1.0\" is available...\n", - "\n", - "[2024-04-23 17:11:48,968] [INFO] (runner) - Reading HAP/MAP manifest...\n", - "\u001b[sPreparing to copy...\u001b[?25l\u001b[u\u001b[2KCopying from container - 0B\u001b[?25h\u001b[u\u001b[2KSuccessfully copied 2.56kB to /tmp/tmpgkozmakd/app.json\n", - "\u001b[sPreparing to copy...\u001b[?25l\u001b[u\u001b[2KCopying from container - 0B\u001b[?25h\u001b[u\u001b[2KSuccessfully copied 2.05kB to /tmp/tmpgkozmakd/pkg.json\n", - "[2024-04-23 17:11:51,690] [INFO] (runner) - --> Verifying if \"nvidia-ctk\" is installed...\n", - "\n", - "[2024-04-23 17:11:51,690] [INFO] (runner) - --> Verifying \"nvidia-ctk\" version...\n", - "\n", - "[2024-04-23 17:11:52,019] [INFO] (common) - Launching container (29c362c90847) using image 'mednist_app-x64-workstation-dgpu-linux-amd64:1.0'...\n", - " container name: competent_aryabhata\n", - " host name: mingq-dt\n", - " network: host\n", - " user: 1000:1000\n", - " ulimits: memlock=-1:-1, stack=67108864:67108864\n", - " cap_add: CAP_SYS_PTRACE\n", - " ipc mode: host\n", - " shared memory size: 67108864\n", - " devices: \n", - " group_add: 44\n", - "2024-04-24 00:11:52 [INFO] Launching application python3 /opt/holoscan/app/mednist_classifier_monaideploy.py ...\n", - "\n", - "[info] [app_driver.cpp:1161] Launching the driver/health checking service\n", - "\n", - "[info] [gxf_executor.cpp:247] Creating context\n", - "\n", - "[info] [server.cpp:87] Health checking server listening on 0.0.0.0:8777\n", - "\n", - "[info] [gxf_executor.cpp:1672] Loading extensions from configs...\n", - "\n", - "[info] [gxf_executor.cpp:1842] Activating Graph...\n", - "\n", - "[info] [gxf_executor.cpp:1874] Running Graph...\n", - "\n", - "[info] [gxf_executor.cpp:1876] Waiting for completion...\n", - "\n", - "\u001b[0m2024-04-24 00:11:55.786 INFO gxf/std/greedy_scheduler.cpp@191: Scheduling 3 entities\u001b[0m\n", - "\n", - "/home/holoscan/.local/lib/python3.10/site-packages/monai/data/meta_tensor.py:116: UserWarning: The given NumPy array is not writable, and PyTorch does not support non-writable tensors. This means writing to this tensor will result in undefined behavior. You may want to copy the array to protect its data or make it writable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at ../torch/csrc/utils/tensor_numpy.cpp:206.)\n", - "\n", - " return torch.as_tensor(x, *args, **_kwargs).as_subclass(cls)\n", - "\n", - "/home/holoscan/.local/lib/python3.10/site-packages/pydicom/valuerep.py:443: UserWarning: Invalid value for VR UI: 'xyz'. Please see for allowed values for each VR.\n", - "\n", - " warnings.warn(msg)\n", - "\n", - "\u001b[0m2024-04-24 00:11:57.183 INFO gxf/std/greedy_scheduler.cpp@372: Scheduler stopped: Some entities are waiting for execution, but there are no periodic or async entities to get out of the deadlock.\u001b[0m\n", - "\n", - "\u001b[0m2024-04-24 00:11:57.184 INFO gxf/std/greedy_scheduler.cpp@401: Scheduler finished.\u001b[0m\n", - "\n", - "[info] [gxf_executor.cpp:1879] Deactivating Graph...\n", - "\n", - "[info] [gxf_executor.cpp:1887] Graph execution finished.\n", - "\n", - "[info] [gxf_executor.cpp:275] Destroying context\n", - "\n", - "AbdomenCT\n", - "\n", - "[2024-04-23 17:11:58,233] [INFO] (common) - Container 'competent_aryabhata'(29c362c90847) exited.\n" - ] - } - ], + "outputs": [], "source": [ "# Clear the output folder and run the MAP. The input is expected to be a folder.\n", "!rm -rf $HOLOSCAN_OUTPUT_PATH\n", @@ -1831,17 +1146,9 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\"AbdomenCT\"" - ] - } - ], + "outputs": [], "source": [ "!cat $HOLOSCAN_OUTPUT_PATH/output.json" ] @@ -1855,7 +1162,7 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -1867,7 +1174,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": ".venv", "language": "python", "name": "python3" }, diff --git a/notebooks/tutorials/03_segmentation_app.ipynb b/notebooks/tutorials/03_segmentation_app.ipynb index 13c8e7ff..c09a7fd1 100644 --- a/notebooks/tutorials/03_segmentation_app.ipynb +++ b/notebooks/tutorials/03_segmentation_app.ipynb @@ -92,7 +92,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 28, "metadata": {}, "outputs": [], "source": [ @@ -120,34 +120,20 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Download/Extract ai_spleen_bundle_data from Google Drive" + "### Download/Extract ai_spleen_bundle_data from Google Drive\n", + "\n", + "**_Note:_** Data files are now access controlled. Please first request permission to access the [shared folder on Google Drive](https://drive.google.com/drive/folders/1EONJsrwbGsS30td0hs8zl4WKjihew1Z3?usp=sharing). Please download zip file, `ai_spleen_seg_bundle_data.zip` in the `ai_spleen_seg_app` folder, to the same folder as the notebook example." ] }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 29, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Requirement already satisfied: gdown in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (5.1.0)\n", - "Requirement already satisfied: beautifulsoup4 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from gdown) (4.12.3)\n", - "Requirement already satisfied: filelock in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from gdown) (3.13.4)\n", - "Requirement already satisfied: requests[socks] in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from gdown) (2.31.0)\n", - "Requirement already satisfied: tqdm in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from gdown) (4.66.2)\n", - "Requirement already satisfied: soupsieve>1.2 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from beautifulsoup4->gdown) (2.5)\n", - "Requirement already satisfied: charset-normalizer<4,>=2 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from requests[socks]->gdown) (3.3.2)\n", - "Requirement already satisfied: idna<4,>=2.5 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from requests[socks]->gdown) (3.7)\n", - "Requirement already satisfied: urllib3<3,>=1.21.1 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from requests[socks]->gdown) (2.2.1)\n", - "Requirement already satisfied: certifi>=2017.4.17 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from requests[socks]->gdown) (2024.2.2)\n", - "Requirement already satisfied: PySocks!=1.5.7,>=1.5.6 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from requests[socks]->gdown) (1.7.1)\n", - "Downloading...\n", - "From (original): https://drive.google.com/uc?id=1Uds8mEvdGNYUuvFpTtCQ8gNU97bAPCaQ\n", - "From (redirected): https://drive.google.com/uc?id=1Uds8mEvdGNYUuvFpTtCQ8gNU97bAPCaQ&confirm=t&uuid=cec9025c-9d57-4269-b01f-503cd7daf812\n", - "To: /home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/ai_spleen_seg_bundle_data.zip\n", - "100%|███████████████████████████████████████| 79.4M/79.4M [00:00<00:00, 105MB/s]\n", "Archive: ai_spleen_seg_bundle_data.zip\n", " inflating: dcm/1-001.dcm \n", " inflating: dcm/1-002.dcm \n", @@ -359,9 +345,9 @@ } ], "source": [ - "# Download ai_spleen_bundle_data test data zip file\n", - "!pip install gdown \n", - "!gdown \"https://drive.google.com/uc?id=1Uds8mEvdGNYUuvFpTtCQ8gNU97bAPCaQ\"\n", + "# Download ai_spleen_bundle_data test data zip file. Please request access and download manually.\n", + "# !pip install gdown\n", + "# !gdown \"https://drive.google.com/uc?id=1IwWMpbo2fd38fKIqeIdL8SKTGvkn31tK\"\n", "\n", "# After downloading ai_spleen_bundle_data zip file from the web browser or using gdown,\n", "!unzip -o \"ai_spleen_seg_bundle_data.zip\"\n", @@ -373,7 +359,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 30, "metadata": {}, "outputs": [ { @@ -403,7 +389,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 31, "metadata": {}, "outputs": [], "source": [ @@ -464,7 +450,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 32, "metadata": {}, "outputs": [], "source": [ @@ -616,7 +602,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 33, "metadata": {}, "outputs": [], "source": [ @@ -737,118 +723,109 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 34, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - "[2024-04-23 15:42:43,990] [INFO] (root) - Parsed args: Namespace(log_level=None, input=None, output=None, model=None, workdir=None, argv=[])\n", - "[2024-04-23 15:42:43,998] [INFO] (root) - AppContext object: AppContext(input_path=dcm, output_path=output, model_path=models, workdir=)\n", - "[2024-04-23 15:42:44,000] [INFO] (__main__.AISpleenSegApp) - App input and output path: dcm, output\n", - "[info] [gxf_executor.cpp:247] Creating context\n", - "[info] [gxf_executor.cpp:1672] Loading extensions from configs...\n", - "[info] [gxf_executor.cpp:1842] Activating Graph...\n", - "[info] [gxf_executor.cpp:1874] Running Graph...\n", - "[info] [gxf_executor.cpp:1876] Waiting for completion...\n", - "[2024-04-23 15:42:44,046] [INFO] (monai.deploy.operators.dicom_data_loader_operator.DICOMDataLoaderOperator) - No or invalid input path from the optional input port: None\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\u001b[0m2024-04-23 15:42:44.043 INFO gxf/std/greedy_scheduler.cpp@191: Scheduling 6 entities\u001b[0m\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "[2024-04-23 15:42:44,615] [INFO] (root) - Finding series for Selection named: CT Series\n", - "[2024-04-23 15:42:44,616] [INFO] (root) - Searching study, : 1.3.6.1.4.1.14519.5.2.1.7085.2626.822645453932810382886582736291\n", + "[info] [gxf_executor.cpp:292] Destroying context\n", + "[2025-01-16 16:17:05,271] [INFO] (__main__.AISpleenSegApp) - Begin run\n", + "[info] [fragment.cpp:588] Loading extensions from configs...\n", + "[2025-01-16 16:17:05,286] [INFO] (root) - Parsed args: Namespace(log_level=None, input=None, output=None, model=None, workdir=None, argv=[])\n", + "[2025-01-16 16:17:05,293] [INFO] (root) - AppContext object: AppContext(input_path=dcm, output_path=output, model_path=models, workdir=)\n", + "[2025-01-16 16:17:05,295] [INFO] (__main__.AISpleenSegApp) - App input and output path: dcm, output\n", + "[info] [gxf_executor.cpp:262] Creating context\n", + "[info] [gxf_executor.cpp:1767] creating input IOSpec named 'input_folder'\n", + "[info] [gxf_executor.cpp:1767] creating input IOSpec named 'dicom_study_list'\n", + "[info] [gxf_executor.cpp:1767] creating input IOSpec named 'study_selected_series_list'\n", + "[info] [gxf_executor.cpp:1767] creating input IOSpec named 'image'\n", + "[info] [gxf_executor.cpp:1767] creating input IOSpec named 'output_folder'\n", + "[info] [gxf_executor.cpp:1767] creating input IOSpec named 'study_selected_series_list'\n", + "[info] [gxf_executor.cpp:1767] creating input IOSpec named 'seg_image'\n", + "[info] [gxf_executor.cpp:2178] Activating Graph...\n", + "[info] [gxf_executor.cpp:2208] Running Graph...\n", + "[info] [gxf_executor.cpp:2210] Waiting for completion...\n", + "[info] [greedy_scheduler.cpp:191] Scheduling 5 entities\n", + "[2025-01-16 16:17:05,329] [INFO] (monai.deploy.operators.dicom_data_loader_operator.DICOMDataLoaderOperator) - No or invalid input path from the optional input port: None\n", + "[2025-01-16 16:17:05,905] [INFO] (root) - Finding series for Selection named: CT Series\n", + "[2025-01-16 16:17:05,906] [INFO] (root) - Searching study, : 1.3.6.1.4.1.14519.5.2.1.7085.2626.822645453932810382886582736291\n", " # of series: 1\n", - "[2024-04-23 15:42:44,617] [INFO] (root) - Working on series, instance UID: 1.3.6.1.4.1.14519.5.2.1.7085.2626.119403521930927333027265674239\n", - "[2024-04-23 15:42:44,618] [INFO] (root) - On attribute: 'StudyDescription' to match value: '(.*?)'\n", - "[2024-04-23 15:42:44,618] [INFO] (root) - Series attribute StudyDescription value: CT ABDOMEN W IV CONTRAST\n", - "[2024-04-23 15:42:44,618] [INFO] (root) - Series attribute string value did not match. Try regEx.\n", - "[2024-04-23 15:42:44,619] [INFO] (root) - On attribute: 'Modality' to match value: '(?i)CT'\n", - "[2024-04-23 15:42:44,619] [INFO] (root) - Series attribute Modality value: CT\n", - "[2024-04-23 15:42:44,620] [INFO] (root) - Series attribute string value did not match. Try regEx.\n", - "[2024-04-23 15:42:44,620] [INFO] (root) - On attribute: 'SeriesDescription' to match value: '(.*?)'\n", - "[2024-04-23 15:42:44,621] [INFO] (root) - Series attribute SeriesDescription value: ABD/PANC 3.0 B31f\n", - "[2024-04-23 15:42:44,621] [INFO] (root) - Series attribute string value did not match. Try regEx.\n", - "[2024-04-23 15:42:44,622] [INFO] (root) - On attribute: 'ImageType' to match value: ['PRIMARY', 'ORIGINAL']\n", - "[2024-04-23 15:42:44,622] [INFO] (root) - Series attribute ImageType value: None\n", - "[2024-04-23 15:42:44,623] [INFO] (root) - Selected Series, UID: 1.3.6.1.4.1.14519.5.2.1.7085.2626.119403521930927333027265674239\n", - "[2024-04-23 15:42:44,860] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - Converted Image object metadata:\n", - "[2024-04-23 15:42:44,862] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - SeriesInstanceUID: 1.3.6.1.4.1.14519.5.2.1.7085.2626.119403521930927333027265674239, type \n", - "[2024-04-23 15:42:44,862] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - SeriesDate: 20090831, type \n", - "[2024-04-23 15:42:44,863] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - SeriesTime: 101721.452, type \n", - "[2024-04-23 15:42:44,864] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - Modality: CT, type \n", - "[2024-04-23 15:42:44,864] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - SeriesDescription: ABD/PANC 3.0 B31f, type \n", - "[2024-04-23 15:42:44,865] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - PatientPosition: HFS, type \n", - "[2024-04-23 15:42:44,866] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - SeriesNumber: 8, type \n", - "[2024-04-23 15:42:44,866] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - row_pixel_spacing: 0.7890625, type \n", - "[2024-04-23 15:42:44,867] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - col_pixel_spacing: 0.7890625, type \n", - "[2024-04-23 15:42:44,867] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - depth_pixel_spacing: 1.5, type \n", - "[2024-04-23 15:42:44,868] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - row_direction_cosine: [1.0, 0.0, 0.0], type \n", - "[2024-04-23 15:42:44,869] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - col_direction_cosine: [0.0, 1.0, 0.0], type \n", - "[2024-04-23 15:42:44,869] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - depth_direction_cosine: [0.0, 0.0, 1.0], type \n", - "[2024-04-23 15:42:44,870] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - dicom_affine_transform: [[ 0.7890625 0. 0. -197.60547 ]\n", + "[2025-01-16 16:17:05,907] [INFO] (root) - Working on series, instance UID: 1.3.6.1.4.1.14519.5.2.1.7085.2626.119403521930927333027265674239\n", + "[2025-01-16 16:17:05,908] [INFO] (root) - On attribute: 'StudyDescription' to match value: '(.*?)'\n", + "[2025-01-16 16:17:05,910] [INFO] (root) - Series attribute StudyDescription value: CT ABDOMEN W IV CONTRAST\n", + "[2025-01-16 16:17:05,911] [INFO] (root) - Series attribute string value did not match. Try regEx.\n", + "[2025-01-16 16:17:05,913] [INFO] (root) - On attribute: 'Modality' to match value: '(?i)CT'\n", + "[2025-01-16 16:17:05,915] [INFO] (root) - Series attribute Modality value: CT\n", + "[2025-01-16 16:17:05,918] [INFO] (root) - Series attribute string value did not match. Try regEx.\n", + "[2025-01-16 16:17:05,919] [INFO] (root) - On attribute: 'SeriesDescription' to match value: '(.*?)'\n", + "[2025-01-16 16:17:05,921] [INFO] (root) - Series attribute SeriesDescription value: ABD/PANC 3.0 B31f\n", + "[2025-01-16 16:17:05,922] [INFO] (root) - Series attribute string value did not match. Try regEx.\n", + "[2025-01-16 16:17:05,923] [INFO] (root) - On attribute: 'ImageType' to match value: ['PRIMARY', 'ORIGINAL']\n", + "[2025-01-16 16:17:05,924] [INFO] (root) - Series attribute ImageType value: None\n", + "[2025-01-16 16:17:05,928] [INFO] (root) - Selected Series, UID: 1.3.6.1.4.1.14519.5.2.1.7085.2626.119403521930927333027265674239\n", + "[2025-01-16 16:17:06,800] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - Converted Image object metadata:\n", + "[2025-01-16 16:17:06,801] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - SeriesInstanceUID: 1.3.6.1.4.1.14519.5.2.1.7085.2626.119403521930927333027265674239, type \n", + "[2025-01-16 16:17:06,802] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - SeriesDate: 20090831, type \n", + "[2025-01-16 16:17:06,803] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - SeriesTime: 101721.452, type \n", + "[2025-01-16 16:17:06,803] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - Modality: CT, type \n", + "[2025-01-16 16:17:06,804] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - SeriesDescription: ABD/PANC 3.0 B31f, type \n", + "[2025-01-16 16:17:06,805] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - PatientPosition: HFS, type \n", + "[2025-01-16 16:17:06,806] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - SeriesNumber: 8, type \n", + "[2025-01-16 16:17:06,807] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - row_pixel_spacing: 0.7890625, type \n", + "[2025-01-16 16:17:06,807] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - col_pixel_spacing: 0.7890625, type \n", + "[2025-01-16 16:17:06,808] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - depth_pixel_spacing: 1.5, type \n", + "[2025-01-16 16:17:06,809] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - row_direction_cosine: [1.0, 0.0, 0.0], type \n", + "[2025-01-16 16:17:06,811] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - col_direction_cosine: [0.0, 1.0, 0.0], type \n", + "[2025-01-16 16:17:06,813] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - depth_direction_cosine: [0.0, 0.0, 1.0], type \n", + "[2025-01-16 16:17:06,815] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - dicom_affine_transform: [[ 0.7890625 0. 0. -197.60547 ]\n", " [ 0. 0.7890625 0. -398.60547 ]\n", " [ 0. 0. 1.5 -383. ]\n", " [ 0. 0. 0. 1. ]], type \n", - "[2024-04-23 15:42:44,871] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - nifti_affine_transform: [[ -0.7890625 -0. -0. 197.60547 ]\n", + "[2025-01-16 16:17:06,816] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - nifti_affine_transform: [[ -0.7890625 -0. -0. 197.60547 ]\n", " [ -0. -0.7890625 -0. 398.60547 ]\n", " [ 0. 0. 1.5 -383. ]\n", " [ 0. 0. 0. 1. ]], type \n", - "[2024-04-23 15:42:44,872] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - StudyInstanceUID: 1.3.6.1.4.1.14519.5.2.1.7085.2626.822645453932810382886582736291, type \n", - "[2024-04-23 15:42:44,873] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - StudyID: , type \n", - "[2024-04-23 15:42:44,875] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - StudyDate: 20090831, type \n", - "[2024-04-23 15:42:44,876] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - StudyTime: 095948.599, type \n", - "[2024-04-23 15:42:44,877] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - StudyDescription: CT ABDOMEN W IV CONTRAST, type \n", - "[2024-04-23 15:42:44,878] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - AccessionNumber: 5471978513296937, type \n", - "[2024-04-23 15:42:44,879] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - selection_name: CT Series, type \n" + "[2025-01-16 16:17:06,818] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - StudyInstanceUID: 1.3.6.1.4.1.14519.5.2.1.7085.2626.822645453932810382886582736291, type \n", + "[2025-01-16 16:17:06,819] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - StudyID: , type \n", + "[2025-01-16 16:17:06,820] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - StudyDate: 20090831, type \n", + "[2025-01-16 16:17:06,821] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - StudyTime: 095948.599, type \n", + "[2025-01-16 16:17:06,822] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - StudyDescription: CT ABDOMEN W IV CONTRAST, type \n", + "[2025-01-16 16:17:06,823] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - AccessionNumber: 5471978513296937, type \n", + "[2025-01-16 16:17:06,824] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - selection_name: CT Series, type \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "2024-04-23 15:42:45,610 INFO image_writer.py:197 - writing: /home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/output/saved_images_folder/1.3.6.1.4.1.14519.5.2.1.7085.2626/1.3.6.1.4.1.14519.5.2.1.7085.2626.nii\n", - "2024-04-23 15:42:51,791 INFO image_writer.py:197 - writing: /home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/output/saved_images_folder/1.3.6.1.4.1.14519.5.2.1.7085.2626/1.3.6.1.4.1.14519.5.2.1.7085.2626_seg.nii\n" + "2025-01-16 16:17:08,010 INFO image_writer.py:197 - writing: /home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/output/saved_images_folder/1.3.6.1.4.1.14519.5.2.1.7085.2626/1.3.6.1.4.1.14519.5.2.1.7085.2626.nii\n", + "2025-01-16 16:17:11,416 INFO image_writer.py:197 - writing: /home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/output/saved_images_folder/1.3.6.1.4.1.14519.5.2.1.7085.2626/1.3.6.1.4.1.14519.5.2.1.7085.2626_seg.nii\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "[2024-04-23 15:42:53,711] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - Output Seg image numpy array shaped: (204, 512, 512)\n", - "[2024-04-23 15:42:53,718] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - Output Seg image pixel max value: 1\n", - "/home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages/highdicom/valuerep.py:54: UserWarning: The string \"C3N-00198\" is unlikely to represent the intended person name since it contains only a single component. Construct a person name according to the format in described in https://dicom.nema.org/dicom/2013/output/chtml/part05/sect_6.2.html#sect_6.2.1.2, or, in pydicom 2.2.0 or later, use the pydicom.valuerep.PersonName.from_named_components() method to construct the person name correctly. If a single-component name is really intended, add a trailing caret character to disambiguate the name.\n", - " warnings.warn(\n", - "[2024-04-23 15:42:55,113] [INFO] (highdicom.base) - copy Image-related attributes from dataset \"1.3.6.1.4.1.14519.5.2.1.7085.2626.936983343951485811186213470191\"\n", - "[2024-04-23 15:42:55,114] [INFO] (highdicom.base) - copy attributes of module \"Specimen\"\n", - "[2024-04-23 15:42:55,115] [INFO] (highdicom.base) - copy Patient-related attributes from dataset \"1.3.6.1.4.1.14519.5.2.1.7085.2626.936983343951485811186213470191\"\n", - "[2024-04-23 15:42:55,116] [INFO] (highdicom.base) - copy attributes of module \"Patient\"\n", - "[2024-04-23 15:42:55,118] [INFO] (highdicom.base) - copy attributes of module \"Clinical Trial Subject\"\n", - "[2024-04-23 15:42:55,119] [INFO] (highdicom.base) - copy Study-related attributes from dataset \"1.3.6.1.4.1.14519.5.2.1.7085.2626.936983343951485811186213470191\"\n", - "[2024-04-23 15:42:55,120] [INFO] (highdicom.base) - copy attributes of module \"General Study\"\n", - "[2024-04-23 15:42:55,121] [INFO] (highdicom.base) - copy attributes of module \"Patient Study\"\n", - "[2024-04-23 15:42:55,122] [INFO] (highdicom.base) - copy attributes of module \"Clinical Trial Study\"\n", - "[info] [gxf_executor.cpp:1879] Deactivating Graph...\n", - "[info] [gxf_executor.cpp:1887] Graph execution finished.\n", - "[2024-04-23 15:42:55,233] [INFO] (__main__.AISpleenSegApp) - End run\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\u001b[0m2024-04-23 15:42:55.231 INFO gxf/std/greedy_scheduler.cpp@372: Scheduler stopped: Some entities are waiting for execution, but there are no periodic or async entities to get out of the deadlock.\u001b[0m\n", - "\u001b[0m2024-04-23 15:42:55.231 INFO gxf/std/greedy_scheduler.cpp@401: Scheduler finished.\u001b[0m\n" + "[2025-01-16 16:17:13,882] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - Output Seg image numpy array shaped: (204, 512, 512)\n", + "[2025-01-16 16:17:13,888] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - Output Seg image pixel max value: 1\n", + "/home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages/highdicom/base.py:163: UserWarning: The string \"C3N-00198\" is unlikely to represent the intended person name since it contains only a single component. Construct a person name according to the format in described in https://dicom.nema.org/dicom/2013/output/chtml/part05/sect_6.2.html#sect_6.2.1.2, or, in pydicom 2.2.0 or later, use the pydicom.valuerep.PersonName.from_named_components() method to construct the person name correctly. If a single-component name is really intended, add a trailing caret character to disambiguate the name.\n", + " check_person_name(patient_name)\n", + "[2025-01-16 16:17:15,281] [INFO] (highdicom.base) - copy Image-related attributes from dataset \"1.3.6.1.4.1.14519.5.2.1.7085.2626.936983343951485811186213470191\"\n", + "[2025-01-16 16:17:15,282] [INFO] (highdicom.base) - copy attributes of module \"Specimen\"\n", + "[2025-01-16 16:17:15,283] [INFO] (highdicom.base) - copy Patient-related attributes from dataset \"1.3.6.1.4.1.14519.5.2.1.7085.2626.936983343951485811186213470191\"\n", + "[2025-01-16 16:17:15,284] [INFO] (highdicom.base) - copy attributes of module \"Patient\"\n", + "[2025-01-16 16:17:15,286] [INFO] (highdicom.base) - copy attributes of module \"Clinical Trial Subject\"\n", + "[2025-01-16 16:17:15,287] [INFO] (highdicom.base) - copy Study-related attributes from dataset \"1.3.6.1.4.1.14519.5.2.1.7085.2626.936983343951485811186213470191\"\n", + "[2025-01-16 16:17:15,289] [INFO] (highdicom.base) - copy attributes of module \"General Study\"\n", + "[2025-01-16 16:17:15,290] [INFO] (highdicom.base) - copy attributes of module \"Patient Study\"\n", + "[2025-01-16 16:17:15,290] [INFO] (highdicom.base) - copy attributes of module \"Clinical Trial Study\"\n", + "[info] [greedy_scheduler.cpp:372] Scheduler stopped: Some entities are waiting for execution, but there are no periodic or async entities to get out of the deadlock.\n", + "[info] [greedy_scheduler.cpp:401] Scheduler finished.\n", + "[info] [gxf_executor.cpp:2213] Deactivating Graph...\n", + "[info] [gxf_executor.cpp:2221] Graph execution finished.\n", + "[2025-01-16 16:17:15,444] [INFO] (__main__.AISpleenSegApp) - End run\n" ] } ], @@ -881,7 +858,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 35, "metadata": {}, "outputs": [], "source": [ @@ -898,7 +875,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 36, "metadata": {}, "outputs": [ { @@ -1074,7 +1051,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 37, "metadata": {}, "outputs": [ { @@ -1231,7 +1208,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 38, "metadata": {}, "outputs": [ { @@ -1252,7 +1229,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 39, "metadata": {}, "outputs": [ { @@ -1280,89 +1257,96 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 40, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "[2024-04-23 15:42:59,956] [INFO] (root) - Parsed args: Namespace(log_level=None, input=None, output=None, model=None, workdir=None, argv=['my_app'])\n", - "[2024-04-23 15:42:59,957] [INFO] (root) - AppContext object: AppContext(input_path=dcm, output_path=output, model_path=models, workdir=)\n", - "[2024-04-23 15:42:59,957] [INFO] (app.AISpleenSegApp) - App input and output path: dcm, output\n", - "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:247] Creating context\n", - "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:1672] Loading extensions from configs...\n", - "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:1842] Activating Graph...\n", - "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:1874] Running Graph...\n", - "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:1876] Waiting for completion...\n", - "\u001b[0m2024-04-23 15:42:59.985 INFO gxf/std/greedy_scheduler.cpp@191: Scheduling 6 entities\u001b[0m\n", - "[2024-04-23 15:42:59,987] [INFO] (monai.deploy.operators.dicom_data_loader_operator.DICOMDataLoaderOperator) - No or invalid input path from the optional input port: None\n", - "[2024-04-23 15:43:00,516] [INFO] (root) - Finding series for Selection named: CT Series\n", - "[2024-04-23 15:43:00,517] [INFO] (root) - Searching study, : 1.3.6.1.4.1.14519.5.2.1.7085.2626.822645453932810382886582736291\n", + "[\u001b[32minfo\u001b[m] [fragment.cpp:588] Loading extensions from configs...\n", + "[2025-01-16 16:17:25,763] [INFO] (root) - Parsed args: Namespace(log_level=None, input=None, output=None, model=None, workdir=None, argv=['my_app'])\n", + "[2025-01-16 16:17:25,766] [INFO] (root) - AppContext object: AppContext(input_path=dcm, output_path=output, model_path=models, workdir=)\n", + "[2025-01-16 16:17:25,766] [INFO] (app.AISpleenSegApp) - App input and output path: dcm, output\n", + "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:262] Creating context\n", + "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:1767] creating input IOSpec named 'input_folder'\n", + "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:1767] creating input IOSpec named 'dicom_study_list'\n", + "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:1767] creating input IOSpec named 'study_selected_series_list'\n", + "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:1767] creating input IOSpec named 'image'\n", + "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:1767] creating input IOSpec named 'output_folder'\n", + "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:1767] creating input IOSpec named 'study_selected_series_list'\n", + "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:1767] creating input IOSpec named 'seg_image'\n", + "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:2178] Activating Graph...\n", + "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:2208] Running Graph...\n", + "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:2210] Waiting for completion...\n", + "[\u001b[32minfo\u001b[m] [greedy_scheduler.cpp:191] Scheduling 5 entities\n", + "[2025-01-16 16:17:25,781] [INFO] (monai.deploy.operators.dicom_data_loader_operator.DICOMDataLoaderOperator) - No or invalid input path from the optional input port: None\n", + "[2025-01-16 16:17:26,696] [INFO] (root) - Finding series for Selection named: CT Series\n", + "[2025-01-16 16:17:26,696] [INFO] (root) - Searching study, : 1.3.6.1.4.1.14519.5.2.1.7085.2626.822645453932810382886582736291\n", " # of series: 1\n", - "[2024-04-23 15:43:00,517] [INFO] (root) - Working on series, instance UID: 1.3.6.1.4.1.14519.5.2.1.7085.2626.119403521930927333027265674239\n", - "[2024-04-23 15:43:00,517] [INFO] (root) - On attribute: 'StudyDescription' to match value: '(.*?)'\n", - "[2024-04-23 15:43:00,517] [INFO] (root) - Series attribute StudyDescription value: CT ABDOMEN W IV CONTRAST\n", - "[2024-04-23 15:43:00,517] [INFO] (root) - Series attribute string value did not match. Try regEx.\n", - "[2024-04-23 15:43:00,517] [INFO] (root) - On attribute: 'Modality' to match value: '(?i)CT'\n", - "[2024-04-23 15:43:00,517] [INFO] (root) - Series attribute Modality value: CT\n", - "[2024-04-23 15:43:00,517] [INFO] (root) - Series attribute string value did not match. Try regEx.\n", - "[2024-04-23 15:43:00,517] [INFO] (root) - On attribute: 'SeriesDescription' to match value: '(.*?)'\n", - "[2024-04-23 15:43:00,517] [INFO] (root) - Series attribute SeriesDescription value: ABD/PANC 3.0 B31f\n", - "[2024-04-23 15:43:00,517] [INFO] (root) - Series attribute string value did not match. Try regEx.\n", - "[2024-04-23 15:43:00,517] [INFO] (root) - On attribute: 'ImageType' to match value: ['PRIMARY', 'ORIGINAL']\n", - "[2024-04-23 15:43:00,517] [INFO] (root) - Series attribute ImageType value: None\n", - "[2024-04-23 15:43:00,517] [INFO] (root) - Selected Series, UID: 1.3.6.1.4.1.14519.5.2.1.7085.2626.119403521930927333027265674239\n", - "[2024-04-23 15:43:00,884] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - Converted Image object metadata:\n", - "[2024-04-23 15:43:00,884] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - SeriesInstanceUID: 1.3.6.1.4.1.14519.5.2.1.7085.2626.119403521930927333027265674239, type \n", - "[2024-04-23 15:43:00,884] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - SeriesDate: 20090831, type \n", - "[2024-04-23 15:43:00,884] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - SeriesTime: 101721.452, type \n", - "[2024-04-23 15:43:00,884] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - Modality: CT, type \n", - "[2024-04-23 15:43:00,884] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - SeriesDescription: ABD/PANC 3.0 B31f, type \n", - "[2024-04-23 15:43:00,884] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - PatientPosition: HFS, type \n", - "[2024-04-23 15:43:00,884] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - SeriesNumber: 8, type \n", - "[2024-04-23 15:43:00,884] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - row_pixel_spacing: 0.7890625, type \n", - "[2024-04-23 15:43:00,884] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - col_pixel_spacing: 0.7890625, type \n", - "[2024-04-23 15:43:00,884] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - depth_pixel_spacing: 1.5, type \n", - "[2024-04-23 15:43:00,885] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - row_direction_cosine: [1.0, 0.0, 0.0], type \n", - "[2024-04-23 15:43:00,885] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - col_direction_cosine: [0.0, 1.0, 0.0], type \n", - "[2024-04-23 15:43:00,885] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - depth_direction_cosine: [0.0, 0.0, 1.0], type \n", - "[2024-04-23 15:43:00,885] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - dicom_affine_transform: [[ 0.7890625 0. 0. -197.60547 ]\n", + "[2025-01-16 16:17:26,696] [INFO] (root) - Working on series, instance UID: 1.3.6.1.4.1.14519.5.2.1.7085.2626.119403521930927333027265674239\n", + "[2025-01-16 16:17:26,696] [INFO] (root) - On attribute: 'StudyDescription' to match value: '(.*?)'\n", + "[2025-01-16 16:17:26,696] [INFO] (root) - Series attribute StudyDescription value: CT ABDOMEN W IV CONTRAST\n", + "[2025-01-16 16:17:26,696] [INFO] (root) - Series attribute string value did not match. Try regEx.\n", + "[2025-01-16 16:17:26,696] [INFO] (root) - On attribute: 'Modality' to match value: '(?i)CT'\n", + "[2025-01-16 16:17:26,696] [INFO] (root) - Series attribute Modality value: CT\n", + "[2025-01-16 16:17:26,696] [INFO] (root) - Series attribute string value did not match. Try regEx.\n", + "[2025-01-16 16:17:26,697] [INFO] (root) - On attribute: 'SeriesDescription' to match value: '(.*?)'\n", + "[2025-01-16 16:17:26,697] [INFO] (root) - Series attribute SeriesDescription value: ABD/PANC 3.0 B31f\n", + "[2025-01-16 16:17:26,697] [INFO] (root) - Series attribute string value did not match. Try regEx.\n", + "[2025-01-16 16:17:26,697] [INFO] (root) - On attribute: 'ImageType' to match value: ['PRIMARY', 'ORIGINAL']\n", + "[2025-01-16 16:17:26,697] [INFO] (root) - Series attribute ImageType value: None\n", + "[2025-01-16 16:17:26,697] [INFO] (root) - Selected Series, UID: 1.3.6.1.4.1.14519.5.2.1.7085.2626.119403521930927333027265674239\n", + "[2025-01-16 16:17:27,726] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - Converted Image object metadata:\n", + "[2025-01-16 16:17:27,726] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - SeriesInstanceUID: 1.3.6.1.4.1.14519.5.2.1.7085.2626.119403521930927333027265674239, type \n", + "[2025-01-16 16:17:27,726] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - SeriesDate: 20090831, type \n", + "[2025-01-16 16:17:27,726] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - SeriesTime: 101721.452, type \n", + "[2025-01-16 16:17:27,726] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - Modality: CT, type \n", + "[2025-01-16 16:17:27,726] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - SeriesDescription: ABD/PANC 3.0 B31f, type \n", + "[2025-01-16 16:17:27,726] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - PatientPosition: HFS, type \n", + "[2025-01-16 16:17:27,726] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - SeriesNumber: 8, type \n", + "[2025-01-16 16:17:27,726] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - row_pixel_spacing: 0.7890625, type \n", + "[2025-01-16 16:17:27,726] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - col_pixel_spacing: 0.7890625, type \n", + "[2025-01-16 16:17:27,726] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - depth_pixel_spacing: 1.5, type \n", + "[2025-01-16 16:17:27,726] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - row_direction_cosine: [1.0, 0.0, 0.0], type \n", + "[2025-01-16 16:17:27,726] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - col_direction_cosine: [0.0, 1.0, 0.0], type \n", + "[2025-01-16 16:17:27,726] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - depth_direction_cosine: [0.0, 0.0, 1.0], type \n", + "[2025-01-16 16:17:27,726] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - dicom_affine_transform: [[ 0.7890625 0. 0. -197.60547 ]\n", " [ 0. 0.7890625 0. -398.60547 ]\n", " [ 0. 0. 1.5 -383. ]\n", " [ 0. 0. 0. 1. ]], type \n", - "[2024-04-23 15:43:00,885] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - nifti_affine_transform: [[ -0.7890625 -0. -0. 197.60547 ]\n", + "[2025-01-16 16:17:27,727] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - nifti_affine_transform: [[ -0.7890625 -0. -0. 197.60547 ]\n", " [ -0. -0.7890625 -0. 398.60547 ]\n", " [ 0. 0. 1.5 -383. ]\n", " [ 0. 0. 0. 1. ]], type \n", - "[2024-04-23 15:43:00,885] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - StudyInstanceUID: 1.3.6.1.4.1.14519.5.2.1.7085.2626.822645453932810382886582736291, type \n", - "[2024-04-23 15:43:00,885] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - StudyID: , type \n", - "[2024-04-23 15:43:00,885] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - StudyDate: 20090831, type \n", - "[2024-04-23 15:43:00,885] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - StudyTime: 095948.599, type \n", - "[2024-04-23 15:43:00,885] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - StudyDescription: CT ABDOMEN W IV CONTRAST, type \n", - "[2024-04-23 15:43:00,885] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - AccessionNumber: 5471978513296937, type \n", - "[2024-04-23 15:43:00,886] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - selection_name: CT Series, type \n", - "2024-04-23 15:43:01,872 INFO image_writer.py:197 - writing: /home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/output/saved_images_folder/1.3.6.1.4.1.14519.5.2.1.7085.2626/1.3.6.1.4.1.14519.5.2.1.7085.2626.nii\n", - "2024-04-23 15:43:08,194 INFO image_writer.py:197 - writing: /home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/output/saved_images_folder/1.3.6.1.4.1.14519.5.2.1.7085.2626/1.3.6.1.4.1.14519.5.2.1.7085.2626_seg.nii\n", - "[2024-04-23 15:43:09,761] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - Output Seg image numpy array shaped: (204, 512, 512)\n", - "[2024-04-23 15:43:09,767] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - Output Seg image pixel max value: 1\n", - "/home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages/highdicom/valuerep.py:54: UserWarning: The string \"C3N-00198\" is unlikely to represent the intended person name since it contains only a single component. Construct a person name according to the format in described in https://dicom.nema.org/dicom/2013/output/chtml/part05/sect_6.2.html#sect_6.2.1.2, or, in pydicom 2.2.0 or later, use the pydicom.valuerep.PersonName.from_named_components() method to construct the person name correctly. If a single-component name is really intended, add a trailing caret character to disambiguate the name.\n", - " warnings.warn(\n", - "[2024-04-23 15:43:11,092] [INFO] (highdicom.base) - copy Image-related attributes from dataset \"1.3.6.1.4.1.14519.5.2.1.7085.2626.936983343951485811186213470191\"\n", - "[2024-04-23 15:43:11,093] [INFO] (highdicom.base) - copy attributes of module \"Specimen\"\n", - "[2024-04-23 15:43:11,093] [INFO] (highdicom.base) - copy Patient-related attributes from dataset \"1.3.6.1.4.1.14519.5.2.1.7085.2626.936983343951485811186213470191\"\n", - "[2024-04-23 15:43:11,093] [INFO] (highdicom.base) - copy attributes of module \"Patient\"\n", - "[2024-04-23 15:43:11,093] [INFO] (highdicom.base) - copy attributes of module \"Clinical Trial Subject\"\n", - "[2024-04-23 15:43:11,093] [INFO] (highdicom.base) - copy Study-related attributes from dataset \"1.3.6.1.4.1.14519.5.2.1.7085.2626.936983343951485811186213470191\"\n", - "[2024-04-23 15:43:11,093] [INFO] (highdicom.base) - copy attributes of module \"General Study\"\n", - "[2024-04-23 15:43:11,093] [INFO] (highdicom.base) - copy attributes of module \"Patient Study\"\n", - "[2024-04-23 15:43:11,093] [INFO] (highdicom.base) - copy attributes of module \"Clinical Trial Study\"\n", - "\u001b[0m2024-04-23 15:43:11.181 INFO gxf/std/greedy_scheduler.cpp@372: Scheduler stopped: Some entities are waiting for execution, but there are no periodic or async entities to get out of the deadlock.\u001b[0m\n", - "\u001b[0m2024-04-23 15:43:11.181 INFO gxf/std/greedy_scheduler.cpp@401: Scheduler finished.\u001b[0m\n", - "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:1879] Deactivating Graph...\n", - "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:1887] Graph execution finished.\n", - "[2024-04-23 15:43:11,183] [INFO] (app.AISpleenSegApp) - End run\n", - "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:275] Destroying context\n" + "[2025-01-16 16:17:27,727] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - StudyInstanceUID: 1.3.6.1.4.1.14519.5.2.1.7085.2626.822645453932810382886582736291, type \n", + "[2025-01-16 16:17:27,727] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - StudyID: , type \n", + "[2025-01-16 16:17:27,727] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - StudyDate: 20090831, type \n", + "[2025-01-16 16:17:27,727] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - StudyTime: 095948.599, type \n", + "[2025-01-16 16:17:27,727] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - StudyDescription: CT ABDOMEN W IV CONTRAST, type \n", + "[2025-01-16 16:17:27,727] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - AccessionNumber: 5471978513296937, type \n", + "[2025-01-16 16:17:27,727] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - selection_name: CT Series, type \n", + "2025-01-16 16:17:28,884 INFO image_writer.py:197 - writing: /home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/output/saved_images_folder/1.3.6.1.4.1.14519.5.2.1.7085.2626/1.3.6.1.4.1.14519.5.2.1.7085.2626.nii\n", + "2025-01-16 16:17:34,343 INFO image_writer.py:197 - writing: /home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/output/saved_images_folder/1.3.6.1.4.1.14519.5.2.1.7085.2626/1.3.6.1.4.1.14519.5.2.1.7085.2626_seg.nii\n", + "[2025-01-16 16:17:36,713] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - Output Seg image numpy array shaped: (204, 512, 512)\n", + "[2025-01-16 16:17:36,745] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - Output Seg image pixel max value: 1\n", + "/home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages/highdicom/base.py:163: UserWarning: The string \"C3N-00198\" is unlikely to represent the intended person name since it contains only a single component. Construct a person name according to the format in described in https://dicom.nema.org/dicom/2013/output/chtml/part05/sect_6.2.html#sect_6.2.1.2, or, in pydicom 2.2.0 or later, use the pydicom.valuerep.PersonName.from_named_components() method to construct the person name correctly. If a single-component name is really intended, add a trailing caret character to disambiguate the name.\n", + " check_person_name(patient_name)\n", + "[2025-01-16 16:17:38,989] [INFO] (highdicom.base) - copy Image-related attributes from dataset \"1.3.6.1.4.1.14519.5.2.1.7085.2626.936983343951485811186213470191\"\n", + "[2025-01-16 16:17:38,989] [INFO] (highdicom.base) - copy attributes of module \"Specimen\"\n", + "[2025-01-16 16:17:38,989] [INFO] (highdicom.base) - copy Patient-related attributes from dataset \"1.3.6.1.4.1.14519.5.2.1.7085.2626.936983343951485811186213470191\"\n", + "[2025-01-16 16:17:38,989] [INFO] (highdicom.base) - copy attributes of module \"Patient\"\n", + "[2025-01-16 16:17:38,990] [INFO] (highdicom.base) - copy attributes of module \"Clinical Trial Subject\"\n", + "[2025-01-16 16:17:38,990] [INFO] (highdicom.base) - copy Study-related attributes from dataset \"1.3.6.1.4.1.14519.5.2.1.7085.2626.936983343951485811186213470191\"\n", + "[2025-01-16 16:17:38,990] [INFO] (highdicom.base) - copy attributes of module \"General Study\"\n", + "[2025-01-16 16:17:38,990] [INFO] (highdicom.base) - copy attributes of module \"Patient Study\"\n", + "[2025-01-16 16:17:38,991] [INFO] (highdicom.base) - copy attributes of module \"Clinical Trial Study\"\n", + "[\u001b[32minfo\u001b[m] [greedy_scheduler.cpp:372] Scheduler stopped: Some entities are waiting for execution, but there are no periodic or async entities to get out of the deadlock.\n", + "[\u001b[32minfo\u001b[m] [greedy_scheduler.cpp:401] Scheduler finished.\n", + "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:2213] Deactivating Graph...\n", + "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:2221] Graph execution finished.\n", + "[2025-01-16 16:17:39,311] [INFO] (app.AISpleenSegApp) - End run\n", + "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:292] Destroying context\n" ] } ], @@ -1373,7 +1357,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 41, "metadata": {}, "outputs": [ { @@ -1381,7 +1365,7 @@ "output_type": "stream", "text": [ "output:\n", - "1.2.826.0.1.3680043.10.511.3.57940295875624111168999103278306755.dcm\n", + "1.2.826.0.1.3680043.10.511.3.76053921177937350011362220581935219.dcm\n", "saved_images_folder\n", "\n", "output/saved_images_folder:\n", @@ -1415,7 +1399,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 42, "metadata": {}, "outputs": [ { @@ -1445,7 +1429,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 43, "metadata": {}, "outputs": [ { @@ -1465,7 +1449,8 @@ "pydicom>=2.3.0\n", "setuptools>=59.5.0 # for pkg_resources\n", "SimpleITK>=2.0.0\n", - "torch>=1.12.0" + "torch>=1.12.0\n", + "holoscan==2.6.0 # avoid v2.7 and v2.8 for a known issue" ] }, { @@ -1481,23 +1466,23 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 44, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "[2024-04-23 15:43:13,349] [INFO] (common) - Downloading CLI manifest file...\n", - "[2024-04-23 15:43:13,718] [DEBUG] (common) - Validating CLI manifest file...\n", - "[2024-04-23 15:43:13,720] [INFO] (packager.parameters) - Application: /home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/my_app\n", - "[2024-04-23 15:43:13,721] [INFO] (packager.parameters) - Detected application type: Python Module\n", - "[2024-04-23 15:43:13,721] [INFO] (packager) - Scanning for models in /home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/models...\n", - "[2024-04-23 15:43:13,722] [DEBUG] (packager) - Model model=/home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/models/model added.\n", - "[2024-04-23 15:43:13,722] [INFO] (packager) - Reading application configuration from /home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/my_app/app.yaml...\n", - "[2024-04-23 15:43:13,725] [INFO] (packager) - Generating app.json...\n", - "[2024-04-23 15:43:13,726] [INFO] (packager) - Generating pkg.json...\n", - "[2024-04-23 15:43:13,738] [DEBUG] (common) - \n", + "[2025-01-16 16:17:47,580] [INFO] (common) - Downloading CLI manifest file...\n", + "[2025-01-16 16:17:47,837] [DEBUG] (common) - Validating CLI manifest file...\n", + "[2025-01-16 16:17:47,838] [INFO] (packager.parameters) - Application: /home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/my_app\n", + "[2025-01-16 16:17:47,838] [INFO] (packager.parameters) - Detected application type: Python Module\n", + "[2025-01-16 16:17:47,839] [INFO] (packager) - Scanning for models in /home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/models...\n", + "[2025-01-16 16:17:47,840] [DEBUG] (packager) - Model model=/home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/models/model added.\n", + "[2025-01-16 16:17:47,840] [INFO] (packager) - Reading application configuration from /home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/my_app/app.yaml...\n", + "[2025-01-16 16:17:47,845] [INFO] (packager) - Generating app.json...\n", + "[2025-01-16 16:17:47,845] [INFO] (packager) - Generating pkg.json...\n", + "[2025-01-16 16:17:47,850] [DEBUG] (common) - \n", "=============== Begin app.json ===============\n", "{\n", " \"apiVersion\": \"1.0.0\",\n", @@ -1525,14 +1510,14 @@ " },\n", " \"readiness\": null,\n", " \"sdk\": \"monai-deploy\",\n", - " \"sdkVersion\": \"0.5.1\",\n", + " \"sdkVersion\": \"2.0.0\",\n", " \"timeout\": 0,\n", " \"version\": 1.0,\n", " \"workingDirectory\": \"/var/holoscan\"\n", "}\n", "================ End app.json ================\n", " \n", - "[2024-04-23 15:43:13,739] [DEBUG] (common) - \n", + "[2025-01-16 16:17:47,851] [DEBUG] (common) - \n", "=============== Begin pkg.json ===============\n", "{\n", " \"apiVersion\": \"1.0.0\",\n", @@ -1552,15 +1537,115 @@ "}\n", "================ End pkg.json ================\n", " \n", - "[2024-04-23 15:43:13,775] [DEBUG] (packager.builder) - \n", + "[2025-01-16 16:17:47,941] [DEBUG] (packager.builder) - \n", + "========== Begin Build Parameters ==========\n", + "{'additional_lib_paths': '',\n", + " 'app_config_file_path': PosixPath('/home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/my_app/app.yaml'),\n", + " 'app_dir': PosixPath('/opt/holoscan/app'),\n", + " 'app_json': '/etc/holoscan/app.json',\n", + " 'application': PosixPath('/home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/my_app'),\n", + " 'application_directory': PosixPath('/home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/my_app'),\n", + " 'application_type': 'PythonModule',\n", + " 'build_cache': PosixPath('/home/mqin/.holoscan_build_cache'),\n", + " 'cmake_args': '',\n", + " 'command': '[\"python3\", \"/opt/holoscan/app\"]',\n", + " 'command_filename': 'my_app',\n", + " 'config_file_path': PosixPath('/var/holoscan/app.yaml'),\n", + " 'docs_dir': PosixPath('/opt/holoscan/docs'),\n", + " 'full_input_path': PosixPath('/var/holoscan/input'),\n", + " 'full_output_path': PosixPath('/var/holoscan/output'),\n", + " 'gid': 1000,\n", + " 'holoscan_sdk_version': '2.8.0',\n", + " 'includes': [],\n", + " 'input_dir': 'input/',\n", + " 'lib_dir': PosixPath('/opt/holoscan/lib'),\n", + " 'logs_dir': PosixPath('/var/holoscan/logs'),\n", + " 'models': {'model': PosixPath('/home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/models/model')},\n", + " 'models_dir': PosixPath('/opt/holoscan/models'),\n", + " 'monai_deploy_app_sdk_version': '2.0.0',\n", + " 'no_cache': False,\n", + " 'output_dir': 'output/',\n", + " 'pip_packages': None,\n", + " 'pkg_json': '/etc/holoscan/pkg.json',\n", + " 'requirements_file_path': PosixPath('/home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/my_app/requirements.txt'),\n", + " 'sdk': ,\n", + " 'sdk_type': 'monai-deploy',\n", + " 'tarball_output': None,\n", + " 'timeout': 0,\n", + " 'title': 'MONAI Deploy App Package - MONAI Bundle AI App',\n", + " 'uid': 1000,\n", + " 'username': 'holoscan',\n", + " 'version': 1.0,\n", + " 'working_dir': PosixPath('/var/holoscan')}\n", + "=========== End Build Parameters ===========\n", + "\n", + "[2025-01-16 16:17:47,941] [DEBUG] (packager.builder) - \n", + "========== Begin Platform Parameters ==========\n", + "{'base_image': 'nvcr.io/nvidia/cuda:12.6.0-runtime-ubuntu22.04',\n", + " 'build_image': None,\n", + " 'cuda_deb_arch': 'x86_64',\n", + " 'custom_base_image': False,\n", + " 'custom_holoscan_sdk': False,\n", + " 'custom_monai_deploy_sdk': False,\n", + " 'gpu_type': 'dgpu',\n", + " 'holoscan_deb_arch': 'amd64',\n", + " 'holoscan_sdk_file': '2.8.0',\n", + " 'holoscan_sdk_filename': '2.8.0',\n", + " 'monai_deploy_sdk_file': None,\n", + " 'monai_deploy_sdk_filename': None,\n", + " 'tag': 'my_app:1.0',\n", + " 'target_arch': 'x86_64'}\n", + "=========== End Platform Parameters ===========\n", + "\n", + "[2025-01-16 16:17:47,973] [DEBUG] (packager.builder) - \n", "========== Begin Dockerfile ==========\n", "\n", + "ARG GPU_TYPE=dgpu\n", + "\n", + "\n", + "\n", + "\n", + "FROM nvcr.io/nvidia/cuda:12.6.0-runtime-ubuntu22.04 AS base\n", + "\n", + "RUN apt-get update \\\n", + " && apt-get install -y --no-install-recommends --no-install-suggests \\\n", + " curl \\\n", + " jq \\\n", + " && rm -rf /var/lib/apt/lists/*\n", + "\n", "\n", - "FROM nvcr.io/nvidia/clara-holoscan/holoscan:v2.0.0-dgpu\n", "\n", + "\n", + "# FROM base AS mofed-installer\n", + "# ARG MOFED_VERSION=23.10-2.1.3.1\n", + "\n", + "# # In a container, we only need to install the user space libraries, though the drivers are still\n", + "# # needed on the host.\n", + "# # Note: MOFED's installation is not easily portable, so we can't copy the output of this stage\n", + "# # to our final stage, but must inherit from it. For that reason, we keep track of the build/install\n", + "# # only dependencies in the `MOFED_DEPS` variable (parsing the output of `--check-deps-only`) to\n", + "# # remove them in that same layer, to ensure they are not propagated in the final image.\n", + "# WORKDIR /opt/nvidia/mofed\n", + "# ARG MOFED_INSTALL_FLAGS=\"--dpdk --with-mft --user-space-only --force --without-fw-update\"\n", + "# RUN UBUNTU_VERSION=$(cat /etc/lsb-release | grep DISTRIB_RELEASE | cut -d= -f2) \\\n", + "# && OFED_PACKAGE=\"MLNX_OFED_LINUX-${MOFED_VERSION}-ubuntu${UBUNTU_VERSION}-$(uname -m)\" \\\n", + "# && curl -S -# -o ${OFED_PACKAGE}.tgz -L \\\n", + "# https://www.mellanox.com/downloads/ofed/MLNX_OFED-${MOFED_VERSION}/${OFED_PACKAGE}.tgz \\\n", + "# && tar xf ${OFED_PACKAGE}.tgz \\\n", + "# && MOFED_INSTALLER=$(find . -name mlnxofedinstall -type f -executable -print) \\\n", + "# && MOFED_DEPS=$(${MOFED_INSTALLER} ${MOFED_INSTALL_FLAGS} --check-deps-only 2>/dev/null | tail -n1 | cut -d' ' -f3-) \\\n", + "# && apt-get update \\\n", + "# && apt-get install --no-install-recommends -y ${MOFED_DEPS} \\\n", + "# && ${MOFED_INSTALLER} ${MOFED_INSTALL_FLAGS} \\\n", + "# && rm -r * \\\n", + "# && apt-get remove -y ${MOFED_DEPS} && apt-get autoremove -y \\\n", + "# && rm -rf /var/lib/apt/lists/*\n", + "\n", + "FROM base AS release\n", "ENV DEBIAN_FRONTEND=noninteractive\n", "ENV TERM=xterm-256color\n", "\n", + "ARG GPU_TYPE\n", "ARG UNAME\n", "ARG UID\n", "ARG GID\n", @@ -1572,15 +1657,14 @@ " && mkdir -p /var/holoscan/input \\\n", " && mkdir -p /var/holoscan/output\n", "\n", - "LABEL base=\"nvcr.io/nvidia/clara-holoscan/holoscan:v2.0.0-dgpu\"\n", + "LABEL base=\"nvcr.io/nvidia/cuda:12.6.0-runtime-ubuntu22.04\"\n", "LABEL tag=\"my_app:1.0\"\n", "LABEL org.opencontainers.image.title=\"MONAI Deploy App Package - MONAI Bundle AI App\"\n", "LABEL org.opencontainers.image.version=\"1.0\"\n", - "LABEL org.nvidia.holoscan=\"2.0.0\"\n", - "LABEL org.monai.deploy.app-sdk=\"0.5.1\"\n", + "LABEL org.nvidia.holoscan=\"2.8.0\"\n", "\n", + "LABEL org.monai.deploy.app-sdk=\"2.0.0\"\n", "\n", - "ENV HOLOSCAN_ENABLE_HEALTH_CHECK=true\n", "ENV HOLOSCAN_INPUT_PATH=/var/holoscan/input\n", "ENV HOLOSCAN_OUTPUT_PATH=/var/holoscan/output\n", "ENV HOLOSCAN_WORKDIR=/var/holoscan\n", @@ -1592,21 +1676,40 @@ "ENV HOLOSCAN_APP_MANIFEST_PATH=/etc/holoscan/app.json\n", "ENV HOLOSCAN_PKG_MANIFEST_PATH=/etc/holoscan/pkg.json\n", "ENV HOLOSCAN_LOGS_PATH=/var/holoscan/logs\n", - "ENV PATH=/root/.local/bin:/opt/nvidia/holoscan:$PATH\n", - "ENV LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/libtorch/1.13.1/lib/:/opt/nvidia/holoscan/lib\n", + "ENV HOLOSCAN_VERSION=2.8.0\n", "\n", - "RUN apt-get update \\\n", - " && apt-get install -y curl jq \\\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "# If torch is installed, we can skip installing Python\n", + "ENV PYTHON_VERSION=3.10.6-1~22.04\n", + "ENV PYTHON_PIP_VERSION=22.0.2+dfsg-*\n", + "\n", + "RUN apt update \\\n", + " && apt-get install -y --no-install-recommends --no-install-suggests \\\n", + " python3-minimal=${PYTHON_VERSION} \\\n", + " libpython3-stdlib=${PYTHON_VERSION} \\\n", + " python3=${PYTHON_VERSION} \\\n", + " python3-venv=${PYTHON_VERSION} \\\n", + " python3-pip=${PYTHON_PIP_VERSION} \\\n", " && rm -rf /var/lib/apt/lists/*\n", "\n", - "ENV PYTHONPATH=\"/opt/holoscan/app:$PYTHONPATH\"\n", + "\n", + "\n", + "\n", + "\n", "\n", "\n", "RUN groupadd -f -g $GID $UNAME\n", "RUN useradd -rm -d /home/$UNAME -s /bin/bash -g $GID -G sudo -u $UID $UNAME\n", - "RUN chown -R holoscan /var/holoscan \n", - "RUN chown -R holoscan /var/holoscan/input \n", - "RUN chown -R holoscan /var/holoscan/output \n", + "RUN chown -R holoscan /var/holoscan && \\\n", + " chown -R holoscan /var/holoscan/input && \\\n", + " chown -R holoscan /var/holoscan/output\n", "\n", "# Set the working directory\n", "WORKDIR /var/holoscan\n", @@ -1615,303 +1718,496 @@ "COPY ./tools /var/holoscan/tools\n", "RUN chmod +x /var/holoscan/tools\n", "\n", - "\n", - "# Copy gRPC health probe\n", + "# Set the working directory\n", + "WORKDIR /var/holoscan\n", "\n", "USER $UNAME\n", "\n", - "ENV PATH=/root/.local/bin:/home/holoscan/.local/bin:/opt/nvidia/holoscan:$PATH\n", + "ENV PATH=/home/${UNAME}/.local/bin:/opt/nvidia/holoscan/bin:$PATH\n", + "ENV LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/${UNAME}/.local/lib/python3.10/site-packages/holoscan/lib\n", "\n", "COPY ./pip/requirements.txt /tmp/requirements.txt\n", "\n", "RUN pip install --upgrade pip\n", "RUN pip install --no-cache-dir --user -r /tmp/requirements.txt\n", "\n", - " \n", - "# MONAI Deploy\n", "\n", - "# Copy user-specified MONAI Deploy SDK file\n", - "COPY ./monai_deploy_app_sdk-0.5.1+20.gb869749.dirty-py3-none-any.whl /tmp/monai_deploy_app_sdk-0.5.1+20.gb869749.dirty-py3-none-any.whl\n", - "RUN pip install /tmp/monai_deploy_app_sdk-0.5.1+20.gb869749.dirty-py3-none-any.whl\n", + "# Install MONAI Deploy App SDK\n", + "\n", + "# Install MONAI Deploy from PyPI org\n", + "RUN pip install monai-deploy-app-sdk==2.0.0\n", "\n", "\n", "COPY ./models /opt/holoscan/models\n", "\n", + "\n", "COPY ./map/app.json /etc/holoscan/app.json\n", "COPY ./app.config /var/holoscan/app.yaml\n", "COPY ./map/pkg.json /etc/holoscan/pkg.json\n", "\n", "COPY ./app /opt/holoscan/app\n", "\n", + "\n", "ENTRYPOINT [\"/var/holoscan/tools\"]\n", "=========== End Dockerfile ===========\n", "\n", - "[2024-04-23 15:43:13,775] [INFO] (packager.builder) - \n", + "[2025-01-16 16:17:47,973] [INFO] (packager.builder) - \n", "===============================================================================\n", "Building image for: x64-workstation\n", " Architecture: linux/amd64\n", - " Base Image: nvcr.io/nvidia/clara-holoscan/holoscan:v2.0.0-dgpu\n", + " Base Image: nvcr.io/nvidia/cuda:12.6.0-runtime-ubuntu22.04\n", " Build Image: N/A\n", " Cache: Enabled\n", " Configuration: dgpu\n", - " Holoscan SDK Package: pypi.org\n", - " MONAI Deploy App SDK Package: /home/mqin/src/monai-deploy-app-sdk/dist/monai_deploy_app_sdk-0.5.1+20.gb869749.dirty-py3-none-any.whl\n", + " Holoscan SDK Package: 2.8.0\n", + " MONAI Deploy App SDK Package: N/A\n", " gRPC Health Probe: N/A\n", - " SDK Version: 2.0.0\n", + " SDK Version: 2.8.0\n", " SDK: monai-deploy\n", " Tag: my_app-x64-workstation-dgpu-linux-amd64:1.0\n", + " Included features/dependencies: N/A\n", " \n", - "[2024-04-23 15:43:14,073] [INFO] (common) - Using existing Docker BuildKit builder `holoscan_app_builder`\n", - "[2024-04-23 15:43:14,073] [DEBUG] (packager.builder) - Building Holoscan Application Package: tag=my_app-x64-workstation-dgpu-linux-amd64:1.0\n", + "[2025-01-16 16:17:49,299] [INFO] (common) - Using existing Docker BuildKit builder `holoscan_app_builder`\n", + "[2025-01-16 16:17:49,299] [DEBUG] (packager.builder) - Building Holoscan Application Package: tag=my_app-x64-workstation-dgpu-linux-amd64:1.0\n", "#0 building with \"holoscan_app_builder\" instance using docker-container driver\n", "\n", "#1 [internal] load build definition from Dockerfile\n", - "#1 transferring dockerfile: 2.66kB done\n", + "#1 transferring dockerfile: 4.56kB done\n", "#1 DONE 0.1s\n", "\n", - "#2 [internal] load metadata for nvcr.io/nvidia/clara-holoscan/holoscan:v2.0.0-dgpu\n", - "#2 DONE 0.4s\n", + "#2 [internal] load metadata for nvcr.io/nvidia/cuda:12.6.0-runtime-ubuntu22.04\n", + "#2 ...\n", + "\n", + "#3 [auth] nvidia/cuda:pull token for nvcr.io\n", + "#3 DONE 0.0s\n", + "\n", + "#2 [internal] load metadata for nvcr.io/nvidia/cuda:12.6.0-runtime-ubuntu22.04\n", + "#2 DONE 0.5s\n", "\n", - "#3 [internal] load .dockerignore\n", - "#3 transferring context: 1.79kB done\n", - "#3 DONE 0.1s\n", + "#4 [internal] load .dockerignore\n", + "#4 transferring context: 1.79kB done\n", + "#4 DONE 0.1s\n", "\n", - "#4 [internal] load build context\n", - "#4 DONE 0.0s\n", + "#5 importing cache manifest from nvcr.io/nvidia/cuda:12.6.0-runtime-ubuntu22.04\n", + "#5 ...\n", "\n", - "#5 importing cache manifest from local:12311818318063394630\n", - "#5 inferred cache manifest type: application/vnd.oci.image.index.v1+json done\n", - "#5 DONE 0.0s\n", + "#6 [internal] load build context\n", + "#6 DONE 0.0s\n", "\n", - "#6 [ 1/21] FROM nvcr.io/nvidia/clara-holoscan/holoscan:v2.0.0-dgpu@sha256:20adbccd2c7b12dfb1798f6953f071631c3b85cd337858a7506f8e420add6d4a\n", - "#6 resolve nvcr.io/nvidia/clara-holoscan/holoscan:v2.0.0-dgpu@sha256:20adbccd2c7b12dfb1798f6953f071631c3b85cd337858a7506f8e420add6d4a 0.1s done\n", - "#6 DONE 0.1s\n", + "#7 importing cache manifest from local:10138938764133549295\n", + "#7 inferred cache manifest type: application/vnd.oci.image.index.v1+json done\n", + "#7 DONE 0.0s\n", "\n", - "#7 importing cache manifest from nvcr.io/nvidia/clara-holoscan/holoscan:v2.0.0-dgpu\n", - "#7 inferred cache manifest type: application/vnd.docker.distribution.manifest.list.v2+json done\n", - "#7 DONE 0.7s\n", + "#5 importing cache manifest from nvcr.io/nvidia/cuda:12.6.0-runtime-ubuntu22.04\n", + "#5 inferred cache manifest type: application/vnd.docker.distribution.manifest.list.v2+json done\n", + "#5 DONE 0.7s\n", "\n", - "#4 [internal] load build context\n", - "#4 transferring context: 19.56MB 0.1s done\n", - "#4 DONE 0.2s\n", + "#8 [base 1/2] FROM nvcr.io/nvidia/cuda:12.6.0-runtime-ubuntu22.04@sha256:22fc009e5cea0b8b91d94c99fdd419d2366810b5ea835e47b8343bc15800c186\n", + "#8 resolve nvcr.io/nvidia/cuda:12.6.0-runtime-ubuntu22.04@sha256:22fc009e5cea0b8b91d94c99fdd419d2366810b5ea835e47b8343bc15800c186 0.1s done\n", + "#8 DONE 0.1s\n", "\n", - "#8 [ 8/21] RUN chown -R holoscan /var/holoscan/output\n", - "#8 CACHED\n", + "#6 [internal] load build context\n", + "#6 transferring context: 19.43MB 0.2s done\n", + "#6 DONE 0.2s\n", "\n", - "#9 [ 9/21] WORKDIR /var/holoscan\n", + "#9 [release 2/18] RUN apt update && apt-get install -y --no-install-recommends --no-install-suggests python3-minimal=3.10.6-1~22.04 libpython3-stdlib=3.10.6-1~22.04 python3=3.10.6-1~22.04 python3-venv=3.10.6-1~22.04 python3-pip=22.0.2+dfsg-* && rm -rf /var/lib/apt/lists/*\n", "#9 CACHED\n", "\n", - "#10 [ 7/21] RUN chown -R holoscan /var/holoscan/input\n", + "#10 [release 6/18] WORKDIR /var/holoscan\n", "#10 CACHED\n", "\n", - "#11 [ 4/21] RUN groupadd -f -g 1000 holoscan\n", + "#11 [release 1/18] RUN mkdir -p /etc/holoscan/ && mkdir -p /opt/holoscan/ && mkdir -p /var/holoscan && mkdir -p /opt/holoscan/app && mkdir -p /var/holoscan/input && mkdir -p /var/holoscan/output\n", "#11 CACHED\n", "\n", - "#12 [13/21] RUN pip install --upgrade pip\n", + "#12 [release 5/18] RUN chown -R holoscan /var/holoscan && chown -R holoscan /var/holoscan/input && chown -R holoscan /var/holoscan/output\n", "#12 CACHED\n", "\n", - "#13 [10/21] COPY ./tools /var/holoscan/tools\n", + "#13 [release 4/18] RUN useradd -rm -d /home/holoscan -s /bin/bash -g 1000 -G sudo -u 1000 holoscan\n", "#13 CACHED\n", "\n", - "#14 [12/21] COPY ./pip/requirements.txt /tmp/requirements.txt\n", + "#14 [release 8/18] RUN chmod +x /var/holoscan/tools\n", "#14 CACHED\n", "\n", - "#15 [ 6/21] RUN chown -R holoscan /var/holoscan\n", + "#15 [base 2/2] RUN apt-get update && apt-get install -y --no-install-recommends --no-install-suggests curl jq && rm -rf /var/lib/apt/lists/*\n", "#15 CACHED\n", "\n", - "#16 [ 2/21] RUN mkdir -p /etc/holoscan/ && mkdir -p /opt/holoscan/ && mkdir -p /var/holoscan && mkdir -p /opt/holoscan/app && mkdir -p /var/holoscan/input && mkdir -p /var/holoscan/output\n", + "#16 [release 3/18] RUN groupadd -f -g 1000 holoscan\n", "#16 CACHED\n", "\n", - "#17 [ 3/21] RUN apt-get update && apt-get install -y curl jq && rm -rf /var/lib/apt/lists/*\n", + "#17 [release 7/18] COPY ./tools /var/holoscan/tools\n", "#17 CACHED\n", "\n", - "#18 [ 5/21] RUN useradd -rm -d /home/holoscan -s /bin/bash -g 1000 -G sudo -u 1000 holoscan\n", + "#18 [release 9/18] WORKDIR /var/holoscan\n", "#18 CACHED\n", "\n", - "#19 [11/21] RUN chmod +x /var/holoscan/tools\n", - "#19 CACHED\n", - "\n", - "#20 [14/21] RUN pip install --no-cache-dir --user -r /tmp/requirements.txt\n", - "#20 CACHED\n", - "\n", - "#21 [15/21] COPY ./monai_deploy_app_sdk-0.5.1+20.gb869749.dirty-py3-none-any.whl /tmp/monai_deploy_app_sdk-0.5.1+20.gb869749.dirty-py3-none-any.whl\n", - "#21 DONE 0.8s\n", - "\n", - "#22 [16/21] RUN pip install /tmp/monai_deploy_app_sdk-0.5.1+20.gb869749.dirty-py3-none-any.whl\n", - "#22 0.711 Defaulting to user installation because normal site-packages is not writeable\n", - "#22 0.833 Processing /tmp/monai_deploy_app_sdk-0.5.1+20.gb869749.dirty-py3-none-any.whl\n", - "#22 0.843 Requirement already satisfied: numpy>=1.21.6 in /usr/local/lib/python3.10/dist-packages (from monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (1.23.5)\n", - "#22 1.040 Collecting holoscan~=2.0 (from monai-deploy-app-sdk==0.5.1+20.gb869749.dirty)\n", - "#22 1.139 Downloading holoscan-2.0.0-cp310-cp310-manylinux_2_35_x86_64.whl.metadata (6.7 kB)\n", - "#22 1.213 Collecting colorama>=0.4.1 (from monai-deploy-app-sdk==0.5.1+20.gb869749.dirty)\n", - "#22 1.216 Downloading colorama-0.4.6-py2.py3-none-any.whl.metadata (17 kB)\n", - "#22 1.308 Collecting typeguard>=3.0.0 (from monai-deploy-app-sdk==0.5.1+20.gb869749.dirty)\n", - "#22 1.312 Downloading typeguard-4.2.1-py3-none-any.whl.metadata (3.7 kB)\n", - "#22 1.349 Requirement already satisfied: pip>=20.3 in /home/holoscan/.local/lib/python3.10/site-packages (from holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (24.0)\n", - "#22 1.350 Requirement already satisfied: cupy-cuda12x==12.2 in /usr/local/lib/python3.10/dist-packages (from holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (12.2.0)\n", - "#22 1.351 Requirement already satisfied: cloudpickle==2.2.1 in /usr/local/lib/python3.10/dist-packages (from holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (2.2.1)\n", - "#22 1.353 Requirement already satisfied: python-on-whales==0.60.1 in /usr/local/lib/python3.10/dist-packages (from holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (0.60.1)\n", - "#22 1.353 Requirement already satisfied: Jinja2==3.1.3 in /usr/local/lib/python3.10/dist-packages (from holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (3.1.3)\n", - "#22 1.354 Requirement already satisfied: packaging==23.1 in /usr/local/lib/python3.10/dist-packages (from holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (23.1)\n", - "#22 1.355 Requirement already satisfied: pyyaml==6.0 in /usr/local/lib/python3.10/dist-packages (from holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (6.0)\n", - "#22 1.356 Requirement already satisfied: requests==2.31.0 in /usr/local/lib/python3.10/dist-packages (from holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (2.31.0)\n", - "#22 1.357 Requirement already satisfied: psutil==5.9.6 in /usr/local/lib/python3.10/dist-packages (from holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (5.9.6)\n", - "#22 1.468 Collecting wheel-axle-runtime<1.0 (from holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty)\n", - "#22 1.474 Downloading wheel_axle_runtime-0.0.5-py3-none-any.whl.metadata (7.7 kB)\n", - "#22 1.512 Requirement already satisfied: fastrlock>=0.5 in /usr/local/lib/python3.10/dist-packages (from cupy-cuda12x==12.2->holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (0.8.2)\n", - "#22 1.515 Requirement already satisfied: MarkupSafe>=2.0 in /usr/local/lib/python3.10/dist-packages (from Jinja2==3.1.3->holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (2.1.3)\n", - "#22 1.529 Requirement already satisfied: pydantic<2,>=1.5 in /usr/local/lib/python3.10/dist-packages (from python-on-whales==0.60.1->holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (1.10.15)\n", - "#22 1.529 Requirement already satisfied: tqdm in /usr/local/lib/python3.10/dist-packages (from python-on-whales==0.60.1->holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (4.66.2)\n", - "#22 1.530 Requirement already satisfied: typer>=0.4.1 in /usr/local/lib/python3.10/dist-packages (from python-on-whales==0.60.1->holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (0.12.3)\n", - "#22 1.531 Requirement already satisfied: typing-extensions in /home/holoscan/.local/lib/python3.10/site-packages (from python-on-whales==0.60.1->holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (4.11.0)\n", - "#22 1.540 Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.10/dist-packages (from requests==2.31.0->holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (3.3.2)\n", - "#22 1.541 Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests==2.31.0->holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (3.7)\n", - "#22 1.542 Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests==2.31.0->holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (2.2.1)\n", - "#22 1.543 Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from requests==2.31.0->holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (2024.2.2)\n", - "#22 1.563 Requirement already satisfied: filelock in /home/holoscan/.local/lib/python3.10/site-packages (from wheel-axle-runtime<1.0->holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (3.13.4)\n", - "#22 1.586 Requirement already satisfied: click>=8.0.0 in /usr/local/lib/python3.10/dist-packages (from typer>=0.4.1->python-on-whales==0.60.1->holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (8.1.7)\n", - "#22 1.587 Requirement already satisfied: shellingham>=1.3.0 in /usr/local/lib/python3.10/dist-packages (from typer>=0.4.1->python-on-whales==0.60.1->holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (1.5.4)\n", - "#22 1.588 Requirement already satisfied: rich>=10.11.0 in /usr/local/lib/python3.10/dist-packages (from typer>=0.4.1->python-on-whales==0.60.1->holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (13.7.1)\n", - "#22 1.623 Requirement already satisfied: markdown-it-py>=2.2.0 in /usr/local/lib/python3.10/dist-packages (from rich>=10.11.0->typer>=0.4.1->python-on-whales==0.60.1->holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (3.0.0)\n", - "#22 1.624 Requirement already satisfied: pygments<3.0.0,>=2.13.0 in /usr/local/lib/python3.10/dist-packages (from rich>=10.11.0->typer>=0.4.1->python-on-whales==0.60.1->holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (2.17.2)\n", - "#22 1.645 Requirement already satisfied: mdurl~=0.1 in /usr/local/lib/python3.10/dist-packages (from markdown-it-py>=2.2.0->rich>=10.11.0->typer>=0.4.1->python-on-whales==0.60.1->holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (0.1.2)\n", - "#22 1.662 Downloading colorama-0.4.6-py2.py3-none-any.whl (25 kB)\n", - "#22 1.686 Downloading holoscan-2.0.0-cp310-cp310-manylinux_2_35_x86_64.whl (33.2 MB)\n", - "#22 2.182 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 33.2/33.2 MB 44.5 MB/s eta 0:00:00\n", - "#22 2.187 Downloading typeguard-4.2.1-py3-none-any.whl (34 kB)\n", - "#22 2.210 Downloading wheel_axle_runtime-0.0.5-py3-none-any.whl (12 kB)\n", - "#22 2.567 Installing collected packages: wheel-axle-runtime, typeguard, colorama, holoscan, monai-deploy-app-sdk\n", - "#22 3.333 Successfully installed colorama-0.4.6 holoscan-2.0.0 monai-deploy-app-sdk-0.5.1+20.gb869749.dirty typeguard-4.2.1 wheel-axle-runtime-0.0.5\n", - "#22 DONE 3.7s\n", - "\n", - "#23 [17/21] COPY ./models /opt/holoscan/models\n", + "#19 [release 10/18] COPY ./pip/requirements.txt /tmp/requirements.txt\n", + "#19 DONE 0.1s\n", + "\n", + "#20 [release 11/18] RUN pip install --upgrade pip\n", + "#20 1.023 Defaulting to user installation because normal site-packages is not writeable\n", + "#20 1.060 Requirement already satisfied: pip in /usr/lib/python3/dist-packages (22.0.2)\n", + "#20 1.248 Collecting pip\n", + "#20 1.301 Downloading pip-24.3.1-py3-none-any.whl (1.8 MB)\n", + "#20 1.370 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.8/1.8 MB 29.6 MB/s eta 0:00:00\n", + "#20 1.411 Installing collected packages: pip\n", + "#20 2.169 Successfully installed pip-24.3.1\n", + "#20 DONE 2.4s\n", + "\n", + "#21 [release 12/18] RUN pip install --no-cache-dir --user -r /tmp/requirements.txt\n", + "#21 0.715 Collecting highdicom>=0.18.2 (from -r /tmp/requirements.txt (line 1))\n", + "#21 0.731 Downloading highdicom-0.23.1-py3-none-any.whl.metadata (4.6 kB)\n", + "#21 0.829 Collecting monai>=1.0 (from -r /tmp/requirements.txt (line 2))\n", + "#21 0.976 Downloading monai-1.4.0-py3-none-any.whl.metadata (11 kB)\n", + "#21 1.214 Collecting nibabel>=3.2.1 (from -r /tmp/requirements.txt (line 3))\n", + "#21 1.219 Downloading nibabel-5.3.2-py3-none-any.whl.metadata (9.1 kB)\n", + "#21 1.416 Collecting numpy>=1.21.6 (from -r /tmp/requirements.txt (line 4))\n", + "#21 1.420 Downloading numpy-2.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (62 kB)\n", + "#21 1.438 Collecting pydicom>=2.3.0 (from -r /tmp/requirements.txt (line 5))\n", + "#21 1.443 Downloading pydicom-3.0.1-py3-none-any.whl.metadata (9.4 kB)\n", + "#21 1.449 Requirement already satisfied: setuptools>=59.5.0 in /usr/lib/python3/dist-packages (from -r /tmp/requirements.txt (line 6)) (59.6.0)\n", + "#21 1.480 Collecting SimpleITK>=2.0.0 (from -r /tmp/requirements.txt (line 7))\n", + "#21 1.484 Downloading SimpleITK-2.4.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (7.9 kB)\n", + "#21 1.545 Collecting torch>=1.12.0 (from -r /tmp/requirements.txt (line 8))\n", + "#21 1.549 Downloading torch-2.5.1-cp310-cp310-manylinux1_x86_64.whl.metadata (28 kB)\n", + "#21 1.644 Collecting holoscan==2.6.0 (from -r /tmp/requirements.txt (line 9))\n", + "#21 1.650 Downloading holoscan-2.6.0-cp310-cp310-manylinux_2_35_x86_64.whl.metadata (7.2 kB)\n", + "#21 1.655 Requirement already satisfied: pip>22.0.2 in /home/holoscan/.local/lib/python3.10/site-packages (from holoscan==2.6.0->-r /tmp/requirements.txt (line 9)) (24.3.1)\n", + "#21 1.669 Collecting cupy-cuda12x==12.2 (from holoscan==2.6.0->-r /tmp/requirements.txt (line 9))\n", + "#21 1.673 Downloading cupy_cuda12x-12.2.0-cp310-cp310-manylinux2014_x86_64.whl.metadata (2.6 kB)\n", + "#21 1.688 Collecting cloudpickle==2.2.1 (from holoscan==2.6.0->-r /tmp/requirements.txt (line 9))\n", + "#21 1.694 Downloading cloudpickle-2.2.1-py3-none-any.whl.metadata (6.9 kB)\n", + "#21 1.746 Collecting python-on-whales==0.60.1 (from holoscan==2.6.0->-r /tmp/requirements.txt (line 9))\n", + "#21 1.750 Downloading python_on_whales-0.60.1-py3-none-any.whl.metadata (16 kB)\n", + "#21 1.767 Collecting Jinja2==3.1.3 (from holoscan==2.6.0->-r /tmp/requirements.txt (line 9))\n", + "#21 1.771 Downloading Jinja2-3.1.3-py3-none-any.whl.metadata (3.3 kB)\n", + "#21 1.865 Collecting packaging==23.1 (from holoscan==2.6.0->-r /tmp/requirements.txt (line 9))\n", + "#21 1.869 Downloading packaging-23.1-py3-none-any.whl.metadata (3.1 kB)\n", + "#21 1.905 Collecting pyyaml==6.0 (from holoscan==2.6.0->-r /tmp/requirements.txt (line 9))\n", + "#21 1.909 Downloading PyYAML-6.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl.metadata (2.0 kB)\n", + "#21 1.942 Collecting requests==2.31.0 (from holoscan==2.6.0->-r /tmp/requirements.txt (line 9))\n", + "#21 1.945 Downloading requests-2.31.0-py3-none-any.whl.metadata (4.6 kB)\n", + "#21 2.029 Collecting psutil==6.0.0 (from holoscan==2.6.0->-r /tmp/requirements.txt (line 9))\n", + "#21 2.035 Downloading psutil-6.0.0-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (21 kB)\n", + "#21 2.119 Collecting wheel-axle-runtime<1.0 (from holoscan==2.6.0->-r /tmp/requirements.txt (line 9))\n", + "#21 2.125 Downloading wheel_axle_runtime-0.0.6-py3-none-any.whl.metadata (8.1 kB)\n", + "#21 2.142 Collecting numpy>=1.21.6 (from -r /tmp/requirements.txt (line 4))\n", + "#21 2.146 Downloading numpy-1.26.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (61 kB)\n", + "#21 2.221 Collecting fastrlock>=0.5 (from cupy-cuda12x==12.2->holoscan==2.6.0->-r /tmp/requirements.txt (line 9))\n", + "#21 2.226 Downloading fastrlock-0.8.3-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_28_x86_64.whl.metadata (7.7 kB)\n", + "#21 2.287 Collecting MarkupSafe>=2.0 (from Jinja2==3.1.3->holoscan==2.6.0->-r /tmp/requirements.txt (line 9))\n", + "#21 2.290 Downloading MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (4.0 kB)\n", + "#21 2.428 Collecting pydantic<2,>=1.5 (from python-on-whales==0.60.1->holoscan==2.6.0->-r /tmp/requirements.txt (line 9))\n", + "#21 2.434 Downloading pydantic-1.10.21-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (153 kB)\n", + "#21 2.491 Collecting tqdm (from python-on-whales==0.60.1->holoscan==2.6.0->-r /tmp/requirements.txt (line 9))\n", + "#21 2.494 Downloading tqdm-4.67.1-py3-none-any.whl.metadata (57 kB)\n", + "#21 2.515 Collecting typer>=0.4.1 (from python-on-whales==0.60.1->holoscan==2.6.0->-r /tmp/requirements.txt (line 9))\n", + "#21 2.519 Downloading typer-0.15.1-py3-none-any.whl.metadata (15 kB)\n", + "#21 2.535 Collecting typing-extensions (from python-on-whales==0.60.1->holoscan==2.6.0->-r /tmp/requirements.txt (line 9))\n", + "#21 2.538 Downloading typing_extensions-4.12.2-py3-none-any.whl.metadata (3.0 kB)\n", + "#21 2.639 Collecting charset-normalizer<4,>=2 (from requests==2.31.0->holoscan==2.6.0->-r /tmp/requirements.txt (line 9))\n", + "#21 2.643 Downloading charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (35 kB)\n", + "#21 2.656 Collecting idna<4,>=2.5 (from requests==2.31.0->holoscan==2.6.0->-r /tmp/requirements.txt (line 9))\n", + "#21 2.659 Downloading idna-3.10-py3-none-any.whl.metadata (10 kB)\n", + "#21 2.714 Collecting urllib3<3,>=1.21.1 (from requests==2.31.0->holoscan==2.6.0->-r /tmp/requirements.txt (line 9))\n", + "#21 2.718 Downloading urllib3-2.3.0-py3-none-any.whl.metadata (6.5 kB)\n", + "#21 2.738 Collecting certifi>=2017.4.17 (from requests==2.31.0->holoscan==2.6.0->-r /tmp/requirements.txt (line 9))\n", + "#21 2.742 Downloading certifi-2024.12.14-py3-none-any.whl.metadata (2.3 kB)\n", + "#21 2.994 Collecting pillow>=8.3 (from highdicom>=0.18.2->-r /tmp/requirements.txt (line 1))\n", + "#21 2.997 Downloading pillow-11.1.0-cp310-cp310-manylinux_2_28_x86_64.whl.metadata (9.1 kB)\n", + "#21 3.103 Collecting pyjpegls>=1.0.0 (from highdicom>=0.18.2->-r /tmp/requirements.txt (line 1))\n", + "#21 3.109 Downloading pyjpegls-1.5.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (4.5 kB)\n", + "#21 3.161 Collecting importlib-resources>=5.12 (from nibabel>=3.2.1->-r /tmp/requirements.txt (line 3))\n", + "#21 3.165 Downloading importlib_resources-6.5.2-py3-none-any.whl.metadata (3.9 kB)\n", + "#21 3.220 Collecting filelock (from torch>=1.12.0->-r /tmp/requirements.txt (line 8))\n", + "#21 3.224 Downloading filelock-3.16.1-py3-none-any.whl.metadata (2.9 kB)\n", + "#21 3.263 Collecting networkx (from torch>=1.12.0->-r /tmp/requirements.txt (line 8))\n", + "#21 3.266 Downloading networkx-3.4.2-py3-none-any.whl.metadata (6.3 kB)\n", + "#21 3.299 Collecting fsspec (from torch>=1.12.0->-r /tmp/requirements.txt (line 8))\n", + "#21 3.304 Downloading fsspec-2024.12.0-py3-none-any.whl.metadata (11 kB)\n", + "#21 3.357 Collecting nvidia-cuda-nvrtc-cu12==12.4.127 (from torch>=1.12.0->-r /tmp/requirements.txt (line 8))\n", + "#21 3.360 Downloading nvidia_cuda_nvrtc_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)\n", + "#21 3.372 Collecting nvidia-cuda-runtime-cu12==12.4.127 (from torch>=1.12.0->-r /tmp/requirements.txt (line 8))\n", + "#21 3.376 Downloading nvidia_cuda_runtime_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)\n", + "#21 3.387 Collecting nvidia-cuda-cupti-cu12==12.4.127 (from torch>=1.12.0->-r /tmp/requirements.txt (line 8))\n", + "#21 3.391 Downloading nvidia_cuda_cupti_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl.metadata (1.6 kB)\n", + "#21 3.402 Collecting nvidia-cudnn-cu12==9.1.0.70 (from torch>=1.12.0->-r /tmp/requirements.txt (line 8))\n", + "#21 3.406 Downloading nvidia_cudnn_cu12-9.1.0.70-py3-none-manylinux2014_x86_64.whl.metadata (1.6 kB)\n", + "#21 3.420 Collecting nvidia-cublas-cu12==12.4.5.8 (from torch>=1.12.0->-r /tmp/requirements.txt (line 8))\n", + "#21 3.423 Downloading nvidia_cublas_cu12-12.4.5.8-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)\n", + "#21 3.435 Collecting nvidia-cufft-cu12==11.2.1.3 (from torch>=1.12.0->-r /tmp/requirements.txt (line 8))\n", + "#21 3.439 Downloading nvidia_cufft_cu12-11.2.1.3-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)\n", + "#21 3.450 Collecting nvidia-curand-cu12==10.3.5.147 (from torch>=1.12.0->-r /tmp/requirements.txt (line 8))\n", + "#21 3.454 Downloading nvidia_curand_cu12-10.3.5.147-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)\n", + "#21 3.464 Collecting nvidia-cusolver-cu12==11.6.1.9 (from torch>=1.12.0->-r /tmp/requirements.txt (line 8))\n", + "#21 3.468 Downloading nvidia_cusolver_cu12-11.6.1.9-py3-none-manylinux2014_x86_64.whl.metadata (1.6 kB)\n", + "#21 3.479 Collecting nvidia-cusparse-cu12==12.3.1.170 (from torch>=1.12.0->-r /tmp/requirements.txt (line 8))\n", + "#21 3.483 Downloading nvidia_cusparse_cu12-12.3.1.170-py3-none-manylinux2014_x86_64.whl.metadata (1.6 kB)\n", + "#21 3.494 Collecting nvidia-nccl-cu12==2.21.5 (from torch>=1.12.0->-r /tmp/requirements.txt (line 8))\n", + "#21 3.502 Downloading nvidia_nccl_cu12-2.21.5-py3-none-manylinux2014_x86_64.whl.metadata (1.8 kB)\n", + "#21 3.519 Collecting nvidia-nvtx-cu12==12.4.127 (from torch>=1.12.0->-r /tmp/requirements.txt (line 8))\n", + "#21 3.523 Downloading nvidia_nvtx_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl.metadata (1.7 kB)\n", + "#21 3.541 Collecting nvidia-nvjitlink-cu12==12.4.127 (from torch>=1.12.0->-r /tmp/requirements.txt (line 8))\n", + "#21 3.548 Downloading nvidia_nvjitlink_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)\n", + "#21 3.562 Collecting triton==3.1.0 (from torch>=1.12.0->-r /tmp/requirements.txt (line 8))\n", + "#21 3.565 Downloading triton-3.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (1.3 kB)\n", + "#21 3.588 Collecting sympy==1.13.1 (from torch>=1.12.0->-r /tmp/requirements.txt (line 8))\n", + "#21 3.592 Downloading sympy-1.13.1-py3-none-any.whl.metadata (12 kB)\n", + "#21 3.622 Collecting mpmath<1.4,>=1.1.0 (from sympy==1.13.1->torch>=1.12.0->-r /tmp/requirements.txt (line 8))\n", + "#21 3.625 Downloading mpmath-1.3.0-py3-none-any.whl.metadata (8.6 kB)\n", + "#21 3.639 INFO: pip is looking at multiple versions of pyjpegls to determine which version is compatible with other requirements. This could take a while.\n", + "#21 3.640 Collecting pyjpegls>=1.0.0 (from highdicom>=0.18.2->-r /tmp/requirements.txt (line 1))\n", + "#21 3.647 Downloading pyjpegls-1.5.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (4.5 kB)\n", + "#21 3.657 Downloading pyjpegls-1.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (4.5 kB)\n", + "#21 3.707 Collecting click>=8.0.0 (from typer>=0.4.1->python-on-whales==0.60.1->holoscan==2.6.0->-r /tmp/requirements.txt (line 9))\n", + "#21 3.711 Downloading click-8.1.8-py3-none-any.whl.metadata (2.3 kB)\n", + "#21 3.732 Collecting shellingham>=1.3.0 (from typer>=0.4.1->python-on-whales==0.60.1->holoscan==2.6.0->-r /tmp/requirements.txt (line 9))\n", + "#21 3.735 Downloading shellingham-1.5.4-py2.py3-none-any.whl.metadata (3.5 kB)\n", + "#21 3.793 Collecting rich>=10.11.0 (from typer>=0.4.1->python-on-whales==0.60.1->holoscan==2.6.0->-r /tmp/requirements.txt (line 9))\n", + "#21 3.796 Downloading rich-13.9.4-py3-none-any.whl.metadata (18 kB)\n", + "#21 3.823 Collecting markdown-it-py>=2.2.0 (from rich>=10.11.0->typer>=0.4.1->python-on-whales==0.60.1->holoscan==2.6.0->-r /tmp/requirements.txt (line 9))\n", + "#21 3.827 Downloading markdown_it_py-3.0.0-py3-none-any.whl.metadata (6.9 kB)\n", + "#21 3.852 Collecting pygments<3.0.0,>=2.13.0 (from rich>=10.11.0->typer>=0.4.1->python-on-whales==0.60.1->holoscan==2.6.0->-r /tmp/requirements.txt (line 9))\n", + "#21 3.855 Downloading pygments-2.19.1-py3-none-any.whl.metadata (2.5 kB)\n", + "#21 3.877 Collecting mdurl~=0.1 (from markdown-it-py>=2.2.0->rich>=10.11.0->typer>=0.4.1->python-on-whales==0.60.1->holoscan==2.6.0->-r /tmp/requirements.txt (line 9))\n", + "#21 3.884 Downloading mdurl-0.1.2-py3-none-any.whl.metadata (1.6 kB)\n", + "#21 3.900 Downloading holoscan-2.6.0-cp310-cp310-manylinux_2_35_x86_64.whl (40.8 MB)\n", + "#21 4.267 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 40.8/40.8 MB 113.8 MB/s eta 0:00:00\n", + "#21 4.276 Downloading cloudpickle-2.2.1-py3-none-any.whl (25 kB)\n", + "#21 4.286 Downloading cupy_cuda12x-12.2.0-cp310-cp310-manylinux2014_x86_64.whl (82.0 MB)\n", + "#21 5.333 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 82.0/82.0 MB 78.6 MB/s eta 0:00:00\n", + "#21 5.339 Downloading Jinja2-3.1.3-py3-none-any.whl (133 kB)\n", + "#21 5.345 Downloading packaging-23.1-py3-none-any.whl (48 kB)\n", + "#21 5.354 Downloading psutil-6.0.0-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (290 kB)\n", + "#21 5.364 Downloading python_on_whales-0.60.1-py3-none-any.whl (103 kB)\n", + "#21 5.375 Downloading PyYAML-6.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (682 kB)\n", + "#21 5.385 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 682.2/682.2 kB 150.6 MB/s eta 0:00:00\n", + "#21 5.393 Downloading requests-2.31.0-py3-none-any.whl (62 kB)\n", + "#21 5.402 Downloading highdicom-0.23.1-py3-none-any.whl (836 kB)\n", + "#21 5.417 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 836.4/836.4 kB 83.3 MB/s eta 0:00:00\n", + "#21 5.429 Downloading monai-1.4.0-py3-none-any.whl (1.5 MB)\n", + "#21 5.446 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.5/1.5 MB 129.0 MB/s eta 0:00:00\n", + "#21 5.452 Downloading nibabel-5.3.2-py3-none-any.whl (3.3 MB)\n", + "#21 5.484 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.3/3.3 MB 115.8 MB/s eta 0:00:00\n", + "#21 5.490 Downloading numpy-1.26.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (18.2 MB)\n", + "#21 5.661 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 18.2/18.2 MB 112.0 MB/s eta 0:00:00\n", + "#21 5.670 Downloading pydicom-3.0.1-py3-none-any.whl (2.4 MB)\n", + "#21 5.695 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.4/2.4 MB 115.4 MB/s eta 0:00:00\n", + "#21 5.706 Downloading SimpleITK-2.4.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (52.4 MB)\n", + "#21 6.255 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 52.4/52.4 MB 96.5 MB/s eta 0:00:00\n", + "#21 6.264 Downloading torch-2.5.1-cp310-cp310-manylinux1_x86_64.whl (906.4 MB)\n", + "#21 15.26 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 906.4/906.4 MB 92.4 MB/s eta 0:00:00\n", + "#21 15.27 Downloading nvidia_cublas_cu12-12.4.5.8-py3-none-manylinux2014_x86_64.whl (363.4 MB)\n", + "#21 18.88 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 363.4/363.4 MB 98.5 MB/s eta 0:00:00\n", + "#21 18.89 Downloading nvidia_cuda_cupti_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl (13.8 MB)\n", + "#21 19.01 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 13.8/13.8 MB 117.4 MB/s eta 0:00:00\n", + "#21 19.02 Downloading nvidia_cuda_nvrtc_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl (24.6 MB)\n", + "#21 19.24 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 24.6/24.6 MB 117.5 MB/s eta 0:00:00\n", + "#21 19.25 Downloading nvidia_cuda_runtime_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl (883 kB)\n", + "#21 19.26 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 883.7/883.7 kB 163.1 MB/s eta 0:00:00\n", + "#21 19.27 Downloading nvidia_cudnn_cu12-9.1.0.70-py3-none-manylinux2014_x86_64.whl (664.8 MB)\n", + "#21 25.25 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 664.8/664.8 MB 107.5 MB/s eta 0:00:00\n", + "#21 25.26 Downloading nvidia_cufft_cu12-11.2.1.3-py3-none-manylinux2014_x86_64.whl (211.5 MB)\n", + "#21 27.28 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 211.5/211.5 MB 104.9 MB/s eta 0:00:00\n", + "#21 27.29 Downloading nvidia_curand_cu12-10.3.5.147-py3-none-manylinux2014_x86_64.whl (56.3 MB)\n", + "#21 27.82 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 56.3/56.3 MB 106.6 MB/s eta 0:00:00\n", + "#21 27.83 Downloading nvidia_cusolver_cu12-11.6.1.9-py3-none-manylinux2014_x86_64.whl (127.9 MB)\n", + "#21 29.01 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 127.9/127.9 MB 108.3 MB/s eta 0:00:00\n", + "#21 29.03 Downloading nvidia_cusparse_cu12-12.3.1.170-py3-none-manylinux2014_x86_64.whl (207.5 MB)\n", + "#21 31.22 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 207.5/207.5 MB 94.7 MB/s eta 0:00:00\n", + "#21 31.23 Downloading nvidia_nccl_cu12-2.21.5-py3-none-manylinux2014_x86_64.whl (188.7 MB)\n", + "#21 32.88 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 188.7/188.7 MB 114.7 MB/s eta 0:00:00\n", + "#21 32.89 Downloading nvidia_nvjitlink_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl (21.1 MB)\n", + "#21 33.23 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 21.1/21.1 MB 62.8 MB/s eta 0:00:00\n", + "#21 33.23 Downloading nvidia_nvtx_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl (99 kB)\n", + "#21 33.24 Downloading sympy-1.13.1-py3-none-any.whl (6.2 MB)\n", + "#21 33.30 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 6.2/6.2 MB 117.8 MB/s eta 0:00:00\n", + "#21 33.31 Downloading triton-3.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (209.5 MB)\n", + "#21 35.63 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 209.5/209.5 MB 90.1 MB/s eta 0:00:00\n", + "#21 35.64 Downloading importlib_resources-6.5.2-py3-none-any.whl (37 kB)\n", + "#21 35.65 Downloading pillow-11.1.0-cp310-cp310-manylinux_2_28_x86_64.whl (4.5 MB)\n", + "#21 35.69 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4.5/4.5 MB 115.5 MB/s eta 0:00:00\n", + "#21 35.70 Downloading pyjpegls-1.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.7 MB)\n", + "#21 35.73 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.7/2.7 MB 121.6 MB/s eta 0:00:00\n", + "#21 35.74 Downloading typing_extensions-4.12.2-py3-none-any.whl (37 kB)\n", + "#21 35.75 Downloading wheel_axle_runtime-0.0.6-py3-none-any.whl (14 kB)\n", + "#21 35.75 Downloading filelock-3.16.1-py3-none-any.whl (16 kB)\n", + "#21 35.76 Downloading fsspec-2024.12.0-py3-none-any.whl (183 kB)\n", + "#21 35.76 Downloading networkx-3.4.2-py3-none-any.whl (1.7 MB)\n", + "#21 35.78 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.7/1.7 MB 119.1 MB/s eta 0:00:00\n", + "#21 35.78 Downloading certifi-2024.12.14-py3-none-any.whl (164 kB)\n", + "#21 35.79 Downloading charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (146 kB)\n", + "#21 35.80 Downloading fastrlock-0.8.3-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_28_x86_64.whl (53 kB)\n", + "#21 35.81 Downloading idna-3.10-py3-none-any.whl (70 kB)\n", + "#21 35.82 Downloading MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (20 kB)\n", + "#21 35.83 Downloading mpmath-1.3.0-py3-none-any.whl (536 kB)\n", + "#21 35.83 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 536.2/536.2 kB 156.4 MB/s eta 0:00:00\n", + "#21 35.84 Downloading pydantic-1.10.21-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.3 MB)\n", + "#21 35.88 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.3/3.3 MB 116.8 MB/s eta 0:00:00\n", + "#21 35.88 Downloading typer-0.15.1-py3-none-any.whl (44 kB)\n", + "#21 35.89 Downloading urllib3-2.3.0-py3-none-any.whl (128 kB)\n", + "#21 35.90 Downloading tqdm-4.67.1-py3-none-any.whl (78 kB)\n", + "#21 35.90 Downloading click-8.1.8-py3-none-any.whl (98 kB)\n", + "#21 35.91 Downloading rich-13.9.4-py3-none-any.whl (242 kB)\n", + "#21 35.92 Downloading shellingham-1.5.4-py2.py3-none-any.whl (9.8 kB)\n", + "#21 35.93 Downloading markdown_it_py-3.0.0-py3-none-any.whl (87 kB)\n", + "#21 35.94 Downloading pygments-2.19.1-py3-none-any.whl (1.2 MB)\n", + "#21 35.95 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.2/1.2 MB 134.3 MB/s eta 0:00:00\n", + "#21 35.96 Downloading mdurl-0.1.2-py3-none-any.whl (10.0 kB)\n", + "#21 49.55 Installing collected packages: SimpleITK, mpmath, fastrlock, urllib3, typing-extensions, tqdm, sympy, shellingham, pyyaml, pygments, pydicom, psutil, pillow, packaging, nvidia-nvtx-cu12, nvidia-nvjitlink-cu12, nvidia-nccl-cu12, nvidia-curand-cu12, nvidia-cufft-cu12, nvidia-cuda-runtime-cu12, nvidia-cuda-nvrtc-cu12, nvidia-cuda-cupti-cu12, nvidia-cublas-cu12, numpy, networkx, mdurl, MarkupSafe, importlib-resources, idna, fsspec, filelock, cloudpickle, click, charset-normalizer, certifi, wheel-axle-runtime, triton, requests, pyjpegls, pydantic, nvidia-cusparse-cu12, nvidia-cudnn-cu12, nibabel, markdown-it-py, Jinja2, cupy-cuda12x, rich, nvidia-cusolver-cu12, highdicom, typer, torch, python-on-whales, monai, holoscan\n", + "#21 124.1 Successfully installed Jinja2-3.1.3 MarkupSafe-3.0.2 SimpleITK-2.4.1 certifi-2024.12.14 charset-normalizer-3.4.1 click-8.1.8 cloudpickle-2.2.1 cupy-cuda12x-12.2.0 fastrlock-0.8.3 filelock-3.16.1 fsspec-2024.12.0 highdicom-0.23.1 holoscan-2.6.0 idna-3.10 importlib-resources-6.5.2 markdown-it-py-3.0.0 mdurl-0.1.2 monai-1.4.0 mpmath-1.3.0 networkx-3.4.2 nibabel-5.3.2 numpy-1.26.4 nvidia-cublas-cu12-12.4.5.8 nvidia-cuda-cupti-cu12-12.4.127 nvidia-cuda-nvrtc-cu12-12.4.127 nvidia-cuda-runtime-cu12-12.4.127 nvidia-cudnn-cu12-9.1.0.70 nvidia-cufft-cu12-11.2.1.3 nvidia-curand-cu12-10.3.5.147 nvidia-cusolver-cu12-11.6.1.9 nvidia-cusparse-cu12-12.3.1.170 nvidia-nccl-cu12-2.21.5 nvidia-nvjitlink-cu12-12.4.127 nvidia-nvtx-cu12-12.4.127 packaging-23.1 pillow-11.1.0 psutil-6.0.0 pydantic-1.10.21 pydicom-3.0.1 pygments-2.19.1 pyjpegls-1.4.0 python-on-whales-0.60.1 pyyaml-6.0 requests-2.31.0 rich-13.9.4 shellingham-1.5.4 sympy-1.13.1 torch-2.5.1 tqdm-4.67.1 triton-3.1.0 typer-0.15.1 typing-extensions-4.12.2 urllib3-2.3.0 wheel-axle-runtime-0.0.6\n", + "#21 DONE 125.4s\n", + "\n", + "#22 [release 13/18] RUN pip install monai-deploy-app-sdk==2.0.0\n", + "#22 1.391 Defaulting to user installation because normal site-packages is not writeable\n", + "#22 1.610 Collecting monai-deploy-app-sdk==2.0.0\n", + "#22 1.630 Downloading monai_deploy_app_sdk-2.0.0-py3-none-any.whl.metadata (7.6 kB)\n", + "#22 1.654 Requirement already satisfied: numpy>=1.21.6 in /home/holoscan/.local/lib/python3.10/site-packages (from monai-deploy-app-sdk==2.0.0) (1.26.4)\n", + "#22 1.656 Requirement already satisfied: holoscan~=2.0 in /home/holoscan/.local/lib/python3.10/site-packages (from monai-deploy-app-sdk==2.0.0) (2.6.0)\n", + "#22 1.704 Collecting colorama>=0.4.1 (from monai-deploy-app-sdk==2.0.0)\n", + "#22 1.709 Downloading colorama-0.4.6-py2.py3-none-any.whl.metadata (17 kB)\n", + "#22 1.802 Collecting typeguard>=3.0.0 (from monai-deploy-app-sdk==2.0.0)\n", + "#22 1.808 Downloading typeguard-4.4.1-py3-none-any.whl.metadata (3.7 kB)\n", + "#22 1.834 Requirement already satisfied: pip>22.0.2 in /home/holoscan/.local/lib/python3.10/site-packages (from holoscan~=2.0->monai-deploy-app-sdk==2.0.0) (24.3.1)\n", + "#22 1.835 Requirement already satisfied: cupy-cuda12x==12.2 in /home/holoscan/.local/lib/python3.10/site-packages (from holoscan~=2.0->monai-deploy-app-sdk==2.0.0) (12.2.0)\n", + "#22 1.836 Requirement already satisfied: cloudpickle==2.2.1 in /home/holoscan/.local/lib/python3.10/site-packages (from holoscan~=2.0->monai-deploy-app-sdk==2.0.0) (2.2.1)\n", + "#22 1.837 Requirement already satisfied: python-on-whales==0.60.1 in /home/holoscan/.local/lib/python3.10/site-packages (from holoscan~=2.0->monai-deploy-app-sdk==2.0.0) (0.60.1)\n", + "#22 1.837 Requirement already satisfied: Jinja2==3.1.3 in /home/holoscan/.local/lib/python3.10/site-packages (from holoscan~=2.0->monai-deploy-app-sdk==2.0.0) (3.1.3)\n", + "#22 1.838 Requirement already satisfied: packaging==23.1 in /home/holoscan/.local/lib/python3.10/site-packages (from holoscan~=2.0->monai-deploy-app-sdk==2.0.0) (23.1)\n", + "#22 1.838 Requirement already satisfied: pyyaml==6.0 in /home/holoscan/.local/lib/python3.10/site-packages (from holoscan~=2.0->monai-deploy-app-sdk==2.0.0) (6.0)\n", + "#22 1.839 Requirement already satisfied: requests==2.31.0 in /home/holoscan/.local/lib/python3.10/site-packages (from holoscan~=2.0->monai-deploy-app-sdk==2.0.0) (2.31.0)\n", + "#22 1.840 Requirement already satisfied: psutil==6.0.0 in /home/holoscan/.local/lib/python3.10/site-packages (from holoscan~=2.0->monai-deploy-app-sdk==2.0.0) (6.0.0)\n", + "#22 1.840 Requirement already satisfied: wheel-axle-runtime<1.0 in /home/holoscan/.local/lib/python3.10/site-packages (from holoscan~=2.0->monai-deploy-app-sdk==2.0.0) (0.0.6)\n", + "#22 1.846 Requirement already satisfied: fastrlock>=0.5 in /home/holoscan/.local/lib/python3.10/site-packages (from cupy-cuda12x==12.2->holoscan~=2.0->monai-deploy-app-sdk==2.0.0) (0.8.3)\n", + "#22 1.848 Requirement already satisfied: MarkupSafe>=2.0 in /home/holoscan/.local/lib/python3.10/site-packages (from Jinja2==3.1.3->holoscan~=2.0->monai-deploy-app-sdk==2.0.0) (3.0.2)\n", + "#22 1.855 Requirement already satisfied: pydantic<2,>=1.5 in /home/holoscan/.local/lib/python3.10/site-packages (from python-on-whales==0.60.1->holoscan~=2.0->monai-deploy-app-sdk==2.0.0) (1.10.21)\n", + "#22 1.855 Requirement already satisfied: tqdm in /home/holoscan/.local/lib/python3.10/site-packages (from python-on-whales==0.60.1->holoscan~=2.0->monai-deploy-app-sdk==2.0.0) (4.67.1)\n", + "#22 1.856 Requirement already satisfied: typer>=0.4.1 in /home/holoscan/.local/lib/python3.10/site-packages (from python-on-whales==0.60.1->holoscan~=2.0->monai-deploy-app-sdk==2.0.0) (0.15.1)\n", + "#22 1.856 Requirement already satisfied: typing-extensions in /home/holoscan/.local/lib/python3.10/site-packages (from python-on-whales==0.60.1->holoscan~=2.0->monai-deploy-app-sdk==2.0.0) (4.12.2)\n", + "#22 1.861 Requirement already satisfied: charset-normalizer<4,>=2 in /home/holoscan/.local/lib/python3.10/site-packages (from requests==2.31.0->holoscan~=2.0->monai-deploy-app-sdk==2.0.0) (3.4.1)\n", + "#22 1.862 Requirement already satisfied: idna<4,>=2.5 in /home/holoscan/.local/lib/python3.10/site-packages (from requests==2.31.0->holoscan~=2.0->monai-deploy-app-sdk==2.0.0) (3.10)\n", + "#22 1.862 Requirement already satisfied: urllib3<3,>=1.21.1 in /home/holoscan/.local/lib/python3.10/site-packages (from requests==2.31.0->holoscan~=2.0->monai-deploy-app-sdk==2.0.0) (2.3.0)\n", + "#22 1.863 Requirement already satisfied: certifi>=2017.4.17 in /home/holoscan/.local/lib/python3.10/site-packages (from requests==2.31.0->holoscan~=2.0->monai-deploy-app-sdk==2.0.0) (2024.12.14)\n", + "#22 1.873 Requirement already satisfied: filelock in /home/holoscan/.local/lib/python3.10/site-packages (from wheel-axle-runtime<1.0->holoscan~=2.0->monai-deploy-app-sdk==2.0.0) (3.16.1)\n", + "#22 1.886 Requirement already satisfied: click>=8.0.0 in /home/holoscan/.local/lib/python3.10/site-packages (from typer>=0.4.1->python-on-whales==0.60.1->holoscan~=2.0->monai-deploy-app-sdk==2.0.0) (8.1.8)\n", + "#22 1.887 Requirement already satisfied: shellingham>=1.3.0 in /home/holoscan/.local/lib/python3.10/site-packages (from typer>=0.4.1->python-on-whales==0.60.1->holoscan~=2.0->monai-deploy-app-sdk==2.0.0) (1.5.4)\n", + "#22 1.888 Requirement already satisfied: rich>=10.11.0 in /home/holoscan/.local/lib/python3.10/site-packages (from typer>=0.4.1->python-on-whales==0.60.1->holoscan~=2.0->monai-deploy-app-sdk==2.0.0) (13.9.4)\n", + "#22 1.901 Requirement already satisfied: markdown-it-py>=2.2.0 in /home/holoscan/.local/lib/python3.10/site-packages (from rich>=10.11.0->typer>=0.4.1->python-on-whales==0.60.1->holoscan~=2.0->monai-deploy-app-sdk==2.0.0) (3.0.0)\n", + "#22 1.902 Requirement already satisfied: pygments<3.0.0,>=2.13.0 in /home/holoscan/.local/lib/python3.10/site-packages (from rich>=10.11.0->typer>=0.4.1->python-on-whales==0.60.1->holoscan~=2.0->monai-deploy-app-sdk==2.0.0) (2.19.1)\n", + "#22 1.914 Requirement already satisfied: mdurl~=0.1 in /home/holoscan/.local/lib/python3.10/site-packages (from markdown-it-py>=2.2.0->rich>=10.11.0->typer>=0.4.1->python-on-whales==0.60.1->holoscan~=2.0->monai-deploy-app-sdk==2.0.0) (0.1.2)\n", + "#22 1.925 Downloading monai_deploy_app_sdk-2.0.0-py3-none-any.whl (132 kB)\n", + "#22 1.949 Downloading colorama-0.4.6-py2.py3-none-any.whl (25 kB)\n", + "#22 1.970 Downloading typeguard-4.4.1-py3-none-any.whl (35 kB)\n", + "#22 2.194 Installing collected packages: typeguard, colorama, monai-deploy-app-sdk\n", + "#22 2.361 Successfully installed colorama-0.4.6 monai-deploy-app-sdk-2.0.0 typeguard-4.4.1\n", + "#22 DONE 2.7s\n", + "\n", + "#23 [release 14/18] COPY ./models /opt/holoscan/models\n", "#23 DONE 0.2s\n", "\n", - "#24 [18/21] COPY ./map/app.json /etc/holoscan/app.json\n", + "#24 [release 15/18] COPY ./map/app.json /etc/holoscan/app.json\n", "#24 DONE 0.1s\n", "\n", - "#25 [19/21] COPY ./app.config /var/holoscan/app.yaml\n", + "#25 [release 16/18] COPY ./app.config /var/holoscan/app.yaml\n", "#25 DONE 0.1s\n", "\n", - "#26 [20/21] COPY ./map/pkg.json /etc/holoscan/pkg.json\n", + "#26 [release 17/18] COPY ./map/pkg.json /etc/holoscan/pkg.json\n", "#26 DONE 0.1s\n", "\n", - "#27 [21/21] COPY ./app /opt/holoscan/app\n", + "#27 [release 18/18] COPY ./app /opt/holoscan/app\n", "#27 DONE 0.1s\n", "\n", "#28 exporting to docker image format\n", "#28 exporting layers\n", - "#28 exporting layers 4.7s done\n", - "#28 exporting manifest sha256:272f9320d555ec164d2cdbdf3af72c2508a3768b3438478dfebc976ab20bdef5 0.0s done\n", - "#28 exporting config sha256:af6b96cbe7081e40c1393d1adcbb0d90e60f1eee0f770de931c17ec7e661922f 0.0s done\n", + "#28 exporting layers 205.0s done\n", + "#28 exporting manifest sha256:b5de7fb835f449ac07a4279808b4a2c17058fba60dfd9e7078aa6e2170095160 0.0s done\n", + "#28 exporting config sha256:7b762d9bca4683bb5372f1446c10680cd780f8d2028d776a3b7170ce0e586fba 0.0s done\n", "#28 sending tarball\n", "#28 ...\n", "\n", "#29 importing to docker\n", - "#29 loading layer 5c74dcc5f86c 32.77kB / 125.82kB\n", - "#29 loading layer cf9ad481b317 557.06kB / 67.35MB\n", - "#29 loading layer c4db34b6201c 196.61kB / 17.81MB\n", - "#29 loading layer 37555bd01c91 490B / 490B\n", - "#29 loading layer 47758cf3f2be 313B / 313B\n", - "#29 loading layer f6490513de44 299B / 299B\n", - "#29 loading layer d1e36c8e77c6 3.91kB / 3.91kB\n", - "#29 loading layer 47758cf3f2be 313B / 313B 1.0s done\n", - "#29 loading layer 5c74dcc5f86c 32.77kB / 125.82kB 3.3s done\n", - "#29 loading layer cf9ad481b317 557.06kB / 67.35MB 3.2s done\n", - "#29 loading layer c4db34b6201c 196.61kB / 17.81MB 1.4s done\n", - "#29 loading layer 37555bd01c91 490B / 490B 1.1s done\n", - "#29 loading layer f6490513de44 299B / 299B 1.0s done\n", - "#29 loading layer d1e36c8e77c6 3.91kB / 3.91kB 0.9s done\n", - "#29 DONE 3.3s\n", + "#29 loading layer 883c651eec94 288B / 288B\n", + "#29 loading layer 882e8f4cf156 65.54kB / 5.03MB\n", + "#29 loading layer 9f353f6d59ee 557.06kB / 3.28GB\n", + "#29 loading layer 9f353f6d59ee 142.05MB / 3.28GB 6.2s\n", + "#29 loading layer 9f353f6d59ee 271.29MB / 3.28GB 12.4s\n", + "#29 loading layer 9f353f6d59ee 487.98MB / 3.28GB 16.5s\n", + "#29 loading layer 9f353f6d59ee 677.38MB / 3.28GB 20.7s\n", + "#29 loading layer 9f353f6d59ee 883.49MB / 3.28GB 24.7s\n", + "#29 loading layer 9f353f6d59ee 1.09GB / 3.28GB 28.8s\n", + "#29 loading layer 9f353f6d59ee 1.29GB / 3.28GB 32.9s\n", + "#29 loading layer 9f353f6d59ee 1.53GB / 3.28GB 37.0s\n", + "#29 loading layer 9f353f6d59ee 1.72GB / 3.28GB 41.2s\n", + "#29 loading layer 9f353f6d59ee 1.96GB / 3.28GB 45.3s\n", + "#29 loading layer 9f353f6d59ee 2.13GB / 3.28GB 49.5s\n", + "#29 loading layer 9f353f6d59ee 2.16GB / 3.28GB 55.1s\n", + "#29 loading layer 9f353f6d59ee 2.35GB / 3.28GB 61.2s\n", + "#29 loading layer 9f353f6d59ee 2.51GB / 3.28GB 67.4s\n", + "#29 loading layer 9f353f6d59ee 2.72GB / 3.28GB 71.5s\n", + "#29 loading layer 9f353f6d59ee 2.98GB / 3.28GB 75.6s\n", + "#29 loading layer 9f353f6d59ee 3.17GB / 3.28GB 81.8s\n", + "#29 loading layer ca1fe5d06ea9 32.77kB / 579.10kB\n", + "#29 loading layer 1c84ad13d4d7 196.61kB / 17.81MB\n", + "#29 loading layer 313542a3a9e5 492B / 492B\n", + "#29 loading layer 91ddb543620e 317B / 317B\n", + "#29 loading layer 7ea9ca4496c2 302B / 302B\n", + "#29 loading layer 313542a3a9e5 492B / 492B 0.3s done\n", + "#29 loading layer d1793e4b751a 3.94kB / 3.94kB\n", + "#29 loading layer 883c651eec94 288B / 288B 87.6s done\n", + "#29 loading layer 882e8f4cf156 65.54kB / 5.03MB 87.5s done\n", + "#29 loading layer 9f353f6d59ee 3.21GB / 3.28GB 86.9s done\n", + "#29 loading layer ca1fe5d06ea9 32.77kB / 579.10kB 0.8s done\n", + "#29 loading layer 1c84ad13d4d7 196.61kB / 17.81MB 0.6s done\n", + "#29 loading layer 91ddb543620e 317B / 317B 0.3s done\n", + "#29 loading layer 7ea9ca4496c2 302B / 302B 0.2s done\n", + "#29 loading layer d1793e4b751a 3.94kB / 3.94kB 0.1s done\n", + "#29 DONE 87.6s\n", "\n", "#28 exporting to docker image format\n", - "#28 sending tarball 69.0s done\n", - "#28 DONE 73.8s\n", + "#28 sending tarball 132.5s done\n", + "#28 DONE 337.6s\n", "\n", "#30 exporting cache to client directory\n", "#30 preparing build cache for export\n", - "#30 writing layer sha256:014cff740c9ec6e9a30d0b859219a700ae880eb385d62095d348f5ea136d6015\n", - "#30 writing layer sha256:014cff740c9ec6e9a30d0b859219a700ae880eb385d62095d348f5ea136d6015 done\n", - "#30 writing layer sha256:0487800842442c7a031a39e1e1857bc6dae4b4f7e5daf3d625f7a8a4833fb364 done\n", - "#30 writing layer sha256:06c6aee94862daf0603783db4e1de6f8524b30ac9fbe0374ab3f1d85b2f76f7f done\n", - "#30 writing layer sha256:0a1756432df4a4350712d8ae5c003f1526bd2180800b3ae6301cfc9ccf370254 done\n", - "#30 writing layer sha256:0a77dcbd0e648ddc4f8e5230ade8fdb781d99e24fa4f13ca96a360c7f7e6751f done\n", - "#30 writing layer sha256:0ec682bf99715a9f88631226f3749e2271b8b9f254528ef61f65ed829984821c done\n", - "#30 writing layer sha256:1c5c3aa9c2c8bfd1b9eb36248f5b6d67b3db73ef43440f9dd897615771974b39 done\n", - "#30 writing layer sha256:1f4a978bb76db2d138cfe7c7c9e76db4096247b06e34d349a2ed504bcd6a7ead done\n", - "#30 writing layer sha256:1f73278b7f17492ce1a8b28b139d54596961596d6790dc20046fa6d5909f3e9c done\n", - "#30 writing layer sha256:20d331454f5fb557f2692dfbdbe092c718fd2cb55d5db9d661b62228dacca5c2 done\n", - "#30 writing layer sha256:20e14f0a8ca68167afb8296c10d7a1b4c3b17b54681cbf3b9b45e1be96afa699 0.0s done\n", - "#30 writing layer sha256:238f69a43816e481f0295995fcf5fe74d59facf0f9f99734c8d0a2fb140630e0 done\n", - "#30 writing layer sha256:255cc51d2e47738a5db3059cbe9f403785cf9496c7df8a28a3c9f0c46a0b3b58 done\n", - "#30 writing layer sha256:2ad84487f9d4d31cd1e0a92697a5447dd241935253d036b272ef16d31620c1e7 done\n", - "#30 writing layer sha256:2f65750928993b5b31fe572d9e085b53853c5a344feeb0e8615898e285a8c256 done\n", - "#30 writing layer sha256:34c541b0f73b95f074d23fe925ff6a983a971ca2fbfad7bd9a6863b47994c312\n", - "#30 writing layer sha256:34c541b0f73b95f074d23fe925ff6a983a971ca2fbfad7bd9a6863b47994c312 0.4s done\n", - "#30 writing layer sha256:3777c6498f08c0400339c243e827d465075b7296eb2526e38d9b01c84f8764d8\n", - "#30 writing layer sha256:3777c6498f08c0400339c243e827d465075b7296eb2526e38d9b01c84f8764d8 done\n", - "#30 writing layer sha256:3c91e9a3b2c9cb860c5001bb174d4ebf28358626e66f6e33f7b6209d6e0d2ce0 0.0s done\n", - "#30 writing layer sha256:3e3e04011ebdba380ab129f0ee390626cb2a600623815ca756340c18bedb9517 done\n", - "#30 writing layer sha256:42619ce4a0c9e54cfd0ee41a8e5f27d58b3f51becabd1ac6de725fbe6c42b14a done\n", - "#30 writing layer sha256:49bdc9abf8a437ccff67cc11490ba52c976577992909856a86be872a34d3b950 done\n", - "#30 writing layer sha256:4b691ba9f48b41eaa0c754feba8366f1c030464fcbc55eeffa6c86675990933a done\n", - "#30 writing layer sha256:4d04a8db404f16c2704fa10739cb6745a0187713a21a6ef0deb34b48629b54c1 done\n", + "#30 writing layer sha256:081bfe8f8e11e818382810bb80503f619230a484153219082adae168fbf8396c\n", + "#30 writing layer sha256:081bfe8f8e11e818382810bb80503f619230a484153219082adae168fbf8396c 0.1s done\n", + "#30 writing layer sha256:0e189544a55690047b498cd3539bd123ae622202a9042225913d03ce1c6833a0\n", + "#30 writing layer sha256:0e189544a55690047b498cd3539bd123ae622202a9042225913d03ce1c6833a0 0.3s done\n", + "#30 writing layer sha256:1379a39f4ee98d75ce0813a148b40721a1d044b776dcf3c69bc25fa55a7fb409\n", + "#30 writing layer sha256:1379a39f4ee98d75ce0813a148b40721a1d044b776dcf3c69bc25fa55a7fb409 0.0s done\n", + "#30 writing layer sha256:1a0d52c93099897b518eb6cc6cd0fa3d52ff733e8606b4d8c92675ba9e7101ff done\n", + "#30 writing layer sha256:22b94b166959ca031b96456bdaa8a8bf9b3aea406e403ec6f96cfd8084ae9d64 0.0s done\n", + "#30 writing layer sha256:234b866f57e0c5d555af2d87a1857a17ec4ac7e70d2dc6c31ff0a072a4607f24 done\n", + "#30 writing layer sha256:255905badeaa82f032e1043580eed8b745c19cd4a2cb7183883ee5a30f851d6d done\n", + "#30 writing layer sha256:3713021b02770a720dea9b54c03d0ed83e03a2ef5dce2898c56a327fee9a8bca done\n", + "#30 writing layer sha256:3a80776cdc9c9ef79bb38510849c9160f82462d346bf5a8bf29c811391b4e763 done\n", + "#30 writing layer sha256:41e173df84c503c9e717e0e67c22260d4e6bb14660577b225dec5733b4155a78 done\n", + "#30 writing layer sha256:45a11df8fc21851a3008fe386358f1172c0c589095845f174d42bb86db2f1c49\n", + "#30 writing layer sha256:45a11df8fc21851a3008fe386358f1172c0c589095845f174d42bb86db2f1c49 49.4s done\n", + "#30 writing layer sha256:46c9c54348df10b0d7700bf932d5de7dc5bf9ab91e685db7086e29e381ff8e12 0.2s done\n", + "#30 writing layer sha256:4f4fb700ef54461cfa02571ae0db9a0dc1e0cdb5577484a6d75e68dc38e8acc1\n", "#30 writing layer sha256:4f4fb700ef54461cfa02571ae0db9a0dc1e0cdb5577484a6d75e68dc38e8acc1 done\n", - "#30 writing layer sha256:542bc8c8d18fbc95e6794122c3593a4a693f8ab6dda4460406f4d7b1ae64a2bc done\n", - "#30 writing layer sha256:57f244836ad318f9bbb3b29856ae1a5b31038bfbb9b43d2466d51c199eb55041 done\n", - "#30 writing layer sha256:5b5b131e0f20db4cb8e568b623a95f8fc16ed1c6b322a9366df70b59a881f24f done\n", - "#30 writing layer sha256:5b90d17b5048adcadefd0b1e4dba9a99247a8827a887e1ca042df375c85b518d done\n", - "#30 writing layer sha256:62452179df7c18e292f141d4aec29e6aba9ff8270c893731169fc6f41dc07631 done\n", - "#30 writing layer sha256:6630c387f5f2115bca2e646fd0c2f64e1f3d5431c2e050abe607633883eda230 done\n", - "#30 writing layer sha256:6661e0146e77a8bcb03edbfda95bf7780c8bb4c4f98bc03a398c88f4b2403d12 done\n", - "#30 writing layer sha256:717ebf8c9c66ae393ad01e50dbac4413d7b026b9c97d4d348b22ad17052a1a35 done\n", - "#30 writing layer sha256:773c6815e5e7d6855a62f8c5e2fabce3d939ded36c5420f15b54dd7908cdbcfa done\n", - "#30 writing layer sha256:7852b73ea931e3a8d3287ee7ef3cf4bad068e44f046583bfc2b81336fb299284 done\n", - "#30 writing layer sha256:7f8ec130348bcdac81c295e37fe82b4a6e5e9a3ca980a6343809c561020d82d7 done\n", - "#30 writing layer sha256:80885adcad6b5d021bb9f68b6c952018085bb4ce72011bdc0cf7fe8178b5960b done\n", - "#30 writing layer sha256:82a3436133b2b17bb407c7fe488932aa0ca55411f23ab55c34a6134b287c6a27 done\n", - "#30 writing layer sha256:8371d15eb4d69b1d98174dd098b8ddd5c4f19ec6f8d8b67e72dfa9891dc454b4 done\n", - "#30 writing layer sha256:85713f9b166b5add777c524ee807f6265d88b967cbeb9f961d6b09bf220c9a65 done\n", - "#30 writing layer sha256:8fe00505006a09966e763918147ef6ed55bb6695b26e4940c780ee430dc5da8e done\n", - "#30 writing layer sha256:90eae6faa5cc5ba62f12c25915cdfb1a7a51abfba0d05cb5818c3f908f4e345f done\n", - "#30 writing layer sha256:9205d97d9d3e906698bcc6c42d45727c2fa6ec2622abf953d46778c3b8c78edc done\n", - "#30 writing layer sha256:92301d1270c19cab329818fb215b41138720ab9b588a2070107860f0b6fb5e11\n", - "#30 writing layer sha256:92301d1270c19cab329818fb215b41138720ab9b588a2070107860f0b6fb5e11 1.4s done\n", - "#30 writing layer sha256:993369dbcc13162a6654d2a3e990b8d8b5f37963564d25710e12764337261ae3\n", - "#30 writing layer sha256:993369dbcc13162a6654d2a3e990b8d8b5f37963564d25710e12764337261ae3 done\n", - "#30 writing layer sha256:99e42a4adebadb39bf55bf94bbd9fb8034230ee19b6b0a42e6ff96f2e7794f30 done\n", - "#30 writing layer sha256:9ac855545fa90ed2bf3b388fdff9ef06ac9427b0c0fca07c9e59161983d8827e done\n", - "#30 writing layer sha256:9d19ee268e0d7bcf6716e6658ee1b0384a71d6f2f9aa1ae2085610cf7c7b316f done\n", - "#30 writing layer sha256:9fafbd4203c4fefe007a462e0d2cd4c1c7c41db2cfdc58d212279e1b9b4b230c done\n", - "#30 writing layer sha256:a1748eee9d376f97bd19225ba61dfada9986f063f4fc429e435f157abb629fc6 done\n", - "#30 writing layer sha256:a251fe5ae6c6d2d5034e4ca88b5dfe5d4827ff90b18e9b143a073232a32bb18d done\n", - "#30 writing layer sha256:a68f4e0ec09ec3b78cb4cf8e4511d658e34e7b6f676d7806ad9703194ff17604 done\n", - "#30 writing layer sha256:a8e4decc8f7289623b8fd7b9ba1ca555b5a755ebdbf81328d68209f148d9e602 done\n", - "#30 writing layer sha256:add6bd0fec8e510c778856ae5993f823022a9a0230681b9333c83c58bca70f56 0.0s done\n", - "#30 writing layer sha256:afde1c269453ce68a0f2b54c1ba8c5ecddeb18a19e5618a4acdef1f0fe3921af done\n", - "#30 writing layer sha256:b406feb20a37b8c87ef4f5ef814039e3adc90473d50c366b7d9bb6ded4e94a2e done\n", - "#30 writing layer sha256:b48a5fafcaba74eb5d7e7665601509e2889285b50a04b5b639a23f8adc818157 done\n", - "#30 writing layer sha256:b93a8d787a5c613029585348476c2b6aa666ea47936e138082b0e9175a5583e0 0.0s done\n", - "#30 writing layer sha256:ba9f7c75e4dd7942b944679995365aab766d3677da2e69e1d74472f471a484dd done\n", - "#30 writing layer sha256:bdc13166216ae226fa6976f9ce91f4f259d43972f1e0a9b723e436919534b2f4 done\n", - "#30 writing layer sha256:c815f0be64eded102822d81e029bd23b0d8d9a0fbfeb492ec0b4b0bc4ee777bf done\n", - "#30 writing layer sha256:c97f7fb19e2e0b8ee3e1065f4dee369e35029cc620cafb7fe3dec2e9e06a3ae0 done\n", - "#30 writing layer sha256:c98533d2908f36a5e9b52faae83809b3b6865b50e90e2817308acfc64cd3655f done\n", - "#30 writing layer sha256:d7da5c5e9a40c476c4b3188a845e3276dedfd752e015ea5113df5af64d4d43f7 done\n", - "#30 writing layer sha256:db20521a869adda8244cb64b783c65e1a911efaae0e73ae00e4a34ea6213d6ce done\n", - "#30 writing layer sha256:df4fd0ac710d7af949afbc6d25b5b4daf3f0596dabf3dec36fa7ca8fa6e1d049 done\n", - "#30 writing layer sha256:e291ddecfbe16b95ee9e90b5e90b1a3d0cfd53dc5e720d6b0f3d28e4a47cf5ac done\n", - "#30 writing layer sha256:e8acb678f16bc0c369d5cf9c184f2d3a1c773986816526e5e3e9c0354f7e757f done\n", - "#30 writing layer sha256:e9225f7ab6606813ec9acba98a064826ebfd6713a9645a58cd068538af1ecddb done\n", - "#30 writing layer sha256:f0d70ecec43610ba497f9ab128ee1fbb4ec2aabcacca4f5be136d13bd1ee0fcb 0.0s done\n", - "#30 writing layer sha256:f249faf9663a96b0911a903f8803b11a553c59b698013fb8343492fefdaaea90 done\n", - "#30 writing layer sha256:f608e2fbff86e98627b7e462057e7d2416522096d73fe4664b82fe6ce8a4047d done\n", - "#30 writing layer sha256:f65d191416580d6c38e3d95eee12377b75a4df548be1492618ce2a8c3c41b99e done\n", - "#30 writing config sha256:d8b1ede40893d3af61eaf7d4d58ae3afaa55e9e0fc7722d020635c545f81df0c 0.0s done\n", - "#30 preparing build cache for export 2.6s done\n", - "#30 writing cache manifest sha256:00058bfc69cbf02a85b5242dfe17b06ca30b9c7312be3f7b2cf3aa215c57747f 0.0s done\n", - "#30 DONE 2.6s\n", - "[2024-04-23 15:44:38,817] [INFO] (packager) - Build Summary:\n", + "#30 writing layer sha256:67b3546b211deefd67122e680c0932886e0b3c6bd6ae0665e3ab25d2d9f0cda0 done\n", + "#30 writing layer sha256:94ea8fe9174939142272c5d49e179ba19f357ea997b5d4f3900d1fb7d4fe6707 done\n", + "#30 writing layer sha256:980c13e156f90218b216bc6b0430472bbda71c0202804d350c0e16ef02075885 done\n", + "#30 writing layer sha256:a1e7b959519ccdfb2adb42b59a134cfc9715d7cbffbff130a0f32bec129e4514 0.1s done\n", + "#30 writing layer sha256:ac52600be001236a2c291a4c5902c915bf5ec9d2441c06d2a54c587b76345847\n", + "#30 writing layer sha256:ac52600be001236a2c291a4c5902c915bf5ec9d2441c06d2a54c587b76345847 done\n", + "#30 writing layer sha256:bc25d810fc1fd99656c1b07d422e88cdb896508730175bc3ec187b79f3787044 done\n", + "#30 writing layer sha256:bfa5ec525f430f0d201578b006cd216f9bb89f61b91e96b5c2111bb04e7569e4\n", + "#30 writing layer sha256:bfa5ec525f430f0d201578b006cd216f9bb89f61b91e96b5c2111bb04e7569e4 0.2s done\n", + "#30 writing layer sha256:c0e9112106766f6d918279426468ca3a81ddca90d82a7e3e41ed3d96b0464a94\n", + "#30 writing layer sha256:c0e9112106766f6d918279426468ca3a81ddca90d82a7e3e41ed3d96b0464a94 0.0s done\n", + "#30 writing layer sha256:c8937b741c9ecd6b257aeb18daf07eddbf1c77b0c93f9ba4164faa8353cd1d3c done\n", + "#30 writing layer sha256:d339273dfb7fc3b7fd896d3610d360ab9a09ab33a818093cb73b4be7639b6e99 done\n", + "#30 writing layer sha256:e540d242f419a27800d601d7275f4fbb3488b97d209b454f52e63f1eb413a912 done\n", + "#30 writing layer sha256:edd12bb5b9c08c2e288fc295bf1f84feac12beac66caaa8a19956942eb729aef 0.1s done\n", + "#30 writing layer sha256:efc9014e2a4cb1e133b80bb4f047e9141e98685eb95b8d2471a8e35b86643e31 done\n", + "#30 writing layer sha256:f5fde379d4095f4d724bdbcb4a4851cd60e289756e2a6bbf03fdc1876d68d70b 0.1s done\n", + "#30 writing config sha256:f4279d2706416776e3bb6861a808890e284046f50af2a42e2a8b4cb8b1d078ba 0.0s done\n", + "#30 preparing build cache for export 50.8s done\n", + "#30 writing cache manifest sha256:8778ac8296a1eef32e320942180f024438bc19f8e53b1f74a672584566a828ed 0.0s done\n", + "#30 DONE 50.8s\n", + "[2025-01-16 16:26:32,367] [INFO] (packager) - Build Summary:\n", "\n", "Platform: x64-workstation/dgpu\n", " Status: Succeeded\n", @@ -1937,14 +2233,14 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 45, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "my_app-x64-workstation-dgpu-linux-amd64 1.0 af6b96cbe708 About a minute ago 17.7GB\n" + "my_app-x64-workstation-dgpu-linux-amd64 1.0 7b762d9bca46 6 minutes ago 8.45GB\n" ] } ], @@ -1963,7 +2259,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 48, "metadata": {}, "outputs": [ { @@ -1972,22 +2268,22 @@ "text": [ "output\n", "dcm\n", - "[2024-04-23 15:44:40,497] [INFO] (runner) - Checking dependencies...\n", - "[2024-04-23 15:44:40,497] [INFO] (runner) - --> Verifying if \"docker\" is installed...\n", + "[2025-01-16 16:32:17,206] [INFO] (runner) - Checking dependencies...\n", + "[2025-01-16 16:32:17,206] [INFO] (runner) - --> Verifying if \"docker\" is installed...\n", "\n", - "[2024-04-23 15:44:40,497] [INFO] (runner) - --> Verifying if \"docker-buildx\" is installed...\n", + "[2025-01-16 16:32:17,207] [INFO] (runner) - --> Verifying if \"docker-buildx\" is installed...\n", "\n", - "[2024-04-23 15:44:40,497] [INFO] (runner) - --> Verifying if \"my_app-x64-workstation-dgpu-linux-amd64:1.0\" is available...\n", + "[2025-01-16 16:32:17,209] [INFO] (runner) - --> Verifying if \"my_app-x64-workstation-dgpu-linux-amd64:1.0\" is available...\n", "\n", - "[2024-04-23 15:44:40,571] [INFO] (runner) - Reading HAP/MAP manifest...\n", - "\u001b[sPreparing to copy...\u001b[?25l\u001b[u\u001b[2KCopying from container - 0B\u001b[?25h\u001b[u\u001b[2KSuccessfully copied 2.56kB to /tmp/tmpojmzf387/app.json\n", - "\u001b[sPreparing to copy...\u001b[?25l\u001b[u\u001b[2KCopying from container - 0B\u001b[?25h\u001b[u\u001b[2KSuccessfully copied 2.05kB to /tmp/tmpojmzf387/pkg.json\n", - "[2024-04-23 15:44:41,518] [INFO] (runner) - --> Verifying if \"nvidia-ctk\" is installed...\n", + "[2025-01-16 16:32:17,419] [INFO] (runner) - Reading HAP/MAP manifest...\n", + "Successfully copied 2.56kB to /tmp/tmpgnvxx1p1/app.json\n", + "Successfully copied 2.05kB to /tmp/tmpgnvxx1p1/pkg.json\n", + "[2025-01-16 16:32:17,704] [INFO] (runner) - --> Verifying if \"nvidia-ctk\" is installed...\n", "\n", - "[2024-04-23 15:44:41,518] [INFO] (runner) - --> Verifying \"nvidia-ctk\" version...\n", + "[2025-01-16 16:32:17,705] [INFO] (runner) - --> Verifying \"nvidia-ctk\" version...\n", "\n", - "[2024-04-23 15:44:41,869] [INFO] (common) - Launching container (a6bc36c774bd) using image 'my_app-x64-workstation-dgpu-linux-amd64:1.0'...\n", - " container name: dreamy_goldberg\n", + "[2025-01-16 16:32:18,172] [INFO] (common) - Launching container (75640cd60fab) using image 'my_app-x64-workstation-dgpu-linux-amd64:1.0'...\n", + " container name: pensive_robinson\n", " host name: mingq-dt\n", " network: host\n", " user: 1000:1000\n", @@ -1997,93 +2293,93 @@ " shared memory size: 67108864\n", " devices: \n", " group_add: 44\n", - "2024-04-23 22:44:42 [INFO] Launching application python3 /opt/holoscan/app ...\n", + "2025-01-17 00:32:19 [INFO] Launching application python3 /opt/holoscan/app ...\n", "\n", - "[2024-04-23 22:44:46,465] [INFO] (root) - Parsed args: Namespace(log_level=None, input=None, output=None, model=None, workdir=None, argv=['/opt/holoscan/app'])\n", + "[info] [fragment.cpp:585] Loading extensions from configs...\n", "\n", - "[2024-04-23 22:44:46,467] [INFO] (root) - AppContext object: AppContext(input_path=/var/holoscan/input, output_path=/var/holoscan/output, model_path=/opt/holoscan/models, workdir=/var/holoscan)\n", + "[info] [gxf_executor.cpp:255] Creating context\n", "\n", - "[2024-04-23 22:44:46,467] [INFO] (app.AISpleenSegApp) - App input and output path: /var/holoscan/input, /var/holoscan/output\n", + "[2025-01-17 00:32:27,067] [INFO] (root) - Parsed args: Namespace(log_level=None, input=None, output=None, model=None, workdir=None, argv=['/opt/holoscan/app'])\n", "\n", - "[info] [app_driver.cpp:1161] Launching the driver/health checking service\n", + "[2025-01-17 00:32:27,077] [INFO] (root) - AppContext object: AppContext(input_path=/var/holoscan/input, output_path=/var/holoscan/output, model_path=/opt/holoscan/models, workdir=/var/holoscan)\n", "\n", - "[info] [gxf_executor.cpp:247] Creating context\n", + "[2025-01-17 00:32:27,077] [INFO] (app.AISpleenSegApp) - App input and output path: /var/holoscan/input, /var/holoscan/output\n", "\n", - "[info] [server.cpp:87] Health checking server listening on 0.0.0.0:8777\n", + "[info] [app_driver.cpp:1176] Launching the driver/health checking service\n", "\n", - "[info] [gxf_executor.cpp:1672] Loading extensions from configs...\n", + "[info] [gxf_executor.cpp:1973] Activating Graph...\n", "\n", - "[info] [gxf_executor.cpp:1842] Activating Graph...\n", + "[info] [gxf_executor.cpp:2003] Running Graph...\n", "\n", - "\u001b[0m2024-04-23 22:44:46.511 INFO gxf/std/greedy_scheduler.cpp@191: Scheduling 6 entities\u001b[0m\n", + "[info] [gxf_executor.cpp:2005] Waiting for completion...\n", "\n", - "[info] [gxf_executor.cpp:1874] Running Graph...\n", + "[info] [greedy_scheduler.cpp:191] Scheduling 5 entities\n", "\n", - "[info] [gxf_executor.cpp:1876] Waiting for completion...\n", + "[2025-01-17 00:32:27,104] [INFO] (monai.deploy.operators.dicom_data_loader_operator.DICOMDataLoaderOperator) - No or invalid input path from the optional input port: None\n", "\n", - "[2024-04-23 22:44:46,513] [INFO] (monai.deploy.operators.dicom_data_loader_operator.DICOMDataLoaderOperator) - No or invalid input path from the optional input port: None\n", + "[info] [server.cpp:87] Health checking server listening on 0.0.0.0:8777\n", "\n", - "[2024-04-23 22:44:46,974] [INFO] (root) - Finding series for Selection named: CT Series\n", + "[2025-01-17 00:32:28,766] [INFO] (root) - Finding series for Selection named: CT Series\n", "\n", - "[2024-04-23 22:44:46,974] [INFO] (root) - Searching study, : 1.3.6.1.4.1.14519.5.2.1.7085.2626.822645453932810382886582736291\n", + "[2025-01-17 00:32:28,772] [INFO] (root) - Searching study, : 1.3.6.1.4.1.14519.5.2.1.7085.2626.822645453932810382886582736291\n", "\n", " # of series: 1\n", "\n", - "[2024-04-23 22:44:46,974] [INFO] (root) - Working on series, instance UID: 1.3.6.1.4.1.14519.5.2.1.7085.2626.119403521930927333027265674239\n", + "[2025-01-17 00:32:28,772] [INFO] (root) - Working on series, instance UID: 1.3.6.1.4.1.14519.5.2.1.7085.2626.119403521930927333027265674239\n", "\n", - "[2024-04-23 22:44:46,974] [INFO] (root) - On attribute: 'StudyDescription' to match value: '(.*?)'\n", + "[2025-01-17 00:32:28,772] [INFO] (root) - On attribute: 'StudyDescription' to match value: '(.*?)'\n", "\n", - "[2024-04-23 22:44:46,974] [INFO] (root) - Series attribute StudyDescription value: CT ABDOMEN W IV CONTRAST\n", + "[2025-01-17 00:32:28,772] [INFO] (root) - Series attribute StudyDescription value: CT ABDOMEN W IV CONTRAST\n", "\n", - "[2024-04-23 22:44:46,974] [INFO] (root) - Series attribute string value did not match. Try regEx.\n", + "[2025-01-17 00:32:28,772] [INFO] (root) - Series attribute string value did not match. Try regEx.\n", "\n", - "[2024-04-23 22:44:46,974] [INFO] (root) - On attribute: 'Modality' to match value: '(?i)CT'\n", + "[2025-01-17 00:32:28,772] [INFO] (root) - On attribute: 'Modality' to match value: '(?i)CT'\n", "\n", - "[2024-04-23 22:44:46,974] [INFO] (root) - Series attribute Modality value: CT\n", + "[2025-01-17 00:32:28,772] [INFO] (root) - Series attribute Modality value: CT\n", "\n", - "[2024-04-23 22:44:46,974] [INFO] (root) - Series attribute string value did not match. Try regEx.\n", + "[2025-01-17 00:32:28,772] [INFO] (root) - Series attribute string value did not match. Try regEx.\n", "\n", - "[2024-04-23 22:44:46,974] [INFO] (root) - On attribute: 'SeriesDescription' to match value: '(.*?)'\n", + "[2025-01-17 00:32:28,773] [INFO] (root) - On attribute: 'SeriesDescription' to match value: '(.*?)'\n", "\n", - "[2024-04-23 22:44:46,974] [INFO] (root) - Series attribute SeriesDescription value: ABD/PANC 3.0 B31f\n", + "[2025-01-17 00:32:28,773] [INFO] (root) - Series attribute SeriesDescription value: ABD/PANC 3.0 B31f\n", "\n", - "[2024-04-23 22:44:46,974] [INFO] (root) - Series attribute string value did not match. Try regEx.\n", + "[2025-01-17 00:32:28,773] [INFO] (root) - Series attribute string value did not match. Try regEx.\n", "\n", - "[2024-04-23 22:44:46,974] [INFO] (root) - On attribute: 'ImageType' to match value: ['PRIMARY', 'ORIGINAL']\n", + "[2025-01-17 00:32:28,773] [INFO] (root) - On attribute: 'ImageType' to match value: ['PRIMARY', 'ORIGINAL']\n", "\n", - "[2024-04-23 22:44:46,974] [INFO] (root) - Series attribute ImageType value: None\n", + "[2025-01-17 00:32:28,773] [INFO] (root) - Series attribute ImageType value: None\n", "\n", - "[2024-04-23 22:44:46,974] [INFO] (root) - Selected Series, UID: 1.3.6.1.4.1.14519.5.2.1.7085.2626.119403521930927333027265674239\n", + "[2025-01-17 00:32:28,774] [INFO] (root) - Selected Series, UID: 1.3.6.1.4.1.14519.5.2.1.7085.2626.119403521930927333027265674239\n", "\n", - "[2024-04-23 22:44:47,194] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - Converted Image object metadata:\n", + "[2025-01-17 00:32:29,926] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - Converted Image object metadata:\n", "\n", - "[2024-04-23 22:44:47,194] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - SeriesInstanceUID: 1.3.6.1.4.1.14519.5.2.1.7085.2626.119403521930927333027265674239, type \n", + "[2025-01-17 00:32:29,926] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - SeriesInstanceUID: 1.3.6.1.4.1.14519.5.2.1.7085.2626.119403521930927333027265674239, type \n", "\n", - "[2024-04-23 22:44:47,194] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - SeriesDate: 20090831, type \n", + "[2025-01-17 00:32:29,926] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - SeriesDate: 20090831, type \n", "\n", - "[2024-04-23 22:44:47,194] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - SeriesTime: 101721.452, type \n", + "[2025-01-17 00:32:29,927] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - SeriesTime: 101721.452, type \n", "\n", - "[2024-04-23 22:44:47,194] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - Modality: CT, type \n", + "[2025-01-17 00:32:29,927] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - Modality: CT, type \n", "\n", - "[2024-04-23 22:44:47,194] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - SeriesDescription: ABD/PANC 3.0 B31f, type \n", + "[2025-01-17 00:32:29,927] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - SeriesDescription: ABD/PANC 3.0 B31f, type \n", "\n", - "[2024-04-23 22:44:47,194] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - PatientPosition: HFS, type \n", + "[2025-01-17 00:32:29,927] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - PatientPosition: HFS, type \n", "\n", - "[2024-04-23 22:44:47,194] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - SeriesNumber: 8, type \n", + "[2025-01-17 00:32:29,927] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - SeriesNumber: 8, type \n", "\n", - "[2024-04-23 22:44:47,195] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - row_pixel_spacing: 0.7890625, type \n", + "[2025-01-17 00:32:29,930] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - row_pixel_spacing: 0.7890625, type \n", "\n", - "[2024-04-23 22:44:47,195] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - col_pixel_spacing: 0.7890625, type \n", + "[2025-01-17 00:32:29,930] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - col_pixel_spacing: 0.7890625, type \n", "\n", - "[2024-04-23 22:44:47,195] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - depth_pixel_spacing: 1.5, type \n", + "[2025-01-17 00:32:29,930] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - depth_pixel_spacing: 1.5, type \n", "\n", - "[2024-04-23 22:44:47,195] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - row_direction_cosine: [1.0, 0.0, 0.0], type \n", + "[2025-01-17 00:32:29,931] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - row_direction_cosine: [1.0, 0.0, 0.0], type \n", "\n", - "[2024-04-23 22:44:47,195] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - col_direction_cosine: [0.0, 1.0, 0.0], type \n", + "[2025-01-17 00:32:29,931] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - col_direction_cosine: [0.0, 1.0, 0.0], type \n", "\n", - "[2024-04-23 22:44:47,195] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - depth_direction_cosine: [0.0, 0.0, 1.0], type \n", + "[2025-01-17 00:32:29,931] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - depth_direction_cosine: [0.0, 0.0, 1.0], type \n", "\n", - "[2024-04-23 22:44:47,195] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - dicom_affine_transform: [[ 0.7890625 0. 0. -197.60547 ]\n", + "[2025-01-17 00:32:29,938] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - dicom_affine_transform: [[ 0.7890625 0. 0. -197.60547 ]\n", "\n", " [ 0. 0.7890625 0. -398.60547 ]\n", "\n", @@ -2091,7 +2387,7 @@ "\n", " [ 0. 0. 0. 1. ]], type \n", "\n", - "[2024-04-23 22:44:47,195] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - nifti_affine_transform: [[ -0.7890625 -0. -0. 197.60547 ]\n", + "[2025-01-17 00:32:29,939] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - nifti_affine_transform: [[ -0.7890625 -0. -0. 197.60547 ]\n", "\n", " [ -0. -0.7890625 -0. 398.60547 ]\n", "\n", @@ -2099,63 +2395,63 @@ "\n", " [ 0. 0. 0. 1. ]], type \n", "\n", - "[2024-04-23 22:44:47,196] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - StudyInstanceUID: 1.3.6.1.4.1.14519.5.2.1.7085.2626.822645453932810382886582736291, type \n", + "[2025-01-17 00:32:29,939] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - StudyInstanceUID: 1.3.6.1.4.1.14519.5.2.1.7085.2626.822645453932810382886582736291, type \n", "\n", - "[2024-04-23 22:44:47,196] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - StudyID: , type \n", + "[2025-01-17 00:32:29,939] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - StudyID: , type \n", "\n", - "[2024-04-23 22:44:47,196] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - StudyDate: 20090831, type \n", + "[2025-01-17 00:32:29,940] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - StudyDate: 20090831, type \n", "\n", - "[2024-04-23 22:44:47,196] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - StudyTime: 095948.599, type \n", + "[2025-01-17 00:32:29,940] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - StudyTime: 095948.599, type \n", "\n", - "[2024-04-23 22:44:47,196] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - StudyDescription: CT ABDOMEN W IV CONTRAST, type \n", + "[2025-01-17 00:32:29,940] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - StudyDescription: CT ABDOMEN W IV CONTRAST, type \n", "\n", - "[2024-04-23 22:44:47,196] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - AccessionNumber: 5471978513296937, type \n", + "[2025-01-17 00:32:29,940] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - AccessionNumber: 5471978513296937, type \n", "\n", - "[2024-04-23 22:44:47,196] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - selection_name: CT Series, type \n", + "[2025-01-17 00:32:29,940] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - selection_name: CT Series, type \n", "\n", - "2024-04-23 22:44:47,986 INFO image_writer.py:197 - writing: /var/holoscan/output/saved_images_folder/1.3.6.1.4.1.14519.5.2.1.7085.2626/1.3.6.1.4.1.14519.5.2.1.7085.2626.nii\n", + "2025-01-17 00:33:37,448 INFO image_writer.py:197 - writing: /var/holoscan/output/saved_images_folder/1.3.6.1.4.1.14519.5.2.1.7085.2626/1.3.6.1.4.1.14519.5.2.1.7085.2626.nii\n", "\n", - "2024-04-23 22:44:51,638 INFO image_writer.py:197 - writing: /var/holoscan/output/saved_images_folder/1.3.6.1.4.1.14519.5.2.1.7085.2626/1.3.6.1.4.1.14519.5.2.1.7085.2626_seg.nii\n", + "2025-01-17 00:45:52,727 INFO image_writer.py:197 - writing: /var/holoscan/output/saved_images_folder/1.3.6.1.4.1.14519.5.2.1.7085.2626/1.3.6.1.4.1.14519.5.2.1.7085.2626_seg.nii\n", "\n", - "[2024-04-23 22:44:53,491] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - Output Seg image numpy array shaped: (204, 512, 512)\n", + "[2025-01-17 00:46:04,570] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - Output Seg image numpy array shaped: (204, 512, 512)\n", "\n", - "[2024-04-23 22:44:53,497] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - Output Seg image pixel max value: 1\n", + "[2025-01-17 00:46:05,016] [INFO] (monai.deploy.operators.monai_seg_inference_operator.MonaiSegInferenceOperator) - Output Seg image pixel max value: 1\n", "\n", - "/home/holoscan/.local/lib/python3.10/site-packages/highdicom/valuerep.py:54: UserWarning: The string \"C3N-00198\" is unlikely to represent the intended person name since it contains only a single component. Construct a person name according to the format in described in https://dicom.nema.org/dicom/2013/output/chtml/part05/sect_6.2.html#sect_6.2.1.2, or, in pydicom 2.2.0 or later, use the pydicom.valuerep.PersonName.from_named_components() method to construct the person name correctly. If a single-component name is really intended, add a trailing caret character to disambiguate the name.\n", + "/home/holoscan/.local/lib/python3.10/site-packages/highdicom/base.py:163: UserWarning: The string \"C3N-00198\" is unlikely to represent the intended person name since it contains only a single component. Construct a person name according to the format in described in https://dicom.nema.org/dicom/2013/output/chtml/part05/sect_6.2.html#sect_6.2.1.2, or, in pydicom 2.2.0 or later, use the pydicom.valuerep.PersonName.from_named_components() method to construct the person name correctly. If a single-component name is really intended, add a trailing caret character to disambiguate the name.\n", "\n", - " warnings.warn(\n", + " check_person_name(patient_name)\n", "\n", - "[2024-04-23 22:44:54,694] [INFO] (highdicom.base) - copy Image-related attributes from dataset \"1.3.6.1.4.1.14519.5.2.1.7085.2626.936983343951485811186213470191\"\n", + "[2025-01-17 00:46:08,718] [INFO] (highdicom.base) - copy Image-related attributes from dataset \"1.3.6.1.4.1.14519.5.2.1.7085.2626.936983343951485811186213470191\"\n", "\n", - "[2024-04-23 22:44:54,694] [INFO] (highdicom.base) - copy attributes of module \"Specimen\"\n", + "[2025-01-17 00:46:08,794] [INFO] (highdicom.base) - copy attributes of module \"Specimen\"\n", "\n", - "[2024-04-23 22:44:54,694] [INFO] (highdicom.base) - copy Patient-related attributes from dataset \"1.3.6.1.4.1.14519.5.2.1.7085.2626.936983343951485811186213470191\"\n", + "[2025-01-17 00:46:08,794] [INFO] (highdicom.base) - copy Patient-related attributes from dataset \"1.3.6.1.4.1.14519.5.2.1.7085.2626.936983343951485811186213470191\"\n", "\n", - "[2024-04-23 22:44:54,694] [INFO] (highdicom.base) - copy attributes of module \"Patient\"\n", + "[2025-01-17 00:46:08,794] [INFO] (highdicom.base) - copy attributes of module \"Patient\"\n", "\n", - "[2024-04-23 22:44:54,694] [INFO] (highdicom.base) - copy attributes of module \"Clinical Trial Subject\"\n", + "[2025-01-17 00:46:08,803] [INFO] (highdicom.base) - copy attributes of module \"Clinical Trial Subject\"\n", "\n", - "[2024-04-23 22:44:54,694] [INFO] (highdicom.base) - copy Study-related attributes from dataset \"1.3.6.1.4.1.14519.5.2.1.7085.2626.936983343951485811186213470191\"\n", + "[2025-01-17 00:46:08,804] [INFO] (highdicom.base) - copy Study-related attributes from dataset \"1.3.6.1.4.1.14519.5.2.1.7085.2626.936983343951485811186213470191\"\n", "\n", - "[2024-04-23 22:44:54,694] [INFO] (highdicom.base) - copy attributes of module \"General Study\"\n", + "[2025-01-17 00:46:08,804] [INFO] (highdicom.base) - copy attributes of module \"General Study\"\n", "\n", - "[2024-04-23 22:44:54,695] [INFO] (highdicom.base) - copy attributes of module \"Patient Study\"\n", + "[2025-01-17 00:46:08,805] [INFO] (highdicom.base) - copy attributes of module \"Patient Study\"\n", "\n", - "[2024-04-23 22:44:54,695] [INFO] (highdicom.base) - copy attributes of module \"Clinical Trial Study\"\n", + "[2025-01-17 00:46:08,805] [INFO] (highdicom.base) - copy attributes of module \"Clinical Trial Study\"\n", "\n", - "\u001b[0m2024-04-23 22:44:54.787 INFO gxf/std/greedy_scheduler.cpp@372: Scheduler stopped: Some entities are waiting for execution, but there are no periodic or async entities to get out of the deadlock.\u001b[0m\n", + "[info] [greedy_scheduler.cpp:372] Scheduler stopped: Some entities are waiting for execution, but there are no periodic or async entities to get out of the deadlock.\n", "\n", - "\u001b[0m2024-04-23 22:44:54.788 INFO gxf/std/greedy_scheduler.cpp@401: Scheduler finished.\u001b[0m\n", + "[info] [greedy_scheduler.cpp:401] Scheduler finished.\n", "\n", - "[info] [gxf_executor.cpp:1879] Deactivating Graph...\n", + "[info] [gxf_executor.cpp:2008] Deactivating Graph...\n", "\n", - "[info] [gxf_executor.cpp:1887] Graph execution finished.\n", + "[info] [gxf_executor.cpp:2016] Graph execution finished.\n", "\n", - "[2024-04-23 22:44:54,793] [INFO] (app.AISpleenSegApp) - End run\n", + "[2025-01-17 00:46:09,721] [INFO] (app.AISpleenSegApp) - End run\n", "\n", - "[info] [gxf_executor.cpp:275] Destroying context\n", + "[info] [gxf_executor.cpp:284] Destroying context\n", "\n", - "[2024-04-23 15:44:56,376] [INFO] (common) - Container 'dreamy_goldberg'(a6bc36c774bd) exited.\n" + "[2025-01-16 16:46:26,092] [INFO] (common) - Container 'pensive_robinson'(75640cd60fab) exited.\n" ] } ], @@ -2169,7 +2465,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 49, "metadata": {}, "outputs": [ { @@ -2177,7 +2473,7 @@ "output_type": "stream", "text": [ "output:\n", - "1.2.826.0.1.3680043.10.511.3.57272145768055517649062567242794544.dcm\n", + "1.2.826.0.1.3680043.10.511.3.60700946839990713142461529413707592.dcm\n", "saved_images_folder\n", "\n", "output/saved_images_folder:\n", @@ -2196,7 +2492,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3.8.10 ('.venv': venv)", + "display_name": ".venv", "language": "python", "name": "python3" }, @@ -2211,11 +2507,6 @@ "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.12" - }, - "vscode": { - "interpreter": { - "hash": "9b4ab1155d0cd1042497eb40fd55b2d15caf4b3c0f9fbfcc7ba4404045d40f12" - } } }, "nbformat": 4, diff --git a/notebooks/tutorials/03_segmentation_viz_app.ipynb b/notebooks/tutorials/03_segmentation_viz_app.ipynb index a2c29a98..173dc764 100644 --- a/notebooks/tutorials/03_segmentation_viz_app.ipynb +++ b/notebooks/tutorials/03_segmentation_viz_app.ipynb @@ -85,7 +85,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ @@ -118,34 +118,20 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Download/Extract input and model/bundle files from Google Drive" + "### Download/Extract input and model/bundle files from Google Drive\n", + "\n", + "**_Note:_** Data files are now access controlled. Please first request permission to access the [shared folder on Google Drive](https://drive.google.com/drive/folders/1EONJsrwbGsS30td0hs8zl4WKjihew1Z3?usp=sharing). Please download zip file, `ai_spleen_seg_bundle_data.zip` in the `ai_spleen_seg_app` folder, to the same folder as the notebook example." ] }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Requirement already satisfied: gdown in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (5.1.0)\n", - "Requirement already satisfied: beautifulsoup4 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from gdown) (4.12.3)\n", - "Requirement already satisfied: filelock in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from gdown) (3.13.4)\n", - "Requirement already satisfied: requests[socks] in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from gdown) (2.31.0)\n", - "Requirement already satisfied: tqdm in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from gdown) (4.66.2)\n", - "Requirement already satisfied: soupsieve>1.2 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from beautifulsoup4->gdown) (2.5)\n", - "Requirement already satisfied: charset-normalizer<4,>=2 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from requests[socks]->gdown) (3.3.2)\n", - "Requirement already satisfied: idna<4,>=2.5 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from requests[socks]->gdown) (3.7)\n", - "Requirement already satisfied: urllib3<3,>=1.21.1 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from requests[socks]->gdown) (2.2.1)\n", - "Requirement already satisfied: certifi>=2017.4.17 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from requests[socks]->gdown) (2024.2.2)\n", - "Requirement already satisfied: PySocks!=1.5.7,>=1.5.6 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from requests[socks]->gdown) (1.7.1)\n", - "Downloading...\n", - "From (original): https://drive.google.com/uc?id=1Uds8mEvdGNYUuvFpTtCQ8gNU97bAPCaQ\n", - "From (redirected): https://drive.google.com/uc?id=1Uds8mEvdGNYUuvFpTtCQ8gNU97bAPCaQ&confirm=t&uuid=c8244ec0-ca91-472f-8701-075a197bb44e\n", - "To: /home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/ai_spleen_seg_bundle_data.zip\n", - "100%|██████████████████████████████████████| 79.4M/79.4M [00:00<00:00, 99.7MB/s]\n", "Archive: ai_spleen_seg_bundle_data.zip\n", " inflating: dcm/1-001.dcm \n", " inflating: dcm/1-002.dcm \n", @@ -357,9 +343,9 @@ } ], "source": [ - "# Download the test data and MONAI bundle zip file\n", - "!pip install gdown\n", - "!gdown \"https://drive.google.com/uc?id=1Uds8mEvdGNYUuvFpTtCQ8gNU97bAPCaQ\"\n", + "# Download ai_spleen_bundle_data test data zip file. Please request access and download manually.\n", + "# !pip install gdown\n", + "# !gdown \"https://drive.google.com/uc?id=1IwWMpbo2fd38fKIqeIdL8SKTGvkn31tK\"\n", "\n", "# Clean up the destinaton folder for the input DICOM files\n", "!rm -rf dcm\n", @@ -382,7 +368,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 3, "metadata": {}, "outputs": [ { @@ -415,7 +401,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -475,7 +461,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 5, "metadata": {}, "outputs": [], "source": [ @@ -625,56 +611,57 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - "[2024-04-23 17:21:11,103] [INFO] (root) - Parsed args: Namespace(log_level=None, input=None, output=None, model=None, workdir=None, argv=[])\n", - "[2024-04-23 17:21:11,110] [INFO] (root) - AppContext object: AppContext(input_path=dcm, output_path=output, model_path=models, workdir=)\n", - "[2024-04-23 17:21:11,119] [INFO] (root) - End compose\n", - "[info] [gxf_executor.cpp:247] Creating context\n", - "[info] [gxf_executor.cpp:1672] Loading extensions from configs...\n", - "[info] [gxf_executor.cpp:1842] Activating Graph...\n", - "[info] [gxf_executor.cpp:1874] Running Graph...\n", - "[info] [gxf_executor.cpp:1876] Waiting for completion...\n", - "[2024-04-23 17:21:11,172] [INFO] (monai.deploy.operators.dicom_data_loader_operator.DICOMDataLoaderOperator) - No or invalid input path from the optional input port: None\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\u001b[0m2024-04-23 17:21:11.171 INFO gxf/std/greedy_scheduler.cpp@191: Scheduling 10 entities\u001b[0m\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "[2024-04-23 17:21:11,733] [INFO] (root) - Finding series for Selection named: CT Series\n", - "[2024-04-23 17:21:11,734] [INFO] (root) - Searching study, : 1.3.6.1.4.1.14519.5.2.1.7085.2626.822645453932810382886582736291\n", + "[info] [fragment.cpp:588] Loading extensions from configs...\n", + "[2025-01-16 18:38:40,744] [INFO] (root) - Parsed args: Namespace(log_level=None, input=None, output=None, model=None, workdir=None, argv=[])\n", + "[2025-01-16 18:38:40,750] [INFO] (root) - AppContext object: AppContext(input_path=dcm, output_path=output, model_path=models, workdir=)\n", + "[2025-01-16 18:38:40,755] [INFO] (root) - End compose\n", + "[info] [gxf_executor.cpp:262] Creating context\n", + "[info] [gxf_executor.cpp:1767] creating input IOSpec named 'input_folder'\n", + "[info] [gxf_executor.cpp:1767] creating input IOSpec named 'dicom_study_list'\n", + "[info] [gxf_executor.cpp:1767] creating input IOSpec named 'study_selected_series_list'\n", + "[info] [gxf_executor.cpp:1767] creating input IOSpec named 'image'\n", + "[info] [gxf_executor.cpp:1767] creating input IOSpec named 'seg_image'\n", + "[info] [gxf_executor.cpp:1767] creating input IOSpec named 'image'\n", + "[info] [gxf_executor.cpp:1767] creating input IOSpec named 'output_file'\n", + "[info] [gxf_executor.cpp:1767] creating input IOSpec named 'image'\n", + "[info] [gxf_executor.cpp:1767] creating input IOSpec named 'output_folder'\n", + "[info] [gxf_executor.cpp:1767] creating input IOSpec named 'study_selected_series_list'\n", + "[info] [gxf_executor.cpp:1767] creating input IOSpec named 'seg_image'\n", + "[info] [gxf_executor.cpp:2178] Activating Graph...\n", + "[info] [gxf_executor.cpp:2208] Running Graph...\n", + "[info] [gxf_executor.cpp:2210] Waiting for completion...\n", + "[info] [greedy_scheduler.cpp:191] Scheduling 7 entities\n", + "[2025-01-16 18:38:40,785] [INFO] (monai.deploy.operators.dicom_data_loader_operator.DICOMDataLoaderOperator) - No or invalid input path from the optional input port: None\n", + "[2025-01-16 18:38:41,165] [INFO] (root) - Finding series for Selection named: CT Series\n", + "[2025-01-16 18:38:41,167] [INFO] (root) - Searching study, : 1.3.6.1.4.1.14519.5.2.1.7085.2626.822645453932810382886582736291\n", " # of series: 1\n", - "[2024-04-23 17:21:11,735] [INFO] (root) - Working on series, instance UID: 1.3.6.1.4.1.14519.5.2.1.7085.2626.119403521930927333027265674239\n", - "[2024-04-23 17:21:11,736] [INFO] (root) - On attribute: 'StudyDescription' to match value: '(.*?)'\n", - "[2024-04-23 17:21:11,736] [INFO] (root) - Series attribute StudyDescription value: CT ABDOMEN W IV CONTRAST\n", - "[2024-04-23 17:21:11,737] [INFO] (root) - Series attribute string value did not match. Try regEx.\n", - "[2024-04-23 17:21:11,737] [INFO] (root) - On attribute: 'Modality' to match value: '(?i)CT'\n", - "[2024-04-23 17:21:11,738] [INFO] (root) - Series attribute Modality value: CT\n", - "[2024-04-23 17:21:11,738] [INFO] (root) - Series attribute string value did not match. Try regEx.\n", - "[2024-04-23 17:21:11,739] [INFO] (root) - On attribute: 'SeriesDescription' to match value: '(.*?)'\n", - "[2024-04-23 17:21:11,739] [INFO] (root) - Series attribute SeriesDescription value: ABD/PANC 3.0 B31f\n", - "[2024-04-23 17:21:11,740] [INFO] (root) - Series attribute string value did not match. Try regEx.\n", - "[2024-04-23 17:21:11,740] [INFO] (root) - Selected Series, UID: 1.3.6.1.4.1.14519.5.2.1.7085.2626.119403521930927333027265674239\n", - "[2024-04-23 17:21:11,964] [INFO] (root) - Parsing from bundle_path: /home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/models/model/model.ts\n" + "[2025-01-16 18:38:41,168] [INFO] (root) - Working on series, instance UID: 1.3.6.1.4.1.14519.5.2.1.7085.2626.119403521930927333027265674239\n", + "[2025-01-16 18:38:41,169] [INFO] (root) - On attribute: 'StudyDescription' to match value: '(.*?)'\n", + "[2025-01-16 18:38:41,170] [INFO] (root) - Series attribute StudyDescription value: CT ABDOMEN W IV CONTRAST\n", + "[2025-01-16 18:38:41,171] [INFO] (root) - Series attribute string value did not match. Try regEx.\n", + "[2025-01-16 18:38:41,172] [INFO] (root) - On attribute: 'Modality' to match value: '(?i)CT'\n", + "[2025-01-16 18:38:41,174] [INFO] (root) - Series attribute Modality value: CT\n", + "[2025-01-16 18:38:41,174] [INFO] (root) - Series attribute string value did not match. Try regEx.\n", + "[2025-01-16 18:38:41,175] [INFO] (root) - On attribute: 'SeriesDescription' to match value: '(.*?)'\n", + "[2025-01-16 18:38:41,175] [INFO] (root) - Series attribute SeriesDescription value: ABD/PANC 3.0 B31f\n", + "[2025-01-16 18:38:41,176] [INFO] (root) - Series attribute string value did not match. Try regEx.\n", + "[2025-01-16 18:38:41,176] [INFO] (root) - Selected Series, UID: 1.3.6.1.4.1.14519.5.2.1.7085.2626.119403521930927333027265674239\n", + "[2025-01-16 18:38:41,491] [INFO] (root) - Parsing from bundle_path: /home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/models/model/model.ts\n", + "/home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages/monai/bundle/reference_resolver.py:216: UserWarning: Detected deprecated name 'optional_packages_version' in configuration file, replacing with 'required_packages_version'.\n", + " warnings.warn(\n" ] }, { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "211ff45336804adab6957c462290a405", + "model_id": "8f60e4eaaf3b4902941c9adbdbb26efc", "version_major": 2, "version_minor": 0 }, @@ -689,31 +676,25 @@ "name": "stderr", "output_type": "stream", "text": [ - "[2024-04-23 17:21:24,861] [INFO] (monai.deploy.operators.stl_conversion_operator.STLConversionOperator) - Output will be saved in file output/stl/spleen.stl.\n", - "[2024-04-23 17:21:26,556] [INFO] (monai.deploy.operators.stl_conversion_operator.SpatialImage) - 3D image\n", - "[2024-04-23 17:21:26,557] [INFO] (monai.deploy.operators.stl_conversion_operator.STLConverter) - Image ndarray shape:(204, 512, 512)\n", - "/home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages/highdicom/valuerep.py:54: UserWarning: The string \"C3N-00198\" is unlikely to represent the intended person name since it contains only a single component. Construct a person name according to the format in described in https://dicom.nema.org/dicom/2013/output/chtml/part05/sect_6.2.html#sect_6.2.1.2, or, in pydicom 2.2.0 or later, use the pydicom.valuerep.PersonName.from_named_components() method to construct the person name correctly. If a single-component name is really intended, add a trailing caret character to disambiguate the name.\n", - " warnings.warn(\n", - "[2024-04-23 17:21:38,046] [INFO] (highdicom.base) - copy Image-related attributes from dataset \"1.3.6.1.4.1.14519.5.2.1.7085.2626.936983343951485811186213470191\"\n", - "[2024-04-23 17:21:38,047] [INFO] (highdicom.base) - copy attributes of module \"Specimen\"\n", - "[2024-04-23 17:21:38,048] [INFO] (highdicom.base) - copy Patient-related attributes from dataset \"1.3.6.1.4.1.14519.5.2.1.7085.2626.936983343951485811186213470191\"\n", - "[2024-04-23 17:21:38,049] [INFO] (highdicom.base) - copy attributes of module \"Patient\"\n", - "[2024-04-23 17:21:38,051] [INFO] (highdicom.base) - copy attributes of module \"Clinical Trial Subject\"\n", - "[2024-04-23 17:21:38,052] [INFO] (highdicom.base) - copy Study-related attributes from dataset \"1.3.6.1.4.1.14519.5.2.1.7085.2626.936983343951485811186213470191\"\n", - "[2024-04-23 17:21:38,053] [INFO] (highdicom.base) - copy attributes of module \"General Study\"\n", - "[2024-04-23 17:21:38,054] [INFO] (highdicom.base) - copy attributes of module \"Patient Study\"\n", - "[2024-04-23 17:21:38,055] [INFO] (highdicom.base) - copy attributes of module \"Clinical Trial Study\"\n", - "[info] [gxf_executor.cpp:1879] Deactivating Graph...\n", - "[info] [gxf_executor.cpp:1887] Graph execution finished.\n", - "[2024-04-23 17:21:38,152] [INFO] (__main__.AISpleenSegApp) - End run\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\u001b[0m2024-04-23 17:21:38.150 INFO gxf/std/greedy_scheduler.cpp@372: Scheduler stopped: Some entities are waiting for execution, but there are no periodic or async entities to get out of the deadlock.\u001b[0m\n", - "\u001b[0m2024-04-23 17:21:38.150 INFO gxf/std/greedy_scheduler.cpp@401: Scheduler finished.\u001b[0m\n" + "[2025-01-16 18:38:52,008] [INFO] (monai.deploy.operators.stl_conversion_operator.STLConversionOperator) - Output will be saved in file output/stl/spleen.stl.\n", + "[2025-01-16 18:38:53,980] [INFO] (monai.deploy.operators.stl_conversion_operator.SpatialImage) - 3D image\n", + "[2025-01-16 18:38:53,982] [INFO] (monai.deploy.operators.stl_conversion_operator.STLConverter) - Image ndarray shape:(204, 512, 512)\n", + "/home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages/highdicom/base.py:163: UserWarning: The string \"C3N-00198\" is unlikely to represent the intended person name since it contains only a single component. Construct a person name according to the format in described in https://dicom.nema.org/dicom/2013/output/chtml/part05/sect_6.2.html#sect_6.2.1.2, or, in pydicom 2.2.0 or later, use the pydicom.valuerep.PersonName.from_named_components() method to construct the person name correctly. If a single-component name is really intended, add a trailing caret character to disambiguate the name.\n", + " check_person_name(patient_name)\n", + "[2025-01-16 18:39:05,570] [INFO] (highdicom.base) - copy Image-related attributes from dataset \"1.3.6.1.4.1.14519.5.2.1.7085.2626.936983343951485811186213470191\"\n", + "[2025-01-16 18:39:05,571] [INFO] (highdicom.base) - copy attributes of module \"Specimen\"\n", + "[2025-01-16 18:39:05,572] [INFO] (highdicom.base) - copy Patient-related attributes from dataset \"1.3.6.1.4.1.14519.5.2.1.7085.2626.936983343951485811186213470191\"\n", + "[2025-01-16 18:39:05,573] [INFO] (highdicom.base) - copy attributes of module \"Patient\"\n", + "[2025-01-16 18:39:05,575] [INFO] (highdicom.base) - copy attributes of module \"Clinical Trial Subject\"\n", + "[2025-01-16 18:39:05,576] [INFO] (highdicom.base) - copy Study-related attributes from dataset \"1.3.6.1.4.1.14519.5.2.1.7085.2626.936983343951485811186213470191\"\n", + "[2025-01-16 18:39:05,577] [INFO] (highdicom.base) - copy attributes of module \"General Study\"\n", + "[2025-01-16 18:39:05,579] [INFO] (highdicom.base) - copy attributes of module \"Patient Study\"\n", + "[2025-01-16 18:39:05,580] [INFO] (highdicom.base) - copy attributes of module \"Clinical Trial Study\"\n", + "[info] [greedy_scheduler.cpp:372] Scheduler stopped: Some entities are waiting for execution, but there are no periodic or async entities to get out of the deadlock.\n", + "[info] [greedy_scheduler.cpp:401] Scheduler finished.\n", + "[info] [gxf_executor.cpp:2213] Deactivating Graph...\n", + "[info] [gxf_executor.cpp:2221] Graph execution finished.\n", + "[2025-01-16 18:39:05,702] [INFO] (__main__.AISpleenSegApp) - End run\n" ] } ], @@ -740,7 +721,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 7, "metadata": {}, "outputs": [], "source": [ @@ -758,7 +739,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 8, "metadata": {}, "outputs": [ { @@ -961,7 +942,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 9, "metadata": {}, "outputs": [ { @@ -982,7 +963,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 10, "metadata": {}, "outputs": [ { @@ -1011,58 +992,71 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "[2024-04-23 17:21:43,227] [INFO] (root) - Parsed args: Namespace(log_level=None, input=None, output=None, model=None, workdir=None, argv=['my_app'])\n", - "[2024-04-23 17:21:43,229] [INFO] (root) - AppContext object: AppContext(input_path=dcm, output_path=output, model_path=models, workdir=)\n", - "[2024-04-23 17:21:43,230] [INFO] (root) - End compose\n", - "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:247] Creating context\n", - "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:1672] Loading extensions from configs...\n", - "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:1842] Activating Graph...\n", - "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:1874] Running Graph...\n", - "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:1876] Waiting for completion...\n", - "\u001b[0m2024-04-23 17:21:43.261 INFO gxf/std/greedy_scheduler.cpp@191: Scheduling 10 entities\u001b[0m\n", - "[2024-04-23 17:21:43,263] [INFO] (monai.deploy.operators.dicom_data_loader_operator.DICOMDataLoaderOperator) - No or invalid input path from the optional input port: None\n", - "[2024-04-23 17:21:43,601] [INFO] (root) - Finding series for Selection named: CT Series\n", - "[2024-04-23 17:21:43,601] [INFO] (root) - Searching study, : 1.3.6.1.4.1.14519.5.2.1.7085.2626.822645453932810382886582736291\n", + "[\u001b[32minfo\u001b[m] [fragment.cpp:588] Loading extensions from configs...\n", + "[2025-01-16 18:39:12,216] [INFO] (root) - Parsed args: Namespace(log_level=None, input=None, output=None, model=None, workdir=None, argv=['my_app'])\n", + "[2025-01-16 18:39:12,218] [INFO] (root) - AppContext object: AppContext(input_path=dcm, output_path=output, model_path=models, workdir=)\n", + "[2025-01-16 18:39:12,220] [INFO] (root) - End compose\n", + "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:262] Creating context\n", + "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:1767] creating input IOSpec named 'input_folder'\n", + "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:1767] creating input IOSpec named 'dicom_study_list'\n", + "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:1767] creating input IOSpec named 'study_selected_series_list'\n", + "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:1767] creating input IOSpec named 'image'\n", + "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:1767] creating input IOSpec named 'seg_image'\n", + "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:1767] creating input IOSpec named 'image'\n", + "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:1767] creating input IOSpec named 'output_file'\n", + "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:1767] creating input IOSpec named 'image'\n", + "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:1767] creating input IOSpec named 'output_folder'\n", + "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:1767] creating input IOSpec named 'study_selected_series_list'\n", + "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:1767] creating input IOSpec named 'seg_image'\n", + "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:2178] Activating Graph...\n", + "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:2208] Running Graph...\n", + "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:2210] Waiting for completion...\n", + "[\u001b[32minfo\u001b[m] [greedy_scheduler.cpp:191] Scheduling 7 entities\n", + "[2025-01-16 18:39:12,231] [INFO] (monai.deploy.operators.dicom_data_loader_operator.DICOMDataLoaderOperator) - No or invalid input path from the optional input port: None\n", + "[2025-01-16 18:39:12,884] [INFO] (root) - Finding series for Selection named: CT Series\n", + "[2025-01-16 18:39:12,884] [INFO] (root) - Searching study, : 1.3.6.1.4.1.14519.5.2.1.7085.2626.822645453932810382886582736291\n", " # of series: 1\n", - "[2024-04-23 17:21:43,601] [INFO] (root) - Working on series, instance UID: 1.3.6.1.4.1.14519.5.2.1.7085.2626.119403521930927333027265674239\n", - "[2024-04-23 17:21:43,601] [INFO] (root) - On attribute: 'StudyDescription' to match value: '(.*?)'\n", - "[2024-04-23 17:21:43,601] [INFO] (root) - Series attribute StudyDescription value: CT ABDOMEN W IV CONTRAST\n", - "[2024-04-23 17:21:43,601] [INFO] (root) - Series attribute string value did not match. Try regEx.\n", - "[2024-04-23 17:21:43,601] [INFO] (root) - On attribute: 'Modality' to match value: '(?i)CT'\n", - "[2024-04-23 17:21:43,601] [INFO] (root) - Series attribute Modality value: CT\n", - "[2024-04-23 17:21:43,601] [INFO] (root) - Series attribute string value did not match. Try regEx.\n", - "[2024-04-23 17:21:43,601] [INFO] (root) - On attribute: 'SeriesDescription' to match value: '(.*?)'\n", - "[2024-04-23 17:21:43,601] [INFO] (root) - Series attribute SeriesDescription value: ABD/PANC 3.0 B31f\n", - "[2024-04-23 17:21:43,601] [INFO] (root) - Series attribute string value did not match. Try regEx.\n", - "[2024-04-23 17:21:43,601] [INFO] (root) - Selected Series, UID: 1.3.6.1.4.1.14519.5.2.1.7085.2626.119403521930927333027265674239\n", - "[2024-04-23 17:21:43,818] [INFO] (root) - Parsing from bundle_path: /home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/models/model/model.ts\n", - "Box(children=(Widget(), VBox(children=(interactive(children=(Dropdown(description='View mode', index=2, options=(('Cinematic', 'CINEMATIC'), ('Slice', 'SLICE'), ('Slice Segmentation', 'SLICE_SEGMENTATION')), value='SLICE_SEGMENTATION'), Output()), _dom_classes=('widget-interact',)), interactive(children=(Dropdown(description='Camera', options=('Top', 'Right', 'Front'), value='Top'), Output()), _dom_classes=('widget-interact',))))))\n", - "[2024-04-23 17:21:56,304] [INFO] (monai.deploy.operators.stl_conversion_operator.STLConversionOperator) - Output will be saved in file output/stl/spleen.stl.\n", - "[2024-04-23 17:21:57,924] [INFO] (monai.deploy.operators.stl_conversion_operator.SpatialImage) - 3D image\n", - "[2024-04-23 17:21:57,924] [INFO] (monai.deploy.operators.stl_conversion_operator.STLConverter) - Image ndarray shape:(204, 512, 512)\n", - "/home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages/highdicom/valuerep.py:54: UserWarning: The string \"C3N-00198\" is unlikely to represent the intended person name since it contains only a single component. Construct a person name according to the format in described in https://dicom.nema.org/dicom/2013/output/chtml/part05/sect_6.2.html#sect_6.2.1.2, or, in pydicom 2.2.0 or later, use the pydicom.valuerep.PersonName.from_named_components() method to construct the person name correctly. If a single-component name is really intended, add a trailing caret character to disambiguate the name.\n", + "[2025-01-16 18:39:12,884] [INFO] (root) - Working on series, instance UID: 1.3.6.1.4.1.14519.5.2.1.7085.2626.119403521930927333027265674239\n", + "[2025-01-16 18:39:12,884] [INFO] (root) - On attribute: 'StudyDescription' to match value: '(.*?)'\n", + "[2025-01-16 18:39:12,885] [INFO] (root) - Series attribute StudyDescription value: CT ABDOMEN W IV CONTRAST\n", + "[2025-01-16 18:39:12,885] [INFO] (root) - Series attribute string value did not match. Try regEx.\n", + "[2025-01-16 18:39:12,885] [INFO] (root) - On attribute: 'Modality' to match value: '(?i)CT'\n", + "[2025-01-16 18:39:12,885] [INFO] (root) - Series attribute Modality value: CT\n", + "[2025-01-16 18:39:12,885] [INFO] (root) - Series attribute string value did not match. Try regEx.\n", + "[2025-01-16 18:39:12,885] [INFO] (root) - On attribute: 'SeriesDescription' to match value: '(.*?)'\n", + "[2025-01-16 18:39:12,885] [INFO] (root) - Series attribute SeriesDescription value: ABD/PANC 3.0 B31f\n", + "[2025-01-16 18:39:12,885] [INFO] (root) - Series attribute string value did not match. Try regEx.\n", + "[2025-01-16 18:39:12,885] [INFO] (root) - Selected Series, UID: 1.3.6.1.4.1.14519.5.2.1.7085.2626.119403521930927333027265674239\n", + "[2025-01-16 18:39:13,178] [INFO] (root) - Parsing from bundle_path: /home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/models/model/model.ts\n", + "/home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages/monai/bundle/reference_resolver.py:216: UserWarning: Detected deprecated name 'optional_packages_version' in configuration file, replacing with 'required_packages_version'.\n", " warnings.warn(\n", - "[2024-04-23 17:22:10,502] [INFO] (highdicom.base) - copy Image-related attributes from dataset \"1.3.6.1.4.1.14519.5.2.1.7085.2626.936983343951485811186213470191\"\n", - "[2024-04-23 17:22:10,502] [INFO] (highdicom.base) - copy attributes of module \"Specimen\"\n", - "[2024-04-23 17:22:10,502] [INFO] (highdicom.base) - copy Patient-related attributes from dataset \"1.3.6.1.4.1.14519.5.2.1.7085.2626.936983343951485811186213470191\"\n", - "[2024-04-23 17:22:10,502] [INFO] (highdicom.base) - copy attributes of module \"Patient\"\n", - "[2024-04-23 17:22:10,503] [INFO] (highdicom.base) - copy attributes of module \"Clinical Trial Subject\"\n", - "[2024-04-23 17:22:10,503] [INFO] (highdicom.base) - copy Study-related attributes from dataset \"1.3.6.1.4.1.14519.5.2.1.7085.2626.936983343951485811186213470191\"\n", - "[2024-04-23 17:22:10,503] [INFO] (highdicom.base) - copy attributes of module \"General Study\"\n", - "[2024-04-23 17:22:10,503] [INFO] (highdicom.base) - copy attributes of module \"Patient Study\"\n", - "[2024-04-23 17:22:10,503] [INFO] (highdicom.base) - copy attributes of module \"Clinical Trial Study\"\n", - "\u001b[0m2024-04-23 17:22:10.588 INFO gxf/std/greedy_scheduler.cpp@372: Scheduler stopped: Some entities are waiting for execution, but there are no periodic or async entities to get out of the deadlock.\u001b[0m\n", - "\u001b[0m2024-04-23 17:22:10.588 INFO gxf/std/greedy_scheduler.cpp@401: Scheduler finished.\u001b[0m\n", - "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:1879] Deactivating Graph...\n", - "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:1887] Graph execution finished.\n", - "[2024-04-23 17:22:10,590] [INFO] (app.AISpleenSegApp) - End run\n" + "Box(children=(Widget(), VBox(children=(interactive(children=(Dropdown(description='View mode', index=2, options=(('Cinematic', 'CINEMATIC'), ('Slice', 'SLICE'), ('Slice Segmentation', 'SLICE_SEGMENTATION')), value='SLICE_SEGMENTATION'), Output()), _dom_classes=('widget-interact',)), interactive(children=(Dropdown(description='Camera', options=('Top', 'Right', 'Front'), value='Top'), Output()), _dom_classes=('widget-interact',))))))\n", + "[2025-01-16 18:39:22,788] [INFO] (monai.deploy.operators.stl_conversion_operator.STLConversionOperator) - Output will be saved in file output/stl/spleen.stl.\n", + "[2025-01-16 18:39:24,665] [INFO] (monai.deploy.operators.stl_conversion_operator.SpatialImage) - 3D image\n", + "[2025-01-16 18:39:24,665] [INFO] (monai.deploy.operators.stl_conversion_operator.STLConverter) - Image ndarray shape:(204, 512, 512)\n", + "/home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages/highdicom/base.py:163: UserWarning: The string \"C3N-00198\" is unlikely to represent the intended person name since it contains only a single component. Construct a person name according to the format in described in https://dicom.nema.org/dicom/2013/output/chtml/part05/sect_6.2.html#sect_6.2.1.2, or, in pydicom 2.2.0 or later, use the pydicom.valuerep.PersonName.from_named_components() method to construct the person name correctly. If a single-component name is really intended, add a trailing caret character to disambiguate the name.\n", + " check_person_name(patient_name)\n", + "[2025-01-16 18:39:36,021] [INFO] (highdicom.base) - copy Image-related attributes from dataset \"1.3.6.1.4.1.14519.5.2.1.7085.2626.936983343951485811186213470191\"\n", + "[2025-01-16 18:39:36,021] [INFO] (highdicom.base) - copy attributes of module \"Specimen\"\n", + "[2025-01-16 18:39:36,021] [INFO] (highdicom.base) - copy Patient-related attributes from dataset \"1.3.6.1.4.1.14519.5.2.1.7085.2626.936983343951485811186213470191\"\n", + "[2025-01-16 18:39:36,021] [INFO] (highdicom.base) - copy attributes of module \"Patient\"\n", + "[2025-01-16 18:39:36,021] [INFO] (highdicom.base) - copy attributes of module \"Clinical Trial Subject\"\n", + "[2025-01-16 18:39:36,021] [INFO] (highdicom.base) - copy Study-related attributes from dataset \"1.3.6.1.4.1.14519.5.2.1.7085.2626.936983343951485811186213470191\"\n", + "[2025-01-16 18:39:36,022] [INFO] (highdicom.base) - copy attributes of module \"General Study\"\n", + "[2025-01-16 18:39:36,022] [INFO] (highdicom.base) - copy attributes of module \"Patient Study\"\n", + "[2025-01-16 18:39:36,022] [INFO] (highdicom.base) - copy attributes of module \"Clinical Trial Study\"\n", + "[\u001b[32minfo\u001b[m] [greedy_scheduler.cpp:372] Scheduler stopped: Some entities are waiting for execution, but there are no periodic or async entities to get out of the deadlock.\n", + "[\u001b[32minfo\u001b[m] [greedy_scheduler.cpp:401] Scheduler finished.\n", + "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:2213] Deactivating Graph...\n", + "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:2221] Graph execution finished.\n", + "[2025-01-16 18:39:36,148] [INFO] (app.AISpleenSegApp) - End run\n" ] } ], @@ -1073,14 +1067,14 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 12, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "1.2.826.0.1.3680043.10.511.3.28732173401945631043953175363609741.dcm stl\n" + "1.2.826.0.1.3680043.10.511.3.7381661622403430418697652288923425.dcm stl\n" ] } ], @@ -1107,7 +1101,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3.8.10 ('.venv': venv)", + "display_name": ".venv", "language": "python", "name": "python3" }, @@ -1122,11 +1116,6 @@ "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.12" - }, - "vscode": { - "interpreter": { - "hash": "9b4ab1155d0cd1042497eb40fd55b2d15caf4b3c0f9fbfcc7ba4404045d40f12" - } } }, "nbformat": 4, diff --git a/notebooks/tutorials/04_monai_bundle_app.ipynb b/notebooks/tutorials/04_monai_bundle_app.ipynb index 174bc8e5..88f5ddcc 100644 --- a/notebooks/tutorials/04_monai_bundle_app.ipynb +++ b/notebooks/tutorials/04_monai_bundle_app.ipynb @@ -94,7 +94,7 @@ }, { "cell_type": "code", - "execution_count": 51, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ @@ -126,34 +126,20 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Download/Extract input and model/bundle files from Google Drive" + "### Download/Extract input and model/bundle files from Google Drive\n", + "\n", + "**_Note:_** Data files are now access controlled. Please first request permission to access the [shared folder on Google Drive](https://drive.google.com/drive/folders/1EONJsrwbGsS30td0hs8zl4WKjihew1Z3?usp=sharing). Please download zip file, `mednist_classifieai_spleen_seg_bundle_data.zip` in the `ai_spleen_seg_app` folder, to the same folder as the notebook example." ] }, { "cell_type": "code", - "execution_count": 52, + "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Requirement already satisfied: gdown in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (5.1.0)\n", - "Requirement already satisfied: beautifulsoup4 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from gdown) (4.12.3)\n", - "Requirement already satisfied: filelock in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from gdown) (3.13.4)\n", - "Requirement already satisfied: requests[socks] in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from gdown) (2.31.0)\n", - "Requirement already satisfied: tqdm in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from gdown) (4.66.2)\n", - "Requirement already satisfied: soupsieve>1.2 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from beautifulsoup4->gdown) (2.5)\n", - "Requirement already satisfied: charset-normalizer<4,>=2 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from requests[socks]->gdown) (3.3.2)\n", - "Requirement already satisfied: idna<4,>=2.5 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from requests[socks]->gdown) (3.7)\n", - "Requirement already satisfied: urllib3<3,>=1.21.1 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from requests[socks]->gdown) (2.2.1)\n", - "Requirement already satisfied: certifi>=2017.4.17 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from requests[socks]->gdown) (2024.2.2)\n", - "Requirement already satisfied: PySocks!=1.5.7,>=1.5.6 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from requests[socks]->gdown) (1.7.1)\n", - "Downloading...\n", - "From (original): https://drive.google.com/uc?id=1Uds8mEvdGNYUuvFpTtCQ8gNU97bAPCaQ\n", - "From (redirected): https://drive.google.com/uc?id=1Uds8mEvdGNYUuvFpTtCQ8gNU97bAPCaQ&confirm=t&uuid=acdd1e9c-2382-4003-8390-b86e2e103d74\n", - "To: /home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/ai_spleen_seg_bundle_data.zip\n", - "100%|██████████████████████████████████████| 79.4M/79.4M [00:00<00:00, 96.9MB/s]\n", "Archive: ai_spleen_seg_bundle_data.zip\n", " inflating: dcm/1-001.dcm \n", " inflating: dcm/1-002.dcm \n", @@ -365,9 +351,9 @@ } ], "source": [ - "# Download the test data and MONAI bundle zip file\n", - "!pip install gdown\n", - "!gdown \"https://drive.google.com/uc?id=1Uds8mEvdGNYUuvFpTtCQ8gNU97bAPCaQ\"\n", + "# Download ai_spleen_bundle_data test data zip file. Please request access and download manually.\n", + "# !pip install gdown\n", + "# !gdown \"https://drive.google.com/uc?id=1IwWMpbo2fd38fKIqeIdL8SKTGvkn31tK\"\n", "\n", "# After downloading ai_spleen_bundle_data zip file from the web browser or using gdown,\n", "!unzip -o \"ai_spleen_seg_bundle_data.zip\"\n", @@ -387,7 +373,7 @@ }, { "cell_type": "code", - "execution_count": 53, + "execution_count": 3, "metadata": {}, "outputs": [ { @@ -418,7 +404,7 @@ }, { "cell_type": "code", - "execution_count": 54, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -475,7 +461,7 @@ }, { "cell_type": "code", - "execution_count": 55, + "execution_count": 5, "metadata": {}, "outputs": [], "source": [ @@ -619,77 +605,69 @@ }, { "cell_type": "code", - "execution_count": 56, + "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - "[2024-04-23 16:51:59,898] [INFO] (root) - Begin __main__\n", - "[2024-04-23 16:51:59,901] [INFO] (__main__.AISpleenSegApp) - Begin run\n", - "[2024-04-23 16:51:59,902] [INFO] (root) - Begin compose\n", - "[2024-04-23 16:51:59,909] [INFO] (root) - Parsed args: Namespace(log_level=None, input=None, output=None, model=None, workdir=None, argv=[])\n", - "[2024-04-23 16:51:59,915] [INFO] (root) - AppContext object: AppContext(input_path=dcm, output_path=output, model_path=models, workdir=)\n", - "[2024-04-23 16:51:59,920] [INFO] (root) - End compose\n", - "[info] [gxf_executor.cpp:247] Creating context\n", - "[info] [gxf_executor.cpp:1672] Loading extensions from configs...\n", - "[info] [gxf_executor.cpp:1842] Activating Graph...\n", - "[info] [gxf_executor.cpp:1874] Running Graph...\n", - "[info] [gxf_executor.cpp:1876] Waiting for completion...\n", - "[2024-04-23 16:51:59,943] [INFO] (monai.deploy.operators.dicom_data_loader_operator.DICOMDataLoaderOperator) - No or invalid input path from the optional input port: None\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\u001b[0m2024-04-23 16:51:59.940 INFO gxf/std/greedy_scheduler.cpp@191: Scheduling 8 entities\u001b[0m\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "[2024-04-23 16:52:00,393] [INFO] (root) - Finding series for Selection named: CT Series\n", - "[2024-04-23 16:52:00,394] [INFO] (root) - Searching study, : 1.3.6.1.4.1.14519.5.2.1.7085.2626.822645453932810382886582736291\n", + "[info] [fragment.cpp:588] Loading extensions from configs...\n", + "[2025-01-16 18:46:54,471] [INFO] (root) - Parsed args: Namespace(log_level=None, input=None, output=None, model=None, workdir=None, argv=[])\n", + "[2025-01-16 18:46:54,485] [INFO] (root) - AppContext object: AppContext(input_path=dcm, output_path=output, model_path=models, workdir=)\n", + "[2025-01-16 18:46:54,496] [INFO] (root) - End compose\n", + "[info] [gxf_executor.cpp:262] Creating context\n", + "[info] [gxf_executor.cpp:1767] creating input IOSpec named 'input_folder'\n", + "[info] [gxf_executor.cpp:1767] creating input IOSpec named 'dicom_study_list'\n", + "[info] [gxf_executor.cpp:1767] creating input IOSpec named 'study_selected_series_list'\n", + "[info] [gxf_executor.cpp:1767] creating input IOSpec named 'image'\n", + "[info] [gxf_executor.cpp:1767] creating input IOSpec named 'output_file'\n", + "[info] [gxf_executor.cpp:1767] creating input IOSpec named 'image'\n", + "[info] [gxf_executor.cpp:1767] creating input IOSpec named 'output_folder'\n", + "[info] [gxf_executor.cpp:1767] creating input IOSpec named 'study_selected_series_list'\n", + "[info] [gxf_executor.cpp:1767] creating input IOSpec named 'seg_image'\n", + "[info] [gxf_executor.cpp:2178] Activating Graph...\n", + "[info] [gxf_executor.cpp:2208] Running Graph...\n", + "[info] [gxf_executor.cpp:2210] Waiting for completion...\n", + "[info] [greedy_scheduler.cpp:191] Scheduling 6 entities\n", + "[2025-01-16 18:46:54,518] [INFO] (monai.deploy.operators.dicom_data_loader_operator.DICOMDataLoaderOperator) - No or invalid input path from the optional input port: None\n", + "[2025-01-16 18:46:54,871] [INFO] (root) - Finding series for Selection named: CT Series\n", + "[2025-01-16 18:46:54,872] [INFO] (root) - Searching study, : 1.3.6.1.4.1.14519.5.2.1.7085.2626.822645453932810382886582736291\n", " # of series: 1\n", - "[2024-04-23 16:52:00,395] [INFO] (root) - Working on series, instance UID: 1.3.6.1.4.1.14519.5.2.1.7085.2626.119403521930927333027265674239\n", - "[2024-04-23 16:52:00,396] [INFO] (root) - On attribute: 'StudyDescription' to match value: '(.*?)'\n", - "[2024-04-23 16:52:00,397] [INFO] (root) - Series attribute StudyDescription value: CT ABDOMEN W IV CONTRAST\n", - "[2024-04-23 16:52:00,397] [INFO] (root) - Series attribute string value did not match. Try regEx.\n", - "[2024-04-23 16:52:00,398] [INFO] (root) - On attribute: 'Modality' to match value: '(?i)CT'\n", - "[2024-04-23 16:52:00,399] [INFO] (root) - Series attribute Modality value: CT\n", - "[2024-04-23 16:52:00,399] [INFO] (root) - Series attribute string value did not match. Try regEx.\n", - "[2024-04-23 16:52:00,400] [INFO] (root) - On attribute: 'SeriesDescription' to match value: '(.*?)'\n", - "[2024-04-23 16:52:00,400] [INFO] (root) - Series attribute SeriesDescription value: ABD/PANC 3.0 B31f\n", - "[2024-04-23 16:52:00,401] [INFO] (root) - Series attribute string value did not match. Try regEx.\n", - "[2024-04-23 16:52:00,402] [INFO] (root) - Selected Series, UID: 1.3.6.1.4.1.14519.5.2.1.7085.2626.119403521930927333027265674239\n", - "[2024-04-23 16:52:00,641] [INFO] (root) - Parsing from bundle_path: /home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/models/model/model.ts\n", - "[2024-04-23 16:52:03,610] [INFO] (monai.deploy.operators.stl_conversion_operator.STLConversionOperator) - Output will be saved in file output/stl/spleen.stl.\n", - "[2024-04-23 16:52:05,137] [INFO] (monai.deploy.operators.stl_conversion_operator.SpatialImage) - 3D image\n", - "[2024-04-23 16:52:05,138] [INFO] (monai.deploy.operators.stl_conversion_operator.STLConverter) - Image ndarray shape:(204, 512, 512)\n", - "[2024-04-23 16:52:14,942] [INFO] (highdicom.base) - copy Image-related attributes from dataset \"1.3.6.1.4.1.14519.5.2.1.7085.2626.936983343951485811186213470191\"\n", - "[2024-04-23 16:52:14,943] [INFO] (highdicom.base) - copy attributes of module \"Specimen\"\n", - "[2024-04-23 16:52:14,944] [INFO] (highdicom.base) - copy Patient-related attributes from dataset \"1.3.6.1.4.1.14519.5.2.1.7085.2626.936983343951485811186213470191\"\n", - "[2024-04-23 16:52:14,945] [INFO] (highdicom.base) - copy attributes of module \"Patient\"\n", - "[2024-04-23 16:52:14,946] [INFO] (highdicom.base) - copy attributes of module \"Clinical Trial Subject\"\n", - "[2024-04-23 16:52:14,947] [INFO] (highdicom.base) - copy Study-related attributes from dataset \"1.3.6.1.4.1.14519.5.2.1.7085.2626.936983343951485811186213470191\"\n", - "[2024-04-23 16:52:14,948] [INFO] (highdicom.base) - copy attributes of module \"General Study\"\n", - "[2024-04-23 16:52:14,949] [INFO] (highdicom.base) - copy attributes of module \"Patient Study\"\n", - "[2024-04-23 16:52:14,951] [INFO] (highdicom.base) - copy attributes of module \"Clinical Trial Study\"\n", - "[info] [gxf_executor.cpp:1879] Deactivating Graph...\n", - "[info] [gxf_executor.cpp:1887] Graph execution finished.\n", - "[2024-04-23 16:52:15,056] [INFO] (__main__.AISpleenSegApp) - End run\n", - "[2024-04-23 16:52:15,057] [INFO] (root) - End __main__\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\u001b[0m2024-04-23 16:52:15.054 INFO gxf/std/greedy_scheduler.cpp@372: Scheduler stopped: Some entities are waiting for execution, but there are no periodic or async entities to get out of the deadlock.\u001b[0m\n", - "\u001b[0m2024-04-23 16:52:15.055 INFO gxf/std/greedy_scheduler.cpp@401: Scheduler finished.\u001b[0m\n" + "[2025-01-16 18:46:54,873] [INFO] (root) - Working on series, instance UID: 1.3.6.1.4.1.14519.5.2.1.7085.2626.119403521930927333027265674239\n", + "[2025-01-16 18:46:54,874] [INFO] (root) - On attribute: 'StudyDescription' to match value: '(.*?)'\n", + "[2025-01-16 18:46:54,875] [INFO] (root) - Series attribute StudyDescription value: CT ABDOMEN W IV CONTRAST\n", + "[2025-01-16 18:46:54,877] [INFO] (root) - Series attribute string value did not match. Try regEx.\n", + "[2025-01-16 18:46:54,878] [INFO] (root) - On attribute: 'Modality' to match value: '(?i)CT'\n", + "[2025-01-16 18:46:54,880] [INFO] (root) - Series attribute Modality value: CT\n", + "[2025-01-16 18:46:54,882] [INFO] (root) - Series attribute string value did not match. Try regEx.\n", + "[2025-01-16 18:46:54,883] [INFO] (root) - On attribute: 'SeriesDescription' to match value: '(.*?)'\n", + "[2025-01-16 18:46:54,883] [INFO] (root) - Series attribute SeriesDescription value: ABD/PANC 3.0 B31f\n", + "[2025-01-16 18:46:54,884] [INFO] (root) - Series attribute string value did not match. Try regEx.\n", + "[2025-01-16 18:46:54,886] [INFO] (root) - Selected Series, UID: 1.3.6.1.4.1.14519.5.2.1.7085.2626.119403521930927333027265674239\n", + "[2025-01-16 18:46:55,228] [INFO] (root) - Parsing from bundle_path: /home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/models/model/model.ts\n", + "/home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages/monai/bundle/reference_resolver.py:216: UserWarning: Detected deprecated name 'optional_packages_version' in configuration file, replacing with 'required_packages_version'.\n", + " warnings.warn(\n", + "[2025-01-16 18:46:58,310] [INFO] (monai.deploy.operators.stl_conversion_operator.STLConversionOperator) - Output will be saved in file output/stl/spleen.stl.\n", + "[2025-01-16 18:47:00,011] [INFO] (monai.deploy.operators.stl_conversion_operator.SpatialImage) - 3D image\n", + "[2025-01-16 18:47:00,012] [INFO] (monai.deploy.operators.stl_conversion_operator.STLConverter) - Image ndarray shape:(204, 512, 512)\n", + "/home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages/highdicom/base.py:163: UserWarning: The string \"C3N-00198\" is unlikely to represent the intended person name since it contains only a single component. Construct a person name according to the format in described in https://dicom.nema.org/dicom/2013/output/chtml/part05/sect_6.2.html#sect_6.2.1.2, or, in pydicom 2.2.0 or later, use the pydicom.valuerep.PersonName.from_named_components() method to construct the person name correctly. If a single-component name is really intended, add a trailing caret character to disambiguate the name.\n", + " check_person_name(patient_name)\n", + "[2025-01-16 18:47:11,502] [INFO] (highdicom.base) - copy Image-related attributes from dataset \"1.3.6.1.4.1.14519.5.2.1.7085.2626.936983343951485811186213470191\"\n", + "[2025-01-16 18:47:11,503] [INFO] (highdicom.base) - copy attributes of module \"Specimen\"\n", + "[2025-01-16 18:47:11,504] [INFO] (highdicom.base) - copy Patient-related attributes from dataset \"1.3.6.1.4.1.14519.5.2.1.7085.2626.936983343951485811186213470191\"\n", + "[2025-01-16 18:47:11,505] [INFO] (highdicom.base) - copy attributes of module \"Patient\"\n", + "[2025-01-16 18:47:11,507] [INFO] (highdicom.base) - copy attributes of module \"Clinical Trial Subject\"\n", + "[2025-01-16 18:47:11,507] [INFO] (highdicom.base) - copy Study-related attributes from dataset \"1.3.6.1.4.1.14519.5.2.1.7085.2626.936983343951485811186213470191\"\n", + "[2025-01-16 18:47:11,509] [INFO] (highdicom.base) - copy attributes of module \"General Study\"\n", + "[2025-01-16 18:47:11,510] [INFO] (highdicom.base) - copy attributes of module \"Patient Study\"\n", + "[2025-01-16 18:47:11,512] [INFO] (highdicom.base) - copy attributes of module \"Clinical Trial Study\"\n", + "[info] [greedy_scheduler.cpp:372] Scheduler stopped: Some entities are waiting for execution, but there are no periodic or async entities to get out of the deadlock.\n", + "[info] [greedy_scheduler.cpp:401] Scheduler finished.\n", + "[info] [gxf_executor.cpp:2213] Deactivating Graph...\n", + "[info] [gxf_executor.cpp:2221] Graph execution finished.\n", + "[2025-01-16 18:47:11,627] [INFO] (__main__.AISpleenSegApp) - End run\n", + "[2025-01-16 18:47:11,628] [INFO] (root) - End __main__\n" ] } ], @@ -717,7 +695,7 @@ }, { "cell_type": "code", - "execution_count": 57, + "execution_count": 7, "metadata": {}, "outputs": [], "source": [ @@ -734,7 +712,7 @@ }, { "cell_type": "code", - "execution_count": 58, + "execution_count": 8, "metadata": {}, "outputs": [ { @@ -933,7 +911,7 @@ }, { "cell_type": "code", - "execution_count": 59, + "execution_count": 9, "metadata": {}, "outputs": [ { @@ -954,7 +932,7 @@ }, { "cell_type": "code", - "execution_count": 60, + "execution_count": 10, "metadata": {}, "outputs": [ { @@ -983,57 +961,68 @@ }, { "cell_type": "code", - "execution_count": 61, + "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "[2024-04-23 16:52:19,843] [INFO] (root) - Parsed args: Namespace(log_level=None, input=PosixPath('/home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/dcm'), output=PosixPath('/home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/output'), model=PosixPath('/home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/models'), workdir=None, argv=['my_app', '-i', 'dcm', '-o', 'output', '-m', 'models'])\n", - "[2024-04-23 16:52:19,845] [INFO] (root) - AppContext object: AppContext(input_path=/home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/dcm, output_path=/home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/output, model_path=/home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/models, workdir=)\n", - "[2024-04-23 16:52:19,847] [INFO] (root) - End compose\n", - "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:247] Creating context\n", - "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:1672] Loading extensions from configs...\n", - "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:1842] Activating Graph...\n", - "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:1874] Running Graph...\n", - "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:1876] Waiting for completion...\n", - "\u001b[0m2024-04-23 16:52:19.876 INFO gxf/std/greedy_scheduler.cpp@191: Scheduling 8 entities\u001b[0m\n", - "[2024-04-23 16:52:19,877] [INFO] (monai.deploy.operators.dicom_data_loader_operator.DICOMDataLoaderOperator) - No or invalid input path from the optional input port: None\n", - "[2024-04-23 16:52:20,224] [INFO] (root) - Finding series for Selection named: CT Series\n", - "[2024-04-23 16:52:20,224] [INFO] (root) - Searching study, : 1.3.6.1.4.1.14519.5.2.1.7085.2626.822645453932810382886582736291\n", + "[\u001b[32minfo\u001b[m] [fragment.cpp:588] Loading extensions from configs...\n", + "[2025-01-16 18:47:18,173] [INFO] (root) - Parsed args: Namespace(log_level=None, input=PosixPath('/home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/dcm'), output=PosixPath('/home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/output'), model=PosixPath('/home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/models'), workdir=None, argv=['my_app', '-i', 'dcm', '-o', 'output', '-m', 'models'])\n", + "[2025-01-16 18:47:18,176] [INFO] (root) - AppContext object: AppContext(input_path=/home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/dcm, output_path=/home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/output, model_path=/home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/models, workdir=)\n", + "[2025-01-16 18:47:18,178] [INFO] (root) - End compose\n", + "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:262] Creating context\n", + "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:1767] creating input IOSpec named 'input_folder'\n", + "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:1767] creating input IOSpec named 'dicom_study_list'\n", + "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:1767] creating input IOSpec named 'study_selected_series_list'\n", + "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:1767] creating input IOSpec named 'image'\n", + "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:1767] creating input IOSpec named 'output_file'\n", + "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:1767] creating input IOSpec named 'image'\n", + "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:1767] creating input IOSpec named 'output_folder'\n", + "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:1767] creating input IOSpec named 'study_selected_series_list'\n", + "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:1767] creating input IOSpec named 'seg_image'\n", + "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:2178] Activating Graph...\n", + "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:2208] Running Graph...\n", + "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:2210] Waiting for completion...\n", + "[\u001b[32minfo\u001b[m] [greedy_scheduler.cpp:191] Scheduling 6 entities\n", + "[2025-01-16 18:47:18,189] [INFO] (monai.deploy.operators.dicom_data_loader_operator.DICOMDataLoaderOperator) - No or invalid input path from the optional input port: None\n", + "[2025-01-16 18:47:18,786] [INFO] (root) - Finding series for Selection named: CT Series\n", + "[2025-01-16 18:47:18,786] [INFO] (root) - Searching study, : 1.3.6.1.4.1.14519.5.2.1.7085.2626.822645453932810382886582736291\n", " # of series: 1\n", - "[2024-04-23 16:52:20,224] [INFO] (root) - Working on series, instance UID: 1.3.6.1.4.1.14519.5.2.1.7085.2626.119403521930927333027265674239\n", - "[2024-04-23 16:52:20,224] [INFO] (root) - On attribute: 'StudyDescription' to match value: '(.*?)'\n", - "[2024-04-23 16:52:20,224] [INFO] (root) - Series attribute StudyDescription value: CT ABDOMEN W IV CONTRAST\n", - "[2024-04-23 16:52:20,224] [INFO] (root) - Series attribute string value did not match. Try regEx.\n", - "[2024-04-23 16:52:20,225] [INFO] (root) - On attribute: 'Modality' to match value: '(?i)CT'\n", - "[2024-04-23 16:52:20,225] [INFO] (root) - Series attribute Modality value: CT\n", - "[2024-04-23 16:52:20,225] [INFO] (root) - Series attribute string value did not match. Try regEx.\n", - "[2024-04-23 16:52:20,225] [INFO] (root) - On attribute: 'SeriesDescription' to match value: '(.*?)'\n", - "[2024-04-23 16:52:20,225] [INFO] (root) - Series attribute SeriesDescription value: ABD/PANC 3.0 B31f\n", - "[2024-04-23 16:52:20,225] [INFO] (root) - Series attribute string value did not match. Try regEx.\n", - "[2024-04-23 16:52:20,225] [INFO] (root) - Selected Series, UID: 1.3.6.1.4.1.14519.5.2.1.7085.2626.119403521930927333027265674239\n", - "[2024-04-23 16:52:20,449] [INFO] (root) - Parsing from bundle_path: /home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/models/model/model.ts\n", - "[2024-04-23 16:52:26,711] [INFO] (monai.deploy.operators.stl_conversion_operator.STLConversionOperator) - Output will be saved in file /home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/output/stl/spleen.stl.\n", - "[2024-04-23 16:52:28,387] [INFO] (monai.deploy.operators.stl_conversion_operator.SpatialImage) - 3D image\n", - "[2024-04-23 16:52:28,388] [INFO] (monai.deploy.operators.stl_conversion_operator.STLConverter) - Image ndarray shape:(204, 512, 512)\n", - "/home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages/highdicom/valuerep.py:54: UserWarning: The string \"C3N-00198\" is unlikely to represent the intended person name since it contains only a single component. Construct a person name according to the format in described in https://dicom.nema.org/dicom/2013/output/chtml/part05/sect_6.2.html#sect_6.2.1.2, or, in pydicom 2.2.0 or later, use the pydicom.valuerep.PersonName.from_named_components() method to construct the person name correctly. If a single-component name is really intended, add a trailing caret character to disambiguate the name.\n", + "[2025-01-16 18:47:18,786] [INFO] (root) - Working on series, instance UID: 1.3.6.1.4.1.14519.5.2.1.7085.2626.119403521930927333027265674239\n", + "[2025-01-16 18:47:18,786] [INFO] (root) - On attribute: 'StudyDescription' to match value: '(.*?)'\n", + "[2025-01-16 18:47:18,786] [INFO] (root) - Series attribute StudyDescription value: CT ABDOMEN W IV CONTRAST\n", + "[2025-01-16 18:47:18,787] [INFO] (root) - Series attribute string value did not match. Try regEx.\n", + "[2025-01-16 18:47:18,787] [INFO] (root) - On attribute: 'Modality' to match value: '(?i)CT'\n", + "[2025-01-16 18:47:18,787] [INFO] (root) - Series attribute Modality value: CT\n", + "[2025-01-16 18:47:18,787] [INFO] (root) - Series attribute string value did not match. Try regEx.\n", + "[2025-01-16 18:47:18,787] [INFO] (root) - On attribute: 'SeriesDescription' to match value: '(.*?)'\n", + "[2025-01-16 18:47:18,787] [INFO] (root) - Series attribute SeriesDescription value: ABD/PANC 3.0 B31f\n", + "[2025-01-16 18:47:18,787] [INFO] (root) - Series attribute string value did not match. Try regEx.\n", + "[2025-01-16 18:47:18,787] [INFO] (root) - Selected Series, UID: 1.3.6.1.4.1.14519.5.2.1.7085.2626.119403521930927333027265674239\n", + "[2025-01-16 18:47:19,100] [INFO] (root) - Parsing from bundle_path: /home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/models/model/model.ts\n", + "/home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages/monai/bundle/reference_resolver.py:216: UserWarning: Detected deprecated name 'optional_packages_version' in configuration file, replacing with 'required_packages_version'.\n", " warnings.warn(\n", - "[2024-04-23 16:52:39,441] [INFO] (highdicom.base) - copy Image-related attributes from dataset \"1.3.6.1.4.1.14519.5.2.1.7085.2626.936983343951485811186213470191\"\n", - "[2024-04-23 16:52:39,441] [INFO] (highdicom.base) - copy attributes of module \"Specimen\"\n", - "[2024-04-23 16:52:39,441] [INFO] (highdicom.base) - copy Patient-related attributes from dataset \"1.3.6.1.4.1.14519.5.2.1.7085.2626.936983343951485811186213470191\"\n", - "[2024-04-23 16:52:39,441] [INFO] (highdicom.base) - copy attributes of module \"Patient\"\n", - "[2024-04-23 16:52:39,441] [INFO] (highdicom.base) - copy attributes of module \"Clinical Trial Subject\"\n", - "[2024-04-23 16:52:39,441] [INFO] (highdicom.base) - copy Study-related attributes from dataset \"1.3.6.1.4.1.14519.5.2.1.7085.2626.936983343951485811186213470191\"\n", - "[2024-04-23 16:52:39,441] [INFO] (highdicom.base) - copy attributes of module \"General Study\"\n", - "[2024-04-23 16:52:39,442] [INFO] (highdicom.base) - copy attributes of module \"Patient Study\"\n", - "[2024-04-23 16:52:39,442] [INFO] (highdicom.base) - copy attributes of module \"Clinical Trial Study\"\n", - "\u001b[0m2024-04-23 16:52:39.552 INFO gxf/std/greedy_scheduler.cpp@372: Scheduler stopped: Some entities are waiting for execution, but there are no periodic or async entities to get out of the deadlock.\u001b[0m\n", - "\u001b[0m2024-04-23 16:52:39.552 INFO gxf/std/greedy_scheduler.cpp@401: Scheduler finished.\u001b[0m\n", - "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:1879] Deactivating Graph...\n", - "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:1887] Graph execution finished.\n", - "[2024-04-23 16:52:39,552] [INFO] (app.AISpleenSegApp) - End run\n" + "[2025-01-16 18:47:22,311] [INFO] (monai.deploy.operators.stl_conversion_operator.STLConversionOperator) - Output will be saved in file /home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/output/stl/spleen.stl.\n", + "[2025-01-16 18:47:24,084] [INFO] (monai.deploy.operators.stl_conversion_operator.SpatialImage) - 3D image\n", + "[2025-01-16 18:47:24,084] [INFO] (monai.deploy.operators.stl_conversion_operator.STLConverter) - Image ndarray shape:(204, 512, 512)\n", + "/home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages/highdicom/base.py:163: UserWarning: The string \"C3N-00198\" is unlikely to represent the intended person name since it contains only a single component. Construct a person name according to the format in described in https://dicom.nema.org/dicom/2013/output/chtml/part05/sect_6.2.html#sect_6.2.1.2, or, in pydicom 2.2.0 or later, use the pydicom.valuerep.PersonName.from_named_components() method to construct the person name correctly. If a single-component name is really intended, add a trailing caret character to disambiguate the name.\n", + " check_person_name(patient_name)\n", + "[2025-01-16 18:47:35,855] [INFO] (highdicom.base) - copy Image-related attributes from dataset \"1.3.6.1.4.1.14519.5.2.1.7085.2626.936983343951485811186213470191\"\n", + "[2025-01-16 18:47:35,855] [INFO] (highdicom.base) - copy attributes of module \"Specimen\"\n", + "[2025-01-16 18:47:35,855] [INFO] (highdicom.base) - copy Patient-related attributes from dataset \"1.3.6.1.4.1.14519.5.2.1.7085.2626.936983343951485811186213470191\"\n", + "[2025-01-16 18:47:35,855] [INFO] (highdicom.base) - copy attributes of module \"Patient\"\n", + "[2025-01-16 18:47:35,856] [INFO] (highdicom.base) - copy attributes of module \"Clinical Trial Subject\"\n", + "[2025-01-16 18:47:35,856] [INFO] (highdicom.base) - copy Study-related attributes from dataset \"1.3.6.1.4.1.14519.5.2.1.7085.2626.936983343951485811186213470191\"\n", + "[2025-01-16 18:47:35,856] [INFO] (highdicom.base) - copy attributes of module \"General Study\"\n", + "[2025-01-16 18:47:35,856] [INFO] (highdicom.base) - copy attributes of module \"Patient Study\"\n", + "[2025-01-16 18:47:35,856] [INFO] (highdicom.base) - copy attributes of module \"Clinical Trial Study\"\n", + "[\u001b[32minfo\u001b[m] [greedy_scheduler.cpp:372] Scheduler stopped: Some entities are waiting for execution, but there are no periodic or async entities to get out of the deadlock.\n", + "[\u001b[32minfo\u001b[m] [greedy_scheduler.cpp:401] Scheduler finished.\n", + "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:2213] Deactivating Graph...\n", + "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:2221] Graph execution finished.\n", + "[2025-01-16 18:47:35,968] [INFO] (app.AISpleenSegApp) - End run\n" ] } ], @@ -1044,14 +1033,14 @@ }, { "cell_type": "code", - "execution_count": 62, + "execution_count": 12, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "1.2.826.0.1.3680043.10.511.3.31677856801140848641305221346725457.dcm stl\n" + "1.2.826.0.1.3680043.10.511.3.62575937391603140773834509092916100.dcm stl\n" ] } ], @@ -1072,7 +1061,7 @@ }, { "cell_type": "code", - "execution_count": 63, + "execution_count": 13, "metadata": {}, "outputs": [ { @@ -1102,7 +1091,7 @@ }, { "cell_type": "code", - "execution_count": 64, + "execution_count": 14, "metadata": {}, "outputs": [ { @@ -1125,7 +1114,8 @@ "scikit-image>=0.17.2\n", "numpy-stl>=2.12.0\n", "trimesh>=3.8.11\n", - "torch>=1.12.0" + "torch>=1.12.0\n", + "holoscan==2.6.0 # avoid v2.7 and v2.8 for a known issue" ] }, { @@ -1141,23 +1131,23 @@ }, { "cell_type": "code", - "execution_count": 65, + "execution_count": 15, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "[2024-04-23 16:52:41,994] [INFO] (common) - Downloading CLI manifest file...\n", - "[2024-04-23 16:52:42,236] [DEBUG] (common) - Validating CLI manifest file...\n", - "[2024-04-23 16:52:42,237] [INFO] (packager.parameters) - Application: /home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/my_app\n", - "[2024-04-23 16:52:42,238] [INFO] (packager.parameters) - Detected application type: Python Module\n", - "[2024-04-23 16:52:42,238] [INFO] (packager) - Scanning for models in /home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/models...\n", - "[2024-04-23 16:52:42,238] [DEBUG] (packager) - Model model=/home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/models/model added.\n", - "[2024-04-23 16:52:42,238] [INFO] (packager) - Reading application configuration from /home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/my_app/app.yaml...\n", - "[2024-04-23 16:52:42,240] [INFO] (packager) - Generating app.json...\n", - "[2024-04-23 16:52:42,240] [INFO] (packager) - Generating pkg.json...\n", - "[2024-04-23 16:52:42,246] [DEBUG] (common) - \n", + "[2025-01-16 18:47:38,758] [INFO] (common) - Downloading CLI manifest file...\n", + "[2025-01-16 18:47:39,137] [DEBUG] (common) - Validating CLI manifest file...\n", + "[2025-01-16 18:47:39,138] [INFO] (packager.parameters) - Application: /home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/my_app\n", + "[2025-01-16 18:47:39,138] [INFO] (packager.parameters) - Detected application type: Python Module\n", + "[2025-01-16 18:47:39,138] [INFO] (packager) - Scanning for models in /home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/models...\n", + "[2025-01-16 18:47:39,138] [DEBUG] (packager) - Model model=/home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/models/model added.\n", + "[2025-01-16 18:47:39,138] [INFO] (packager) - Reading application configuration from /home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/my_app/app.yaml...\n", + "[2025-01-16 18:47:39,142] [INFO] (packager) - Generating app.json...\n", + "[2025-01-16 18:47:39,142] [INFO] (packager) - Generating pkg.json...\n", + "[2025-01-16 18:47:39,146] [DEBUG] (common) - \n", "=============== Begin app.json ===============\n", "{\n", " \"apiVersion\": \"1.0.0\",\n", @@ -1185,14 +1175,14 @@ " },\n", " \"readiness\": null,\n", " \"sdk\": \"monai-deploy\",\n", - " \"sdkVersion\": \"0.5.1\",\n", + " \"sdkVersion\": \"2.0.0\",\n", " \"timeout\": 0,\n", " \"version\": 1.0,\n", " \"workingDirectory\": \"/var/holoscan\"\n", "}\n", "================ End app.json ================\n", " \n", - "[2024-04-23 16:52:42,246] [DEBUG] (common) - \n", + "[2025-01-16 18:47:39,146] [DEBUG] (common) - \n", "=============== Begin pkg.json ===============\n", "{\n", " \"apiVersion\": \"1.0.0\",\n", @@ -1212,15 +1202,115 @@ "}\n", "================ End pkg.json ================\n", " \n", - "[2024-04-23 16:52:42,273] [DEBUG] (packager.builder) - \n", + "[2025-01-16 18:47:39,174] [DEBUG] (packager.builder) - \n", + "========== Begin Build Parameters ==========\n", + "{'additional_lib_paths': '',\n", + " 'app_config_file_path': PosixPath('/home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/my_app/app.yaml'),\n", + " 'app_dir': PosixPath('/opt/holoscan/app'),\n", + " 'app_json': '/etc/holoscan/app.json',\n", + " 'application': PosixPath('/home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/my_app'),\n", + " 'application_directory': PosixPath('/home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/my_app'),\n", + " 'application_type': 'PythonModule',\n", + " 'build_cache': PosixPath('/home/mqin/.holoscan_build_cache'),\n", + " 'cmake_args': '',\n", + " 'command': '[\"python3\", \"/opt/holoscan/app\"]',\n", + " 'command_filename': 'my_app',\n", + " 'config_file_path': PosixPath('/var/holoscan/app.yaml'),\n", + " 'docs_dir': PosixPath('/opt/holoscan/docs'),\n", + " 'full_input_path': PosixPath('/var/holoscan/input'),\n", + " 'full_output_path': PosixPath('/var/holoscan/output'),\n", + " 'gid': 1000,\n", + " 'holoscan_sdk_version': '2.8.0',\n", + " 'includes': [],\n", + " 'input_dir': 'input/',\n", + " 'lib_dir': PosixPath('/opt/holoscan/lib'),\n", + " 'logs_dir': PosixPath('/var/holoscan/logs'),\n", + " 'models': {'model': PosixPath('/home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/models/model')},\n", + " 'models_dir': PosixPath('/opt/holoscan/models'),\n", + " 'monai_deploy_app_sdk_version': '2.0.0',\n", + " 'no_cache': False,\n", + " 'output_dir': 'output/',\n", + " 'pip_packages': None,\n", + " 'pkg_json': '/etc/holoscan/pkg.json',\n", + " 'requirements_file_path': PosixPath('/home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/my_app/requirements.txt'),\n", + " 'sdk': ,\n", + " 'sdk_type': 'monai-deploy',\n", + " 'tarball_output': None,\n", + " 'timeout': 0,\n", + " 'title': 'MONAI Deploy App Package - MONAI Bundle AI App',\n", + " 'uid': 1000,\n", + " 'username': 'holoscan',\n", + " 'version': 1.0,\n", + " 'working_dir': PosixPath('/var/holoscan')}\n", + "=========== End Build Parameters ===========\n", + "\n", + "[2025-01-16 18:47:39,174] [DEBUG] (packager.builder) - \n", + "========== Begin Platform Parameters ==========\n", + "{'base_image': 'nvcr.io/nvidia/cuda:12.6.0-runtime-ubuntu22.04',\n", + " 'build_image': None,\n", + " 'cuda_deb_arch': 'x86_64',\n", + " 'custom_base_image': False,\n", + " 'custom_holoscan_sdk': False,\n", + " 'custom_monai_deploy_sdk': False,\n", + " 'gpu_type': 'dgpu',\n", + " 'holoscan_deb_arch': 'amd64',\n", + " 'holoscan_sdk_file': '2.8.0',\n", + " 'holoscan_sdk_filename': '2.8.0',\n", + " 'monai_deploy_sdk_file': None,\n", + " 'monai_deploy_sdk_filename': None,\n", + " 'tag': 'my_app:1.0',\n", + " 'target_arch': 'x86_64'}\n", + "=========== End Platform Parameters ===========\n", + "\n", + "[2025-01-16 18:47:39,194] [DEBUG] (packager.builder) - \n", "========== Begin Dockerfile ==========\n", "\n", + "ARG GPU_TYPE=dgpu\n", + "\n", "\n", - "FROM nvcr.io/nvidia/clara-holoscan/holoscan:v2.0.0-dgpu\n", "\n", + "\n", + "FROM nvcr.io/nvidia/cuda:12.6.0-runtime-ubuntu22.04 AS base\n", + "\n", + "RUN apt-get update \\\n", + " && apt-get install -y --no-install-recommends --no-install-suggests \\\n", + " curl \\\n", + " jq \\\n", + " && rm -rf /var/lib/apt/lists/*\n", + "\n", + "\n", + "\n", + "\n", + "# FROM base AS mofed-installer\n", + "# ARG MOFED_VERSION=23.10-2.1.3.1\n", + "\n", + "# # In a container, we only need to install the user space libraries, though the drivers are still\n", + "# # needed on the host.\n", + "# # Note: MOFED's installation is not easily portable, so we can't copy the output of this stage\n", + "# # to our final stage, but must inherit from it. For that reason, we keep track of the build/install\n", + "# # only dependencies in the `MOFED_DEPS` variable (parsing the output of `--check-deps-only`) to\n", + "# # remove them in that same layer, to ensure they are not propagated in the final image.\n", + "# WORKDIR /opt/nvidia/mofed\n", + "# ARG MOFED_INSTALL_FLAGS=\"--dpdk --with-mft --user-space-only --force --without-fw-update\"\n", + "# RUN UBUNTU_VERSION=$(cat /etc/lsb-release | grep DISTRIB_RELEASE | cut -d= -f2) \\\n", + "# && OFED_PACKAGE=\"MLNX_OFED_LINUX-${MOFED_VERSION}-ubuntu${UBUNTU_VERSION}-$(uname -m)\" \\\n", + "# && curl -S -# -o ${OFED_PACKAGE}.tgz -L \\\n", + "# https://www.mellanox.com/downloads/ofed/MLNX_OFED-${MOFED_VERSION}/${OFED_PACKAGE}.tgz \\\n", + "# && tar xf ${OFED_PACKAGE}.tgz \\\n", + "# && MOFED_INSTALLER=$(find . -name mlnxofedinstall -type f -executable -print) \\\n", + "# && MOFED_DEPS=$(${MOFED_INSTALLER} ${MOFED_INSTALL_FLAGS} --check-deps-only 2>/dev/null | tail -n1 | cut -d' ' -f3-) \\\n", + "# && apt-get update \\\n", + "# && apt-get install --no-install-recommends -y ${MOFED_DEPS} \\\n", + "# && ${MOFED_INSTALLER} ${MOFED_INSTALL_FLAGS} \\\n", + "# && rm -r * \\\n", + "# && apt-get remove -y ${MOFED_DEPS} && apt-get autoremove -y \\\n", + "# && rm -rf /var/lib/apt/lists/*\n", + "\n", + "FROM base AS release\n", "ENV DEBIAN_FRONTEND=noninteractive\n", "ENV TERM=xterm-256color\n", "\n", + "ARG GPU_TYPE\n", "ARG UNAME\n", "ARG UID\n", "ARG GID\n", @@ -1232,15 +1322,14 @@ " && mkdir -p /var/holoscan/input \\\n", " && mkdir -p /var/holoscan/output\n", "\n", - "LABEL base=\"nvcr.io/nvidia/clara-holoscan/holoscan:v2.0.0-dgpu\"\n", + "LABEL base=\"nvcr.io/nvidia/cuda:12.6.0-runtime-ubuntu22.04\"\n", "LABEL tag=\"my_app:1.0\"\n", "LABEL org.opencontainers.image.title=\"MONAI Deploy App Package - MONAI Bundle AI App\"\n", "LABEL org.opencontainers.image.version=\"1.0\"\n", - "LABEL org.nvidia.holoscan=\"2.0.0\"\n", - "LABEL org.monai.deploy.app-sdk=\"0.5.1\"\n", + "LABEL org.nvidia.holoscan=\"2.8.0\"\n", "\n", + "LABEL org.monai.deploy.app-sdk=\"2.0.0\"\n", "\n", - "ENV HOLOSCAN_ENABLE_HEALTH_CHECK=true\n", "ENV HOLOSCAN_INPUT_PATH=/var/holoscan/input\n", "ENV HOLOSCAN_OUTPUT_PATH=/var/holoscan/output\n", "ENV HOLOSCAN_WORKDIR=/var/holoscan\n", @@ -1252,21 +1341,40 @@ "ENV HOLOSCAN_APP_MANIFEST_PATH=/etc/holoscan/app.json\n", "ENV HOLOSCAN_PKG_MANIFEST_PATH=/etc/holoscan/pkg.json\n", "ENV HOLOSCAN_LOGS_PATH=/var/holoscan/logs\n", - "ENV PATH=/root/.local/bin:/opt/nvidia/holoscan:$PATH\n", - "ENV LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/libtorch/1.13.1/lib/:/opt/nvidia/holoscan/lib\n", + "ENV HOLOSCAN_VERSION=2.8.0\n", "\n", - "RUN apt-get update \\\n", - " && apt-get install -y curl jq \\\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "# If torch is installed, we can skip installing Python\n", + "ENV PYTHON_VERSION=3.10.6-1~22.04\n", + "ENV PYTHON_PIP_VERSION=22.0.2+dfsg-*\n", + "\n", + "RUN apt update \\\n", + " && apt-get install -y --no-install-recommends --no-install-suggests \\\n", + " python3-minimal=${PYTHON_VERSION} \\\n", + " libpython3-stdlib=${PYTHON_VERSION} \\\n", + " python3=${PYTHON_VERSION} \\\n", + " python3-venv=${PYTHON_VERSION} \\\n", + " python3-pip=${PYTHON_PIP_VERSION} \\\n", " && rm -rf /var/lib/apt/lists/*\n", "\n", - "ENV PYTHONPATH=\"/opt/holoscan/app:$PYTHONPATH\"\n", + "\n", + "\n", + "\n", + "\n", "\n", "\n", "RUN groupadd -f -g $GID $UNAME\n", "RUN useradd -rm -d /home/$UNAME -s /bin/bash -g $GID -G sudo -u $UID $UNAME\n", - "RUN chown -R holoscan /var/holoscan \n", - "RUN chown -R holoscan /var/holoscan/input \n", - "RUN chown -R holoscan /var/holoscan/output \n", + "RUN chown -R holoscan /var/holoscan && \\\n", + " chown -R holoscan /var/holoscan/input && \\\n", + " chown -R holoscan /var/holoscan/output\n", "\n", "# Set the working directory\n", "WORKDIR /var/holoscan\n", @@ -1275,466 +1383,512 @@ "COPY ./tools /var/holoscan/tools\n", "RUN chmod +x /var/holoscan/tools\n", "\n", - "\n", - "# Copy gRPC health probe\n", + "# Set the working directory\n", + "WORKDIR /var/holoscan\n", "\n", "USER $UNAME\n", "\n", - "ENV PATH=/root/.local/bin:/home/holoscan/.local/bin:/opt/nvidia/holoscan:$PATH\n", + "ENV PATH=/home/${UNAME}/.local/bin:/opt/nvidia/holoscan/bin:$PATH\n", + "ENV LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/${UNAME}/.local/lib/python3.10/site-packages/holoscan/lib\n", "\n", "COPY ./pip/requirements.txt /tmp/requirements.txt\n", "\n", "RUN pip install --upgrade pip\n", "RUN pip install --no-cache-dir --user -r /tmp/requirements.txt\n", "\n", - " \n", - "# MONAI Deploy\n", "\n", - "# Copy user-specified MONAI Deploy SDK file\n", - "COPY ./monai_deploy_app_sdk-0.5.1+20.gb869749.dirty-py3-none-any.whl /tmp/monai_deploy_app_sdk-0.5.1+20.gb869749.dirty-py3-none-any.whl\n", - "RUN pip install /tmp/monai_deploy_app_sdk-0.5.1+20.gb869749.dirty-py3-none-any.whl\n", + "# Install MONAI Deploy App SDK\n", + "\n", + "# Install MONAI Deploy from PyPI org\n", + "RUN pip install monai-deploy-app-sdk==2.0.0\n", "\n", "\n", "COPY ./models /opt/holoscan/models\n", "\n", + "\n", "COPY ./map/app.json /etc/holoscan/app.json\n", "COPY ./app.config /var/holoscan/app.yaml\n", "COPY ./map/pkg.json /etc/holoscan/pkg.json\n", "\n", "COPY ./app /opt/holoscan/app\n", "\n", + "\n", "ENTRYPOINT [\"/var/holoscan/tools\"]\n", "=========== End Dockerfile ===========\n", "\n", - "[2024-04-23 16:52:42,273] [INFO] (packager.builder) - \n", + "[2025-01-16 18:47:39,195] [INFO] (packager.builder) - \n", "===============================================================================\n", "Building image for: x64-workstation\n", " Architecture: linux/amd64\n", - " Base Image: nvcr.io/nvidia/clara-holoscan/holoscan:v2.0.0-dgpu\n", + " Base Image: nvcr.io/nvidia/cuda:12.6.0-runtime-ubuntu22.04\n", " Build Image: N/A\n", " Cache: Enabled\n", " Configuration: dgpu\n", - " Holoscan SDK Package: pypi.org\n", - " MONAI Deploy App SDK Package: /home/mqin/src/monai-deploy-app-sdk/dist/monai_deploy_app_sdk-0.5.1+20.gb869749.dirty-py3-none-any.whl\n", + " Holoscan SDK Package: 2.8.0\n", + " MONAI Deploy App SDK Package: N/A\n", " gRPC Health Probe: N/A\n", - " SDK Version: 2.0.0\n", + " SDK Version: 2.8.0\n", " SDK: monai-deploy\n", " Tag: my_app-x64-workstation-dgpu-linux-amd64:1.0\n", + " Included features/dependencies: N/A\n", " \n", - "[2024-04-23 16:52:42,564] [INFO] (common) - Using existing Docker BuildKit builder `holoscan_app_builder`\n", - "[2024-04-23 16:52:42,564] [DEBUG] (packager.builder) - Building Holoscan Application Package: tag=my_app-x64-workstation-dgpu-linux-amd64:1.0\n", + "[2025-01-16 18:47:39,716] [INFO] (common) - Using existing Docker BuildKit builder `holoscan_app_builder`\n", + "[2025-01-16 18:47:39,717] [DEBUG] (packager.builder) - Building Holoscan Application Package: tag=my_app-x64-workstation-dgpu-linux-amd64:1.0\n", "#0 building with \"holoscan_app_builder\" instance using docker-container driver\n", "\n", "#1 [internal] load build definition from Dockerfile\n", - "#1 transferring dockerfile: 2.66kB done\n", + "#1 transferring dockerfile: 4.56kB done\n", "#1 DONE 0.1s\n", "\n", - "#2 [internal] load metadata for nvcr.io/nvidia/clara-holoscan/holoscan:v2.0.0-dgpu\n", - "#2 DONE 0.5s\n", + "#2 [auth] nvidia/cuda:pull token for nvcr.io\n", + "#2 DONE 0.0s\n", "\n", - "#3 [internal] load .dockerignore\n", - "#3 transferring context: 1.79kB done\n", - "#3 DONE 0.1s\n", + "#3 [internal] load metadata for nvcr.io/nvidia/cuda:12.6.0-runtime-ubuntu22.04\n", + "#3 DONE 0.6s\n", "\n", - "#4 [internal] load build context\n", - "#4 DONE 0.0s\n", + "#4 [internal] load .dockerignore\n", + "#4 transferring context: 1.79kB done\n", + "#4 DONE 0.1s\n", "\n", - "#5 importing cache manifest from local:13600691502778489948\n", + "#5 importing cache manifest from local:8380303118981959235\n", "#5 inferred cache manifest type: application/vnd.oci.image.index.v1+json done\n", "#5 DONE 0.0s\n", "\n", - "#6 [ 1/21] FROM nvcr.io/nvidia/clara-holoscan/holoscan:v2.0.0-dgpu@sha256:20adbccd2c7b12dfb1798f6953f071631c3b85cd337858a7506f8e420add6d4a\n", - "#6 resolve nvcr.io/nvidia/clara-holoscan/holoscan:v2.0.0-dgpu@sha256:20adbccd2c7b12dfb1798f6953f071631c3b85cd337858a7506f8e420add6d4a 0.0s done\n", - "#6 DONE 0.1s\n", + "#6 [internal] load build context\n", + "#6 DONE 0.0s\n", "\n", - "#7 importing cache manifest from nvcr.io/nvidia/clara-holoscan/holoscan:v2.0.0-dgpu\n", - "#7 inferred cache manifest type: application/vnd.docker.distribution.manifest.list.v2+json done\n", - "#7 DONE 0.7s\n", + "#7 [base 1/2] FROM nvcr.io/nvidia/cuda:12.6.0-runtime-ubuntu22.04@sha256:22fc009e5cea0b8b91d94c99fdd419d2366810b5ea835e47b8343bc15800c186\n", + "#7 resolve nvcr.io/nvidia/cuda:12.6.0-runtime-ubuntu22.04@sha256:22fc009e5cea0b8b91d94c99fdd419d2366810b5ea835e47b8343bc15800c186 0.0s done\n", + "#7 DONE 0.0s\n", "\n", - "#4 [internal] load build context\n", - "#4 transferring context: 19.56MB 0.1s done\n", - "#4 DONE 0.2s\n", + "#8 importing cache manifest from nvcr.io/nvidia/cuda:12.6.0-runtime-ubuntu22.04\n", + "#8 inferred cache manifest type: application/vnd.docker.distribution.manifest.list.v2+json done\n", + "#8 DONE 0.6s\n", "\n", - "#8 [ 3/21] RUN apt-get update && apt-get install -y curl jq && rm -rf /var/lib/apt/lists/*\n", - "#8 CACHED\n", + "#6 [internal] load build context\n", + "#6 transferring context: 19.43MB 0.2s done\n", + "#6 DONE 0.3s\n", "\n", - "#9 [ 7/21] RUN chown -R holoscan /var/holoscan/input\n", + "#9 [release 1/18] RUN mkdir -p /etc/holoscan/ && mkdir -p /opt/holoscan/ && mkdir -p /var/holoscan && mkdir -p /opt/holoscan/app && mkdir -p /var/holoscan/input && mkdir -p /var/holoscan/output\n", "#9 CACHED\n", "\n", - "#10 [ 8/21] RUN chown -R holoscan /var/holoscan/output\n", + "#10 [release 2/18] RUN apt update && apt-get install -y --no-install-recommends --no-install-suggests python3-minimal=3.10.6-1~22.04 libpython3-stdlib=3.10.6-1~22.04 python3=3.10.6-1~22.04 python3-venv=3.10.6-1~22.04 python3-pip=22.0.2+dfsg-* && rm -rf /var/lib/apt/lists/*\n", "#10 CACHED\n", "\n", - "#11 [11/21] RUN chmod +x /var/holoscan/tools\n", + "#11 [release 3/18] RUN groupadd -f -g 1000 holoscan\n", "#11 CACHED\n", "\n", - "#12 [ 4/21] RUN groupadd -f -g 1000 holoscan\n", + "#12 [release 7/18] COPY ./tools /var/holoscan/tools\n", "#12 CACHED\n", "\n", - "#13 [ 9/21] WORKDIR /var/holoscan\n", + "#13 [release 5/18] RUN chown -R holoscan /var/holoscan && chown -R holoscan /var/holoscan/input && chown -R holoscan /var/holoscan/output\n", "#13 CACHED\n", "\n", - "#14 [ 2/21] RUN mkdir -p /etc/holoscan/ && mkdir -p /opt/holoscan/ && mkdir -p /var/holoscan && mkdir -p /opt/holoscan/app && mkdir -p /var/holoscan/input && mkdir -p /var/holoscan/output\n", + "#14 [release 8/18] RUN chmod +x /var/holoscan/tools\n", "#14 CACHED\n", "\n", - "#15 [ 6/21] RUN chown -R holoscan /var/holoscan\n", + "#15 [base 2/2] RUN apt-get update && apt-get install -y --no-install-recommends --no-install-suggests curl jq && rm -rf /var/lib/apt/lists/*\n", "#15 CACHED\n", "\n", - "#16 [ 5/21] RUN useradd -rm -d /home/holoscan -s /bin/bash -g 1000 -G sudo -u 1000 holoscan\n", + "#16 [release 4/18] RUN useradd -rm -d /home/holoscan -s /bin/bash -g 1000 -G sudo -u 1000 holoscan\n", "#16 CACHED\n", "\n", - "#17 [12/21] COPY ./pip/requirements.txt /tmp/requirements.txt\n", + "#17 [release 6/18] WORKDIR /var/holoscan\n", "#17 CACHED\n", "\n", - "#18 [10/21] COPY ./tools /var/holoscan/tools\n", + "#18 [release 9/18] WORKDIR /var/holoscan\n", "#18 CACHED\n", "\n", - "#19 [13/21] RUN pip install --upgrade pip\n", - "#19 CACHED\n", - "\n", - "#20 [14/21] RUN pip install --no-cache-dir --user -r /tmp/requirements.txt\n", - "#20 0.822 Collecting highdicom>=0.18.2 (from -r /tmp/requirements.txt (line 1))\n", - "#20 0.909 Downloading highdicom-0.22.0-py3-none-any.whl.metadata (3.8 kB)\n", - "#20 0.940 Collecting monai>=1.0 (from -r /tmp/requirements.txt (line 2))\n", - "#20 0.944 Downloading monai-1.3.0-202310121228-py3-none-any.whl.metadata (10 kB)\n", - "#20 0.972 Collecting nibabel>=3.2.1 (from -r /tmp/requirements.txt (line 3))\n", - "#20 0.976 Downloading nibabel-5.2.1-py3-none-any.whl.metadata (8.8 kB)\n", - "#20 0.979 Requirement already satisfied: numpy>=1.21.6 in /usr/local/lib/python3.10/dist-packages (from -r /tmp/requirements.txt (line 4)) (1.23.5)\n", - "#20 1.002 Collecting pydicom>=2.3.0 (from -r /tmp/requirements.txt (line 5))\n", - "#20 1.007 Downloading pydicom-2.4.4-py3-none-any.whl.metadata (7.8 kB)\n", - "#20 1.010 Requirement already satisfied: setuptools>=59.5.0 in /usr/lib/python3/dist-packages (from -r /tmp/requirements.txt (line 6)) (59.6.0)\n", - "#20 1.064 Collecting SimpleITK>=2.0.0 (from -r /tmp/requirements.txt (line 7))\n", - "#20 1.068 Downloading SimpleITK-2.3.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (7.9 kB)\n", - "#20 1.129 Collecting scikit-image>=0.17.2 (from -r /tmp/requirements.txt (line 8))\n", - "#20 1.133 Downloading scikit_image-0.23.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (14 kB)\n", - "#20 1.157 Collecting numpy-stl>=2.12.0 (from -r /tmp/requirements.txt (line 9))\n", - "#20 1.161 Downloading numpy_stl-3.1.1-py3-none-any.whl.metadata (16 kB)\n", - "#20 1.263 Collecting trimesh>=3.8.11 (from -r /tmp/requirements.txt (line 10))\n", - "#20 1.267 Downloading trimesh-4.3.1-py3-none-any.whl.metadata (18 kB)\n", - "#20 1.322 Collecting torch>=1.12.0 (from -r /tmp/requirements.txt (line 11))\n", - "#20 1.327 Downloading torch-2.2.2-cp310-cp310-manylinux1_x86_64.whl.metadata (26 kB)\n", - "#20 1.536 Collecting pillow>=8.3 (from highdicom>=0.18.2->-r /tmp/requirements.txt (line 1))\n", - "#20 1.541 Downloading pillow-10.3.0-cp310-cp310-manylinux_2_28_x86_64.whl.metadata (9.2 kB)\n", - "#20 1.606 Collecting pillow-jpls>=1.0 (from highdicom>=0.18.2->-r /tmp/requirements.txt (line 1))\n", - "#20 1.610 Downloading pillow_jpls-1.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (3.1 kB)\n", - "#20 1.690 Requirement already satisfied: packaging>=17 in /usr/local/lib/python3.10/dist-packages (from nibabel>=3.2.1->-r /tmp/requirements.txt (line 3)) (23.1)\n", - "#20 1.855 Collecting scipy>=1.9 (from scikit-image>=0.17.2->-r /tmp/requirements.txt (line 8))\n", - "#20 1.860 Downloading scipy-1.13.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (60 kB)\n", - "#20 1.864 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 60.6/60.6 kB 231.5 MB/s eta 0:00:00\n", - "#20 1.897 Collecting networkx>=2.8 (from scikit-image>=0.17.2->-r /tmp/requirements.txt (line 8))\n", - "#20 1.901 Downloading networkx-3.3-py3-none-any.whl.metadata (5.1 kB)\n", - "#20 1.945 Collecting imageio>=2.33 (from scikit-image>=0.17.2->-r /tmp/requirements.txt (line 8))\n", - "#20 1.950 Downloading imageio-2.34.1-py3-none-any.whl.metadata (4.9 kB)\n", - "#20 1.993 Collecting tifffile>=2022.8.12 (from scikit-image>=0.17.2->-r /tmp/requirements.txt (line 8))\n", - "#20 1.998 Downloading tifffile-2024.4.18-py3-none-any.whl.metadata (31 kB)\n", - "#20 2.013 Collecting lazy-loader>=0.4 (from scikit-image>=0.17.2->-r /tmp/requirements.txt (line 8))\n", - "#20 2.017 Downloading lazy_loader-0.4-py3-none-any.whl.metadata (7.6 kB)\n", - "#20 2.041 Collecting python-utils>=3.4.5 (from numpy-stl>=2.12.0->-r /tmp/requirements.txt (line 9))\n", - "#20 2.044 Downloading python_utils-3.8.2-py2.py3-none-any.whl.metadata (9.7 kB)\n", - "#20 2.165 Collecting filelock (from torch>=1.12.0->-r /tmp/requirements.txt (line 11))\n", - "#20 2.169 Downloading filelock-3.13.4-py3-none-any.whl.metadata (2.8 kB)\n", - "#20 2.189 Collecting typing-extensions>=4.8.0 (from torch>=1.12.0->-r /tmp/requirements.txt (line 11))\n", - "#20 2.192 Downloading typing_extensions-4.11.0-py3-none-any.whl.metadata (3.0 kB)\n", - "#20 2.220 Collecting sympy (from torch>=1.12.0->-r /tmp/requirements.txt (line 11))\n", - "#20 2.224 Downloading sympy-1.12-py3-none-any.whl.metadata (12 kB)\n", - "#20 2.226 Requirement already satisfied: jinja2 in /usr/local/lib/python3.10/dist-packages (from torch>=1.12.0->-r /tmp/requirements.txt (line 11)) (3.1.3)\n", - "#20 2.252 Collecting fsspec (from torch>=1.12.0->-r /tmp/requirements.txt (line 11))\n", - "#20 2.257 Downloading fsspec-2024.3.1-py3-none-any.whl.metadata (6.8 kB)\n", - "#20 2.274 Collecting nvidia-cuda-nvrtc-cu12==12.1.105 (from torch>=1.12.0->-r /tmp/requirements.txt (line 11))\n", - "#20 2.278 Downloading nvidia_cuda_nvrtc_cu12-12.1.105-py3-none-manylinux1_x86_64.whl.metadata (1.5 kB)\n", - "#20 2.293 Collecting nvidia-cuda-runtime-cu12==12.1.105 (from torch>=1.12.0->-r /tmp/requirements.txt (line 11))\n", - "#20 2.296 Downloading nvidia_cuda_runtime_cu12-12.1.105-py3-none-manylinux1_x86_64.whl.metadata (1.5 kB)\n", - "#20 2.315 Collecting nvidia-cuda-cupti-cu12==12.1.105 (from torch>=1.12.0->-r /tmp/requirements.txt (line 11))\n", - "#20 2.323 Downloading nvidia_cuda_cupti_cu12-12.1.105-py3-none-manylinux1_x86_64.whl.metadata (1.6 kB)\n", - "#20 2.340 Collecting nvidia-cudnn-cu12==8.9.2.26 (from torch>=1.12.0->-r /tmp/requirements.txt (line 11))\n", - "#20 2.343 Downloading nvidia_cudnn_cu12-8.9.2.26-py3-none-manylinux1_x86_64.whl.metadata (1.6 kB)\n", - "#20 2.358 Collecting nvidia-cublas-cu12==12.1.3.1 (from torch>=1.12.0->-r /tmp/requirements.txt (line 11))\n", - "#20 2.362 Downloading nvidia_cublas_cu12-12.1.3.1-py3-none-manylinux1_x86_64.whl.metadata (1.5 kB)\n", - "#20 2.394 Collecting nvidia-cufft-cu12==11.0.2.54 (from torch>=1.12.0->-r /tmp/requirements.txt (line 11))\n", - "#20 2.399 Downloading nvidia_cufft_cu12-11.0.2.54-py3-none-manylinux1_x86_64.whl.metadata (1.5 kB)\n", - "#20 2.419 Collecting nvidia-curand-cu12==10.3.2.106 (from torch>=1.12.0->-r /tmp/requirements.txt (line 11))\n", - "#20 2.425 Downloading nvidia_curand_cu12-10.3.2.106-py3-none-manylinux1_x86_64.whl.metadata (1.5 kB)\n", - "#20 2.459 Collecting nvidia-cusolver-cu12==11.4.5.107 (from torch>=1.12.0->-r /tmp/requirements.txt (line 11))\n", - "#20 2.463 Downloading nvidia_cusolver_cu12-11.4.5.107-py3-none-manylinux1_x86_64.whl.metadata (1.6 kB)\n", - "#20 2.484 Collecting nvidia-cusparse-cu12==12.1.0.106 (from torch>=1.12.0->-r /tmp/requirements.txt (line 11))\n", - "#20 2.488 Downloading nvidia_cusparse_cu12-12.1.0.106-py3-none-manylinux1_x86_64.whl.metadata (1.6 kB)\n", - "#20 2.504 Collecting nvidia-nccl-cu12==2.19.3 (from torch>=1.12.0->-r /tmp/requirements.txt (line 11))\n", - "#20 2.508 Downloading nvidia_nccl_cu12-2.19.3-py3-none-manylinux1_x86_64.whl.metadata (1.8 kB)\n", - "#20 2.530 Collecting nvidia-nvtx-cu12==12.1.105 (from torch>=1.12.0->-r /tmp/requirements.txt (line 11))\n", - "#20 2.534 Downloading nvidia_nvtx_cu12-12.1.105-py3-none-manylinux1_x86_64.whl.metadata (1.7 kB)\n", - "#20 2.555 Collecting triton==2.2.0 (from torch>=1.12.0->-r /tmp/requirements.txt (line 11))\n", - "#20 2.559 Downloading triton-2.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (1.4 kB)\n", - "#20 2.609 Collecting nvidia-nvjitlink-cu12 (from nvidia-cusolver-cu12==11.4.5.107->torch>=1.12.0->-r /tmp/requirements.txt (line 11))\n", - "#20 2.612 Downloading nvidia_nvjitlink_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)\n", - "#20 2.849 Requirement already satisfied: MarkupSafe>=2.0 in /usr/local/lib/python3.10/dist-packages (from jinja2->torch>=1.12.0->-r /tmp/requirements.txt (line 11)) (2.1.3)\n", - "#20 2.869 Collecting mpmath>=0.19 (from sympy->torch>=1.12.0->-r /tmp/requirements.txt (line 11))\n", - "#20 2.873 Downloading mpmath-1.3.0-py3-none-any.whl.metadata (8.6 kB)\n", - "#20 2.917 Downloading highdicom-0.22.0-py3-none-any.whl (825 kB)\n", - "#20 2.932 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 825.0/825.0 kB 85.5 MB/s eta 0:00:00\n", - "#20 2.939 Downloading monai-1.3.0-202310121228-py3-none-any.whl (1.3 MB)\n", - "#20 2.958 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.3/1.3 MB 99.3 MB/s eta 0:00:00\n", - "#20 2.963 Downloading nibabel-5.2.1-py3-none-any.whl (3.3 MB)\n", - "#20 2.993 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.3/3.3 MB 124.6 MB/s eta 0:00:00\n", - "#20 2.999 Downloading pydicom-2.4.4-py3-none-any.whl (1.8 MB)\n", - "#20 3.015 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.8/1.8 MB 130.4 MB/s eta 0:00:00\n", - "#20 3.020 Downloading SimpleITK-2.3.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (52.7 MB)\n", - "#20 3.526 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 52.7/52.7 MB 99.8 MB/s eta 0:00:00\n", - "#20 3.533 Downloading scikit_image-0.23.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (14.7 MB)\n", - "#20 3.910 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 14.7/14.7 MB 30.4 MB/s eta 0:00:00\n", - "#20 3.916 Downloading numpy_stl-3.1.1-py3-none-any.whl (20 kB)\n", - "#20 3.921 Downloading trimesh-4.3.1-py3-none-any.whl (693 kB)\n", - "#20 3.928 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 693.8/693.8 kB 179.7 MB/s eta 0:00:00\n", - "#20 3.936 Downloading torch-2.2.2-cp310-cp310-manylinux1_x86_64.whl (755.5 MB)\n", - "#20 11.35 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 755.5/755.5 MB 118.0 MB/s eta 0:00:00\n", - "#20 11.36 Downloading nvidia_cublas_cu12-12.1.3.1-py3-none-manylinux1_x86_64.whl (410.6 MB)\n", - "#20 16.03 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 410.6/410.6 MB 117.5 MB/s eta 0:00:00\n", - "#20 16.04 Downloading nvidia_cuda_cupti_cu12-12.1.105-py3-none-manylinux1_x86_64.whl (14.1 MB)\n", - "#20 16.17 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 14.1/14.1 MB 118.4 MB/s eta 0:00:00\n", - "#20 16.18 Downloading nvidia_cuda_nvrtc_cu12-12.1.105-py3-none-manylinux1_x86_64.whl (23.7 MB)\n", - "#20 16.45 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 23.7/23.7 MB 117.6 MB/s eta 0:00:00\n", - "#20 16.46 Downloading nvidia_cuda_runtime_cu12-12.1.105-py3-none-manylinux1_x86_64.whl (823 kB)\n", - "#20 16.47 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 823.6/823.6 kB 153.8 MB/s eta 0:00:00\n", - "#20 16.49 Downloading nvidia_cudnn_cu12-8.9.2.26-py3-none-manylinux1_x86_64.whl (731.7 MB)\n", - "#20 24.48 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 731.7/731.7 MB 117.1 MB/s eta 0:00:00\n", - "#20 24.49 Downloading nvidia_cufft_cu12-11.0.2.54-py3-none-manylinux1_x86_64.whl (121.6 MB)\n", - "#20 25.76 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 121.6/121.6 MB 117.6 MB/s eta 0:00:00\n", - "#20 25.77 Downloading nvidia_curand_cu12-10.3.2.106-py3-none-manylinux1_x86_64.whl (56.5 MB)\n", - "#20 26.35 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 56.5/56.5 MB 63.6 MB/s eta 0:00:00\n", - "#20 26.36 Downloading nvidia_cusolver_cu12-11.4.5.107-py3-none-manylinux1_x86_64.whl (124.2 MB)\n", - "#20 27.50 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 124.2/124.2 MB 104.0 MB/s eta 0:00:00\n", - "#20 27.51 Downloading nvidia_cusparse_cu12-12.1.0.106-py3-none-manylinux1_x86_64.whl (196.0 MB)\n", - "#20 29.35 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 196.0/196.0 MB 108.0 MB/s eta 0:00:00\n", - "#20 29.36 Downloading nvidia_nccl_cu12-2.19.3-py3-none-manylinux1_x86_64.whl (166.0 MB)\n", - "#20 30.97 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 166.0/166.0 MB 116.7 MB/s eta 0:00:00\n", - "#20 30.98 Downloading nvidia_nvtx_cu12-12.1.105-py3-none-manylinux1_x86_64.whl (99 kB)\n", - "#20 30.98 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 99.1/99.1 kB 245.1 MB/s eta 0:00:00\n", - "#20 30.99 Downloading triton-2.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (167.9 MB)\n", - "#20 32.54 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 167.9/167.9 MB 123.3 MB/s eta 0:00:00\n", - "#20 32.54 Downloading imageio-2.34.1-py3-none-any.whl (313 kB)\n", - "#20 32.55 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 313.5/313.5 kB 231.8 MB/s eta 0:00:00\n", - "#20 32.55 Downloading lazy_loader-0.4-py3-none-any.whl (12 kB)\n", - "#20 32.56 Downloading networkx-3.3-py3-none-any.whl (1.7 MB)\n", - "#20 32.57 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.7/1.7 MB 135.6 MB/s eta 0:00:00\n", - "#20 32.58 Downloading pillow-10.3.0-cp310-cp310-manylinux_2_28_x86_64.whl (4.5 MB)\n", - "#20 32.62 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4.5/4.5 MB 121.7 MB/s eta 0:00:00\n", - "#20 32.63 Downloading pillow_jpls-1.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (305 kB)\n", - "#20 32.63 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 305.6/305.6 kB 239.6 MB/s eta 0:00:00\n", - "#20 32.64 Downloading python_utils-3.8.2-py2.py3-none-any.whl (27 kB)\n", - "#20 32.64 Downloading scipy-1.13.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (38.6 MB)\n", - "#20 33.02 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 38.6/38.6 MB 108.0 MB/s eta 0:00:00\n", - "#20 33.02 Downloading tifffile-2024.4.18-py3-none-any.whl (224 kB)\n", - "#20 33.03 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 225.0/225.0 kB 110.7 MB/s eta 0:00:00\n", - "#20 33.04 Downloading typing_extensions-4.11.0-py3-none-any.whl (34 kB)\n", - "#20 33.04 Downloading filelock-3.13.4-py3-none-any.whl (11 kB)\n", - "#20 33.05 Downloading fsspec-2024.3.1-py3-none-any.whl (171 kB)\n", - "#20 33.06 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 172.0/172.0 kB 77.4 MB/s eta 0:00:00\n", - "#20 33.07 Downloading sympy-1.12-py3-none-any.whl (5.7 MB)\n", - "#20 33.12 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 5.7/5.7 MB 117.1 MB/s eta 0:00:00\n", - "#20 33.13 Downloading mpmath-1.3.0-py3-none-any.whl (536 kB)\n", - "#20 33.14 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 536.2/536.2 kB 146.2 MB/s eta 0:00:00\n", - "#20 33.14 Downloading nvidia_nvjitlink_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl (21.1 MB)\n", - "#20 33.34 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 21.1/21.1 MB 117.6 MB/s eta 0:00:00\n", - "#20 40.94 Installing collected packages: SimpleITK, mpmath, typing-extensions, trimesh, tifffile, sympy, scipy, pydicom, pillow, nvidia-nvtx-cu12, nvidia-nvjitlink-cu12, nvidia-nccl-cu12, nvidia-curand-cu12, nvidia-cufft-cu12, nvidia-cuda-runtime-cu12, nvidia-cuda-nvrtc-cu12, nvidia-cuda-cupti-cu12, nvidia-cublas-cu12, nibabel, networkx, lazy-loader, fsspec, filelock, triton, python-utils, pillow-jpls, nvidia-cusparse-cu12, nvidia-cudnn-cu12, imageio, scikit-image, nvidia-cusolver-cu12, numpy-stl, highdicom, torch, monai\n", - "#20 94.76 Successfully installed SimpleITK-2.3.1 filelock-3.13.4 fsspec-2024.3.1 highdicom-0.22.0 imageio-2.34.1 lazy-loader-0.4 monai-1.3.0 mpmath-1.3.0 networkx-3.3 nibabel-5.2.1 numpy-stl-3.1.1 nvidia-cublas-cu12-12.1.3.1 nvidia-cuda-cupti-cu12-12.1.105 nvidia-cuda-nvrtc-cu12-12.1.105 nvidia-cuda-runtime-cu12-12.1.105 nvidia-cudnn-cu12-8.9.2.26 nvidia-cufft-cu12-11.0.2.54 nvidia-curand-cu12-10.3.2.106 nvidia-cusolver-cu12-11.4.5.107 nvidia-cusparse-cu12-12.1.0.106 nvidia-nccl-cu12-2.19.3 nvidia-nvjitlink-cu12-12.4.127 nvidia-nvtx-cu12-12.1.105 pillow-10.3.0 pillow-jpls-1.3.2 pydicom-2.4.4 python-utils-3.8.2 scikit-image-0.23.2 scipy-1.13.0 sympy-1.12 tifffile-2024.4.18 torch-2.2.2 trimesh-4.3.1 triton-2.2.0 typing-extensions-4.11.0\n", - "#20 DONE 98.0s\n", - "\n", - "#21 [15/21] COPY ./monai_deploy_app_sdk-0.5.1+20.gb869749.dirty-py3-none-any.whl /tmp/monai_deploy_app_sdk-0.5.1+20.gb869749.dirty-py3-none-any.whl\n", - "#21 DONE 0.5s\n", - "\n", - "#22 [16/21] RUN pip install /tmp/monai_deploy_app_sdk-0.5.1+20.gb869749.dirty-py3-none-any.whl\n", - "#22 0.651 Defaulting to user installation because normal site-packages is not writeable\n", - "#22 0.747 Processing /tmp/monai_deploy_app_sdk-0.5.1+20.gb869749.dirty-py3-none-any.whl\n", - "#22 0.758 Requirement already satisfied: numpy>=1.21.6 in /usr/local/lib/python3.10/dist-packages (from monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (1.23.5)\n", - "#22 0.873 Collecting holoscan~=2.0 (from monai-deploy-app-sdk==0.5.1+20.gb869749.dirty)\n", - "#22 0.964 Downloading holoscan-2.0.0-cp310-cp310-manylinux_2_35_x86_64.whl.metadata (6.7 kB)\n", - "#22 1.036 Collecting colorama>=0.4.1 (from monai-deploy-app-sdk==0.5.1+20.gb869749.dirty)\n", - "#22 1.040 Downloading colorama-0.4.6-py2.py3-none-any.whl.metadata (17 kB)\n", - "#22 1.125 Collecting typeguard>=3.0.0 (from monai-deploy-app-sdk==0.5.1+20.gb869749.dirty)\n", - "#22 1.129 Downloading typeguard-4.2.1-py3-none-any.whl.metadata (3.7 kB)\n", - "#22 1.167 Requirement already satisfied: pip>=20.3 in /home/holoscan/.local/lib/python3.10/site-packages (from holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (24.0)\n", - "#22 1.168 Requirement already satisfied: cupy-cuda12x==12.2 in /usr/local/lib/python3.10/dist-packages (from holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (12.2.0)\n", - "#22 1.169 Requirement already satisfied: cloudpickle==2.2.1 in /usr/local/lib/python3.10/dist-packages (from holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (2.2.1)\n", - "#22 1.170 Requirement already satisfied: python-on-whales==0.60.1 in /usr/local/lib/python3.10/dist-packages (from holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (0.60.1)\n", - "#22 1.171 Requirement already satisfied: Jinja2==3.1.3 in /usr/local/lib/python3.10/dist-packages (from holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (3.1.3)\n", - "#22 1.172 Requirement already satisfied: packaging==23.1 in /usr/local/lib/python3.10/dist-packages (from holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (23.1)\n", - "#22 1.172 Requirement already satisfied: pyyaml==6.0 in /usr/local/lib/python3.10/dist-packages (from holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (6.0)\n", - "#22 1.173 Requirement already satisfied: requests==2.31.0 in /usr/local/lib/python3.10/dist-packages (from holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (2.31.0)\n", - "#22 1.174 Requirement already satisfied: psutil==5.9.6 in /usr/local/lib/python3.10/dist-packages (from holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (5.9.6)\n", - "#22 1.219 Collecting wheel-axle-runtime<1.0 (from holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty)\n", - "#22 1.224 Downloading wheel_axle_runtime-0.0.5-py3-none-any.whl.metadata (7.7 kB)\n", - "#22 1.261 Requirement already satisfied: fastrlock>=0.5 in /usr/local/lib/python3.10/dist-packages (from cupy-cuda12x==12.2->holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (0.8.2)\n", - "#22 1.266 Requirement already satisfied: MarkupSafe>=2.0 in /usr/local/lib/python3.10/dist-packages (from Jinja2==3.1.3->holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (2.1.3)\n", - "#22 1.286 Requirement already satisfied: pydantic<2,>=1.5 in /usr/local/lib/python3.10/dist-packages (from python-on-whales==0.60.1->holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (1.10.15)\n", - "#22 1.287 Requirement already satisfied: tqdm in /usr/local/lib/python3.10/dist-packages (from python-on-whales==0.60.1->holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (4.66.2)\n", - "#22 1.288 Requirement already satisfied: typer>=0.4.1 in /usr/local/lib/python3.10/dist-packages (from python-on-whales==0.60.1->holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (0.12.3)\n", - "#22 1.288 Requirement already satisfied: typing-extensions in /home/holoscan/.local/lib/python3.10/site-packages (from python-on-whales==0.60.1->holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (4.11.0)\n", - "#22 1.297 Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.10/dist-packages (from requests==2.31.0->holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (3.3.2)\n", - "#22 1.298 Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests==2.31.0->holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (3.7)\n", - "#22 1.298 Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests==2.31.0->holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (2.2.1)\n", - "#22 1.299 Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from requests==2.31.0->holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (2024.2.2)\n", - "#22 1.319 Requirement already satisfied: filelock in /home/holoscan/.local/lib/python3.10/site-packages (from wheel-axle-runtime<1.0->holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (3.13.4)\n", - "#22 1.341 Requirement already satisfied: click>=8.0.0 in /usr/local/lib/python3.10/dist-packages (from typer>=0.4.1->python-on-whales==0.60.1->holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (8.1.7)\n", - "#22 1.342 Requirement already satisfied: shellingham>=1.3.0 in /usr/local/lib/python3.10/dist-packages (from typer>=0.4.1->python-on-whales==0.60.1->holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (1.5.4)\n", - "#22 1.343 Requirement already satisfied: rich>=10.11.0 in /usr/local/lib/python3.10/dist-packages (from typer>=0.4.1->python-on-whales==0.60.1->holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (13.7.1)\n", - "#22 1.380 Requirement already satisfied: markdown-it-py>=2.2.0 in /usr/local/lib/python3.10/dist-packages (from rich>=10.11.0->typer>=0.4.1->python-on-whales==0.60.1->holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (3.0.0)\n", - "#22 1.380 Requirement already satisfied: pygments<3.0.0,>=2.13.0 in /usr/local/lib/python3.10/dist-packages (from rich>=10.11.0->typer>=0.4.1->python-on-whales==0.60.1->holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (2.17.2)\n", - "#22 1.400 Requirement already satisfied: mdurl~=0.1 in /usr/local/lib/python3.10/dist-packages (from markdown-it-py>=2.2.0->rich>=10.11.0->typer>=0.4.1->python-on-whales==0.60.1->holoscan~=2.0->monai-deploy-app-sdk==0.5.1+20.gb869749.dirty) (0.1.2)\n", - "#22 1.415 Downloading colorama-0.4.6-py2.py3-none-any.whl (25 kB)\n", - "#22 1.437 Downloading holoscan-2.0.0-cp310-cp310-manylinux_2_35_x86_64.whl (33.2 MB)\n", - "#22 2.034 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 33.2/33.2 MB 28.4 MB/s eta 0:00:00\n", - "#22 2.039 Downloading typeguard-4.2.1-py3-none-any.whl (34 kB)\n", - "#22 2.064 Downloading wheel_axle_runtime-0.0.5-py3-none-any.whl (12 kB)\n", - "#22 2.573 Installing collected packages: wheel-axle-runtime, typeguard, colorama, holoscan, monai-deploy-app-sdk\n", - "#22 3.306 Successfully installed colorama-0.4.6 holoscan-2.0.0 monai-deploy-app-sdk-0.5.1+20.gb869749.dirty typeguard-4.2.1 wheel-axle-runtime-0.0.5\n", - "#22 DONE 4.1s\n", - "\n", - "#23 [17/21] COPY ./models /opt/holoscan/models\n", - "#23 DONE 0.3s\n", - "\n", - "#24 [18/21] COPY ./map/app.json /etc/holoscan/app.json\n", + "#19 [release 10/18] COPY ./pip/requirements.txt /tmp/requirements.txt\n", + "#19 DONE 0.2s\n", + "\n", + "#20 [release 11/18] RUN pip install --upgrade pip\n", + "#20 0.934 Defaulting to user installation because normal site-packages is not writeable\n", + "#20 0.985 Requirement already satisfied: pip in /usr/lib/python3/dist-packages (22.0.2)\n", + "#20 1.174 Collecting pip\n", + "#20 1.226 Downloading pip-24.3.1-py3-none-any.whl (1.8 MB)\n", + "#20 1.292 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.8/1.8 MB 29.1 MB/s eta 0:00:00\n", + "#20 1.318 Installing collected packages: pip\n", + "#20 2.288 Successfully installed pip-24.3.1\n", + "#20 DONE 2.5s\n", + "\n", + "#21 [release 12/18] RUN pip install --no-cache-dir --user -r /tmp/requirements.txt\n", + "#21 0.750 Collecting highdicom>=0.18.2 (from -r /tmp/requirements.txt (line 1))\n", + "#21 0.768 Downloading highdicom-0.23.1-py3-none-any.whl.metadata (4.6 kB)\n", + "#21 0.869 Collecting monai>=1.0 (from -r /tmp/requirements.txt (line 2))\n", + "#21 0.876 Downloading monai-1.4.0-py3-none-any.whl.metadata (11 kB)\n", + "#21 1.064 Collecting nibabel>=3.2.1 (from -r /tmp/requirements.txt (line 3))\n", + "#21 1.069 Downloading nibabel-5.3.2-py3-none-any.whl.metadata (9.1 kB)\n", + "#21 1.302 Collecting numpy>=1.21.6 (from -r /tmp/requirements.txt (line 4))\n", + "#21 1.306 Downloading numpy-2.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (62 kB)\n", + "#21 1.403 Collecting pydicom>=2.3.0 (from -r /tmp/requirements.txt (line 5))\n", + "#21 1.410 Downloading pydicom-3.0.1-py3-none-any.whl.metadata (9.4 kB)\n", + "#21 1.422 Requirement already satisfied: setuptools>=59.5.0 in /usr/lib/python3/dist-packages (from -r /tmp/requirements.txt (line 6)) (59.6.0)\n", + "#21 1.466 Collecting SimpleITK>=2.0.0 (from -r /tmp/requirements.txt (line 7))\n", + "#21 1.471 Downloading SimpleITK-2.4.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (7.9 kB)\n", + "#21 1.574 Collecting scikit-image>=0.17.2 (from -r /tmp/requirements.txt (line 8))\n", + "#21 1.582 Downloading scikit_image-0.25.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (14 kB)\n", + "#21 1.692 Collecting numpy-stl>=2.12.0 (from -r /tmp/requirements.txt (line 9))\n", + "#21 1.699 Downloading numpy_stl-3.2.0-py3-none-any.whl.metadata (18 kB)\n", + "#21 1.825 Collecting trimesh>=3.8.11 (from -r /tmp/requirements.txt (line 10))\n", + "#21 1.829 Downloading trimesh-4.5.3-py3-none-any.whl.metadata (18 kB)\n", + "#21 1.881 Collecting torch>=1.12.0 (from -r /tmp/requirements.txt (line 11))\n", + "#21 1.886 Downloading torch-2.5.1-cp310-cp310-manylinux1_x86_64.whl.metadata (28 kB)\n", + "#21 1.982 Collecting holoscan==2.6.0 (from -r /tmp/requirements.txt (line 12))\n", + "#21 1.993 Downloading holoscan-2.6.0-cp310-cp310-manylinux_2_35_x86_64.whl.metadata (7.2 kB)\n", + "#21 2.001 Requirement already satisfied: pip>22.0.2 in /home/holoscan/.local/lib/python3.10/site-packages (from holoscan==2.6.0->-r /tmp/requirements.txt (line 12)) (24.3.1)\n", + "#21 2.015 Collecting cupy-cuda12x==12.2 (from holoscan==2.6.0->-r /tmp/requirements.txt (line 12))\n", + "#21 2.020 Downloading cupy_cuda12x-12.2.0-cp310-cp310-manylinux2014_x86_64.whl.metadata (2.6 kB)\n", + "#21 2.037 Collecting cloudpickle==2.2.1 (from holoscan==2.6.0->-r /tmp/requirements.txt (line 12))\n", + "#21 2.042 Downloading cloudpickle-2.2.1-py3-none-any.whl.metadata (6.9 kB)\n", + "#21 2.113 Collecting python-on-whales==0.60.1 (from holoscan==2.6.0->-r /tmp/requirements.txt (line 12))\n", + "#21 2.118 Downloading python_on_whales-0.60.1-py3-none-any.whl.metadata (16 kB)\n", + "#21 2.135 Collecting Jinja2==3.1.3 (from holoscan==2.6.0->-r /tmp/requirements.txt (line 12))\n", + "#21 2.139 Downloading Jinja2-3.1.3-py3-none-any.whl.metadata (3.3 kB)\n", + "#21 2.161 Collecting packaging==23.1 (from holoscan==2.6.0->-r /tmp/requirements.txt (line 12))\n", + "#21 2.166 Downloading packaging-23.1-py3-none-any.whl.metadata (3.1 kB)\n", + "#21 2.225 Collecting pyyaml==6.0 (from holoscan==2.6.0->-r /tmp/requirements.txt (line 12))\n", + "#21 2.232 Downloading PyYAML-6.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl.metadata (2.0 kB)\n", + "#21 2.264 Collecting requests==2.31.0 (from holoscan==2.6.0->-r /tmp/requirements.txt (line 12))\n", + "#21 2.268 Downloading requests-2.31.0-py3-none-any.whl.metadata (4.6 kB)\n", + "#21 2.357 Collecting psutil==6.0.0 (from holoscan==2.6.0->-r /tmp/requirements.txt (line 12))\n", + "#21 2.361 Downloading psutil-6.0.0-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (21 kB)\n", + "#21 2.444 Collecting wheel-axle-runtime<1.0 (from holoscan==2.6.0->-r /tmp/requirements.txt (line 12))\n", + "#21 2.452 Downloading wheel_axle_runtime-0.0.6-py3-none-any.whl.metadata (8.1 kB)\n", + "#21 2.473 Collecting numpy>=1.21.6 (from -r /tmp/requirements.txt (line 4))\n", + "#21 2.477 Downloading numpy-1.26.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (61 kB)\n", + "#21 2.548 Collecting fastrlock>=0.5 (from cupy-cuda12x==12.2->holoscan==2.6.0->-r /tmp/requirements.txt (line 12))\n", + "#21 2.553 Downloading fastrlock-0.8.3-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_28_x86_64.whl.metadata (7.7 kB)\n", + "#21 2.627 Collecting MarkupSafe>=2.0 (from Jinja2==3.1.3->holoscan==2.6.0->-r /tmp/requirements.txt (line 12))\n", + "#21 2.631 Downloading MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (4.0 kB)\n", + "#21 2.790 Collecting pydantic<2,>=1.5 (from python-on-whales==0.60.1->holoscan==2.6.0->-r /tmp/requirements.txt (line 12))\n", + "#21 2.795 Downloading pydantic-1.10.21-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (153 kB)\n", + "#21 2.868 Collecting tqdm (from python-on-whales==0.60.1->holoscan==2.6.0->-r /tmp/requirements.txt (line 12))\n", + "#21 2.878 Downloading tqdm-4.67.1-py3-none-any.whl.metadata (57 kB)\n", + "#21 2.917 Collecting typer>=0.4.1 (from python-on-whales==0.60.1->holoscan==2.6.0->-r /tmp/requirements.txt (line 12))\n", + "#21 2.921 Downloading typer-0.15.1-py3-none-any.whl.metadata (15 kB)\n", + "#21 2.943 Collecting typing-extensions (from python-on-whales==0.60.1->holoscan==2.6.0->-r /tmp/requirements.txt (line 12))\n", + "#21 2.947 Downloading typing_extensions-4.12.2-py3-none-any.whl.metadata (3.0 kB)\n", + "#21 3.030 Collecting charset-normalizer<4,>=2 (from requests==2.31.0->holoscan==2.6.0->-r /tmp/requirements.txt (line 12))\n", + "#21 3.034 Downloading charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (35 kB)\n", + "#21 3.047 Collecting idna<4,>=2.5 (from requests==2.31.0->holoscan==2.6.0->-r /tmp/requirements.txt (line 12))\n", + "#21 3.050 Downloading idna-3.10-py3-none-any.whl.metadata (10 kB)\n", + "#21 3.148 Collecting urllib3<3,>=1.21.1 (from requests==2.31.0->holoscan==2.6.0->-r /tmp/requirements.txt (line 12))\n", + "#21 3.152 Downloading urllib3-2.3.0-py3-none-any.whl.metadata (6.5 kB)\n", + "#21 3.173 Collecting certifi>=2017.4.17 (from requests==2.31.0->holoscan==2.6.0->-r /tmp/requirements.txt (line 12))\n", + "#21 3.179 Downloading certifi-2024.12.14-py3-none-any.whl.metadata (2.3 kB)\n", + "#21 3.421 Collecting pillow>=8.3 (from highdicom>=0.18.2->-r /tmp/requirements.txt (line 1))\n", + "#21 3.425 Downloading pillow-11.1.0-cp310-cp310-manylinux_2_28_x86_64.whl.metadata (9.1 kB)\n", + "#21 3.529 Collecting pyjpegls>=1.0.0 (from highdicom>=0.18.2->-r /tmp/requirements.txt (line 1))\n", + "#21 3.540 Downloading pyjpegls-1.5.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (4.5 kB)\n", + "#21 3.617 Collecting importlib-resources>=5.12 (from nibabel>=3.2.1->-r /tmp/requirements.txt (line 3))\n", + "#21 3.621 Downloading importlib_resources-6.5.2-py3-none-any.whl.metadata (3.9 kB)\n", + "#21 3.816 Collecting scipy>=1.11.2 (from scikit-image>=0.17.2->-r /tmp/requirements.txt (line 8))\n", + "#21 3.820 Downloading scipy-1.15.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (61 kB)\n", + "#21 3.866 Collecting networkx>=3.0 (from scikit-image>=0.17.2->-r /tmp/requirements.txt (line 8))\n", + "#21 3.876 Downloading networkx-3.4.2-py3-none-any.whl.metadata (6.3 kB)\n", + "#21 3.931 Collecting imageio!=2.35.0,>=2.33 (from scikit-image>=0.17.2->-r /tmp/requirements.txt (line 8))\n", + "#21 3.935 Downloading imageio-2.36.1-py3-none-any.whl.metadata (5.2 kB)\n", + "#21 4.010 Collecting tifffile>=2022.8.12 (from scikit-image>=0.17.2->-r /tmp/requirements.txt (line 8))\n", + "#21 4.013 Downloading tifffile-2025.1.10-py3-none-any.whl.metadata (31 kB)\n", + "#21 4.029 Collecting lazy-loader>=0.4 (from scikit-image>=0.17.2->-r /tmp/requirements.txt (line 8))\n", + "#21 4.034 Downloading lazy_loader-0.4-py3-none-any.whl.metadata (7.6 kB)\n", + "#21 4.055 Collecting python-utils>=3.4.5 (from numpy-stl>=2.12.0->-r /tmp/requirements.txt (line 9))\n", + "#21 4.060 Downloading python_utils-3.9.1-py2.py3-none-any.whl.metadata (9.8 kB)\n", + "#21 4.099 Collecting filelock (from torch>=1.12.0->-r /tmp/requirements.txt (line 11))\n", + "#21 4.104 Downloading filelock-3.16.1-py3-none-any.whl.metadata (2.9 kB)\n", + "#21 4.135 Collecting fsspec (from torch>=1.12.0->-r /tmp/requirements.txt (line 11))\n", + "#21 4.139 Downloading fsspec-2024.12.0-py3-none-any.whl.metadata (11 kB)\n", + "#21 4.272 Collecting nvidia-cuda-nvrtc-cu12==12.4.127 (from torch>=1.12.0->-r /tmp/requirements.txt (line 11))\n", + "#21 4.276 Downloading nvidia_cuda_nvrtc_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)\n", + "#21 4.286 Collecting nvidia-cuda-runtime-cu12==12.4.127 (from torch>=1.12.0->-r /tmp/requirements.txt (line 11))\n", + "#21 4.290 Downloading nvidia_cuda_runtime_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)\n", + "#21 4.307 Collecting nvidia-cuda-cupti-cu12==12.4.127 (from torch>=1.12.0->-r /tmp/requirements.txt (line 11))\n", + "#21 4.311 Downloading nvidia_cuda_cupti_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl.metadata (1.6 kB)\n", + "#21 4.328 Collecting nvidia-cudnn-cu12==9.1.0.70 (from torch>=1.12.0->-r /tmp/requirements.txt (line 11))\n", + "#21 4.332 Downloading nvidia_cudnn_cu12-9.1.0.70-py3-none-manylinux2014_x86_64.whl.metadata (1.6 kB)\n", + "#21 4.347 Collecting nvidia-cublas-cu12==12.4.5.8 (from torch>=1.12.0->-r /tmp/requirements.txt (line 11))\n", + "#21 4.351 Downloading nvidia_cublas_cu12-12.4.5.8-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)\n", + "#21 4.368 Collecting nvidia-cufft-cu12==11.2.1.3 (from torch>=1.12.0->-r /tmp/requirements.txt (line 11))\n", + "#21 4.372 Downloading nvidia_cufft_cu12-11.2.1.3-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)\n", + "#21 4.387 Collecting nvidia-curand-cu12==10.3.5.147 (from torch>=1.12.0->-r /tmp/requirements.txt (line 11))\n", + "#21 4.396 Downloading nvidia_curand_cu12-10.3.5.147-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)\n", + "#21 4.420 Collecting nvidia-cusolver-cu12==11.6.1.9 (from torch>=1.12.0->-r /tmp/requirements.txt (line 11))\n", + "#21 4.425 Downloading nvidia_cusolver_cu12-11.6.1.9-py3-none-manylinux2014_x86_64.whl.metadata (1.6 kB)\n", + "#21 4.438 Collecting nvidia-cusparse-cu12==12.3.1.170 (from torch>=1.12.0->-r /tmp/requirements.txt (line 11))\n", + "#21 4.443 Downloading nvidia_cusparse_cu12-12.3.1.170-py3-none-manylinux2014_x86_64.whl.metadata (1.6 kB)\n", + "#21 4.452 Collecting nvidia-nccl-cu12==2.21.5 (from torch>=1.12.0->-r /tmp/requirements.txt (line 11))\n", + "#21 4.456 Downloading nvidia_nccl_cu12-2.21.5-py3-none-manylinux2014_x86_64.whl.metadata (1.8 kB)\n", + "#21 4.476 Collecting nvidia-nvtx-cu12==12.4.127 (from torch>=1.12.0->-r /tmp/requirements.txt (line 11))\n", + "#21 4.484 Downloading nvidia_nvtx_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl.metadata (1.7 kB)\n", + "#21 4.500 Collecting nvidia-nvjitlink-cu12==12.4.127 (from torch>=1.12.0->-r /tmp/requirements.txt (line 11))\n", + "#21 4.504 Downloading nvidia_nvjitlink_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)\n", + "#21 4.517 Collecting triton==3.1.0 (from torch>=1.12.0->-r /tmp/requirements.txt (line 11))\n", + "#21 4.522 Downloading triton-3.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (1.3 kB)\n", + "#21 4.568 Collecting sympy==1.13.1 (from torch>=1.12.0->-r /tmp/requirements.txt (line 11))\n", + "#21 4.573 Downloading sympy-1.13.1-py3-none-any.whl.metadata (12 kB)\n", + "#21 4.645 Collecting mpmath<1.4,>=1.1.0 (from sympy==1.13.1->torch>=1.12.0->-r /tmp/requirements.txt (line 11))\n", + "#21 4.652 Downloading mpmath-1.3.0-py3-none-any.whl.metadata (8.6 kB)\n", + "#21 4.683 INFO: pip is looking at multiple versions of pyjpegls to determine which version is compatible with other requirements. This could take a while.\n", + "#21 4.684 Collecting pyjpegls>=1.0.0 (from highdicom>=0.18.2->-r /tmp/requirements.txt (line 1))\n", + "#21 4.748 Downloading pyjpegls-1.5.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (4.5 kB)\n", + "#21 4.756 Downloading pyjpegls-1.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (4.5 kB)\n", + "#21 4.831 Collecting click>=8.0.0 (from typer>=0.4.1->python-on-whales==0.60.1->holoscan==2.6.0->-r /tmp/requirements.txt (line 12))\n", + "#21 4.834 Downloading click-8.1.8-py3-none-any.whl.metadata (2.3 kB)\n", + "#21 4.853 Collecting shellingham>=1.3.0 (from typer>=0.4.1->python-on-whales==0.60.1->holoscan==2.6.0->-r /tmp/requirements.txt (line 12))\n", + "#21 4.857 Downloading shellingham-1.5.4-py2.py3-none-any.whl.metadata (3.5 kB)\n", + "#21 4.972 Collecting rich>=10.11.0 (from typer>=0.4.1->python-on-whales==0.60.1->holoscan==2.6.0->-r /tmp/requirements.txt (line 12))\n", + "#21 4.976 Downloading rich-13.9.4-py3-none-any.whl.metadata (18 kB)\n", + "#21 5.025 Collecting markdown-it-py>=2.2.0 (from rich>=10.11.0->typer>=0.4.1->python-on-whales==0.60.1->holoscan==2.6.0->-r /tmp/requirements.txt (line 12))\n", + "#21 5.029 Downloading markdown_it_py-3.0.0-py3-none-any.whl.metadata (6.9 kB)\n", + "#21 5.079 Collecting pygments<3.0.0,>=2.13.0 (from rich>=10.11.0->typer>=0.4.1->python-on-whales==0.60.1->holoscan==2.6.0->-r /tmp/requirements.txt (line 12))\n", + "#21 5.083 Downloading pygments-2.19.1-py3-none-any.whl.metadata (2.5 kB)\n", + "#21 5.102 Collecting mdurl~=0.1 (from markdown-it-py>=2.2.0->rich>=10.11.0->typer>=0.4.1->python-on-whales==0.60.1->holoscan==2.6.0->-r /tmp/requirements.txt (line 12))\n", + "#21 5.105 Downloading mdurl-0.1.2-py3-none-any.whl.metadata (1.6 kB)\n", + "#21 5.120 Downloading holoscan-2.6.0-cp310-cp310-manylinux_2_35_x86_64.whl (40.8 MB)\n", + "#21 5.523 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 40.8/40.8 MB 103.4 MB/s eta 0:00:00\n", + "#21 5.528 Downloading cloudpickle-2.2.1-py3-none-any.whl (25 kB)\n", + "#21 5.535 Downloading cupy_cuda12x-12.2.0-cp310-cp310-manylinux2014_x86_64.whl (82.0 MB)\n", + "#21 6.415 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 82.0/82.0 MB 93.6 MB/s eta 0:00:00\n", + "#21 6.420 Downloading Jinja2-3.1.3-py3-none-any.whl (133 kB)\n", + "#21 6.425 Downloading packaging-23.1-py3-none-any.whl (48 kB)\n", + "#21 6.430 Downloading psutil-6.0.0-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (290 kB)\n", + "#21 6.439 Downloading python_on_whales-0.60.1-py3-none-any.whl (103 kB)\n", + "#21 6.447 Downloading PyYAML-6.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (682 kB)\n", + "#21 6.458 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 682.2/682.2 kB 126.7 MB/s eta 0:00:00\n", + "#21 6.467 Downloading requests-2.31.0-py3-none-any.whl (62 kB)\n", + "#21 6.477 Downloading highdicom-0.23.1-py3-none-any.whl (836 kB)\n", + "#21 6.498 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 836.4/836.4 kB 93.1 MB/s eta 0:00:00\n", + "#21 6.512 Downloading monai-1.4.0-py3-none-any.whl (1.5 MB)\n", + "#21 6.552 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.5/1.5 MB 44.4 MB/s eta 0:00:00\n", + "#21 6.558 Downloading nibabel-5.3.2-py3-none-any.whl (3.3 MB)\n", + "#21 6.589 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.3/3.3 MB 113.1 MB/s eta 0:00:00\n", + "#21 6.594 Downloading numpy-1.26.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (18.2 MB)\n", + "#21 6.754 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 18.2/18.2 MB 116.9 MB/s eta 0:00:00\n", + "#21 6.761 Downloading pydicom-3.0.1-py3-none-any.whl (2.4 MB)\n", + "#21 6.782 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.4/2.4 MB 118.5 MB/s eta 0:00:00\n", + "#21 6.790 Downloading SimpleITK-2.4.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (52.4 MB)\n", + "#21 7.314 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 52.4/52.4 MB 102.8 MB/s eta 0:00:00\n", + "#21 7.320 Downloading scikit_image-0.25.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (14.8 MB)\n", + "#21 7.516 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 14.8/14.8 MB 75.8 MB/s eta 0:00:00\n", + "#21 7.521 Downloading numpy_stl-3.2.0-py3-none-any.whl (20 kB)\n", + "#21 7.529 Downloading trimesh-4.5.3-py3-none-any.whl (704 kB)\n", + "#21 7.534 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 704.8/704.8 kB 130.7 MB/s eta 0:00:00\n", + "#21 7.539 Downloading torch-2.5.1-cp310-cp310-manylinux1_x86_64.whl (906.4 MB)\n", + "#21 16.44 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 906.4/906.4 MB 93.7 MB/s eta 0:00:00\n", + "#21 16.44 Downloading nvidia_cublas_cu12-12.4.5.8-py3-none-manylinux2014_x86_64.whl (363.4 MB)\n", + "#21 19.64 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 363.4/363.4 MB 115.2 MB/s eta 0:00:00\n", + "#21 19.64 Downloading nvidia_cuda_cupti_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl (13.8 MB)\n", + "#21 19.77 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 13.8/13.8 MB 111.4 MB/s eta 0:00:00\n", + "#21 19.78 Downloading nvidia_cuda_nvrtc_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl (24.6 MB)\n", + "#21 19.99 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 24.6/24.6 MB 117.3 MB/s eta 0:00:00\n", + "#21 20.00 Downloading nvidia_cuda_runtime_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl (883 kB)\n", + "#21 20.01 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 883.7/883.7 kB 134.9 MB/s eta 0:00:00\n", + "#21 20.02 Downloading nvidia_cudnn_cu12-9.1.0.70-py3-none-manylinux2014_x86_64.whl (664.8 MB)\n", + "#21 25.88 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 664.8/664.8 MB 112.1 MB/s eta 0:00:00\n", + "#21 25.89 Downloading nvidia_cufft_cu12-11.2.1.3-py3-none-manylinux2014_x86_64.whl (211.5 MB)\n", + "#21 27.79 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 211.5/211.5 MB 111.9 MB/s eta 0:00:00\n", + "#21 27.79 Downloading nvidia_curand_cu12-10.3.5.147-py3-none-manylinux2014_x86_64.whl (56.3 MB)\n", + "#21 28.29 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 56.3/56.3 MB 115.2 MB/s eta 0:00:00\n", + "#21 28.29 Downloading nvidia_cusolver_cu12-11.6.1.9-py3-none-manylinux2014_x86_64.whl (127.9 MB)\n", + "#21 29.48 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 127.9/127.9 MB 108.5 MB/s eta 0:00:00\n", + "#21 29.49 Downloading nvidia_cusparse_cu12-12.3.1.170-py3-none-manylinux2014_x86_64.whl (207.5 MB)\n", + "#21 31.41 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 207.5/207.5 MB 108.2 MB/s eta 0:00:00\n", + "#21 31.42 Downloading nvidia_nccl_cu12-2.21.5-py3-none-manylinux2014_x86_64.whl (188.7 MB)\n", + "#21 33.22 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 188.7/188.7 MB 104.9 MB/s eta 0:00:00\n", + "#21 33.23 Downloading nvidia_nvjitlink_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl (21.1 MB)\n", + "#21 33.43 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 21.1/21.1 MB 106.2 MB/s eta 0:00:00\n", + "#21 33.44 Downloading nvidia_nvtx_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl (99 kB)\n", + "#21 33.45 Downloading sympy-1.13.1-py3-none-any.whl (6.2 MB)\n", + "#21 33.60 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 6.2/6.2 MB 39.6 MB/s eta 0:00:00\n", + "#21 33.61 Downloading triton-3.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (209.5 MB)\n", + "#21 35.59 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 209.5/209.5 MB 105.7 MB/s eta 0:00:00\n", + "#21 35.60 Downloading imageio-2.36.1-py3-none-any.whl (315 kB)\n", + "#21 35.61 Downloading importlib_resources-6.5.2-py3-none-any.whl (37 kB)\n", + "#21 35.61 Downloading lazy_loader-0.4-py3-none-any.whl (12 kB)\n", + "#21 35.61 Downloading networkx-3.4.2-py3-none-any.whl (1.7 MB)\n", + "#21 35.63 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.7/1.7 MB 117.9 MB/s eta 0:00:00\n", + "#21 35.64 Downloading pillow-11.1.0-cp310-cp310-manylinux_2_28_x86_64.whl (4.5 MB)\n", + "#21 35.68 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4.5/4.5 MB 118.4 MB/s eta 0:00:00\n", + "#21 35.70 Downloading pyjpegls-1.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.7 MB)\n", + "#21 35.72 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.7/2.7 MB 115.9 MB/s eta 0:00:00\n", + "#21 35.73 Downloading python_utils-3.9.1-py2.py3-none-any.whl (32 kB)\n", + "#21 35.73 Downloading scipy-1.15.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (40.6 MB)\n", + "#21 36.09 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 40.6/40.6 MB 113.9 MB/s eta 0:00:00\n", + "#21 36.10 Downloading tifffile-2025.1.10-py3-none-any.whl (227 kB)\n", + "#21 36.10 Downloading typing_extensions-4.12.2-py3-none-any.whl (37 kB)\n", + "#21 36.11 Downloading wheel_axle_runtime-0.0.6-py3-none-any.whl (14 kB)\n", + "#21 36.12 Downloading filelock-3.16.1-py3-none-any.whl (16 kB)\n", + "#21 36.13 Downloading fsspec-2024.12.0-py3-none-any.whl (183 kB)\n", + "#21 36.13 Downloading certifi-2024.12.14-py3-none-any.whl (164 kB)\n", + "#21 36.14 Downloading charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (146 kB)\n", + "#21 36.14 Downloading fastrlock-0.8.3-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_28_x86_64.whl (53 kB)\n", + "#21 36.14 Downloading idna-3.10-py3-none-any.whl (70 kB)\n", + "#21 36.15 Downloading MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (20 kB)\n", + "#21 36.15 Downloading mpmath-1.3.0-py3-none-any.whl (536 kB)\n", + "#21 36.16 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 536.2/536.2 kB 91.2 MB/s eta 0:00:00\n", + "#21 36.17 Downloading pydantic-1.10.21-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.3 MB)\n", + "#21 36.20 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.3/3.3 MB 113.2 MB/s eta 0:00:00\n", + "#21 36.20 Downloading typer-0.15.1-py3-none-any.whl (44 kB)\n", + "#21 36.21 Downloading urllib3-2.3.0-py3-none-any.whl (128 kB)\n", + "#21 36.21 Downloading tqdm-4.67.1-py3-none-any.whl (78 kB)\n", + "#21 36.22 Downloading click-8.1.8-py3-none-any.whl (98 kB)\n", + "#21 36.22 Downloading rich-13.9.4-py3-none-any.whl (242 kB)\n", + "#21 36.23 Downloading shellingham-1.5.4-py2.py3-none-any.whl (9.8 kB)\n", + "#21 36.23 Downloading markdown_it_py-3.0.0-py3-none-any.whl (87 kB)\n", + "#21 36.24 Downloading pygments-2.19.1-py3-none-any.whl (1.2 MB)\n", + "#21 36.25 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.2/1.2 MB 117.2 MB/s eta 0:00:00\n", + "#21 36.25 Downloading mdurl-0.1.2-py3-none-any.whl (10.0 kB)\n", + "#21 44.89 Installing collected packages: SimpleITK, mpmath, fastrlock, urllib3, typing-extensions, tqdm, sympy, shellingham, pyyaml, pygments, pydicom, psutil, pillow, packaging, nvidia-nvtx-cu12, nvidia-nvjitlink-cu12, nvidia-nccl-cu12, nvidia-curand-cu12, nvidia-cufft-cu12, nvidia-cuda-runtime-cu12, nvidia-cuda-nvrtc-cu12, nvidia-cuda-cupti-cu12, nvidia-cublas-cu12, numpy, networkx, mdurl, MarkupSafe, importlib-resources, idna, fsspec, filelock, cloudpickle, click, charset-normalizer, certifi, wheel-axle-runtime, triton, trimesh, tifffile, scipy, requests, python-utils, pyjpegls, pydantic, nvidia-cusparse-cu12, nvidia-cudnn-cu12, nibabel, markdown-it-py, lazy-loader, Jinja2, imageio, cupy-cuda12x, scikit-image, rich, nvidia-cusolver-cu12, numpy-stl, highdicom, typer, torch, python-on-whales, monai, holoscan\n", + "#21 109.2 Successfully installed Jinja2-3.1.3 MarkupSafe-3.0.2 SimpleITK-2.4.1 certifi-2024.12.14 charset-normalizer-3.4.1 click-8.1.8 cloudpickle-2.2.1 cupy-cuda12x-12.2.0 fastrlock-0.8.3 filelock-3.16.1 fsspec-2024.12.0 highdicom-0.23.1 holoscan-2.6.0 idna-3.10 imageio-2.36.1 importlib-resources-6.5.2 lazy-loader-0.4 markdown-it-py-3.0.0 mdurl-0.1.2 monai-1.4.0 mpmath-1.3.0 networkx-3.4.2 nibabel-5.3.2 numpy-1.26.4 numpy-stl-3.2.0 nvidia-cublas-cu12-12.4.5.8 nvidia-cuda-cupti-cu12-12.4.127 nvidia-cuda-nvrtc-cu12-12.4.127 nvidia-cuda-runtime-cu12-12.4.127 nvidia-cudnn-cu12-9.1.0.70 nvidia-cufft-cu12-11.2.1.3 nvidia-curand-cu12-10.3.5.147 nvidia-cusolver-cu12-11.6.1.9 nvidia-cusparse-cu12-12.3.1.170 nvidia-nccl-cu12-2.21.5 nvidia-nvjitlink-cu12-12.4.127 nvidia-nvtx-cu12-12.4.127 packaging-23.1 pillow-11.1.0 psutil-6.0.0 pydantic-1.10.21 pydicom-3.0.1 pygments-2.19.1 pyjpegls-1.4.0 python-on-whales-0.60.1 python-utils-3.9.1 pyyaml-6.0 requests-2.31.0 rich-13.9.4 scikit-image-0.25.0 scipy-1.15.1 shellingham-1.5.4 sympy-1.13.1 tifffile-2025.1.10 torch-2.5.1 tqdm-4.67.1 trimesh-4.5.3 triton-3.1.0 typer-0.15.1 typing-extensions-4.12.2 urllib3-2.3.0 wheel-axle-runtime-0.0.6\n", + "#21 DONE 111.0s\n", + "\n", + "#22 [release 13/18] RUN pip install monai-deploy-app-sdk==2.0.0\n", + "#22 1.008 Defaulting to user installation because normal site-packages is not writeable\n", + "#22 1.231 Collecting monai-deploy-app-sdk==2.0.0\n", + "#22 1.245 Downloading monai_deploy_app_sdk-2.0.0-py3-none-any.whl.metadata (7.6 kB)\n", + "#22 1.265 Requirement already satisfied: numpy>=1.21.6 in /home/holoscan/.local/lib/python3.10/site-packages (from monai-deploy-app-sdk==2.0.0) (1.26.4)\n", + "#22 1.267 Requirement already satisfied: holoscan~=2.0 in /home/holoscan/.local/lib/python3.10/site-packages (from monai-deploy-app-sdk==2.0.0) (2.6.0)\n", + "#22 1.308 Collecting colorama>=0.4.1 (from monai-deploy-app-sdk==2.0.0)\n", + "#22 1.312 Downloading colorama-0.4.6-py2.py3-none-any.whl.metadata (17 kB)\n", + "#22 1.411 Collecting typeguard>=3.0.0 (from monai-deploy-app-sdk==2.0.0)\n", + "#22 1.416 Downloading typeguard-4.4.1-py3-none-any.whl.metadata (3.7 kB)\n", + "#22 1.447 Requirement already satisfied: pip>22.0.2 in /home/holoscan/.local/lib/python3.10/site-packages (from holoscan~=2.0->monai-deploy-app-sdk==2.0.0) (24.3.1)\n", + "#22 1.448 Requirement already satisfied: cupy-cuda12x==12.2 in /home/holoscan/.local/lib/python3.10/site-packages (from holoscan~=2.0->monai-deploy-app-sdk==2.0.0) (12.2.0)\n", + "#22 1.449 Requirement already satisfied: cloudpickle==2.2.1 in /home/holoscan/.local/lib/python3.10/site-packages (from holoscan~=2.0->monai-deploy-app-sdk==2.0.0) (2.2.1)\n", + "#22 1.450 Requirement already satisfied: python-on-whales==0.60.1 in /home/holoscan/.local/lib/python3.10/site-packages (from holoscan~=2.0->monai-deploy-app-sdk==2.0.0) (0.60.1)\n", + "#22 1.451 Requirement already satisfied: Jinja2==3.1.3 in /home/holoscan/.local/lib/python3.10/site-packages (from holoscan~=2.0->monai-deploy-app-sdk==2.0.0) (3.1.3)\n", + "#22 1.452 Requirement already satisfied: packaging==23.1 in /home/holoscan/.local/lib/python3.10/site-packages (from holoscan~=2.0->monai-deploy-app-sdk==2.0.0) (23.1)\n", + "#22 1.460 Requirement already satisfied: pyyaml==6.0 in /home/holoscan/.local/lib/python3.10/site-packages (from holoscan~=2.0->monai-deploy-app-sdk==2.0.0) (6.0)\n", + "#22 1.460 Requirement already satisfied: requests==2.31.0 in /home/holoscan/.local/lib/python3.10/site-packages (from holoscan~=2.0->monai-deploy-app-sdk==2.0.0) (2.31.0)\n", + "#22 1.460 Requirement already satisfied: psutil==6.0.0 in /home/holoscan/.local/lib/python3.10/site-packages (from holoscan~=2.0->monai-deploy-app-sdk==2.0.0) (6.0.0)\n", + "#22 1.460 Requirement already satisfied: wheel-axle-runtime<1.0 in /home/holoscan/.local/lib/python3.10/site-packages (from holoscan~=2.0->monai-deploy-app-sdk==2.0.0) (0.0.6)\n", + "#22 1.461 Requirement already satisfied: fastrlock>=0.5 in /home/holoscan/.local/lib/python3.10/site-packages (from cupy-cuda12x==12.2->holoscan~=2.0->monai-deploy-app-sdk==2.0.0) (0.8.3)\n", + "#22 1.464 Requirement already satisfied: MarkupSafe>=2.0 in /home/holoscan/.local/lib/python3.10/site-packages (from Jinja2==3.1.3->holoscan~=2.0->monai-deploy-app-sdk==2.0.0) (3.0.2)\n", + "#22 1.471 Requirement already satisfied: pydantic<2,>=1.5 in /home/holoscan/.local/lib/python3.10/site-packages (from python-on-whales==0.60.1->holoscan~=2.0->monai-deploy-app-sdk==2.0.0) (1.10.21)\n", + "#22 1.471 Requirement already satisfied: tqdm in /home/holoscan/.local/lib/python3.10/site-packages (from python-on-whales==0.60.1->holoscan~=2.0->monai-deploy-app-sdk==2.0.0) (4.67.1)\n", + "#22 1.472 Requirement already satisfied: typer>=0.4.1 in /home/holoscan/.local/lib/python3.10/site-packages (from python-on-whales==0.60.1->holoscan~=2.0->monai-deploy-app-sdk==2.0.0) (0.15.1)\n", + "#22 1.473 Requirement already satisfied: typing-extensions in /home/holoscan/.local/lib/python3.10/site-packages (from python-on-whales==0.60.1->holoscan~=2.0->monai-deploy-app-sdk==2.0.0) (4.12.2)\n", + "#22 1.478 Requirement already satisfied: charset-normalizer<4,>=2 in /home/holoscan/.local/lib/python3.10/site-packages (from requests==2.31.0->holoscan~=2.0->monai-deploy-app-sdk==2.0.0) (3.4.1)\n", + "#22 1.479 Requirement already satisfied: idna<4,>=2.5 in /home/holoscan/.local/lib/python3.10/site-packages (from requests==2.31.0->holoscan~=2.0->monai-deploy-app-sdk==2.0.0) (3.10)\n", + "#22 1.480 Requirement already satisfied: urllib3<3,>=1.21.1 in /home/holoscan/.local/lib/python3.10/site-packages (from requests==2.31.0->holoscan~=2.0->monai-deploy-app-sdk==2.0.0) (2.3.0)\n", + "#22 1.480 Requirement already satisfied: certifi>=2017.4.17 in /home/holoscan/.local/lib/python3.10/site-packages (from requests==2.31.0->holoscan~=2.0->monai-deploy-app-sdk==2.0.0) (2024.12.14)\n", + "#22 1.488 Requirement already satisfied: filelock in /home/holoscan/.local/lib/python3.10/site-packages (from wheel-axle-runtime<1.0->holoscan~=2.0->monai-deploy-app-sdk==2.0.0) (3.16.1)\n", + "#22 1.502 Requirement already satisfied: click>=8.0.0 in /home/holoscan/.local/lib/python3.10/site-packages (from typer>=0.4.1->python-on-whales==0.60.1->holoscan~=2.0->monai-deploy-app-sdk==2.0.0) (8.1.8)\n", + "#22 1.503 Requirement already satisfied: shellingham>=1.3.0 in /home/holoscan/.local/lib/python3.10/site-packages (from typer>=0.4.1->python-on-whales==0.60.1->holoscan~=2.0->monai-deploy-app-sdk==2.0.0) (1.5.4)\n", + "#22 1.503 Requirement already satisfied: rich>=10.11.0 in /home/holoscan/.local/lib/python3.10/site-packages (from typer>=0.4.1->python-on-whales==0.60.1->holoscan~=2.0->monai-deploy-app-sdk==2.0.0) (13.9.4)\n", + "#22 1.523 Requirement already satisfied: markdown-it-py>=2.2.0 in /home/holoscan/.local/lib/python3.10/site-packages (from rich>=10.11.0->typer>=0.4.1->python-on-whales==0.60.1->holoscan~=2.0->monai-deploy-app-sdk==2.0.0) (3.0.0)\n", + "#22 1.523 Requirement already satisfied: pygments<3.0.0,>=2.13.0 in /home/holoscan/.local/lib/python3.10/site-packages (from rich>=10.11.0->typer>=0.4.1->python-on-whales==0.60.1->holoscan~=2.0->monai-deploy-app-sdk==2.0.0) (2.19.1)\n", + "#22 1.534 Requirement already satisfied: mdurl~=0.1 in /home/holoscan/.local/lib/python3.10/site-packages (from markdown-it-py>=2.2.0->rich>=10.11.0->typer>=0.4.1->python-on-whales==0.60.1->holoscan~=2.0->monai-deploy-app-sdk==2.0.0) (0.1.2)\n", + "#22 1.545 Downloading monai_deploy_app_sdk-2.0.0-py3-none-any.whl (132 kB)\n", + "#22 1.567 Downloading colorama-0.4.6-py2.py3-none-any.whl (25 kB)\n", + "#22 1.587 Downloading typeguard-4.4.1-py3-none-any.whl (35 kB)\n", + "#22 1.840 Installing collected packages: typeguard, colorama, monai-deploy-app-sdk\n", + "#22 1.998 Successfully installed colorama-0.4.6 monai-deploy-app-sdk-2.0.0 typeguard-4.4.1\n", + "#22 DONE 2.3s\n", + "\n", + "#23 [release 14/18] COPY ./models /opt/holoscan/models\n", + "#23 DONE 0.2s\n", + "\n", + "#24 [release 15/18] COPY ./map/app.json /etc/holoscan/app.json\n", "#24 DONE 0.1s\n", "\n", - "#25 [19/21] COPY ./app.config /var/holoscan/app.yaml\n", + "#25 [release 16/18] COPY ./app.config /var/holoscan/app.yaml\n", "#25 DONE 0.1s\n", "\n", - "#26 [20/21] COPY ./map/pkg.json /etc/holoscan/pkg.json\n", + "#26 [release 17/18] COPY ./map/pkg.json /etc/holoscan/pkg.json\n", "#26 DONE 0.1s\n", "\n", - "#27 [21/21] COPY ./app /opt/holoscan/app\n", + "#27 [release 18/18] COPY ./app /opt/holoscan/app\n", "#27 DONE 0.1s\n", "\n", "#28 exporting to docker image format\n", "#28 exporting layers\n", - "#28 exporting layers 161.2s done\n", - "#28 exporting manifest sha256:db72052410ed3875bd2689b115d7ea706f74caa44be88c9b455c9761c991f225 0.0s done\n", - "#28 exporting config sha256:4fe495cf55e1086e3b466f4799218faa2b377e58348ae9b51253b56b560295b3 0.0s done\n", + "#28 exporting layers 206.6s done\n", + "#28 exporting manifest sha256:de74699b1b4bee4575b62eecd49ecfde88d19159cf9c7f763df12fca4075ad22 0.0s done\n", + "#28 exporting config sha256:b8bb49a5eafd7b437a1dec0e8efd625a3c1820ec728f129f3182548b8ed45290 0.0s done\n", "#28 sending tarball\n", "#28 ...\n", "\n", "#29 importing to docker\n", - "#29 loading layer 414c50de1c1c 557.06kB / 2.97GB\n", - "#29 loading layer 414c50de1c1c 103.06MB / 2.97GB 6.1s\n", - "#29 loading layer 414c50de1c1c 325.88MB / 2.97GB 10.2s\n", - "#29 loading layer 414c50de1c1c 520.85MB / 2.97GB 14.3s\n", - "#29 loading layer 414c50de1c1c 719.72MB / 2.97GB 18.4s\n", - "#29 loading layer 414c50de1c1c 903.54MB / 2.97GB 22.5s\n", - "#29 loading layer 414c50de1c1c 1.11GB / 2.97GB 26.6s\n", - "#29 loading layer 414c50de1c1c 1.36GB / 2.97GB 30.7s\n", - "#29 loading layer 414c50de1c1c 1.56GB / 2.97GB 34.9s\n", - "#29 loading layer 414c50de1c1c 1.81GB / 2.97GB 38.9s\n", - "#29 loading layer 414c50de1c1c 1.97GB / 2.97GB 43.1s\n", - "#29 loading layer 414c50de1c1c 2.04GB / 2.97GB 50.1s\n", - "#29 loading layer 414c50de1c1c 2.17GB / 2.97GB 56.4s\n", - "#29 loading layer 414c50de1c1c 2.42GB / 2.97GB 62.5s\n", - "#29 loading layer 414c50de1c1c 2.63GB / 2.97GB 66.6s\n", - "#29 loading layer 414c50de1c1c 2.79GB / 2.97GB 70.7s\n", - "#29 loading layer 2d2337d002b1 32.77kB / 125.83kB\n", - "#29 loading layer 05a9e332a339 557.06kB / 67.35MB\n", - "#29 loading layer 05a9e332a339 59.60MB / 67.35MB 2.1s\n", - "#29 loading layer b466f5b35107 196.61kB / 17.81MB\n", - "#29 loading layer 66a2f54a1b71 493B / 493B\n", - "#29 loading layer 9b5da571c07c 316B / 316B\n", - "#29 loading layer 69c6b6426338 301B / 301B\n", - "#29 loading layer bfe49db5ef06 3.33kB / 3.33kB\n", - "#29 loading layer b466f5b35107 196.61kB / 17.81MB 5.1s done\n", - "#29 loading layer 414c50de1c1c 2.90GB / 2.97GB 85.2s done\n", - "#29 loading layer 2d2337d002b1 32.77kB / 125.83kB 8.8s done\n", - "#29 loading layer 05a9e332a339 59.60MB / 67.35MB 8.7s done\n", - "#29 loading layer 66a2f54a1b71 493B / 493B 3.4s done\n", - "#29 loading layer 9b5da571c07c 316B / 316B 2.7s done\n", - "#29 loading layer 69c6b6426338 301B / 301B 2.0s done\n", - "#29 loading layer bfe49db5ef06 3.33kB / 3.33kB 1.3s done\n", - "#29 DONE 85.2s\n", + "#29 loading layer 3b1a9c7c51bd 319B / 319B\n", + "#29 loading layer 958003a9d9c8 65.54kB / 5.03MB\n", + "#29 loading layer 48d2f180fed0 557.06kB / 3.34GB\n", + "#29 loading layer 48d2f180fed0 145.39MB / 3.34GB 6.2s\n", + "#29 loading layer 48d2f180fed0 375.46MB / 3.34GB 12.4s\n", + "#29 loading layer 48d2f180fed0 633.37MB / 3.34GB 16.5s\n", + "#29 loading layer 48d2f180fed0 890.73MB / 3.34GB 20.6s\n", + "#29 loading layer 48d2f180fed0 1.17GB / 3.34GB 26.8s\n", + "#29 loading layer 48d2f180fed0 1.40GB / 3.34GB 30.9s\n", + "#29 loading layer 48d2f180fed0 1.70GB / 3.34GB 34.9s\n", + "#29 loading layer 48d2f180fed0 2.01GB / 3.34GB 38.9s\n", + "#29 loading layer 48d2f180fed0 2.19GB / 3.34GB 45.2s\n", + "#29 loading layer 48d2f180fed0 2.34GB / 3.34GB 51.6s\n", + "#29 loading layer 48d2f180fed0 2.56GB / 3.34GB 57.8s\n", + "#29 loading layer 48d2f180fed0 2.82GB / 3.34GB 61.8s\n", + "#29 loading layer 48d2f180fed0 3.05GB / 3.34GB 65.9s\n", + "#29 loading layer 48d2f180fed0 3.26GB / 3.34GB 72.0s\n", + "#29 loading layer 61a09154a063 32.77kB / 579.09kB\n", + "#29 loading layer fb5de645c082 196.61kB / 17.81MB\n", + "#29 loading layer 7277d541a3c8 492B / 492B\n", + "#29 loading layer 6625913413e5 315B / 315B\n", + "#29 loading layer 78faa330ac0a 303B / 303B\n", + "#29 loading layer b0f8d0fbc279 3.36kB / 3.36kB\n", + "#29 loading layer 3b1a9c7c51bd 319B / 319B 76.8s done\n", + "#29 loading layer 958003a9d9c8 65.54kB / 5.03MB 76.6s done\n", + "#29 loading layer 48d2f180fed0 3.32GB / 3.34GB 76.1s done\n", + "#29 loading layer 61a09154a063 32.77kB / 579.09kB 0.9s done\n", + "#29 loading layer fb5de645c082 196.61kB / 17.81MB 0.8s done\n", + "#29 loading layer 7277d541a3c8 492B / 492B 0.5s done\n", + "#29 loading layer 6625913413e5 315B / 315B 0.5s done\n", + "#29 loading layer 78faa330ac0a 303B / 303B 0.5s done\n", + "#29 loading layer b0f8d0fbc279 3.36kB / 3.36kB 0.4s done\n", + "#29 DONE 76.8s\n", "\n", "#28 exporting to docker image format\n", - "#28 sending tarball 146.6s done\n", - "#28 DONE 307.9s\n", + "#28 sending tarball 118.0s done\n", + "#28 DONE 324.7s\n", "\n", "#30 exporting cache to client directory\n", "#30 preparing build cache for export\n", - "#30 writing layer sha256:014cff740c9ec6e9a30d0b859219a700ae880eb385d62095d348f5ea136d6015\n", - "#30 writing layer sha256:014cff740c9ec6e9a30d0b859219a700ae880eb385d62095d348f5ea136d6015 done\n", - "#30 writing layer sha256:0487800842442c7a031a39e1e1857bc6dae4b4f7e5daf3d625f7a8a4833fb364 done\n", - "#30 writing layer sha256:06c6aee94862daf0603783db4e1de6f8524b30ac9fbe0374ab3f1d85b2f76f7f done\n", - "#30 writing layer sha256:0a1756432df4a4350712d8ae5c003f1526bd2180800b3ae6301cfc9ccf370254 done\n", - "#30 writing layer sha256:0a77dcbd0e648ddc4f8e5230ade8fdb781d99e24fa4f13ca96a360c7f7e6751f done\n", - "#30 writing layer sha256:0ec682bf99715a9f88631226f3749e2271b8b9f254528ef61f65ed829984821c done\n", - "#30 writing layer sha256:121c2168995bf46d9888919d105fe5a0d03a3640ee73ed00c9081e10794e7c58 0.0s done\n", - "#30 writing layer sha256:1c5c3aa9c2c8bfd1b9eb36248f5b6d67b3db73ef43440f9dd897615771974b39 done\n", - "#30 writing layer sha256:1f73278b7f17492ce1a8b28b139d54596961596d6790dc20046fa6d5909f3e9c done\n", - "#30 writing layer sha256:20d331454f5fb557f2692dfbdbe092c718fd2cb55d5db9d661b62228dacca5c2 done\n", - "#30 writing layer sha256:229f01f9a7c2d258af634b5b41c5f5b2998c54c7557b3e3cfec465152ebb0c8b\n", - "#30 writing layer sha256:229f01f9a7c2d258af634b5b41c5f5b2998c54c7557b3e3cfec465152ebb0c8b 0.4s done\n", - "#30 writing layer sha256:238f69a43816e481f0295995fcf5fe74d59facf0f9f99734c8d0a2fb140630e0\n", - "#30 writing layer sha256:238f69a43816e481f0295995fcf5fe74d59facf0f9f99734c8d0a2fb140630e0 done\n", - "#30 writing layer sha256:2ad84487f9d4d31cd1e0a92697a5447dd241935253d036b272ef16d31620c1e7 done\n", - "#30 writing layer sha256:2f65750928993b5b31fe572d9e085b53853c5a344feeb0e8615898e285a8c256 done\n", - "#30 writing layer sha256:3777c6498f08c0400339c243e827d465075b7296eb2526e38d9b01c84f8764d8 done\n", - "#30 writing layer sha256:3e3e04011ebdba380ab129f0ee390626cb2a600623815ca756340c18bedb9517 done\n", - "#30 writing layer sha256:42619ce4a0c9e54cfd0ee41a8e5f27d58b3f51becabd1ac6de725fbe6c42b14a done\n", - "#30 writing layer sha256:49bdc9abf8a437ccff67cc11490ba52c976577992909856a86be872a34d3b950 done\n", - "#30 writing layer sha256:4b691ba9f48b41eaa0c754feba8366f1c030464fcbc55eeffa6c86675990933a done\n", - "#30 writing layer sha256:4d04a8db404f16c2704fa10739cb6745a0187713a21a6ef0deb34b48629b54c1 done\n", - "#30 writing layer sha256:4d6542f3a7f5dc637e92c4ce4f54ad7edbfc4fcf629380921a76a1eaaa042085 0.0s done\n", + "#30 writing layer sha256:1463ead657ebd5f00bff6269e7c4941ffcd2c60dc04c0d5f77be0805653d5431\n", + "#30 writing layer sha256:1463ead657ebd5f00bff6269e7c4941ffcd2c60dc04c0d5f77be0805653d5431 0.0s done\n", + "#30 writing layer sha256:1a0d52c93099897b518eb6cc6cd0fa3d52ff733e8606b4d8c92675ba9e7101ff done\n", + "#30 writing layer sha256:1fe4071e2ad799635d2363506eab826a132ddd1465cee089bf81dd9bdd1b18ed 0.0s done\n", + "#30 writing layer sha256:234b866f57e0c5d555af2d87a1857a17ec4ac7e70d2dc6c31ff0a072a4607f24 done\n", + "#30 writing layer sha256:255905badeaa82f032e1043580eed8b745c19cd4a2cb7183883ee5a30f851d6d done\n", + "#30 writing layer sha256:3713021b02770a720dea9b54c03d0ed83e03a2ef5dce2898c56a327fee9a8bca done\n", + "#30 writing layer sha256:3a80776cdc9c9ef79bb38510849c9160f82462d346bf5a8bf29c811391b4e763 done\n", + "#30 writing layer sha256:41e173df84c503c9e717e0e67c22260d4e6bb14660577b225dec5733b4155a78 done\n", + "#30 writing layer sha256:46c9c54348df10b0d7700bf932d5de7dc5bf9ab91e685db7086e29e381ff8e12 done\n", "#30 writing layer sha256:4f4fb700ef54461cfa02571ae0db9a0dc1e0cdb5577484a6d75e68dc38e8acc1 done\n", - "#30 writing layer sha256:542bc8c8d18fbc95e6794122c3593a4a693f8ab6dda4460406f4d7b1ae64a2bc done\n", - "#30 writing layer sha256:57f244836ad318f9bbb3b29856ae1a5b31038bfbb9b43d2466d51c199eb55041 done\n", - "#30 writing layer sha256:5b5b131e0f20db4cb8e568b623a95f8fc16ed1c6b322a9366df70b59a881f24f done\n", - "#30 writing layer sha256:5b90d17b5048adcadefd0b1e4dba9a99247a8827a887e1ca042df375c85b518d done\n", - "#30 writing layer sha256:62452179df7c18e292f141d4aec29e6aba9ff8270c893731169fc6f41dc07631 done\n", - "#30 writing layer sha256:6545b2e110c927b4bf5b0cfdb2ae791686a503dd32470362873ccb4375dcc13c\n", - "#30 writing layer sha256:6545b2e110c927b4bf5b0cfdb2ae791686a503dd32470362873ccb4375dcc13c 1.5s done\n", - "#30 writing layer sha256:6630c387f5f2115bca2e646fd0c2f64e1f3d5431c2e050abe607633883eda230\n", - "#30 writing layer sha256:6630c387f5f2115bca2e646fd0c2f64e1f3d5431c2e050abe607633883eda230 done\n", - "#30 writing layer sha256:6661e0146e77a8bcb03edbfda95bf7780c8bb4c4f98bc03a398c88f4b2403d12 done\n", - "#30 writing layer sha256:717ebf8c9c66ae393ad01e50dbac4413d7b026b9c97d4d348b22ad17052a1a35 done\n", - "#30 writing layer sha256:773c6815e5e7d6855a62f8c5e2fabce3d939ded36c5420f15b54dd7908cdbcfa done\n", - "#30 writing layer sha256:7852b73ea931e3a8d3287ee7ef3cf4bad068e44f046583bfc2b81336fb299284 done\n", - "#30 writing layer sha256:7f8ec130348bcdac81c295e37fe82b4a6e5e9a3ca980a6343809c561020d82d7 done\n", - "#30 writing layer sha256:80885adcad6b5d021bb9f68b6c952018085bb4ce72011bdc0cf7fe8178b5960b done\n", - "#30 writing layer sha256:80baedfe7e90864fa675693451fc0755b31995ecc8575aeaf4e4366d5634af45 done\n", - "#30 writing layer sha256:82a3436133b2b17bb407c7fe488932aa0ca55411f23ab55c34a6134b287c6a27 done\n", - "#30 writing layer sha256:8371d15eb4d69b1d98174dd098b8ddd5c4f19ec6f8d8b67e72dfa9891dc454b4 done\n", - "#30 writing layer sha256:85713f9b166b5add777c524ee807f6265d88b967cbeb9f961d6b09bf220c9a65 done\n", - "#30 writing layer sha256:8ca81d63d0fea573e7b16da41370b55162415a5c07feac92012b101b79f8d5ae done\n", - "#30 writing layer sha256:8fe00505006a09966e763918147ef6ed55bb6695b26e4940c780ee430dc5da8e done\n", - "#30 writing layer sha256:90eae6faa5cc5ba62f12c25915cdfb1a7a51abfba0d05cb5818c3f908f4e345f done\n", - "#30 writing layer sha256:9205d97d9d3e906698bcc6c42d45727c2fa6ec2622abf953d46778c3b8c78edc done\n", - "#30 writing layer sha256:993369dbcc13162a6654d2a3e990b8d8b5f37963564d25710e12764337261ae3 done\n", - "#30 writing layer sha256:99e42a4adebadb39bf55bf94bbd9fb8034230ee19b6b0a42e6ff96f2e7794f30 done\n", - "#30 writing layer sha256:9ac855545fa90ed2bf3b388fdff9ef06ac9427b0c0fca07c9e59161983d8827e done\n", - "#30 writing layer sha256:9d19ee268e0d7bcf6716e6658ee1b0384a71d6f2f9aa1ae2085610cf7c7b316f done\n", - "#30 writing layer sha256:9fafbd4203c4fefe007a462e0d2cd4c1c7c41db2cfdc58d212279e1b9b4b230c done\n", - "#30 writing layer sha256:a1748eee9d376f97bd19225ba61dfada9986f063f4fc429e435f157abb629fc6 done\n", - "#30 writing layer sha256:a251fe5ae6c6d2d5034e4ca88b5dfe5d4827ff90b18e9b143a073232a32bb18d done\n", - "#30 writing layer sha256:a3c41b99822f620cfd6e42b3b0760c1fa99ebb77782013146ff5531da4f4064b 0.0s done\n", - "#30 writing layer sha256:a68f4e0ec09ec3b78cb4cf8e4511d658e34e7b6f676d7806ad9703194ff17604 done\n", - "#30 writing layer sha256:a8e4decc8f7289623b8fd7b9ba1ca555b5a755ebdbf81328d68209f148d9e602 done\n", - "#30 writing layer sha256:afde1c269453ce68a0f2b54c1ba8c5ecddeb18a19e5618a4acdef1f0fe3921af done\n", - "#30 writing layer sha256:b406feb20a37b8c87ef4f5ef814039e3adc90473d50c366b7d9bb6ded4e94a2e done\n", - "#30 writing layer sha256:b48a5fafcaba74eb5d7e7665601509e2889285b50a04b5b639a23f8adc818157 done\n", - "#30 writing layer sha256:ba9f7c75e4dd7942b944679995365aab766d3677da2e69e1d74472f471a484dd done\n", - "#30 writing layer sha256:bdc13166216ae226fa6976f9ce91f4f259d43972f1e0a9b723e436919534b2f4 done\n", - "#30 writing layer sha256:c5d17b776c61f416be379c9d1049e897e197b748dda4284d991324b18fc6c9df 0.0s done\n", - "#30 writing layer sha256:c815f0be64eded102822d81e029bd23b0d8d9a0fbfeb492ec0b4b0bc4ee777bf done\n", - "#30 writing layer sha256:c98533d2908f36a5e9b52faae83809b3b6865b50e90e2817308acfc64cd3655f done\n", - "#30 writing layer sha256:d7da5c5e9a40c476c4b3188a845e3276dedfd752e015ea5113df5af64d4d43f7 done\n", - "#30 writing layer sha256:db20521a869adda8244cb64b783c65e1a911efaae0e73ae00e4a34ea6213d6ce done\n", - "#30 writing layer sha256:df4fd0ac710d7af949afbc6d25b5b4daf3f0596dabf3dec36fa7ca8fa6e1d049 done\n", - "#30 writing layer sha256:e291ddecfbe16b95ee9e90b5e90b1a3d0cfd53dc5e720d6b0f3d28e4a47cf5ac done\n", - "#30 writing layer sha256:e8acb678f16bc0c369d5cf9c184f2d3a1c773986816526e5e3e9c0354f7e757f done\n", - "#30 writing layer sha256:e9225f7ab6606813ec9acba98a064826ebfd6713a9645a58cd068538af1ecddb done\n", - "#30 writing layer sha256:f249faf9663a96b0911a903f8803b11a553c59b698013fb8343492fefdaaea90 done\n", - "#30 writing layer sha256:f608e2fbff86e98627b7e462057e7d2416522096d73fe4664b82fe6ce8a4047d done\n", - "#30 writing layer sha256:f65d191416580d6c38e3d95eee12377b75a4df548be1492618ce2a8c3c41b99e done\n", - "#30 writing layer sha256:fbfd4de480c7037f0604cf64cef29e59cfb27193b257d66d110ff82ec6fc6715\n", - "#30 writing layer sha256:fbfd4de480c7037f0604cf64cef29e59cfb27193b257d66d110ff82ec6fc6715 47.3s done\n", - "#30 writing layer sha256:fcb10e9f191b92679f1cac7623b152400f374a3e3d90f3d2248bfced02b6bdca\n", - "#30 preparing build cache for export 50.0s done\n", - "#30 writing layer sha256:fcb10e9f191b92679f1cac7623b152400f374a3e3d90f3d2248bfced02b6bdca 0.0s done\n", - "#30 writing config sha256:1af23d9bb67b68807f26cc256ea0ba50bba21a62a52cdfab0bc82567fef2a35e 0.0s done\n", - "#30 writing cache manifest sha256:3e6252fe3fb73d49377342ccff9ce009489fdd34a8709b3c2e0e2c2cd1a54372 0.0s done\n", - "#30 DONE 50.0s\n", - "[2024-04-23 17:00:27,074] [INFO] (packager) - Build Summary:\n", + "#30 writing layer sha256:55dfcbd41d825f3bdf939dc395f59941aa6dcb8a6d70cd502706586a3378f199 0.0s done\n", + "#30 writing layer sha256:67b3546b211deefd67122e680c0932886e0b3c6bd6ae0665e3ab25d2d9f0cda0 done\n", + "#30 writing layer sha256:94ea8fe9174939142272c5d49e179ba19f357ea997b5d4f3900d1fb7d4fe6707 done\n", + "#30 writing layer sha256:980c13e156f90218b216bc6b0430472bbda71c0202804d350c0e16ef02075885 done\n", + "#30 writing layer sha256:9e2695ac904b74c0ac2124b2d3787566353a878d987e857a058dc4942c05795f\n", + "#30 writing layer sha256:9e2695ac904b74c0ac2124b2d3787566353a878d987e857a058dc4942c05795f 40.7s done\n", + "#30 writing layer sha256:ac52600be001236a2c291a4c5902c915bf5ec9d2441c06d2a54c587b76345847\n", + "#30 writing layer sha256:ac52600be001236a2c291a4c5902c915bf5ec9d2441c06d2a54c587b76345847 done\n", + "#30 writing layer sha256:acac0a5fdd7a787bb7420c78469973897c8f5fbf1ffe00dbf9607cfce403409e\n", + "#30 writing layer sha256:acac0a5fdd7a787bb7420c78469973897c8f5fbf1ffe00dbf9607cfce403409e 0.3s done\n", + "#30 writing layer sha256:bc25d810fc1fd99656c1b07d422e88cdb896508730175bc3ec187b79f3787044\n", + "#30 writing layer sha256:bc25d810fc1fd99656c1b07d422e88cdb896508730175bc3ec187b79f3787044 done\n", + "#30 writing layer sha256:beec7402c8dda7aeb1553458378da5f7ca8d25cbe7d82ed2370d19a7ae2fa930 0.0s done\n", + "#30 writing layer sha256:c0e9112106766f6d918279426468ca3a81ddca90d82a7e3e41ed3d96b0464a94 done\n", + "#30 writing layer sha256:c8937b741c9ecd6b257aeb18daf07eddbf1c77b0c93f9ba4164faa8353cd1d3c done\n", + "#30 writing layer sha256:d339273dfb7fc3b7fd896d3610d360ab9a09ab33a818093cb73b4be7639b6e99 done\n", + "#30 writing layer sha256:e085183b6ee8ab9c39259c2a4ad46084acb593751832393af1e0b2d1b98a009b 0.0s done\n", + "#30 writing layer sha256:e540d242f419a27800d601d7275f4fbb3488b97d209b454f52e63f1eb413a912 done\n", + "#30 writing layer sha256:efc9014e2a4cb1e133b80bb4f047e9141e98685eb95b8d2471a8e35b86643e31 done\n", + "#30 writing layer sha256:f08ebe0cc28258259e420b22fa0a6e5458acec5f4dc7e13adfce2e01a7284802 0.1s done\n", + "#30 writing layer sha256:f85b662020c5951673d9126c6fed3e887bafc19d949854178592049197a2a5e1\n", + "#30 preparing build cache for export 41.5s done\n", + "#30 writing layer sha256:f85b662020c5951673d9126c6fed3e887bafc19d949854178592049197a2a5e1 0.0s done\n", + "#30 writing config sha256:70b797e9170b15a4b072f80d4653416ffe200049a339c6a471f3824e3c5b6c8f 0.0s done\n", + "#30 writing cache manifest sha256:a6c804e0720ef0eeec54b05a0ac4f0094a44c365e5fe55021bcfa06a1620bfb7 0.0s done\n", + "#30 DONE 41.5s\n", + "[2025-01-16 18:55:45,052] [INFO] (packager) - Build Summary:\n", "\n", "Platform: x64-workstation/dgpu\n", " Status: Succeeded\n", @@ -1758,14 +1912,14 @@ }, { "cell_type": "code", - "execution_count": 66, + "execution_count": 16, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "my_app-x64-workstation-dgpu-linux-amd64 1.0 4fe495cf55e1 5 minutes ago 17.9GB\n" + "my_app-x64-workstation-dgpu-linux-amd64 1.0 b8bb49a5eafd 6 minutes ago 8.64GB\n" ] } ], @@ -1787,7 +1941,7 @@ }, { "cell_type": "code", - "execution_count": 67, + "execution_count": 17, "metadata": {}, "outputs": [ { @@ -1823,7 +1977,7 @@ " },\n", " \"readiness\": null,\n", " \"sdk\": \"monai-deploy\",\n", - " \"sdkVersion\": \"0.5.1\",\n", + " \"sdkVersion\": \"2.0.0\",\n", " \"timeout\": 0,\n", " \"version\": 1,\n", " \"workingDirectory\": \"/var/holoscan\"\n", @@ -1847,16 +2001,16 @@ " \"platformConfig\": \"dgpu\"\n", "}\n", "\n", - "2024-04-24 00:00:30 [INFO] Copying application from /opt/holoscan/app to /var/run/holoscan/export/app\n", + "2025-01-17 02:55:48 [INFO] Copying application from /opt/holoscan/app to /var/run/holoscan/export/app\n", "\n", - "2024-04-24 00:00:30 [INFO] Copying application manifest file from /etc/holoscan/app.json to /var/run/holoscan/export/config/app.json\n", - "2024-04-24 00:00:30 [INFO] Copying pkg manifest file from /etc/holoscan/pkg.json to /var/run/holoscan/export/config/pkg.json\n", - "2024-04-24 00:00:30 [INFO] Copying application configuration from /var/holoscan/app.yaml to /var/run/holoscan/export/config/app.yaml\n", + "2025-01-17 02:55:48 [INFO] Copying application manifest file from /etc/holoscan/app.json to /var/run/holoscan/export/config/app.json\n", + "2025-01-17 02:55:48 [INFO] Copying pkg manifest file from /etc/holoscan/pkg.json to /var/run/holoscan/export/config/pkg.json\n", + "2025-01-17 02:55:48 [INFO] Copying application configuration from /var/holoscan/app.yaml to /var/run/holoscan/export/config/app.yaml\n", "\n", - "2024-04-24 00:00:30 [INFO] Copying models from /opt/holoscan/models to /var/run/holoscan/export/models\n", + "2025-01-17 02:55:48 [INFO] Copying models from /opt/holoscan/models to /var/run/holoscan/export/models\n", "\n", - "2024-04-24 00:00:30 [INFO] Copying documentation from /opt/holoscan/docs/ to /var/run/holoscan/export/docs\n", - "2024-04-24 00:00:30 [INFO] '/opt/holoscan/docs/' cannot be found.\n", + "2025-01-17 02:55:48 [INFO] Copying documentation from /opt/holoscan/docs/ to /var/run/holoscan/export/docs\n", + "2025-01-17 02:55:48 [INFO] '/opt/holoscan/docs/' cannot be found.\n", "\n", "app config models\n" ] @@ -1881,29 +2035,29 @@ }, { "cell_type": "code", - "execution_count": 68, + "execution_count": 18, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "[2024-04-23 17:00:31,900] [INFO] (runner) - Checking dependencies...\n", - "[2024-04-23 17:00:31,900] [INFO] (runner) - --> Verifying if \"docker\" is installed...\n", + "[2025-01-16 18:55:50,604] [INFO] (runner) - Checking dependencies...\n", + "[2025-01-16 18:55:50,604] [INFO] (runner) - --> Verifying if \"docker\" is installed...\n", "\n", - "[2024-04-23 17:00:31,901] [INFO] (runner) - --> Verifying if \"docker-buildx\" is installed...\n", + "[2025-01-16 18:55:50,604] [INFO] (runner) - --> Verifying if \"docker-buildx\" is installed...\n", "\n", - "[2024-04-23 17:00:31,901] [INFO] (runner) - --> Verifying if \"my_app-x64-workstation-dgpu-linux-amd64:1.0\" is available...\n", + "[2025-01-16 18:55:50,605] [INFO] (runner) - --> Verifying if \"my_app-x64-workstation-dgpu-linux-amd64:1.0\" is available...\n", "\n", - "[2024-04-23 17:00:31,971] [INFO] (runner) - Reading HAP/MAP manifest...\n", - "\u001b[sPreparing to copy...\u001b[?25l\u001b[u\u001b[2KCopying from container - 0B\u001b[?25h\u001b[u\u001b[2KSuccessfully copied 2.56kB to /tmp/tmpxev2hpxc/app.json\n", - "\u001b[sPreparing to copy...\u001b[?25l\u001b[u\u001b[2KCopying from container - 0B\u001b[?25h\u001b[u\u001b[2KSuccessfully copied 2.05kB to /tmp/tmpxev2hpxc/pkg.json\n", - "[2024-04-23 17:00:32,215] [INFO] (runner) - --> Verifying if \"nvidia-ctk\" is installed...\n", + "[2025-01-16 18:55:50,728] [INFO] (runner) - Reading HAP/MAP manifest...\n", + "Successfully copied 2.56kB to /tmp/tmpruj04c90/app.json\n", + "Successfully copied 2.05kB to /tmp/tmpruj04c90/pkg.json\n", + "[2025-01-16 18:55:51,051] [INFO] (runner) - --> Verifying if \"nvidia-ctk\" is installed...\n", "\n", - "[2024-04-23 17:00:32,216] [INFO] (runner) - --> Verifying \"nvidia-ctk\" version...\n", + "[2025-01-16 18:55:51,051] [INFO] (runner) - --> Verifying \"nvidia-ctk\" version...\n", "\n", - "[2024-04-23 17:00:32,528] [INFO] (common) - Launching container (6ffaea9917bd) using image 'my_app-x64-workstation-dgpu-linux-amd64:1.0'...\n", - " container name: fervent_bell\n", + "[2025-01-16 18:55:51,518] [INFO] (common) - Launching container (ce1a8045e4e0) using image 'my_app-x64-workstation-dgpu-linux-amd64:1.0'...\n", + " container name: zealous_euler\n", " host name: mingq-dt\n", " network: host\n", " user: 1000:1000\n", @@ -1913,101 +2067,105 @@ " shared memory size: 67108864\n", " devices: \n", " group_add: 44\n", - "2024-04-24 00:00:33 [INFO] Launching application python3 /opt/holoscan/app ...\n", + "2025-01-17 02:55:52 [INFO] Launching application python3 /opt/holoscan/app ...\n", "\n", - "[2024-04-24 00:00:36,780] [INFO] (root) - Parsed args: Namespace(log_level=None, input=None, output=None, model=None, workdir=None, argv=['/opt/holoscan/app'])\n", + "[info] [fragment.cpp:585] Loading extensions from configs...\n", "\n", - "[2024-04-24 00:00:36,783] [INFO] (root) - AppContext object: AppContext(input_path=/var/holoscan/input, output_path=/var/holoscan/output, model_path=/opt/holoscan/models, workdir=/var/holoscan)\n", + "[info] [gxf_executor.cpp:255] Creating context\n", "\n", - "[2024-04-24 00:00:36,784] [INFO] (root) - End compose\n", + "[2025-01-17 02:56:03,227] [INFO] (root) - Parsed args: Namespace(log_level=None, input=None, output=None, model=None, workdir=None, argv=['/opt/holoscan/app'])\n", "\n", - "[info] [app_driver.cpp:1161] Launching the driver/health checking service\n", + "[2025-01-17 02:56:03,235] [INFO] (root) - AppContext object: AppContext(input_path=/var/holoscan/input, output_path=/var/holoscan/output, model_path=/opt/holoscan/models, workdir=/var/holoscan)\n", "\n", - "[info] [gxf_executor.cpp:247] Creating context\n", + "[2025-01-17 02:56:03,238] [INFO] (root) - End compose\n", "\n", - "[info] [server.cpp:87] Health checking server listening on 0.0.0.0:8777\n", + "[info] [app_driver.cpp:1176] Launching the driver/health checking service\n", "\n", - "[info] [gxf_executor.cpp:1672] Loading extensions from configs...\n", + "[info] [gxf_executor.cpp:1973] Activating Graph...\n", "\n", - "[info] [gxf_executor.cpp:1842] Activating Graph...\n", + "[info] [gxf_executor.cpp:2003] Running Graph...\n", "\n", - "\u001b[0m2024-04-24 00:00:36.818 INFO gxf/std/greedy_scheduler.cpp@191: Scheduling 8 entities\u001b[0m\n", + "[info] [gxf_executor.cpp:2005] Waiting for completion...\n", "\n", - "[info] [gxf_executor.cpp:1874] Running Graph...\n", + "[info] [greedy_scheduler.cpp:191] Scheduling 6 entities\n", "\n", - "[info] [gxf_executor.cpp:1876] Waiting for completion...\n", + "[2025-01-17 02:56:03,245] [INFO] (monai.deploy.operators.dicom_data_loader_operator.DICOMDataLoaderOperator) - No or invalid input path from the optional input port: None\n", "\n", - "[2024-04-24 00:00:36,819] [INFO] (monai.deploy.operators.dicom_data_loader_operator.DICOMDataLoaderOperator) - No or invalid input path from the optional input port: None\n", + "[info] [server.cpp:87] Health checking server listening on 0.0.0.0:8777\n", "\n", - "[2024-04-24 00:00:37,735] [INFO] (root) - Finding series for Selection named: CT Series\n", + "[2025-01-17 02:56:03,770] [INFO] (root) - Finding series for Selection named: CT Series\n", "\n", - "[2024-04-24 00:00:37,735] [INFO] (root) - Searching study, : 1.3.6.1.4.1.14519.5.2.1.7085.2626.822645453932810382886582736291\n", + "[2025-01-17 02:56:03,770] [INFO] (root) - Searching study, : 1.3.6.1.4.1.14519.5.2.1.7085.2626.822645453932810382886582736291\n", "\n", " # of series: 1\n", "\n", - "[2024-04-24 00:00:37,735] [INFO] (root) - Working on series, instance UID: 1.3.6.1.4.1.14519.5.2.1.7085.2626.119403521930927333027265674239\n", + "[2025-01-17 02:56:03,770] [INFO] (root) - Working on series, instance UID: 1.3.6.1.4.1.14519.5.2.1.7085.2626.119403521930927333027265674239\n", "\n", - "[2024-04-24 00:00:37,735] [INFO] (root) - On attribute: 'StudyDescription' to match value: '(.*?)'\n", + "[2025-01-17 02:56:03,770] [INFO] (root) - On attribute: 'StudyDescription' to match value: '(.*?)'\n", "\n", - "[2024-04-24 00:00:37,735] [INFO] (root) - Series attribute StudyDescription value: CT ABDOMEN W IV CONTRAST\n", + "[2025-01-17 02:56:03,770] [INFO] (root) - Series attribute StudyDescription value: CT ABDOMEN W IV CONTRAST\n", "\n", - "[2024-04-24 00:00:37,735] [INFO] (root) - Series attribute string value did not match. Try regEx.\n", + "[2025-01-17 02:56:03,770] [INFO] (root) - Series attribute string value did not match. Try regEx.\n", "\n", - "[2024-04-24 00:00:37,735] [INFO] (root) - On attribute: 'Modality' to match value: '(?i)CT'\n", + "[2025-01-17 02:56:03,770] [INFO] (root) - On attribute: 'Modality' to match value: '(?i)CT'\n", "\n", - "[2024-04-24 00:00:37,735] [INFO] (root) - Series attribute Modality value: CT\n", + "[2025-01-17 02:56:03,770] [INFO] (root) - Series attribute Modality value: CT\n", "\n", - "[2024-04-24 00:00:37,735] [INFO] (root) - Series attribute string value did not match. Try regEx.\n", + "[2025-01-17 02:56:03,770] [INFO] (root) - Series attribute string value did not match. Try regEx.\n", "\n", - "[2024-04-24 00:00:37,735] [INFO] (root) - On attribute: 'SeriesDescription' to match value: '(.*?)'\n", + "[2025-01-17 02:56:03,771] [INFO] (root) - On attribute: 'SeriesDescription' to match value: '(.*?)'\n", "\n", - "[2024-04-24 00:00:37,735] [INFO] (root) - Series attribute SeriesDescription value: ABD/PANC 3.0 B31f\n", + "[2025-01-17 02:56:03,771] [INFO] (root) - Series attribute SeriesDescription value: ABD/PANC 3.0 B31f\n", "\n", - "[2024-04-24 00:00:37,735] [INFO] (root) - Series attribute string value did not match. Try regEx.\n", + "[2025-01-17 02:56:03,771] [INFO] (root) - Series attribute string value did not match. Try regEx.\n", "\n", - "[2024-04-24 00:00:37,735] [INFO] (root) - Selected Series, UID: 1.3.6.1.4.1.14519.5.2.1.7085.2626.119403521930927333027265674239\n", + "[2025-01-17 02:56:03,771] [INFO] (root) - Selected Series, UID: 1.3.6.1.4.1.14519.5.2.1.7085.2626.119403521930927333027265674239\n", "\n", - "[2024-04-24 00:00:38,147] [INFO] (root) - Parsing from bundle_path: /opt/holoscan/models/model/model.ts\n", + "[2025-01-17 02:56:04,126] [INFO] (root) - Parsing from bundle_path: /opt/holoscan/models/model/model.ts\n", "\n", - "[2024-04-24 00:00:41,393] [INFO] (monai.deploy.operators.stl_conversion_operator.STLConversionOperator) - Output will be saved in file /var/holoscan/output/stl/spleen.stl.\n", + "/home/holoscan/.local/lib/python3.10/site-packages/monai/bundle/reference_resolver.py:216: UserWarning: Detected deprecated name 'optional_packages_version' in configuration file, replacing with 'required_packages_version'.\n", "\n", - "[2024-04-24 00:00:43,045] [INFO] (monai.deploy.operators.stl_conversion_operator.SpatialImage) - 3D image\n", + " warnings.warn(\n", "\n", - "[2024-04-24 00:00:43,045] [INFO] (monai.deploy.operators.stl_conversion_operator.STLConverter) - Image ndarray shape:(204, 512, 512)\n", + "[2025-01-17 02:56:07,907] [INFO] (monai.deploy.operators.stl_conversion_operator.STLConversionOperator) - Output will be saved in file /var/holoscan/output/stl/spleen.stl.\n", "\n", - "/home/holoscan/.local/lib/python3.10/site-packages/highdicom/valuerep.py:54: UserWarning: The string \"C3N-00198\" is unlikely to represent the intended person name since it contains only a single component. Construct a person name according to the format in described in https://dicom.nema.org/dicom/2013/output/chtml/part05/sect_6.2.html#sect_6.2.1.2, or, in pydicom 2.2.0 or later, use the pydicom.valuerep.PersonName.from_named_components() method to construct the person name correctly. If a single-component name is really intended, add a trailing caret character to disambiguate the name.\n", + "[2025-01-17 02:56:09,756] [INFO] (monai.deploy.operators.stl_conversion_operator.SpatialImage) - 3D image\n", "\n", - " warnings.warn(\n", + "[2025-01-17 02:56:09,756] [INFO] (monai.deploy.operators.stl_conversion_operator.STLConverter) - Image ndarray shape:(204, 512, 512)\n", "\n", - "[2024-04-24 00:00:53,817] [INFO] (highdicom.base) - copy Image-related attributes from dataset \"1.3.6.1.4.1.14519.5.2.1.7085.2626.936983343951485811186213470191\"\n", + "/home/holoscan/.local/lib/python3.10/site-packages/highdicom/base.py:163: UserWarning: The string \"C3N-00198\" is unlikely to represent the intended person name since it contains only a single component. Construct a person name according to the format in described in https://dicom.nema.org/dicom/2013/output/chtml/part05/sect_6.2.html#sect_6.2.1.2, or, in pydicom 2.2.0 or later, use the pydicom.valuerep.PersonName.from_named_components() method to construct the person name correctly. If a single-component name is really intended, add a trailing caret character to disambiguate the name.\n", "\n", - "[2024-04-24 00:00:53,817] [INFO] (highdicom.base) - copy attributes of module \"Specimen\"\n", + " check_person_name(patient_name)\n", "\n", - "[2024-04-24 00:00:53,817] [INFO] (highdicom.base) - copy Patient-related attributes from dataset \"1.3.6.1.4.1.14519.5.2.1.7085.2626.936983343951485811186213470191\"\n", + "[2025-01-17 02:56:22,312] [INFO] (highdicom.base) - copy Image-related attributes from dataset \"1.3.6.1.4.1.14519.5.2.1.7085.2626.936983343951485811186213470191\"\n", "\n", - "[2024-04-24 00:00:53,817] [INFO] (highdicom.base) - copy attributes of module \"Patient\"\n", + "[2025-01-17 02:56:22,313] [INFO] (highdicom.base) - copy attributes of module \"Specimen\"\n", "\n", - "[2024-04-24 00:00:53,817] [INFO] (highdicom.base) - copy attributes of module \"Clinical Trial Subject\"\n", + "[2025-01-17 02:56:22,313] [INFO] (highdicom.base) - copy Patient-related attributes from dataset \"1.3.6.1.4.1.14519.5.2.1.7085.2626.936983343951485811186213470191\"\n", "\n", - "[2024-04-24 00:00:53,817] [INFO] (highdicom.base) - copy Study-related attributes from dataset \"1.3.6.1.4.1.14519.5.2.1.7085.2626.936983343951485811186213470191\"\n", + "[2025-01-17 02:56:22,313] [INFO] (highdicom.base) - copy attributes of module \"Patient\"\n", "\n", - "[2024-04-24 00:00:53,817] [INFO] (highdicom.base) - copy attributes of module \"General Study\"\n", + "[2025-01-17 02:56:22,313] [INFO] (highdicom.base) - copy attributes of module \"Clinical Trial Subject\"\n", "\n", - "[2024-04-24 00:00:53,818] [INFO] (highdicom.base) - copy attributes of module \"Patient Study\"\n", + "[2025-01-17 02:56:22,313] [INFO] (highdicom.base) - copy Study-related attributes from dataset \"1.3.6.1.4.1.14519.5.2.1.7085.2626.936983343951485811186213470191\"\n", "\n", - "[2024-04-24 00:00:53,818] [INFO] (highdicom.base) - copy attributes of module \"Clinical Trial Study\"\n", + "[2025-01-17 02:56:22,313] [INFO] (highdicom.base) - copy attributes of module \"General Study\"\n", "\n", - "\u001b[0m2024-04-24 00:00:53.906 INFO gxf/std/greedy_scheduler.cpp@372: Scheduler stopped: Some entities are waiting for execution, but there are no periodic or async entities to get out of the deadlock.\u001b[0m\n", + "[2025-01-17 02:56:22,314] [INFO] (highdicom.base) - copy attributes of module \"Patient Study\"\n", "\n", - "[info] [gxf_executor.cpp:1879] Deactivating Graph...\n", + "[2025-01-17 02:56:22,314] [INFO] (highdicom.base) - copy attributes of module \"Clinical Trial Study\"\n", "\n", - "\u001b[0m2024-04-24 00:00:53.908 INFO gxf/std/greedy_scheduler.cpp@401: Scheduler finished.\u001b[0m\n", + "[info] [greedy_scheduler.cpp:372] Scheduler stopped: Some entities are waiting for execution, but there are no periodic or async entities to get out of the deadlock.\n", "\n", - "[info] [gxf_executor.cpp:1887] Graph execution finished.\n", + "[info] [greedy_scheduler.cpp:401] Scheduler finished.\n", "\n", - "[2024-04-24 00:00:53,915] [INFO] (app.AISpleenSegApp) - End run\n", + "[info] [gxf_executor.cpp:2008] Deactivating Graph...\n", "\n", - "[2024-04-23 17:00:55,176] [INFO] (common) - Container 'fervent_bell'(6ffaea9917bd) exited.\n" + "[info] [gxf_executor.cpp:2016] Graph execution finished.\n", + "\n", + "[2025-01-17 02:56:22,447] [INFO] (app.AISpleenSegApp) - End run\n", + "\n", + "[2025-01-16 18:56:24,275] [INFO] (common) - Container 'zealous_euler'(ce1a8045e4e0) exited.\n" ] } ], @@ -2019,14 +2177,14 @@ }, { "cell_type": "code", - "execution_count": 69, + "execution_count": 19, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "1.2.826.0.1.3680043.10.511.3.91573472497917482579554686696126426.dcm stl\n" + "1.2.826.0.1.3680043.10.511.3.91784675609868036211230217438685119.dcm stl\n" ] } ], @@ -2037,7 +2195,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3.8.10 ('.venv': venv)", + "display_name": ".venv", "language": "python", "name": "python3" }, @@ -2052,11 +2210,6 @@ "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.12" - }, - "vscode": { - "interpreter": { - "hash": "9b4ab1155d0cd1042497eb40fd55b2d15caf4b3c0f9fbfcc7ba4404045d40f12" - } } }, "nbformat": 4, diff --git a/notebooks/tutorials/05_multi_model_app.ipynb b/notebooks/tutorials/05_multi_model_app.ipynb index 4052ff8e..f9c880bb 100644 --- a/notebooks/tutorials/05_multi_model_app.ipynb +++ b/notebooks/tutorials/05_multi_model_app.ipynb @@ -163,7 +163,9 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Download/Extract input and model/bundle files from Google Drive" + "### Download/Extract input and model/bundle files from Google Drive\n", + "\n", + "**_Note:_** Data files are now access controlled. Please first request permission to access the [shared folder on Google Drive](https://drive.google.com/drive/folders/1EONJsrwbGsS30td0hs8zl4WKjihew1Z3?usp=sharing). Please download zip file, `ai_multi_model_bundle_data.zip` in the `ai_multi_ai_app` folder, to the same folder as the notebook example." ] }, { @@ -175,22 +177,6 @@ "name": "stdout", "output_type": "stream", "text": [ - "Requirement already satisfied: gdown in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (5.1.0)\n", - "Requirement already satisfied: beautifulsoup4 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from gdown) (4.12.3)\n", - "Requirement already satisfied: filelock in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from gdown) (3.13.4)\n", - "Requirement already satisfied: requests[socks] in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from gdown) (2.31.0)\n", - "Requirement already satisfied: tqdm in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from gdown) (4.66.2)\n", - "Requirement already satisfied: soupsieve>1.2 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from beautifulsoup4->gdown) (2.5)\n", - "Requirement already satisfied: charset-normalizer<4,>=2 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from requests[socks]->gdown) (3.3.2)\n", - "Requirement already satisfied: idna<4,>=2.5 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from requests[socks]->gdown) (3.7)\n", - "Requirement already satisfied: urllib3<3,>=1.21.1 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from requests[socks]->gdown) (2.2.1)\n", - "Requirement already satisfied: certifi>=2017.4.17 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from requests[socks]->gdown) (2024.2.2)\n", - "Requirement already satisfied: PySocks!=1.5.7,>=1.5.6 in /home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages (from requests[socks]->gdown) (1.7.1)\n", - "Downloading...\n", - "From (original): https://drive.google.com/uc?id=1llJ4NGNTjY187RLX4MtlmHYhfGxBNWmd\n", - "From (redirected): https://drive.google.com/uc?id=1llJ4NGNTjY187RLX4MtlmHYhfGxBNWmd&confirm=t&uuid=7d1b1592-17f3-4232-9d3b-02bf8cd726be\n", - "To: /home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/ai_multi_model_bundle_data.zip\n", - "100%|█████████████████████████████████████████| 647M/647M [00:06<00:00, 105MB/s]\n", "Archive: ai_multi_model_bundle_data.zip\n", " inflating: dcm/1-001.dcm \n", " inflating: dcm/1-002.dcm \n", @@ -396,15 +382,17 @@ " inflating: dcm/1-202.dcm \n", " inflating: dcm/1-203.dcm \n", " inflating: dcm/1-204.dcm \n", + " creating: multi_models/pancreas_ct_dints/\n", " inflating: multi_models/pancreas_ct_dints/model.ts \n", + " creating: multi_models/spleen_ct/\n", " inflating: multi_models/spleen_ct/model.ts \n" ] } ], "source": [ - "# Download the test data and MONAI bundle zip file\n", - "!pip install gdown \n", - "!gdown \"https://drive.google.com/uc?id=1llJ4NGNTjY187RLX4MtlmHYhfGxBNWmd\"\n", + "# Download ai_spleen_bundle_data test data zip file. Please request access and download manually.\n", + "# !pip install gdown\n", + "# !gdown https://drive.google.com/file/d/1Iwx-jl7vBu67lMpHwJ2VueAOiTtJF4mL/view?usp=sharing\n", "\n", "# After downloading ai_spleen_bundle_data zip file from the web browser or using gdown,\n", "!unzip -o \"ai_multi_model_bundle_data.zip\"" @@ -744,75 +732,70 @@ "name": "stderr", "output_type": "stream", "text": [ - "[2024-04-23 16:11:04,518] [INFO] (root) - Parsed args: Namespace(log_level=None, input=None, output=None, model=None, workdir=None, argv=[])\n", - "[2024-04-23 16:11:04,535] [INFO] (root) - AppContext object: AppContext(input_path=dcm, output_path=output, model_path=multi_models, workdir=)\n", - "[2024-04-23 16:11:04,542] [INFO] (root) - End compose\n", - "[info] [gxf_executor.cpp:247] Creating context\n", - "[info] [gxf_executor.cpp:1672] Loading extensions from configs...\n", - "[info] [gxf_executor.cpp:1842] Activating Graph...\n", - "[info] [gxf_executor.cpp:1874] Running Graph...\n", - "[info] [gxf_executor.cpp:1876] Waiting for completion...\n", - "[2024-04-23 16:11:04,579] [INFO] (monai.deploy.operators.dicom_data_loader_operator.DICOMDataLoaderOperator) - No or invalid input path from the optional input port: None\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\u001b[0m2024-04-23 16:11:04.577 INFO gxf/std/greedy_scheduler.cpp@191: Scheduling 9 entities\u001b[0m\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "[2024-04-23 16:11:05,124] [INFO] (root) - Finding series for Selection named: CT Series\n", - "[2024-04-23 16:11:05,125] [INFO] (root) - Searching study, : 1.3.6.1.4.1.14519.5.2.1.7085.2626.822645453932810382886582736291\n", + "[info] [fragment.cpp:588] Loading extensions from configs...\n", + "[2025-01-16 18:59:35,461] [INFO] (root) - Parsed args: Namespace(log_level=None, input=None, output=None, model=None, workdir=None, argv=[])\n", + "[2025-01-16 18:59:35,473] [INFO] (root) - AppContext object: AppContext(input_path=dcm, output_path=output, model_path=multi_models, workdir=)\n", + "[2025-01-16 18:59:35,478] [INFO] (root) - End compose\n", + "[info] [gxf_executor.cpp:262] Creating context\n", + "[info] [gxf_executor.cpp:1767] creating input IOSpec named 'input_folder'\n", + "[info] [gxf_executor.cpp:1767] creating input IOSpec named 'dicom_study_list'\n", + "[info] [gxf_executor.cpp:1767] creating input IOSpec named 'study_selected_series_list'\n", + "[info] [gxf_executor.cpp:1767] creating input IOSpec named 'image'\n", + "[info] [gxf_executor.cpp:1767] creating input IOSpec named 'image'\n", + "[info] [gxf_executor.cpp:1767] creating input IOSpec named 'output_folder'\n", + "[info] [gxf_executor.cpp:1767] creating input IOSpec named 'study_selected_series_list'\n", + "[info] [gxf_executor.cpp:1767] creating input IOSpec named 'seg_image'\n", + "[info] [gxf_executor.cpp:1767] creating input IOSpec named 'output_folder'\n", + "[info] [gxf_executor.cpp:1767] creating input IOSpec named 'study_selected_series_list'\n", + "[info] [gxf_executor.cpp:1767] creating input IOSpec named 'seg_image'\n", + "[info] [gxf_executor.cpp:2178] Activating Graph...\n", + "[info] [gxf_executor.cpp:2208] Running Graph...\n", + "[info] [gxf_executor.cpp:2210] Waiting for completion...\n", + "[info] [greedy_scheduler.cpp:191] Scheduling 7 entities\n", + "[2025-01-16 18:59:35,490] [INFO] (monai.deploy.operators.dicom_data_loader_operator.DICOMDataLoaderOperator) - No or invalid input path from the optional input port: None\n", + "[2025-01-16 18:59:35,847] [INFO] (root) - Finding series for Selection named: CT Series\n", + "[2025-01-16 18:59:35,849] [INFO] (root) - Searching study, : 1.3.6.1.4.1.14519.5.2.1.7085.2626.822645453932810382886582736291\n", " # of series: 1\n", - "[2024-04-23 16:11:05,126] [INFO] (root) - Working on series, instance UID: 1.3.6.1.4.1.14519.5.2.1.7085.2626.119403521930927333027265674239\n", - "[2024-04-23 16:11:05,128] [INFO] (root) - On attribute: 'StudyDescription' to match value: '(.*?)'\n", - "[2024-04-23 16:11:05,129] [INFO] (root) - Series attribute StudyDescription value: CT ABDOMEN W IV CONTRAST\n", - "[2024-04-23 16:11:05,130] [INFO] (root) - Series attribute string value did not match. Try regEx.\n", - "[2024-04-23 16:11:05,131] [INFO] (root) - On attribute: 'Modality' to match value: '(?i)CT'\n", - "[2024-04-23 16:11:05,132] [INFO] (root) - Series attribute Modality value: CT\n", - "[2024-04-23 16:11:05,134] [INFO] (root) - Series attribute string value did not match. Try regEx.\n", - "[2024-04-23 16:11:05,136] [INFO] (root) - On attribute: 'SeriesDescription' to match value: '(.*?)'\n", - "[2024-04-23 16:11:05,136] [INFO] (root) - Series attribute SeriesDescription value: ABD/PANC 3.0 B31f\n", - "[2024-04-23 16:11:05,137] [INFO] (root) - Series attribute string value did not match. Try regEx.\n", - "[2024-04-23 16:11:05,137] [INFO] (root) - Selected Series, UID: 1.3.6.1.4.1.14519.5.2.1.7085.2626.119403521930927333027265674239\n", - "[2024-04-23 16:11:05,373] [INFO] (root) - Parsing from bundle_path: /home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/multi_models/pancreas_ct_dints/model.ts\n", - "[2024-04-23 16:12:44,188] [INFO] (root) - Parsing from bundle_path: /home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/multi_models/spleen_ct/model.ts\n", - "/home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages/highdicom/valuerep.py:54: UserWarning: The string \"C3N-00198\" is unlikely to represent the intended person name since it contains only a single component. Construct a person name according to the format in described in https://dicom.nema.org/dicom/2013/output/chtml/part05/sect_6.2.html#sect_6.2.1.2, or, in pydicom 2.2.0 or later, use the pydicom.valuerep.PersonName.from_named_components() method to construct the person name correctly. If a single-component name is really intended, add a trailing caret character to disambiguate the name.\n", + "[2025-01-16 18:59:35,850] [INFO] (root) - Working on series, instance UID: 1.3.6.1.4.1.14519.5.2.1.7085.2626.119403521930927333027265674239\n", + "[2025-01-16 18:59:35,851] [INFO] (root) - On attribute: 'StudyDescription' to match value: '(.*?)'\n", + "[2025-01-16 18:59:35,852] [INFO] (root) - Series attribute StudyDescription value: CT ABDOMEN W IV CONTRAST\n", + "[2025-01-16 18:59:35,854] [INFO] (root) - Series attribute string value did not match. Try regEx.\n", + "[2025-01-16 18:59:35,854] [INFO] (root) - On attribute: 'Modality' to match value: '(?i)CT'\n", + "[2025-01-16 18:59:35,855] [INFO] (root) - Series attribute Modality value: CT\n", + "[2025-01-16 18:59:35,856] [INFO] (root) - Series attribute string value did not match. Try regEx.\n", + "[2025-01-16 18:59:35,857] [INFO] (root) - On attribute: 'SeriesDescription' to match value: '(.*?)'\n", + "[2025-01-16 18:59:35,857] [INFO] (root) - Series attribute SeriesDescription value: ABD/PANC 3.0 B31f\n", + "[2025-01-16 18:59:35,858] [INFO] (root) - Series attribute string value did not match. Try regEx.\n", + "[2025-01-16 18:59:35,859] [INFO] (root) - Selected Series, UID: 1.3.6.1.4.1.14519.5.2.1.7085.2626.119403521930927333027265674239\n", + "[2025-01-16 18:59:36,183] [INFO] (root) - Parsing from bundle_path: /home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/multi_models/pancreas_ct_dints/model.ts\n", + "/home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages/monai/bundle/reference_resolver.py:216: UserWarning: Detected deprecated name 'optional_packages_version' in configuration file, replacing with 'required_packages_version'.\n", " warnings.warn(\n", - "[2024-04-23 16:12:49,664] [INFO] (highdicom.base) - copy Image-related attributes from dataset \"1.3.6.1.4.1.14519.5.2.1.7085.2626.936983343951485811186213470191\"\n", - "[2024-04-23 16:12:49,665] [INFO] (highdicom.base) - copy attributes of module \"Specimen\"\n", - "[2024-04-23 16:12:49,666] [INFO] (highdicom.base) - copy Patient-related attributes from dataset \"1.3.6.1.4.1.14519.5.2.1.7085.2626.936983343951485811186213470191\"\n", - "[2024-04-23 16:12:49,667] [INFO] (highdicom.base) - copy attributes of module \"Patient\"\n", - "[2024-04-23 16:12:49,669] [INFO] (highdicom.base) - copy attributes of module \"Clinical Trial Subject\"\n", - "[2024-04-23 16:12:49,670] [INFO] (highdicom.base) - copy Study-related attributes from dataset \"1.3.6.1.4.1.14519.5.2.1.7085.2626.936983343951485811186213470191\"\n", - "[2024-04-23 16:12:49,672] [INFO] (highdicom.base) - copy attributes of module \"General Study\"\n", - "[2024-04-23 16:12:49,673] [INFO] (highdicom.base) - copy attributes of module \"Patient Study\"\n", - "[2024-04-23 16:12:49,675] [INFO] (highdicom.base) - copy attributes of module \"Clinical Trial Study\"\n", - "[2024-04-23 16:12:50,843] [INFO] (highdicom.base) - copy Image-related attributes from dataset \"1.3.6.1.4.1.14519.5.2.1.7085.2626.936983343951485811186213470191\"\n", - "[2024-04-23 16:12:50,844] [INFO] (highdicom.base) - copy attributes of module \"Specimen\"\n", - "[2024-04-23 16:12:50,845] [INFO] (highdicom.base) - copy Patient-related attributes from dataset \"1.3.6.1.4.1.14519.5.2.1.7085.2626.936983343951485811186213470191\"\n", - "[2024-04-23 16:12:50,846] [INFO] (highdicom.base) - copy attributes of module \"Patient\"\n", - "[2024-04-23 16:12:50,847] [INFO] (highdicom.base) - copy attributes of module \"Clinical Trial Subject\"\n", - "[2024-04-23 16:12:50,848] [INFO] (highdicom.base) - copy Study-related attributes from dataset \"1.3.6.1.4.1.14519.5.2.1.7085.2626.936983343951485811186213470191\"\n", - "[2024-04-23 16:12:50,849] [INFO] (highdicom.base) - copy attributes of module \"General Study\"\n", - "[2024-04-23 16:12:50,850] [INFO] (highdicom.base) - copy attributes of module \"Patient Study\"\n", - "[2024-04-23 16:12:50,852] [INFO] (highdicom.base) - copy attributes of module \"Clinical Trial Study\"\n", - "[info] [gxf_executor.cpp:1879] Deactivating Graph...\n", - "[info] [gxf_executor.cpp:1887] Graph execution finished.\n", - "[2024-04-23 16:12:50,954] [INFO] (__main__.App) - End run\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\u001b[0m2024-04-23 16:12:50.952 INFO gxf/std/greedy_scheduler.cpp@372: Scheduler stopped: Some entities are waiting for execution, but there are no periodic or async entities to get out of the deadlock.\u001b[0m\n", - "\u001b[0m2024-04-23 16:12:50.952 INFO gxf/std/greedy_scheduler.cpp@401: Scheduler finished.\u001b[0m\n" + "[2025-01-16 19:00:12,120] [INFO] (root) - Parsing from bundle_path: /home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/multi_models/spleen_ct/model.ts\n", + "/home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages/highdicom/base.py:163: UserWarning: The string \"C3N-00198\" is unlikely to represent the intended person name since it contains only a single component. Construct a person name according to the format in described in https://dicom.nema.org/dicom/2013/output/chtml/part05/sect_6.2.html#sect_6.2.1.2, or, in pydicom 2.2.0 or later, use the pydicom.valuerep.PersonName.from_named_components() method to construct the person name correctly. If a single-component name is really intended, add a trailing caret character to disambiguate the name.\n", + " check_person_name(patient_name)\n", + "[2025-01-16 19:00:16,095] [INFO] (highdicom.base) - copy Image-related attributes from dataset \"1.3.6.1.4.1.14519.5.2.1.7085.2626.936983343951485811186213470191\"\n", + "[2025-01-16 19:00:16,096] [INFO] (highdicom.base) - copy attributes of module \"Specimen\"\n", + "[2025-01-16 19:00:16,097] [INFO] (highdicom.base) - copy Patient-related attributes from dataset \"1.3.6.1.4.1.14519.5.2.1.7085.2626.936983343951485811186213470191\"\n", + "[2025-01-16 19:00:16,097] [INFO] (highdicom.base) - copy attributes of module \"Patient\"\n", + "[2025-01-16 19:00:16,098] [INFO] (highdicom.base) - copy attributes of module \"Clinical Trial Subject\"\n", + "[2025-01-16 19:00:16,100] [INFO] (highdicom.base) - copy Study-related attributes from dataset \"1.3.6.1.4.1.14519.5.2.1.7085.2626.936983343951485811186213470191\"\n", + "[2025-01-16 19:00:16,101] [INFO] (highdicom.base) - copy attributes of module \"General Study\"\n", + "[2025-01-16 19:00:16,102] [INFO] (highdicom.base) - copy attributes of module \"Patient Study\"\n", + "[2025-01-16 19:00:16,103] [INFO] (highdicom.base) - copy attributes of module \"Clinical Trial Study\"\n", + "[2025-01-16 19:00:17,716] [INFO] (highdicom.base) - copy Image-related attributes from dataset \"1.3.6.1.4.1.14519.5.2.1.7085.2626.936983343951485811186213470191\"\n", + "[2025-01-16 19:00:17,717] [INFO] (highdicom.base) - copy attributes of module \"Specimen\"\n", + "[2025-01-16 19:00:17,719] [INFO] (highdicom.base) - copy Patient-related attributes from dataset \"1.3.6.1.4.1.14519.5.2.1.7085.2626.936983343951485811186213470191\"\n", + "[2025-01-16 19:00:17,720] [INFO] (highdicom.base) - copy attributes of module \"Patient\"\n", + "[2025-01-16 19:00:17,721] [INFO] (highdicom.base) - copy attributes of module \"Clinical Trial Subject\"\n", + "[2025-01-16 19:00:17,722] [INFO] (highdicom.base) - copy Study-related attributes from dataset \"1.3.6.1.4.1.14519.5.2.1.7085.2626.936983343951485811186213470191\"\n", + "[2025-01-16 19:00:17,723] [INFO] (highdicom.base) - copy attributes of module \"General Study\"\n", + "[2025-01-16 19:00:17,724] [INFO] (highdicom.base) - copy attributes of module \"Patient Study\"\n", + "[2025-01-16 19:00:17,725] [INFO] (highdicom.base) - copy attributes of module \"Clinical Trial Study\"\n", + "[info] [greedy_scheduler.cpp:372] Scheduler stopped: Some entities are waiting for execution, but there are no periodic or async entities to get out of the deadlock.\n", + "[info] [greedy_scheduler.cpp:401] Scheduler finished.\n", + "[info] [gxf_executor.cpp:2213] Deactivating Graph...\n", + "[info] [gxf_executor.cpp:2221] Graph execution finished.\n", + "[2025-01-16 19:00:17,896] [INFO] (__main__.App) - End run\n" ] } ], @@ -1184,57 +1167,70 @@ "name": "stdout", "output_type": "stream", "text": [ - "[2024-04-23 16:12:55,648] [INFO] (root) - Parsed args: Namespace(log_level=None, input=None, output=None, model=None, workdir=None, argv=['my_app'])\n", - "[2024-04-23 16:12:55,653] [INFO] (root) - AppContext object: AppContext(input_path=dcm, output_path=output, model_path=multi_models, workdir=)\n", - "[2024-04-23 16:12:55,655] [INFO] (root) - End compose\n", - "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:247] Creating context\n", - "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:1672] Loading extensions from configs...\n", - "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:1842] Activating Graph...\n", - "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:1874] Running Graph...\n", - "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:1876] Waiting for completion...\n", - "\u001b[0m2024-04-23 16:12:55.684 INFO gxf/std/greedy_scheduler.cpp@191: Scheduling 9 entities\u001b[0m\n", - "[2024-04-23 16:12:55,685] [INFO] (monai.deploy.operators.dicom_data_loader_operator.DICOMDataLoaderOperator) - No or invalid input path from the optional input port: None\n", - "[2024-04-23 16:12:56,030] [INFO] (root) - Finding series for Selection named: CT Series\n", - "[2024-04-23 16:12:56,030] [INFO] (root) - Searching study, : 1.3.6.1.4.1.14519.5.2.1.7085.2626.822645453932810382886582736291\n", + "[\u001b[32minfo\u001b[m] [fragment.cpp:588] Loading extensions from configs...\n", + "[2025-01-16 19:00:24,384] [INFO] (root) - Parsed args: Namespace(log_level=None, input=None, output=None, model=None, workdir=None, argv=['my_app'])\n", + "[2025-01-16 19:00:24,396] [INFO] (root) - AppContext object: AppContext(input_path=dcm, output_path=output, model_path=multi_models, workdir=)\n", + "[2025-01-16 19:00:24,400] [INFO] (root) - End compose\n", + "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:262] Creating context\n", + "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:1767] creating input IOSpec named 'input_folder'\n", + "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:1767] creating input IOSpec named 'dicom_study_list'\n", + "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:1767] creating input IOSpec named 'study_selected_series_list'\n", + "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:1767] creating input IOSpec named 'image'\n", + "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:1767] creating input IOSpec named 'image'\n", + "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:1767] creating input IOSpec named 'output_folder'\n", + "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:1767] creating input IOSpec named 'study_selected_series_list'\n", + "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:1767] creating input IOSpec named 'seg_image'\n", + "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:1767] creating input IOSpec named 'output_folder'\n", + "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:1767] creating input IOSpec named 'study_selected_series_list'\n", + "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:1767] creating input IOSpec named 'seg_image'\n", + "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:2178] Activating Graph...\n", + "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:2208] Running Graph...\n", + "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:2210] Waiting for completion...\n", + "[\u001b[32minfo\u001b[m] [greedy_scheduler.cpp:191] Scheduling 7 entities\n", + "[2025-01-16 19:00:24,415] [INFO] (monai.deploy.operators.dicom_data_loader_operator.DICOMDataLoaderOperator) - No or invalid input path from the optional input port: None\n", + "[2025-01-16 19:00:24,984] [INFO] (root) - Finding series for Selection named: CT Series\n", + "[2025-01-16 19:00:24,985] [INFO] (root) - Searching study, : 1.3.6.1.4.1.14519.5.2.1.7085.2626.822645453932810382886582736291\n", " # of series: 1\n", - "[2024-04-23 16:12:56,030] [INFO] (root) - Working on series, instance UID: 1.3.6.1.4.1.14519.5.2.1.7085.2626.119403521930927333027265674239\n", - "[2024-04-23 16:12:56,030] [INFO] (root) - On attribute: 'StudyDescription' to match value: '(.*?)'\n", - "[2024-04-23 16:12:56,030] [INFO] (root) - Series attribute StudyDescription value: CT ABDOMEN W IV CONTRAST\n", - "[2024-04-23 16:12:56,030] [INFO] (root) - Series attribute string value did not match. Try regEx.\n", - "[2024-04-23 16:12:56,031] [INFO] (root) - On attribute: 'Modality' to match value: '(?i)CT'\n", - "[2024-04-23 16:12:56,031] [INFO] (root) - Series attribute Modality value: CT\n", - "[2024-04-23 16:12:56,031] [INFO] (root) - Series attribute string value did not match. Try regEx.\n", - "[2024-04-23 16:12:56,031] [INFO] (root) - On attribute: 'SeriesDescription' to match value: '(.*?)'\n", - "[2024-04-23 16:12:56,031] [INFO] (root) - Series attribute SeriesDescription value: ABD/PANC 3.0 B31f\n", - "[2024-04-23 16:12:56,031] [INFO] (root) - Series attribute string value did not match. Try regEx.\n", - "[2024-04-23 16:12:56,031] [INFO] (root) - Selected Series, UID: 1.3.6.1.4.1.14519.5.2.1.7085.2626.119403521930927333027265674239\n", - "[2024-04-23 16:12:56,243] [INFO] (root) - Parsing from bundle_path: /home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/multi_models/pancreas_ct_dints/model.ts\n", - "[2024-04-23 16:14:36,645] [INFO] (root) - Parsing from bundle_path: /home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/multi_models/spleen_ct/model.ts\n", - "/home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages/highdicom/valuerep.py:54: UserWarning: The string \"C3N-00198\" is unlikely to represent the intended person name since it contains only a single component. Construct a person name according to the format in described in https://dicom.nema.org/dicom/2013/output/chtml/part05/sect_6.2.html#sect_6.2.1.2, or, in pydicom 2.2.0 or later, use the pydicom.valuerep.PersonName.from_named_components() method to construct the person name correctly. If a single-component name is really intended, add a trailing caret character to disambiguate the name.\n", + "[2025-01-16 19:00:24,985] [INFO] (root) - Working on series, instance UID: 1.3.6.1.4.1.14519.5.2.1.7085.2626.119403521930927333027265674239\n", + "[2025-01-16 19:00:24,985] [INFO] (root) - On attribute: 'StudyDescription' to match value: '(.*?)'\n", + "[2025-01-16 19:00:24,985] [INFO] (root) - Series attribute StudyDescription value: CT ABDOMEN W IV CONTRAST\n", + "[2025-01-16 19:00:24,985] [INFO] (root) - Series attribute string value did not match. Try regEx.\n", + "[2025-01-16 19:00:24,985] [INFO] (root) - On attribute: 'Modality' to match value: '(?i)CT'\n", + "[2025-01-16 19:00:24,985] [INFO] (root) - Series attribute Modality value: CT\n", + "[2025-01-16 19:00:24,985] [INFO] (root) - Series attribute string value did not match. Try regEx.\n", + "[2025-01-16 19:00:24,985] [INFO] (root) - On attribute: 'SeriesDescription' to match value: '(.*?)'\n", + "[2025-01-16 19:00:24,985] [INFO] (root) - Series attribute SeriesDescription value: ABD/PANC 3.0 B31f\n", + "[2025-01-16 19:00:24,985] [INFO] (root) - Series attribute string value did not match. Try regEx.\n", + "[2025-01-16 19:00:24,985] [INFO] (root) - Selected Series, UID: 1.3.6.1.4.1.14519.5.2.1.7085.2626.119403521930927333027265674239\n", + "[2025-01-16 19:00:25,298] [INFO] (root) - Parsing from bundle_path: /home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/multi_models/pancreas_ct_dints/model.ts\n", + "/home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages/monai/bundle/reference_resolver.py:216: UserWarning: Detected deprecated name 'optional_packages_version' in configuration file, replacing with 'required_packages_version'.\n", " warnings.warn(\n", - "[2024-04-23 16:14:42,011] [INFO] (highdicom.base) - copy Image-related attributes from dataset \"1.3.6.1.4.1.14519.5.2.1.7085.2626.936983343951485811186213470191\"\n", - "[2024-04-23 16:14:42,011] [INFO] (highdicom.base) - copy attributes of module \"Specimen\"\n", - "[2024-04-23 16:14:42,011] [INFO] (highdicom.base) - copy Patient-related attributes from dataset \"1.3.6.1.4.1.14519.5.2.1.7085.2626.936983343951485811186213470191\"\n", - "[2024-04-23 16:14:42,011] [INFO] (highdicom.base) - copy attributes of module \"Patient\"\n", - "[2024-04-23 16:14:42,012] [INFO] (highdicom.base) - copy attributes of module \"Clinical Trial Subject\"\n", - "[2024-04-23 16:14:42,012] [INFO] (highdicom.base) - copy Study-related attributes from dataset \"1.3.6.1.4.1.14519.5.2.1.7085.2626.936983343951485811186213470191\"\n", - "[2024-04-23 16:14:42,012] [INFO] (highdicom.base) - copy attributes of module \"General Study\"\n", - "[2024-04-23 16:14:42,012] [INFO] (highdicom.base) - copy attributes of module \"Patient Study\"\n", - "[2024-04-23 16:14:42,012] [INFO] (highdicom.base) - copy attributes of module \"Clinical Trial Study\"\n", - "[2024-04-23 16:14:43,063] [INFO] (highdicom.base) - copy Image-related attributes from dataset \"1.3.6.1.4.1.14519.5.2.1.7085.2626.936983343951485811186213470191\"\n", - "[2024-04-23 16:14:43,063] [INFO] (highdicom.base) - copy attributes of module \"Specimen\"\n", - "[2024-04-23 16:14:43,064] [INFO] (highdicom.base) - copy Patient-related attributes from dataset \"1.3.6.1.4.1.14519.5.2.1.7085.2626.936983343951485811186213470191\"\n", - "[2024-04-23 16:14:43,064] [INFO] (highdicom.base) - copy attributes of module \"Patient\"\n", - "[2024-04-23 16:14:43,064] [INFO] (highdicom.base) - copy attributes of module \"Clinical Trial Subject\"\n", - "[2024-04-23 16:14:43,064] [INFO] (highdicom.base) - copy Study-related attributes from dataset \"1.3.6.1.4.1.14519.5.2.1.7085.2626.936983343951485811186213470191\"\n", - "[2024-04-23 16:14:43,064] [INFO] (highdicom.base) - copy attributes of module \"General Study\"\n", - "[2024-04-23 16:14:43,064] [INFO] (highdicom.base) - copy attributes of module \"Patient Study\"\n", - "[2024-04-23 16:14:43,065] [INFO] (highdicom.base) - copy attributes of module \"Clinical Trial Study\"\n", - "\u001b[0m2024-04-23 16:14:43.154 INFO gxf/std/greedy_scheduler.cpp@372: Scheduler stopped: Some entities are waiting for execution, but there are no periodic or async entities to get out of the deadlock.\u001b[0m\n", - "\u001b[0m2024-04-23 16:14:43.155 INFO gxf/std/greedy_scheduler.cpp@401: Scheduler finished.\u001b[0m\n", - "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:1879] Deactivating Graph...\n", - "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:1887] Graph execution finished.\n", - "[2024-04-23 16:14:43,155] [INFO] (app.App) - End run\n" + "[2025-01-16 19:01:01,037] [INFO] (root) - Parsing from bundle_path: /home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/multi_models/spleen_ct/model.ts\n", + "/home/mqin/src/monai-deploy-app-sdk/.venv/lib/python3.10/site-packages/highdicom/base.py:163: UserWarning: The string \"C3N-00198\" is unlikely to represent the intended person name since it contains only a single component. Construct a person name according to the format in described in https://dicom.nema.org/dicom/2013/output/chtml/part05/sect_6.2.html#sect_6.2.1.2, or, in pydicom 2.2.0 or later, use the pydicom.valuerep.PersonName.from_named_components() method to construct the person name correctly. If a single-component name is really intended, add a trailing caret character to disambiguate the name.\n", + " check_person_name(patient_name)\n", + "[2025-01-16 19:01:05,078] [INFO] (highdicom.base) - copy Image-related attributes from dataset \"1.3.6.1.4.1.14519.5.2.1.7085.2626.936983343951485811186213470191\"\n", + "[2025-01-16 19:01:05,078] [INFO] (highdicom.base) - copy attributes of module \"Specimen\"\n", + "[2025-01-16 19:01:05,078] [INFO] (highdicom.base) - copy Patient-related attributes from dataset \"1.3.6.1.4.1.14519.5.2.1.7085.2626.936983343951485811186213470191\"\n", + "[2025-01-16 19:01:05,078] [INFO] (highdicom.base) - copy attributes of module \"Patient\"\n", + "[2025-01-16 19:01:05,079] [INFO] (highdicom.base) - copy attributes of module \"Clinical Trial Subject\"\n", + "[2025-01-16 19:01:05,079] [INFO] (highdicom.base) - copy Study-related attributes from dataset \"1.3.6.1.4.1.14519.5.2.1.7085.2626.936983343951485811186213470191\"\n", + "[2025-01-16 19:01:05,079] [INFO] (highdicom.base) - copy attributes of module \"General Study\"\n", + "[2025-01-16 19:01:05,079] [INFO] (highdicom.base) - copy attributes of module \"Patient Study\"\n", + "[2025-01-16 19:01:05,079] [INFO] (highdicom.base) - copy attributes of module \"Clinical Trial Study\"\n", + "[2025-01-16 19:01:06,446] [INFO] (highdicom.base) - copy Image-related attributes from dataset \"1.3.6.1.4.1.14519.5.2.1.7085.2626.936983343951485811186213470191\"\n", + "[2025-01-16 19:01:06,446] [INFO] (highdicom.base) - copy attributes of module \"Specimen\"\n", + "[2025-01-16 19:01:06,447] [INFO] (highdicom.base) - copy Patient-related attributes from dataset \"1.3.6.1.4.1.14519.5.2.1.7085.2626.936983343951485811186213470191\"\n", + "[2025-01-16 19:01:06,447] [INFO] (highdicom.base) - copy attributes of module \"Patient\"\n", + "[2025-01-16 19:01:06,447] [INFO] (highdicom.base) - copy attributes of module \"Clinical Trial Subject\"\n", + "[2025-01-16 19:01:06,447] [INFO] (highdicom.base) - copy Study-related attributes from dataset \"1.3.6.1.4.1.14519.5.2.1.7085.2626.936983343951485811186213470191\"\n", + "[2025-01-16 19:01:06,447] [INFO] (highdicom.base) - copy attributes of module \"General Study\"\n", + "[2025-01-16 19:01:06,448] [INFO] (highdicom.base) - copy attributes of module \"Patient Study\"\n", + "[2025-01-16 19:01:06,448] [INFO] (highdicom.base) - copy attributes of module \"Clinical Trial Study\"\n", + "[\u001b[32minfo\u001b[m] [greedy_scheduler.cpp:372] Scheduler stopped: Some entities are waiting for execution, but there are no periodic or async entities to get out of the deadlock.\n", + "[\u001b[32minfo\u001b[m] [greedy_scheduler.cpp:401] Scheduler finished.\n", + "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:2213] Deactivating Graph...\n", + "[\u001b[32minfo\u001b[m] [gxf_executor.cpp:2221] Graph execution finished.\n", + "[2025-01-16 19:01:06,563] [INFO] (app.App) - End run\n" ] } ], @@ -1252,8 +1248,8 @@ "name": "stdout", "output_type": "stream", "text": [ - "1.2.826.0.1.3680043.10.511.3.10288134553125230635901121822410318.dcm\n", - "1.2.826.0.1.3680043.10.511.3.96971936458025058184826371322949123.dcm\n" + "1.2.826.0.1.3680043.10.511.3.12613710869113605034325699781803316.dcm\n", + "1.2.826.0.1.3680043.10.511.3.31351518962673345162507339120095105.dcm\n" ] } ], @@ -1330,7 +1326,8 @@ "pydicom>=2.3.0\n", "setuptools>=59.5.0 # for pkg_resources\n", "SimpleITK>=2.0.0\n", - "torch>=1.12.0" + "torch>=1.12.0\n", + "holoscan==2.6.0 # avoid v2.7 and v2.8 for a known issue\n" ] }, { @@ -1353,17 +1350,17 @@ "name": "stdout", "output_type": "stream", "text": [ - "[2024-04-23 16:14:45,501] [INFO] (common) - Downloading CLI manifest file...\n", - "[2024-04-23 16:14:45,792] [DEBUG] (common) - Validating CLI manifest file...\n", - "[2024-04-23 16:14:45,794] [INFO] (packager.parameters) - Application: /home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/my_app\n", - "[2024-04-23 16:14:45,795] [INFO] (packager.parameters) - Detected application type: Python Module\n", - "[2024-04-23 16:14:45,795] [INFO] (packager) - Scanning for models in /home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/multi_models...\n", - "[2024-04-23 16:14:45,795] [DEBUG] (packager) - Model spleen_ct=/home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/multi_models/spleen_ct added.\n", - "[2024-04-23 16:14:45,795] [DEBUG] (packager) - Model pancreas_ct_dints=/home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/multi_models/pancreas_ct_dints added.\n", - "[2024-04-23 16:14:45,796] [INFO] (packager) - Reading application configuration from /home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/my_app/app.yaml...\n", - "[2024-04-23 16:14:45,799] [INFO] (packager) - Generating app.json...\n", - "[2024-04-23 16:14:45,799] [INFO] (packager) - Generating pkg.json...\n", - "[2024-04-23 16:14:45,809] [DEBUG] (common) - \n", + "[2025-01-16 19:01:09,441] [INFO] (common) - Downloading CLI manifest file...\n", + "[2025-01-16 19:01:09,679] [DEBUG] (common) - Validating CLI manifest file...\n", + "[2025-01-16 19:01:09,680] [INFO] (packager.parameters) - Application: /home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/my_app\n", + "[2025-01-16 19:01:09,680] [INFO] (packager.parameters) - Detected application type: Python Module\n", + "[2025-01-16 19:01:09,681] [INFO] (packager) - Scanning for models in /home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/multi_models...\n", + "[2025-01-16 19:01:09,681] [DEBUG] (packager) - Model spleen_ct=/home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/multi_models/spleen_ct added.\n", + "[2025-01-16 19:01:09,681] [DEBUG] (packager) - Model pancreas_ct_dints=/home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/multi_models/pancreas_ct_dints added.\n", + "[2025-01-16 19:01:09,681] [INFO] (packager) - Reading application configuration from /home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/my_app/app.yaml...\n", + "[2025-01-16 19:01:09,687] [INFO] (packager) - Generating app.json...\n", + "[2025-01-16 19:01:09,688] [INFO] (packager) - Generating pkg.json...\n", + "[2025-01-16 19:01:09,692] [DEBUG] (common) - \n", "=============== Begin app.json ===============\n", "{\n", " \"apiVersion\": \"1.0.0\",\n", @@ -1391,14 +1388,14 @@ " },\n", " \"readiness\": null,\n", " \"sdk\": \"monai-deploy\",\n", - " \"sdkVersion\": \"0.5.1\",\n", + " \"sdkVersion\": \"2.0.0\",\n", " \"timeout\": 0,\n", " \"version\": 1.0,\n", " \"workingDirectory\": \"/var/holoscan\"\n", "}\n", "================ End app.json ================\n", " \n", - "[2024-04-23 16:14:45,810] [DEBUG] (common) - \n", + "[2025-01-16 19:01:09,693] [DEBUG] (common) - \n", "=============== Begin pkg.json ===============\n", "{\n", " \"apiVersion\": \"1.0.0\",\n", @@ -1419,15 +1416,116 @@ "}\n", "================ End pkg.json ================\n", " \n", - "[2024-04-23 16:14:46,274] [DEBUG] (packager.builder) - \n", + "[2025-01-16 19:01:10,251] [DEBUG] (packager.builder) - \n", + "========== Begin Build Parameters ==========\n", + "{'additional_lib_paths': '',\n", + " 'app_config_file_path': PosixPath('/home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/my_app/app.yaml'),\n", + " 'app_dir': PosixPath('/opt/holoscan/app'),\n", + " 'app_json': '/etc/holoscan/app.json',\n", + " 'application': PosixPath('/home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/my_app'),\n", + " 'application_directory': PosixPath('/home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/my_app'),\n", + " 'application_type': 'PythonModule',\n", + " 'build_cache': PosixPath('/home/mqin/.holoscan_build_cache'),\n", + " 'cmake_args': '',\n", + " 'command': '[\"python3\", \"/opt/holoscan/app\"]',\n", + " 'command_filename': 'my_app',\n", + " 'config_file_path': PosixPath('/var/holoscan/app.yaml'),\n", + " 'docs_dir': PosixPath('/opt/holoscan/docs'),\n", + " 'full_input_path': PosixPath('/var/holoscan/input'),\n", + " 'full_output_path': PosixPath('/var/holoscan/output'),\n", + " 'gid': 1000,\n", + " 'holoscan_sdk_version': '2.8.0',\n", + " 'includes': [],\n", + " 'input_dir': 'input/',\n", + " 'lib_dir': PosixPath('/opt/holoscan/lib'),\n", + " 'logs_dir': PosixPath('/var/holoscan/logs'),\n", + " 'models': {'pancreas_ct_dints': PosixPath('/home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/multi_models/pancreas_ct_dints'),\n", + " 'spleen_ct': PosixPath('/home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/multi_models/spleen_ct')},\n", + " 'models_dir': PosixPath('/opt/holoscan/models'),\n", + " 'monai_deploy_app_sdk_version': '2.0.0',\n", + " 'no_cache': False,\n", + " 'output_dir': 'output/',\n", + " 'pip_packages': None,\n", + " 'pkg_json': '/etc/holoscan/pkg.json',\n", + " 'requirements_file_path': PosixPath('/home/mqin/src/monai-deploy-app-sdk/notebooks/tutorials/my_app/requirements.txt'),\n", + " 'sdk': ,\n", + " 'sdk_type': 'monai-deploy',\n", + " 'tarball_output': None,\n", + " 'timeout': 0,\n", + " 'title': 'MONAI Deploy App Package - Multi Model App',\n", + " 'uid': 1000,\n", + " 'username': 'holoscan',\n", + " 'version': 1.0,\n", + " 'working_dir': PosixPath('/var/holoscan')}\n", + "=========== End Build Parameters ===========\n", + "\n", + "[2025-01-16 19:01:10,252] [DEBUG] (packager.builder) - \n", + "========== Begin Platform Parameters ==========\n", + "{'base_image': 'nvcr.io/nvidia/cuda:12.6.0-runtime-ubuntu22.04',\n", + " 'build_image': None,\n", + " 'cuda_deb_arch': 'x86_64',\n", + " 'custom_base_image': False,\n", + " 'custom_holoscan_sdk': False,\n", + " 'custom_monai_deploy_sdk': False,\n", + " 'gpu_type': 'dgpu',\n", + " 'holoscan_deb_arch': 'amd64',\n", + " 'holoscan_sdk_file': '2.8.0',\n", + " 'holoscan_sdk_filename': '2.8.0',\n", + " 'monai_deploy_sdk_file': None,\n", + " 'monai_deploy_sdk_filename': None,\n", + " 'tag': 'my_app:1.0',\n", + " 'target_arch': 'x86_64'}\n", + "=========== End Platform Parameters ===========\n", + "\n", + "[2025-01-16 19:01:10,293] [DEBUG] (packager.builder) - \n", "========== Begin Dockerfile ==========\n", "\n", + "ARG GPU_TYPE=dgpu\n", + "\n", "\n", - "FROM nvcr.io/nvidia/clara-holoscan/holoscan:v2.0.0-dgpu\n", "\n", + "\n", + "FROM nvcr.io/nvidia/cuda:12.6.0-runtime-ubuntu22.04 AS base\n", + "\n", + "RUN apt-get update \\\n", + " && apt-get install -y --no-install-recommends --no-install-suggests \\\n", + " curl \\\n", + " jq \\\n", + " && rm -rf /var/lib/apt/lists/*\n", + "\n", + "\n", + "\n", + "\n", + "# FROM base AS mofed-installer\n", + "# ARG MOFED_VERSION=23.10-2.1.3.1\n", + "\n", + "# # In a container, we only need to install the user space libraries, though the drivers are still\n", + "# # needed on the host.\n", + "# # Note: MOFED's installation is not easily portable, so we can't copy the output of this stage\n", + "# # to our final stage, but must inherit from it. For that reason, we keep track of the build/install\n", + "# # only dependencies in the `MOFED_DEPS` variable (parsing the output of `--check-deps-only`) to\n", + "# # remove them in that same layer, to ensure they are not propagated in the final image.\n", + "# WORKDIR /opt/nvidia/mofed\n", + "# ARG MOFED_INSTALL_FLAGS=\"--dpdk --with-mft --user-space-only --force --without-fw-update\"\n", + "# RUN UBUNTU_VERSION=$(cat /etc/lsb-release | grep DISTRIB_RELEASE | cut -d= -f2) \\\n", + "# && OFED_PACKAGE=\"MLNX_OFED_LINUX-${MOFED_VERSION}-ubuntu${UBUNTU_VERSION}-$(uname -m)\" \\\n", + "# && curl -S -# -o ${OFED_PACKAGE}.tgz -L \\\n", + "# https://www.mellanox.com/downloads/ofed/MLNX_OFED-${MOFED_VERSION}/${OFED_PACKAGE}.tgz \\\n", + "# && tar xf ${OFED_PACKAGE}.tgz \\\n", + "# && MOFED_INSTALLER=$(find . -name mlnxofedinstall -type f -executable -print) \\\n", + "# && MOFED_DEPS=$(${MOFED_INSTALLER} ${MOFED_INSTALL_FLAGS} --check-deps-only 2>/dev/null | tail -n1 | cut -d' ' -f3-) \\\n", + "# && apt-get update \\\n", + "# && apt-get install --no-install-recommends -y ${MOFED_DEPS} \\\n", + "# && ${MOFED_INSTALLER} ${MOFED_INSTALL_FLAGS} \\\n", + "# && rm -r * \\\n", + "# && apt-get remove -y ${MOFED_DEPS} && apt-get autoremove -y \\\n", + "# && rm -rf /var/lib/apt/lists/*\n", + "\n", + "FROM base AS release\n", "ENV DEBIAN_FRONTEND=noninteractive\n", "ENV TERM=xterm-256color\n", "\n", + "ARG GPU_TYPE\n", "ARG UNAME\n", "ARG UID\n", "ARG GID\n", @@ -1439,15 +1537,14 @@ " && mkdir -p /var/holoscan/input \\\n", " && mkdir -p /var/holoscan/output\n", "\n", - "LABEL base=\"nvcr.io/nvidia/clara-holoscan/holoscan:v2.0.0-dgpu\"\n", + "LABEL base=\"nvcr.io/nvidia/cuda:12.6.0-runtime-ubuntu22.04\"\n", "LABEL tag=\"my_app:1.0\"\n", "LABEL org.opencontainers.image.title=\"MONAI Deploy App Package - Multi Model App\"\n", "LABEL org.opencontainers.image.version=\"1.0\"\n", - "LABEL org.nvidia.holoscan=\"2.0.0\"\n", - "LABEL org.monai.deploy.app-sdk=\"0.5.1\"\n", + "LABEL org.nvidia.holoscan=\"2.8.0\"\n", "\n", + "LABEL org.monai.deploy.app-sdk=\"2.0.0\"\n", "\n", - "ENV HOLOSCAN_ENABLE_HEALTH_CHECK=true\n", "ENV HOLOSCAN_INPUT_PATH=/var/holoscan/input\n", "ENV HOLOSCAN_OUTPUT_PATH=/var/holoscan/output\n", "ENV HOLOSCAN_WORKDIR=/var/holoscan\n", @@ -1459,21 +1556,40 @@ "ENV HOLOSCAN_APP_MANIFEST_PATH=/etc/holoscan/app.json\n", "ENV HOLOSCAN_PKG_MANIFEST_PATH=/etc/holoscan/pkg.json\n", "ENV HOLOSCAN_LOGS_PATH=/var/holoscan/logs\n", - "ENV PATH=/root/.local/bin:/opt/nvidia/holoscan:$PATH\n", - "ENV LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/libtorch/1.13.1/lib/:/opt/nvidia/holoscan/lib\n", + "ENV HOLOSCAN_VERSION=2.8.0\n", "\n", - "RUN apt-get update \\\n", - " && apt-get install -y curl jq \\\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "# If torch is installed, we can skip installing Python\n", + "ENV PYTHON_VERSION=3.10.6-1~22.04\n", + "ENV PYTHON_PIP_VERSION=22.0.2+dfsg-*\n", + "\n", + "RUN apt update \\\n", + " && apt-get install -y --no-install-recommends --no-install-suggests \\\n", + " python3-minimal=${PYTHON_VERSION} \\\n", + " libpython3-stdlib=${PYTHON_VERSION} \\\n", + " python3=${PYTHON_VERSION} \\\n", + " python3-venv=${PYTHON_VERSION} \\\n", + " python3-pip=${PYTHON_PIP_VERSION} \\\n", " && rm -rf /var/lib/apt/lists/*\n", "\n", - "ENV PYTHONPATH=\"/opt/holoscan/app:$PYTHONPATH\"\n", + "\n", + "\n", + "\n", + "\n", "\n", "\n", "RUN groupadd -f -g $GID $UNAME\n", "RUN useradd -rm -d /home/$UNAME -s /bin/bash -g $GID -G sudo -u $UID $UNAME\n", - "RUN chown -R holoscan /var/holoscan \n", - "RUN chown -R holoscan /var/holoscan/input \n", - "RUN chown -R holoscan /var/holoscan/output \n", + "RUN chown -R holoscan /var/holoscan && \\\n", + " chown -R holoscan /var/holoscan/input && \\\n", + " chown -R holoscan /var/holoscan/output\n", "\n", "# Set the working directory\n", "WORKDIR /var/holoscan\n", @@ -1482,257 +1598,237 @@ "COPY ./tools /var/holoscan/tools\n", "RUN chmod +x /var/holoscan/tools\n", "\n", - "\n", - "# Copy gRPC health probe\n", + "# Set the working directory\n", + "WORKDIR /var/holoscan\n", "\n", "USER $UNAME\n", "\n", - "ENV PATH=/root/.local/bin:/home/holoscan/.local/bin:/opt/nvidia/holoscan:$PATH\n", + "ENV PATH=/home/${UNAME}/.local/bin:/opt/nvidia/holoscan/bin:$PATH\n", + "ENV LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/${UNAME}/.local/lib/python3.10/site-packages/holoscan/lib\n", "\n", "COPY ./pip/requirements.txt /tmp/requirements.txt\n", "\n", "RUN pip install --upgrade pip\n", "RUN pip install --no-cache-dir --user -r /tmp/requirements.txt\n", "\n", - " \n", - "# MONAI Deploy\n", "\n", - "# Copy user-specified MONAI Deploy SDK file\n", - "COPY ./monai_deploy_app_sdk-0.5.1+20.gb869749.dirty-py3-none-any.whl /tmp/monai_deploy_app_sdk-0.5.1+20.gb869749.dirty-py3-none-any.whl\n", - "RUN pip install /tmp/monai_deploy_app_sdk-0.5.1+20.gb869749.dirty-py3-none-any.whl\n", + "# Install MONAI Deploy App SDK\n", + "\n", + "# Install MONAI Deploy from PyPI org\n", + "RUN pip install monai-deploy-app-sdk==2.0.0\n", "\n", "\n", "COPY ./models /opt/holoscan/models\n", "\n", + "\n", "COPY ./map/app.json /etc/holoscan/app.json\n", "COPY ./app.config /var/holoscan/app.yaml\n", "COPY ./map/pkg.json /etc/holoscan/pkg.json\n", "\n", "COPY ./app /opt/holoscan/app\n", "\n", + "\n", "ENTRYPOINT [\"/var/holoscan/tools\"]\n", "=========== End Dockerfile ===========\n", "\n", - "[2024-04-23 16:14:46,274] [INFO] (packager.builder) - \n", + "[2025-01-16 19:01:10,294] [INFO] (packager.builder) - \n", "===============================================================================\n", "Building image for: x64-workstation\n", " Architecture: linux/amd64\n", - " Base Image: nvcr.io/nvidia/clara-holoscan/holoscan:v2.0.0-dgpu\n", + " Base Image: nvcr.io/nvidia/cuda:12.6.0-runtime-ubuntu22.04\n", " Build Image: N/A\n", " Cache: Enabled\n", " Configuration: dgpu\n", - " Holoscan SDK Package: pypi.org\n", - " MONAI Deploy App SDK Package: /home/mqin/src/monai-deploy-app-sdk/dist/monai_deploy_app_sdk-0.5.1+20.gb869749.dirty-py3-none-any.whl\n", + " Holoscan SDK Package: 2.8.0\n", + " MONAI Deploy App SDK Package: N/A\n", " gRPC Health Probe: N/A\n", - " SDK Version: 2.0.0\n", + " SDK Version: 2.8.0\n", " SDK: monai-deploy\n", " Tag: my_app-x64-workstation-dgpu-linux-amd64:1.0\n", + " Included features/dependencies: N/A\n", " \n", - "[2024-04-23 16:14:46,562] [INFO] (common) - Using existing Docker BuildKit builder `holoscan_app_builder`\n", - "[2024-04-23 16:14:46,562] [DEBUG] (packager.builder) - Building Holoscan Application Package: tag=my_app-x64-workstation-dgpu-linux-amd64:1.0\n", + "[2025-01-16 19:01:10,575] [INFO] (common) - Using existing Docker BuildKit builder `holoscan_app_builder`\n", + "[2025-01-16 19:01:10,575] [DEBUG] (packager.builder) - Building Holoscan Application Package: tag=my_app-x64-workstation-dgpu-linux-amd64:1.0\n", "#0 building with \"holoscan_app_builder\" instance using docker-container driver\n", "\n", "#1 [internal] load build definition from Dockerfile\n", - "#1 transferring dockerfile: 2.65kB done\n", - "#1 DONE 0.0s\n", + "#1 transferring dockerfile: 4.55kB done\n", + "#1 DONE 0.1s\n", "\n", - "#2 [internal] load metadata for nvcr.io/nvidia/clara-holoscan/holoscan:v2.0.0-dgpu\n", - "#2 DONE 0.4s\n", + "#2 [auth] nvidia/cuda:pull token for nvcr.io\n", + "#2 DONE 0.0s\n", "\n", - "#3 [internal] load .dockerignore\n", - "#3 transferring context: 1.79kB done\n", - "#3 DONE 0.0s\n", + "#3 [internal] load metadata for nvcr.io/nvidia/cuda:12.6.0-runtime-ubuntu22.04\n", + "#3 DONE 0.5s\n", "\n", - "#4 [internal] load build context\n", - "#4 DONE 0.0s\n", + "#4 [internal] load .dockerignore\n", + "#4 transferring context: 1.79kB done\n", + "#4 DONE 0.1s\n", "\n", - "#5 importing cache manifest from local:13557986215550987099\n", - "#5 inferred cache manifest type: application/vnd.oci.image.index.v1+json done\n", + "#5 [internal] load build context\n", "#5 DONE 0.0s\n", "\n", - "#6 [ 1/21] FROM nvcr.io/nvidia/clara-holoscan/holoscan:v2.0.0-dgpu@sha256:20adbccd2c7b12dfb1798f6953f071631c3b85cd337858a7506f8e420add6d4a\n", - "#6 resolve nvcr.io/nvidia/clara-holoscan/holoscan:v2.0.0-dgpu@sha256:20adbccd2c7b12dfb1798f6953f071631c3b85cd337858a7506f8e420add6d4a 0.0s done\n", + "#6 importing cache manifest from local:13796336242616328264\n", + "#6 inferred cache manifest type: application/vnd.oci.image.index.v1+json done\n", "#6 DONE 0.0s\n", "\n", - "#7 importing cache manifest from nvcr.io/nvidia/clara-holoscan/holoscan:v2.0.0-dgpu\n", + "#7 importing cache manifest from nvcr.io/nvidia/cuda:12.6.0-runtime-ubuntu22.04\n", "#7 inferred cache manifest type: application/vnd.docker.distribution.manifest.list.v2+json done\n", - "#7 DONE 0.4s\n", + "#7 DONE 0.3s\n", "\n", - "#4 [internal] load build context\n", - "#4 transferring context: 636.05MB 3.2s done\n", - "#4 DONE 3.2s\n", + "#8 [base 1/2] FROM nvcr.io/nvidia/cuda:12.6.0-runtime-ubuntu22.04@sha256:22fc009e5cea0b8b91d94c99fdd419d2366810b5ea835e47b8343bc15800c186\n", + "#8 resolve nvcr.io/nvidia/cuda:12.6.0-runtime-ubuntu22.04@sha256:22fc009e5cea0b8b91d94c99fdd419d2366810b5ea835e47b8343bc15800c186\n", + "#8 resolve nvcr.io/nvidia/cuda:12.6.0-runtime-ubuntu22.04@sha256:22fc009e5cea0b8b91d94c99fdd419d2366810b5ea835e47b8343bc15800c186 0.3s done\n", + "#8 DONE 0.4s\n", "\n", - "#8 [15/21] COPY ./monai_deploy_app_sdk-0.5.1+20.gb869749.dirty-py3-none-any.whl /tmp/monai_deploy_app_sdk-0.5.1+20.gb869749.dirty-py3-none-any.whl\n", - "#8 CACHED\n", + "#5 [internal] load build context\n", + "#5 transferring context: 609.10MB 4.3s\n", + "#5 transferring context: 635.92MB 4.5s done\n", + "#5 DONE 4.9s\n", "\n", - "#9 [ 6/21] RUN chown -R holoscan /var/holoscan\n", + "#9 [release 3/18] RUN groupadd -f -g 1000 holoscan\n", "#9 CACHED\n", "\n", - "#10 [ 5/21] RUN useradd -rm -d /home/holoscan -s /bin/bash -g 1000 -G sudo -u 1000 holoscan\n", + "#10 [release 11/18] RUN pip install --upgrade pip\n", "#10 CACHED\n", "\n", - "#11 [ 4/21] RUN groupadd -f -g 1000 holoscan\n", + "#11 [release 2/18] RUN apt update && apt-get install -y --no-install-recommends --no-install-suggests python3-minimal=3.10.6-1~22.04 libpython3-stdlib=3.10.6-1~22.04 python3=3.10.6-1~22.04 python3-venv=3.10.6-1~22.04 python3-pip=22.0.2+dfsg-* && rm -rf /var/lib/apt/lists/*\n", "#11 CACHED\n", "\n", - "#12 [ 3/21] RUN apt-get update && apt-get install -y curl jq && rm -rf /var/lib/apt/lists/*\n", + "#12 [base 2/2] RUN apt-get update && apt-get install -y --no-install-recommends --no-install-suggests curl jq && rm -rf /var/lib/apt/lists/*\n", "#12 CACHED\n", "\n", - "#13 [11/21] RUN chmod +x /var/holoscan/tools\n", + "#13 [release 1/18] RUN mkdir -p /etc/holoscan/ && mkdir -p /opt/holoscan/ && mkdir -p /var/holoscan && mkdir -p /opt/holoscan/app && mkdir -p /var/holoscan/input && mkdir -p /var/holoscan/output\n", "#13 CACHED\n", "\n", - "#14 [12/21] COPY ./pip/requirements.txt /tmp/requirements.txt\n", + "#14 [release 6/18] WORKDIR /var/holoscan\n", "#14 CACHED\n", "\n", - "#15 [ 7/21] RUN chown -R holoscan /var/holoscan/input\n", + "#15 [release 10/18] COPY ./pip/requirements.txt /tmp/requirements.txt\n", "#15 CACHED\n", "\n", - "#16 [14/21] RUN pip install --no-cache-dir --user -r /tmp/requirements.txt\n", + "#16 [release 5/18] RUN chown -R holoscan /var/holoscan && chown -R holoscan /var/holoscan/input && chown -R holoscan /var/holoscan/output\n", "#16 CACHED\n", "\n", - "#17 [ 8/21] RUN chown -R holoscan /var/holoscan/output\n", + "#17 [release 7/18] COPY ./tools /var/holoscan/tools\n", "#17 CACHED\n", "\n", - "#18 [ 9/21] WORKDIR /var/holoscan\n", + "#18 [release 12/18] RUN pip install --no-cache-dir --user -r /tmp/requirements.txt\n", "#18 CACHED\n", "\n", - "#19 [ 2/21] RUN mkdir -p /etc/holoscan/ && mkdir -p /opt/holoscan/ && mkdir -p /var/holoscan && mkdir -p /opt/holoscan/app && mkdir -p /var/holoscan/input && mkdir -p /var/holoscan/output\n", + "#19 [release 4/18] RUN useradd -rm -d /home/holoscan -s /bin/bash -g 1000 -G sudo -u 1000 holoscan\n", "#19 CACHED\n", "\n", - "#20 [10/21] COPY ./tools /var/holoscan/tools\n", + "#20 [release 8/18] RUN chmod +x /var/holoscan/tools\n", "#20 CACHED\n", "\n", - "#21 [13/21] RUN pip install --upgrade pip\n", + "#21 [release 9/18] WORKDIR /var/holoscan\n", "#21 CACHED\n", "\n", - "#22 [16/21] RUN pip install /tmp/monai_deploy_app_sdk-0.5.1+20.gb869749.dirty-py3-none-any.whl\n", + "#22 [release 13/18] RUN pip install monai-deploy-app-sdk==2.0.0\n", "#22 CACHED\n", "\n", - "#23 [17/21] COPY ./models /opt/holoscan/models\n", - "#23 DONE 3.9s\n", + "#23 [release 14/18] COPY ./models /opt/holoscan/models\n", + "#23 DONE 3.7s\n", "\n", - "#24 [18/21] COPY ./map/app.json /etc/holoscan/app.json\n", - "#24 DONE 0.0s\n", + "#24 [release 15/18] COPY ./map/app.json /etc/holoscan/app.json\n", + "#24 DONE 0.2s\n", "\n", - "#25 [19/21] COPY ./app.config /var/holoscan/app.yaml\n", - "#25 DONE 0.0s\n", + "#25 [release 16/18] COPY ./app.config /var/holoscan/app.yaml\n", + "#25 DONE 0.1s\n", "\n", - "#26 [20/21] COPY ./map/pkg.json /etc/holoscan/pkg.json\n", - "#26 DONE 0.0s\n", + "#26 [release 17/18] COPY ./map/pkg.json /etc/holoscan/pkg.json\n", + "#26 DONE 0.1s\n", "\n", - "#27 [21/21] COPY ./app /opt/holoscan/app\n", - "#27 DONE 0.0s\n", + "#27 [release 18/18] COPY ./app /opt/holoscan/app\n", + "#27 DONE 0.1s\n", "\n", "#28 exporting to docker image format\n", "#28 exporting layers\n", - "#28 exporting layers 17.8s done\n", - "#28 exporting manifest sha256:26808437a116257ae2799583b42bbf04923e1157f8f98341c3403ee35eb234bf 0.0s done\n", - "#28 exporting config sha256:95614919d60e7f30ab5d64a25a5fc25ad64d0b166046c60549b5abae2745be7c 0.0s done\n", + "#28 exporting layers 21.4s done\n", + "#28 exporting manifest sha256:160627d173b89b905ee42134a0bc000786ea24de749605087520765e4d8f75ad 0.0s done\n", + "#28 exporting config sha256:2cec2b8471b737b0a5cc08201001d101e3bf3c0acb122fbc66c3c407e559b849 0.0s done\n", "#28 sending tarball\n", "#28 ...\n", "\n", "#29 importing to docker\n", - "#29 loading layer ecf27683cffd 557.06kB / 584.49MB\n", - "#29 loading layer ecf27683cffd 154.86MB / 584.49MB 2.1s\n", - "#29 loading layer ecf27683cffd 309.72MB / 584.49MB 4.1s\n", - "#29 loading layer ecf27683cffd 464.03MB / 584.49MB 6.2s\n", - "#29 loading layer 3202d6efcdaa 493B / 493B\n", - "#29 loading layer 84f909517c68 311B / 311B\n", - "#29 loading layer 1d1958b729ff 323B / 323B\n", - "#29 loading layer 8f69ecd226c9 4.00kB / 4.00kB\n", - "#29 loading layer 3202d6efcdaa 493B / 493B 2.6s done\n", - "#29 loading layer ecf27683cffd 464.03MB / 584.49MB 10.6s done\n", - "#29 loading layer 84f909517c68 311B / 311B 2.2s done\n", - "#29 loading layer 1d1958b729ff 323B / 323B 1.8s done\n", - "#29 loading layer 8f69ecd226c9 4.00kB / 4.00kB 1.5s done\n", - "#29 DONE 10.6s\n", + "#29 loading layer 883c651eec94 288B / 288B\n", + "#29 loading layer 882e8f4cf156 65.54kB / 5.03MB\n", + "#29 loading layer 9f353f6d59ee 557.06kB / 3.28GB\n", + "#29 loading layer 9f353f6d59ee 172.13MB / 3.28GB 6.3s\n", + "#29 loading layer 9f353f6d59ee 450.66MB / 3.28GB 12.5s\n", + "#29 loading layer 9f353f6d59ee 705.79MB / 3.28GB 16.6s\n", + "#29 loading layer 9f353f6d59ee 1.00GB / 3.28GB 20.7s\n", + "#29 loading layer 9f353f6d59ee 1.27GB / 3.28GB 24.8s\n", + "#29 loading layer 9f353f6d59ee 1.58GB / 3.28GB 28.9s\n", + "#29 loading layer 9f353f6d59ee 1.87GB / 3.28GB 33.0s\n", + "#29 loading layer 9f353f6d59ee 2.05GB / 3.28GB 35.1s\n", + "#29 loading layer 9f353f6d59ee 2.16GB / 3.28GB 41.4s\n", + "#29 loading layer 9f353f6d59ee 2.34GB / 3.28GB 45.5s\n", + "#29 loading layer 9f353f6d59ee 2.60GB / 3.28GB 51.7s\n", + "#29 loading layer 9f353f6d59ee 2.87GB / 3.28GB 55.8s\n", + "#29 loading layer 9f353f6d59ee 3.07GB / 3.28GB 59.9s\n", + "#29 loading layer ca1fe5d06ea9 32.77kB / 579.10kB\n", + "#29 loading layer 5b004da2b414 557.06kB / 584.49MB\n", + "#29 loading layer 5b004da2b414 209.45MB / 584.49MB 2.1s\n", + "#29 loading layer 5b004da2b414 422.25MB / 584.49MB 4.2s\n", + "#29 loading layer fef80c23fbdb 491B / 491B\n", + "#29 loading layer c137f7238509 314B / 314B\n", + "#29 loading layer a4ec9d927738 327B / 327B\n", + "#29 loading layer 30d486f32260 4.04kB / 4.04kB\n", + "#29 loading layer c137f7238509 314B / 314B 0.7s done\n", + "#29 loading layer 883c651eec94 288B / 288B 73.6s done\n", + "#29 loading layer 882e8f4cf156 65.54kB / 5.03MB 73.5s done\n", + "#29 loading layer 9f353f6d59ee 3.21GB / 3.28GB 73.0s done\n", + "#29 loading layer ca1fe5d06ea9 32.77kB / 579.10kB 7.2s done\n", + "#29 loading layer 5b004da2b414 422.25MB / 584.49MB 6.6s done\n", + "#29 loading layer fef80c23fbdb 491B / 491B 0.8s done\n", + "#29 loading layer a4ec9d927738 327B / 327B 0.7s done\n", + "#29 loading layer 30d486f32260 4.04kB / 4.04kB 0.6s done\n", + "#29 DONE 73.6s\n", "\n", "#28 exporting to docker image format\n", - "#28 sending tarball 72.8s done\n", - "#28 DONE 90.7s\n", + "#28 sending tarball 126.9s done\n", + "#28 DONE 148.4s\n", "\n", "#30 exporting cache to client directory\n", "#30 preparing build cache for export\n", - "#30 writing layer sha256:014cff740c9ec6e9a30d0b859219a700ae880eb385d62095d348f5ea136d6015\n", - "#30 writing layer sha256:014cff740c9ec6e9a30d0b859219a700ae880eb385d62095d348f5ea136d6015 done\n", - "#30 writing layer sha256:0487800842442c7a031a39e1e1857bc6dae4b4f7e5daf3d625f7a8a4833fb364 done\n", - "#30 writing layer sha256:06c6aee94862daf0603783db4e1de6f8524b30ac9fbe0374ab3f1d85b2f76f7f done\n", - "#30 writing layer sha256:0a1756432df4a4350712d8ae5c003f1526bd2180800b3ae6301cfc9ccf370254 done\n", - "#30 writing layer sha256:0a77dcbd0e648ddc4f8e5230ade8fdb781d99e24fa4f13ca96a360c7f7e6751f done\n", - "#30 writing layer sha256:0cbe3b20b9b7d01bcb9770de54ba9a54febb401dc371bbb1d8debf1f9850b356 0.0s done\n", - "#30 writing layer sha256:0ec682bf99715a9f88631226f3749e2271b8b9f254528ef61f65ed829984821c done\n", - "#30 writing layer sha256:1c5c3aa9c2c8bfd1b9eb36248f5b6d67b3db73ef43440f9dd897615771974b39 done\n", - "#30 writing layer sha256:1f4a978bb76db2d138cfe7c7c9e76db4096247b06e34d349a2ed504bcd6a7ead done\n", - "#30 writing layer sha256:1f73278b7f17492ce1a8b28b139d54596961596d6790dc20046fa6d5909f3e9c done\n", - "#30 writing layer sha256:20d331454f5fb557f2692dfbdbe092c718fd2cb55d5db9d661b62228dacca5c2 done\n", - "#30 writing layer sha256:20e14f0a8ca68167afb8296c10d7a1b4c3b17b54681cbf3b9b45e1be96afa699 done\n", - "#30 writing layer sha256:238f69a43816e481f0295995fcf5fe74d59facf0f9f99734c8d0a2fb140630e0 done\n", - "#30 writing layer sha256:255cc51d2e47738a5db3059cbe9f403785cf9496c7df8a28a3c9f0c46a0b3b58 done\n", - "#30 writing layer sha256:29eb21ed7ba7894cd28ee75b082877845b969c6e65d34a16b7dbd8630c38f5fe\n", - "#30 writing layer sha256:29eb21ed7ba7894cd28ee75b082877845b969c6e65d34a16b7dbd8630c38f5fe 10.2s done\n", - "#30 writing layer sha256:2ad84487f9d4d31cd1e0a92697a5447dd241935253d036b272ef16d31620c1e7\n", - "#30 writing layer sha256:2ad84487f9d4d31cd1e0a92697a5447dd241935253d036b272ef16d31620c1e7 done\n", - "#30 writing layer sha256:2f65750928993b5b31fe572d9e085b53853c5a344feeb0e8615898e285a8c256 done\n", - "#30 writing layer sha256:3777c6498f08c0400339c243e827d465075b7296eb2526e38d9b01c84f8764d8 done\n", - "#30 writing layer sha256:3e3e04011ebdba380ab129f0ee390626cb2a600623815ca756340c18bedb9517 done\n", - "#30 writing layer sha256:42619ce4a0c9e54cfd0ee41a8e5f27d58b3f51becabd1ac6de725fbe6c42b14a done\n", - "#30 writing layer sha256:49bdc9abf8a437ccff67cc11490ba52c976577992909856a86be872a34d3b950 done\n", - "#30 writing layer sha256:4b691ba9f48b41eaa0c754feba8366f1c030464fcbc55eeffa6c86675990933a done\n", - "#30 writing layer sha256:4d04a8db404f16c2704fa10739cb6745a0187713a21a6ef0deb34b48629b54c1 done\n", + "#30 writing layer sha256:081bfe8f8e11e818382810bb80503f619230a484153219082adae168fbf8396c\n", + "#30 writing layer sha256:081bfe8f8e11e818382810bb80503f619230a484153219082adae168fbf8396c done\n", + "#30 writing layer sha256:1a0d52c93099897b518eb6cc6cd0fa3d52ff733e8606b4d8c92675ba9e7101ff done\n", + "#30 writing layer sha256:2168eca868b33ee70924a8965c5274a65760dc417df35352561a4df9541dbf27 0.0s done\n", + "#30 writing layer sha256:234b866f57e0c5d555af2d87a1857a17ec4ac7e70d2dc6c31ff0a072a4607f24 done\n", + "#30 writing layer sha256:255905badeaa82f032e1043580eed8b745c19cd4a2cb7183883ee5a30f851d6d done\n", + "#30 writing layer sha256:3713021b02770a720dea9b54c03d0ed83e03a2ef5dce2898c56a327fee9a8bca done\n", + "#30 writing layer sha256:3a80776cdc9c9ef79bb38510849c9160f82462d346bf5a8bf29c811391b4e763 done\n", + "#30 writing layer sha256:3ff1ad619531728d61adb57d27b79c10fa17f13b6a0693730bdf1d1e6d2eb2b0 0.0s done\n", + "#30 writing layer sha256:41e173df84c503c9e717e0e67c22260d4e6bb14660577b225dec5733b4155a78 done\n", + "#30 writing layer sha256:45a11df8fc21851a3008fe386358f1172c0c589095845f174d42bb86db2f1c49 done\n", + "#30 writing layer sha256:46c9c54348df10b0d7700bf932d5de7dc5bf9ab91e685db7086e29e381ff8e12 done\n", "#30 writing layer sha256:4f4fb700ef54461cfa02571ae0db9a0dc1e0cdb5577484a6d75e68dc38e8acc1 done\n", - "#30 writing layer sha256:542bc8c8d18fbc95e6794122c3593a4a693f8ab6dda4460406f4d7b1ae64a2bc done\n", - "#30 writing layer sha256:57f244836ad318f9bbb3b29856ae1a5b31038bfbb9b43d2466d51c199eb55041 done\n", - "#30 writing layer sha256:5b5b131e0f20db4cb8e568b623a95f8fc16ed1c6b322a9366df70b59a881f24f done\n", - "#30 writing layer sha256:5b90d17b5048adcadefd0b1e4dba9a99247a8827a887e1ca042df375c85b518d done\n", - "#30 writing layer sha256:62452179df7c18e292f141d4aec29e6aba9ff8270c893731169fc6f41dc07631 done\n", - "#30 writing layer sha256:6630c387f5f2115bca2e646fd0c2f64e1f3d5431c2e050abe607633883eda230 done\n", - "#30 writing layer sha256:6661e0146e77a8bcb03edbfda95bf7780c8bb4c4f98bc03a398c88f4b2403d12 done\n", - "#30 writing layer sha256:717ebf8c9c66ae393ad01e50dbac4413d7b026b9c97d4d348b22ad17052a1a35 done\n", - "#30 writing layer sha256:773c6815e5e7d6855a62f8c5e2fabce3d939ded36c5420f15b54dd7908cdbcfa done\n", - "#30 writing layer sha256:7852b73ea931e3a8d3287ee7ef3cf4bad068e44f046583bfc2b81336fb299284 done\n", - "#30 writing layer sha256:7f8ec130348bcdac81c295e37fe82b4a6e5e9a3ca980a6343809c561020d82d7 done\n", - "#30 writing layer sha256:80885adcad6b5d021bb9f68b6c952018085bb4ce72011bdc0cf7fe8178b5960b done\n", - "#30 writing layer sha256:82a3436133b2b17bb407c7fe488932aa0ca55411f23ab55c34a6134b287c6a27 done\n", - "#30 writing layer sha256:8371d15eb4d69b1d98174dd098b8ddd5c4f19ec6f8d8b67e72dfa9891dc454b4 done\n", - "#30 writing layer sha256:85713f9b166b5add777c524ee807f6265d88b967cbeb9f961d6b09bf220c9a65 done\n", - "#30 writing layer sha256:8fe00505006a09966e763918147ef6ed55bb6695b26e4940c780ee430dc5da8e done\n", - "#30 writing layer sha256:90eae6faa5cc5ba62f12c25915cdfb1a7a51abfba0d05cb5818c3f908f4e345f done\n", - "#30 writing layer sha256:9205d97d9d3e906698bcc6c42d45727c2fa6ec2622abf953d46778c3b8c78edc done\n", - "#30 writing layer sha256:92301d1270c19cab329818fb215b41138720ab9b588a2070107860f0b6fb5e11 done\n", - "#30 writing layer sha256:993369dbcc13162a6654d2a3e990b8d8b5f37963564d25710e12764337261ae3 done\n", - "#30 writing layer sha256:99e42a4adebadb39bf55bf94bbd9fb8034230ee19b6b0a42e6ff96f2e7794f30 done\n", - "#30 writing layer sha256:9ac855545fa90ed2bf3b388fdff9ef06ac9427b0c0fca07c9e59161983d8827e done\n", - "#30 writing layer sha256:9d19ee268e0d7bcf6716e6658ee1b0384a71d6f2f9aa1ae2085610cf7c7b316f done\n", - "#30 writing layer sha256:9fafbd4203c4fefe007a462e0d2cd4c1c7c41db2cfdc58d212279e1b9b4b230c done\n", - "#30 writing layer sha256:a1748eee9d376f97bd19225ba61dfada9986f063f4fc429e435f157abb629fc6 done\n", - "#30 writing layer sha256:a251fe5ae6c6d2d5034e4ca88b5dfe5d4827ff90b18e9b143a073232a32bb18d done\n", - "#30 writing layer sha256:a68f4e0ec09ec3b78cb4cf8e4511d658e34e7b6f676d7806ad9703194ff17604 done\n", - "#30 writing layer sha256:a8e4decc8f7289623b8fd7b9ba1ca555b5a755ebdbf81328d68209f148d9e602 done\n", - "#30 writing layer sha256:ac69ec878bf5e3f9294e9726cd393e4133a5ea3934256636de00ddc558f25e55 0.0s done\n", - "#30 writing layer sha256:afde1c269453ce68a0f2b54c1ba8c5ecddeb18a19e5618a4acdef1f0fe3921af done\n", - "#30 writing layer sha256:b12b2b11632995c7c56700227a9c2f2016dab20c083c140a835c551bb2aed460 0.0s done\n", - "#30 writing layer sha256:b406feb20a37b8c87ef4f5ef814039e3adc90473d50c366b7d9bb6ded4e94a2e\n", - "#30 preparing build cache for export 11.6s done\n", - "#30 writing layer sha256:b406feb20a37b8c87ef4f5ef814039e3adc90473d50c366b7d9bb6ded4e94a2e done\n", - "#30 writing layer sha256:b48a5fafcaba74eb5d7e7665601509e2889285b50a04b5b639a23f8adc818157 done\n", - "#30 writing layer sha256:ba9f7c75e4dd7942b944679995365aab766d3677da2e69e1d74472f471a484dd done\n", - "#30 writing layer sha256:bdc13166216ae226fa6976f9ce91f4f259d43972f1e0a9b723e436919534b2f4 done\n", - "#30 writing layer sha256:c815f0be64eded102822d81e029bd23b0d8d9a0fbfeb492ec0b4b0bc4ee777bf done\n", - "#30 writing layer sha256:c97f7fb19e2e0b8ee3e1065f4dee369e35029cc620cafb7fe3dec2e9e06a3ae0 done\n", - "#30 writing layer sha256:c98533d2908f36a5e9b52faae83809b3b6865b50e90e2817308acfc64cd3655f done\n", - "#30 writing layer sha256:d7da5c5e9a40c476c4b3188a845e3276dedfd752e015ea5113df5af64d4d43f7 done\n", - "#30 writing layer sha256:db20521a869adda8244cb64b783c65e1a911efaae0e73ae00e4a34ea6213d6ce done\n", - "#30 writing layer sha256:df4fd0ac710d7af949afbc6d25b5b4daf3f0596dabf3dec36fa7ca8fa6e1d049 done\n", - "#30 writing layer sha256:e291ddecfbe16b95ee9e90b5e90b1a3d0cfd53dc5e720d6b0f3d28e4a47cf5ac done\n", - "#30 writing layer sha256:e8acb678f16bc0c369d5cf9c184f2d3a1c773986816526e5e3e9c0354f7e757f done\n", - "#30 writing layer sha256:e9225f7ab6606813ec9acba98a064826ebfd6713a9645a58cd068538af1ecddb done\n", - "#30 writing layer sha256:e9808a628d8776e25114053fec83adbf9c6dd084ac0c275042fa8b89db830da5 0.0s done\n", - "#30 writing layer sha256:f249faf9663a96b0911a903f8803b11a553c59b698013fb8343492fefdaaea90 done\n", - "#30 writing layer sha256:f608e2fbff86e98627b7e462057e7d2416522096d73fe4664b82fe6ce8a4047d done\n", - "#30 writing layer sha256:f65d191416580d6c38e3d95eee12377b75a4df548be1492618ce2a8c3c41b99e done\n", - "#30 writing config sha256:bad5d754263c9813832b5d1594a04b9c78a10052ec0a59ade6ee42de1baadb19 0.0s done\n", - "#30 writing cache manifest sha256:62a85925ced740e444a8f19b3c59ade29144854a44168d8786e00e93dbad2f5f 0.0s done\n", - "#30 DONE 11.6s\n", - "[2024-04-23 16:16:38,598] [INFO] (packager) - Build Summary:\n", + "#30 writing layer sha256:56e572a086410ad7549df560616c07004a546b5d93600169fc21e40cd8a6a079 0.0s done\n", + "#30 writing layer sha256:67b3546b211deefd67122e680c0932886e0b3c6bd6ae0665e3ab25d2d9f0cda0 done\n", + "#30 writing layer sha256:89c3a6b85acef5455878126c639a22ed2e674198db08407234d146947e76f697 0.0s done\n", + "#30 writing layer sha256:94ea8fe9174939142272c5d49e179ba19f357ea997b5d4f3900d1fb7d4fe6707\n", + "#30 writing layer sha256:94ea8fe9174939142272c5d49e179ba19f357ea997b5d4f3900d1fb7d4fe6707 done\n", + "#30 writing layer sha256:980c13e156f90218b216bc6b0430472bbda71c0202804d350c0e16ef02075885 done\n", + "#30 writing layer sha256:a283c6a8d28511cd9103e071819da40cf00de2cb23de8d683fce476237e7a1f6\n", + "#30 writing layer sha256:a283c6a8d28511cd9103e071819da40cf00de2cb23de8d683fce476237e7a1f6 9.0s done\n", + "#30 writing layer sha256:ac52600be001236a2c291a4c5902c915bf5ec9d2441c06d2a54c587b76345847\n", + "#30 preparing build cache for export 9.4s done\n", + "#30 writing layer sha256:ac52600be001236a2c291a4c5902c915bf5ec9d2441c06d2a54c587b76345847 done\n", + "#30 writing layer sha256:bc25d810fc1fd99656c1b07d422e88cdb896508730175bc3ec187b79f3787044 done\n", + "#30 writing layer sha256:bfa5ec525f430f0d201578b006cd216f9bb89f61b91e96b5c2111bb04e7569e4 done\n", + "#30 writing layer sha256:c0e9112106766f6d918279426468ca3a81ddca90d82a7e3e41ed3d96b0464a94 done\n", + "#30 writing layer sha256:c8937b741c9ecd6b257aeb18daf07eddbf1c77b0c93f9ba4164faa8353cd1d3c done\n", + "#30 writing layer sha256:d339273dfb7fc3b7fd896d3610d360ab9a09ab33a818093cb73b4be7639b6e99 done\n", + "#30 writing layer sha256:e540d242f419a27800d601d7275f4fbb3488b97d209b454f52e63f1eb413a912 done\n", + "#30 writing layer sha256:edd12bb5b9c08c2e288fc295bf1f84feac12beac66caaa8a19956942eb729aef done\n", + "#30 writing layer sha256:efc9014e2a4cb1e133b80bb4f047e9141e98685eb95b8d2471a8e35b86643e31 done\n", + "#30 writing config sha256:ed69d9ef8eead28b494b1bed44df31c14eac706dab4d5670f81208f0b83550da 0.0s done\n", + "#30 writing cache manifest sha256:d1d2295a784c6dc449ae891839a3fb1d8606f4bc80fe5c05ecaca2454c9ed5df 0.0s done\n", + "#30 DONE 9.4s\n", + "[2025-01-16 19:03:59,507] [INFO] (packager) - Build Summary:\n", "\n", "Platform: x64-workstation/dgpu\n", " Status: Succeeded\n", @@ -1763,7 +1859,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "my_app-x64-workstation-dgpu-linux-amd64 1.0 95614919d60e About a minute ago 18.3GB\n" + "my_app-x64-workstation-dgpu-linux-amd64 1.0 2cec2b8471b7 2 minutes ago 9.07GB\n" ] } ], @@ -1821,7 +1917,7 @@ " },\n", " \"readiness\": null,\n", " \"sdk\": \"monai-deploy\",\n", - " \"sdkVersion\": \"0.5.1\",\n", + " \"sdkVersion\": \"2.0.0\",\n", " \"timeout\": 0,\n", " \"version\": 1,\n", " \"workingDirectory\": \"/var/holoscan\"\n", @@ -1846,16 +1942,16 @@ " \"platformConfig\": \"dgpu\"\n", "}\n", "\n", - "2024-04-23 23:16:41 [INFO] Copying application from /opt/holoscan/app to /var/run/holoscan/export/app\n", + "2025-01-17 03:04:04 [INFO] Copying application from /opt/holoscan/app to /var/run/holoscan/export/app\n", "\n", - "2024-04-23 23:16:41 [INFO] Copying application manifest file from /etc/holoscan/app.json to /var/run/holoscan/export/config/app.json\n", - "2024-04-23 23:16:41 [INFO] Copying pkg manifest file from /etc/holoscan/pkg.json to /var/run/holoscan/export/config/pkg.json\n", - "2024-04-23 23:16:41 [INFO] Copying application configuration from /var/holoscan/app.yaml to /var/run/holoscan/export/config/app.yaml\n", + "2025-01-17 03:04:04 [INFO] Copying application manifest file from /etc/holoscan/app.json to /var/run/holoscan/export/config/app.json\n", + "2025-01-17 03:04:04 [INFO] Copying pkg manifest file from /etc/holoscan/pkg.json to /var/run/holoscan/export/config/pkg.json\n", + "2025-01-17 03:04:04 [INFO] Copying application configuration from /var/holoscan/app.yaml to /var/run/holoscan/export/config/app.yaml\n", "\n", - "2024-04-23 23:16:41 [INFO] Copying models from /opt/holoscan/models to /var/run/holoscan/export/models\n", + "2025-01-17 03:04:04 [INFO] Copying models from /opt/holoscan/models to /var/run/holoscan/export/models\n", "\n", - "2024-04-23 23:16:42 [INFO] Copying documentation from /opt/holoscan/docs/ to /var/run/holoscan/export/docs\n", - "2024-04-23 23:16:42 [INFO] '/opt/holoscan/docs/' cannot be found.\n", + "2025-01-17 03:04:05 [INFO] Copying documentation from /opt/holoscan/docs/ to /var/run/holoscan/export/docs\n", + "2025-01-17 03:04:05 [INFO] '/opt/holoscan/docs/' cannot be found.\n", "\n", "app config models\n" ] @@ -1887,22 +1983,22 @@ "name": "stdout", "output_type": "stream", "text": [ - "[2024-04-23 16:16:45,664] [INFO] (runner) - Checking dependencies...\n", - "[2024-04-23 16:16:45,664] [INFO] (runner) - --> Verifying if \"docker\" is installed...\n", + "[2025-01-16 19:04:08,393] [INFO] (runner) - Checking dependencies...\n", + "[2025-01-16 19:04:08,393] [INFO] (runner) - --> Verifying if \"docker\" is installed...\n", "\n", - "[2024-04-23 16:16:45,664] [INFO] (runner) - --> Verifying if \"docker-buildx\" is installed...\n", + "[2025-01-16 19:04:08,393] [INFO] (runner) - --> Verifying if \"docker-buildx\" is installed...\n", "\n", - "[2024-04-23 16:16:45,664] [INFO] (runner) - --> Verifying if \"my_app-x64-workstation-dgpu-linux-amd64:1.0\" is available...\n", + "[2025-01-16 19:04:08,393] [INFO] (runner) - --> Verifying if \"my_app-x64-workstation-dgpu-linux-amd64:1.0\" is available...\n", "\n", - "[2024-04-23 16:16:45,739] [INFO] (runner) - Reading HAP/MAP manifest...\n", - "\u001b[sPreparing to copy...\u001b[?25l\u001b[u\u001b[2KCopying from container - 0B\u001b[?25h\u001b[u\u001b[2KSuccessfully copied 2.56kB to /tmp/tmpymoiz9gd/app.json\n", - "\u001b[sPreparing to copy...\u001b[?25l\u001b[u\u001b[2KCopying from container - 0B\u001b[?25h\u001b[u\u001b[2KSuccessfully copied 2.05kB to /tmp/tmpymoiz9gd/pkg.json\n", - "[2024-04-23 16:16:46,001] [INFO] (runner) - --> Verifying if \"nvidia-ctk\" is installed...\n", + "[2025-01-16 19:04:08,457] [INFO] (runner) - Reading HAP/MAP manifest...\n", + "Successfully copied 2.56kB to /tmp/tmptukd3uti/app.json\n", + "Successfully copied 2.05kB to /tmp/tmptukd3uti/pkg.json\n", + "[2025-01-16 19:04:08,663] [INFO] (runner) - --> Verifying if \"nvidia-ctk\" is installed...\n", "\n", - "[2024-04-23 16:16:46,002] [INFO] (runner) - --> Verifying \"nvidia-ctk\" version...\n", + "[2025-01-16 19:04:08,664] [INFO] (runner) - --> Verifying \"nvidia-ctk\" version...\n", "\n", - "[2024-04-23 16:16:46,316] [INFO] (common) - Launching container (42b411558fd7) using image 'my_app-x64-workstation-dgpu-linux-amd64:1.0'...\n", - " container name: silly_davinci\n", + "[2025-01-16 19:04:09,099] [INFO] (common) - Launching container (6555f263537b) using image 'my_app-x64-workstation-dgpu-linux-amd64:1.0'...\n", + " container name: amazing_galois\n", " host name: mingq-dt\n", " network: host\n", " user: 1000:1000\n", @@ -1912,115 +2008,119 @@ " shared memory size: 67108864\n", " devices: \n", " group_add: 44\n", - "2024-04-23 23:16:46 [INFO] Launching application python3 /opt/holoscan/app ...\n", + "2025-01-17 03:04:09 [INFO] Launching application python3 /opt/holoscan/app ...\n", "\n", - "[2024-04-23 23:16:50,090] [INFO] (root) - Parsed args: Namespace(log_level=None, input=None, output=None, model=None, workdir=None, argv=['/opt/holoscan/app'])\n", + "[info] [fragment.cpp:585] Loading extensions from configs...\n", "\n", - "[2024-04-23 23:16:50,095] [INFO] (root) - AppContext object: AppContext(input_path=/var/holoscan/input, output_path=/var/holoscan/output, model_path=/opt/holoscan/models, workdir=/var/holoscan)\n", + "[info] [gxf_executor.cpp:255] Creating context\n", "\n", - "[2024-04-23 23:16:50,097] [INFO] (root) - End compose\n", + "[2025-01-17 03:04:13,133] [INFO] (root) - Parsed args: Namespace(log_level=None, input=None, output=None, model=None, workdir=None, argv=['/opt/holoscan/app'])\n", "\n", - "[info] [app_driver.cpp:1161] Launching the driver/health checking service\n", + "[2025-01-17 03:04:13,145] [INFO] (root) - AppContext object: AppContext(input_path=/var/holoscan/input, output_path=/var/holoscan/output, model_path=/opt/holoscan/models, workdir=/var/holoscan)\n", "\n", - "[info] [gxf_executor.cpp:247] Creating context\n", + "[2025-01-17 03:04:13,149] [INFO] (root) - End compose\n", "\n", - "[info] [server.cpp:87] Health checking server listening on 0.0.0.0:8777\n", + "[info] [app_driver.cpp:1176] Launching the driver/health checking service\n", "\n", - "[info] [gxf_executor.cpp:1672] Loading extensions from configs...\n", + "[info] [gxf_executor.cpp:1973] Activating Graph...\n", "\n", - "[info] [gxf_executor.cpp:1842] Activating Graph...\n", + "[info] [gxf_executor.cpp:2003] Running Graph...\n", "\n", - "[info] [gxf_executor.cpp:1874] Running Graph...\n", + "[info] [gxf_executor.cpp:2005] Waiting for completion...\n", "\n", - "[info] [gxf_executor.cpp:1876] Waiting for completion...\n", + "[info] [greedy_scheduler.cpp:191] Scheduling 7 entities\n", "\n", - "\u001b[0m2024-04-23 23:16:50.129 INFO gxf/std/greedy_scheduler.cpp@191: Scheduling 9 entities\u001b[0m\n", + "[info] [server.cpp:87] Health checking server listening on 0.0.0.0:8777\n", "\n", - "[2024-04-23 23:16:50,131] [INFO] (monai.deploy.operators.dicom_data_loader_operator.DICOMDataLoaderOperator) - No or invalid input path from the optional input port: None\n", + "[2025-01-17 03:04:13,156] [INFO] (monai.deploy.operators.dicom_data_loader_operator.DICOMDataLoaderOperator) - No or invalid input path from the optional input port: None\n", "\n", - "[2024-04-23 23:16:50,512] [INFO] (root) - Finding series for Selection named: CT Series\n", + "[2025-01-17 03:04:14,111] [INFO] (root) - Finding series for Selection named: CT Series\n", "\n", - "[2024-04-23 23:16:50,512] [INFO] (root) - Searching study, : 1.3.6.1.4.1.14519.5.2.1.7085.2626.822645453932810382886582736291\n", + "[2025-01-17 03:04:14,111] [INFO] (root) - Searching study, : 1.3.6.1.4.1.14519.5.2.1.7085.2626.822645453932810382886582736291\n", "\n", " # of series: 1\n", "\n", - "[2024-04-23 23:16:50,512] [INFO] (root) - Working on series, instance UID: 1.3.6.1.4.1.14519.5.2.1.7085.2626.119403521930927333027265674239\n", - "\n", - "[2024-04-23 23:16:50,512] [INFO] (root) - On attribute: 'StudyDescription' to match value: '(.*?)'\n", + "[2025-01-17 03:04:14,111] [INFO] (root) - Working on series, instance UID: 1.3.6.1.4.1.14519.5.2.1.7085.2626.119403521930927333027265674239\n", "\n", - "[2024-04-23 23:16:50,512] [INFO] (root) - Series attribute StudyDescription value: CT ABDOMEN W IV CONTRAST\n", + "[2025-01-17 03:04:14,111] [INFO] (root) - On attribute: 'StudyDescription' to match value: '(.*?)'\n", "\n", - "[2024-04-23 23:16:50,512] [INFO] (root) - Series attribute string value did not match. Try regEx.\n", + "[2025-01-17 03:04:14,111] [INFO] (root) - Series attribute StudyDescription value: CT ABDOMEN W IV CONTRAST\n", "\n", - "[2024-04-23 23:16:50,512] [INFO] (root) - On attribute: 'Modality' to match value: '(?i)CT'\n", + "[2025-01-17 03:04:14,111] [INFO] (root) - Series attribute string value did not match. Try regEx.\n", "\n", - "[2024-04-23 23:16:50,512] [INFO] (root) - Series attribute Modality value: CT\n", + "[2025-01-17 03:04:14,112] [INFO] (root) - On attribute: 'Modality' to match value: '(?i)CT'\n", "\n", - "[2024-04-23 23:16:50,512] [INFO] (root) - Series attribute string value did not match. Try regEx.\n", + "[2025-01-17 03:04:14,112] [INFO] (root) - Series attribute Modality value: CT\n", "\n", - "[2024-04-23 23:16:50,513] [INFO] (root) - On attribute: 'SeriesDescription' to match value: '(.*?)'\n", + "[2025-01-17 03:04:14,112] [INFO] (root) - Series attribute string value did not match. Try regEx.\n", "\n", - "[2024-04-23 23:16:50,513] [INFO] (root) - Series attribute SeriesDescription value: ABD/PANC 3.0 B31f\n", + "[2025-01-17 03:04:14,112] [INFO] (root) - On attribute: 'SeriesDescription' to match value: '(.*?)'\n", "\n", - "[2024-04-23 23:16:50,513] [INFO] (root) - Series attribute string value did not match. Try regEx.\n", + "[2025-01-17 03:04:14,112] [INFO] (root) - Series attribute SeriesDescription value: ABD/PANC 3.0 B31f\n", "\n", - "[2024-04-23 23:16:50,513] [INFO] (root) - Selected Series, UID: 1.3.6.1.4.1.14519.5.2.1.7085.2626.119403521930927333027265674239\n", + "[2025-01-17 03:04:14,112] [INFO] (root) - Series attribute string value did not match. Try regEx.\n", "\n", - "[2024-04-23 23:16:50,745] [INFO] (root) - Parsing from bundle_path: /opt/holoscan/models/pancreas_ct_dints/model.ts\n", + "[2025-01-17 03:04:14,112] [INFO] (root) - Selected Series, UID: 1.3.6.1.4.1.14519.5.2.1.7085.2626.119403521930927333027265674239\n", "\n", - "[2024-04-23 23:18:36,681] [INFO] (root) - Parsing from bundle_path: /opt/holoscan/models/spleen_ct/model.ts\n", + "[2025-01-17 03:04:14,400] [INFO] (root) - Parsing from bundle_path: /opt/holoscan/models/pancreas_ct_dints/model.ts\n", "\n", - "/home/holoscan/.local/lib/python3.10/site-packages/highdicom/valuerep.py:54: UserWarning: The string \"C3N-00198\" is unlikely to represent the intended person name since it contains only a single component. Construct a person name according to the format in described in https://dicom.nema.org/dicom/2013/output/chtml/part05/sect_6.2.html#sect_6.2.1.2, or, in pydicom 2.2.0 or later, use the pydicom.valuerep.PersonName.from_named_components() method to construct the person name correctly. If a single-component name is really intended, add a trailing caret character to disambiguate the name.\n", + "/home/holoscan/.local/lib/python3.10/site-packages/monai/bundle/reference_resolver.py:216: UserWarning: Detected deprecated name 'optional_packages_version' in configuration file, replacing with 'required_packages_version'.\n", "\n", " warnings.warn(\n", "\n", - "[2024-04-23 23:18:40,078] [INFO] (highdicom.base) - copy Image-related attributes from dataset \"1.3.6.1.4.1.14519.5.2.1.7085.2626.936983343951485811186213470191\"\n", + "[2025-01-17 03:04:50,442] [INFO] (root) - Parsing from bundle_path: /opt/holoscan/models/spleen_ct/model.ts\n", + "\n", + "/home/holoscan/.local/lib/python3.10/site-packages/highdicom/base.py:163: UserWarning: The string \"C3N-00198\" is unlikely to represent the intended person name since it contains only a single component. Construct a person name according to the format in described in https://dicom.nema.org/dicom/2013/output/chtml/part05/sect_6.2.html#sect_6.2.1.2, or, in pydicom 2.2.0 or later, use the pydicom.valuerep.PersonName.from_named_components() method to construct the person name correctly. If a single-component name is really intended, add a trailing caret character to disambiguate the name.\n", "\n", - "[2024-04-23 23:18:40,078] [INFO] (highdicom.base) - copy attributes of module \"Specimen\"\n", + " check_person_name(patient_name)\n", "\n", - "[2024-04-23 23:18:40,078] [INFO] (highdicom.base) - copy Patient-related attributes from dataset \"1.3.6.1.4.1.14519.5.2.1.7085.2626.936983343951485811186213470191\"\n", + "[2025-01-17 03:04:54,361] [INFO] (highdicom.base) - copy Image-related attributes from dataset \"1.3.6.1.4.1.14519.5.2.1.7085.2626.936983343951485811186213470191\"\n", "\n", - "[2024-04-23 23:18:40,078] [INFO] (highdicom.base) - copy attributes of module \"Patient\"\n", + "[2025-01-17 03:04:54,361] [INFO] (highdicom.base) - copy attributes of module \"Specimen\"\n", "\n", - "[2024-04-23 23:18:40,078] [INFO] (highdicom.base) - copy attributes of module \"Clinical Trial Subject\"\n", + "[2025-01-17 03:04:54,361] [INFO] (highdicom.base) - copy Patient-related attributes from dataset \"1.3.6.1.4.1.14519.5.2.1.7085.2626.936983343951485811186213470191\"\n", "\n", - "[2024-04-23 23:18:40,079] [INFO] (highdicom.base) - copy Study-related attributes from dataset \"1.3.6.1.4.1.14519.5.2.1.7085.2626.936983343951485811186213470191\"\n", + "[2025-01-17 03:04:54,361] [INFO] (highdicom.base) - copy attributes of module \"Patient\"\n", "\n", - "[2024-04-23 23:18:40,079] [INFO] (highdicom.base) - copy attributes of module \"General Study\"\n", + "[2025-01-17 03:04:54,362] [INFO] (highdicom.base) - copy attributes of module \"Clinical Trial Subject\"\n", "\n", - "[2024-04-23 23:18:40,079] [INFO] (highdicom.base) - copy attributes of module \"Patient Study\"\n", + "[2025-01-17 03:04:54,362] [INFO] (highdicom.base) - copy Study-related attributes from dataset \"1.3.6.1.4.1.14519.5.2.1.7085.2626.936983343951485811186213470191\"\n", "\n", - "[2024-04-23 23:18:40,079] [INFO] (highdicom.base) - copy attributes of module \"Clinical Trial Study\"\n", + "[2025-01-17 03:04:54,362] [INFO] (highdicom.base) - copy attributes of module \"General Study\"\n", "\n", - "[2024-04-23 23:18:41,286] [INFO] (highdicom.base) - copy Image-related attributes from dataset \"1.3.6.1.4.1.14519.5.2.1.7085.2626.936983343951485811186213470191\"\n", + "[2025-01-17 03:04:54,362] [INFO] (highdicom.base) - copy attributes of module \"Patient Study\"\n", "\n", - "[2024-04-23 23:18:41,286] [INFO] (highdicom.base) - copy attributes of module \"Specimen\"\n", + "[2025-01-17 03:04:54,362] [INFO] (highdicom.base) - copy attributes of module \"Clinical Trial Study\"\n", "\n", - "[2024-04-23 23:18:41,286] [INFO] (highdicom.base) - copy Patient-related attributes from dataset \"1.3.6.1.4.1.14519.5.2.1.7085.2626.936983343951485811186213470191\"\n", + "[2025-01-17 03:04:55,604] [INFO] (highdicom.base) - copy Image-related attributes from dataset \"1.3.6.1.4.1.14519.5.2.1.7085.2626.936983343951485811186213470191\"\n", "\n", - "[2024-04-23 23:18:41,286] [INFO] (highdicom.base) - copy attributes of module \"Patient\"\n", + "[2025-01-17 03:04:55,604] [INFO] (highdicom.base) - copy attributes of module \"Specimen\"\n", "\n", - "[2024-04-23 23:18:41,286] [INFO] (highdicom.base) - copy attributes of module \"Clinical Trial Subject\"\n", + "[2025-01-17 03:04:55,605] [INFO] (highdicom.base) - copy Patient-related attributes from dataset \"1.3.6.1.4.1.14519.5.2.1.7085.2626.936983343951485811186213470191\"\n", "\n", - "[2024-04-23 23:18:41,286] [INFO] (highdicom.base) - copy Study-related attributes from dataset \"1.3.6.1.4.1.14519.5.2.1.7085.2626.936983343951485811186213470191\"\n", + "[2025-01-17 03:04:55,605] [INFO] (highdicom.base) - copy attributes of module \"Patient\"\n", "\n", - "[2024-04-23 23:18:41,286] [INFO] (highdicom.base) - copy attributes of module \"General Study\"\n", + "[2025-01-17 03:04:55,605] [INFO] (highdicom.base) - copy attributes of module \"Clinical Trial Subject\"\n", "\n", - "[2024-04-23 23:18:41,286] [INFO] (highdicom.base) - copy attributes of module \"Patient Study\"\n", + "[2025-01-17 03:04:55,605] [INFO] (highdicom.base) - copy Study-related attributes from dataset \"1.3.6.1.4.1.14519.5.2.1.7085.2626.936983343951485811186213470191\"\n", "\n", - "[2024-04-23 23:18:41,287] [INFO] (highdicom.base) - copy attributes of module \"Clinical Trial Study\"\n", + "[2025-01-17 03:04:55,605] [INFO] (highdicom.base) - copy attributes of module \"General Study\"\n", "\n", - "\u001b[0m2024-04-23 23:18:41.373 INFO gxf/std/greedy_scheduler.cpp@372: Scheduler stopped: Some entities are waiting for execution, but there are no periodic or async entities to get out of the deadlock.\u001b[0m\n", + "[2025-01-17 03:04:55,606] [INFO] (highdicom.base) - copy attributes of module \"Patient Study\"\n", "\n", - "[info] [gxf_executor.cpp:1879] Deactivating Graph...\n", + "[2025-01-17 03:04:55,606] [INFO] (highdicom.base) - copy attributes of module \"Clinical Trial Study\"\n", "\n", - "\u001b[0m2024-04-23 23:18:41.377 INFO gxf/std/greedy_scheduler.cpp@401: Scheduler finished.\u001b[0m\n", + "[info] [greedy_scheduler.cpp:372] Scheduler stopped: Some entities are waiting for execution, but there are no periodic or async entities to get out of the deadlock.\n", "\n", - "[info] [gxf_executor.cpp:1887] Graph execution finished.\n", + "[info] [greedy_scheduler.cpp:401] Scheduler finished.\n", "\n", - "[2024-04-23 23:18:41,385] [INFO] (app.App) - End run\n", + "[info] [gxf_executor.cpp:2008] Deactivating Graph...\n", "\n", - "[2024-04-23 16:18:42,406] [INFO] (common) - Container 'silly_davinci'(42b411558fd7) exited.\n" + "[info] [gxf_executor.cpp:2016] Graph execution finished.\n", + "\n", + "[2025-01-17 03:04:55,729] [INFO] (app.App) - End run\n", + "\n", + "[2025-01-16 19:04:57,275] [INFO] (common) - Container 'amazing_galois'(6555f263537b) exited.\n" ] } ], @@ -2046,8 +2146,8 @@ "name": "stdout", "output_type": "stream", "text": [ - "1.2.826.0.1.3680043.10.511.3.11468162564679998832192298844993783.dcm\n", - "1.2.826.0.1.3680043.10.511.3.22886221740567104559887431846790837.dcm\n" + "1.2.826.0.1.3680043.10.511.3.25768072785891674853459165523063481.dcm\n", + "1.2.826.0.1.3680043.10.511.3.67783934117190980110357640109691807.dcm\n" ] } ], @@ -2058,7 +2158,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3.8.10 ('.venv': venv)", + "display_name": ".venv", "language": "python", "name": "python3" }, @@ -2073,11 +2173,6 @@ "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.12" - }, - "vscode": { - "interpreter": { - "hash": "9b4ab1155d0cd1042497eb40fd55b2d15caf4b3c0f9fbfcc7ba4404045d40f12" - } } }, "nbformat": 4, diff --git a/requirements-dev.txt b/requirements-dev.txt index 86c1f983..66f64e83 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -12,7 +12,6 @@ pyflakes black isort pytype>=2020.6.1; platform_system != "Windows" -types-pkg_resources mypy>=0.790 psutil Sphinx==4.1.2 diff --git a/setup.py b/setup.py index 92150f35..74bfd8c9 100644 --- a/setup.py +++ b/setup.py @@ -9,10 +9,13 @@ # See the License for the specific language governing permissions and # limitations under the License. + +import atexit import site import sys from setuptools import find_namespace_packages, setup +from setuptools.command.install import install import versioneer @@ -21,9 +24,73 @@ # (https://github.com/pypa/pip/issues/7953#issuecomment-645133255) site.ENABLE_USER_SITE = "--user" in sys.argv[1:] + +class PostInstallCommand(install): + """Contains post install actions.""" + + def __init__(self, *args, **kwargs): + super(PostInstallCommand, self).__init__(*args, **kwargs) + atexit.register(PostInstallCommand.patch_holoscan) + + @staticmethod + def patch_holoscan(): + """Patch Holoscan for its known issue of missing one import.""" + + import importlib.util + from pathlib import Path + + def needed_to_patch(): + from importlib.metadata import version + + try: + version = version("holoscan") + # This issue exists in the following versions + if "2.7" in version or "2.8" in version: + print("Need to patch holoscan v2.7 and 2.8.") + return True + except Exception: + pass + + return False + + if not needed_to_patch(): + return + + print("Patching holoscan as needed...") + spec = importlib.util.find_spec("holoscan") + if spec: + # holoscan core misses one class in its import in __init__.py + module_to_add = " MultiMessageConditionInfo," + module_path = Path(str(spec.origin)).parent.joinpath("core/__init__.py") + print(f"Patching file {module_path}") + if module_path.exists(): + lines_r = [] + existed = False + with module_path.open("r") as f_to_patch: + in_block = False + for line_r in f_to_patch.readlines(): + if "from ._core import (\n" in line_r: + in_block = True + elif in_block and module_to_add.strip() in line_r: + existed = True + break + elif in_block and ")\n" in line_r: + # Need to add the missing class. + line_r = f"{module_to_add}\n{line_r}" + in_block = False + print("Added missing module in holoscan.") + + lines_r.append(line_r) + + if not existed: + with module_path.open("w") as f_w: + f_w.writelines(lines_r) + print("Completed patching holoscan.") + + setup( version=versioneer.get_version(), - cmdclass=versioneer.get_cmdclass(), + cmdclass=versioneer.get_cmdclass({"install": PostInstallCommand}), packages=find_namespace_packages(include=["monai.*"]), include_package_data=True, zip_safe=False,