<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:st1="urn:schemas-microsoft-com:office:smarttags" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=Content-Type content="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 11 (filtered medium)">
<o:SmartTagType namespaceuri="urn:schemas-microsoft-com:office:smarttags"
name="PostalCode"
downloadurl="http://www.5iamas-microsoft-com:office:smarttags"/>
<o:SmartTagType namespaceuri="urn:schemas-microsoft-com:office:smarttags"
name="State" downloadurl="http://www.5iamas-microsoft-com:office:smarttags"/>
<o:SmartTagType namespaceuri="urn:schemas-microsoft-com:office:smarttags"
name="Street" downloadurl="http://www.5iantlavalampft-com:office:smarttags"/>
<o:SmartTagType namespaceuri="urn:schemas-microsoft-com:office:smarttags"
name="PlaceType" downloadurl="http://www.5iantlavalamp.com/"/>
<o:SmartTagType namespaceuri="urn:schemas-microsoft-com:office:smarttags"
name="PlaceName" downloadurl="http://www.5iantlavalamp.com/"/>
<o:SmartTagType namespaceuri="urn:schemas-microsoft-com:office:smarttags"
name="City" downloadurl="http://www.5iamas-microsoft-com:office:smarttags"/>
<o:SmartTagType namespaceuri="urn:schemas-microsoft-com:office:smarttags"
name="place" downloadurl="http://www.5iantlavalamp.com/"/>
<o:SmartTagType namespaceuri="urn:schemas-microsoft-com:office:smarttags"
name="address" downloadurl="http://www.5iamas-microsoft-com:office:smarttags"/>
<o:SmartTagType namespaceuri="urn:schemas-microsoft-com:office:smarttags"
name="PersonName" downloadurl="http://www.microsoft.com"/>
<!--[if !mso]>
<style>
st1\:*{behavior:url(#default#ieooui) }
</style>
<![endif]-->
<style>
<!--
/* Font Definitions */
@font-face
{font-family:Batang;
panose-1:2 3 6 0 0 1 1 1 1 1;}
@font-face
{font-family:"\@Batang";
panose-1:0 0 0 0 0 0 0 0 0 0;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0in;
margin-bottom:.0001pt;
font-size:12.0pt;
font-family:"Times New Roman";}
a:link, span.MsoHyperlink
{color:blue;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{color:purple;
text-decoration:underline;}
span.EmailStyle17
{mso-style-type:personal-compose;
font-family:Arial;
color:windowtext;}
@page Section1
{size:8.5in 11.0in;
margin:1.0in 1.25in 1.0in 1.25in;}
div.Section1
{page:Section1;}
/* List Definitions */
@list l0
{mso-list-id:715348915;
mso-list-type:hybrid;
mso-list-template-ids:-812230106 67698705 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l0:level1
{mso-level-text:"%1\)";
mso-level-tab-stop:.5in;
mso-level-number-position:left;
text-indent:-.25in;}
@list l0:level2
{mso-level-tab-stop:1.0in;
mso-level-number-position:left;
text-indent:-.25in;}
@list l0:level3
{mso-level-tab-stop:1.5in;
mso-level-number-position:left;
text-indent:-.25in;}
@list l0:level4
{mso-level-tab-stop:2.0in;
mso-level-number-position:left;
text-indent:-.25in;}
@list l0:level5
{mso-level-tab-stop:2.5in;
mso-level-number-position:left;
text-indent:-.25in;}
@list l0:level6
{mso-level-tab-stop:3.0in;
mso-level-number-position:left;
text-indent:-.25in;}
@list l0:level7
{mso-level-tab-stop:3.5in;
mso-level-number-position:left;
text-indent:-.25in;}
@list l0:level8
{mso-level-tab-stop:4.0in;
mso-level-number-position:left;
text-indent:-.25in;}
@list l0:level9
{mso-level-tab-stop:4.5in;
mso-level-number-position:left;
text-indent:-.25in;}
@list l1
{mso-list-id:938946974;
mso-list-type:hybrid;
mso-list-template-ids:1408281350 67698705 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l1:level1
{mso-level-text:"%1\)";
mso-level-tab-stop:.5in;
mso-level-number-position:left;
text-indent:-.25in;}
@list l1:level2
{mso-level-tab-stop:1.0in;
mso-level-number-position:left;
text-indent:-.25in;}
@list l1:level3
{mso-level-tab-stop:1.5in;
mso-level-number-position:left;
text-indent:-.25in;}
@list l1:level4
{mso-level-tab-stop:2.0in;
mso-level-number-position:left;
text-indent:-.25in;}
@list l1:level5
{mso-level-tab-stop:2.5in;
mso-level-number-position:left;
text-indent:-.25in;}
@list l1:level6
{mso-level-tab-stop:3.0in;
mso-level-number-position:left;
text-indent:-.25in;}
@list l1:level7
{mso-level-tab-stop:3.5in;
mso-level-number-position:left;
text-indent:-.25in;}
@list l1:level8
{mso-level-tab-stop:4.0in;
mso-level-number-position:left;
text-indent:-.25in;}
@list l1:level9
{mso-level-tab-stop:4.5in;
mso-level-number-position:left;
text-indent:-.25in;}
ol
{margin-bottom:0in;}
ul
{margin-bottom:0in;}
-->
</style>
<!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang=EN-US link=blue vlink=purple>
<div class=Section1>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>Hi everyone:<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>As you will see from the attached document (the text is also
pasted below my signature), I had some discussions with Luis and <st1:PersonName
w:st="on">Kevin Gary</st1:PersonName> the past two days and came up with this
plan to move the project forward. <o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>I am sure it is not the best plan but I think it is a
reasonable compromise at this point to keep moving ahead.<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>Please take a look and send any comments you may have to the
mailing list (or just to me if you don’t want to share them with everyone
yet).<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>We will have a tcon on Monday at 11 am EST to discuss this
and we have new tcon numbers that will only be used for this project (my
colleagues at <st1:place w:st="on">ISIS</st1:place> don’t have these
numbers so we will not have any tcon collisions again like last week). I also
put these new numbers on the Wiki.<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal style='margin-left:.5in;text-autospace:none'><font size=2
face="Courier New"><span style='font-size:10.0pt;font-family:"Courier New"'>Conference
Passcodes:<o:p></o:p></span></font></p>
<p class=MsoNormal style='margin-left:.5in;text-autospace:none'><font size=2
face="Courier New"><span style='font-size:10.0pt;font-family:"Courier New"'>
Passcode: 646202<o:p></o:p></span></font></p>
<p class=MsoNormal style='margin-left:.5in;text-autospace:none'><font size=2
face="Courier New"><span style='font-size:10.0pt;font-family:"Courier New"'><o:p> </o:p></span></font></p>
<p class=MsoNormal style='margin-left:.5in;text-autospace:none'><font size=2
face="Courier New"><span style='font-size:10.0pt;font-family:"Courier New"'>Conference
Access:<o:p></o:p></span></font></p>
<p class=MsoNormal style='margin-left:.5in;text-autospace:none'><font size=2
face="Courier New"><span style='font-size:10.0pt;font-family:"Courier New"'>
Toll Free: 1-800-308-9936
<o:p></o:p></span></font></p>
<p class=MsoNormal style='margin-left:.5in;text-autospace:none'><font size=2
face="Courier New"><span style='font-size:10.0pt;font-family:"Courier New"'>
Toll:
1-913-643-0019 <o:p></o:p></span></font></p>
<p class=MsoNormal style='text-autospace:none'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>I will absolutely limit the tcon to two hours on Monday: one
hour for discussion and one hour for making an action plan, including listing
all outstanding issues. We will also have our regular tcon this Thursday but at
3 pm East Coast time – those of us at MICCAI who are available will meet
at the hotel registration area at 11:55 am and we can go to my room for the
tcon. Finally, I will send some information about the November ITK class and
review meeting shortly, including hotel information.<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>Thanks.<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>Kevin<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face="Courier New"><span style='font-size:10.0pt;
font-family:"Courier New"'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 face="Courier New"><span style='font-size:10.0pt;
font-family:"Courier New"'>------------------------------------------------------------------<br>
Kevin Cleary,
Ph.D.
Work phone: 202-687-8253<br>
Associate
Professor
Work fax: 202-784-3479<br>
Deputy Director <br>
<br>
Imaging Science and Information Systems (<st1:place w:st="on">ISIS</st1:place>)
Center<br>
Department of
Radiology
Pager: 202-901-2033<br>
<st1:place w:st="on"><st1:PlaceName w:st="on">Georgetown</st1:PlaceName> <st1:PlaceType
w:st="on">University</st1:PlaceType> <st1:PlaceName w:st="on">Medical</st1:PlaceName>
<st1:PlaceType w:st="on">Center</st1:PlaceType></st1:place>
Cell phone: 202-294-3409<br>
<st1:Street w:st="on"><st1:address w:st="on">2115 Wisconsin Avenue, Suite 603</st1:address></st1:Street>
Home phone: 301-299-0788<br>
<st1:place w:st="on"><st1:City w:st="on">Washington</st1:City>, <st1:State
w:st="on">DC</st1:State>, <st1:PostalCode w:st="on">20007</st1:PostalCode></st1:place>
Home fax: 301-299-0789</span></font><o:p></o:p></p>
<div>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'> <o:p></o:p></span></font></p>
</div>
<p class=MsoNormal><st1:place w:st="on"><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'>ISIS</span></font></st1:place><font
size=2 face="Courier New"><span style='font-size:10.0pt;font-family:"Courier New"'>
center: </span></font><a href="http://www.isis.georgetown.edu/"
title="http://www.isis.georgetown.edu/"><font size=2 face="Courier New"
title="http://www.isis.georgetown.edu/"><span style='font-size:10.0pt;
font-family:"Courier New"'>www.isis.georgetown.edu</span></font></a><br>
<font size=2 face="Courier New"><span style='font-size:10.0pt;font-family:"Courier New"'>Research
group: </span></font><a href="http://www.caimr.georgetown.edu/"
title="http://www.caimr.georgetown.edu/"><font size=2 face="Courier New"
title="http://www.caimr.georgetown.edu/"><span style='font-size:10.0pt;
font-family:"Courier New"'>www.caimr.georgetown.edu</span></font></a><br>
<font size=2 face="Courier New"><span style='font-size:10.0pt;font-family:"Courier New"'>WashCAS:
</span></font><a href="http://www.washcas.org/" title="http://www.washcas.org/"><font
size=2 face="Courier New" title="http://www.washcas.org/"><span
style='font-size:10.0pt;font-family:"Courier New"'>www.washcas.org</span></font></a><br>
<font size=2 face="Courier New"><span style='font-size:10.0pt;font-family:"Courier New"'>Email:
</span></font><a href="mailto:cleary@georgetown.edu"
title="mailto:cleary@georgetown.edu"><font size=2 face="Courier New"
title="mailto:cleary@georgetown.edu"><span style='font-size:10.0pt;font-family:
"Courier New"'>cleary@georgetown.edu</span></font></a><br>
<font size=2 face="Courier New"><span style='font-size:10.0pt;font-family:"Courier New"'>-------------------------------------------------------------------</span></font><o:p></o:p></p>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'>Statement on State Machines<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'>Kevin Cleary<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'>22 October 2005<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'>As you are all aware, we have had many discussions about state machines
and how they will be implemented in IGSTK. In the interest of moving the
project forward, I had some discussions with Luis and <st1:PersonName w:st="on">Kevin
Gary</st1:PersonName> and am proposing the following for the Monday tcon.<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'>First, by way of background, we decided to use state machines early in
the project for these reasons that Luis outlined in “Purpose of State
Machines in IGSTK” on the Wiki. This was a major decision and in some
ways I think the use of state machines is one of the defining points of IGSTK.
We are breaking new ground here in my opinion and therefore it is not
surprising that we are struggling some here.<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'>However, I still believe state machines are worth the effort and we
actually have made a lot of progress to date in starting to put in state
machines at the component level. From my discussions with Luis and <st1:PersonName
w:st="on">Kevin Gary</st1:PersonName>, there seem to be three major issues with
the state machines:<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><o:p> </o:p></span></font></p>
<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l1 level1 lfo1'><![if !supportLists]><font
size=3 face="Times New Roman"><span style='font-size:12.0pt'><span
style='mso-list:Ignore'>1)<font size=1 face="Times New Roman"><span
style='font:7.0pt "Times New Roman"'> </span></font></span></span></font><![endif]>Our
design is getting complicated. This will make IGSTK hard to use if we are not
careful.<o:p></o:p></p>
<p class=MsoNormal style='margin-left:.25in'><font size=3 face="Times New Roman"><span
style='font-size:12.0pt'><o:p> </o:p></span></font></p>
<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l1 level1 lfo1'><![if !supportLists]><font
size=3 face="Times New Roman"><span style='font-size:12.0pt'><span
style='mso-list:Ignore'>2)<font size=1 face="Times New Roman"><span
style='font:7.0pt "Times New Roman"'> </span></font></span></span></font><![endif]>We
have not solved the problem of how the state machines will interact together.
This may be the major technical challenge of IGSTK in my opinion and it seems
we do not have examples of other systems that have been built with state machines
to go by. We can put state machines in the components and in the application no
doubt, but how will they interact together?<o:p></o:p></p>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><o:p> </o:p></span></font></p>
<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l1 level1 lfo1'><![if !supportLists]><font
size=3 face="Times New Roman"><span style='font-size:12.0pt'><span
style='mso-list:Ignore'>3)<font size=1 face="Times New Roman"><span
style='font:7.0pt "Times New Roman"'> </span></font></span></span></font><![endif]>We
have not agreed on a mechanism as to how the state machines will communicate
information with each other and how we will get information into the state
machine. Luis has introduced the idea of using an event/observer mechanism to
communicate information (similar to the slots/signals method of Qt) rather than
using Get() methods, but there is disagreement still as to whether this is a
good solution.<o:p></o:p></p>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'>Therefore, at this point I propose the following:<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><o:p> </o:p></span></font></p>
<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l0 level1 lfo2'><![if !supportLists]><font
size=3 face="Times New Roman"><span style='font-size:12.0pt'><span
style='mso-list:Ignore'>1)<font size=1 face="Times New Roman"><span
style='font:7.0pt "Times New Roman"'> </span></font></span></span></font><![endif]>Regarding
the design getting too complicated, this is just something we need to pay
attention to as we proceed. I would agree with Luis that code safety is a
higher priority than coder convenience, but I would not want to build a toolkit
that is so complex no one can use it. However, we can have complexity in the
internals of core components provided that the interface is more
straightforward. We can also help here with programming examples and providing
a few well known patterns of interaction as is the case with most any control
framework.<o:p></o:p></p>
<p class=MsoNormal style='margin-left:.25in'><font size=3 face="Times New Roman"><span
style='font-size:12.0pt'><o:p> </o:p></span></font></p>
<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l0 level1 lfo2'><![if !supportLists]><font
size=3 face="Times New Roman"><span style='font-size:12.0pt'><span
style='mso-list:Ignore'>2)<font size=1 face="Times New Roman"><span
style='font:7.0pt "Times New Roman"'> </span></font></span></span></font><![endif]>Regarding
the interaction between components, the dispatcher seems like a reasonable
solution. There are some issues with the dispatcher implementation first
suggested by Luis and Andinet at the tcon last week, but in general this seems
to be a good path to pursue. I recommend we discuss this a little more on
Monday, but plan to pursue this as the solution for interaction between
components in the next release of the software.<o:p></o:p></p>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><o:p> </o:p></span></font></p>
<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l0 level1 lfo2'><![if !supportLists]><font
size=3 face="Times New Roman"><span style='font-size:12.0pt'><span
style='mso-list:Ignore'>3)<font size=1 face="Times New Roman"><span
style='font:7.0pt "Times New Roman"'> </span></font></span></span></font><![endif]>Regarding
how the state machines will communicate with each other, I am not ready to sign
onto the event/observer mechanism at this point. I think this should be
discussed more at the board meeting / one year review on Nov. 10. For now, I am
OK with people using Get() methods to communicate and I am OK with Luis/Andinet
experimenting with the event/observer method to see how it works in practice. <o:p></o:p></p>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'>Therefore, at the tcon on Monday, I will propose we move forward this
way. I will limit the tcon to two hours, with the first hour for discussion of
these issues and the second hour to make an action plan and summarize the
outstanding issues. We have some other things to discuss such as creating
consistent design patterns in the state machines, the use of exceptions, and
state machines in base versus derived classes but these are lower level issues
to me at the moment and we will see if there is time to discuss them on Monday
or not.<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'>I certainly appreciate everyone’s input on these issues and I
feel we have a very talented technical team, so it is natural that there may be
some differences of opinion. But I also feel that we need to move the project
forward so that is why I have stepped in (of course, if I have to start coding
again, then we are really in trouble and I recommend you all abandon ship!).
Any comments or suggestions are welcome.<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'>(end)<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><o:p> </o:p></span></font></p>
</div>
</body>
</html>