Page MenuHomePhabricator

[worklist] mitk-flow: save changed dicom segmentation not possible
Closed, ResolvedPublic


I created a segmentation with the help of a worklist (dicom). And was able to successfully store it.
When I try to change the segmentation, again with a worklist, I get the following log message:

#18.075# ERROR: No suitable writer found for the current data of type LabelSetImage with extension .dcm
#18.161# ERROR: No suitable writer found for the current data of type LabelSetImage with extension .interim.dcm

The worklist task:

    "Image": "",
    "Segmentation": "",
    "Result": "",
    "Name": "513/04 task 0"

Do I have to do something different in the worklist-task, when trying to change an existing segmentation?

Revisions and Commits

Restricted Differential Revision
Restricted Differential Revision

Event Timeline

gaoh triaged this task as Normal priority.Dec 12 2022, 10:46 AM
gaoh created this task.

Task lists don't do anything special regarding saving/loading data. So in theory, this bug should be reproducible by regular loading and saving via the menu in the Workbench?
However, task lists are prone to expose existing bugs related to repeated saving/loading of data. We indeed noticed another bug in this direction with .nrrd files, which were erroneous when loaded a second time in certain situations. The reason was faulty handling of properties: T29274: Label Loss on repeatedly loaded and saved segmentations.

@floca What is the state of DICOM SEG in MITK which I assume is the format of segmentations when saved as "DICOM"? Off the top of my head I seem to remember that it was never fully implemented or did it just affect 3d+t segmentations?

Describe problem has the same root then T26953. But I think for this task here we can have a work around, so that Hanno does not need to wait until the DICOM Seg thing is fixed.

I would propose the following workaround:

  1. Change DICOMQIPropertyHelper::AdoptReferenceDICOMProperty to only set the property value if it does not exist ( so no overwriting if the target property list already has the property). With this I want to prevent already existing DICOM information to be overwritten.
  2. At the task list business logic where the data is (re)loaded: If a segmentation is loaded, add a call of DICOMQIPropertyHelper::DeriveDICOMSourceProperties(inputImage, segmentation). Remark: I would also mark this change as a workaround for T29431 that could be removed as soon as T26953 and alike is fixed.

@kislinsk that should do the trick and allow Hanno to proceed

kislinsk added a revision: Restricted Differential Revision.Jan 19 2023, 10:28 AM

@gaoh could you verify if the fix work?

@gaoh I triggered the build of a new Flowbench installer in our CI. Will be ready later today and automatically uploaded. Commit hash: 122321bb.

thanks again, for solving this issue! So in the current kaapana develop the tasklist feature is now integrated!

@gaoh / @kislinsk would that integration/workflow something for the MIC meeting pitch?