Option to save DICOM SEG in OHIF is missing
Describe the bug
Evaluating the use of OHIF instead of 3D slicer for a project. The segmentation is returned fine as a DICOM-SEG, but not able to see the save label option under the Active Learning tab.
To Reproduce
- Running latest monailabel docker image.
- Model is in monaibundle format and works perfectly fine with 3D slicer.
- Command Used: monailabel start_server --app apps/monaibundle --studies http://HOSTIP:8042/dicom-web --conf models tcv_heartlung_ct_bundle
Expected behavior Ability to save DICOM-SEG under the Active-Learning Tab. Only Next Sample and Update Model options are seen.
Screenshots
Environment Docker and Windows with Nvidia GPU.
@chezhia Does active learning work? Did you check segmentation mode from OHIF?
@Joeycho - Active learning seems to work, as in, it selects the next image and loads it if I hit next sample. I did not select segmentation mode, as that does not give me options to interact with the MONAI Label server. I selected the MONAILabel mode from OHIF front page to get to the view in the screen shot.
@chezhia How is the log from MONAI Label? Probably, you can find the path of the generated DICOM-SEG file. Usually saved at tmp location.
@chezhia @Joeycho
is it solved? i cant find segmentation toolbox on ohif monai-label plugins when i using current docker image and latest version of monai-label 0.8.5. is it not provide?
im try to follow radiograpy tutorial with orthanc server. and showing like abobe screenshot.
Using PYTHONPATH=/home/phenomx/Projects/MONAI_LABEL:
[2025-03-14 17:52:10,842] [876880] [MainThread] [INFO] (__main__:285) - USING:: version = False
[2025-03-14 17:52:10,842] [876880] [MainThread] [INFO] (__main__:285) - USING:: app = /home/phenomx/Projects/MONAI_LABEL/radiology
[2025-03-14 17:52:10,842] [876880] [MainThread] [INFO] (__main__:285) - USING:: studies = http://localhost:8042/dicom-web
[2025-03-14 17:52:10,842] [876880] [MainThread] [INFO] (__main__:285) - USING:: verbose = INFO
[2025-03-14 17:52:10,842] [876880] [MainThread] [INFO] (__main__:285) - USING:: conf = [['models', 'segmentation'], ['modes', 'segmentation']]
[2025-03-14 17:52:10,842] [876880] [MainThread] [INFO] (__main__:285) - USING:: host = 0.0.0.0
[2025-03-14 17:52:10,842] [876880] [MainThread] [INFO] (__main__:285) - USING:: port = 8000
[2025-03-14 17:52:10,842] [876880] [MainThread] [INFO] (__main__:285) - USING:: uvicorn_app = monailabel.app:app
[2025-03-14 17:52:10,842] [876880] [MainThread] [INFO] (__main__:285) - USING:: ssl_keyfile = None
[2025-03-14 17:52:10,842] [876880] [MainThread] [INFO] (__main__:285) - USING:: ssl_certfile = None
[2025-03-14 17:52:10,842] [876880] [MainThread] [INFO] (__main__:285) - USING:: ssl_keyfile_password = None
[2025-03-14 17:52:10,842] [876880] [MainThread] [INFO] (__main__:285) - USING:: ssl_ca_certs = None
[2025-03-14 17:52:10,842] [876880] [MainThread] [INFO] (__main__:285) - USING:: workers = None
[2025-03-14 17:52:10,842] [876880] [MainThread] [INFO] (__main__:285) - USING:: limit_concurrency = None
[2025-03-14 17:52:10,842] [876880] [MainThread] [INFO] (__main__:285) - USING:: access_log = False
[2025-03-14 17:52:10,842] [876880] [MainThread] [INFO] (__main__:285) - USING:: root_path =
[2025-03-14 17:52:10,842] [876880] [MainThread] [INFO] (__main__:285) - USING:: log_level = info
[2025-03-14 17:52:10,842] [876880] [MainThread] [INFO] (__main__:285) - USING:: log_config = None
[2025-03-14 17:52:10,842] [876880] [MainThread] [INFO] (__main__:285) - USING:: dryrun = False
[2025-03-14 17:52:10,842] [876880] [MainThread] [INFO] (__main__:285) - USING:: action = start_server
[2025-03-14 17:52:10,842] [876880] [MainThread] [INFO] (__main__:296) -
Allow Origins: ['*']
[2025-03-14 17:52:11,179] [876880] [MainThread] [INFO] (uvicorn.error:83) - Started server process [876880]
[2025-03-14 17:52:11,179] [876880] [MainThread] [INFO] (uvicorn.error:48) - Waiting for application startup.
App Init...
[2025-03-14 17:52:11,179] [876880] [MainThread] [INFO] (monailabel.interfaces.utils.app:37) - Initializing App from: /home/phenomx/Projects/MONAI_LABEL/radiology; studies: http://localhost:8042/dicom-web; conf: {'models': 'segmentation', 'modes': 'segmentation'}
[2025-03-14 17:52:11,420] [876880] [MainThread] [INFO] (monailabel.utils.others.class_utils:57) - Subclass for MONAILabelApp Found: <class 'main.MyApp'>
[2025-03-14 17:52:11,423] [876880] [MainThread] [INFO] (monailabel.utils.others.class_utils:57) - Subclass for TaskConfig Found: <class 'lib.configs.segmentation.Segmentation'>
[2025-03-14 17:52:11,423] [876880] [MainThread] [INFO] (monailabel.utils.others.class_utils:57) - Subclass for TaskConfig Found: <class 'lib.configs.localization_vertebra.LocalizationVertebra'>
[2025-03-14 17:52:11,423] [876880] [MainThread] [INFO] (monailabel.utils.others.class_utils:57) - Subclass for TaskConfig Found: <class 'lib.configs.localization_spine.LocalizationSpine'>
[2025-03-14 17:52:11,423] [876880] [MainThread] [INFO] (monailabel.utils.others.class_utils:57) - Subclass for TaskConfig Found: <class 'lib.configs.deepgrow_2d.Deepgrow2D'>
[2025-03-14 17:52:11,423] [876880] [MainThread] [INFO] (monailabel.utils.others.class_utils:57) - Subclass for TaskConfig Found: <class 'lib.configs.deepgrow_3d.Deepgrow3D'>
[2025-03-14 17:52:11,424] [876880] [MainThread] [INFO] (monailabel.utils.others.class_utils:57) - Subclass for TaskConfig Found: <class 'lib.configs.segmentation_spleen.SegmentationSpleen'>
[2025-03-14 17:52:11,424] [876880] [MainThread] [INFO] (monailabel.utils.others.class_utils:57) - Subclass for TaskConfig Found: <class 'lib.configs.segmentation_vertebra.SegmentationVertebra'>
[2025-03-14 17:52:11,425] [876880] [MainThread] [INFO] (monailabel.utils.others.class_utils:57) - Subclass for TaskConfig Found: <class 'lib.configs.deepedit.DeepEdit'>
[2025-03-14 17:52:11,425] [876880] [MainThread] [INFO] (main:95) - +++ Adding Model: segmentation => lib.configs.segmentation.Segmentation
[2025-03-14 17:52:11,513] [876880] [MainThread] [INFO] (main:98) - +++ Using Models: ['segmentation']
[2025-03-14 17:52:11,513] [876880] [MainThread] [INFO] (monailabel.interfaces.app:135) - Init Datastore for: http://localhost:8042/dicom-web
[2025-03-14 17:52:11,513] [876880] [MainThread] [INFO] (monailabel.interfaces.app:156) - Using DICOM WEB: http://localhost:8042/dicom-web
[2025-03-14 17:52:11,514] [876880] [MainThread] [INFO] (monailabel.datastore.dicom:62) - DICOMWeb Datastore (cache) Path: /home/phenomx/.cache/monailabel/dicom/e6414d4049f71ab28e6f9528a15f294e; FetchByFrame: False
[2025-03-14 17:52:11,514] [876880] [MainThread] [INFO] (monailabel.datastore.dicom:63) - DICOMWeb Convert To Nifti: True
[2025-03-14 17:52:11,514] [876880] [MainThread] [INFO] (monailabel.datastore.local:130) - Auto Reload: True; Extensions: ('*.nii.gz', '*.nii')
[2025-03-14 17:52:11,515] [876880] [MainThread] [INFO] (monailabel.datastore.local:577) - Invalidate count: 0
[2025-03-14 17:52:11,515] [876880] [MainThread] [INFO] (monailabel.datastore.local:151) - Start observing external modifications on datastore (AUTO RELOAD)
[2025-03-14 17:52:11,564] [876880] [MainThread] [INFO] (main:128) - +++ Adding Inferer:: segmentation => <lib.infers.segmentation.Segmentation object at 0x7f31607ca2d0>
[2025-03-14 17:52:11,564] [876880] [MainThread] [INFO] (main:194) - {'segmentation': <lib.infers.segmentation.Segmentation object at 0x7f31607ca2d0>, 'Histogram+GraphCut': <monailabel.scribbles.infer.HistogramBasedGraphCut object at 0x7f314ffb0ad0>, 'GMM+GraphCut': <monailabel.scribbles.infer.GMMBasedGraphCut object at 0x7f314fcff4d0>}
[2025-03-14 17:52:11,564] [876880] [MainThread] [INFO] (main:209) - +++ Adding Trainer:: segmentation => <lib.trainers.segmentation.Segmentation object at 0x7f314fe79890>
[2025-03-14 17:52:11,564] [876880] [MainThread] [INFO] (monailabel.utils.sessions:51) - Session Path: /home/phenomx/.cache/monailabel/sessions
[2025-03-14 17:52:11,565] [876880] [MainThread] [INFO] (monailabel.utils.sessions:52) - Session Expiry (max): 3600
[2025-03-14 17:52:11,565] [876880] [MainThread] [INFO] (monailabel.interfaces.app:469) - App Init - completed
[2025-03-14 17:52:11,565] [timeloop] [INFO] Starting Timeloop..
[2025-03-14 17:52:11,565] [876880] [MainThread] [INFO] (timeloop:60) - Starting Timeloop..
[2025-03-14 17:52:11,565] [timeloop] [INFO] Registered job <function MONAILabelApp.on_init_complete.<locals>.run_scheduler at 0x7f314fd7ab60>
[2025-03-14 17:52:11,565] [876880] [MainThread] [INFO] (timeloop:42) - Registered job <function MONAILabelApp.on_init_complete.<locals>.run_scheduler at 0x7f314fd7ab60>
[2025-03-14 17:52:11,565] [timeloop] [INFO] Timeloop now started. Jobs will run based on the interval set
[2025-03-14 17:52:11,565] [876880] [MainThread] [INFO] (timeloop:63) - Timeloop now started. Jobs will run based on the interval set
[2025-03-14 17:52:11,565] [876880] [MainThread] [INFO] (uvicorn.error:62) - Application startup complete.
[2025-03-14 17:52:11,565] [876880] [MainThread] [INFO] (uvicorn.error:215) - Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit)
[2025-03-14 17:52:25,164] [876880] [MainThread] [INFO] (dicomweb_client.web:2174) - search for series
[2025-03-14 17:52:25,182] [876880] [MainThread] [INFO] (dicomweb_client.web:2174) - search for series
[2025-03-14 17:52:25,185] [876880] [MainThread] [INFO] (dicomweb_client.web:2378) - retrieve metadata of series "1.2.276.0.7230010.3.1.3.346817536.333.1741934446.696621" of study "1.2.826.0.1.3680043.8.274.1.1.346817792.11491.1741921696.170467"
No bulk data URI handler provided for retrieval of value of data element "7FE00010"