<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:m="http://schemas.microsoft.com/office/2004/12/omml" 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 12 (filtered medium)">
<!--[if !mso]>
<style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]-->
<style>
<!--
 /* Font Definitions */
 @font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
@font-face
        {font-family:ProggySquareTTSZ;
        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","serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p
        {mso-style-priority:99;
        margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
pre
        {mso-style-priority:99;
        mso-style-link:"HTML Preformatted Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New";}
span.apple-style-span
        {mso-style-name:apple-style-span;}
span.HTMLPreformattedChar
        {mso-style-name:"HTML Preformatted Char";
        mso-style-priority:99;
        mso-style-link:"HTML Preformatted";
        font-family:Consolas;}
p.emailquote, li.emailquote, div.emailquote
        {mso-style-name:emailquote;
        margin-top:0in;
        margin-right:0in;
        margin-bottom:0in;
        margin-left:1.0pt;
        margin-bottom:.0001pt;
        border:none;
        padding:0in;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
span.EmailStyle22
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
-->
</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=WordSection1>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Hello Benoit,<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p> </o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Thanks for getting back to me. Please see my comments below.<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p> </o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Cheers,<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Michael<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p> </o:p></span></p>

<div>

<div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in'>

<p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>From:</span></b><span
style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'> Benoit Bleuze
[mailto:benoit.bleuze@inria.fr] <br>
<b>Sent:</b> Tuesday, June 07, 2011 11:10 AM<br>
<b>To:</b> Sascha Zelzer<br>
<b>Cc:</b> Ljung, Patric (SCR US); ctk-developers@commontk.org; Caylus, Michael
(SCR US)<br>
<b>Subject:</b> Re: [Ctk-developers] data exchange in the DICOM Hosting
implementation / QtSoap Limitation<o:p></o:p></span></p>

</div>

</div>

<p class=MsoNormal><o:p> </o:p></p>

<div>

<p class=MsoNormal><span style='color:black'>Hello Michael,<o:p></o:p></span></p>

<div>

<p class=MsoNormal><span style='color:black'><o:p> </o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='color:black'>First, we always refer to this
document when in doubt: <a
href="http://www.commontk.org/index.php/File:DicomAppHostingSpecs.pdf">http://www.commontk.org/index.php/File:DicomAppHostingSpecs.pdf</a><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='color:black'>It's been some time since we
touched that code, so forgive me if my answers are sometimes a bit vague.<o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='color:black'><o:p> </o:p></span></p>

</div>

<div>

<p class=MsoNormal><span class=apple-style-span><span style='font-family:"Calibri","sans-serif";
color:black'>" I am updating the AvailableData structure and
then publish it to the hosted application when I am starting it"</span></span><span
style='color:black'><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='color:black'>So I am guessing you are sending a
notifyDataAvailable(AvailableData input,true ), with the descriptors for all
your files, right?<o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Arial","sans-serif";
color:#1F497D'>Yes I send just one notification: notifyDataAvailable with all
the descriptors for my files.<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p> </o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='color:black'>Now from your application you
should call getData() with the UUIDs you got from the notification, are we
still on the same page?<o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Arial","sans-serif";
color:#1F497D'>Yes that’s the plan. I want to collect the all the UUIDs once
I received the DataAvailable structure on the application side.<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p> </o:p></span></p>

<p class=MsoNormal><span style='color:black'>So If I understood you correctly,
the problem is that you only receive on UUID from the notification?<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Yes I got only one UUID instead of multiple ones and it look
like only the last one is picked up.<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p> </o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='color:black'>My question is then: did you use
the helper functions to fill in your data structure:<o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='color:black'> </span><span
class=apple-style-span><span style='font-family:"Courier New";color:purple'>ctkDicomSoapArrayOfObjectDescriptors</span></span><span
class=apple-style-span><span style='font-family:"Courier New";color:black'>(</span></span><span
class=apple-style-span><span style='font-family:"Courier New";color:olive'>const</span></span><span
class=apple-style-span><span style='font-family:"Courier New";color:silver'> </span></span><span
class=apple-style-span><span style='font-family:"Courier New";color:purple'>QString</span></span><span
class=apple-style-span><span style='font-family:"Courier New";color:black'>&</span></span><span
class=apple-style-span><span style='font-family:"Courier New";color:silver'> </span></span><span
class=apple-style-span><span style='font-family:"Courier New";color:black'>name,</span></span><span
style='color:black'><o:p></o:p></span></p>

</div>

<pre style='-qt-block-indent:0'><span style='color:silver'>                               </span><span
style='color:olive'>const</span><span style='color:silver'> </span><span
style='color:purple'>ctkDicomAppHosting</span><span style='color:black'>::</span><span
style='color:purple'>ArrayOfObjectDescriptors</span><span style='color:black'>&</span><span
style='color:silver'> </span><span style='color:black'>ods);<o:p></o:p></span></pre><pre><span
style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></pre><pre><span
style='color:black'>ArrayOfObjectDescriptor being this:<o:p></o:p></span></pre><pre
style='-qt-block-indent:0'><span style='color:olive'>typedef</span><span
style='color:silver'> </span><span style='color:purple'>QList</span><span
style='color:black'><</span><span style='color:purple'>ObjectDescriptor</span><span
style='color:black'>></span><span style='color:silver'> </span><span
style='color:purple'>ArrayOfObjectDescriptors</span><span style='color:black'>;<o:p></o:p></span></pre>

<div>

<p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p>

<p class=MsoNormal style='text-autospace:none'><span style='font-size:11.0pt;
font-family:"Calibri","sans-serif";color:#1F497D'>I am using the helper
functions but not the one you mentioned. When I fill the AvailableData
structure; it goes down to the series and call this function instead: </span><b><span
style='font-size:11.0pt;font-family:ProggySquareTTSZ;color:#FEFFFE'>ctkDicomSoapSeries</span></b><b><span
style='font-size:11.0pt;font-family:ProggySquareTTSZ;color:white'>(</span></b><b><span
style='font-size:11.0pt;font-family:ProggySquareTTSZ;color:#FF9D00'>const</span></b><b><span
style='font-size:11.0pt;font-family:ProggySquareTTSZ;color:white'> </span></b><b><span
style='font-size:11.0pt;font-family:ProggySquareTTSZ;color:#FEFFFE'>QString</span></b><b><span
style='font-size:11.0pt;font-family:ProggySquareTTSZ;color:white'>& </span></b><b><span
style='font-size:11.0pt;font-family:ProggySquareTTSZ;color:#FEFFFE'>name</span></b><b><span
style='font-size:11.0pt;font-family:ProggySquareTTSZ;color:white'>, </span></b><b><span
style='font-size:11.0pt;font-family:ProggySquareTTSZ;color:#FF9D00'>const</span></b><b><span
style='font-size:11.0pt;font-family:ProggySquareTTSZ;color:white'> </span></b><b><span
style='font-size:11.0pt;font-family:ProggySquareTTSZ;color:#FEFFFE'>ctkDicomAppHosting</span></b><b><span
style='font-size:11.0pt;font-family:ProggySquareTTSZ;color:white'>::</span></b><b><span
style='font-size:11.0pt;font-family:ProggySquareTTSZ;color:#FEFFFE'>Series</span></b><b><span
style='font-size:11.0pt;font-family:ProggySquareTTSZ;color:white'>& </span></b><b><span
style='font-size:11.0pt;font-family:ProggySquareTTSZ;color:#FEFFFE'>s</span></b><b><span
style='font-size:11.0pt;font-family:ProggySquareTTSZ;color:white'>)<o:p></o:p></span></b></p>

<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:11.0pt;
font-family:ProggySquareTTSZ;color:white'><o:p> </o:p></span></b></p>

<p class=MsoNormal style='text-autospace:none'><span style='font-size:11.0pt;
font-family:"Calibri","sans-serif";color:#1F497D'>This function will correctly
append my list of descriptors for the corresponding series.</span><b><span
style='font-size:11.0pt;font-family:ProggySquareTTSZ;color:white'><o:p></o:p></span></b></p>

<p class=MsoNormal style='text-autospace:none'><b><span style='font-size:11.0pt;
font-family:ProggySquareTTSZ;color:white'><o:p> </o:p></span></b></p>

<p class=MsoNormal style='text-autospace:none'><span style='font-size:11.0pt;
font-family:"Calibri","sans-serif";color:#1F497D'>When I dump the SOAP message
that is sent to the app I can see all my UUIDs for the series but the issue is
at the reception when I dump the SOAP message again I only get one UUID
(actually the last one).<o:p></o:p></span></p>

<p class=MsoNormal style='text-autospace:none'><span style='font-size:11.0pt;
font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p>

<p class=MsoNormal style='text-autospace:none'><span style='font-size:11.0pt;
font-family:"Calibri","sans-serif";color:#1F497D'>I have attached to this email
the SOAP messages that are being exchanged. The issue seems to me to be more at
the QtSoap level than the data helper function.<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p> </o:p></span></p>

<p class=MsoNormal><span style='color:black'>You must use the types defined in
plugins/org.commontk.dah.core/ctkDicomAppHostingTypes.h and the helpers
in plugins/org.commontk.dah.core/ctkDicomAppHostingTypesHelpers.h<o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='color:black'>You must fill in your
AvailableData::patients list, down to the Series level, </span><span
style='color:#1F497D'><o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>This is the approach I started with.<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p> </o:p></span></p>

<p class=MsoNormal><span style='color:black'>or just the
AvailableData::objectDescriptors array if you just want a quick test (the
recommended way is to fill in properly the hierarchy of Patient/study/series
properly).<o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='color:#1F497D'>I will give a try now by sending
just the objectDescriptors array now and will let you know.<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p> </o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='color:black'>I think I remember we sent several
files at once with Ivo at some point as a test, but I can't be 100% sure. But I
am fairly confident this should work.<o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='color:black'>Now to unpack the results from
soap messages to Qt objects, you must once again use the typeHelpers
structures:<o:p></o:p></span></p>

</div>

<div><pre><span style='color:purple'>ctkDicomAppHosting</span><span
style='color:black'>::</span><span style='color:purple'>ArrayOfObjectDescriptors</span><span
style='color:silver'> </span><span style='color:purple'>ctkDicomSoapArrayOfObjectDescriptors</span><span
style='color:black'>::getArrayOfObjectDescriptors(</span><span
style='color:olive'>const</span><span style='color:silver'> </span><span
style='color:purple'>QtSoapType</span><span style='color:black'>&</span><span
style='color:silver'> </span><span style='color:black'>type)<o:p></o:p></span></pre></div>

<div>

<p class=MsoNormal><span style='color:black'>Now if this doesn't work we will
have to look at the marshalling functions we wrote (all the helper
functions). <o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p> </o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='color:black'>Cheers,<o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='color:black'>Ben.<o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='color:black'><o:p> </o:p></span></p>

</div>

<div>

<div class=MsoNormal align=center style='text-align:center'><span
style='color:black'>

<hr size=2 width="100%" align=center id=zwchr>

</span></div>

<blockquote style='border:none;border-left:solid #1010FF 1.5pt;padding:0in 0in 0in 4.0pt;
margin-left:3.75pt;margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=MsoNormal><span style='color:black'>Hi Michael,<br>
<br>
As far as I know, we only tested the data exchange interface with one single
.dcm file yet. I am also not aware of any restrictions regarding the QtSoap
array support (apart from a max dimension of 5).<br>
<br>
How are you updating the AvailableData structure? Could you send the SOAP
messages send by the client and received by the server (you might have to edit
/opt/git/CTK/Plugins/org.commontk.dah.core/ctkSoapLog.h to enable logging).<br>
<br>
Maybe Ivo and Benoit can also comment on this issue, they where mainly involved
in writing the data exchange interface.<br>
<br>
Thanks,<br>
Sascha<br>
<br>
On 06/06/2011 09:35 PM, Caylus, Michael (SCR US) wrote: <o:p></o:p></span></p>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Calibri","sans-serif";
color:black'>Hi Sascha,<o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Calibri","sans-serif";
color:black'> <o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Calibri","sans-serif";
color:black'>First thanks a lot for the quick reply I got on my previous
post.  I decided to go for the first approach and created my own CTK
plugin as we should stay in the context of a hosting application. I managed to
start and run my hosted application through the DICOM Application Host
interface with this approach.<o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Calibri","sans-serif";
color:black'> <o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Calibri","sans-serif";
color:black'>I am now looking into passing some dataset to the hosted
application.  I wanted to start with something simple where the end-user
select a folder that contains a list of DICOM files (one series) and pass it to
my application. After choosing the folder; I am updating the AvailableData
structure and then publish it to the hosted application when I am starting it.
By the time the SOAP request is done I could see that the SOAP message will
contains my list of uuids I created for one series but when the message is
received (</span><span style='font-size:10.0pt;font-family:ProggySquareTTSZ;
color:black'>ctkSoapMessageProcessorList::process method)</span><span
style='font-size:10.0pt;font-family:"Calibri","sans-serif";color:black'> on the
hosted application; the message is not the same and only contains one uuid now
for the series. Is there any limitation currently within QtSoap to support
arrays that you are aware of?  I have seen some discussion regarding on
the ctk website (<a
href="http://www.commontk.org/index.php/Documentation/DicomApplicationHosting:DataExchangeDevelopment"
target="_blank">http://www.commontk.org/index.php/Documentation/DicomApplicationHosting:DataExchangeDevelopment</a>)
but I am not sure what the status here. <o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Calibri","sans-serif";
color:black'> <o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Calibri","sans-serif";
color:black'>If there is still some restriction with QtSoap regarding the
array; should I send multiple notifyDataAvailable messages to the application;
one for each file I am willing to get on the application side. Is there any
other best alternative beside my first approach?<o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Calibri","sans-serif";
color:black'> <o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Calibri","sans-serif";
color:black'>Best,<o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Calibri","sans-serif";
color:black'>Michael<o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Calibri","sans-serif";
color:black'> <o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Calibri","sans-serif";
color:black'> <o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;
color:black'>-------------------------------------------------------------------------------------------------------------------------------</span><span
style='font-size:10.0pt;font-family:"Calibri","sans-serif";color:black'><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;
color:black'>From: Sascha Zelzer <a href="mailto:s.zelzer@dkfz-heidelberg.de"
target="_blank"><s.zelzer@dkfz-heidelberg.de></a></span><span
style='font-size:10.0pt;font-family:"Calibri","sans-serif";color:black'><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;
color:black'>Subject: Re: [Ctk-developers] How to wrap a Qt App into an hosted
app</span><span style='font-size:10.0pt;font-family:"Calibri","sans-serif";
color:black'><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;
color:black'>        confirming to DICOM
Supplement 118 / Working Group 23</span><span style='font-size:10.0pt;
font-family:"Calibri","sans-serif";color:black'><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;
color:black'>To: <a href="mailto:ctk-developers@commontk.org" target="_blank">ctk-developers@commontk.org</a></span><span
style='font-size:10.0pt;font-family:"Calibri","sans-serif";color:black'><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;
color:black'>Message-ID: <a href="mailto:4DCD447F.7060402@dkfz-heidelberg.de"
target="_blank"><4DCD447F.7060402@dkfz-heidelberg.de></a></span><span
style='font-size:10.0pt;font-family:"Calibri","sans-serif";color:black'><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;
color:black'>Content-Type: text/plain; charset="windows-1252";
Format="flowed"</span><span style='font-size:10.0pt;font-family:"Calibri","sans-serif";
color:black'><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;
color:black'> </span><span style='font-size:10.0pt;font-family:"Calibri","sans-serif";
color:black'><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;
color:black'>Hi Michael,</span><span style='font-size:10.0pt;font-family:"Calibri","sans-serif";
color:black'><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;
color:black'> </span><span style='font-size:10.0pt;font-family:"Calibri","sans-serif";
color:black'><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;
color:black'>Welcome to the CTK mailing list.</span><span style='font-size:
10.0pt;font-family:"Calibri","sans-serif";color:black'><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;
color:black'> </span><span style='font-size:10.0pt;font-family:"Calibri","sans-serif";
color:black'><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;
color:black'>DICOM Application Hosting support in CTK is still work in
progress, so please be aware that not everything will work yet. Especially the
data exchange interface needs more work. Nevertheless, I hope my comments below
will get you started to experiment with your own Qt based DICOM App. Comments,
bug reports, patches etc. are also always welcome!</span><span
style='font-size:10.0pt;font-family:"Calibri","sans-serif";color:black'><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;
color:black'> </span><span style='font-size:10.0pt;font-family:"Calibri","sans-serif";
color:black'><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;
color:black'>Best,</span><span style='font-size:10.0pt;font-family:"Calibri","sans-serif";
color:black'><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;
color:black'>Sascha</span><span style='font-size:10.0pt;font-family:"Calibri","sans-serif";
color:black'><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;
color:black'> </span><span style='font-size:10.0pt;font-family:"Calibri","sans-serif";
color:black'><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;
color:black'>On 05/13/2011 03:56 AM, Caylus, Michael (SCR US) wrote:</span><span
style='font-size:10.0pt;font-family:"Calibri","sans-serif";color:black'><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;
color:black'>> Hello,</span><span style='font-size:10.0pt;font-family:"Calibri","sans-serif";
color:black'><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;
color:black'>> I am new to the CTK SDK and would like to wrap my Qt
application into </span><span style='font-size:10.0pt;font-family:"Calibri","sans-serif";
color:black'><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;
color:black'>> an hosted app. I have seen such an example by turning on in
the CMake</span><span style='font-size:10.0pt;font-family:"Calibri","sans-serif";
color:black'><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;
color:black'>> configuration:  ctkExampleHost and ctkExampleHosted
App.  I came up </span><span style='font-size:10.0pt;font-family:"Calibri","sans-serif";
color:black'><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;
color:black'>> with the following questions after playing with it:</span><span
style='font-size:10.0pt;font-family:"Calibri","sans-serif";color:black'><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;
color:black'>></span><span style='font-size:10.0pt;font-family:"Calibri","sans-serif";
color:black'><o:p> </o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;
color:black'>>    1. In order to make this wrap-up for my
app; I was considering to</span><span style='font-size:10.0pt;font-family:"Calibri","sans-serif";
color:black'><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;
color:black'>>       edit the
org_commontk_dah_exampleapp plug-in which relies on the</span><span
style='font-size:10.0pt;font-family:"Calibri","sans-serif";color:black'><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;
color:black'>>       org_commontk_dah_app and
org_commontk_dah_core plug-in and keep</span><span style='font-size:10.0pt;
font-family:"Calibri","sans-serif";color:black'><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;
color:black'>>       the ctkExampleHostedApp.
Is this approach the right way to</span><span style='font-size:10.0pt;
font-family:"Calibri","sans-serif";color:black'><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;
color:black'>>       proceed? This implies
splitting my app into the hostedApp and a</span><span style='font-size:10.0pt;
font-family:"Calibri","sans-serif";color:black'><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;
color:black'>>       CTK plugin; with most of
the work to be done on the plug-in</span><span style='font-size:10.0pt;
font-family:"Calibri","sans-serif";color:black'><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;
color:black'>>       level I guess. I have
seen some doc explaining how to embed the</span><span style='font-size:10.0pt;
font-family:"Calibri","sans-serif";color:black'><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;
color:black'>>       CTK plugin framework in
my app too. Can I achieve the same</span><span style='font-size:10.0pt;
font-family:"Calibri","sans-serif";color:black'><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;
color:black'>>       result with this approach
and how?</span><span style='font-size:10.0pt;font-family:"Calibri","sans-serif";
color:black'><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;
color:black'>></span><span style='font-size:10.0pt;font-family:"Calibri","sans-serif";
color:black'><o:p> </o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;
color:black'>As you have already seen, it is possible to use the plugin
framework from inside your own application and this is also the preferred way
(instead of modifying the existing CTK plug-ins directly). In the case of a
DICOM App, I can think of two different approaches, depending on your
requirements:</span><span style='font-size:10.0pt;font-family:"Calibri","sans-serif";
color:black'><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;
color:black'> </span><span style='font-size:10.0pt;font-family:"Calibri","sans-serif";
color:black'><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;
color:black'>1.) Your app is a "pure" DICOM App, i.e. you do not need
run it outside the context of a "Hosting Application"</span><span
style='font-size:10.0pt;font-family:"Calibri","sans-serif";color:black'><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;
color:black'> </span><span style='font-size:10.0pt;font-family:"Calibri","sans-serif";
color:black'><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;
color:black'>This is the easier approach. You would create your own plug-in,
equivalent to org.commontk.dah.exampleapp, which contains all your app code
(logic, widgets, etc.). Additionally, you create your own ctkExampleHostedApp
executable, which is essentially the same code as in the CTK repository (just
adapt paths and plug-in names).</span><span style='font-size:10.0pt;font-family:
"Calibri","sans-serif";color:black'><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;
color:black'> </span><span style='font-size:10.0pt;font-family:"Calibri","sans-serif";
color:black'><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;
color:black'>The</span><span style='font-size:10.0pt;font-family:"Calibri","sans-serif";
color:black'><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;
color:black'><a
href="http://www.commontk.org/index.php/Documentation/CTK_Plugin_Framework:_Setting_up_a_project?action=purge"
target="_blank">http://www.commontk.org/index.php/Documentation/CTK_Plugin_Framework:_Setting_up_a_project?action=purge</a></span><span
style='font-size:10.0pt;font-family:"Calibri","sans-serif";color:black'><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;
color:black'>tutorial explains how to create a CTK-based project.</span><span
style='font-size:10.0pt;font-family:"Calibri","sans-serif";color:black'><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;
color:black'> </span><span style='font-size:10.0pt;font-family:"Calibri","sans-serif";
color:black'><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;
color:black'>2.) You want to use your app both "stand-alone" and as a
"hosted app"</span><span style='font-size:10.0pt;font-family:"Calibri","sans-serif";
color:black'><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;
color:black'> </span><span style='font-size:10.0pt;font-family:"Calibri","sans-serif";
color:black'><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;
color:black'>This involves a little bit more knowledge about the plugin
framework, but should also be easy to achieve. What the
org.commontk.dah.exampleapp plug-in actually does, is to register a class
containing the DICOM "application logic" as a service within the
plugin-framework. You could either create this class (similar as the
ctkExampleDicomAppLocig class) inside your current project (not in a separate
plug-in) and register an instance by using the plugin framework context, or
create a small plug-in containing this class and taking care of the
registration itself. Then start the plugin framework from inside your
executable, if you recognize the host and app url command line parameters
(otherwise, create a QMainWindow yourself).</span><span style='font-size:10.0pt;
font-family:"Calibri","sans-serif";color:black'><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;
color:black'> </span><span style='font-size:10.0pt;font-family:"Calibri","sans-serif";
color:black'><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;
color:black'>Depending on how fancy you would like to get concerning the
minimization of dependencies of your app in stand-alone mode to the CTK
libraries, you could think of a more complex set-up containing two small
wrapper executables, one for "app mode" starting the CTK plugin
framework and one for "stand-alone mode", both linked to a library
containing your application gui and logic...</span><span style='font-size:10.0pt;
font-family:"Calibri","sans-serif";color:black'><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;
color:black'> </span><span style='font-size:10.0pt;font-family:"Calibri","sans-serif";
color:black'><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;
color:black'>>    1. I couldn?t find to which QMainWindow is
the button attached to</span><span style='font-size:10.0pt;font-family:"Calibri","sans-serif";
color:black'><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;
color:black'>>       in the ctkExampleDicomAppLogic::do_something()function.It</span><span
style='font-size:10.0pt;font-family:"Calibri","sans-serif";color:black'><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;
color:black'>>       doesn?t look like
thectkExampleDicomAppLogic is heritating from</span><span style='font-size:
10.0pt;font-family:"Calibri","sans-serif";color:black'><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;
color:black'>>       a widgetalso. Which
object is responsible of the creation of the</span><span style='font-size:10.0pt;
font-family:"Calibri","sans-serif";color:black'><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;
color:black'>>       mainwindow?</span><span
style='font-size:10.0pt;font-family:"Calibri","sans-serif";color:black'><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;
color:black'>></span><span style='font-size:10.0pt;font-family:"Calibri","sans-serif";
color:black'><o:p> </o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;
color:black'> </span><span style='font-size:10.0pt;font-family:"Calibri","sans-serif";
color:black'><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;
color:black'>The org.commontk.dah.exampleapp plugin does not create a
QMainWindow. It just create a button an shows it (moved and resized to respect
the prescribed screen area from the host). In Qt, widgets become top-level
windows if they don't have a parent widget and are "shown".</span><span
style='font-size:10.0pt;font-family:"Calibri","sans-serif";color:black'><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;
color:black'> </span><span style='font-size:10.0pt;font-family:"Calibri","sans-serif";
color:black'><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;
color:black'>>    1. Is there any doc that explains how to
create a CTK plug-in and</span><span style='font-size:10.0pt;font-family:"Calibri","sans-serif";
color:black'><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;
color:black'>>       App from scratch. It
would be probably better in my case to</span><span style='font-size:10.0pt;
font-family:"Calibri","sans-serif";color:black'><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;
color:black'>>       create a new plugin
instead of editing an existing one.</span><span style='font-size:10.0pt;
font-family:"Calibri","sans-serif";color:black'><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;
color:black'>></span><span style='font-size:10.0pt;font-family:"Calibri","sans-serif";
color:black'><o:p> </o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;
color:black'> </span><span style='font-size:10.0pt;font-family:"Calibri","sans-serif";
color:black'><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;
color:black'>There is no doc about creating a plug-in yet, but you can easily
create one by using the ctkPluginGenerator executable (you may have to enable
it in CMake). It might have some rough edges though...</span><span
style='font-size:10.0pt;font-family:"Calibri","sans-serif";color:black'><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;
color:black'> </span><span style='font-size:10.0pt;font-family:"Calibri","sans-serif";
color:black'><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;
color:black'>A CTK "app" is actually nothing special. Any executable
can do, which links to the CTK libraries. The tutorial linked above explains
how to use the plugin framework in an arbitrary executable.</span><span
style='font-size:10.0pt;font-family:"Calibri","sans-serif";color:black'><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;
color:black'> </span><span style='font-size:10.0pt;font-family:"Calibri","sans-serif";
color:black'><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;
color:black'> </span><span style='font-size:10.0pt;font-family:"Calibri","sans-serif";
color:black'><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;
color:black'>>    1. How can I add additional includes
directories through a</span><span style='font-size:10.0pt;font-family:"Calibri","sans-serif";
color:black'><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;
color:black'>>       CMakeLists in the CTK
framework.  I couldn?t find a way to</span><span style='font-size:10.0pt;
font-family:"Calibri","sans-serif";color:black'><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;
color:black'>>       define additional
directories in the CMakeList of a plug-in (no</span><span style='font-size:
10.0pt;font-family:"Calibri","sans-serif";color:black'><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;
color:black'>>       include_directories). Is
that define somewhere else?</span><span style='font-size:10.0pt;font-family:
"Calibri","sans-serif";color:black'><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;
color:black'>></span><span style='font-size:10.0pt;font-family:"Calibri","sans-serif";
color:black'><o:p> </o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;
color:black'> </span><span style='font-size:10.0pt;font-family:"Calibri","sans-serif";
color:black'><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;
color:black'>Inside CTK itself, include directories are set-up auto-magically
through our custom CMake dependency system. If you need to use external
libraries in your own CTK plug-in (contained in your own project), just use
standard CMake INCLUDE_DIRECTORIES (before calling the ctkMacroBuildPlugin
macro) and LINK_LIBRARIES(${PROJECT_NAME} ...) (after the ctkMacroBuildPlugin
call) commands.</span><span style='font-size:10.0pt;font-family:"Calibri","sans-serif";
color:black'><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;
color:black'> </span><span style='font-size:10.0pt;font-family:"Calibri","sans-serif";
color:black'><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;
color:black'>Happy coding,</span><span style='font-size:10.0pt;font-family:
"Calibri","sans-serif";color:black'><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;
color:black'> </span><span style='font-size:10.0pt;font-family:"Calibri","sans-serif";
color:black'><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;
color:black'>Sascha</span><span style='font-size:10.0pt;font-family:"Calibri","sans-serif";
color:black'><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;
color:black'>-------------- next part --------------</span><span
style='font-size:10.0pt;font-family:"Calibri","sans-serif";color:black'><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;
color:black'>An HTML attachment was scrubbed...</span><span style='font-size:
10.0pt;font-family:"Calibri","sans-serif";color:black'><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;
color:black'>URL: <<a
href="http://public.kitware.com/pipermail/ctk-developers/attachments/20110513/539b8908/attachment-0001.htm"
target="_blank">http://public.kitware.com/pipermail/ctk-developers/attachments/20110513/539b8908/attachment-0001.htm</a>></span><span
style='font-size:10.0pt;font-family:"Calibri","sans-serif";color:black'><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;
color:black'> </span><span style='font-size:10.0pt;font-family:"Calibri","sans-serif";
color:black'><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;
color:black'>------------------------------</span><span style='font-size:10.0pt;
font-family:"Calibri","sans-serif";color:black'><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;
color:black'> </span><span style='font-size:10.0pt;font-family:"Calibri","sans-serif";
color:black'><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;
color:black'>_______________________________________________</span><span
style='font-size:10.0pt;font-family:"Calibri","sans-serif";color:black'><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;
color:black'>Ctk-developers mailing list</span><span style='font-size:10.0pt;
font-family:"Calibri","sans-serif";color:black'><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;
color:black'><a href="mailto:Ctk-developers@commontk.org" target="_blank">Ctk-developers@commontk.org</a></span><span
style='font-size:10.0pt;font-family:"Calibri","sans-serif";color:black'><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;
color:black'><a
href="http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers"
target="_blank">http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers</a></span><span
style='font-size:10.0pt;font-family:"Calibri","sans-serif";color:black'><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;
color:black'> </span><span style='font-size:10.0pt;font-family:"Calibri","sans-serif";
color:black'><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;
color:black'> </span><span style='font-size:10.0pt;font-family:"Calibri","sans-serif";
color:black'><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;
color:black'>End of Ctk-developers Digest, Vol 22, Issue 6</span><span
style='font-size:10.0pt;font-family:"Calibri","sans-serif";color:black'><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:Consolas;
color:black'>*********************************************</span><span
style='font-size:10.0pt;font-family:"Calibri","sans-serif";color:black'><o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Calibri","sans-serif";
color:black'> <o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Calibri","sans-serif";
color:black'> <o:p></o:p></span></p>

</div>

<p class=MsoNormal><span style='color:black'><br>
<br>
_______________________________________________<br>
Ctk-developers mailing list<br>
Ctk-developers@commontk.org<br>
http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers<o:p></o:p></span></p>

</blockquote>

<p class=MsoNormal><span style='color:black'><o:p> </o:p></span></p>

</div>

</div>

</div>

</body>

</html>