2013 Summer Project Week:MarkupsModuleSummer2013

Jump to: navigation, search
Home < 2013 Summer Project Week:MarkupsModuleSummer2013

Key Investigators

  • BWH: Nicole Aucoin, Ron Kikinis (user feedback)


Porting the Annotations module fiducial functionality into a new Markups module, reinstating some missing Slicer3 functionality.

Approach, Plan

The approach is to start from the list of feature requests and bugs and address them all in the new Markups module. The main challenge is to get the basic functionality working solidly before expanding too quickly and adding new features.

The plan for the project week is to give a short demo of the current functionality and solicit feedback, then continuing to work on implementation.

To do list:

  • 2D display bugs (world vs display coordinates)
  • When dragging a markup the position gets further and further away from the mouse - rounding error?


  • Pre-project week:
    • MRML infrastructure to save to single file, transform lists
    • An initial GUI using a table widget has been designed pre-project week and an initial implementation is progressing. Actions on all fiducials in a list have been exposed via the GUI.
    • Moving fiducials up/down in the list
    • Modifying display properties on all fiducials in a list
    • Creating a new fiduciual list with the display properties of the current list
    • Saving display settings over Slicer sessions has been implemented, but the ctk settings panel is conflicting with the logic class and Qt GUI so it has been disabled for now (buttons in the Markups GUI allows save/restore to defaults)
  • During Project week:
    • added a response to end batch processing to update the GUI when loading markups from file
    • fixed fiducials jumping to the wrong slice (had a bug that was updating the widget instead of MRML)
    • fixed the widget getting further away from the mouse as dragged (Qt table widget was triggering an update to MRML when it was updated from mdml, blocking signals worked)
    • updating Tractography Interactive Seeding to work with markup fiducial
    • DId a demo of the current functionality. Feedback:
      • add orientation field to mrml node (quaternion?)
      • naming:
        • regexp/prefix/suffix options
        • unique id on the points
        • correspondence of points between lists (ie for registration)
      • storage:
        • easily extensible
        • remove the multiple points options, or add an integer for markup type?
        • machine readable file (xml? json? proper csv? version number?)
        • look at MRML scene version
      • GUI
        • add center on slice
        • make jump slices optional or at least easier to understand how to use it/what it's doing
        • update a fiducial location without dragging:
          • click on fid in table then click in viewer and reset the location
          • select.cut.paste?
          • right click update position
        • right click and move fid to other list
        • keyboard hot keys to place, delete, copy/paste, reslice
      • Rendering on a semi transparent plane for when they're hidden by objects in the 3d view
      • Snap to displayable node (model, volume slice)
      • Consider allowing other modules to register new annotations
      • Text appearance improvements (also see equations in http://www.kitware.com/blog/home/post/509)
    • Brought Markups branch up to date with svn trunk
    • Added p key shortcut to place a new fiducial
    • Started work on right click context menu for the markups table

Delivery Mechanism

This work will be delivered to the NA-MIC Kit as a Slicer Loadable Module.