I am new to 3D Slicer and I would like to use it to study the mitral valve from 3D echocardiography.
What I am looking for may already be an available extension, but I have not found it. What I would like is the cardiac module, with some modifications. Is it possible to add features to an extension? Currently, I am using a Matlab GUI that i have developed to extract geometrical components, but the view manipulation and volume viewing are not as good as in 3D Slicer. Therefore, it would be nice to incorporate some of my features in a module if it is not already an available extension.
I want to extract the cardiac components for all time-frames in the cardiac cycle. In the end I want to export the components as CSV’s or similar to run Matlab codes on the components. However, to do so I need it in a specific format, and I also want to be able to annotate in a certain way. What I want to do is:
For each individual time-frame i want to annotate geometrical components. I want to extract them by annotating one component at a time and store it based on the current frame in terms of 3D coordinates. E.g. I would like to extract the posteromedial papillary muscle head location from frame 1:end, before annotating the other papillary muscles. (I like this way of annotating because then I am able to follow the individual component through the cycle). Then as i move through time I also want the annotated components in that time-frame to be plotted in the volume. I also want to be able to delete and modify annotated features. (E.g. if i have annotated 10 points around the annular circumference I want the possibility to move through time and only modify the locations of e.g. the annular point at the anterior horn to update the annular spline.)
I want to be able to turn on e.g. Annulus mode, and then the extension should store the points in the current time frame and also plot in the current time frame.
Here is a Pseudocode of what i want to do for one of the features. May be easier to understand.
get Frame get Points %annotated on volume append the Points to Annulus(frame) if anything is annotated if Annulus(frame) contains more than X points create spline of annulus points end in current time frame: plot Annular points plot Spline store Annular points at that time frame in CSV or structure if delete/modify mode get Point find index of Point closest to Annulus(frame) points delete or swap Annulus(frame).index update and plot