[IGSTK-Developers] Continuting the discussion on error handling methods....
Andinet Enquobahrie
andinet.enqu at kitware.com
Fri Sep 16 17:32:57 EDT 2005
David,
Thank you for the practical insight. We first thought that image and
tracker landmark establishment would alternate. I will have to modify
the state machine design in the LandmarkRegistration class to make it
less restrictive .
-Andinet
> Hi Andinet,
>
> For landmarks: For image-guided surgery, the user will usually set the
> positions of all the landmarks before doing any tracker measurements.
> In fact, to save time, I always set the landmarks before I even
> wheeled the computer into the OR, so that the only thing the surgeon
> had to do was measure the landmark positions with the Polaris. I
> think the error-checking should be done when the transformation is
> calculated, not when the landmarks are set. This also helps to
> centralize the error checking, since you also need to check the RMS
> residual of the point fit, as well as minumum number of points when
> the transform is calculated.
>
> Also: when in the operating room, it often occurs that one of the
> doughnut fiducials either falls off or ends up in a position
> inaccessible to the tracker. This can easily happen after the
> fiducial has been located, but before the tracker has been used to
> measure its position. There has to be a way to either delete such
> fiducials from the list, or better, to mark them as "ignored" since
> deleting them from the list will disrupt the numbering of the fiducials.
>
> Rule #1 of the operating room: you need to be prepared for anything
> that might go wrong!
>
>
> About error checking:
>
> To ease the burden of error checking, I think that we need macros or
> some other shortcut to convert state-machine inputs to IGSTK Events
> and vice-versa.
>
> For example, we need a concise way to state, in code, the following:
> 1) when we receive input A while in state B, event C will be generated
> and we will end up in state D
> 2) when object A produces event B, send input C to our state machine
> If we had macros for the above, I think that event-based
> error-handling code would be easier to write.
>
> - David
>
> Andinet Enquobahrie wrote:
>
>> Dear all
>>
>> I am putting the final touches on the LandMarkRegistration and
>> ImageReader classes implementation for iteration 6. The main loose
>> end I need to tighten up is error handling. Although we have
>> brainstormed several options for error handling , we haven't yet
>> reached a consensus. If you would like to refresh your mind on this
>> topic, please refer to the wiki page that David put together.
>>
>> http://public.kitware.com/IGSTKWIKI/index.php/Error_Handling#Kinds_of_Errors
>>
>>
>> For my specific needs, I am planning to implement event observers for
>> recoverable error conditions in landmark registration and image reading.
>>
>> The recoverable error conditions that I am anticipating are the
>> following.
>>
>> For LandMarkRegistration class
>>
>> 1) A request for transform computation before "enough" number of
>> landmarks are established.
>>
>> 2) Incorrect order of landmark establishment. I am enforcing a
>> specific order of landmark establishment i.e image followed by
>> tracker coordinate for landmarks 1,2,3 (We are using 3D Rigid body
>> transform) For example, an error condition arises if the application
>> sets image coordinates of two landmarks successively without setting
>> the tracker coordinate of the first landmark.
>>
>> For ImageReader classes
>>
>> 1) An image read request before specifying the image file name.
>> 2) Error during image reading operation (may be corrupted image data,
>> invalid image format etc..)
>>
>> This is not an exhaustive list by any means. But I believe these are
>> the major ones.
>>
>> I would like to get your comments/thoughts/suggestions on
>>
>> - additional major error conditions and
>> - my pick of an error handing method
>>
>> thanks
>>
>> -Andinet
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> _______________________________________________
>> IGSTK-Developers mailing list
>> IGSTK-Developers at public.kitware.com
>> http://public.kitware.com/cgi-bin/mailman/listinfo/igstk-developers
>>
>
>
>
More information about the IGSTK-Developers
mailing list