From haehn at bwh.harvard.edu Thu Jun 2 16:57:36 2011 From: haehn at bwh.harvard.edu (Daniel Haehn) Date: Thu, 2 Jun 2011 12:57:36 -0400 Subject: [Ctk-developers] Using ctkWorkflowWidgetStep.setBackButtonText or .setButtonBoxHints in Python Message-ID: Hi guys, I am trying to hide the buttonbox on a ctkWorkflowWidgetStep in Python but I can not access the method: a = ctk.ctkWorkflowWidgetStep() ... a.setButtonBoxHints(..) # does not exist Accessing the ButtonBoxHint enum with its values is possible. Also, I am missing access to a.setBackButtonText(..). Am I doing something wrong or is the doxygen documentation outdated? Thanks, Daniel From pieper at ibility.net Thu Jun 2 17:06:57 2011 From: pieper at ibility.net (Steve Pieper) Date: Thu, 2 Jun 2011 13:06:57 -0400 Subject: [Ctk-developers] Using ctkWorkflowWidgetStep.setBackButtonText or .setButtonBoxHints in Python In-Reply-To: References: Message-ID: Hi Daniel - With the PythonQt wrapping, only properties, signals/slots, and methods tagged with Q_INVOKABLE are available in python. I would argue that we should try to expose the public API of our widgets as much as possible to python but right now there is a lot of functionality that is only available via C++. -Steve On Thu, Jun 2, 2011 at 12:57 PM, Daniel Haehn wrote: > Hi guys, > > I am trying to hide the buttonbox on a ctkWorkflowWidgetStep in Python > but I can not access the method: > > a = ctk.ctkWorkflowWidgetStep() > ... > a.setButtonBoxHints(..) # does not exist > > Accessing the ButtonBoxHint enum with its values is possible. > > Also, I am missing access to a.setBackButtonText(..). > > Am I doing something wrong or is the doxygen documentation outdated? > > Thanks, > Daniel > _______________________________________________ > Ctk-developers mailing list > Ctk-developers at commontk.org > http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers > From jchris.fillionr at kitware.com Thu Jun 2 17:07:15 2011 From: jchris.fillionr at kitware.com (Jean-Christophe Fillion-Robin) Date: Thu, 2 Jun 2011 13:07:15 -0400 Subject: [Ctk-developers] Using ctkWorkflowWidgetStep.setBackButtonText or .setButtonBoxHints in Python In-Reply-To: References: Message-ID: Hi Daniel, Please consider the following remarks, * The doxygen documentation is up-to-date. See http://www.commontk.org/docs/html/index.html The text on the bottom right corner indicates: june 2nd * The doxygen documentation refers to the Cpp API. As of today, there are no indication reported letting the user know if the method is available from python. * Looking at the code of ctkWorkflowWidgetStep, backButtonText is added to the meta object system as a property (using Q_PROPERTY). It means, it can be set/get using the following syntax: a.backButtonText = "Play again" print a.backButtonText Hth Jc On Thu, Jun 2, 2011 at 12:57 PM, Daniel Haehn wrote: > Hi guys, > > I am trying to hide the buttonbox on a ctkWorkflowWidgetStep in Python > but I can not access the method: > > a = ctk.ctkWorkflowWidgetStep() > ... > a.setButtonBoxHints(..) # does not exist > > Accessing the ButtonBoxHint enum with its values is possible. > > Also, I am missing access to a.setBackButtonText(..). > > Am I doing something wrong or is the doxygen documentation outdated? > > Thanks, > Daniel > _______________________________________________ > Ctk-developers mailing list > Ctk-developers at commontk.org > http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers > -- +1 919 869 8849 -------------- next part -------------- An HTML attachment was scrubbed... URL: From jchris.fillionr at kitware.com Thu Jun 2 18:26:33 2011 From: jchris.fillionr at kitware.com (Jean-Christophe Fillion-Robin) Date: Thu, 2 Jun 2011 14:26:33 -0400 Subject: [Ctk-developers] Using ctkWorkflowWidgetStep.setBackButtonText or .setButtonBoxHints in Python In-Reply-To: References: Message-ID: On Thu, Jun 2, 2011 at 1:06 PM, Steve Pieper wrote: > Hi Daniel - > > With the PythonQt wrapping, only properties, signals/slots, and > methods tagged with Q_INVOKABLE are available in python. > Correct. > I would argue that we should try to expose the public API of our > widgets as much as possible to python but right now there is a lot of > functionality that is only available via C++. > When the API of class is designed, efforts are put to elaborate it. Similarly, the same thought process should be done regarding the usability of the object from within python. To validate the API, a set of test *are* (should be) developed. As of today, these tests are written in Cpp. We could think of having tests also written in Python. - > > -Steve > > On Thu, Jun 2, 2011 at 12:57 PM, Daniel Haehn > wrote: > > Hi guys, > > > > I am trying to hide the buttonbox on a ctkWorkflowWidgetStep in Python > > but I can not access the method: > > > > a = ctk.ctkWorkflowWidgetStep() > > ... > > a.setButtonBoxHints(..) # does not exist > > > > Accessing the ButtonBoxHint enum with its values is possible. > > > > Also, I am missing access to a.setBackButtonText(..). > > > > Am I doing something wrong or is the doxygen documentation outdated? > > > > Thanks, > > Daniel > > _______________________________________________ > > Ctk-developers mailing list > > Ctk-developers at commontk.org > > http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers > > > _______________________________________________ > Ctk-developers mailing list > Ctk-developers at commontk.org > http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers > -- +1 919 869 8849 -------------- next part -------------- An HTML attachment was scrubbed... URL: From haehn at bwh.harvard.edu Fri Jun 3 00:20:35 2011 From: haehn at bwh.harvard.edu (Daniel Haehn) Date: Thu, 2 Jun 2011 20:20:35 -0400 Subject: [Ctk-developers] Using ctkWorkflowWidgetStep.setBackButtonText or .setButtonBoxHints in Python In-Reply-To: References: Message-ID: Steve, JC, thanks for the detailed replies! Is there something which would prevent making the buttonhints for the wizard steps Q_INVOKABLE? Cheers, Daniel On Jun 2, 2011 2:26 PM, "Jean-Christophe Fillion-Robin" < jchris.fillionr at kitware.com> wrote: > On Thu, Jun 2, 2011 at 1:06 PM, Steve Pieper wrote: > >> Hi Daniel - >> >> With the PythonQt wrapping, only properties, signals/slots, and >> methods tagged with Q_INVOKABLE are available in python. >> > > Correct. > > >> I would argue that we should try to expose the public API of our >> widgets as much as possible to python but right now there is a lot of >> functionality that is only available via C++. >> > > When the API of class is designed, efforts are put to elaborate it. > Similarly, the same thought process should be done regarding the usability > of the object from within python. > > To validate the API, a set of test *are* (should be) developed. As of today, > these tests are written in Cpp. We could think of having tests also written > in Python. > > - > >> >> -Steve >> >> On Thu, Jun 2, 2011 at 12:57 PM, Daniel Haehn >> wrote: >> > Hi guys, >> > >> > I am trying to hide the buttonbox on a ctkWorkflowWidgetStep in Python >> > but I can not access the method: >> > >> > a = ctk.ctkWorkflowWidgetStep() >> > ... >> > a.setButtonBoxHints(..) # does not exist >> > >> > Accessing the ButtonBoxHint enum with its values is possible. >> > >> > Also, I am missing access to a.setBackButtonText(..). >> > >> > Am I doing something wrong or is the doxygen documentation outdated? >> > >> > Thanks, >> > Daniel >> > _______________________________________________ >> > Ctk-developers mailing list >> > Ctk-developers at commontk.org >> > http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers >> > >> _______________________________________________ >> Ctk-developers mailing list >> Ctk-developers at commontk.org >> http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers >> > > > > -- > +1 919 869 8849 -------------- next part -------------- An HTML attachment was scrubbed... URL: From jchris.fillionr at kitware.com Fri Jun 3 03:46:49 2011 From: jchris.fillionr at kitware.com (Jean-Christophe Fillion-Robin) Date: Thu, 2 Jun 2011 23:46:49 -0400 Subject: [Ctk-developers] Using ctkWorkflowWidgetStep.setBackButtonText or .setButtonBoxHints in Python In-Reply-To: References: Message-ID: Hi Daniel, The requested feature has been implemented, see https://github.com/commontk/CTK/commit/e8b169829d679e07fd13d2878960af0784edaed8 Please refer to the comment for more details. Thanks Jc On Thu, Jun 2, 2011 at 8:20 PM, Daniel Haehn wrote: > Steve, JC, thanks for the detailed replies! > > Is there something which would prevent making the buttonhints for the > wizard steps Q_INVOKABLE? > > Cheers, > Daniel > On Jun 2, 2011 2:26 PM, "Jean-Christophe Fillion-Robin" < > jchris.fillionr at kitware.com> wrote: > > On Thu, Jun 2, 2011 at 1:06 PM, Steve Pieper wrote: > > > >> Hi Daniel - > >> > >> With the PythonQt wrapping, only properties, signals/slots, and > >> methods tagged with Q_INVOKABLE are available in python. > >> > > > > Correct. > > > > > >> I would argue that we should try to expose the public API of our > >> widgets as much as possible to python but right now there is a lot of > >> functionality that is only available via C++. > >> > > > > When the API of class is designed, efforts are put to elaborate it. > > Similarly, the same thought process should be done regarding the > usability > > of the object from within python. > > > > To validate the API, a set of test *are* (should be) developed. As of > today, > > these tests are written in Cpp. We could think of having tests also > written > > in Python. > > > > - > > > >> > >> -Steve > >> > >> On Thu, Jun 2, 2011 at 12:57 PM, Daniel Haehn > >> wrote: > >> > Hi guys, > >> > > >> > I am trying to hide the buttonbox on a ctkWorkflowWidgetStep in Python > >> > but I can not access the method: > >> > > >> > a = ctk.ctkWorkflowWidgetStep() > >> > ... > >> > a.setButtonBoxHints(..) # does not exist > >> > > >> > Accessing the ButtonBoxHint enum with its values is possible. > >> > > >> > Also, I am missing access to a.setBackButtonText(..). > >> > > >> > Am I doing something wrong or is the doxygen documentation outdated? > >> > > >> > Thanks, > >> > Daniel > >> > _______________________________________________ > >> > Ctk-developers mailing list > >> > Ctk-developers at commontk.org > >> > http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers > >> > > >> _______________________________________________ > >> Ctk-developers mailing list > >> Ctk-developers at commontk.org > >> http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers > >> > > > > > > > > -- > > +1 919 869 8849 > -- +1 919 869 8849 -------------- next part -------------- An HTML attachment was scrubbed... URL: From haehn at bwh.harvard.edu Fri Jun 3 11:37:04 2011 From: haehn at bwh.harvard.edu (Daniel Haehn) Date: Fri, 3 Jun 2011 07:37:04 -0400 Subject: [Ctk-developers] Using ctkWorkflowWidgetStep.setBackButtonText or .setButtonBoxHints in Python In-Reply-To: References: Message-ID: Great! Thanks a lot, Daniel On Jun 2, 2011 11:47 PM, "Jean-Christophe Fillion-Robin" < jchris.fillionr at kitware.com> wrote: > Hi Daniel, > > The requested feature has been implemented, see > https://github.com/commontk/CTK/commit/e8b169829d679e07fd13d2878960af0784edaed8 > > Please refer to the comment for more details. > > Thanks > Jc > > On Thu, Jun 2, 2011 at 8:20 PM, Daniel Haehn wrote: > >> Steve, JC, thanks for the detailed replies! >> >> Is there something which would prevent making the buttonhints for the >> wizard steps Q_INVOKABLE? >> >> Cheers, >> Daniel >> On Jun 2, 2011 2:26 PM, "Jean-Christophe Fillion-Robin" < >> jchris.fillionr at kitware.com> wrote: >> > On Thu, Jun 2, 2011 at 1:06 PM, Steve Pieper wrote: >> > >> >> Hi Daniel - >> >> >> >> With the PythonQt wrapping, only properties, signals/slots, and >> >> methods tagged with Q_INVOKABLE are available in python. >> >> >> > >> > Correct. >> > >> > >> >> I would argue that we should try to expose the public API of our >> >> widgets as much as possible to python but right now there is a lot of >> >> functionality that is only available via C++. >> >> >> > >> > When the API of class is designed, efforts are put to elaborate it. >> > Similarly, the same thought process should be done regarding the >> usability >> > of the object from within python. >> > >> > To validate the API, a set of test *are* (should be) developed. As of >> today, >> > these tests are written in Cpp. We could think of having tests also >> written >> > in Python. >> > >> > - >> > >> >> >> >> -Steve >> >> >> >> On Thu, Jun 2, 2011 at 12:57 PM, Daniel Haehn >> >> wrote: >> >> > Hi guys, >> >> > >> >> > I am trying to hide the buttonbox on a ctkWorkflowWidgetStep in Python >> >> > but I can not access the method: >> >> > >> >> > a = ctk.ctkWorkflowWidgetStep() >> >> > ... >> >> > a.setButtonBoxHints(..) # does not exist >> >> > >> >> > Accessing the ButtonBoxHint enum with its values is possible. >> >> > >> >> > Also, I am missing access to a.setBackButtonText(..). >> >> > >> >> > Am I doing something wrong or is the doxygen documentation outdated? >> >> > >> >> > Thanks, >> >> > Daniel >> >> > _______________________________________________ >> >> > Ctk-developers mailing list >> >> > Ctk-developers at commontk.org >> >> > http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers >> >> > >> >> _______________________________________________ >> >> Ctk-developers mailing list >> >> Ctk-developers at commontk.org >> >> http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers >> >> >> > >> > >> > >> > -- >> > +1 919 869 8849 >> > > > > -- > +1 919 869 8849 -------------- next part -------------- An HTML attachment was scrubbed... URL: From haehn at bwh.harvard.edu Fri Jun 3 16:17:23 2011 From: haehn at bwh.harvard.edu (Daniel Haehn) Date: Fri, 3 Jun 2011 12:17:23 -0400 Subject: [Ctk-developers] Setting name and description of ctkWorkflowWidgetStep Message-ID: Hi devels, in C++ I can do this->setName("Title of step"); this->setDescription("Instructions"); in a ctkWorkflowWidgetStep, which then get nicely displayed in the associated ctkWorkflowGroupBox. In Python, the same methods can be accessed but the ctkWorkflowGroupBox does not seem to show them. Do I need to trigger an update on the box or something similar? Thank you! Daniel From haehn at bwh.harvard.edu Fri Jun 3 19:13:39 2011 From: haehn at bwh.harvard.edu (Daniel Haehn) Date: Fri, 3 Jun 2011 15:13:39 -0400 Subject: [Ctk-developers] Setting name and description of ctkWorkflowWidgetStep In-Reply-To: References: Message-ID: Hi guys, I got it: the ctkWorkflowGroupBox listens for the currentStepChanged signal to update the title (==name) and subTitle (==description) for the current step. So maybe it makes sense to invoke this signal when the ctkWorkflow.start() gets called? If I do it manually like that, it works: self.workflow.start() self.workflow.currentStepChanged(steps[0]) Cheers, Daniel On Fri, Jun 3, 2011 at 12:17 PM, Daniel Haehn wrote: > Hi devels, > > in C++ I can do > > ?this->setName("Title of step"); > ?this->setDescription("Instructions"); > > in a ctkWorkflowWidgetStep, which then get nicely displayed in the > associated ctkWorkflowGroupBox. > > In Python, the same methods can be accessed but the > ctkWorkflowGroupBox does not seem to show them. > > Do I need to trigger an update on the box or something similar? > > Thank you! > Daniel > From haehn at bwh.harvard.edu Fri Jun 3 19:34:51 2011 From: haehn at bwh.harvard.edu (Daniel Haehn) Date: Fri, 3 Jun 2011 15:34:51 -0400 Subject: [Ctk-developers] Another ctkWorkflow thingie: goToStep(..) goes always back to starting step Message-ID: Hi guys, if I use ctkWorkflow.goToStep(x), the workflow goes to the step x along the workflow (according to onEntry, validate and onExit calls). But then, after reaching step x, it goes directly back to where I am coming from - again along the workflow. This goes so fast so it seems there is no movement at all. I digged a little and it seems line 1035 in ctkWorkflow.cpp is not right? After reaching the 'finish step' (which in my understanding is the target step), it goes back to the starting step. 1019 // -------------------------------------------------------------------------- 1020 void ctkWorkflow::goToStepSucceeded() 1021 { 1022 Q_D(ctkWorkflow); 1023 1024 logger.debug("goToStepSucceeded"); 1025 1026 // after success, go back to the step at which we begin looking for 1027 // the finish step (will exit the current step and enter the starting step) 1028 1029 d->createTransitionToPreviousStartingStep(d->StartingStep, d->CurrentStep); 1030 1031 d->GoToStep = 0; 1032 d->StartingStep->setStatusText("Attempt to go to the finish step succeeded"); 1033 d->StartingStep = 0; 1034 1035 this->goFromGoToStepToStartingStep(); 1036 } 1037 Is this correct behavior and I understand the goToStep(x) call wrong or is this a bug? Cheers, Daniel From danielle.pace at kitware.com Fri Jun 3 19:40:04 2011 From: danielle.pace at kitware.com (Danielle Pace) Date: Fri, 3 Jun 2011 15:40:04 -0400 Subject: [Ctk-developers] Another ctkWorkflow thingie: goToStep(..) goes always back to starting step In-Reply-To: References: Message-ID: Hi Daniel, This is the intended behavior when using 'goToStep'. The idea is that, partway through the workflow, you could execute the steps until a 'finish step' was reached - using the default parameters for those steps. Then you can evaluate the results that occur with default parameters. If you get to the 'finish' step successfully, it puts you back where you started - so that you can continue to step through and alter parameters if you like. If you do not get to the 'finish' step successfully (i.e. default parameters produce errors on your data or because of the parameters you set in prior steps), it will stop at the error. Hope that helps, Danielle On Fri, Jun 3, 2011 at 3:34 PM, Daniel Haehn wrote: > Hi guys, > > if I use ctkWorkflow.goToStep(x), the workflow goes to the step x > along the workflow (according to onEntry, validate and onExit calls). > > But then, after reaching step x, it goes directly back to where I am > coming from - again along the workflow. This goes so fast so it seems > there is no movement at all. > > I digged a little and it seems line 1035 in ctkWorkflow.cpp is not > right? After reaching the 'finish step' (which in my understanding is > the target step), it goes back to the starting step. > > > 1019 // > -------------------------------------------------------------------------- > 1020 void ctkWorkflow::goToStepSucceeded() > 1021 { > 1022 Q_D(ctkWorkflow); > 1023 > 1024 logger.debug("goToStepSucceeded"); > 1025 > 1026 // after success, go back to the step at which we begin looking for > 1027 // the finish step (will exit the current step and enter the > starting step) > 1028 > 1029 d->createTransitionToPreviousStartingStep(d->StartingStep, > d->CurrentStep); > 1030 > 1031 d->GoToStep = 0; > 1032 d->StartingStep->setStatusText("Attempt to go to the finish > step succeeded"); > 1033 d->StartingStep = 0; > 1034 > 1035 this->goFromGoToStepToStartingStep(); > 1036 } > 1037 > > Is this correct behavior and I understand the goToStep(x) call wrong > or is this a bug? > > Cheers, > Daniel > _______________________________________________ > Ctk-developers mailing list > Ctk-developers at commontk.org > http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers > -- Danielle Pace, M.ESc. Research and Development Engineer Kitware Inc., North Carolina Office www.kitware.com 919-969-6990 X 319 -------------- next part -------------- An HTML attachment was scrubbed... URL: From haehn at bwh.harvard.edu Fri Jun 3 19:45:57 2011 From: haehn at bwh.harvard.edu (Daniel Haehn) Date: Fri, 3 Jun 2011 15:45:57 -0400 Subject: [Ctk-developers] Another ctkWorkflow thingie: goToStep(..) goes always back to starting step In-Reply-To: References: Message-ID: Hi Danielle, hm this does not make totally sense to me. What about the canGoToStep method - this only checks for next step? Wouldn't it make more sense to have the behavior I observed and you described for the canGoToStep call and do not go back when you call goToStep? Or is there another method I could use to go from step 1 to step 4, f.e.? Thanks Daniel On Fri, Jun 3, 2011 at 3:40 PM, Danielle Pace wrote: > Hi Daniel, > This is the intended behavior when using 'goToStep'. > The idea is that, partway through the workflow, you could execute the steps > until a 'finish step' was reached - using the default parameters for those > steps. ?Then you can evaluate the results that occur with default > parameters. ?If you get to the 'finish' step successfully, it puts you back > where you started - so that you can continue to step through and alter > parameters if you like. > If you do not get to the 'finish' step successfully (i.e. default parameters > produce errors on your data or because of the parameters you set in prior > steps), it will stop at the error. > Hope that helps, > > Danielle > > > > > On Fri, Jun 3, 2011 at 3:34 PM, Daniel Haehn wrote: >> >> Hi guys, >> >> if I use ctkWorkflow.goToStep(x), the workflow goes to the step x >> along the workflow (according to onEntry, validate and onExit calls). >> >> But then, after reaching step x, it goes directly back to where I am >> coming from - again along the workflow. This goes so fast so it seems >> there is no movement at all. >> >> I digged a little and it seems line 1035 in ctkWorkflow.cpp is not >> right? After reaching the 'finish step' (which in my understanding is >> the target step), it goes back to the starting step. >> >> >> 1019 // >> -------------------------------------------------------------------------- >> 1020 void ctkWorkflow::goToStepSucceeded() >> 1021 { >> 1022 ? Q_D(ctkWorkflow); >> 1023 >> 1024 ? logger.debug("goToStepSucceeded"); >> 1025 >> 1026 ? // after success, go back to the step at which we begin looking for >> 1027 ? // the finish step (will exit the current step and enter the >> starting step) >> 1028 >> 1029 ? d->createTransitionToPreviousStartingStep(d->StartingStep, >> d->CurrentStep); >> 1030 >> 1031 ? d->GoToStep = 0; >> 1032 ? d->StartingStep->setStatusText("Attempt to go to the finish >> step succeeded"); >> 1033 ? d->StartingStep = 0; >> 1034 >> 1035 ? this->goFromGoToStepToStartingStep(); >> 1036 } >> 1037 >> >> Is this correct behavior and I understand the goToStep(x) call wrong >> or is this a bug? >> >> Cheers, >> Daniel >> _______________________________________________ >> Ctk-developers mailing list >> Ctk-developers at commontk.org >> http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers > > > > -- > Danielle Pace, M.ESc. > Research and Development Engineer > Kitware Inc., > North Carolina Office > www.kitware.com > 919-969-6990 X 319 > From danielle.pace at kitware.com Fri Jun 3 19:52:51 2011 From: danielle.pace at kitware.com (Danielle Pace) Date: Fri, 3 Jun 2011 15:52:51 -0400 Subject: [Ctk-developers] Another ctkWorkflow thingie: goToStep(..) goes always back to starting step In-Reply-To: References: Message-ID: Hi Daniel, CanGoToStep checks to see if a path exists between two steps - so it is not helpful in your case. Right now, there is no method to go to a specific step without transitioning back. We could add a property that dictates whether to go back to the starting step after successfully getting to a 'finish' step... Thanks, Danielle On Fri, Jun 3, 2011 at 3:45 PM, Daniel Haehn wrote: > Hi Danielle, > > hm this does not make totally sense to me. What about the canGoToStep > method - this only checks for next step? > > Wouldn't it make more sense to have the behavior I observed and you > described for the canGoToStep call and do not go back when you call > goToStep? > > Or is there another method I could use to go from step 1 to step 4, f.e.? > > Thanks > Daniel > > On Fri, Jun 3, 2011 at 3:40 PM, Danielle Pace > wrote: > > Hi Daniel, > > This is the intended behavior when using 'goToStep'. > > The idea is that, partway through the workflow, you could execute the > steps > > until a 'finish step' was reached - using the default parameters for > those > > steps. Then you can evaluate the results that occur with default > > parameters. If you get to the 'finish' step successfully, it puts you > back > > where you started - so that you can continue to step through and alter > > parameters if you like. > > If you do not get to the 'finish' step successfully (i.e. default > parameters > > produce errors on your data or because of the parameters you set in prior > > steps), it will stop at the error. > > Hope that helps, > > > > Danielle > > > > > > > > > > On Fri, Jun 3, 2011 at 3:34 PM, Daniel Haehn > wrote: > >> > >> Hi guys, > >> > >> if I use ctkWorkflow.goToStep(x), the workflow goes to the step x > >> along the workflow (according to onEntry, validate and onExit calls). > >> > >> But then, after reaching step x, it goes directly back to where I am > >> coming from - again along the workflow. This goes so fast so it seems > >> there is no movement at all. > >> > >> I digged a little and it seems line 1035 in ctkWorkflow.cpp is not > >> right? After reaching the 'finish step' (which in my understanding is > >> the target step), it goes back to the starting step. > >> > >> > >> 1019 // > >> > -------------------------------------------------------------------------- > >> 1020 void ctkWorkflow::goToStepSucceeded() > >> 1021 { > >> 1022 Q_D(ctkWorkflow); > >> 1023 > >> 1024 logger.debug("goToStepSucceeded"); > >> 1025 > >> 1026 // after success, go back to the step at which we begin looking > for > >> 1027 // the finish step (will exit the current step and enter the > >> starting step) > >> 1028 > >> 1029 d->createTransitionToPreviousStartingStep(d->StartingStep, > >> d->CurrentStep); > >> 1030 > >> 1031 d->GoToStep = 0; > >> 1032 d->StartingStep->setStatusText("Attempt to go to the finish > >> step succeeded"); > >> 1033 d->StartingStep = 0; > >> 1034 > >> 1035 this->goFromGoToStepToStartingStep(); > >> 1036 } > >> 1037 > >> > >> Is this correct behavior and I understand the goToStep(x) call wrong > >> or is this a bug? > >> > >> Cheers, > >> Daniel > >> _______________________________________________ > >> Ctk-developers mailing list > >> Ctk-developers at commontk.org > >> http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers > > > > > > > > -- > > Danielle Pace, M.ESc. > > Research and Development Engineer > > Kitware Inc., > > North Carolina Office > > www.kitware.com > > 919-969-6990 X 319 > > > -- Danielle Pace, M.ESc. Research and Development Engineer Kitware Inc., North Carolina Office www.kitware.com 919-969-6990 X 319 -------------- next part -------------- An HTML attachment was scrubbed... URL: From haehn at bwh.harvard.edu Fri Jun 3 19:56:46 2011 From: haehn at bwh.harvard.edu (Daniel Haehn) Date: Fri, 3 Jun 2011 15:56:46 -0400 Subject: [Ctk-developers] Another ctkWorkflow thingie: goToStep(..) goes always back to starting step In-Reply-To: References: Message-ID: Hi Danielle, the property sounds like a great idea! Thanks, Daniel On Fri, Jun 3, 2011 at 3:52 PM, Danielle Pace wrote: > Hi Daniel, > CanGoToStep checks to see if a path exists between two steps - so it is not > helpful in your case. > Right now, there is no method to go to a specific step without transitioning > back. ?We could add a property that dictates whether to go back to the > starting step after successfully getting to a 'finish' step... > Thanks, > > Danielle > > > > > On Fri, Jun 3, 2011 at 3:45 PM, Daniel Haehn wrote: >> >> Hi Danielle, >> >> hm this does not make totally sense to me. What about the canGoToStep >> method - this only checks for next step? >> >> Wouldn't it make more sense to have the behavior I observed and you >> described for the canGoToStep call and do not go back when you call >> goToStep? >> >> Or is there another method I could use to go from step 1 to step 4, f.e.? >> >> Thanks >> Daniel >> >> On Fri, Jun 3, 2011 at 3:40 PM, Danielle Pace >> wrote: >> > Hi Daniel, >> > This is the intended behavior when using 'goToStep'. >> > The idea is that, partway through the workflow, you could execute the >> > steps >> > until a 'finish step' was reached - using the default parameters for >> > those >> > steps. ?Then you can evaluate the results that occur with default >> > parameters. ?If you get to the 'finish' step successfully, it puts you >> > back >> > where you started - so that you can continue to step through and alter >> > parameters if you like. >> > If you do not get to the 'finish' step successfully (i.e. default >> > parameters >> > produce errors on your data or because of the parameters you set in >> > prior >> > steps), it will stop at the error. >> > Hope that helps, >> > >> > Danielle >> > >> > >> > >> > >> > On Fri, Jun 3, 2011 at 3:34 PM, Daniel Haehn >> > wrote: >> >> >> >> Hi guys, >> >> >> >> if I use ctkWorkflow.goToStep(x), the workflow goes to the step x >> >> along the workflow (according to onEntry, validate and onExit calls). >> >> >> >> But then, after reaching step x, it goes directly back to where I am >> >> coming from - again along the workflow. This goes so fast so it seems >> >> there is no movement at all. >> >> >> >> I digged a little and it seems line 1035 in ctkWorkflow.cpp is not >> >> right? After reaching the 'finish step' (which in my understanding is >> >> the target step), it goes back to the starting step. >> >> >> >> >> >> 1019 // >> >> >> >> -------------------------------------------------------------------------- >> >> 1020 void ctkWorkflow::goToStepSucceeded() >> >> 1021 { >> >> 1022 ? Q_D(ctkWorkflow); >> >> 1023 >> >> 1024 ? logger.debug("goToStepSucceeded"); >> >> 1025 >> >> 1026 ? // after success, go back to the step at which we begin looking >> >> for >> >> 1027 ? // the finish step (will exit the current step and enter the >> >> starting step) >> >> 1028 >> >> 1029 ? d->createTransitionToPreviousStartingStep(d->StartingStep, >> >> d->CurrentStep); >> >> 1030 >> >> 1031 ? d->GoToStep = 0; >> >> 1032 ? d->StartingStep->setStatusText("Attempt to go to the finish >> >> step succeeded"); >> >> 1033 ? d->StartingStep = 0; >> >> 1034 >> >> 1035 ? this->goFromGoToStepToStartingStep(); >> >> 1036 } >> >> 1037 >> >> >> >> Is this correct behavior and I understand the goToStep(x) call wrong >> >> or is this a bug? >> >> >> >> Cheers, >> >> Daniel >> >> _______________________________________________ >> >> Ctk-developers mailing list >> >> Ctk-developers at commontk.org >> >> http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers >> > >> > >> > >> > -- >> > Danielle Pace, M.ESc. >> > Research and Development Engineer >> > Kitware Inc., >> > North Carolina Office >> > www.kitware.com >> > 919-969-6990 X 319 >> > > > > > -- > Danielle Pace, M.ESc. > Research and Development Engineer > Kitware Inc., > North Carolina Office > www.kitware.com > 919-969-6990 X 319 > From haehn at bwh.harvard.edu Fri Jun 3 19:57:23 2011 From: haehn at bwh.harvard.edu (Daniel Haehn) Date: Fri, 3 Jun 2011 15:57:23 -0400 Subject: [Ctk-developers] Setting name and description of ctkWorkflowWidgetStep In-Reply-To: References: Message-ID: Hi Danielle, thanks to your response I checked it again and you are right: it was my mistake :) If the name and description of the steps are set before the steps are added to the workflow, it all works as expected. I set the stuff after adding it and of course it did not recognize it until the signal was fired. Thanks for the great work! Cheers, Daniel On Fri, Jun 3, 2011 at 3:44 PM, Danielle Pace wrote: > Hi Daniel, > You shouldn't have to call the currenStepChanged signal directly. ?Can you > please post your bit of code that is not working to the CTK developers > mailing list, and I will take a look? > Thanks, > > Danielle > > On Fri, Jun 3, 2011 at 3:21 PM, Julien Finet > wrote: >> >> >> ---------- Forwarded message ---------- >> From: Daniel Haehn >> Date: Fri, Jun 3, 2011 at 3:13 PM >> Subject: Re: [Ctk-developers] Setting name and description of >> ctkWorkflowWidgetStep >> To: ctk-developers at commontk.org >> >> >> Hi guys, >> >> I got it: >> >> the ctkWorkflowGroupBox listens for the currentStepChanged signal to >> update the title (==name) and subTitle (==description) for the current >> step. >> >> So maybe it makes sense to invoke this signal when the >> ctkWorkflow.start() gets called? >> >> If I do it manually like that, it works: >> >> ? ? ?self.workflow.start() >> ? ? ?self.workflow.currentStepChanged(steps[0]) >> >> Cheers, >> Daniel >> >> On Fri, Jun 3, 2011 at 12:17 PM, Daniel Haehn >> wrote: >> > Hi devels, >> > >> > in C++ I can do >> > >> > ?this->setName("Title of step"); >> > ?this->setDescription("Instructions"); >> > >> > in a ctkWorkflowWidgetStep, which then get nicely displayed in the >> > associated ctkWorkflowGroupBox. >> > >> > In Python, the same methods can be accessed but the >> > ctkWorkflowGroupBox does not seem to show them. >> > >> > Do I need to trigger an update on the box or something similar? >> > >> > Thank you! >> > Daniel >> > >> _______________________________________________ >> Ctk-developers mailing list >> Ctk-developers at commontk.org >> http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers >> > > > > -- > Danielle Pace, M.ESc. > Research and Development Engineer > Kitware Inc., > North Carolina Office > www.kitware.com > 919-969-6990 X 319 > From danielle.pace at kitware.com Fri Jun 3 20:13:38 2011 From: danielle.pace at kitware.com (Danielle Pace) Date: Fri, 3 Jun 2011 16:13:38 -0400 Subject: [Ctk-developers] Setting name and description of ctkWorkflowWidgetStep In-Reply-To: References: Message-ID: Hi Daniel, Actually, I think you exposed something important here. I'm assuming, from python, that you wrote something similar to: - create step 1 (with no name/description) - create step 2 (with no name/description) - create workflow widget and add steps - display workflow widget - set name/description for steps 1 and 2 - expected to see workflow update, and it didn't Is this correct? I think we are missing some signals on ctkWorkflowStep such as NameChanged(QString) and DescriptionChanged(QString) that the ctkWorkflowGroupBox should be listening to. Perhaps you could still post your snippet of python code that wasn't working, so I can verify that it is an ordering of commands that we should support? Thanks, Danielle On Fri, Jun 3, 2011 at 3:57 PM, Daniel Haehn wrote: > Hi Danielle, > > thanks to your response I checked it again and you are right: it was > my mistake :) > > If the name and description of the steps are set before the steps are > added to the workflow, it all works as expected. > > I set the stuff after adding it and of course it did not recognize it > until the signal was fired. > > Thanks for the great work! > > Cheers, > Daniel > > On Fri, Jun 3, 2011 at 3:44 PM, Danielle Pace > wrote: > > Hi Daniel, > > You shouldn't have to call the currenStepChanged signal directly. Can > you > > please post your bit of code that is not working to the CTK developers > > mailing list, and I will take a look? > > Thanks, > > > > Danielle > > > > On Fri, Jun 3, 2011 at 3:21 PM, Julien Finet > > wrote: > >> > >> > >> ---------- Forwarded message ---------- > >> From: Daniel Haehn > >> Date: Fri, Jun 3, 2011 at 3:13 PM > >> Subject: Re: [Ctk-developers] Setting name and description of > >> ctkWorkflowWidgetStep > >> To: ctk-developers at commontk.org > >> > >> > >> Hi guys, > >> > >> I got it: > >> > >> the ctkWorkflowGroupBox listens for the currentStepChanged signal to > >> update the title (==name) and subTitle (==description) for the current > >> step. > >> > >> So maybe it makes sense to invoke this signal when the > >> ctkWorkflow.start() gets called? > >> > >> If I do it manually like that, it works: > >> > >> self.workflow.start() > >> self.workflow.currentStepChanged(steps[0]) > >> > >> Cheers, > >> Daniel > >> > >> On Fri, Jun 3, 2011 at 12:17 PM, Daniel Haehn > >> wrote: > >> > Hi devels, > >> > > >> > in C++ I can do > >> > > >> > this->setName("Title of step"); > >> > this->setDescription("Instructions"); > >> > > >> > in a ctkWorkflowWidgetStep, which then get nicely displayed in the > >> > associated ctkWorkflowGroupBox. > >> > > >> > In Python, the same methods can be accessed but the > >> > ctkWorkflowGroupBox does not seem to show them. > >> > > >> > Do I need to trigger an update on the box or something similar? > >> > > >> > Thank you! > >> > Daniel > >> > > >> _______________________________________________ > >> Ctk-developers mailing list > >> Ctk-developers at commontk.org > >> http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers > >> > > > > > > > > -- > > Danielle Pace, M.ESc. > > Research and Development Engineer > > Kitware Inc., > > North Carolina Office > > www.kitware.com > > 919-969-6990 X 319 > > > -- Danielle Pace, M.ESc. Research and Development Engineer Kitware Inc., North Carolina Office www.kitware.com 919-969-6990 X 319 -------------- next part -------------- An HTML attachment was scrubbed... URL: From jchris.fillionr at kitware.com Fri Jun 3 20:16:19 2011 From: jchris.fillionr at kitware.com (Jean-Christophe Fillion-Robin) Date: Fri, 3 Jun 2011 16:16:19 -0400 Subject: [Ctk-developers] Another ctkWorkflow thingie: goToStep(..) goes always back to starting step In-Reply-To: References: Message-ID: Hi Daniel, * A workflow is set of transitions. * If you want to go from a Step X to a Step Y, a transition is required to exists * For conditional workflow, there is the concept of branch. * Each time you click on finish, the pipeline (or workflow) is executed. Upon success, it returns to the step from where the transition to the "finish" step was done. Having a different behavior would make sens. I propose the following: * Add a property named "GoBackToOriginStepUponSuccess" to workflow. (also open to suggestion regarding the name) * By default, this property would be False Would be great if you could implement the described behavior. To do so: 1) fork CTK on github 2) Create a topic branch named "add-GoBackToOriginStepUponSuccess-workflow-feature" of master 3) Commit both feature and updated test 4) Check that test run locally 5) Send an email to the list asking for review with a pointer to your topic 6) Danielle or myself will review your topic and integrate it into master Note: Make also sure the property is exposed in python. You could play with the following example to make sure everything is working as expected. See https://github.com/jcfr/SlicerPy/blob/master/slicer-visual-workflow-example.py Thanks Jc On Fri, Jun 3, 2011 at 3:52 PM, Danielle Pace wrote: > Hi Daniel, > > CanGoToStep checks to see if a path exists between two steps - so it is not > helpful in your case. > > Right now, there is no method to go to a specific step without > transitioning back. We could add a property that dictates whether to go > back to the starting step after successfully getting to a 'finish' step... > > Thanks, > > Danielle > > > > > > On Fri, Jun 3, 2011 at 3:45 PM, Daniel Haehn wrote: > >> Hi Danielle, >> >> hm this does not make totally sense to me. What about the canGoToStep >> method - this only checks for next step? >> >> Wouldn't it make more sense to have the behavior I observed and you >> described for the canGoToStep call and do not go back when you call >> goToStep? >> >> Or is there another method I could use to go from step 1 to step 4, f.e.? >> >> Thanks >> Daniel >> >> On Fri, Jun 3, 2011 at 3:40 PM, Danielle Pace >> wrote: >> > Hi Daniel, >> > This is the intended behavior when using 'goToStep'. >> > The idea is that, partway through the workflow, you could execute the >> steps >> > until a 'finish step' was reached - using the default parameters for >> those >> > steps. Then you can evaluate the results that occur with default >> > parameters. If you get to the 'finish' step successfully, it puts you >> back >> > where you started - so that you can continue to step through and alter >> > parameters if you like. >> > If you do not get to the 'finish' step successfully (i.e. default >> parameters >> > produce errors on your data or because of the parameters you set in >> prior >> > steps), it will stop at the error. >> > Hope that helps, >> > >> > Danielle >> > >> > >> > >> > >> > On Fri, Jun 3, 2011 at 3:34 PM, Daniel Haehn >> wrote: >> >> >> >> Hi guys, >> >> >> >> if I use ctkWorkflow.goToStep(x), the workflow goes to the step x >> >> along the workflow (according to onEntry, validate and onExit calls). >> >> >> >> But then, after reaching step x, it goes directly back to where I am >> >> coming from - again along the workflow. This goes so fast so it seems >> >> there is no movement at all. >> >> >> >> I digged a little and it seems line 1035 in ctkWorkflow.cpp is not >> >> right? After reaching the 'finish step' (which in my understanding is >> >> the target step), it goes back to the starting step. >> >> >> >> >> >> 1019 // >> >> >> -------------------------------------------------------------------------- >> >> 1020 void ctkWorkflow::goToStepSucceeded() >> >> 1021 { >> >> 1022 Q_D(ctkWorkflow); >> >> 1023 >> >> 1024 logger.debug("goToStepSucceeded"); >> >> 1025 >> >> 1026 // after success, go back to the step at which we begin looking >> for >> >> 1027 // the finish step (will exit the current step and enter the >> >> starting step) >> >> 1028 >> >> 1029 d->createTransitionToPreviousStartingStep(d->StartingStep, >> >> d->CurrentStep); >> >> 1030 >> >> 1031 d->GoToStep = 0; >> >> 1032 d->StartingStep->setStatusText("Attempt to go to the finish >> >> step succeeded"); >> >> 1033 d->StartingStep = 0; >> >> 1034 >> >> 1035 this->goFromGoToStepToStartingStep(); >> >> 1036 } >> >> 1037 >> >> >> >> Is this correct behavior and I understand the goToStep(x) call wrong >> >> or is this a bug? >> >> >> >> Cheers, >> >> Daniel >> >> _______________________________________________ >> >> Ctk-developers mailing list >> >> Ctk-developers at commontk.org >> >> http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers >> > >> > >> > >> > -- >> > Danielle Pace, M.ESc. >> > Research and Development Engineer >> > Kitware Inc., >> > North Carolina Office >> > www.kitware.com >> > 919-969-6990 X 319 >> > >> > > > > -- > Danielle Pace, M.ESc. > Research and Development Engineer > Kitware Inc., > North Carolina Office > > www.kitware.com > 919-969-6990 X 319 > > > _______________________________________________ > Ctk-developers mailing list > Ctk-developers at commontk.org > http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers > > -- +1 919 869 8849 -------------- next part -------------- An HTML attachment was scrubbed... URL: From danielle.pace at kitware.com Fri Jun 3 20:22:53 2011 From: danielle.pace at kitware.com (Danielle Pace) Date: Fri, 3 Jun 2011 16:22:53 -0400 Subject: [Ctk-developers] Another ctkWorkflow thingie: goToStep(..) goes always back to starting step In-Reply-To: References: Message-ID: FYI: The function ctkWorkflow::goToStepSucceeded() is called when ctkWorkflow::goToStep()... succeeds =) If my memory serves me correctly, you should have to simply make the two lines: d->createTransitionToPreviousStartingStep(d->StartingStep, d->CurrentStep); this->goFromGoToStepToStartingStep(); conditional on the value of the new property, and the housekeeping: d->GoToStep = 0; d->StartingStep->setStatusText("Attempt to go to the finish step succeeded"); d->StartingStep = 0; should be done regardless of the property's value. Thanks, Danielle On Fri, Jun 3, 2011 at 4:16 PM, Jean-Christophe Fillion-Robin < jchris.fillionr at kitware.com> wrote: > Hi Daniel, > > * A workflow is set of transitions. > > * If you want to go from a Step X to a Step Y, a transition is required to > exists > > * For conditional workflow, there is the concept of branch. > > * Each time you click on finish, the pipeline (or workflow) is executed. > Upon success, it returns to the step from where the transition to the > "finish" step was done. Having a different behavior would make sens. I > propose the following: > * Add a property named "GoBackToOriginStepUponSuccess" to workflow. > (also open to suggestion regarding the name) > * By default, this property would be False > > Would be great if you could implement the described behavior. To do so: > 1) fork CTK on github > 2) Create a topic branch named > "add-GoBackToOriginStepUponSuccess-workflow-feature" of master > 3) Commit both feature and updated test > 4) Check that test run locally > 5) Send an email to the list asking for review with a pointer to your > topic > 6) Danielle or myself will review your topic and integrate it into > master > > Note: Make also sure the property is exposed in python. You could play with > the following example to make sure everything is working as expected. See > https://github.com/jcfr/SlicerPy/blob/master/slicer-visual-workflow-example.py > > Thanks > Jc > > > On Fri, Jun 3, 2011 at 3:52 PM, Danielle Pace wrote: > >> Hi Daniel, >> >> CanGoToStep checks to see if a path exists between two steps - so it is >> not helpful in your case. >> >> Right now, there is no method to go to a specific step without >> transitioning back. We could add a property that dictates whether to go >> back to the starting step after successfully getting to a 'finish' step... >> >> Thanks, >> >> Danielle >> >> >> >> >> >> On Fri, Jun 3, 2011 at 3:45 PM, Daniel Haehn wrote: >> >>> Hi Danielle, >>> >>> hm this does not make totally sense to me. What about the canGoToStep >>> method - this only checks for next step? >>> >>> Wouldn't it make more sense to have the behavior I observed and you >>> described for the canGoToStep call and do not go back when you call >>> goToStep? >>> >>> Or is there another method I could use to go from step 1 to step 4, f.e.? >>> >>> Thanks >>> Daniel >>> >>> On Fri, Jun 3, 2011 at 3:40 PM, Danielle Pace >>> wrote: >>> > Hi Daniel, >>> > This is the intended behavior when using 'goToStep'. >>> > The idea is that, partway through the workflow, you could execute the >>> steps >>> > until a 'finish step' was reached - using the default parameters for >>> those >>> > steps. Then you can evaluate the results that occur with default >>> > parameters. If you get to the 'finish' step successfully, it puts you >>> back >>> > where you started - so that you can continue to step through and alter >>> > parameters if you like. >>> > If you do not get to the 'finish' step successfully (i.e. default >>> parameters >>> > produce errors on your data or because of the parameters you set in >>> prior >>> > steps), it will stop at the error. >>> > Hope that helps, >>> > >>> > Danielle >>> > >>> > >>> > >>> > >>> > On Fri, Jun 3, 2011 at 3:34 PM, Daniel Haehn >>> wrote: >>> >> >>> >> Hi guys, >>> >> >>> >> if I use ctkWorkflow.goToStep(x), the workflow goes to the step x >>> >> along the workflow (according to onEntry, validate and onExit calls). >>> >> >>> >> But then, after reaching step x, it goes directly back to where I am >>> >> coming from - again along the workflow. This goes so fast so it seems >>> >> there is no movement at all. >>> >> >>> >> I digged a little and it seems line 1035 in ctkWorkflow.cpp is not >>> >> right? After reaching the 'finish step' (which in my understanding is >>> >> the target step), it goes back to the starting step. >>> >> >>> >> >>> >> 1019 // >>> >> >>> -------------------------------------------------------------------------- >>> >> 1020 void ctkWorkflow::goToStepSucceeded() >>> >> 1021 { >>> >> 1022 Q_D(ctkWorkflow); >>> >> 1023 >>> >> 1024 logger.debug("goToStepSucceeded"); >>> >> 1025 >>> >> 1026 // after success, go back to the step at which we begin looking >>> for >>> >> 1027 // the finish step (will exit the current step and enter the >>> >> starting step) >>> >> 1028 >>> >> 1029 d->createTransitionToPreviousStartingStep(d->StartingStep, >>> >> d->CurrentStep); >>> >> 1030 >>> >> 1031 d->GoToStep = 0; >>> >> 1032 d->StartingStep->setStatusText("Attempt to go to the finish >>> >> step succeeded"); >>> >> 1033 d->StartingStep = 0; >>> >> 1034 >>> >> 1035 this->goFromGoToStepToStartingStep(); >>> >> 1036 } >>> >> 1037 >>> >> >>> >> Is this correct behavior and I understand the goToStep(x) call wrong >>> >> or is this a bug? >>> >> >>> >> Cheers, >>> >> Daniel >>> >> _______________________________________________ >>> >> Ctk-developers mailing list >>> >> Ctk-developers at commontk.org >>> >> http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers >>> > >>> > >>> > >>> > -- >>> > Danielle Pace, M.ESc. >>> > Research and Development Engineer >>> > Kitware Inc., >>> > North Carolina Office >>> > www.kitware.com >>> > 919-969-6990 X 319 >>> > >>> >> >> >> >> -- >> Danielle Pace, M.ESc. >> Research and Development Engineer >> Kitware Inc., >> North Carolina Office >> >> www.kitware.com >> 919-969-6990 X 319 >> >> >> _______________________________________________ >> Ctk-developers mailing list >> Ctk-developers at commontk.org >> http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers >> >> > > > -- > +1 919 869 8849 > > -- Danielle Pace, M.ESc. Research and Development Engineer Kitware Inc., North Carolina Office www.kitware.com 919-969-6990 X 319 -------------- next part -------------- An HTML attachment was scrubbed... URL: From haehn at bwh.harvard.edu Fri Jun 3 20:31:25 2011 From: haehn at bwh.harvard.edu (Daniel Haehn) Date: Fri, 3 Jun 2011 16:31:25 -0400 Subject: [Ctk-developers] Another ctkWorkflow thingie: goToStep(..) goes always back to starting step In-Reply-To: References: Message-ID: Hi guys, this makes sense to me. I will give it a shot at the weekend and let you know. Cheers, Daniel On Fri, Jun 3, 2011 at 4:22 PM, Danielle Pace wrote: > FYI: The function ctkWorkflow::goToStepSucceeded() is called when > ctkWorkflow::goToStep()... succeeds =) > If my memory serves me correctly, you should have to simply make the two > lines: > > d->createTransitionToPreviousStartingStep(d->StartingStep, > d->CurrentStep); > > this->goFromGoToStepToStartingStep(); > > conditional on the value of the new property, and the housekeeping: > > d->GoToStep = 0; > > d->StartingStep->setStatusText("Attempt to go to the finish step > succeeded"); > > d->StartingStep = 0; > > should be done regardless of the property's value. > Thanks, > > Danielle > > On Fri, Jun 3, 2011 at 4:16 PM, Jean-Christophe Fillion-Robin > wrote: >> >> Hi Daniel, >> >> * A workflow is set of transitions. >> >> * If you want to go from a Step X to a Step Y, a transition is required to >> exists >> >> * For conditional workflow, there is the concept of branch. >> >> * Each time you click on finish, the pipeline (or workflow) is executed. >> Upon success, it returns to the step from where the transition to the >> "finish" step was done.? Having a different behavior would make sens. I >> propose the following: >> ?? * Add a property named "GoBackToOriginStepUponSuccess" to workflow. >> (also open to suggestion regarding the name) >> ?? * By default, this property would be False >> >> Would be great if you could implement the described behavior. To do so: >> ?? 1) fork CTK on github >> ?? 2) Create a topic branch named >> "add-GoBackToOriginStepUponSuccess-workflow-feature" of master >> ?? 3) Commit both feature and updated test >> ?? 4) Check that test run locally >> ?? 5) Send an email to the list asking for review with a pointer to your >> topic >> ?? 6) Danielle or myself will review your topic and integrate it into >> master >> >> Note: Make also sure the property is exposed in python. You could play >> with the following example to make sure everything is working as expected. >> See >> https://github.com/jcfr/SlicerPy/blob/master/slicer-visual-workflow-example.py >> >> Thanks >> Jc >> >> On Fri, Jun 3, 2011 at 3:52 PM, Danielle Pace >> wrote: >>> >>> Hi Daniel, >>> CanGoToStep checks to see if a path exists between two steps - so it is >>> not helpful in your case. >>> Right now, there is no method to go to a specific step without >>> transitioning back. ?We could add a property that dictates whether to go >>> back to the starting step after successfully getting to a 'finish' step... >>> Thanks, >>> >>> Danielle >>> >>> >>> >>> >>> On Fri, Jun 3, 2011 at 3:45 PM, Daniel Haehn >>> wrote: >>>> >>>> Hi Danielle, >>>> >>>> hm this does not make totally sense to me. What about the canGoToStep >>>> method - this only checks for next step? >>>> >>>> Wouldn't it make more sense to have the behavior I observed and you >>>> described for the canGoToStep call and do not go back when you call >>>> goToStep? >>>> >>>> Or is there another method I could use to go from step 1 to step 4, >>>> f.e.? >>>> >>>> Thanks >>>> Daniel >>>> >>>> On Fri, Jun 3, 2011 at 3:40 PM, Danielle Pace >>>> wrote: >>>> > Hi Daniel, >>>> > This is the intended behavior when using 'goToStep'. >>>> > The idea is that, partway through the workflow, you could execute the >>>> > steps >>>> > until a 'finish step' was reached - using the default parameters for >>>> > those >>>> > steps. ?Then you can evaluate the results that occur with default >>>> > parameters. ?If you get to the 'finish' step successfully, it puts you >>>> > back >>>> > where you started - so that you can continue to step through and alter >>>> > parameters if you like. >>>> > If you do not get to the 'finish' step successfully (i.e. default >>>> > parameters >>>> > produce errors on your data or because of the parameters you set in >>>> > prior >>>> > steps), it will stop at the error. >>>> > Hope that helps, >>>> > >>>> > Danielle >>>> > >>>> > >>>> > >>>> > >>>> > On Fri, Jun 3, 2011 at 3:34 PM, Daniel Haehn >>>> > wrote: >>>> >> >>>> >> Hi guys, >>>> >> >>>> >> if I use ctkWorkflow.goToStep(x), the workflow goes to the step x >>>> >> along the workflow (according to onEntry, validate and onExit calls). >>>> >> >>>> >> But then, after reaching step x, it goes directly back to where I am >>>> >> coming from - again along the workflow. This goes so fast so it seems >>>> >> there is no movement at all. >>>> >> >>>> >> I digged a little and it seems line 1035 in ctkWorkflow.cpp is not >>>> >> right? After reaching the 'finish step' (which in my understanding is >>>> >> the target step), it goes back to the starting step. >>>> >> >>>> >> >>>> >> 1019 // >>>> >> >>>> >> -------------------------------------------------------------------------- >>>> >> 1020 void ctkWorkflow::goToStepSucceeded() >>>> >> 1021 { >>>> >> 1022 ? Q_D(ctkWorkflow); >>>> >> 1023 >>>> >> 1024 ? logger.debug("goToStepSucceeded"); >>>> >> 1025 >>>> >> 1026 ? // after success, go back to the step at which we begin >>>> >> looking for >>>> >> 1027 ? // the finish step (will exit the current step and enter the >>>> >> starting step) >>>> >> 1028 >>>> >> 1029 ? d->createTransitionToPreviousStartingStep(d->StartingStep, >>>> >> d->CurrentStep); >>>> >> 1030 >>>> >> 1031 ? d->GoToStep = 0; >>>> >> 1032 ? d->StartingStep->setStatusText("Attempt to go to the finish >>>> >> step succeeded"); >>>> >> 1033 ? d->StartingStep = 0; >>>> >> 1034 >>>> >> 1035 ? this->goFromGoToStepToStartingStep(); >>>> >> 1036 } >>>> >> 1037 >>>> >> >>>> >> Is this correct behavior and I understand the goToStep(x) call wrong >>>> >> or is this a bug? >>>> >> >>>> >> Cheers, >>>> >> Daniel >>>> >> _______________________________________________ >>>> >> Ctk-developers mailing list >>>> >> Ctk-developers at commontk.org >>>> >> http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers >>>> > >>>> > >>>> > >>>> > -- >>>> > Danielle Pace, M.ESc. >>>> > Research and Development Engineer >>>> > Kitware Inc., >>>> > North Carolina Office >>>> > www.kitware.com >>>> > 919-969-6990 X 319 >>>> > >>> >>> >>> >>> -- >>> Danielle Pace, M.ESc. >>> Research and Development Engineer >>> Kitware Inc., >>> North Carolina Office >>> www.kitware.com >>> 919-969-6990 X 319 >>> >>> _______________________________________________ >>> Ctk-developers mailing list >>> Ctk-developers at commontk.org >>> http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers >>> >> >> >> >> -- >> +1 919 869 8849 >> > > > > -- > Danielle Pace, M.ESc. > Research and Development Engineer > Kitware Inc., > North Carolina Office > www.kitware.com > 919-969-6990 X 319 > From haehn at bwh.harvard.edu Sun Jun 5 02:32:39 2011 From: haehn at bwh.harvard.edu (Daniel Haehn) Date: Sat, 4 Jun 2011 22:32:39 -0400 Subject: [Ctk-developers] Another ctkWorkflow thingie: goToStep(..) goes always back to starting step In-Reply-To: References: Message-ID: Hi guys, please review the topic in my github CTK fork: https://github.com/haehn/CTK/tree/add-GoBackToOriginStepUponSuccess-workflow-feature Thanks, Daniel On Fri, Jun 3, 2011 at 4:31 PM, Daniel Haehn wrote: > Hi guys, > > this makes sense to me. I will give it a shot at the weekend and let you know. > > Cheers, > Daniel > > On Fri, Jun 3, 2011 at 4:22 PM, Danielle Pace wrote: >> FYI: The function ctkWorkflow::goToStepSucceeded() is called when >> ctkWorkflow::goToStep()... succeeds =) >> If my memory serves me correctly, you should have to simply make the two >> lines: >> >> ? d->createTransitionToPreviousStartingStep(d->StartingStep, >> d->CurrentStep); >> >> ? this->goFromGoToStepToStartingStep(); >> >> conditional on the value of the new property, and the housekeeping: >> >> ? d->GoToStep = 0; >> >> ? d->StartingStep->setStatusText("Attempt to go to the finish step >> succeeded"); >> >> ? d->StartingStep = 0; >> >> should be done regardless of the property's value. >> Thanks, >> >> Danielle >> >> On Fri, Jun 3, 2011 at 4:16 PM, Jean-Christophe Fillion-Robin >> wrote: >>> >>> Hi Daniel, >>> >>> * A workflow is set of transitions. >>> >>> * If you want to go from a Step X to a Step Y, a transition is required to >>> exists >>> >>> * For conditional workflow, there is the concept of branch. >>> >>> * Each time you click on finish, the pipeline (or workflow) is executed. >>> Upon success, it returns to the step from where the transition to the >>> "finish" step was done.? Having a different behavior would make sens. I >>> propose the following: >>> ?? * Add a property named "GoBackToOriginStepUponSuccess" to workflow. >>> (also open to suggestion regarding the name) >>> ?? * By default, this property would be False >>> >>> Would be great if you could implement the described behavior. To do so: >>> ?? 1) fork CTK on github >>> ?? 2) Create a topic branch named >>> "add-GoBackToOriginStepUponSuccess-workflow-feature" of master >>> ?? 3) Commit both feature and updated test >>> ?? 4) Check that test run locally >>> ?? 5) Send an email to the list asking for review with a pointer to your >>> topic >>> ?? 6) Danielle or myself will review your topic and integrate it into >>> master >>> >>> Note: Make also sure the property is exposed in python. You could play >>> with the following example to make sure everything is working as expected. >>> See >>> https://github.com/jcfr/SlicerPy/blob/master/slicer-visual-workflow-example.py >>> >>> Thanks >>> Jc >>> >>> On Fri, Jun 3, 2011 at 3:52 PM, Danielle Pace >>> wrote: >>>> >>>> Hi Daniel, >>>> CanGoToStep checks to see if a path exists between two steps - so it is >>>> not helpful in your case. >>>> Right now, there is no method to go to a specific step without >>>> transitioning back. ?We could add a property that dictates whether to go >>>> back to the starting step after successfully getting to a 'finish' step... >>>> Thanks, >>>> >>>> Danielle >>>> >>>> >>>> >>>> >>>> On Fri, Jun 3, 2011 at 3:45 PM, Daniel Haehn >>>> wrote: >>>>> >>>>> Hi Danielle, >>>>> >>>>> hm this does not make totally sense to me. What about the canGoToStep >>>>> method - this only checks for next step? >>>>> >>>>> Wouldn't it make more sense to have the behavior I observed and you >>>>> described for the canGoToStep call and do not go back when you call >>>>> goToStep? >>>>> >>>>> Or is there another method I could use to go from step 1 to step 4, >>>>> f.e.? >>>>> >>>>> Thanks >>>>> Daniel >>>>> >>>>> On Fri, Jun 3, 2011 at 3:40 PM, Danielle Pace >>>>> wrote: >>>>> > Hi Daniel, >>>>> > This is the intended behavior when using 'goToStep'. >>>>> > The idea is that, partway through the workflow, you could execute the >>>>> > steps >>>>> > until a 'finish step' was reached - using the default parameters for >>>>> > those >>>>> > steps. ?Then you can evaluate the results that occur with default >>>>> > parameters. ?If you get to the 'finish' step successfully, it puts you >>>>> > back >>>>> > where you started - so that you can continue to step through and alter >>>>> > parameters if you like. >>>>> > If you do not get to the 'finish' step successfully (i.e. default >>>>> > parameters >>>>> > produce errors on your data or because of the parameters you set in >>>>> > prior >>>>> > steps), it will stop at the error. >>>>> > Hope that helps, >>>>> > >>>>> > Danielle >>>>> > >>>>> > >>>>> > >>>>> > >>>>> > On Fri, Jun 3, 2011 at 3:34 PM, Daniel Haehn >>>>> > wrote: >>>>> >> >>>>> >> Hi guys, >>>>> >> >>>>> >> if I use ctkWorkflow.goToStep(x), the workflow goes to the step x >>>>> >> along the workflow (according to onEntry, validate and onExit calls). >>>>> >> >>>>> >> But then, after reaching step x, it goes directly back to where I am >>>>> >> coming from - again along the workflow. This goes so fast so it seems >>>>> >> there is no movement at all. >>>>> >> >>>>> >> I digged a little and it seems line 1035 in ctkWorkflow.cpp is not >>>>> >> right? After reaching the 'finish step' (which in my understanding is >>>>> >> the target step), it goes back to the starting step. >>>>> >> >>>>> >> >>>>> >> 1019 // >>>>> >> >>>>> >> -------------------------------------------------------------------------- >>>>> >> 1020 void ctkWorkflow::goToStepSucceeded() >>>>> >> 1021 { >>>>> >> 1022 ? Q_D(ctkWorkflow); >>>>> >> 1023 >>>>> >> 1024 ? logger.debug("goToStepSucceeded"); >>>>> >> 1025 >>>>> >> 1026 ? // after success, go back to the step at which we begin >>>>> >> looking for >>>>> >> 1027 ? // the finish step (will exit the current step and enter the >>>>> >> starting step) >>>>> >> 1028 >>>>> >> 1029 ? d->createTransitionToPreviousStartingStep(d->StartingStep, >>>>> >> d->CurrentStep); >>>>> >> 1030 >>>>> >> 1031 ? d->GoToStep = 0; >>>>> >> 1032 ? d->StartingStep->setStatusText("Attempt to go to the finish >>>>> >> step succeeded"); >>>>> >> 1033 ? d->StartingStep = 0; >>>>> >> 1034 >>>>> >> 1035 ? this->goFromGoToStepToStartingStep(); >>>>> >> 1036 } >>>>> >> 1037 >>>>> >> >>>>> >> Is this correct behavior and I understand the goToStep(x) call wrong >>>>> >> or is this a bug? >>>>> >> >>>>> >> Cheers, >>>>> >> Daniel >>>>> >> _______________________________________________ >>>>> >> Ctk-developers mailing list >>>>> >> Ctk-developers at commontk.org >>>>> >> http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers >>>>> > >>>>> > >>>>> > >>>>> > -- >>>>> > Danielle Pace, M.ESc. >>>>> > Research and Development Engineer >>>>> > Kitware Inc., >>>>> > North Carolina Office >>>>> > www.kitware.com >>>>> > 919-969-6990 X 319 >>>>> > >>>> >>>> >>>> >>>> -- >>>> Danielle Pace, M.ESc. >>>> Research and Development Engineer >>>> Kitware Inc., >>>> North Carolina Office >>>> www.kitware.com >>>> 919-969-6990 X 319 >>>> >>>> _______________________________________________ >>>> Ctk-developers mailing list >>>> Ctk-developers at commontk.org >>>> http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers >>>> >>> >>> >>> >>> -- >>> +1 919 869 8849 >>> >> >> >> >> -- >> Danielle Pace, M.ESc. >> Research and Development Engineer >> Kitware Inc., >> North Carolina Office >> www.kitware.com >> 919-969-6990 X 319 >> > From haehn at bwh.harvard.edu Sun Jun 5 02:41:20 2011 From: haehn at bwh.harvard.edu (Daniel Haehn) Date: Sat, 4 Jun 2011 22:41:20 -0400 Subject: [Ctk-developers] Setting name and description of ctkWorkflowWidgetStep In-Reply-To: References: Message-ID: Hi Danielle, that is absolutely correct! Maybe it would be easiest to just fire a d->workflow->currentStepChanged(this) signal when ctkWorkflowStep::setName or setDescription are called? Then, the groupbox would be automatically updated. Nevertheless, it has no high priority for me since I now set the name and description of the step in its constructor - before adding it to the workflow. Cheers, Daniel On Fri, Jun 3, 2011 at 4:13 PM, Danielle Pace wrote: > Hi Daniel, > Actually, I think you exposed something important here. > I'm assuming, from python, that you wrote something similar to: > - create step 1 (with no name/description) > - create step 2 (with no name/description) > - create workflow widget and add steps > - display workflow widget > - set name/description for steps 1 and 2 > - expected to see workflow update, and it didn't > Is this correct? ?I think we are missing some signals on ctkWorkflowStep > such as NameChanged(QString) and DescriptionChanged(QString) that the > ctkWorkflowGroupBox should be listening to. > Perhaps you could still post your snippet of python code that wasn't > working, so I can verify that it is an ordering of commands that we should > support? > Thanks, > > Danielle > > > > On Fri, Jun 3, 2011 at 3:57 PM, Daniel Haehn wrote: >> >> Hi Danielle, >> >> thanks to your response I checked it again and you are right: it was >> my mistake :) >> >> If the name and description of the steps are set before the steps are >> added to the workflow, it all works as expected. >> >> I set the stuff after adding it and of course it did not recognize it >> until the signal was fired. >> >> Thanks for the great work! >> >> Cheers, >> Daniel >> >> On Fri, Jun 3, 2011 at 3:44 PM, Danielle Pace >> wrote: >> > Hi Daniel, >> > You shouldn't have to call the currenStepChanged signal directly. ?Can >> > you >> > please post your bit of code that is not working to the CTK developers >> > mailing list, and I will take a look? >> > Thanks, >> > >> > Danielle >> > >> > On Fri, Jun 3, 2011 at 3:21 PM, Julien Finet >> > wrote: >> >> >> >> >> >> ---------- Forwarded message ---------- >> >> From: Daniel Haehn >> >> Date: Fri, Jun 3, 2011 at 3:13 PM >> >> Subject: Re: [Ctk-developers] Setting name and description of >> >> ctkWorkflowWidgetStep >> >> To: ctk-developers at commontk.org >> >> >> >> >> >> Hi guys, >> >> >> >> I got it: >> >> >> >> the ctkWorkflowGroupBox listens for the currentStepChanged signal to >> >> update the title (==name) and subTitle (==description) for the current >> >> step. >> >> >> >> So maybe it makes sense to invoke this signal when the >> >> ctkWorkflow.start() gets called? >> >> >> >> If I do it manually like that, it works: >> >> >> >> ? ? ?self.workflow.start() >> >> ? ? ?self.workflow.currentStepChanged(steps[0]) >> >> >> >> Cheers, >> >> Daniel >> >> >> >> On Fri, Jun 3, 2011 at 12:17 PM, Daniel Haehn >> >> wrote: >> >> > Hi devels, >> >> > >> >> > in C++ I can do >> >> > >> >> > ?this->setName("Title of step"); >> >> > ?this->setDescription("Instructions"); >> >> > >> >> > in a ctkWorkflowWidgetStep, which then get nicely displayed in the >> >> > associated ctkWorkflowGroupBox. >> >> > >> >> > In Python, the same methods can be accessed but the >> >> > ctkWorkflowGroupBox does not seem to show them. >> >> > >> >> > Do I need to trigger an update on the box or something similar? >> >> > >> >> > Thank you! >> >> > Daniel >> >> > >> >> _______________________________________________ >> >> Ctk-developers mailing list >> >> Ctk-developers at commontk.org >> >> http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers >> >> >> > >> > >> > >> > -- >> > Danielle Pace, M.ESc. >> > Research and Development Engineer >> > Kitware Inc., >> > North Carolina Office >> > www.kitware.com >> > 919-969-6990 X 319 >> > > > > > -- > Danielle Pace, M.ESc. > Research and Development Engineer > Kitware Inc., > North Carolina Office > www.kitware.com > 919-969-6990 X 319 > From haehn at bwh.harvard.edu Mon Jun 6 15:06:01 2011 From: haehn at bwh.harvard.edu (Daniel Haehn) Date: Mon, 6 Jun 2011 11:06:01 -0400 Subject: [Ctk-developers] ctkWorkflowButtonBoxWidget does not show text for 'next' button Message-ID: Hi devels, I noticed that the text of the next button is not shown in the ctkWorkflowButtonBoxWidget on Snow Leopard. The underlying ctk code uses this->NextButton->setLayoutDirection(Qt::RightToLeft); to place the icon on the right side of the text. I think that this might be a misuse of the layout direction and causes the problems. The back button is set up the same way as the next button without the layout direction and works fine. What do you guys think? Thanks, Daniel From michael.caylus at siemens.com Mon Jun 6 19:35:24 2011 From: michael.caylus at siemens.com (Caylus, Michael (SCR US)) Date: Mon, 6 Jun 2011 15:35:24 -0400 Subject: [Ctk-developers] data exchange in the DICOM Hosting implementation / QtSoap Limitation Message-ID: <63D07F9AA364DB4C901F02EF93465C8D780878D789@USMLVA0E934MSX.ww017.siemens.net> Hi Sascha, 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. 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 (ctkSoapMessageProcessorList::process method) 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 (http://www.commontk.org/index.php/Documentation/DicomApplicationHosting:DataExchangeDevelopment) but I am not sure what the status here. 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? Best, Michael ------------------------------------------------------------------------------------------------------------------------------- From: Sascha Zelzer Subject: Re: [Ctk-developers] How to wrap a Qt App into an hosted app confirming to DICOM Supplement 118 / Working Group 23 To: ctk-developers at commontk.org Message-ID: <4DCD447F.7060402 at dkfz-heidelberg.de> Content-Type: text/plain; charset="windows-1252"; Format="flowed" Hi Michael, Welcome to the CTK mailing list. 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! Best, Sascha On 05/13/2011 03:56 AM, Caylus, Michael (SCR US) wrote: > Hello, > I am new to the CTK SDK and would like to wrap my Qt application into > an hosted app. I have seen such an example by turning on in the CMake > configuration: ctkExampleHost and ctkExampleHosted App. I came up > with the following questions after playing with it: > > 1. In order to make this wrap-up for my app; I was considering to > edit the org_commontk_dah_exampleapp plug-in which relies on the > org_commontk_dah_app and org_commontk_dah_core plug-in and keep > the ctkExampleHostedApp. Is this approach the right way to > proceed? This implies splitting my app into the hostedApp and a > CTK plugin; with most of the work to be done on the plug-in > level I guess. I have seen some doc explaining how to embed the > CTK plugin framework in my app too. Can I achieve the same > result with this approach and how? > 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: 1.) Your app is a "pure" DICOM App, i.e. you do not need run it outside the context of a "Hosting Application" 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). The http://www.commontk.org/index.php/Documentation/CTK_Plugin_Framework:_Setting_up_a_project?action=purge tutorial explains how to create a CTK-based project. 2.) You want to use your app both "stand-alone" and as a "hosted app" 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). 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... > 1. I couldn?t find to which QMainWindow is the button attached to > in the ctkExampleDicomAppLogic::do_something()function.It > doesn?t look like thectkExampleDicomAppLogic is heritating from > a widgetalso. Which object is responsible of the creation of the > mainwindow? > 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". > 1. Is there any doc that explains how to create a CTK plug-in and > App from scratch. It would be probably better in my case to > create a new plugin instead of editing an existing one. > 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... 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. > 1. How can I add additional includes directories through a > CMakeLists in the CTK framework. I couldn?t find a way to > define additional directories in the CMakeList of a plug-in (no > include_directories). Is that define somewhere else? > 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. Happy coding, Sascha -------------- next part -------------- An HTML attachment was scrubbed... URL: ------------------------------ _______________________________________________ Ctk-developers mailing list Ctk-developers at commontk.org http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers End of Ctk-developers Digest, Vol 22, Issue 6 ********************************************* -------------- next part -------------- An HTML attachment was scrubbed... URL: From julien.finet at kitware.com Tue Jun 7 02:30:18 2011 From: julien.finet at kitware.com (Julien Finet) Date: Mon, 6 Jun 2011 22:30:18 -0400 Subject: [Ctk-developers] ctkWorkflowButtonBoxWidget does not show text for 'next' button In-Reply-To: References: Message-ID: Hi Daniel, Can you try the embedded file and tell me if it works on Snow Leopard ? Thanks, Julien. On Mon, Jun 6, 2011 at 11:06 AM, Daniel Haehn wrote: > Hi devels, > > I noticed that the text of the next button is not shown in the > ctkWorkflowButtonBoxWidget on Snow Leopard. > > The underlying ctk code uses > this->NextButton->setLayoutDirection(Qt::RightToLeft); to place the > icon on the right side of the text. > > I think that this might be a misuse of the layout direction and causes > the problems. The back button is set up the same way as the next > button without the layout direction and works fine. > > What do you guys think? > > Thanks, > Daniel > _______________________________________________ > Ctk-developers mailing list > Ctk-developers at commontk.org > http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers > -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: ctkWorkflowButtonBoxWidget.cpp Type: text/x-c++src Size: 18108 bytes Desc: not available URL: From s.zelzer at dkfz-heidelberg.de Tue Jun 7 05:48:42 2011 From: s.zelzer at dkfz-heidelberg.de (Sascha Zelzer) Date: Tue, 07 Jun 2011 07:48:42 +0200 Subject: [Ctk-developers] External projects in commontk github organization Message-ID: <4DEDBBBA.90409@dkfz-heidelberg.de> Hi guys, Recently, I observed an explosion in the number of repositories containing external repositories in the CommonTK organization of github. Could we discuss the need of some of them, and maybe have these discussions in the future in advance of pushing those projects? I am looking especially at the projects below, where Qt might already offer enough functionality. Of course I could be wrong, so thank you for your feedback! - sqlite (why not use the Qt sqlite wrapper?) - KWSys (where is it needed? I did not find any reference to it in CTK) - libexpat (Qt also provides a streaming XML API, also not used anywhere) - libcurl (there is also no reference to libcurl in CTK) Thanks, Sascha From jchris.fillionr at kitware.com Tue Jun 7 13:19:28 2011 From: jchris.fillionr at kitware.com (Jean-Christophe Fillion-Robin) Date: Tue, 7 Jun 2011 09:19:28 -0400 Subject: [Ctk-developers] External projects in commontk github organization In-Reply-To: <4DEDBBBA.90409@dkfz-heidelberg.de> References: <4DEDBBBA.90409@dkfz-heidelberg.de> Message-ID: Hi Sasha, You bring a very good point ! The work related to these projects has just been published and is open to review. See https://github.com/zachmullen/CTK/commit/1051813f5046bb08835b73a12138a672c9c48c82 Expat, KWSys, Sqlite and libcurl were initially shipped with MIDAScpp library ... I advocates to externalize and CMake-ifie properly these libraries as a first step. That way the code checked in CTK would "really" corresponds to the library itself. Having an other perspective is always fruitful :) You are right, since MIDAScpp would be part of CTK, it makes sens to not depend on these external project and rely on Qt directly. Qt is a mandatory dependency after all. I am cc'ing Zach in the email and I am sure I will be able to provide more comments. Zach> Instead of using expat, libcurl, sqlite and kwsys, would it make sens to depends on Qt ? In the mean time, I have the following questions: - Currently the library is named "CTKMIDAScppCore" and CTKMIDAScppWidgets", I was thinking we could have something like CTKDataManagementMIDAScppCore and CTKDataManagementMIDAScppWidgets. What do you think ? Doing so would leave room to library like "CTKDataManagementHadoopCore" ... - Does introducing a "DataManagement" hierachy of libraries make sens ? As far as I am concerned, I think it's important to provide both functionality to process, store and retrieve the data. Thanks Jc On Tue, Jun 7, 2011 at 1:48 AM, Sascha Zelzer wrote: > Hi guys, > > Recently, I observed an explosion in the number of repositories containing > external repositories in the CommonTK organization of github. Could we > discuss the need of some of them, and maybe have these discussions in the > future in advance of pushing those projects? > > I am looking especially at the projects below, where Qt might already offer > enough functionality. Of course I could be wrong, so thank you for your > feedback! > > - sqlite (why not use the Qt sqlite wrapper?) > - KWSys (where is it needed? I did not find any reference to it in CTK) > - libexpat (Qt also provides a streaming XML API, also not used anywhere) > - libcurl (there is also no reference to libcurl in CTK) > > > Thanks, > > Sascha > _______________________________________________ > Ctk-developers mailing list > Ctk-developers at commontk.org > http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers > -- +1 919 869 8849 -------------- next part -------------- An HTML attachment was scrubbed... URL: From julien.finet at kitware.com Tue Jun 7 13:25:49 2011 From: julien.finet at kitware.com (Julien Finet) Date: Tue, 7 Jun 2011 09:25:49 -0400 Subject: [Ctk-developers] External projects in commontk github organization In-Reply-To: References: <4DEDBBBA.90409@dkfz-heidelberg.de> Message-ID: For the naming convention, is "MIDAScpp" mandatory? couldn't it be just MIDAS (and be externally refered as CTK MIDAS). By having MIDAS into CTK, we infer it is C++ and Qt based. My 2 cts, Julien. On Tue, Jun 7, 2011 at 9:19 AM, Jean-Christophe Fillion-Robin < jchris.fillionr at kitware.com> wrote: > Hi Sasha, > > You bring a very good point ! > > The work related to these projects has just been published and is open to > review. > See > https://github.com/zachmullen/CTK/commit/1051813f5046bb08835b73a12138a672c9c48c82 > > Expat, KWSys, Sqlite and libcurl were initially shipped with MIDAScpp > library ... I advocates to externalize and CMake-ifie properly these > libraries as a first step. That way the code checked in CTK would "really" > corresponds to the library itself. > > Having an other perspective is always fruitful :) You are right, since > MIDAScpp would be part of CTK, it makes sens to not depend on these external > project and rely on Qt directly. Qt is a mandatory dependency after all. > > I am cc'ing Zach in the email and I am sure I will be able to provide more > comments. > > Zach> Instead of using expat, libcurl, sqlite and kwsys, would it make sens > to depends on Qt ? > > In the mean time, I have the following questions: > > - Currently the library is named "CTKMIDAScppCore" and > CTKMIDAScppWidgets", I was thinking we could have something like > CTKDataManagementMIDAScppCore and CTKDataManagementMIDAScppWidgets. > What do you think ? Doing so would leave room to library like > "CTKDataManagementHadoopCore" ... > > - Does introducing a "DataManagement" hierachy of libraries make sens ? As > far as I am concerned, I think it's important to provide both functionality > to process, store and retrieve the data. > > Thanks > Jc > > > > On Tue, Jun 7, 2011 at 1:48 AM, Sascha Zelzer > wrote: > >> Hi guys, >> >> Recently, I observed an explosion in the number of repositories containing >> external repositories in the CommonTK organization of github. Could we >> discuss the need of some of them, and maybe have these discussions in the >> future in advance of pushing those projects? >> >> I am looking especially at the projects below, where Qt might already >> offer enough functionality. Of course I could be wrong, so thank you for >> your feedback! >> >> - sqlite (why not use the Qt sqlite wrapper?) >> - KWSys (where is it needed? I did not find any reference to it in CTK) >> - libexpat (Qt also provides a streaming XML API, also not used anywhere) >> - libcurl (there is also no reference to libcurl in CTK) >> >> >> Thanks, >> >> Sascha >> _______________________________________________ >> Ctk-developers mailing list >> Ctk-developers at commontk.org >> http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers >> > > > > -- > +1 919 869 8849 > > > _______________________________________________ > Ctk-developers mailing list > Ctk-developers at commontk.org > http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From s.zelzer at dkfz-heidelberg.de Tue Jun 7 14:05:46 2011 From: s.zelzer at dkfz-heidelberg.de (Sascha Zelzer) Date: Tue, 07 Jun 2011 16:05:46 +0200 Subject: [Ctk-developers] External projects in commontk github organization In-Reply-To: References: <4DEDBBBA.90409@dkfz-heidelberg.de> Message-ID: <4DEE303A.7090306@dkfz-heidelberg.de> Hi, naming issues aside, I tend to agree with Julien here. Generally, I am of course in favor of extending CTK with useful functionality. However, here is a short anecdote: Ivo and I recently got a request from German group if we think their project would be a good fit for CTK. Although it looked very promising, well engineered, and was in the scope of CTK, we expressed our concerns because the project was not Qt-ified at all and would somehow break the consistent code style we have now in CTK. I see the same issue with the current MIDAS code. In the past, I would have voted for including MIDAScpp as an external project, as we did with all existing projects we wanted to use but did not comply with the CTK style. I do not want to slow people down or to damp their enthusiasm. I am just concerned that CTK becomes a Zoo of libraries with inconsistent "Look and Feel". Maybe an open discussion about integrating larger pieces of software *in advance* of starting the effort would be helpful in the future. I am still thinking about your naming suggestions... ;-) Best, Sascha On 06/07/2011 03:25 PM, Julien Finet wrote: > For the naming convention, is "MIDAScpp" mandatory? couldn't it be > just MIDAS (and be externally refered as CTK MIDAS). > By having MIDAS into CTK, we infer it is C++ and Qt based. > My 2 cts, > Julien. > > On Tue, Jun 7, 2011 at 9:19 AM, Jean-Christophe Fillion-Robin > > wrote: > > Hi Sasha, > > You bring a very good point ! > > The work related to these projects has just been published and is > open to review. > See > https://github.com/zachmullen/CTK/commit/1051813f5046bb08835b73a12138a672c9c48c82 > > Expat, KWSys, Sqlite and libcurl were initially shipped with > MIDAScpp library ... I advocates to externalize and CMake-ifie > properly these libraries as a first step. That way the code > checked in CTK would "really" corresponds to the library itself. > > Having an other perspective is always fruitful :) You are right, > since MIDAScpp would be part of CTK, it makes sens to not depend > on these external project and rely on Qt directly. Qt is a > mandatory dependency after all. > > I am cc'ing Zach in the email and I am sure I will be able to > provide more comments. > > Zach> Instead of using expat, libcurl, sqlite and kwsys, would it > make sens to depends on Qt ? > > In the mean time, I have the following questions: > > - Currently the library is named "CTKMIDAScppCore" and > CTKMIDAScppWidgets", I was thinking we could have something like > CTKDataManagementMIDAScppCore and CTKDataManagementMIDAScppWidgets. > What do you think ? Doing so would leave room to library like > "CTKDataManagementHadoopCore" ... > > - Does introducing a "DataManagement" hierachy of libraries make > sens ? As far as I am concerned, I think it's important to provide > both functionality to process, store and retrieve the data. > > Thanks > Jc > > > > On Tue, Jun 7, 2011 at 1:48 AM, Sascha Zelzer > > > wrote: > > Hi guys, > > Recently, I observed an explosion in the number of > repositories containing external repositories in the CommonTK > organization of github. Could we discuss the need of some of > them, and maybe have these discussions in the future in > advance of pushing those projects? > > I am looking especially at the projects below, where Qt might > already offer enough functionality. Of course I could be > wrong, so thank you for your feedback! > > - sqlite (why not use the Qt sqlite wrapper?) > - KWSys (where is it needed? I did not find any reference to > it in CTK) > - libexpat (Qt also provides a streaming XML API, also not > used anywhere) > - libcurl (there is also no reference to libcurl in CTK) > > > Thanks, > > Sascha > _______________________________________________ > Ctk-developers mailing list > Ctk-developers at commontk.org > http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers > > > > > -- > +1 919 869 8849 > > > _______________________________________________ > Ctk-developers mailing list > Ctk-developers at commontk.org > http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From s.zelzer at dkfz-heidelberg.de Tue Jun 7 14:08:49 2011 From: s.zelzer at dkfz-heidelberg.de (Sascha Zelzer) Date: Tue, 07 Jun 2011 16:08:49 +0200 Subject: [Ctk-developers] External projects in commontk github organization In-Reply-To: References: <4DEDBBBA.90409@dkfz-heidelberg.de> Message-ID: <4DEE30F1.4020504@dkfz-heidelberg.de> Of course Qt depends on a native sqlite implementation, but it provides a library which is database-backend independent: http://doc.qt.nokia.com/4.7/qtsql.html It uses Qt plugins for delegating the calls to specific RDBMS implementations. Best, Sascha On 06/07/2011 03:32 PM, Zach Mullen wrote: > The MIDAScpp library linked against kwsys/expat/curl because > originally it did not depend on Qt. In the future, we could remove > these dependencies; it would just require a lot of rewriting to use > the Qt capabilities instead. Sqlite will have to stay as a dependency > since Qt doesn't have any RDBMS capabilities. > > -Zach > > On Tue, Jun 7, 2011 at 9:19 AM, Jean-Christophe Fillion-Robin > > wrote: > > Hi Sasha, > > You bring a very good point ! > > The work related to these projects has just been published and is > open to review. > See > https://github.com/zachmullen/CTK/commit/1051813f5046bb08835b73a12138a672c9c48c82 > > Expat, KWSys, Sqlite and libcurl were initially shipped with > MIDAScpp library ... I advocates to externalize and CMake-ifie > properly these libraries as a first step. That way the code > checked in CTK would "really" corresponds to the library itself. > > Having an other perspective is always fruitful :) You are right, > since MIDAScpp would be part of CTK, it makes sens to not depend > on these external project and rely on Qt directly. Qt is a > mandatory dependency after all. > > I am cc'ing Zach in the email and I am sure I will be able to > provide more comments. > > Zach> Instead of using expat, libcurl, sqlite and kwsys, would it > make sens to depends on Qt ? > > In the mean time, I have the following questions: > > - Currently the library is named "CTKMIDAScppCore" and > CTKMIDAScppWidgets", I was thinking we could have something like > CTKDataManagementMIDAScppCore and CTKDataManagementMIDAScppWidgets. > What do you think ? Doing so would leave room to library like > "CTKDataManagementHadoopCore" ... > > - Does introducing a "DataManagement" hierachy of libraries make > sens ? As far as I am concerned, I think it's important to provide > both functionality to process, store and retrieve the data. > > Thanks > Jc > > > On Tue, Jun 7, 2011 at 1:48 AM, Sascha Zelzer > > > wrote: > > Hi guys, > > Recently, I observed an explosion in the number of > repositories containing external repositories in the CommonTK > organization of github. Could we discuss the need of some of > them, and maybe have these discussions in the future in > advance of pushing those projects? > > I am looking especially at the projects below, where Qt might > already offer enough functionality. Of course I could be > wrong, so thank you for your feedback! > > - sqlite (why not use the Qt sqlite wrapper?) > - KWSys (where is it needed? I did not find any reference to > it in CTK) > - libexpat (Qt also provides a streaming XML API, also not > used anywhere) > - libcurl (there is also no reference to libcurl in CTK) > > > Thanks, > > Sascha > _______________________________________________ > Ctk-developers mailing list > Ctk-developers at commontk.org > http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers > > > > > -- > +1 919 869 8849 > > > > > -- > Zach Mullen > R & D Engineer > Kitware Inc. > (919) 969-6990 x314 > -------------- next part -------------- An HTML attachment was scrubbed... URL: From s.zelzer at dkfz-heidelberg.de Tue Jun 7 14:27:17 2011 From: s.zelzer at dkfz-heidelberg.de (Sascha Zelzer) Date: Tue, 07 Jun 2011 16:27:17 +0200 Subject: [Ctk-developers] data exchange in the DICOM Hosting implementation / QtSoap Limitation In-Reply-To: <63D07F9AA364DB4C901F02EF93465C8D780878D789@USMLVA0E934MSX.ww017.siemens.net> References: <63D07F9AA364DB4C901F02EF93465C8D780878D789@USMLVA0E934MSX.ww017.siemens.net> Message-ID: <4DEE3545.9030505@dkfz-heidelberg.de> Hi Michael, 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). 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). Maybe Ivo and Benoit can also comment on this issue, they where mainly involved in writing the data exchange interface. Thanks, Sascha On 06/06/2011 09:35 PM, Caylus, Michael (SCR US) wrote: > Hi Sascha, > 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. > 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 > (ctkSoapMessageProcessorList::process method) 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 > (_http://www.commontk.org/index.php/Documentation/DicomApplicationHosting:DataExchangeDevelopment_) > but I am not sure what the status here. > 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? > Best, > Michael > ------------------------------------------------------------------------------------------------------------------------------- > From: Sascha Zelzer > Subject: Re: [Ctk-developers] How to wrap a Qt App into an hosted app > confirming to DICOM Supplement 118 / Working Group 23 > To: ctk-developers at commontk.org > Message-ID: <4DCD447F.7060402 at dkfz-heidelberg.de> > Content-Type: text/plain; charset="windows-1252"; Format="flowed" > Hi Michael, > Welcome to the CTK mailing list. > 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! > Best, > Sascha > On 05/13/2011 03:56 AM, Caylus, Michael (SCR US) wrote: > > Hello, > > I am new to the CTK SDK and would like to wrap my Qt application into > > an hosted app. I have seen such an example by turning on in the CMake > > configuration: ctkExampleHost and ctkExampleHosted App. I came up > > with the following questions after playing with it: > > > > 1. In order to make this wrap-up for my app; I was considering to > > edit the org_commontk_dah_exampleapp plug-in which relies on the > > org_commontk_dah_app and org_commontk_dah_core plug-in and keep > > the ctkExampleHostedApp. Is this approach the right way to > > proceed? This implies splitting my app into the hostedApp and a > > CTK plugin; with most of the work to be done on the plug-in > > level I guess. I have seen some doc explaining how to embed the > > CTK plugin framework in my app too. Can I achieve the same > > result with this approach and how? > > > 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: > 1.) Your app is a "pure" DICOM App, i.e. you do not need run it > outside the context of a "Hosting Application" > 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). > The > _http://www.commontk.org/index.php/Documentation/CTK_Plugin_Framework:_Setting_up_a_project?action=purge_ > tutorial explains how to create a CTK-based project. > 2.) You want to use your app both "stand-alone" and as a "hosted app" > 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). > 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... > > 1. I couldn?t find to which QMainWindow is the button attached to > > in the ctkExampleDicomAppLogic::do_something()function.It > > doesn?t look like thectkExampleDicomAppLogic is heritating from > > a widgetalso. Which object is responsible of the creation of the > > mainwindow? > > > 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". > > 1. Is there any doc that explains how to create a CTK plug-in and > > App from scratch. It would be probably better in my case to > > create a new plugin instead of editing an existing one. > > > 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... > 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. > > 1. How can I add additional includes directories through a > > CMakeLists in the CTK framework. I couldn?t find a way to > > define additional directories in the CMakeList of a plug-in (no > > include_directories). Is that define somewhere else? > > > 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. > Happy coding, > Sascha > -------------- next part -------------- > An HTML attachment was scrubbed... > URL: > <_http://public.kitware.com/pipermail/ctk-developers/attachments/20110513/539b8908/attachment-0001.htm_> > ------------------------------ > _______________________________________________ > Ctk-developers mailing list > _Ctk-developers at commontk.org_ > _http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers_ > End of Ctk-developers Digest, Vol 22, Issue 6 > ********************************************* -------------- next part -------------- An HTML attachment was scrubbed... URL: From benoit.bleuze at inria.fr Tue Jun 7 15:10:28 2011 From: benoit.bleuze at inria.fr (Benoit Bleuze) Date: Tue, 7 Jun 2011 17:10:28 +0200 (CEST) Subject: [Ctk-developers] data exchange in the DICOM Hosting implementation / QtSoap Limitation In-Reply-To: <4DEE3545.9030505@dkfz-heidelberg.de> Message-ID: <1572309921.1274735.1307459428609.JavaMail.root@zmbs4.inria.fr> Hello Michael, First, we always refer to this document when in doubt: http://www.commontk.org/index.php/File:DicomAppHostingSpecs.pdf It's been some time since we touched that code, so forgive me if my answers are sometimes a bit vague. " I am updating the AvailableData structure and then publish it to the hosted application when I am starting it" So I am guessing you are sending a notifyDataAvailable(AvailableData input,true ), with the descriptors for all your files, right? Now from your application you should call getData() with the UUIDs you got from the notification, are we still on the same page? So If I understood you correctly, the problem is that you only receive on UUID from the notification? My question is then: did you use the helper functions to fill in your data structure: ctkDicomSoapArrayOfObjectDescriptors ( const QString & name , const ctkDicomAppHosting :: ArrayOfObjectDescriptors & ods ); ArrayOfObjectDescriptor being this: typedef QList < ObjectDescriptor > ArrayOfObjectDescriptors ; 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 You must fill in your AvailableData::patients list, down to the Series level, 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). 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. Now to unpack the results from soap messages to Qt objects, you must once again use the typeHelpers structures: ctkDicomAppHosting :: ArrayOfObjectDescriptors ctkDicomSoapArrayOfObjectDescriptors :: getArrayOfObjectDescriptors ( const QtSoapType & type ) Now if this doesn't work we will have to look at the marshalling functions we wrote (all the helper functions). Cheers, Ben. ----- Original Message ----- Hi Michael, 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). 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). Maybe Ivo and Benoit can also comment on this issue, they where mainly involved in writing the data exchange interface. Thanks, Sascha On 06/06/2011 09:35 PM, Caylus, Michael (SCR US) wrote: Hi Sascha, 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. 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 ( ctkSoapMessageProcessorList::process method) 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 ( http://www.commontk.org/index.php/Documentation/DicomApplicationHosting:DataExchangeDevelopment ) but I am not sure what the status here. 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? Best, Michael ------------------------------------------------------------------------------------------------------------------------------- From: Sascha Zelzer Subject: Re: [Ctk-developers] How to wrap a Qt App into an hosted app confirming to DICOM Supplement 118 / Working Group 23 To: ctk-developers at commontk.org Message-ID: <4DCD447F.7060402 at dkfz-heidelberg.de> Content-Type: text/plain; charset="windows-1252"; Format="flowed" Hi Michael, Welcome to the CTK mailing list. 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! Best, Sascha On 05/13/2011 03:56 AM, Caylus, Michael (SCR US) wrote: > Hello, > I am new to the CTK SDK and would like to wrap my Qt application into > an hosted app. I have seen such an example by turning on in the CMake > configuration: ctkExampleHost and ctkExampleHosted App. I came up > with the following questions after playing with it: > > 1. In order to make this wrap-up for my app; I was considering to > edit the org_commontk_dah_exampleapp plug-in which relies on the > org_commontk_dah_app and org_commontk_dah_core plug-in and keep > the ctkExampleHostedApp. Is this approach the right way to > proceed? This implies splitting my app into the hostedApp and a > CTK plugin; with most of the work to be done on the plug-in > level I guess. I have seen some doc explaining how to embed the > CTK plugin framework in my app too. Can I achieve the same > result with this approach and how? > 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: 1.) Your app is a "pure" DICOM App, i.e. you do not need run it outside the context of a "Hosting Application" 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). The http://www.commontk.org/index.php/Documentation/CTK_Plugin_Framework:_Setting_up_a_project?action=purge tutorial explains how to create a CTK-based project. 2.) You want to use your app both "stand-alone" and as a "hosted app" 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). 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... > 1. I couldn?t find to which QMainWindow is the button attached to > in the ctkExampleDicomAppLogic::do_something()function.It > doesn?t look like thectkExampleDicomAppLogic is heritating from > a widgetalso. Which object is responsible of the creation of the > mainwindow? > 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". > 1. Is there any doc that explains how to create a CTK plug-in and > App from scratch. It would be probably better in my case to > create a new plugin instead of editing an existing one. > 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... 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. > 1. How can I add additional includes directories through a > CMakeLists in the CTK framework. I couldn?t find a way to > define additional directories in the CMakeList of a plug-in (no > include_directories). Is that define somewhere else? > 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. Happy coding, Sascha -------------- next part -------------- An HTML attachment was scrubbed... URL: < http://public.kitware.com/pipermail/ctk-developers/attachments/20110513/539b8908/attachment-0001.htm > ------------------------------ _______________________________________________ Ctk-developers mailing list Ctk-developers at commontk.org http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers End of Ctk-developers Digest, Vol 22, Issue 6 ********************************************* _______________________________________________ Ctk-developers mailing list Ctk-developers at commontk.org http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers -------------- next part -------------- An HTML attachment was scrubbed... URL: From m.nolden at dkfz-heidelberg.de Tue Jun 7 15:21:15 2011 From: m.nolden at dkfz-heidelberg.de (Marco Nolden) Date: Tue, 07 Jun 2011 17:21:15 +0200 Subject: [Ctk-developers] External projects in commontk github organization In-Reply-To: <4DEE30F1.4020504@dkfz-heidelberg.de> References: <4DEDBBBA.90409@dkfz-heidelberg.de> <4DEE30F1.4020504@dkfz-heidelberg.de> Message-ID: <4DEE41EB.8020304@dkfz.de> SQLite is included in the Qt distribution, you can build it integrated or as a plugin [1]. This is already used in the CTK DICOM classes. Marco [1] http://doc.qt.nokia.com/latest/sql-driver.html#qsqlite On 06/07/2011 04:08 PM, Sascha Zelzer wrote: > Of course Qt depends on a native sqlite implementation, but it provides > a library which is database-backend independent: > > http://doc.qt.nokia.com/4.7/qtsql.html > > It uses Qt plugins for delegating the calls to specific RDBMS > implementations. > > Best, > Sascha > > On 06/07/2011 03:32 PM, Zach Mullen wrote: >> The MIDAScpp library linked against kwsys/expat/curl because >> originally it did not depend on Qt. In the future, we could remove >> these dependencies; it would just require a lot of rewriting to use >> the Qt capabilities instead. Sqlite will have to stay as a dependency >> since Qt doesn't have any RDBMS capabilities. >> >> -Zach >> >> On Tue, Jun 7, 2011 at 9:19 AM, Jean-Christophe Fillion-Robin >> > wrote: >> >> Hi Sasha, >> >> You bring a very good point ! >> >> The work related to these projects has just been published and is >> open to review. >> See >> https://github.com/zachmullen/CTK/commit/1051813f5046bb08835b73a12138a672c9c48c82 >> >> Expat, KWSys, Sqlite and libcurl were initially shipped with >> MIDAScpp library ... I advocates to externalize and CMake-ifie >> properly these libraries as a first step. That way the code >> checked in CTK would "really" corresponds to the library itself. >> >> Having an other perspective is always fruitful :) You are right, >> since MIDAScpp would be part of CTK, it makes sens to not depend >> on these external project and rely on Qt directly. Qt is a >> mandatory dependency after all. >> >> I am cc'ing Zach in the email and I am sure I will be able to >> provide more comments. >> >> Zach> Instead of using expat, libcurl, sqlite and kwsys, would it >> make sens to depends on Qt ? >> >> In the mean time, I have the following questions: >> >> - Currently the library is named "CTKMIDAScppCore" and >> CTKMIDAScppWidgets", I was thinking we could have something like >> CTKDataManagementMIDAScppCore and CTKDataManagementMIDAScppWidgets. >> What do you think ? Doing so would leave room to library like >> "CTKDataManagementHadoopCore" ... >> >> - Does introducing a "DataManagement" hierachy of libraries make >> sens ? As far as I am concerned, I think it's important to provide >> both functionality to process, store and retrieve the data. >> >> Thanks >> Jc >> >> >> On Tue, Jun 7, 2011 at 1:48 AM, Sascha Zelzer >> > >> wrote: >> >> Hi guys, >> >> Recently, I observed an explosion in the number of >> repositories containing external repositories in the CommonTK >> organization of github. Could we discuss the need of some of >> them, and maybe have these discussions in the future in >> advance of pushing those projects? >> >> I am looking especially at the projects below, where Qt might >> already offer enough functionality. Of course I could be >> wrong, so thank you for your feedback! >> >> - sqlite (why not use the Qt sqlite wrapper?) >> - KWSys (where is it needed? I did not find any reference to >> it in CTK) >> - libexpat (Qt also provides a streaming XML API, also not >> used anywhere) >> - libcurl (there is also no reference to libcurl in CTK) >> >> >> Thanks, >> >> Sascha >> _______________________________________________ >> Ctk-developers mailing list >> Ctk-developers at commontk.org >> http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers >> >> >> >> >> -- >> +1 919 869 8849 >> >> >> >> >> -- >> Zach Mullen >> R & D Engineer >> Kitware Inc. >> (919) 969-6990 x314 >> > -- ---------------------------------------------------------------------- Dipl.-Inform. Med. Marco Nolden Deutsches Krebsforschungszentrum (German Cancer Research Center) Div. Medical & Biological Informatics Tel: (+49) 6221-42 2325 Im Neuenheimer Feld 280 Fax: (+49) 6221-42 2345 D-69120 Heidelberg eMail: M.Nolden at dkfz.de From michael.caylus at siemens.com Tue Jun 7 19:05:35 2011 From: michael.caylus at siemens.com (Caylus, Michael (SCR US)) Date: Tue, 7 Jun 2011 15:05:35 -0400 Subject: [Ctk-developers] data exchange in the DICOM Hosting implementation / QtSoap Limitation In-Reply-To: <1572309921.1274735.1307459428609.JavaMail.root@zmbs4.inria.fr> References: <4DEE3545.9030505@dkfz-heidelberg.de> <1572309921.1274735.1307459428609.JavaMail.root@zmbs4.inria.fr> Message-ID: <63D07F9AA364DB4C901F02EF93465C8D780878DCBA@USMLVA0E934MSX.ww017.siemens.net> Hello Benoit, Thanks for getting back to me. Please see my comments below. Cheers, Michael From: Benoit Bleuze [mailto:benoit.bleuze at inria.fr] Sent: Tuesday, June 07, 2011 11:10 AM To: Sascha Zelzer Cc: Ljung, Patric (SCR US); ctk-developers at commontk.org; Caylus, Michael (SCR US) Subject: Re: [Ctk-developers] data exchange in the DICOM Hosting implementation / QtSoap Limitation Hello Michael, First, we always refer to this document when in doubt: http://www.commontk.org/index.php/File:DicomAppHostingSpecs.pdf It's been some time since we touched that code, so forgive me if my answers are sometimes a bit vague. " I am updating the AvailableData structure and then publish it to the hosted application when I am starting it" So I am guessing you are sending a notifyDataAvailable(AvailableData input,true ), with the descriptors for all your files, right? Yes I send just one notification: notifyDataAvailable with all the descriptors for my files. Now from your application you should call getData() with the UUIDs you got from the notification, are we still on the same page? Yes that's the plan. I want to collect the all the UUIDs once I received the DataAvailable structure on the application side. So If I understood you correctly, the problem is that you only receive on UUID from the notification? Yes I got only one UUID instead of multiple ones and it look like only the last one is picked up. My question is then: did you use the helper functions to fill in your data structure: ctkDicomSoapArrayOfObjectDescriptors(const QString& name, const ctkDicomAppHosting::ArrayOfObjectDescriptors& ods); ArrayOfObjectDescriptor being this: typedef QList ArrayOfObjectDescriptors; 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: ctkDicomSoapSeries(const QString& name, const ctkDicomAppHosting::Series& s) This function will correctly append my list of descriptors for the corresponding series. 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). 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. 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 You must fill in your AvailableData::patients list, down to the Series level, This is the approach I started with. 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). I will give a try now by sending just the objectDescriptors array now and will let you know. 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. Now to unpack the results from soap messages to Qt objects, you must once again use the typeHelpers structures: ctkDicomAppHosting::ArrayOfObjectDescriptors ctkDicomSoapArrayOfObjectDescriptors::getArrayOfObjectDescriptors(const QtSoapType& type) Now if this doesn't work we will have to look at the marshalling functions we wrote (all the helper functions). Cheers, Ben. ________________________________ Hi Michael, 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). 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). Maybe Ivo and Benoit can also comment on this issue, they where mainly involved in writing the data exchange interface. Thanks, Sascha On 06/06/2011 09:35 PM, Caylus, Michael (SCR US) wrote: Hi Sascha, 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. 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 (ctkSoapMessageProcessorList::process method) 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 (http://www.commontk.org/index.php/Documentation/DicomApplicationHosting:DataExchangeDevelopment) but I am not sure what the status here. 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? Best, Michael ------------------------------------------------------------------------------------------------------------------------------- From: Sascha Zelzer Subject: Re: [Ctk-developers] How to wrap a Qt App into an hosted app confirming to DICOM Supplement 118 / Working Group 23 To: ctk-developers at commontk.org Message-ID: <4DCD447F.7060402 at dkfz-heidelberg.de> Content-Type: text/plain; charset="windows-1252"; Format="flowed" Hi Michael, Welcome to the CTK mailing list. 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! Best, Sascha On 05/13/2011 03:56 AM, Caylus, Michael (SCR US) wrote: > Hello, > I am new to the CTK SDK and would like to wrap my Qt application into > an hosted app. I have seen such an example by turning on in the CMake > configuration: ctkExampleHost and ctkExampleHosted App. I came up > with the following questions after playing with it: > > 1. In order to make this wrap-up for my app; I was considering to > edit the org_commontk_dah_exampleapp plug-in which relies on the > org_commontk_dah_app and org_commontk_dah_core plug-in and keep > the ctkExampleHostedApp. Is this approach the right way to > proceed? This implies splitting my app into the hostedApp and a > CTK plugin; with most of the work to be done on the plug-in > level I guess. I have seen some doc explaining how to embed the > CTK plugin framework in my app too. Can I achieve the same > result with this approach and how? > 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: 1.) Your app is a "pure" DICOM App, i.e. you do not need run it outside the context of a "Hosting Application" 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). The http://www.commontk.org/index.php/Documentation/CTK_Plugin_Framework:_Setting_up_a_project?action=purge tutorial explains how to create a CTK-based project. 2.) You want to use your app both "stand-alone" and as a "hosted app" 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). 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... > 1. I couldn?t find to which QMainWindow is the button attached to > in the ctkExampleDicomAppLogic::do_something()function.It > doesn?t look like thectkExampleDicomAppLogic is heritating from > a widgetalso. Which object is responsible of the creation of the > mainwindow? > 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". > 1. Is there any doc that explains how to create a CTK plug-in and > App from scratch. It would be probably better in my case to > create a new plugin instead of editing an existing one. > 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... 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. > 1. How can I add additional includes directories through a > CMakeLists in the CTK framework. I couldn?t find a way to > define additional directories in the CMakeList of a plug-in (no > include_directories). Is that define somewhere else? > 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. Happy coding, Sascha -------------- next part -------------- An HTML attachment was scrubbed... URL: ------------------------------ _______________________________________________ Ctk-developers mailing list Ctk-developers at commontk.org http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers End of Ctk-developers Digest, Vol 22, Issue 6 ********************************************* _______________________________________________ Ctk-developers mailing list Ctk-developers at commontk.org http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: soapmessage_host.xml Type: text/xml Size: 289635 bytes Desc: soapmessage_host.xml URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: soapmessage_app.xml Type: text/xml Size: 5186 bytes Desc: soapmessage_app.xml URL: From michael.caylus at siemens.com Wed Jun 8 05:24:58 2011 From: michael.caylus at siemens.com (Caylus, Michael (SCR US)) Date: Wed, 8 Jun 2011 01:24:58 -0400 Subject: [Ctk-developers] data exchange in the DICOM Hosting implementation In-Reply-To: References: Message-ID: <63D07F9AA364DB4C901F02EF93465C8D780878DE95@USMLVA0E934MSX.ww017.siemens.net> Hi Sascha, I have been feeding the available data structure through multiple calls to the addToAvailableData(ctkDicomAppHosting::AvailableData& data, ctkDicomObjectLocatorCache* objectLocatorCache, const QString& filename) function: one call per file found in my DICOM folder and then I send the notifyDataAvailable message only once. You should have got the SOAP messages on both the server and client side from my previous mail if not let me know I can send you the files again. I have also tried to send only the objectDescriptors array as suggested by Ben but I have observed the same issue. Best, Michael -----Original Message----- From: ctk-developers-bounces at commontk.org [mailto:ctk-developers-bounces at commontk.org] On Behalf Of ctk-developers-request at commontk.org Sent: Tuesday, June 07, 2011 10:27 AM To: ctk-developers at commontk.org Subject: Ctk-developers Digest, Vol 23, Issue 10 Send Ctk-developers mailing list submissions to ctk-developers at commontk.org To subscribe or unsubscribe via the World Wide Web, visit http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers or, via email, send a message with subject or body 'help' to ctk-developers-request at commontk.org You can reach the person managing the list at ctk-developers-owner at commontk.org When replying, please edit your Subject line so it is more specific than "Re: Contents of Ctk-developers digest..." Today's Topics: 1. Re: External projects in commontk github organization (Sascha Zelzer) 2. Re: data exchange in the DICOM Hosting implementation / QtSoap Limitation (Sascha Zelzer) ---------------------------------------------------------------------- Message: 1 Date: Tue, 07 Jun 2011 16:08:49 +0200 From: Sascha Zelzer Subject: Re: [Ctk-developers] External projects in commontk github organization To: Zach Mullen Cc: "ctk-developers at commontk.org" Message-ID: <4DEE30F1.4020504 at dkfz-heidelberg.de> Content-Type: text/plain; charset="iso-8859-1"; Format="flowed" Of course Qt depends on a native sqlite implementation, but it provides a library which is database-backend independent: http://doc.qt.nokia.com/4.7/qtsql.html It uses Qt plugins for delegating the calls to specific RDBMS implementations. Best, Sascha On 06/07/2011 03:32 PM, Zach Mullen wrote: > The MIDAScpp library linked against kwsys/expat/curl because > originally it did not depend on Qt. In the future, we could remove > these dependencies; it would just require a lot of rewriting to use > the Qt capabilities instead. Sqlite will have to stay as a dependency > since Qt doesn't have any RDBMS capabilities. > > -Zach > > On Tue, Jun 7, 2011 at 9:19 AM, Jean-Christophe Fillion-Robin > > wrote: > > Hi Sasha, > > You bring a very good point ! > > The work related to these projects has just been published and is > open to review. > See > > https://github.com/zachmullen/CTK/commit/1051813f5046bb08835b73a12138a > 672c9c48c82 > > Expat, KWSys, Sqlite and libcurl were initially shipped with > MIDAScpp library ... I advocates to externalize and CMake-ifie > properly these libraries as a first step. That way the code > checked in CTK would "really" corresponds to the library itself. > > Having an other perspective is always fruitful :) You are right, > since MIDAScpp would be part of CTK, it makes sens to not depend > on these external project and rely on Qt directly. Qt is a > mandatory dependency after all. > > I am cc'ing Zach in the email and I am sure I will be able to > provide more comments. > > Zach> Instead of using expat, libcurl, sqlite and kwsys, would it > make sens to depends on Qt ? > > In the mean time, I have the following questions: > > - Currently the library is named "CTKMIDAScppCore" and > CTKMIDAScppWidgets", I was thinking we could have something like > CTKDataManagementMIDAScppCore and CTKDataManagementMIDAScppWidgets. > What do you think ? Doing so would leave room to library like > "CTKDataManagementHadoopCore" ... > > - Does introducing a "DataManagement" hierachy of libraries make > sens ? As far as I am concerned, I think it's important to provide > both functionality to process, store and retrieve the data. > > Thanks > Jc > > > On Tue, Jun 7, 2011 at 1:48 AM, Sascha Zelzer > > > wrote: > > Hi guys, > > Recently, I observed an explosion in the number of > repositories containing external repositories in the CommonTK > organization of github. Could we discuss the need of some of > them, and maybe have these discussions in the future in > advance of pushing those projects? > > I am looking especially at the projects below, where Qt might > already offer enough functionality. Of course I could be > wrong, so thank you for your feedback! > > - sqlite (why not use the Qt sqlite wrapper?) > - KWSys (where is it needed? I did not find any reference to > it in CTK) > - libexpat (Qt also provides a streaming XML API, also not > used anywhere) > - libcurl (there is also no reference to libcurl in CTK) > > > Thanks, > > Sascha > _______________________________________________ > Ctk-developers mailing list > Ctk-developers at commontk.org > > http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers > > > > > -- > +1 919 869 8849 > > > > > -- > Zach Mullen > R & D Engineer > Kitware Inc. > (919) 969-6990 x314 > -------------- next part -------------- An HTML attachment was scrubbed... URL: ------------------------------ Message: 2 Date: Tue, 07 Jun 2011 16:27:17 +0200 From: Sascha Zelzer Subject: Re: [Ctk-developers] data exchange in the DICOM Hosting implementation / QtSoap Limitation To: "Caylus, Michael (SCR US)" Cc: "Ljung, Patric \(SCR US\)" , "ctk-developers at commontk.org" Message-ID: <4DEE3545.9030505 at dkfz-heidelberg.de> Content-Type: text/plain; charset="iso-8859-1"; Format="flowed" Hi Michael, 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). 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). Maybe Ivo and Benoit can also comment on this issue, they where mainly involved in writing the data exchange interface. Thanks, Sascha On 06/06/2011 09:35 PM, Caylus, Michael (SCR US) wrote: > Hi Sascha, > 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. > 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 > (ctkSoapMessageProcessorList::process method) 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 > (_http://www.commontk.org/index.php/Documentation/DicomApplicationHosting:DataExchangeDevelopment_) > but I am not sure what the status here. > 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? > Best, > Michael > ------------------------------------------------------------------------------------------------------------------------------- > From: Sascha Zelzer > Subject: Re: [Ctk-developers] How to wrap a Qt App into an hosted app > confirming to DICOM Supplement 118 / Working Group 23 > To: ctk-developers at commontk.org > Message-ID: <4DCD447F.7060402 at dkfz-heidelberg.de> > Content-Type: text/plain; charset="windows-1252"; Format="flowed" > Hi Michael, > Welcome to the CTK mailing list. > 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! > Best, > Sascha > On 05/13/2011 03:56 AM, Caylus, Michael (SCR US) wrote: > > Hello, > > I am new to the CTK SDK and would like to wrap my Qt application into > > an hosted app. I have seen such an example by turning on in the CMake > > configuration: ctkExampleHost and ctkExampleHosted App. I came up > > with the following questions after playing with it: > > > > 1. In order to make this wrap-up for my app; I was considering to > > edit the org_commontk_dah_exampleapp plug-in which relies on the > > org_commontk_dah_app and org_commontk_dah_core plug-in and keep > > the ctkExampleHostedApp. Is this approach the right way to > > proceed? This implies splitting my app into the hostedApp and a > > CTK plugin; with most of the work to be done on the plug-in > > level I guess. I have seen some doc explaining how to embed the > > CTK plugin framework in my app too. Can I achieve the same > > result with this approach and how? > > > 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: > 1.) Your app is a "pure" DICOM App, i.e. you do not need run it > outside the context of a "Hosting Application" > 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). > The > _http://www.commontk.org/index.php/Documentation/CTK_Plugin_Framework:_Setting_up_a_project?action=purge_ > tutorial explains how to create a CTK-based project. > 2.) You want to use your app both "stand-alone" and as a "hosted app" > 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). > 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... > > 1. I couldn?t find to which QMainWindow is the button attached to > > in the ctkExampleDicomAppLogic::do_something()function.It > > doesn?t look like thectkExampleDicomAppLogic is heritating from > > a widgetalso. Which object is responsible of the creation of the > > mainwindow? > > > 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". > > 1. Is there any doc that explains how to create a CTK plug-in and > > App from scratch. It would be probably better in my case to > > create a new plugin instead of editing an existing one. > > > 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... > 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. > > 1. How can I add additional includes directories through a > > CMakeLists in the CTK framework. I couldn?t find a way to > > define additional directories in the CMakeList of a plug-in (no > > include_directories). Is that define somewhere else? > > > 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. > Happy coding, > Sascha > -------------- next part -------------- > An HTML attachment was scrubbed... > URL: > <_http://public.kitware.com/pipermail/ctk-developers/attachments/20110513/539b8908/attachment-0001.htm_> > ------------------------------ > _______________________________________________ > Ctk-developers mailing list > _Ctk-developers at commontk.org_ > _http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers_ > End of Ctk-developers Digest, Vol 22, Issue 6 > ********************************************* -------------- next part -------------- An HTML attachment was scrubbed... URL: ------------------------------ _______________________________________________ Ctk-developers mailing list Ctk-developers at commontk.org http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers End of Ctk-developers Digest, Vol 23, Issue 10 ********************************************** From s.zelzer at dkfz-heidelberg.de Wed Jun 8 09:00:26 2011 From: s.zelzer at dkfz-heidelberg.de (Sascha Zelzer) Date: Wed, 08 Jun 2011 11:00:26 +0200 Subject: [Ctk-developers] External projects in commontk github organization Message-ID: <4DEF3A2A.9030104@dkfz-heidelberg.de> I forward the mail from Zach to ctk-developers, since it does not seem to arrive there. -------- Original Message -------- Subject: Re: [Ctk-developers] External projects in commontk github organization Date: Tue, 7 Jun 2011 16:35:28 +0200 From: Zach Mullen To: Zelzer, Sascha CC: Julien Finet , Jean-Christophe Fillion-Robin , "ctk-developers at commontk.org" On Tue, Jun 7, 2011 at 10:05 AM, Sascha Zelzer > wrote: Hi, naming issues aside, I tend to agree with Julien here. Generally, I am of course in favor of extending CTK with useful functionality. However, here is a short anecdote: Ivo and I recently got a request from German group if we think their project would be a good fit for CTK. Although it looked very promising, well engineered, and was in the scope of CTK, we expressed our concerns because the project was not Qt-ified at all and would somehow break the consistent code style we have now in CTK. I see the same issue with the current MIDAS code. In the past, I would have voted for including MIDAScpp as an external project, as we did with all existing projects we wanted to use but did not comply with the CTK style. I do not want to slow people down or to damp their enthusiasm. I am just concerned that CTK becomes a Zoo of libraries with inconsistent "Look and Feel". Hi Sascha, Part of the original motivation for moving MIDAScpp into CTK was to bring it up to the standards of organization and style that CTK uses. I will be heavily maintaining this part of the project, and the effort to make MIDAScpp conform to CTK standards will be ongoing. For now, I will work to remove the KWSys and expat dependencies and replace them with Qt functionality before we merge this code. I will also look into replacing curl with the QtNetwork module. -Zach Maybe an open discussion about integrating larger pieces of software *in advance* of starting the effort would be helpful in the future. I am still thinking about your naming suggestions... ;-) Best, Sascha On 06/07/2011 03:25 PM, Julien Finet wrote: > For the naming convention, is "MIDAScpp" mandatory? couldn't it be > just MIDAS (and be externally refered as CTK MIDAS). > By having MIDAS into CTK, we infer it is C++ and Qt based. > My 2 cts, > Julien. > > On Tue, Jun 7, 2011 at 9:19 AM, Jean-Christophe Fillion-Robin > > > wrote: > > Hi Sasha, > > You bring a very good point ! > > The work related to these projects has just been published and > is open to review. > See > https://github.com/zachmullen/CTK/commit/1051813f5046bb08835b73a12138a672c9c48c82 > > Expat, KWSys, Sqlite and libcurl were initially shipped with > MIDAScpp library ... I advocates to externalize and CMake-ifie > properly these libraries as a first step. That way the code > checked in CTK would "really" corresponds to the library itself. > > Having an other perspective is always fruitful :) You are > right, since MIDAScpp would be part of CTK, it makes sens to > not depend on these external project and rely on Qt directly. > Qt is a mandatory dependency after all. > > I am cc'ing Zach in the email and I am sure I will be able to > provide more comments. > > Zach> Instead of using expat, libcurl, sqlite and kwsys, would > it make sens to depends on Qt ? > > In the mean time, I have the following questions: > > - Currently the library is named "CTKMIDAScppCore" and > CTKMIDAScppWidgets", I was thinking we could have something > like CTKDataManagementMIDAScppCore and > CTKDataManagementMIDAScppWidgets. > What do you think ? Doing so would leave room to library like > "CTKDataManagementHadoopCore" ... > > - Does introducing a "DataManagement" hierachy of libraries > make sens ? As far as I am concerned, I think it's important > to provide both functionality to process, store and retrieve > the data. > > Thanks > Jc > > > > On Tue, Jun 7, 2011 at 1:48 AM, Sascha Zelzer > > wrote: > > Hi guys, > > Recently, I observed an explosion in the number of > repositories containing external repositories in the > CommonTK organization of github. Could we discuss the need > of some of them, and maybe have these discussions in the > future in advance of pushing those projects? > > I am looking especially at the projects below, where Qt > might already offer enough functionality. Of course I > could be wrong, so thank you for your feedback! > > - sqlite (why not use the Qt sqlite wrapper?) > - KWSys (where is it needed? I did not find any reference > to it in CTK) > - libexpat (Qt also provides a streaming XML API, also not > used anywhere) > - libcurl (there is also no reference to libcurl in CTK) > > > Thanks, > > Sascha > _______________________________________________ > Ctk-developers mailing list > Ctk-developers at commontk.org > > http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers > > > > > -- > +1 919 869 8849 > > > _______________________________________________ > Ctk-developers mailing list > Ctk-developers at commontk.org > http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From m.nolden at dkfz-heidelberg.de Wed Jun 8 11:59:45 2011 From: m.nolden at dkfz-heidelberg.de (Marco Nolden) Date: Wed, 08 Jun 2011 13:59:45 +0200 Subject: [Ctk-developers] External projects in commontk github organization In-Reply-To: <4DEF3A2A.9030104@dkfz-heidelberg.de> References: <4DEF3A2A.9030104@dkfz-heidelberg.de> Message-ID: <4DEF6431.2000709@dkfz.de> Hi, I think inside of the CTK repository we should focus on technologies that are standardized, like we currently do with DICOM Q/R and application hosting. Having a MIDAS client is probably useful for a lot of people, but I would prefer to put most of the client implementation in the MIDAS repository and enable it as an (optional) external project if we have a use case. Or MIDAS could enable CTK as a "binding" (sorry I do not know enough about MIDAS) and provide a CTK plugin that could be used by other CTK-based systems. I think this is the general idea of having a component based approach and a plugin framework. Marco On 06/08/2011 11:00 AM, Sascha Zelzer wrote: > I forward the mail from Zach to ctk-developers, since it does not seem > to arrive there. > > -------- Original Message -------- > Subject: Re: [Ctk-developers] External projects in commontk github > organization > Date: Tue, 7 Jun 2011 16:35:28 +0200 > From: Zach Mullen > To: Zelzer, Sascha > CC: Julien Finet , Jean-Christophe > Fillion-Robin , > "ctk-developers at commontk.org" > > > > On Tue, Jun 7, 2011 at 10:05 AM, Sascha Zelzer > > wrote: > > Hi, > > naming issues aside, I tend to agree with Julien here. > > Generally, I am of course in favor of extending CTK with useful > functionality. However, here is a short anecdote: Ivo and I recently > got a request from German group if we think their project would be a > good fit for CTK. Although it looked very promising, well > engineered, and was in the scope of CTK, we expressed our concerns > because the project was not Qt-ified at all and would somehow break > the consistent code style we have now in CTK. I see the same issue > with the current MIDAS code. In the past, I would have voted for > including MIDAScpp as an external project, as we did with all > existing projects we wanted to use but did not comply with the CTK > style. > > I do not want to slow people down or to damp their enthusiasm. I am > just concerned that CTK becomes a Zoo of libraries with inconsistent > "Look and Feel". > > Hi Sascha, > > Part of the original motivation for moving MIDAScpp into CTK was to > bring it up to the standards of organization and style that CTK uses. I > will be heavily maintaining this part of the project, and the effort to > make MIDAScpp conform to CTK standards will be ongoing. > > For now, I will work to remove the KWSys and expat dependencies and > replace them with Qt functionality before we merge this code. I will > also look into replacing curl with the QtNetwork module. > > -Zach > > > Maybe an open discussion about integrating larger pieces of software > *in advance* of starting the effort would be helpful in the future. > > I am still thinking about your naming suggestions... ;-) > > Best, > Sascha > > > On 06/07/2011 03:25 PM, Julien Finet wrote: >> For the naming convention, is "MIDAScpp" mandatory? couldn't it be >> just MIDAS (and be externally refered as CTK MIDAS). >> By having MIDAS into CTK, we infer it is C++ and Qt based. >> My 2 cts, >> Julien. >> >> On Tue, Jun 7, 2011 at 9:19 AM, Jean-Christophe Fillion-Robin >> > >> wrote: >> >> Hi Sasha, >> >> You bring a very good point ! >> >> The work related to these projects has just been published and >> is open to review. >> See >> https://github.com/zachmullen/CTK/commit/1051813f5046bb08835b73a12138a672c9c48c82 >> >> Expat, KWSys, Sqlite and libcurl were initially shipped with >> MIDAScpp library ... I advocates to externalize and CMake-ifie >> properly these libraries as a first step. That way the code >> checked in CTK would "really" corresponds to the library itself. >> >> Having an other perspective is always fruitful :) You are >> right, since MIDAScpp would be part of CTK, it makes sens to >> not depend on these external project and rely on Qt directly. >> Qt is a mandatory dependency after all. >> >> I am cc'ing Zach in the email and I am sure I will be able to >> provide more comments. >> >> Zach> Instead of using expat, libcurl, sqlite and kwsys, would >> it make sens to depends on Qt ? >> >> In the mean time, I have the following questions: >> >> - Currently the library is named "CTKMIDAScppCore" and >> CTKMIDAScppWidgets", I was thinking we could have something >> like CTKDataManagementMIDAScppCore and >> CTKDataManagementMIDAScppWidgets. >> What do you think ? Doing so would leave room to library like >> "CTKDataManagementHadoopCore" ... >> >> - Does introducing a "DataManagement" hierachy of libraries >> make sens ? As far as I am concerned, I think it's important >> to provide both functionality to process, store and retrieve >> the data. >> >> Thanks >> Jc >> >> >> >> On Tue, Jun 7, 2011 at 1:48 AM, Sascha Zelzer >> > > wrote: >> >> Hi guys, >> >> Recently, I observed an explosion in the number of >> repositories containing external repositories in the >> CommonTK organization of github. Could we discuss the need >> of some of them, and maybe have these discussions in the >> future in advance of pushing those projects? >> >> I am looking especially at the projects below, where Qt >> might already offer enough functionality. Of course I >> could be wrong, so thank you for your feedback! >> >> - sqlite (why not use the Qt sqlite wrapper?) >> - KWSys (where is it needed? I did not find any reference >> to it in CTK) >> - libexpat (Qt also provides a streaming XML API, also not >> used anywhere) >> - libcurl (there is also no reference to libcurl in CTK) >> >> >> Thanks, >> >> Sascha >> _______________________________________________ >> Ctk-developers mailing list >> Ctk-developers at commontk.org >> >> http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers >> >> >> >> >> -- >> +1 919 869 8849 >> >> >> _______________________________________________ >> Ctk-developers mailing list >> Ctk-developers at commontk.org >> http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers >> >> > > > > > -- ---------------------------------------------------------------------- Dipl.-Inform. Med. Marco Nolden Deutsches Krebsforschungszentrum (German Cancer Research Center) Div. Medical & Biological Informatics Tel: (+49) 6221-42 2325 Im Neuenheimer Feld 280 Fax: (+49) 6221-42 2345 D-69120 Heidelberg eMail: M.Nolden at dkfz.de From s.zelzer at dkfz-heidelberg.de Wed Jun 8 15:43:54 2011 From: s.zelzer at dkfz-heidelberg.de (Sascha Zelzer) Date: Wed, 08 Jun 2011 17:43:54 +0200 Subject: [Ctk-developers] Mac XCode project errors when building DCMTK Message-ID: <4DEF98BA.8070208@dkfz-heidelberg.de> Hi guys, we have a problem regarding the super-build of DCMTK inside of CKT when the XCode CMake generator is used. The specific problem is in CMakeExternals/DCMTK.cmake:39 where a "force-rebuild" step is added. This step is referenced as a dependent make target of other targets in the make files generated for the XCode project. However, the target does not exist and hence an error is thrown by make. Have other CTK - Mac users experienced the same? Is it a "ExternalProject" bug? Or a CMake XCode generator bug? Many thanks, Sascha From jchris.fillionr at kitware.com Wed Jun 8 16:44:01 2011 From: jchris.fillionr at kitware.com (Jean-Christophe Fillion-Robin) Date: Wed, 8 Jun 2011 12:44:01 -0400 Subject: [Ctk-developers] Mac XCode project errors when building DCMTK In-Reply-To: <4DEF98BA.8070208@dkfz-heidelberg.de> References: <4DEF98BA.8070208@dkfz-heidelberg.de> Message-ID: Hi, In the mean time, I think we can get rid of the "force-rebuild" step associated with DCMTK. This one was added for convenience .. while we were actively working on DCMTK. Jc On Wed, Jun 8, 2011 at 11:43 AM, Sascha Zelzer wrote: > Hi guys, > > we have a problem regarding the super-build of DCMTK inside of CKT when the > XCode CMake generator is used. > > The specific problem is in CMakeExternals/DCMTK.cmake:39 where a > "force-rebuild" step is added. This step is referenced as a dependent make > target of other targets in the make files generated for the XCode project. > However, the target does not exist and hence an error is thrown by make. > > Have other CTK - Mac users experienced the same? Is it a "ExternalProject" > bug? Or a CMake XCode generator bug? > > Many thanks, > > Sascha > _______________________________________________ > Ctk-developers mailing list > Ctk-developers at commontk.org > http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers > -- +1 919 869 8849 -------------- next part -------------- An HTML attachment was scrubbed... URL: From s.zelzer at dkfz-heidelberg.de Wed Jun 8 16:48:34 2011 From: s.zelzer at dkfz-heidelberg.de (Sascha Zelzer) Date: Wed, 08 Jun 2011 18:48:34 +0200 Subject: [Ctk-developers] data exchange in the DICOM Hosting implementation In-Reply-To: <63D07F9AA364DB4C901F02EF93465C8D780878DE95@USMLVA0E934MSX.ww017.siemens.net> References: <63D07F9AA364DB4C901F02EF93465C8D780878DE95@USMLVA0E934MSX.ww017.siemens.net> Message-ID: <4DEFA7E2.3080809@dkfz-heidelberg.de> Hi Michael, it looks like the deserialization code of QtSoapArray is buggy. When serializing a QtSoapArray instance to XML, it writes a position attribute like "[3]", but when reading it in, this string is getting converted to an integer which always leads to 0 (because the conversion fails due to the brackets). Please try to replace line 1284 in qtsoap.cpp (located in your CTK superbuild build tree) with: pos = posattr.value().mid(1, posattr.value().size()-2).toInt(); and make a build at the superbuild level. If that solves your problem I will push that fix to our repo and update http://www.commontk.org/index.php/Documentation/DicomApplicationHosting:DataExchangeDevelopment with a comment. I am aware of the limitation that this will only allow to deserialize one-dimensional arrays, but I think there is no multi-dimensional use case in the DICOM AppHosting standard, so I would refrain from writing support for it until we need it. Best, Sascha On 06/08/2011 07:24 AM, Caylus, Michael (SCR US) wrote: > Hi Sascha, > > I have been feeding the available data structure through multiple calls to the addToAvailableData(ctkDicomAppHosting::AvailableData& data, > ctkDicomObjectLocatorCache* objectLocatorCache, > const QString& filename) > > function: one call per file found in my DICOM folder and then I send the notifyDataAvailable message only once. > > You should have got the SOAP messages on both the server and client side from my previous mail if not let me know I can send you the files again. > > I have also tried to send only the objectDescriptors array as suggested by Ben but I have observed the same issue. > > Best, > Michael > From michael.caylus at siemens.com Thu Jun 9 01:16:55 2011 From: michael.caylus at siemens.com (Caylus, Michael (SCR US)) Date: Wed, 8 Jun 2011 21:16:55 -0400 Subject: [Ctk-developers] data exchange in the DICOM Hosting implementation In-Reply-To: <4DEFA7E2.3080809@dkfz-heidelberg.de> References: <63D07F9AA364DB4C901F02EF93465C8D780878DE95@USMLVA0E934MSX.ww017.siemens.net> <4DEFA7E2.3080809@dkfz-heidelberg.de> Message-ID: <63D07F9AA364DB4C901F02EF93465C8D78089A1D1F@USMLVA0E934MSX.ww017.siemens.net> Hi Sascha, You can push that fix to your repo. The fix you provided fixed my issue. Thanks for your help! Best, Michael -----Original Message----- From: Sascha Zelzer [mailto:s.zelzer at dkfz-heidelberg.de] Sent: Wednesday, June 08, 2011 12:49 PM To: Caylus, Michael (SCR US) Cc: ctk-developers at commontk.org; Ljung, Patric (SCR US) Subject: Re: [Ctk-developers] data exchange in the DICOM Hosting implementation Hi Michael, it looks like the deserialization code of QtSoapArray is buggy. When serializing a QtSoapArray instance to XML, it writes a position attribute like "[3]", but when reading it in, this string is getting converted to an integer which always leads to 0 (because the conversion fails due to the brackets). Please try to replace line 1284 in qtsoap.cpp (located in your CTK superbuild build tree) with: pos = posattr.value().mid(1, posattr.value().size()-2).toInt(); and make a build at the superbuild level. If that solves your problem I will push that fix to our repo and update http://www.commontk.org/index.php/Documentation/DicomApplicationHosting:DataExchangeDevelopment with a comment. I am aware of the limitation that this will only allow to deserialize one-dimensional arrays, but I think there is no multi-dimensional use case in the DICOM AppHosting standard, so I would refrain from writing support for it until we need it. Best, Sascha On 06/08/2011 07:24 AM, Caylus, Michael (SCR US) wrote: > Hi Sascha, > > I have been feeding the available data structure through multiple calls to the addToAvailableData(ctkDicomAppHosting::AvailableData& data, > ctkDicomObjectLocatorCache* objectLocatorCache, > const QString& filename) > > function: one call per file found in my DICOM folder and then I send the notifyDataAvailable message only once. > > You should have got the SOAP messages on both the server and client side from my previous mail if not let me know I can send you the files again. > > I have also tried to send only the objectDescriptors array as suggested by Ben but I have observed the same issue. > > Best, > Michael > From benoit.bleuze at inria.fr Thu Jun 9 07:49:22 2011 From: benoit.bleuze at inria.fr (Benoit Bleuze) Date: Thu, 9 Jun 2011 09:49:22 +0200 (CEST) Subject: [Ctk-developers] data exchange in the DICOM Hosting implementation In-Reply-To: <63D07F9AA364DB4C901F02EF93465C8D78089A1D1F@USMLVA0E934MSX.ww017.siemens.net> Message-ID: <1057858584.1301036.1307605762486.JavaMail.root@zmbs4.inria.fr> Good news for all of us! Indeed Sascha, there are only 1-dimensional arrays in the specs. By the way do you know how active is the development of Qt Soap? I had the impression it was quite dormant, wasn't it? Cheers, Ben ----- Original Message ----- > Hi Sascha, > > You can push that fix to your repo. The fix you provided fixed my > issue. > > Thanks for your help! > > Best, > Michael > > -----Original Message----- > From: Sascha Zelzer [mailto:s.zelzer at dkfz-heidelberg.de] > Sent: Wednesday, June 08, 2011 12:49 PM > To: Caylus, Michael (SCR US) > Cc: ctk-developers at commontk.org; Ljung, Patric (SCR US) > Subject: Re: [Ctk-developers] data exchange in the DICOM Hosting > implementation > > Hi Michael, > > it looks like the deserialization code of QtSoapArray is buggy. When > serializing a QtSoapArray instance to XML, it writes a position > attribute like "[3]", but when reading it in, this string is getting > converted to an integer which always leads to 0 (because the > conversion fails due to the brackets). Please try to replace line 1284 > in qtsoap.cpp (located in your CTK superbuild build tree) with: > > pos = posattr.value().mid(1, posattr.value().size()-2).toInt(); > > and make a build at the superbuild level. If that solves your problem > I will push that fix to our repo and update > http://www.commontk.org/index.php/Documentation/DicomApplicationHosting:DataExchangeDevelopment > with a comment. I am aware of the limitation that this will only allow > to deserialize one-dimensional arrays, but I think there is no > multi-dimensional use case in the DICOM AppHosting standard, so I > would refrain from writing support for it until we need it. > > Best, > Sascha > > On 06/08/2011 07:24 AM, Caylus, Michael (SCR US) wrote: > > Hi Sascha, > > > > I have been feeding the available data structure through multiple > > calls to the addToAvailableData(ctkDicomAppHosting::AvailableData& > > data, > > ctkDicomObjectLocatorCache* > > objectLocatorCache, > > const QString& filename) > > > > function: one call per file found in my DICOM folder and then I send > > the notifyDataAvailable message only once. > > > > You should have got the SOAP messages on both the server and client > > side from my previous mail if not let me know I can send you the > > files again. > > > > I have also tried to send only the objectDescriptors array as > > suggested by Ben but I have observed the same issue. > > > > Best, > > Michael > > > > _______________________________________________ > Ctk-developers mailing list > Ctk-developers at commontk.org > http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers From s.zelzer at dkfz-heidelberg.de Thu Jun 9 12:06:38 2011 From: s.zelzer at dkfz-heidelberg.de (Sascha Zelzer) Date: Thu, 09 Jun 2011 14:06:38 +0200 Subject: [Ctk-developers] data exchange in the DICOM Hosting implementation In-Reply-To: <1057858584.1301036.1307605762486.JavaMail.root@zmbs4.inria.fr> References: <1057858584.1301036.1307605762486.JavaMail.root@zmbs4.inria.fr> Message-ID: <4DF0B74E.1050706@dkfz-heidelberg.de> Yes, AFAIK the development of QtSOAP is "complete" in a sense that is does the things it was designed for (except for having some bugs, obviously...). I think Nokia just makes sure that it compiles with newer Qt versions. Cheers, Sascha On 06/09/2011 09:49 AM, Benoit Bleuze wrote: > Good news for all of us! > > Indeed Sascha, there are only 1-dimensional arrays in the specs. > By the way do you know how active is the development of Qt Soap? I had the impression it was quite dormant, wasn't it? > > Cheers, > Ben > > > ----- Original Message ----- >> Hi Sascha, >> >> You can push that fix to your repo. The fix you provided fixed my >> issue. >> >> Thanks for your help! >> >> Best, >> Michael >> >> -----Original Message----- >> From: Sascha Zelzer [mailto:s.zelzer at dkfz-heidelberg.de] >> Sent: Wednesday, June 08, 2011 12:49 PM >> To: Caylus, Michael (SCR US) >> Cc: ctk-developers at commontk.org; Ljung, Patric (SCR US) >> Subject: Re: [Ctk-developers] data exchange in the DICOM Hosting >> implementation >> >> Hi Michael, >> >> it looks like the deserialization code of QtSoapArray is buggy. When >> serializing a QtSoapArray instance to XML, it writes a position >> attribute like "[3]", but when reading it in, this string is getting >> converted to an integer which always leads to 0 (because the >> conversion fails due to the brackets). Please try to replace line 1284 >> in qtsoap.cpp (located in your CTK superbuild build tree) with: >> >> pos = posattr.value().mid(1, posattr.value().size()-2).toInt(); >> >> and make a build at the superbuild level. If that solves your problem >> I will push that fix to our repo and update >> http://www.commontk.org/index.php/Documentation/DicomApplicationHosting:DataExchangeDevelopment >> with a comment. I am aware of the limitation that this will only allow >> to deserialize one-dimensional arrays, but I think there is no >> multi-dimensional use case in the DICOM AppHosting standard, so I >> would refrain from writing support for it until we need it. >> >> Best, >> Sascha >> >> On 06/08/2011 07:24 AM, Caylus, Michael (SCR US) wrote: >>> Hi Sascha, >>> >>> I have been feeding the available data structure through multiple >>> calls to the addToAvailableData(ctkDicomAppHosting::AvailableData& >>> data, >>> ctkDicomObjectLocatorCache* >>> objectLocatorCache, >>> const QString& filename) >>> >>> function: one call per file found in my DICOM folder and then I send >>> the notifyDataAvailable message only once. >>> >>> You should have got the SOAP messages on both the server and client >>> side from my previous mail if not let me know I can send you the >>> files again. >>> >>> I have also tried to send only the objectDescriptors array as >>> suggested by Ben but I have observed the same issue. >>> >>> Best, >>> Michael >>> >> _______________________________________________ >> Ctk-developers mailing list >> Ctk-developers at commontk.org >> http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers > _______________________________________________ > Ctk-developers mailing list > Ctk-developers at commontk.org > http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers From s.zelzer at dkfz-heidelberg.de Thu Jun 9 12:09:29 2011 From: s.zelzer at dkfz-heidelberg.de (Sascha Zelzer) Date: Thu, 09 Jun 2011 14:09:29 +0200 Subject: [Ctk-developers] Mac XCode project errors when building DCMTK In-Reply-To: References: <4DEF98BA.8070208@dkfz-heidelberg.de> Message-ID: <4DF0B7F9.2020706@dkfz-heidelberg.de> Hi Jc, thanks for the info. I would then disable the step in the CTK - DCMTK. Do you think it makes sense to file a bug report for the XCode CMake generator? Thanks, Sascha On 06/08/2011 06:44 PM, Jean-Christophe Fillion-Robin wrote: > Hi, > > In the mean time, I think we can get rid of the "force-rebuild" step > associated with DCMTK. > > This one was added for convenience .. while we were actively working > on DCMTK. > > Jc > > On Wed, Jun 8, 2011 at 11:43 AM, Sascha Zelzer > > wrote: > > Hi guys, > > we have a problem regarding the super-build of DCMTK inside of CKT > when the XCode CMake generator is used. > > The specific problem is in CMakeExternals/DCMTK.cmake:39 where a > "force-rebuild" step is added. This step is referenced as a > dependent make target of other targets in the make files generated > for the XCode project. However, the target does not exist and > hence an error is thrown by make. > > Have other CTK - Mac users experienced the same? Is it a > "ExternalProject" bug? Or a CMake XCode generator bug? > > Many thanks, > > Sascha > _______________________________________________ > Ctk-developers mailing list > Ctk-developers at commontk.org > http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers > > > > > -- > +1 919 869 8849 > -------------- next part -------------- An HTML attachment was scrubbed... URL: From julien.finet at kitware.com Thu Jun 9 17:16:39 2011 From: julien.finet at kitware.com (Julien Finet) Date: Thu, 9 Jun 2011 13:16:39 -0400 Subject: [Ctk-developers] ctkDICOMImage in ctkDICOMDatabase Message-ID: Hi Marco/Steve, ctkDICOMDatabase is in Libs/DICOM/Core which means it shouldn't depend on QtGUI, however, it internally uses ctkDICOMImage which is QtGUI depend (and needs to be moved in Libs/DICOM/Widgets). Is ctkDICOMImage necessary in ctkDICOMDatabase? Right now, it seems to be just a test. Are you ok if I remove it ? Thanks, Julien. -------------- next part -------------- An HTML attachment was scrubbed... URL: From pieper at ibility.net Thu Jun 9 17:44:02 2011 From: pieper at ibility.net (Steve Pieper) Date: Thu, 9 Jun 2011 13:44:02 -0400 Subject: [Ctk-developers] ctkDICOMImage in ctkDICOMDatabase In-Reply-To: References: Message-ID: Hi Julien - The idea here is that the ctkDICOMDatabase should be able to automatically make the thumbnail images (png) on the fly as dicom files are added. ctkDICOMImage uses the QImage class to do this, which is in QtGui even though it seems to me to be a purely data formatting class, not a display class. Even though it's still being debugged, I'm planning to make use of the thumbnail feature in slicer4's use of ctkDICOM. Can you think of a way we can encapsulate the thumbnail calculation in ctkDICOMCore? Perhaps we should make an abstract thumbnail generator class in ctkDICOMCore and then have a QImage-based implementation in ctkDICOMWidgets that is registered with ctkDICOMDatabase at run time. Alternatively perhaps ctkDICOMDatabase could link directly to the png library and make the thumbnails with that. -Steve On Thu, Jun 9, 2011 at 1:16 PM, Julien Finet wrote: > Hi Marco/Steve, > ctkDICOMDatabase is in Libs/DICOM/Core which means it shouldn't depend on > QtGUI, however, it internally uses ctkDICOMImage which is QtGUI depend (and > needs to be moved in Libs/DICOM/Widgets). > Is ctkDICOMImage necessary in ctkDICOMDatabase? Right now, it seems to be > just a test. Are you ok if I remove it ? > Thanks, > Julien. From julien.finet at kitware.com Thu Jun 9 17:57:02 2011 From: julien.finet at kitware.com (Julien Finet) Date: Thu, 9 Jun 2011 13:57:02 -0400 Subject: [Ctk-developers] ctkDICOMImage in ctkDICOMDatabase In-Reply-To: References: Message-ID: It seems that if ctkDICOMDatabase is in CTKCore, then it doesn't need thumbnails. Maybe ctkDICOMDatabase could be overloaded in CTKWidget and handles thumbnails there. Julien. On Thu, Jun 9, 2011 at 1:44 PM, Steve Pieper wrote: > Hi Julien - > > The idea here is that the ctkDICOMDatabase should be able to > automatically make the thumbnail images (png) on the fly as dicom > files are added. ctkDICOMImage uses the QImage class to do this, > which is in QtGui even though it seems to me to be a purely data > formatting class, not a display class. Even though it's still being > debugged, I'm planning to make use of the thumbnail feature in > slicer4's use of ctkDICOM. > > Can you think of a way we can encapsulate the thumbnail calculation in > ctkDICOMCore? Perhaps we should make an abstract thumbnail generator > class in ctkDICOMCore and then have a QImage-based implementation in > ctkDICOMWidgets that is registered with ctkDICOMDatabase at run time. > Alternatively perhaps ctkDICOMDatabase could link directly to the png > library and make the thumbnails with that. > > -Steve > > > On Thu, Jun 9, 2011 at 1:16 PM, Julien Finet > wrote: > > Hi Marco/Steve, > > ctkDICOMDatabase is in Libs/DICOM/Core which means it shouldn't depend on > > QtGUI, however, it internally uses ctkDICOMImage which is QtGUI depend > (and > > needs to be moved in Libs/DICOM/Widgets). > > Is ctkDICOMImage necessary in ctkDICOMDatabase? Right now, it seems to be > > just a test. Are you ok if I remove it ? > > Thanks, > > Julien. > -------------- next part -------------- An HTML attachment was scrubbed... URL: From michael.caylus at siemens.com Tue Jun 14 21:43:23 2011 From: michael.caylus at siemens.com (Caylus, Michael (SCR US)) Date: Tue, 14 Jun 2011 17:43:23 -0400 Subject: [Ctk-developers] Clarification data handling - Application Hosting Support 118 Message-ID: <63D07F9AA364DB4C901F02EF93465C8D7808A545F6@USMLVA0E934MSX.ww017.siemens.net> Hi all, I have some uncertainties related to the data handling support in the DICOM Support 118 specification: In the file-based model in Figure 8.3.1 of spec; we can see that the selection of Data is done though the Host. It is then the responsibility of the application to pull information from the host about the input data. 1. Is it required to have any user interaction on the application to request the data we want to retrieve? Can it happen automatically right after processing the call of the notifyDataAvailable message ? In the current example of the DICOM 118 support implemented in the CTK SDK; I could see that the request of data is initiated from the user through a mouse click on the button created by the application. I am looking into a way to send a getData message without user interaction so that basically the application shows directly the available data selected on the host without any user interaction on the application. I have tried to make a call to getData within the notifyDataAvailable (ctkExampleDicomAppLogic) function but it looks like first the notifyDataAvailable message need to be processed before making a getData request. 2. This leads me to a second question: Where should occur the selection of Data? On the Host where the user define all the available data and on the Application where we want to define which input Data need to be retrieved depending of the available data? My first intuition on this was that selection should only be done on the Host but then I guess an extra notification is required so that the application knows that the notifyDataAvailable message has been fully process. Best, Michael -------------- next part -------------- An HTML attachment was scrubbed... URL: From m.nolden at dkfz-heidelberg.de Fri Jun 17 14:47:52 2011 From: m.nolden at dkfz-heidelberg.de (Marco Nolden) Date: Fri, 17 Jun 2011 16:47:52 +0200 Subject: [Ctk-developers] CTK and DCMTK 3.6 compatibility Message-ID: <4DFB6918.6060304@dkfz.de> Hi, I started using the CTK DICOM Widgets in MITK. Since we want to use the official 3.6 release of DCMTK there are some compatibility issues. To get started I fixed the constant names, adapted the superbuild and put this in a new branch https://github.com/commontk/CTK/commits/dcmtk-3.6 As far as I can see there are no build issues with DCMTK itself, the stock CMake files of DCMTK 3.6 seem to work fine. However the interface of the DcmSCU class has changed and I'm not sure how to replace the methods correctly and whether the implementation in 3.6 is already complete. Best, Marco From jchris.fillionr at kitware.com Fri Jun 17 16:25:00 2011 From: jchris.fillionr at kitware.com (Jean-Christophe Fillion-Robin) Date: Fri, 17 Jun 2011 12:25:00 -0400 Subject: [Ctk-developers] Setting name and description of ctkWorkflowWidgetStep In-Reply-To: References: Message-ID: Hi Daniel, Can we consider the case closed ? Could you document the issue on the bugtracker (label: Feature Request) ? See https://github.com/commontk/CTK/issues Thanks Jc On Sat, Jun 4, 2011 at 10:41 PM, Daniel Haehn wrote: > Hi Danielle, > > that is absolutely correct! > > Maybe it would be easiest to just fire a > d->workflow->currentStepChanged(this) signal when > ctkWorkflowStep::setName or setDescription are called? Then, the > groupbox would be automatically updated. > > Nevertheless, it has no high priority for me since I now set the name > and description of the step in its constructor - before adding it to > the workflow. > > Cheers, > Daniel > > On Fri, Jun 3, 2011 at 4:13 PM, Danielle Pace > wrote: > > Hi Daniel, > > Actually, I think you exposed something important here. > > I'm assuming, from python, that you wrote something similar to: > > - create step 1 (with no name/description) > > - create step 2 (with no name/description) > > - create workflow widget and add steps > > - display workflow widget > > - set name/description for steps 1 and 2 > > - expected to see workflow update, and it didn't > > Is this correct? I think we are missing some signals on ctkWorkflowStep > > such as NameChanged(QString) and DescriptionChanged(QString) that the > > ctkWorkflowGroupBox should be listening to. > > Perhaps you could still post your snippet of python code that wasn't > > working, so I can verify that it is an ordering of commands that we > should > > support? > > Thanks, > > > > Danielle > > > > > > > > On Fri, Jun 3, 2011 at 3:57 PM, Daniel Haehn > wrote: > >> > >> Hi Danielle, > >> > >> thanks to your response I checked it again and you are right: it was > >> my mistake :) > >> > >> If the name and description of the steps are set before the steps are > >> added to the workflow, it all works as expected. > >> > >> I set the stuff after adding it and of course it did not recognize it > >> until the signal was fired. > >> > >> Thanks for the great work! > >> > >> Cheers, > >> Daniel > >> > >> On Fri, Jun 3, 2011 at 3:44 PM, Danielle Pace < > danielle.pace at kitware.com> > >> wrote: > >> > Hi Daniel, > >> > You shouldn't have to call the currenStepChanged signal directly. Can > >> > you > >> > please post your bit of code that is not working to the CTK developers > >> > mailing list, and I will take a look? > >> > Thanks, > >> > > >> > Danielle > >> > > >> > On Fri, Jun 3, 2011 at 3:21 PM, Julien Finet < > julien.finet at kitware.com> > >> > wrote: > >> >> > >> >> > >> >> ---------- Forwarded message ---------- > >> >> From: Daniel Haehn > >> >> Date: Fri, Jun 3, 2011 at 3:13 PM > >> >> Subject: Re: [Ctk-developers] Setting name and description of > >> >> ctkWorkflowWidgetStep > >> >> To: ctk-developers at commontk.org > >> >> > >> >> > >> >> Hi guys, > >> >> > >> >> I got it: > >> >> > >> >> the ctkWorkflowGroupBox listens for the currentStepChanged signal to > >> >> update the title (==name) and subTitle (==description) for the > current > >> >> step. > >> >> > >> >> So maybe it makes sense to invoke this signal when the > >> >> ctkWorkflow.start() gets called? > >> >> > >> >> If I do it manually like that, it works: > >> >> > >> >> self.workflow.start() > >> >> self.workflow.currentStepChanged(steps[0]) > >> >> > >> >> Cheers, > >> >> Daniel > >> >> > >> >> On Fri, Jun 3, 2011 at 12:17 PM, Daniel Haehn > > >> >> wrote: > >> >> > Hi devels, > >> >> > > >> >> > in C++ I can do > >> >> > > >> >> > this->setName("Title of step"); > >> >> > this->setDescription("Instructions"); > >> >> > > >> >> > in a ctkWorkflowWidgetStep, which then get nicely displayed in the > >> >> > associated ctkWorkflowGroupBox. > >> >> > > >> >> > In Python, the same methods can be accessed but the > >> >> > ctkWorkflowGroupBox does not seem to show them. > >> >> > > >> >> > Do I need to trigger an update on the box or something similar? > >> >> > > >> >> > Thank you! > >> >> > Daniel > >> >> > > >> >> _______________________________________________ > >> >> Ctk-developers mailing list > >> >> Ctk-developers at commontk.org > >> >> http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers > >> >> > >> > > >> > > >> > > >> > -- > >> > Danielle Pace, M.ESc. > >> > Research and Development Engineer > >> > Kitware Inc., > >> > North Carolina Office > >> > www.kitware.com > >> > 919-969-6990 X 319 > >> > > > > > > > > > -- > > Danielle Pace, M.ESc. > > Research and Development Engineer > > Kitware Inc., > > North Carolina Office > > www.kitware.com > > 919-969-6990 X 319 > > > _______________________________________________ > Ctk-developers mailing list > Ctk-developers at commontk.org > http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers > -- +1 919 869 8849 -------------- next part -------------- An HTML attachment was scrubbed... URL: From haehn at bwh.harvard.edu Fri Jun 17 17:05:27 2011 From: haehn at bwh.harvard.edu (Daniel Haehn) Date: Fri, 17 Jun 2011 13:05:27 -0400 Subject: [Ctk-developers] Setting name and description of ctkWorkflowWidgetStep In-Reply-To: References: Message-ID: Sure, will do. Daniel On Fri, Jun 17, 2011 at 12:25 PM, Jean-Christophe Fillion-Robin wrote: > Hi Daniel, > > Can we consider the case closed ? > > Could you document the issue on the bugtracker (label: Feature Request) ? > See https://github.com/commontk/CTK/issues > > Thanks > Jc > > On Sat, Jun 4, 2011 at 10:41 PM, Daniel Haehn wrote: >> >> Hi Danielle, >> >> that is absolutely correct! >> >> Maybe it would be easiest to just fire a >> d->workflow->currentStepChanged(this) signal when >> ctkWorkflowStep::setName or setDescription are called? Then, the >> groupbox would be automatically updated. >> >> Nevertheless, it has no high priority for me since I now set the name >> and description of the step in its constructor - before adding it to >> the workflow. >> >> Cheers, >> Daniel >> >> On Fri, Jun 3, 2011 at 4:13 PM, Danielle Pace >> wrote: >> > Hi Daniel, >> > Actually, I think you exposed something important here. >> > I'm assuming, from python, that you wrote something similar to: >> > - create step 1 (with no name/description) >> > - create step 2 (with no name/description) >> > - create workflow widget and add steps >> > - display workflow widget >> > - set name/description for steps 1 and 2 >> > - expected to see workflow update, and it didn't >> > Is this correct? ?I think we are missing some signals on ctkWorkflowStep >> > such as NameChanged(QString) and DescriptionChanged(QString) that the >> > ctkWorkflowGroupBox should be listening to. >> > Perhaps you could still post your snippet of python code that wasn't >> > working, so I can verify that it is an ordering of commands that we >> > should >> > support? >> > Thanks, >> > >> > Danielle >> > >> > >> > >> > On Fri, Jun 3, 2011 at 3:57 PM, Daniel Haehn >> > wrote: >> >> >> >> Hi Danielle, >> >> >> >> thanks to your response I checked it again and you are right: it was >> >> my mistake :) >> >> >> >> If the name and description of the steps are set before the steps are >> >> added to the workflow, it all works as expected. >> >> >> >> I set the stuff after adding it and of course it did not recognize it >> >> until the signal was fired. >> >> >> >> Thanks for the great work! >> >> >> >> Cheers, >> >> Daniel >> >> >> >> On Fri, Jun 3, 2011 at 3:44 PM, Danielle Pace >> >> >> >> wrote: >> >> > Hi Daniel, >> >> > You shouldn't have to call the currenStepChanged signal directly. >> >> > ?Can >> >> > you >> >> > please post your bit of code that is not working to the CTK >> >> > developers >> >> > mailing list, and I will take a look? >> >> > Thanks, >> >> > >> >> > Danielle >> >> > >> >> > On Fri, Jun 3, 2011 at 3:21 PM, Julien Finet >> >> > >> >> > wrote: >> >> >> >> >> >> >> >> >> ---------- Forwarded message ---------- >> >> >> From: Daniel Haehn >> >> >> Date: Fri, Jun 3, 2011 at 3:13 PM >> >> >> Subject: Re: [Ctk-developers] Setting name and description of >> >> >> ctkWorkflowWidgetStep >> >> >> To: ctk-developers at commontk.org >> >> >> >> >> >> >> >> >> Hi guys, >> >> >> >> >> >> I got it: >> >> >> >> >> >> the ctkWorkflowGroupBox listens for the currentStepChanged signal to >> >> >> update the title (==name) and subTitle (==description) for the >> >> >> current >> >> >> step. >> >> >> >> >> >> So maybe it makes sense to invoke this signal when the >> >> >> ctkWorkflow.start() gets called? >> >> >> >> >> >> If I do it manually like that, it works: >> >> >> >> >> >> ? ? ?self.workflow.start() >> >> >> ? ? ?self.workflow.currentStepChanged(steps[0]) >> >> >> >> >> >> Cheers, >> >> >> Daniel >> >> >> >> >> >> On Fri, Jun 3, 2011 at 12:17 PM, Daniel Haehn >> >> >> >> >> >> wrote: >> >> >> > Hi devels, >> >> >> > >> >> >> > in C++ I can do >> >> >> > >> >> >> > ?this->setName("Title of step"); >> >> >> > ?this->setDescription("Instructions"); >> >> >> > >> >> >> > in a ctkWorkflowWidgetStep, which then get nicely displayed in the >> >> >> > associated ctkWorkflowGroupBox. >> >> >> > >> >> >> > In Python, the same methods can be accessed but the >> >> >> > ctkWorkflowGroupBox does not seem to show them. >> >> >> > >> >> >> > Do I need to trigger an update on the box or something similar? >> >> >> > >> >> >> > Thank you! >> >> >> > Daniel >> >> >> > >> >> >> _______________________________________________ >> >> >> Ctk-developers mailing list >> >> >> Ctk-developers at commontk.org >> >> >> http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers >> >> >> >> >> > >> >> > >> >> > >> >> > -- >> >> > Danielle Pace, M.ESc. >> >> > Research and Development Engineer >> >> > Kitware Inc., >> >> > North Carolina Office >> >> > www.kitware.com >> >> > 919-969-6990 X 319 >> >> > >> > >> > >> > >> > -- >> > Danielle Pace, M.ESc. >> > Research and Development Engineer >> > Kitware Inc., >> > North Carolina Office >> > www.kitware.com >> > 919-969-6990 X 319 >> > >> _______________________________________________ >> Ctk-developers mailing list >> Ctk-developers at commontk.org >> http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers > > > > -- > +1 919 869 8849 > > From s.zelzer at dkfz-heidelberg.de Sat Jun 18 11:56:29 2011 From: s.zelzer at dkfz-heidelberg.de (Sascha Zelzer) Date: Sat, 18 Jun 2011 13:56:29 +0200 Subject: [Ctk-developers] MinGW compatibility Message-ID: <4DFC926D.5050109@dkfz-heidelberg.de> Hi, Just for your information, I back-ported some MinGW-related fixes in DCMTK 3.6.0 to the DCMTK fork in CTK. CTK can now be build with MinGW and DCMTK enabled. Since back-porting is not really a nice job, I also want to emphasize that using the official DCMTK version in CTK is quite important. Thanks, Sascha From dicom at offis.de Mon Jun 20 07:49:17 2011 From: dicom at offis.de (OFFIS DICOM Team) Date: Mon, 20 Jun 2011 09:49:17 +0200 Subject: [Ctk-developers] CTK and DCMTK 3.6 compatibility In-Reply-To: <4DFB6918.6060304@dkfz.de> References: <4DFB6918.6060304@dkfz.de> Message-ID: <4DFEFB7D.2020702@offis.de> Hi Marco and everybody, sorry, I already sent on Friday but used my personal email adresss as a sender and thus the mail was rejected: Am 17.06.2011 16:47, schrieb Marco Nolden: > Hi, > > I started using the CTK DICOM Widgets in MITK. Since we want to use the > official 3.6 release of DCMTK there are some compatibility issues. To get > started I fixed the constant names, adapted the superbuild and put this > in a new branch > > https://github.com/commontk/CTK/commits/dcmtk-3.6 I tried the same a few weeks ago and I can confirm that only the constant names need some work (like 10 minutes or so). This is because the DICOM standard introduced official short names for attributes and we changed our own system to the one in the standard (which was 99% the same, anyway). I would recommend just switching not to 3.6. release but to our git repository (I tried that in the superbuild and it seems to work fine), since the code is pretty stable and we try to fix serious issues as soon as they are reported. > As far as I can see there are no build issues with DCMTK itself, the > stock CMake files of DCMTK 3.6 seem to work fine. However the interface > of the DcmSCU class has changed and I'm not sure how to replace the > methods correctly and whether the implementation in 3.6 is already > complete. The implementation is already complete from the perspective of what you need in the SCU, i.e. MOVE is implemted in particular. I can send you a patch within the next days, Marco and Steve, that is about to adapt the current CTK SCU stuff to the DcmSCU API (which I also already have on my laptop but not tested yet). Best regards, Michael -- OFFIS DICOM Team, Escherweg 2, 26121 Oldenburg, Germany E-Mail: dicom at offis.de, URL: http://dicom.offis.de From pieper at ibility.net Mon Jun 20 15:02:41 2011 From: pieper at ibility.net (Steve Pieper) Date: Mon, 20 Jun 2011 11:02:41 -0400 Subject: [Ctk-developers] CTK and DCMTK 3.6 compatibility In-Reply-To: <4DFEFB7D.2020702@offis.de> References: <4DFB6918.6060304@dkfz.de> <4DFEFB7D.2020702@offis.de> Message-ID: Hi Guys - I also looked at the issues related to upgrading ctk's dcmtk to 3.6 and got stalled on adapting to the latest DcmSC(U/P) changes. I'm very much looking forward to Michael's patch :D. In the mean time we've been focused working on the GUI side and Nicholas has made great progress with the thumbnails and the image viewer. We'll be working on it this week at the na-mic project week so hopefully we'll make some more useful progress (any suggestions and/or feature requests welcome). http://www.na-mic.org/Wiki/index.php/2011_Summer_Project_Week http://www.na-mic.org/Wiki/index.php/2011_Summer_Project_Week_DICOM_Networking Best regards, Steve On Mon, Jun 20, 2011 at 3:49 AM, OFFIS DICOM Team wrote: > Hi Marco and everybody, > > sorry, I already sent on Friday but used my personal email adresss as a > sender and thus the mail was rejected: > > Am 17.06.2011 16:47, schrieb Marco Nolden: >> >> Hi, >> >> I started using the CTK DICOM Widgets in MITK. Since we want to use the >> official 3.6 release of DCMTK there are some compatibility issues. To get >> started I fixed the constant names, adapted the superbuild and put this >> in a new branch >> >> https://github.com/commontk/CTK/commits/dcmtk-3.6 > > I tried the same a few weeks ago and I can confirm that only the constant > names need some work (like 10 minutes or so). This is because the DICOM > standard introduced official short names for attributes and we changed our > own system to the one in the standard (which was 99% the same, anyway). > > I would recommend just switching not to 3.6. release but to our git > repository (I tried that in the superbuild and it seems to work fine), since > the code is pretty stable and we try to fix serious issues as soon as they > are reported. > >> As far as I can see there are no build issues with DCMTK itself, the >> stock CMake files of DCMTK 3.6 seem to work fine. However the interface >> of the DcmSCU class has changed and I'm not sure how to replace the >> methods correctly and whether the implementation in 3.6 is already >> complete. > > The implementation is already complete from the perspective of what you need > in the SCU, i.e. MOVE is implemted in particular. I can send you a patch > within the next days, Marco and Steve, that is about to adapt the current > CTK SCU stuff to the DcmSCU API (which I also already have on my > laptop but not tested yet). > > Best regards, > Michael > > -- > OFFIS DICOM Team, Escherweg 2, 26121 Oldenburg, Germany > E-Mail: dicom at offis.de, URL: http://dicom.offis.de > _______________________________________________ > Ctk-developers mailing list > Ctk-developers at commontk.org > http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers > From julien.finet at kitware.com Sun Jun 26 18:40:19 2011 From: julien.finet at kitware.com (Julien Finet) Date: Sun, 26 Jun 2011 14:40:19 -0400 Subject: [Ctk-developers] Filenames alphabetically sorted in CMakeLists.txt Message-ID: Hi CTK developers, I'm not sure we ever discussed it before (I think I remember Marco talking about it sometime) but I'd like to make sure we all agree that "files inclusions must be alphabetically ordered in CMakeLists.txt" (except if there is an obvious different category ordering). This is helpful for 2 reasons: - It is less prone to generate conflicts when rebasing. If two commits add a file, they are less unlikely to conflict if they are alphabetically ordered than if they both are added at the bottom of the list. - (Faster to lookup a file in the cmakelists) Of course, the discussion is open, so please share your thoughts ! Regards, Julien. -------------- next part -------------- An HTML attachment was scrubbed... URL: From jchris.fillionr at kitware.com Sun Jun 26 20:14:34 2011 From: jchris.fillionr at kitware.com (Jean-Christophe Fillion-Robin) Date: Sun, 26 Jun 2011 16:14:34 -0400 Subject: [Ctk-developers] Filenames alphabetically sorted in CMakeLists.txt In-Reply-To: References: Message-ID: +1 On Sun, Jun 26, 2011 at 2:40 PM, Julien Finet wrote: > Hi CTK developers, > > I'm not sure we ever discussed it before (I think I remember Marco talking > about it sometime) but I'd like to make sure we all agree that "files > inclusions must be alphabetically ordered in CMakeLists.txt" (except if > there is an obvious different category ordering). > This is helpful for 2 reasons: > - It is less prone to generate conflicts when rebasing. If two commits add > a file, they are less unlikely to conflict if they are alphabetically > ordered than if they both are added at the bottom of the list. > - (Faster to lookup a file in the cmakelists) > > Of course, the discussion is open, so please share your thoughts ! > > Regards, > Julien. > > _______________________________________________ > Ctk-developers mailing list > Ctk-developers at commontk.org > http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers > > -- +1 919 869 8849 -------------- next part -------------- An HTML attachment was scrubbed... URL: From pieper at ibility.net Mon Jun 27 14:57:01 2011 From: pieper at ibility.net (Steve Pieper) Date: Mon, 27 Jun 2011 10:57:01 -0400 Subject: [Ctk-developers] Filenames alphabetically sorted in CMakeLists.txt In-Reply-To: References: Message-ID: Sounds very good to me -- in fact, it looks like you added this to the coding style back in February, Julien :D http://www.commontk.org/index.php?title=Contributing_to_CTK&diff=669&oldid=668 On Sun, Jun 26, 2011 at 4:14 PM, Jean-Christophe Fillion-Robin < jchris.fillionr at kitware.com> wrote: > +1 > > On Sun, Jun 26, 2011 at 2:40 PM, Julien Finet wrote: > >> Hi CTK developers, >> >> I'm not sure we ever discussed it before (I think I remember Marco talking >> about it sometime) but I'd like to make sure we all agree that "files >> inclusions must be alphabetically ordered in CMakeLists.txt" (except if >> there is an obvious different category ordering). >> This is helpful for 2 reasons: >> - It is less prone to generate conflicts when rebasing. If two commits >> add a file, they are less unlikely to conflict if they are alphabetically >> ordered than if they both are added at the bottom of the list. >> - (Faster to lookup a file in the cmakelists) >> >> Of course, the discussion is open, so please share your thoughts ! >> >> Regards, >> Julien. >> >> _______________________________________________ >> Ctk-developers mailing list >> Ctk-developers at commontk.org >> http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers >> >> > > > -- > +1 919 869 8849 > > > _______________________________________________ > Ctk-developers mailing list > Ctk-developers at commontk.org > http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From julien.finet at kitware.com Mon Jun 27 15:13:44 2011 From: julien.finet at kitware.com (Julien Finet) Date: Mon, 27 Jun 2011 11:13:44 -0400 Subject: [Ctk-developers] Filenames alphabetically sorted in CMakeLists.txt In-Reply-To: References: Message-ID: I can't remember what I did in February, that's scary.... :-( So my question becomes then a reminder to our CTK developers: Please sort file names in CMakeLists ! :-P I'll go ahead and fix the DICOM CMakeLists, it's not consistently sorted there. Thanks, Julien. On Mon, Jun 27, 2011 at 10:57 AM, Steve Pieper wrote: > Sounds very good to me -- in fact, it looks like you added this to the > coding style back in February, Julien :D > > > http://www.commontk.org/index.php?title=Contributing_to_CTK&diff=669&oldid=668 > > > On Sun, Jun 26, 2011 at 4:14 PM, Jean-Christophe Fillion-Robin < > jchris.fillionr at kitware.com> wrote: > >> +1 >> >> On Sun, Jun 26, 2011 at 2:40 PM, Julien Finet wrote: >> >>> Hi CTK developers, >>> >>> I'm not sure we ever discussed it before (I think I remember Marco >>> talking about it sometime) but I'd like to make sure we all agree that >>> "files inclusions must be alphabetically ordered in CMakeLists.txt" (except >>> if there is an obvious different category ordering). >>> This is helpful for 2 reasons: >>> - It is less prone to generate conflicts when rebasing. If two commits >>> add a file, they are less unlikely to conflict if they are alphabetically >>> ordered than if they both are added at the bottom of the list. >>> - (Faster to lookup a file in the cmakelists) >>> >>> Of course, the discussion is open, so please share your thoughts ! >>> >>> Regards, >>> Julien. >>> >>> _______________________________________________ >>> Ctk-developers mailing list >>> Ctk-developers at commontk.org >>> http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers >>> >>> >> >> >> -- >> +1 919 869 8849 >> >> >> _______________________________________________ >> Ctk-developers mailing list >> Ctk-developers at commontk.org >> http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers >> >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jchris.fillionr at kitware.com Mon Jun 27 15:25:00 2011 From: jchris.fillionr at kitware.com (Jean-Christophe Fillion-Robin) Date: Mon, 27 Jun 2011 11:25:00 -0400 Subject: [Ctk-developers] Filenames alphabetically sorted in CMakeLists.txt In-Reply-To: References: Message-ID: Note also that "#include" should also be sorted / organized by category. For example: // Qt includes #include #include // CTKAwesomeLib includes ... // VTK includes ... Jc On Mon, Jun 27, 2011 at 11:13 AM, Julien Finet wrote: > I can't remember what I did in February, that's scary.... :-( > > So my question becomes then a reminder to our CTK developers: > Please sort file names in CMakeLists ! :-P > > I'll go ahead and fix the DICOM CMakeLists, it's not consistently sorted > there. > > Thanks, > Julien. > > > On Mon, Jun 27, 2011 at 10:57 AM, Steve Pieper wrote: > >> Sounds very good to me -- in fact, it looks like you added this to the >> coding style back in February, Julien :D >> >> >> http://www.commontk.org/index.php?title=Contributing_to_CTK&diff=669&oldid=668 >> >> >> On Sun, Jun 26, 2011 at 4:14 PM, Jean-Christophe Fillion-Robin < >> jchris.fillionr at kitware.com> wrote: >> >>> +1 >>> >>> On Sun, Jun 26, 2011 at 2:40 PM, Julien Finet wrote: >>> >>>> Hi CTK developers, >>>> >>>> I'm not sure we ever discussed it before (I think I remember Marco >>>> talking about it sometime) but I'd like to make sure we all agree that >>>> "files inclusions must be alphabetically ordered in CMakeLists.txt" (except >>>> if there is an obvious different category ordering). >>>> This is helpful for 2 reasons: >>>> - It is less prone to generate conflicts when rebasing. If two commits >>>> add a file, they are less unlikely to conflict if they are alphabetically >>>> ordered than if they both are added at the bottom of the list. >>>> - (Faster to lookup a file in the cmakelists) >>>> >>>> Of course, the discussion is open, so please share your thoughts ! >>>> >>>> Regards, >>>> Julien. >>>> >>>> _______________________________________________ >>>> Ctk-developers mailing list >>>> Ctk-developers at commontk.org >>>> http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers >>>> >>>> >>> >>> >>> -- >>> +1 919 869 8849 >>> >>> >>> _______________________________________________ >>> Ctk-developers mailing list >>> Ctk-developers at commontk.org >>> http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers >>> >>> >> > -- +1 919 869 8849 -------------- next part -------------- An HTML attachment was scrubbed... URL: From s.zelzer at dkfz-heidelberg.de Thu Jun 30 15:19:11 2011 From: s.zelzer at dkfz-heidelberg.de (Sascha Zelzer) Date: Thu, 30 Jun 2011 17:19:11 +0200 Subject: [Ctk-developers] MacOS 10.6 errors Message-ID: <4E0C93EF.2060303@dkfz-heidelberg.de> Hi guys, We are having errors under MacOS 10.6 because the file CMake/ctkBlockSetCMakeOSXVariables.cmake hard-codes a reference to a MacOSX 10.5 SDK. Any ideas? Thanks, Sascha From jchris.fillionr at kitware.com Thu Jun 30 15:40:19 2011 From: jchris.fillionr at kitware.com (Jean-Christophe Fillion-Robin) Date: Thu, 30 Jun 2011 11:40:19 -0400 Subject: [Ctk-developers] MacOS 10.6 errors In-Reply-To: <4E0C93EF.2060303@dkfz-heidelberg.de> References: <4E0C93EF.2060303@dkfz-heidelberg.de> Message-ID: Just backported proper fix from Slicer. See https://github.com/commontk/CTK/commit/cc9fa878086128e9cfd70f007ffcde6592470638 Let me know if you experience any issue. Thanks Jc On Thu, Jun 30, 2011 at 11:19 AM, Sascha Zelzer wrote: > Hi guys, > > We are having errors under MacOS 10.6 because the file CMake/** > ctkBlockSetCMakeOSXVariables.**cmake hard-codes a reference to a MacOSX > 10.5 SDK. > > Any ideas? > > Thanks, > Sascha > ______________________________**_________________ > Ctk-developers mailing list > Ctk-developers at commontk.org > http://public.kitware.com/cgi-**bin/mailman/listinfo/ctk-**developers > -- +1 919 869 8849 -------------- next part -------------- An HTML attachment was scrubbed... URL: From s.zelzer at dkfz-heidelberg.de Thu Jun 30 17:07:57 2011 From: s.zelzer at dkfz-heidelberg.de (Sascha Zelzer) Date: Thu, 30 Jun 2011 19:07:57 +0200 Subject: [Ctk-developers] MacOS 10.6 errors In-Reply-To: References: <4E0C93EF.2060303@dkfz-heidelberg.de> Message-ID: <4E0CAD6D.4040007@dkfz-heidelberg.de> Hi Jc, That was fast. Works perfect on our MacOS installation! Thanks a lot, Sascha On 06/30/2011 05:40 PM, Jean-Christophe Fillion-Robin wrote: > Just backported proper fix from Slicer. > See > https://github.com/commontk/CTK/commit/cc9fa878086128e9cfd70f007ffcde6592470638 > > Let me know if you experience any issue. > Thanks > Jc > > On Thu, Jun 30, 2011 at 11:19 AM, Sascha Zelzer > > wrote: > > Hi guys, > > We are having errors under MacOS 10.6 because the file > CMake/ctkBlockSetCMakeOSXVariables.cmake hard-codes a reference to > a MacOSX 10.5 SDK. > > Any ideas? > > Thanks, > Sascha > _______________________________________________ > Ctk-developers mailing list > Ctk-developers at commontk.org > http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers > > > > > -- > +1 919 869 8849 > -------------- next part -------------- An HTML attachment was scrubbed... URL: