MONAILabel icon indicating copy to clipboard operation
MONAILabel copied to clipboard

Option to save DICOM SEG in OHIF is missing

Open chezhia opened this issue 1 year ago • 4 comments

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

  1. Running latest monailabel docker image.
  2. Model is in monaibundle format and works perfectly fine with 3D slicer.
  3. 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 image

Environment Docker and Windows with Nvidia GPU.

chezhia avatar Jan 10 '25 17:01 chezhia

@chezhia Does active learning work? Did you check segmentation mode from OHIF?

Joeycho avatar Feb 19 '25 13:02 Joeycho

@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 avatar Feb 19 '25 20:02 chezhia

@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.

Joeycho avatar Feb 20 '25 11:02 Joeycho

@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"

steve-phenomx avatar Mar 14 '25 08:03 steve-phenomx