http://www.commontk.org/api.php?action=feedcontributions&user=Finetjul&feedformat=atomCommontk - User contributions [en]2024-03-28T20:58:32ZUser contributionsMediaWiki 1.39.3http://www.commontk.org/index.php?title=File:CtkFittedTextBrowser.png&diff=2311File:CtkFittedTextBrowser.png2017-04-04T06:39:44Z<p>Finetjul: Finetjul uploaded a new version of &quot;File:CtkFittedTextBrowser.png&quot;</p>
<hr />
<div></div>Finetjulhttp://www.commontk.org/index.php?title=File:CtkFittedTextBrowser.png&diff=2310File:CtkFittedTextBrowser.png2017-04-04T06:37:55Z<p>Finetjul: Finetjul uploaded a new version of &quot;File:CtkFittedTextBrowser.png&quot;</p>
<hr />
<div></div>Finetjulhttp://www.commontk.org/index.php?title=Contributing_to_CTK&diff=2139Contributing to CTK2014-06-12T14:23:32Z<p>Finetjul: /* Git Commit Style */</p>
<hr />
<div>The present document aims at describing how a developer should contribute to CTK. <br />
<br />
* The source code of CTK is currently hosted on Github. See http://github.com/commontk/CTK<br />
<br />
* It's also assumed the developer is familiar with git [http://git-scm.com/]. There are countless amount of resources available online. A good start point could the list presented on [http://www.cmake.org/Wiki/Git/Resources CMake/git page].<br />
<br />
* We use a topic-based workflow as documented [http://public.kitware.com/Wiki/Git/Workflow/Topic here] and thus define integration branche(s):<br />
** '''master''' Development; starting point for new features (default)<br />
<br />
<!--<br />
* We use a topic-based workflow as documented [http://public.kitware.com/Wiki/Git/Workflow/Topic here] and thus define integration branches:<br />
** '''master''' Release preparation; starting point for new features (default)<br />
** <del>'''next''' Development; new features published here first </del><br />
<br />
* We also accept commit following the more classic rebase workflow. See [http://unethicalblogger.com/2010/04/02/a-rebase-based-workflow.html]<br />
--><br />
<br />
= Prerequisites =<br />
* [https://github.com/signup/free Create an account on github.com]<br />
* Fork http://github.com/commontk/CTK<br />
* Introduce yourself<br />
$ git config --global user.name "Your Name"<br />
$ git config --global user.email "you@yourdomain.com"<br />
* Use correct line endings ([http://help.github.com/dealing-with-lineendings/ more info])<br />
[On Linux] $ git config --global core.autocrlf input<br />
[On Windows] $ git config --global core.autocrlf true<br />
<br />
= Checkout your fork =<br />
cd MyProject<br />
git clone git@github.com:'''<MYACCOUNT>'''/CTK.git<br />
cd CTK<br />
git remote add origin git@github.com:'''<MYACCOUNT>'''/CTK.git<br />
git remote add upstream git@github.com:commontk/CTK.git<br />
<br />
= Publishing your branch =<br />
* Having your own fork CTK allows you to backup and publish your work avoiding the ''urge to merge'' [http://public.kitware.com/Wiki/Git/Workflow/Topic#Urge_to_Merge]<br />
git checkout -b YYY-new-feature<br />
hack, hack, hack, add, commit<br />
git push origin topic1:refs/heads/YYY-new-feature<br />
<br />
* Note that <code>YYY</code> reference an issue entered in the tracker.<br />
<br />
* As a shortcut, you could also enter the following. Some useful script are also available [http://git-wt-commit.rubyforge.org/ here]:<br />
git config branch.topic1.remote origin<br />
git config branch.topic1.merge refs/heads/YYY-new-feature<br />
<br />
* Then, from the topic branch ''YYY-new-feature'', you could just enter the following to backup/publish your work:<br />
git push<br />
<br />
* From there, you have two options:<br />
** Send an email on the developer list referencing your topic<br />
** Submit a pull request [https://help.github.com/articles/using-pull-requests]<br />
<br />
* To delete a branch from your fork:<br />
git push origin :YYY-new-feature<br />
<br />
= Checkout a branch from a different fork =<br />
* You may want to collaborate with an other developer and work conjointly on a feature.<br />
* Let's say, ''jcfr'' published the branch ''awesome_feature'' on his fork. You should do the following to check out his branch:<br />
git remote add jcfr git://github.com/jcfr/CTK.git<br />
git fetch jcfr<br />
git checkout -b awesome_feature refs/remotes/jcfr/awesome_feature<br />
or <br />
git checkout -b awesome_feature jcfr/awesome_feature<br />
* You should now have a local branch named awesome_feature. You can now add, commit and publish your work.<br />
<br />
= Sync your topic branch =<br />
* If a collaborator previously checked out your published branch, committed some changes, then published a revised branch on his github fork, you may want to grab its changes.<br />
* Different ways:<br />
1) If you didn't work on your branch, you could do the following:<br />
git fetch jcfr<br />
git checkout my_topic<br />
git merge jcfr/my_topic<br />
<br />
2) If you worked on your branch while your collaborator was working, you may want to select only the commit your collaborator pushed on his fork: <br />
<br />
git fetch jcfr<br />
git checkout my_topic<br />
git cherry-pick <sha1> # sha1 identifying a specific commit<br />
<br />
= Integrate your new feature =<br />
<br />
After it has been validated and tested, your changes could be integrated to '''master''' following two approaches:<br />
<br />
* Direct integration<br />
<br />
git fetch upstream # Retrieve change from upstream repository<br />
git checkout master # Checkout your local "master" branch<br />
git reset --hard upstream/master # Make sure your local branch is up-to-date.<br />
git merge new_feature --log --no-ff # Merge locally to "master" - Your changes are now integrated<br />
git push upstream # Publish your change on the official repository<br />
git push origin # Publish your change on your fork<br />
<br />
* Pull request integration<br />
<br />
<!--<br />
* Initially, your feature should be integrated to '''next'''.<br />
* To integrate your change to '''next''', you could follow the steps listed below. More details are also available [http://public.kitware.com/Wiki/Git/Workflow/Topic#New_Topic here].<br />
git fetch upstream # Retrieve change from upstream repository<br />
git checkout next # Checkout your local "next" branch<br />
git merge upstream # Make sure your local branch is up-to-date.<br />
git merge new_feature # Merge locally to "next" - Your changes are now integrated<br />
git push upstream # Publish your change on the official repository<br />
git push origin # Publish your change on your fork<br />
<br />
* After it has been validated and tested, it could be integrated to '''master'''. More details [http://public.kitware.com/Wiki/Git/Workflow/Topic#Mature_Topic here].<br />
Repeat the command listed above changing "next" into "master"<br />
--><br />
<br />
<!--<br />
= Tutorial =<br />
The idea behind the tutorial is the following, it will guide you through the basic step allowing to:<br />
* Step1 - Fork and clone the tutorial repository<br />
* Step2 - Create a new feature from '''master''' branch<br />
* Step3 - Add and commit a file representing the feature<br />
* Step4 - Merge the feature into the '''next''' branch<br />
* Step5 - Refine your feature by doing an additional commit<br />
* Step6 - Merge again with '''next''<br />
* Step7 - Merge feature with '''master'''<br />
<br />
The 'tutorial feature' you will create could be correspond to a TXT file containing either a proverb, sentence, thought of the day, proverb, ... <br />
* For the sake of the tutorial, let's make sure the text you create for the first commit contain an "error" (missing the author name, spell mistake, ...).<br />
* The second commit will intent to fix the "error"<br />
<br />
For example:<br />
* Commit1<br />
** Filename: ghandi.txt<br />
** Content: "Be the change you want to see in the world." Mahatma Gandhi<br />
** CommitMsg: Added Mahatma Gandhi proverb about change<br />
* Commit2:<br />
** New content: "Be the change you want to see in the world." Mahatma Gandhi, Indian philosopher, internationally esteemed for his doctrine of nonviolent protest, 1869-1948<br />
** CommitMsg: Specified who is Mahatma Gandhi<br />
<br />
You will find a repository named GitTutorial here: http://github.com/commontk/GitTutorial<br />
<br />
* Step1<br />
<br />
* Step2<br />
<br />
* Step3<br />
<br />
* Step4<br />
<br />
* Step5<br />
<br />
* Step6<br />
<br />
* Step7<br />
--><br />
<br />
= Git Commit Style =<br />
<br />
* Write very descriptive and concise first line summary of your commit<br />
** try to stick to 50 characters max (no more than 65)<br />
** do not use 'COMP' 'ENH' etc. (these cut into your 50 characters)<br />
** summary should be a complete English sentence starting with a capital letter (terminating period is optional). Ideally the sentence should be using present tense ("Add" vs "Added", "Fix" vs "Made fixes"...)<br />
* Include a blank line after the summary and then a more detailed multi-line description (72 character max line length)<br />
* In the body of the commit message, include #123 where 123 is the issue number. If a final commit fixes the issue, include "Fixes #123" or "Closes #123" in the commit message.<br />
* Use <code>git merge --log --no-ff <topicname></code> (this keeps the logs messages of the merged branch)<br />
<br />
= CTK Coding Style =<br />
The overall policy is to follow the coding conventions of the parent classes unless there is an accepted CTK exception to improve consistency or usability (to account for inconsistency in the parent class system). <br />
<br />
* If you are writing a widget that inherits from QObject, all your code should follow Qt coding conventions.<br />
** Use the [http://www.commontk.org/docs/html/CorePimpl.html Private Implementation approach ("PIMPL")] '''except''' make the member variables of your private class begin with a capital letter. This means that when you create a widget using the QtDesigner, you must rename the widget to a local name that begins with a capital letter (since this will be an instance variable in your private implementation).<br />
<br />
* Use ''virtual'' keyword also in derived class. Doing so improve readability of the code.<br />
<br />
* Use const reference if it applies. For example:<br />
<syntaxhighlight lang="cpp-qt"><br />
void setName(const QString& newName); // better<br />
void setName(QString newName); // poor<br />
</syntaxhighlight><br />
<br />
* Use ''comment line'' separator. For example:<br />
<syntaxhighlight lang="cpp-qt"><br />
...<br />
<br />
//----------------------------------------------------------------------------<br />
void Foo::setName(const QString& newName)<br />
{<br />
Q_D(Foo);<br />
d->Name = newName;<br />
}<br />
<br />
//----------------------------------------------------------------------------<br />
QString Foo::name() const<br />
{<br />
Q_D(const Foo);<br />
return d->Name;<br />
}<br />
...<br />
</syntaxhighlight><br />
<br />
* The following statements ''for'', ''while'', ''switch'', ''if'', ''else'', ''try'', ''catch'' should, most of time, be multi-line. The brackets should also be indented with 2 spaces. For example:<br />
<syntaxhighlight lang="cpp-qt"><br />
<br />
<br />
//----------------------------------------------------------------------------<br />
bool Foo::doSomething(int count)<br />
{<br />
// Better<br />
for(int i=1; i < count; ++i)<br />
{<br />
if (i == 100)<br />
{<br />
qDebug() << "i = 100";<br />
break;<br />
}<br />
}<br />
<br />
// Poor<br />
for(int i=1; i < count; ++i)<br />
if (i == 100) { qDebug() << "i = 100"; break; }<br />
}<br />
<br />
</syntaxhighlight><br />
* Within CMakeLists.txt files, source/header file names should be sorted alphabetically. It also applies with inclusion order in header/implementation files<br />
* [http://marcmutz.wordpress.com/effective-qt/prefer-to-use-normalised-signalslot-signatures/ Prefer to use normalised signal/slot signatures]<br />
<br />
= FAQ =<br />
* What the meaning of ''fatal: The current branch master is not tracking anything.'' ?</div>Finetjulhttp://www.commontk.org/index.php?title=CTK_In_QtDesigner&diff=1966CTK In QtDesigner2013-10-18T18:41:47Z<p>Finetjul: </p>
<hr />
<div>=Instructions to load CTK widgets in Qt Designer=<br />
#Set the '''QT_PLUGIN_PATH''' environment variable to the ''.../CTK-build/CTK-build/bin'' path (that should contains a ''designer'' folder).<br />
#:You might also have to add into the path the CTK plugins dependencies:<br />
#:: Set the '''LD_LIBRARY_PATH''' (or '''PATH''' on Windows) environment variable to the ''.../CTK-build/CTK-build/bin'' (suffixed by Release on Windows) path (that should contains files such as ''libCTKCore.so'' or ''libCTKWidgets.so'')<br />
#:: If you built CTK with the VTK option, then you also need to add in your '''LD_LIBRARY_PATH''' (or '''PATH''' on Windows) environment variable the path to the VTK libraries (e.g. VTKCommon.dll). Those files are typically located in ''.../CTK-build/VTK-build/bin[/Release]''.<br />
#:: And if you built CTK with QtTesting, you also need to add the QtTesting-build/bin directory into your path environment variable.<br />
#:: Don't forget that on Windows, folders are separated using '\' and not '/'<br />
#Then you can start QtDesigner<br />
#:You can troubleshoot by opening the "Help -> About Plugins" dialog within QtDesigner.<br />
#:You can also troubleshoot library dependencies (-> what is missing in your LD_LIBRARY_PATH or PATH) by using ldd on linux or "Dependency Walker" on Windows.<br />
<br />
=Instructions to load CTK widgets in Qt Creator=<br />
<br />
===Links===<br />
*QtCreator plugins: http://qt-project.org/doc/qtcreator-2.6/adding-plugins.html<br />
*Dependency walker: http://www.dependencywalker.com/</div>Finetjulhttp://www.commontk.org/index.php?title=CTK_In_QtDesigner&diff=1965CTK In QtDesigner2013-10-17T20:54:35Z<p>Finetjul: /* Instructions to load CTK widgets in Qt Designer */</p>
<hr />
<div>=Instructions to load CTK widgets in Qt Designer=<br />
#Set the '''QT_PLUGIN_PATH''' environment variable to the ''.../CTK-build/CTK-build/bin'' path (that should contains a ''designer'' folder).<br />
#:You might also have to add into the path the CTK plugins dependencies:<br />
#:: Set the '''LD_LIBRARY_PATH''' (or '''PATH''' on Windows) environment variable to the ''.../CTK-build/CTK-build/bin'' (suffixed by Release on Windows) path (that should contains files such as ''libCTKCore.so'' or ''libCTKWidgets.so'')<br />
#:: If you built CTK with the VTK option, then you also need to add in your '''LD_LIBRARY_PATH''' (or '''PATH''' on Windows) environment variable the path to the VTK libraries (e.g. VTKCommon.dll). Those files are typically located in ''.../CTK-build/VTK-build/bin[/Release]''.<br />
#:: Don't forget that on Windows, folders are separated using '\' and not '/'<br />
#Then you can start QtDesigner<br />
#:You can troubleshoot by opening the "Help -> About Plugins" dialog within QtDesigner.<br />
#:You can also troubleshoot library dependencies (-> what is missing in your LD_LIBRARY_PATH or PATH) by using ldd on linux or "Dependency Walker" on Windows.<br />
<br />
=Instructions to load CTK widgets in Qt Creator=<br />
<br />
===Links===<br />
*http://qt-project.org/doc/qtcreator-2.6/adding-plugins.html</div>Finetjulhttp://www.commontk.org/index.php?title=CTK_In_QtDesigner&diff=1964CTK In QtDesigner2013-10-17T14:49:52Z<p>Finetjul: /* Instructions to load CTK widgets in Qt Designer */</p>
<hr />
<div>=Instructions to load CTK widgets in Qt Designer=<br />
#Set the '''QT_PLUGIN_PATH''' environment variable to the ''.../CTK-build/CTK-build/bin'' path (that should contains a ''designer'' folder).<br />
#:You might also have to add into the path the CTK plugins dependencies:<br />
#:: Set the '''LD_LIBRARY_PATH''' (or '''PATH''' on Windows) environment variable to the ''.../CTK-build/CTK-build/bin'' (suffixed by Release on Windows) path (that should contains files such as ''libCTKCore.so'' or ''libCTKWidgets.so'')<br />
#:: If you built CTK with the VTK option, then you also need to add in your '''LD_LIBRARY_PATH''' (or '''PATH''' on Windows) environment variable the path to the VTK libraries (e.g. VTKCommon.dll). Those files are typically located in ''.../CTK-build/VTK-build/bin[/Release]''.<br />
#Then you can start QtDesigner<br />
#:You can troubleshoot by opening the "Help -> About Plugins" dialog within QtDesigner.<br />
#:You can also troubleshoot library dependencies (-> what is missing in your LD_LIBRARY_PATH or PATH) by using ldd on linux or "Dependency Walker" on Windows.<br />
<br />
=Instructions to load CTK widgets in Qt Creator=<br />
<br />
===Links===<br />
*http://qt-project.org/doc/qtcreator-2.6/adding-plugins.html</div>Finetjulhttp://www.commontk.org/index.php?title=CTK_In_QtDesigner&diff=1963CTK In QtDesigner2013-10-16T17:33:10Z<p>Finetjul: /* Instructions to load CTK widgets in Qt Designer */</p>
<hr />
<div>=Instructions to load CTK widgets in Qt Designer=<br />
#Set the '''QT_PLUGIN_PATH''' environment variable to the ''.../CTK-build/CTK-build/bin'' path (that should contains a ''designer'' folder).<br />
#:You might also have to add into the path the CTK plugins dependencies:<br />
#:: Set the '''LD_LIBRARY_PATH''' (or '''PATH''' on Windows) environment variable to the ''.../CTK-build/CTK-build/bin'' path (that should contains files such as ''libCTKCore.so'' or ''libCTKWidgets.so'') <br />
#Then you can start QtDesigner from the command line<br />
#:You can troubleshoot by opening the "Help -> About Plugins" dialog within QtDesigner.<br />
<br />
=Instructions to load CTK widgets in Qt Creator=<br />
<br />
===Links===<br />
*http://qt-project.org/doc/qtcreator-2.6/adding-plugins.html</div>Finetjulhttp://www.commontk.org/index.php?title=CTK_In_QtDesigner&diff=1962CTK In QtDesigner2013-10-16T17:30:54Z<p>Finetjul: Add instructions for adding CTK plugins in QtDesigner</p>
<hr />
<div>=Instructions to load CTK widgets in Qt Designer=<br />
#Set the '''QT_PLUGIN_PATH''' environment variable to the ''.../CTK-build/CTK-build/bin'' path (that should contains a ''designer'' folder).<br />
#:You might also have to add into the path the CTK plugins dependencies:<br />
#:: Set the '''LD_LIBRARY_PATH''' environment variable to the ''.../CTK-build/CTK-build/bin'' path (that should contains files such as ''libCTKCore.so'' or ''libCTKWidgets.so'') <br />
#Then you can start QtDesigner from the command line<br />
#:You can troubleshoot by opening the "Help -> About Plugins" dialog within QtDesigner.<br />
<br />
=Instructions to load CTK widgets in Qt Creator=<br />
<br />
===Links===<br />
*http://qt-project.org/doc/qtcreator-2.6/adding-plugins.html</div>Finetjulhttp://www.commontk.org/index.php?title=CTK_In_QtDesigner&diff=1948CTK In QtDesigner2013-08-23T15:07:41Z<p>Finetjul: Created page with "=Instructions to load CTK widgets in Qt Designer= =Instructions to load CTK widgets in Qt Creator="</p>
<hr />
<div>=Instructions to load CTK widgets in Qt Designer=<br />
<br />
=Instructions to load CTK widgets in Qt Creator=</div>Finetjulhttp://www.commontk.org/index.php?title=Getting_Started&diff=1947Getting Started2013-08-23T15:06:05Z<p>Finetjul: /* How to */</p>
<hr />
<div>[[File:Commontk getting started.png|50px]]<br />
If you are new to CTK and want to learn more about the scope of the toolkit, please read the [[Main Page]].<br />
=How to=<br />
* Build CTK: Instructions to build CTK are available [[Build_Instructions|here]].<br />
* Integrate CTK: The [http://www.github.com/commontk/Examples Examples] project shows how to integrate CTK within an application.<br />
* Add CTK widgets in Qt Designer: [[CTK_In_QtDesigner|Step by step guide]] to load the CTK plugins in the Qt Designer<br />
<br />
=CTK mailing list=<br />
For asking questions, please use the mailing list:<br />
<br />
ctk-developers@commontk.org<br />
<br />
The signup form and historical data for the mailing list is:<br />
<br />
http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers<br />
<br />
The mailing list archives are available here:<br />
<br />
http://public.kitware.com/pipermail/ctk-developers/</div>Finetjulhttp://www.commontk.org/index.php?title=Getting_Started&diff=1946Getting Started2013-08-23T15:05:55Z<p>Finetjul: /* How to */</p>
<hr />
<div>[[File:Commontk getting started.png|50px]]<br />
If you are new to CTK and want to learn more about the scope of the toolkit, please read the [[Main Page]].<br />
=How to=<br />
* Build CTK: Instructions to build CTK are available [[Build_Instructions|here]].<br />
* Integrate CTK: The [http://www.github.com/commontk/Examples Examples] project shows how to integrate CTK within an application.<br />
* Add CTK widgets in Qt Designer: [[CTK_In_QtDesigner|Step by step guide]] to load the CTK plugins in the Qt Designer<br />
<br />
=CTK mailing list=<br />
For asking questions, please use the mailing list:<br />
<br />
ctk-developers@commontk.org<br />
<br />
The signup form and historical data for the mailing list is:<br />
<br />
http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers<br />
<br />
The mailing list archives are available here:<br />
<br />
http://public.kitware.com/pipermail/ctk-developers/</div>Finetjulhttp://www.commontk.org/index.php?title=Documentation/ImageGallery&diff=1941Documentation/ImageGallery2013-07-11T19:20:06Z<p>Finetjul: </p>
<hr />
<div>==Widgets==<br />
<gallery widths=300 px heights=200px perrow=3><br />
Image:CtkActionsWidget.png|[http://www.commontk.org/docs/html/classctkActionsWidget.html ctkActionsWidget]<br>A custom QTreeView that shows the QActions (shortcuts) of an application.<br />
Image:CtkAxesWidget.png|[http://www.commontk.org/docs/html/classctkAxesWidget.html ctkAxesWidget]<br>A widget to select an axis (RAS).<br />
Image:CtkCheckableComboBox.png|[http://www.commontk.org/docs/html/classctkCheckableComboBox.html ctkCheckableComboBox]<br>A combo box to check items.<br />
Image:CtkCheckableHeaderView.png|[http://www.commontk.org/docs/html/classctkCheckableHeaderView.html ctkCheckableHeaderView]<br>A QHeaderView that support checkable sections. The checkState can be propagated to the model items.<br />
Image:CtkCheckablePushButton.png|[http://www.commontk.org/docs/html/classctkCheckablePushButton.html ctkCheckablePushButton]<br>A QPushButton with a custom checkbox. By default the checkable state is controlled with a checkbox.<br />
Image:CtkCollapsibleWidget.png|[http://www.commontk.org/docs/html/classctkCollapsibleButton.html ctkCollapsibleButton]<br>A container with a QPushButton on top that controls the visible state of the contents<br />
Image:CtkCollapsibleGroupBox.png|[http://www.commontk.org/docs/html/classctkCollapsibleGroupBox.html ctkCollapsibleGroupBox]<br>A QGroupBox that collapses/expands when checked/unchecked<br />
Image:CtkColorDialog.png|[http://www.commontk.org/docs/html/classctkColorDialog.html ctkColorDialog]<br>A QColorDialog that can be customized with extra widgets(tabs)<br />
Image:CtkColorPickerButton.png|[http://www.commontk.org/docs/html/classctkColorPickerButton.html ctkColorPickerButton]<br>A QPushButton with a colorful icon, opening a color chooser dialog on click<br />
Image:CtkTitleComboBox.png|[http://www.commontk.org/docs/html/classctkComboBox.html ctkComboBox]<br>An advanced QComboBox with default icon/title, persistent text...<br />
Image:CtkCoordinatesWidget.png|[http://www.commontk.org/docs/html/classctkCoordinatesWidget.html ctkCoordinatesWidget]<br>A QDoubleSpinBox container that groups signals/slots of 3D vectors(i.e. X,Y,Z)<br />
Image:CtkDateRangeWidget.png|[http://www.commontk.org/docs/html/classctkDateRangeWidget.html ctkDateRangeWidget]<br>A utility widget to select a range in time.<br />
Image:CtkDirectoryButton.png|[http://www.commontk.org/docs/html/classctkDirectoryButton.html ctkDirectoryButton]<br>A QPushButton that display a directory path and popups a QFileDialog on click. The selected directory is then displayed on the button and a signal emitted.<br />
Image:CtkRangeSlider.png|[http://www.commontk.org/docs/html/classctkDoubleRangeSlider.html ctkDoubleRangeSlider]<br>A ctkRangeSlider handling double values.<br />
Image:CtkDoubleSlider.png|[http://www.commontk.org/docs/html/classctkDoubleSlider.html ctkDoubleSlider]<br>A slider handling doubles<br />
Image:CtkDoubleSpinBox.gif|[http://www.commontk.org/docs/html/classctkDoubleSpinBox.html ctkDoubleSpinBox]<br>An advanced spinbox with better control over the decimals<br />
Image:CtkExpandableWidget.png|[http://www.commontk.org/docs/html/classctkExpandableWidget.html ctkExpandableWidget]<br>A resizable (size-hint) frame or grip (with [http://www.commontk.org/docs/html/classctkSizeGrip.html ctkSizeGrip]).<br />
Image:CtkErrorLogWidget.png|[http://www.commontk.org/docs/html/classctkErrorLogWidget.html ctkErrorLogWidget]<br>A widget to show errors and logs of your application<br />
Image:ExpandButton.png|[http://www.commontk.org/docs/html/classctkExpandButton.html ctkExpandButton]<br>A QToolButton with a standard icon, to show, hide widgets.<br />
Image:CtkFileDialog.png|[http://www.commontk.org/docs/html/classctkFileDialog.html ctkFileDialog]<br>A customizable QFileDialog (extra options can be added to the file dialog).<br />
Image:CtkFittedTextBrowser.png|[http://www.commontk.org/docs/html/classctkFittedTextBrowser.html ctkFittedTextBrowser]<br>A QTextBrowser that returns a dynamic vertical size hint depending of it's width.<br />
Image:CtkFittedTextBrowser2.png|[http://www.commontk.org/docs/html/classctkFittedTextBrowser.html ctkFittedTextBrowser]<br>A QTextBrowser that returns a dynamic vertical size hint depending of it's width.<br />
Image:CtkFlowLayout.png|[http://www.commontk.org/docs/html/classctkFlowLayout.html ctkFlowLayout]<br>A QLayout that dynamically lay-outs widgets based on the available width/height.<br />
Image:CtkFontButton.png|[http://www.commontk.org/docs/html/classctkFontButton.html ctkFontButton]<br>A pushbutton to select a font.<br />
Image:CtkLayoutManager.png|[http://www.commontk.org/docs/html/classctkLayoutManager.html ctkLayoutManager]<br>An XML layout manager for dynamic and serializable layout.<br />
Image:CtkLanguageComboBox.png|[http://www.commontk.org/docs/html/classctkLanguageComboBox.html ctkLanguageComboBox]<br>A combobox to select a language.<br />
Image:CtkMaterialPropertyWidget.png|[http://www.commontk.org/docs/html/classctkMaterialPropertyWidget.html ctkMaterialPropertyWidget]<br>A widget to control material properties<br />
Image:CtkMenuButton.png|[http://www.commontk.org/docs/html/classctkMenuButton.html ctkMenuButton]<br>A QPushButton with a dedicated area that popups a QMenu<br />
Image:CtkMenuComboBox.png|[http://www.commontk.org/docs/html/classctkMenuComboBox.html ctkMenuComboBox]<br>A QComboBox links with a Qmenu<br />
Image:CtkVTKMatrixWidget.png|[http://www.commontk.org/docs/html/classctkMatrixWidget.html ctkMatrixWidget]<br>A matrix table<br />
Image:CtkModalityWidget.png|[http://www.commontk.org/docs/html/classctkModalityWidget.html ctkModalityWidget]<br>A radio button group of medical (DICOM) modalities<br />
Image:CtkPathLineEdit.png|[http://www.commontk.org/docs/html/classctkPathLineEdit.html ctkPathLineEdit]<br>An auto-complete line edit to pick file path and remember history. <br />
Image:CtkPathListWidget.png|[http://www.commontk.org/docs/html/classctkPathListWidget.html ctkPathListWidget]<br>A list view with buttons to select multiple files/directories. <br />
Image:CtkPopupWidget.png|[http://www.commontk.org/docs/html/classctkPopupWidget.html ctkPopupWidget]<br>A widget that opens/closes dynamically. Read the [http://www.kitware.com/blog/home/post/169 blog post]. <br />
Image:CtkRangeSlider.png|[http://www.commontk.org/docs/html/classctkRangeSlider.html ctkRangeSlider]<br>A QSlider with 2 handles to select 2 values.<br />
Image:CtkRangeWidget.png|[http://www.commontk.org/docs/html/classctkRangeWidget.html ctkRangeWidget]<br>A ctkDoubleRangeSlider with 2 linked spinboxes.<br />
Image:CtkScreenshotDialog.png|[http://www.commontk.org/docs/html/classctkScreenshotDialog.html ctkScreenshotDialog]<br>A dialog to take screenshots of any QWidget<br />
Image:CtkSearchBox3.png|[http://www.commontk.org/docs/html/classctkSearchBox.html ctkSearchBox]<br>A QLineEdit with 2 QIcon to be used to filter other widgets<br />
Image:CtkSettingsDialog.png|[http://www.commontk.org/docs/html/classctkSettingsDialog.html ctkSettingsDialog]<br>An easy to setup dialog to control application settings.<br />
Image:CtkSliderSpinBoxWidget.png|[http://www.commontk.org/docs/html/classctkSliderWidget.html ctkSliderWidget]<br>A pair of a ctkDoubleSlider and a QDoubleSpinBox bound together<br />
Image:CtkThumbnailLabel.png|[http://www.commontk.org/docs/html/classctkThumbnailLabel.html ctkThumbnailLabel]<br>An advanced label to give control over the pixmap resizing and text position.<br />
Image:CtkThumbnailListWidget.png|[http://www.commontk.org/docs/html/classctkThumbnailListWidget.html ctkThumbnailListWidget]<br>A collection of ctkThumbnailLabels in a flexible layout.<br />
Image:CtkTransferFunctionWidget.png|[http://www.commontk.org/docs/html/classctkTransferFunctionWidget.html ctkTransferFunctionWidget]<br>A widget that displays [[Documentation/ctkTransferFunctionWidget|ctkTransferFunctions]]<br />
Image:CtkTreeComboBox.png|[http://www.commontk.org/docs/html/classctkTreeComboBox.html ctkTreeComboBox]<br>A QComboBox that displays items in a tree view<br />
</gallery><br />
<br />
==Visualization/VTK/Widgets==<br />
<gallery widths=300 px heights=200px perrow=3><br />
Image:CtkVTKDataSetArrayComboBox.png|[http://www.commontk.org/docs/html/classctkVTKDataSetArrayComboBox.html ctkVTKDataSetArrayComboBox]<br>A combobox populated with a vtkDataSet data arrays<br />
Image:CtkVTKMagnifyView.png|[http://www.commontk.org/docs/html/classctkVTKMagnifyView.html ctkVTKMagnifyView]<br>A widget that display zoomed contents of a VTK render window.<br />
Image:CtkVTKMatrixWidget.png|[http://www.commontk.org/docs/html/classctkVTKMatrixWidget.html ctkVTKMatrixWidget]<br>A QTableWidget specially conceived for displaying/editing matrices<br />
Image:CtkVTKPropertyWidget.png|[http://www.commontk.org/docs/html/classctkVTKPropertyWidget.html ctkVTKPropertyWidget]<br>A widget to control all the properties of vtkProperties.<br />
Image:CtkVTKRenderView.png|[http://www.commontk.org/docs/html/classctkVTKRenderView.html ctkVTKRenderView]<br>A QVTKRenderWidget with additional utility functions<br />
Image:CtkVTKScalarsToColorsView.png|[http://www.commontk.org/docs/html/classctkVTKScalarsToColorsView.html ctkVTKScalarsToColorsView]<br>A QVTKWidget that contains VTK Charts for transfer function rendering/interfacing<br />
Image:CtkVTKSliceView-Lightbox.png|[http://www.commontk.org/docs/html/classctkVTKSliceView.html ctkVTKSliceView]<br>A QVTKRenderWidget to display 2D images (support lightbox mode)<br />
Image:CtkMaterialPropertyWidget.png|[http://www.commontk.org/docs/html/classctkVTKSurfaceMaterialPropertyWidget.html ctkVTKSurfaceMaterialPropertyWidget]<br>A widget to control vtkProperty most common properties<br />
Image:CtkVTKTextPropertyWidget.png|[http://www.commontk.org/docs/html/classctkVTKTextPropertyWidget.html ctkVTKTextPropertyWidget]<br>A widget to control vtkTextProperty most common properties<br />
Image:CtkVTKThresholdWidget.png|[http://www.commontk.org/docs/html/classctkVTKThresholdWidget.html ctkVTKThresholdWidget]<br>A widget to control a threshold min/max/height in a vtkPiecewiseFunction<br />
Image:CtkVTKThumbnailView.png|[http://www.commontk.org/docs/html/classctkVTKThumbnailView.html ctkVTKThumbnailView]<br>A widget to show the viewport of any vtkRenderer<br />
</gallery><br />
<br />
==DICOM==<br />
<gallery widths=300 px heights=200px perrow=3><br />
Image:CtkDICOM-hackfest-Feb-2011.png|[http://www.commontk.org/docs/html/classctkDICOMAppWidget.html ctkDICOMAppWidget]<br>A DICOM widget to manage local and remote DICOM image database<br />
Image:CtkDICOMImportWidget.png|[http://www.commontk.org/docs/html/classctkDICOMImportWidget.html ctkDICOMImportWidget]<br>Panel to select a directory containing DICOM files on a local file system.<br />
Image:CtkDICOMModel.png|[http://www.commontk.org/docs/html/classctkDICOMModel.html ctkDICOMModel]<br>A QAbstractItemModel to represent DICOM files.<br />
Image:CtkDICOMServerNodeWidget.png|[http://www.commontk.org/docs/html/classctkDICOMServerNodeWidget.html ctkDICOMServerNodeWidget]<br>A widget to list/add/remove remote servers.<br />
</gallery><br />
<br />
==Scripting/Python==<br />
<gallery widths=300 px heights=200px perrow=3><br />
Image:CtkPythonShell.png|[http://www.commontk.org/docs/html/classctkPythonShell.html ctkPythonShell]<br>A console to interact with python<br />
</gallery></div>Finetjulhttp://www.commontk.org/index.php?title=Documentation/ImageGallery&diff=1940Documentation/ImageGallery2013-07-09T14:36:40Z<p>Finetjul: Add ctkDoubleSpinBox</p>
<hr />
<div>==Widgets==<br />
<gallery widths=300 px heights=200px perrow=3><br />
Image:CtkActionsWidget.png|[http://www.commontk.org/docs/html/classctkActionsWidget.html ctkActionsWidget]<br>A custom QTreeView that shows the QActions (shortcuts) of an application.<br />
Image:CtkAxesWidget.png|[http://www.commontk.org/docs/html/classctkAxesWidget.html ctkAxesWidget]<br>A widget to select an axis (RAS).<br />
Image:CtkCheckableComboBox.png|[http://www.commontk.org/docs/html/classctkCheckableComboBox.html ctkCheckableComboBox]<br>A combo box to check items.<br />
Image:CtkCheckableHeaderView.png|[http://www.commontk.org/docs/html/classctkCheckableHeaderView.html ctkCheckableHeaderView]<br>A QHeaderView that support checkable sections. The checkState can be propagated to the model items.<br />
Image:CtkCheckablePushButton.png|[http://www.commontk.org/docs/html/classctkCheckablePushButton.html ctkCheckablePushButton]<br>A QPushButton with a custom checkbox. By default the checkable state is controlled with a checkbox.<br />
Image:CtkCollapsibleWidget.png|[http://www.commontk.org/docs/html/classctkCollapsibleButton.html ctkCollapsibleButton]<br>A container with a QPushButton on top that controls the visible state of the contents<br />
Image:CtkCollapsibleGroupBox.png|[http://www.commontk.org/docs/html/classctkCollapsibleGroupBox.html ctkCollapsibleGroupBox]<br>A QGroupBox that collapses/expands when checked/unchecked<br />
Image:CtkColorDialog.png|[http://www.commontk.org/docs/html/classctkColorDialog.html ctkColorDialog]<br>A QColorDialog that can be customized with extra widgets(tabs)<br />
Image:CtkColorPickerButton.png|[http://www.commontk.org/docs/html/classctkColorPickerButton.html ctkColorPickerButton]<br>A QPushButton with a colorful icon, opening a color chooser dialog on click<br />
Image:CtkTitleComboBox.png|[http://www.commontk.org/docs/html/classctkComboBox.html ctkComboBox]<br>An advanced QComboBox with default icon/title, persistent text...<br />
Image:CtkCoordinatesWidget.png|[http://www.commontk.org/docs/html/classctkCoordinatesWidget.html ctkCoordinatesWidget]<br>A QDoubleSpinBox container that groups signals/slots of 3D vectors(i.e. X,Y,Z)<br />
Image:CtkVTKScalarsToColorsView.png|[http://www.commontk.org/docs/html/classctkVTKScalarsToColorsView.html ctkVTKScalarsToColorsView]<br>A QVTKWidget that contains VTK Charts for transfer function rendering/interfacing<br />
Image:CtkDateRangeWidget.png|[http://www.commontk.org/docs/html/classctkDateRangeWidget.html ctkDateRangeWidget]<br>A utility widget to select a range in time.<br />
Image:CtkDirectoryButton.png|[http://www.commontk.org/docs/html/classctkDirectoryButton.html ctkDirectoryButton]<br>A QPushButton that display a directory path and popups a QFileDialog on click. The selected directory is then displayed on the button and a signal emitted.<br />
Image:CtkRangeSlider.png|[http://www.commontk.org/docs/html/classctkDoubleRangeSlider.html ctkDoubleRangeSlider]<br>A ctkRangeSlider handling double values.<br />
Image:CtkDoubleSlider.png|[http://www.commontk.org/docs/html/classctkDoubleSlider.html ctkDoubleSlider]<br>A slider handling doubles<br />
Image:CtkDoubleSpinBox.gif|[http://www.commontk.org/docs/html/classctkDoubleSpinBox.html ctkDoubleSpinBox]<br>An advanced spinbox with better control over the decimals<br />
Image:CtkExpandableWidget.png|[http://www.commontk.org/docs/html/classctkExpandableWidget.html ctkExpandableWidget]<br>A resizable (size-hint) frame or grip (with [http://www.commontk.org/docs/html/classctkSizeGrip.html ctkSizeGrip]).<br />
Image:CtkErrorLogWidget.png|[http://www.commontk.org/docs/html/classctkErrorLogWidget.html ctkErrorLogWidget]<br>A widget to show errors and logs of your application<br />
Image:ExpandButton.png|[http://www.commontk.org/docs/html/classctkExpandButton.html ctkExpandButton]<br>A QToolButton with a standard icon, to show, hide widgets.<br />
Image:CtkFileDialog.png|[http://www.commontk.org/docs/html/classctkFileDialog.html ctkFileDialog]<br>A customizable QFileDialog (extra options can be added to the file dialog).<br />
Image:CtkFittedTextBrowser.png|[http://www.commontk.org/docs/html/classctkFittedTextBrowser.html ctkFittedTextBrowser]<br>A QTextBrowser that returns a dynamic vertical size hint depending of it's width.<br />
Image:CtkFittedTextBrowser2.png|[http://www.commontk.org/docs/html/classctkFittedTextBrowser.html ctkFittedTextBrowser]<br>A QTextBrowser that returns a dynamic vertical size hint depending of it's width.<br />
Image:CtkFlowLayout.png|[http://www.commontk.org/docs/html/classctkFlowLayout.html ctkFlowLayout]<br>A QLayout that dynamically lay-outs widgets based on the available width/height.<br />
Image:CtkFontButton.png|[http://www.commontk.org/docs/html/classctkFontButton.html ctkFontButton]<br>A pushbutton to select a font.<br />
Image:CtkLayoutManager.png|[http://www.commontk.org/docs/html/classctkLayoutManager.html ctkLayoutManager]<br>An XML layout manager for dynamic and serializable layout.<br />
Image:CtkLanguageComboBox.png|[http://www.commontk.org/docs/html/classctkLanguageComboBox.html ctkLanguageComboBox]<br>A combobox to select a language.<br />
Image:CtkMaterialPropertyWidget.png|[http://www.commontk.org/docs/html/classctkMaterialPropertyWidget.html ctkMaterialPropertyWidget]<br>A widget to control material properties<br />
Image:CtkMenuButton.png|[http://www.commontk.org/docs/html/classctkMenuButton.html ctkMenuButton]<br>A QPushButton with a dedicated area that popups a QMenu<br />
Image:CtkMenuComboBox.png|[http://www.commontk.org/docs/html/classctkMenuComboBox.html ctkMenuComboBox]<br>A QComboBox links with a Qmenu<br />
Image:CtkVTKMatrixWidget.png|[http://www.commontk.org/docs/html/classctkMatrixWidget.html ctkMatrixWidget]<br>A matrix table<br />
Image:CtkModalityWidget.png|[http://www.commontk.org/docs/html/classctkModalityWidget.html ctkModalityWidget]<br>A radio button group of medical (DICOM) modalities<br />
Image:CtkPathLineEdit.png|[http://www.commontk.org/docs/html/classctkPathLineEdit.html ctkPathLineEdit]<br>An auto-complete line edit to pick file path and remember history. <br />
Image:CtkPathListWidget.png|[http://www.commontk.org/docs/html/classctkPathListWidget.html ctkPathListWidget]<br>A list view with buttons to select multiple files/directories. <br />
Image:CtkPopupWidget.png|[http://www.commontk.org/docs/html/classctkPopupWidget.html ctkPopupWidget]<br>A widget that opens/closes dynamically. Read the [http://www.kitware.com/blog/home/post/169 blog post]. <br />
Image:CtkRangeSlider.png|[http://www.commontk.org/docs/html/classctkRangeSlider.html ctkRangeSlider]<br>A QSlider with 2 handles to select 2 values.<br />
Image:CtkRangeWidget.png|[http://www.commontk.org/docs/html/classctkRangeWidget.html ctkRangeWidget]<br>A ctkDoubleRangeSlider with 2 linked spinboxes.<br />
Image:CtkScreenshotDialog.png|[http://www.commontk.org/docs/html/classctkScreenshotDialog.html ctkScreenshotDialog]<br>A dialog to take screenshots of any QWidget<br />
Image:CtkSearchBox3.png|[http://www.commontk.org/docs/html/classctkSearchBox.html ctkSearchBox]<br>A QLineEdit with 2 QIcon to be used to filter other widgets<br />
Image:CtkSettingsDialog.png|[http://www.commontk.org/docs/html/classctkSettingsDialog.html ctkSettingsDialog]<br>An easy to setup dialog to control application settings.<br />
Image:CtkSliderSpinBoxWidget.png|[http://www.commontk.org/docs/html/classctkSliderWidget.html ctkSliderWidget]<br>A pair of a ctkDoubleSlider and a QDoubleSpinBox bound together<br />
Image:CtkThumbnailLabel.png|[http://www.commontk.org/docs/html/classctkThumbnailLabel.html ctkThumbnailLabel]<br>An advanced label to give control over the pixmap resizing and text position.<br />
Image:CtkThumbnailListWidget.png|[http://www.commontk.org/docs/html/classctkThumbnailListWidget.html ctkThumbnailListWidget]<br>A collection of ctkThumbnailLabels in a flexible layout.<br />
Image:CtkTransferFunctionWidget.png|[http://www.commontk.org/docs/html/classctkTransferFunctionWidget.html ctkTransferFunctionWidget]<br>A widget that displays [[Documentation/ctkTransferFunctionWidget|ctkTransferFunctions]]<br />
Image:CtkTreeComboBox.png|[http://www.commontk.org/docs/html/classctkTreeComboBox.html ctkTreeComboBox]<br>A QComboBox that displays items in a tree view<br />
</gallery><br />
<br />
==Visualization/VTK/Widgets==<br />
<gallery widths=300 px heights=200px perrow=3><br />
Image:CtkVTKDataSetArrayComboBox.png|[http://www.commontk.org/docs/html/classctkVTKDataSetArrayComboBox.html ctkVTKDataSetArrayComboBox]<br>A combobox populated with a vtkDataSet data arrays<br />
Image:CtkVTKMagnifyView.png|[http://www.commontk.org/docs/html/classctkVTKMagnifyView.html ctkVTKMagnifyView]<br>A widget that display zoomed contents of a VTK render window.<br />
Image:CtkVTKMatrixWidget.png|[http://www.commontk.org/docs/html/classctkVTKMatrixWidget.html ctkVTKMatrixWidget]<br>A QTableWidget specially conceived for displaying/editing matrices<br />
Image:CtkVTKPropertyWidget.png|[http://www.commontk.org/docs/html/classctkVTKPropertyWidget.html ctkVTKPropertyWidget]<br>A widget to control all the properties of vtkProperties.<br />
Image:CtkVTKRenderView.png|[http://www.commontk.org/docs/html/classctkVTKRenderView.html ctkVTKRenderView]<br>A QVTKRenderWidget with additional utility functions<br />
Image:CtkVTKSliceView-Lightbox.png|[http://www.commontk.org/docs/html/classctkVTKSliceView.html ctkVTKSliceView]<br>A QVTKRenderWidget to display 2D images (support lightbox mode)<br />
Image:CtkMaterialPropertyWidget.png|[http://www.commontk.org/docs/html/classctkVTKSurfaceMaterialPropertyWidget.html ctkVTKSurfaceMaterialPropertyWidget]<br>A widget to control vtkProperty most common properties<br />
Image:CtkVTKTextPropertyWidget.png|[http://www.commontk.org/docs/html/classctkVTKTextPropertyWidget.html ctkVTKTextPropertyWidget]<br>A widget to control vtkTextProperty most common properties<br />
Image:CtkVTKThresholdWidget.png|[http://www.commontk.org/docs/html/classctkVTKThresholdWidget.html ctkVTKThresholdWidget]<br>A widget to control a threshold min/max/height in a vtkPiecewiseFunction<br />
Image:CtkVTKThumbnailView.png|[http://www.commontk.org/docs/html/classctkVTKThumbnailView.html ctkVTKThumbnailView]<br>A widget to show the viewport of any vtkRenderer<br />
</gallery><br />
<br />
==DICOM==<br />
<gallery widths=300 px heights=200px perrow=3><br />
Image:CtkDICOM-hackfest-Feb-2011.png|[http://www.commontk.org/docs/html/classctkDICOMAppWidget.html ctkDICOMAppWidget]<br>A DICOM widget to manage local and remote DICOM image database<br />
Image:CtkDICOMImportWidget.png|[http://www.commontk.org/docs/html/classctkDICOMImportWidget.html ctkDICOMImportWidget]<br>Panel to select a directory containing DICOM files on a local file system.<br />
Image:CtkDICOMModel.png|[http://www.commontk.org/docs/html/classctkDICOMModel.html ctkDICOMModel]<br>A QAbstractItemModel to represent DICOM files.<br />
Image:CtkDICOMServerNodeWidget.png|[http://www.commontk.org/docs/html/classctkDICOMServerNodeWidget.html ctkDICOMServerNodeWidget]<br>A widget to list/add/remove remote servers.<br />
</gallery><br />
<br />
==Scripting/Python==<br />
<gallery widths=300 px heights=200px perrow=3><br />
Image:CtkPythonShell.png|[http://www.commontk.org/docs/html/classctkPythonShell.html ctkPythonShell]<br>A console to interact with python<br />
</gallery></div>Finetjulhttp://www.commontk.org/index.php?title=File:CtkDoubleSpinBox.gif&diff=1939File:CtkDoubleSpinBox.gif2013-07-09T14:34:40Z<p>Finetjul: </p>
<hr />
<div></div>Finetjulhttp://www.commontk.org/index.php?title=Documentation/ImageGallery&diff=1928Documentation/ImageGallery2013-06-12T14:09:05Z<p>Finetjul: Add ctkPathListWidget</p>
<hr />
<div>==Widgets==<br />
<gallery widths=300 px heights=200px perrow=3><br />
Image:CtkActionsWidget.png|[http://www.commontk.org/docs/html/classctkActionsWidget.html ctkActionsWidget]<br>A custom QTreeView that shows the QActions (shortcuts) of an application.<br />
Image:CtkAxesWidget.png|[http://www.commontk.org/docs/html/classctkAxesWidget.html ctkAxesWidget]<br>A widget to select an axis (RAS).<br />
Image:CtkCheckableComboBox.png|[http://www.commontk.org/docs/html/classctkCheckableComboBox.html ctkCheckableComboBox]<br>A combo box to check items.<br />
Image:CtkCheckableHeaderView.png|[http://www.commontk.org/docs/html/classctkCheckableHeaderView.html ctkCheckableHeaderView]<br>A QHeaderView that support checkable sections. The checkState can be propagated to the model items.<br />
Image:CtkCheckablePushButton.png|[http://www.commontk.org/docs/html/classctkCheckablePushButton.html ctkCheckablePushButton]<br>A QPushButton with a custom checkbox. By default the checkable state is controlled with a checkbox.<br />
Image:CtkCollapsibleWidget.png|[http://www.commontk.org/docs/html/classctkCollapsibleButton.html ctkCollapsibleButton]<br>A container with a QPushButton on top that controls the visible state of the contents<br />
Image:CtkCollapsibleGroupBox.png|[http://www.commontk.org/docs/html/classctkCollapsibleGroupBox.html ctkCollapsibleGroupBox]<br>A QGroupBox that collapses/expands when checked/unchecked<br />
Image:CtkColorDialog.png|[http://www.commontk.org/docs/html/classctkColorDialog.html ctkColorDialog]<br>A QColorDialog that can be customized with extra widgets(tabs)<br />
Image:CtkColorPickerButton.png|[http://www.commontk.org/docs/html/classctkColorPickerButton.html ctkColorPickerButton]<br>A QPushButton with a colorful icon, opening a color chooser dialog on click<br />
Image:CtkTitleComboBox.png|[http://www.commontk.org/docs/html/classctkComboBox.html ctkComboBox]<br>An advanced QComboBox with default icon/title, persistent text...<br />
Image:CtkCoordinatesWidget.png|[http://www.commontk.org/docs/html/classctkCoordinatesWidget.html ctkCoordinatesWidget]<br>A QDoubleSpinBox container that groups signals/slots of 3D vectors(i.e. X,Y,Z)<br />
Image:CtkVTKScalarsToColorsView.png|[http://www.commontk.org/docs/html/classctkVTKScalarsToColorsView.html ctkVTKScalarsToColorsView]<br>A QVTKWidget that contains VTK Charts for transfer function rendering/interfacing<br />
Image:CtkDateRangeWidget.png|[http://www.commontk.org/docs/html/classctkDateRangeWidget.html ctkDateRangeWidget]<br>A utility widget to select a range in time.<br />
Image:CtkDirectoryButton.png|[http://www.commontk.org/docs/html/classctkDirectoryButton.html ctkDirectoryButton]<br>A QPushButton that display a directory path and popups a QFileDialog on click. The selected directory is then displayed on the button and a signal emitted.<br />
Image:CtkRangeSlider.png|[http://www.commontk.org/docs/html/classctkDoubleRangeSlider.html ctkDoubleRangeSlider]<br>A ctkRangeSlider handling double values.<br />
Image:CtkDoubleSlider.png|[http://www.commontk.org/docs/html/classctkDoubleSlider.html ctkDoubleSlider]<br>A slider handling doubles<br />
Image:CtkExpandableWidget.png|[http://www.commontk.org/docs/html/classctkExpandableWidget.html ctkExpandableWidget]<br>A resizable (size-hint) frame or grip (with [http://www.commontk.org/docs/html/classctkSizeGrip.html ctkSizeGrip]).<br />
Image:CtkErrorLogWidget.png|[http://www.commontk.org/docs/html/classctkErrorLogWidget.html ctkErrorLogWidget]<br>A widget to show errors and logs of your application<br />
Image:ExpandButton.png|[http://www.commontk.org/docs/html/classctkExpandButton.html ctkExpandButton]<br>A QToolButton with a standard icon, to show, hide widgets.<br />
Image:CtkFileDialog.png|[http://www.commontk.org/docs/html/classctkFileDialog.html ctkFileDialog]<br>A customizable QFileDialog (extra options can be added to the file dialog).<br />
Image:CtkFittedTextBrowser.png|[http://www.commontk.org/docs/html/classctkFittedTextBrowser.html ctkFittedTextBrowser]<br>A QTextBrowser that returns a dynamic vertical size hint depending of it's width.<br />
Image:CtkFittedTextBrowser2.png|[http://www.commontk.org/docs/html/classctkFittedTextBrowser.html ctkFittedTextBrowser]<br>A QTextBrowser that returns a dynamic vertical size hint depending of it's width.<br />
Image:CtkFlowLayout.png|[http://www.commontk.org/docs/html/classctkFlowLayout.html ctkFlowLayout]<br>A QLayout that dynamically lay-outs widgets based on the available width/height.<br />
Image:CtkFontButton.png|[http://www.commontk.org/docs/html/classctkFontButton.html ctkFontButton]<br>A pushbutton to select a font.<br />
Image:CtkLayoutManager.png|[http://www.commontk.org/docs/html/classctkLayoutManager.html ctkLayoutManager]<br>An XML layout manager for dynamic and serializable layout.<br />
Image:CtkLanguageComboBox.png|[http://www.commontk.org/docs/html/classctkLanguageComboBox.html ctkLanguageComboBox]<br>A combobox to select a language.<br />
Image:CtkMaterialPropertyWidget.png|[http://www.commontk.org/docs/html/classctkMaterialPropertyWidget.html ctkMaterialPropertyWidget]<br>A widget to control material properties<br />
Image:CtkMenuButton.png|[http://www.commontk.org/docs/html/classctkMenuButton.html ctkMenuButton]<br>A QPushButton with a dedicated area that popups a QMenu<br />
Image:CtkMenuComboBox.png|[http://www.commontk.org/docs/html/classctkMenuComboBox.html ctkMenuComboBox]<br>A QComboBox links with a Qmenu<br />
Image:CtkVTKMatrixWidget.png|[http://www.commontk.org/docs/html/classctkMatrixWidget.html ctkMatrixWidget]<br>A matrix table<br />
Image:CtkModalityWidget.png|[http://www.commontk.org/docs/html/classctkModalityWidget.html ctkModalityWidget]<br>A radio button group of medical (DICOM) modalities<br />
Image:CtkPathLineEdit.png|[http://www.commontk.org/docs/html/classctkPathLineEdit.html ctkPathLineEdit]<br>An auto-complete line edit to pick file path and remember history. <br />
Image:CtkPathListWidget.png|[http://www.commontk.org/docs/html/classctkPathListWidget.html ctkPathListWidget]<br>A list view with buttons to select multiple files/directories. <br />
Image:CtkPopupWidget.png|[http://www.commontk.org/docs/html/classctkPopupWidget.html ctkPopupWidget]<br>A widget that opens/closes dynamically. Read the [http://www.kitware.com/blog/home/post/169 blog post]. <br />
Image:CtkRangeSlider.png|[http://www.commontk.org/docs/html/classctkRangeSlider.html ctkRangeSlider]<br>A QSlider with 2 handles to select 2 values.<br />
Image:CtkRangeWidget.png|[http://www.commontk.org/docs/html/classctkRangeWidget.html ctkRangeWidget]<br>A ctkDoubleRangeSlider with 2 linked spinboxes.<br />
Image:CtkScreenshotDialog.png|[http://www.commontk.org/docs/html/classctkScreenshotDialog.html ctkScreenshotDialog]<br>A dialog to take screenshots of any QWidget<br />
Image:CtkSearchBox3.png|[http://www.commontk.org/docs/html/classctkSearchBox.html ctkSearchBox]<br>A QLineEdit with 2 QIcon to be used to filter other widgets<br />
Image:CtkSettingsDialog.png|[http://www.commontk.org/docs/html/classctkSettingsDialog.html ctkSettingsDialog]<br>An easy to setup dialog to control application settings.<br />
Image:CtkSliderSpinBoxWidget.png|[http://www.commontk.org/docs/html/classctkSliderWidget.html ctkSliderWidget]<br>A pair of a ctkDoubleSlider and a QDoubleSpinBox bound together<br />
Image:CtkThumbnailLabel.png|[http://www.commontk.org/docs/html/classctkThumbnailLabel.html ctkThumbnailLabel]<br>An advanced label to give control over the pixmap resizing and text position.<br />
Image:CtkThumbnailListWidget.png|[http://www.commontk.org/docs/html/classctkThumbnailListWidget.html ctkThumbnailListWidget]<br>A collection of ctkThumbnailLabels in a flexible layout.<br />
Image:CtkTransferFunctionWidget.png|[http://www.commontk.org/docs/html/classctkTransferFunctionWidget.html ctkTransferFunctionWidget]<br>A widget that displays [[Documentation/ctkTransferFunctionWidget|ctkTransferFunctions]]<br />
Image:CtkTreeComboBox.png|[http://www.commontk.org/docs/html/classctkTreeComboBox.html ctkTreeComboBox]<br>A QComboBox that displays items in a tree view<br />
</gallery><br />
<br />
==Visualization/VTK/Widgets==<br />
<gallery widths=300 px heights=200px perrow=3><br />
Image:CtkVTKDataSetArrayComboBox.png|[http://www.commontk.org/docs/html/classctkVTKDataSetArrayComboBox.html ctkVTKDataSetArrayComboBox]<br>A combobox populated with a vtkDataSet data arrays<br />
Image:CtkVTKMagnifyView.png|[http://www.commontk.org/docs/html/classctkVTKMagnifyView.html ctkVTKMagnifyView]<br>A widget that display zoomed contents of a VTK render window.<br />
Image:CtkVTKMatrixWidget.png|[http://www.commontk.org/docs/html/classctkVTKMatrixWidget.html ctkVTKMatrixWidget]<br>A QTableWidget specially conceived for displaying/editing matrices<br />
Image:CtkVTKPropertyWidget.png|[http://www.commontk.org/docs/html/classctkVTKPropertyWidget.html ctkVTKPropertyWidget]<br>A widget to control all the properties of vtkProperties.<br />
Image:CtkVTKRenderView.png|[http://www.commontk.org/docs/html/classctkVTKRenderView.html ctkVTKRenderView]<br>A QVTKRenderWidget with additional utility functions<br />
Image:CtkVTKSliceView-Lightbox.png|[http://www.commontk.org/docs/html/classctkVTKSliceView.html ctkVTKSliceView]<br>A QVTKRenderWidget to display 2D images (support lightbox mode)<br />
Image:CtkMaterialPropertyWidget.png|[http://www.commontk.org/docs/html/classctkVTKSurfaceMaterialPropertyWidget.html ctkVTKSurfaceMaterialPropertyWidget]<br>A widget to control vtkProperty most common properties<br />
Image:CtkVTKTextPropertyWidget.png|[http://www.commontk.org/docs/html/classctkVTKTextPropertyWidget.html ctkVTKTextPropertyWidget]<br>A widget to control vtkTextProperty most common properties<br />
Image:CtkVTKThresholdWidget.png|[http://www.commontk.org/docs/html/classctkVTKThresholdWidget.html ctkVTKThresholdWidget]<br>A widget to control a threshold min/max/height in a vtkPiecewiseFunction<br />
Image:CtkVTKThumbnailView.png|[http://www.commontk.org/docs/html/classctkVTKThumbnailView.html ctkVTKThumbnailView]<br>A widget to show the viewport of any vtkRenderer<br />
</gallery><br />
<br />
==DICOM==<br />
<gallery widths=300 px heights=200px perrow=3><br />
Image:CtkDICOM-hackfest-Feb-2011.png|[http://www.commontk.org/docs/html/classctkDICOMAppWidget.html ctkDICOMAppWidget]<br>A DICOM widget to manage local and remote DICOM image database<br />
Image:CtkDICOMImportWidget.png|[http://www.commontk.org/docs/html/classctkDICOMImportWidget.html ctkDICOMImportWidget]<br>Panel to select a directory containing DICOM files on a local file system.<br />
Image:CtkDICOMModel.png|[http://www.commontk.org/docs/html/classctkDICOMModel.html ctkDICOMModel]<br>A QAbstractItemModel to represent DICOM files.<br />
Image:CtkDICOMServerNodeWidget.png|[http://www.commontk.org/docs/html/classctkDICOMServerNodeWidget.html ctkDICOMServerNodeWidget]<br>A widget to list/add/remove remote servers.<br />
</gallery><br />
<br />
==Scripting/Python==<br />
<gallery widths=300 px heights=200px perrow=3><br />
Image:CtkPythonShell.png|[http://www.commontk.org/docs/html/classctkPythonShell.html ctkPythonShell]<br>A console to interact with python<br />
</gallery></div>Finetjulhttp://www.commontk.org/index.php?title=File:CtkPathListWidget.png&diff=1927File:CtkPathListWidget.png2013-06-12T14:07:36Z<p>Finetjul: </p>
<hr />
<div></div>Finetjulhttp://www.commontk.org/index.php?title=Commontk:Current_events&diff=1887Commontk:Current events2013-05-24T14:44:02Z<p>Finetjul: </p>
<hr />
<div><big>Participation in CTK meetings is currently limited to steering committee members.</big><br />
<br />
= Upcoming events =<br />
<br />
= Ongoing events =<br />
* [[CTK-Hackfest-May-2013 | 7th Hackfest; Kingston, Canada]] ''(2013, May)''<br />
<br />
= Past events =<br />
== 2012==<br />
* [[CTK-Hackfest-Dec-2012 | 6th Hackfest; Bologna, Italy]] ''(2012, December)''<br />
* [[CTK-Hackfest-Jul-2012 | 5th Hackfest; Boston, USA]] ''(2012, July)'' <br />
== 2011 ==<br />
* [[CTK-Hackfest-Nov-2011 | 4th Hackfest; Sophia Antipolis, France]] ''(2011, November)''<br />
* [[CTK-Hackfest-Feb-2011 | 3rd Hackfest; Chapel Hill, USA]] ''(2011, February)''<br />
== 2010 ==<br />
<br />
* [[CTK-Hackfest-September-2010|2nd Hackfest; Barcelona, Spain]] ''(2010, September)''<br />
* [[CTK-Hackfest-May-2010| 1st Hackfest; Georgetown, USA]] ''(2010, May)''<br />
* [http://www.na-mic.org/Wiki/index.php/Events:CTK-Hackfest-2010 0th Hackfest (pre-hackfest); Heidelberg, Germany] ''(2010, March)''<br />
<br />
== 2009 ==<br />
<br />
* [http://wiki.na-mic.org/Wiki/index.php/Events:CTK-Workshop-Chicago-2009 Steering committee meeting at RSNA; Chicago, USA] ''(2009, November)''<br />
* [http://www.na-mic.org/Wiki/index.php/Events:CTK-Workshop-September-2009 Administrative Meeting; Oxford, United Kingdom] ''(2009, September)''<br />
* [http://www.na-mic.org/Wiki/index.php/Events:CTK-Workshop-June-2009 Kick-Off Meeting; Heidelberg, Germany] ''(2009, June)''</div>Finetjulhttp://www.commontk.org/index.php?title=Contributing_to_CTK&diff=1825Contributing to CTK2013-04-30T14:19:58Z<p>Finetjul: Fix typo in github link</p>
<hr />
<div>The present document aims at describing how a developer should contribute to CTK. <br />
<br />
* The source code of CTK is currently hosted on Github. See http://github.com/commontk/CTK<br />
<br />
* It's also assumed the developer is familiar with git [http://git-scm.com/]. There are countless amount of resources available online. A good start point could the list presented on [http://www.cmake.org/Wiki/Git/Resources CMake/git page].<br />
<br />
* We use a topic-based workflow as documented [http://public.kitware.com/Wiki/Git/Workflow/Topic here] and thus define integration branche(s):<br />
** '''master''' Development; starting point for new features (default)<br />
<br />
<!--<br />
* We use a topic-based workflow as documented [http://public.kitware.com/Wiki/Git/Workflow/Topic here] and thus define integration branches:<br />
** '''master''' Release preparation; starting point for new features (default)<br />
** <del>'''next''' Development; new features published here first </del><br />
<br />
* We also accept commit following the more classic rebase workflow. See [http://unethicalblogger.com/2010/04/02/a-rebase-based-workflow.html]<br />
--><br />
<br />
= Prerequisites =<br />
* [https://github.com/signup/free Create an account on github.com]<br />
* Fork http://github.com/commontk/CTK<br />
* Introduce yourself<br />
$ git config --global user.name "Your Name"<br />
$ git config --global user.email "you@yourdomain.com"<br />
* Use correct line endings ([http://help.github.com/dealing-with-lineendings/ more info])<br />
[On Linux] $ git config --global core.autocrlf input<br />
[On Windows] $ git config --global core.autocrlf true<br />
<br />
= Checkout your fork =<br />
cd MyProject<br />
git clone git@github.com:'''<MYACCOUNT>'''/CTK.git<br />
cd CTK<br />
git remote add origin git@github.com:'''<MYACCOUNT>'''/CTK.git<br />
git remote add upstream git@github.com:commontk/CTK.git<br />
<br />
= Publishing your branch =<br />
* Having your own fork CTK allows you to backup and publish your work avoiding the ''urge to merge'' [http://public.kitware.com/Wiki/Git/Workflow/Topic#Urge_to_Merge]<br />
git checkout -b YYY-new-feature<br />
hack, hack, hack, add, commit<br />
git push origin topic1:refs/heads/YYY-new-feature<br />
<br />
* Note that <code>YYY</code> reference an issue entered in the tracker.<br />
<br />
* As a shortcut, you could also enter the following. Some useful script are also available [http://git-wt-commit.rubyforge.org/ here]:<br />
git config branch.topic1.remote origin<br />
git config branch.topic1.merge refs/heads/YYY-new-feature<br />
<br />
* Then, from the topic branch ''YYY-new-feature'', you could just enter the following to backup/publish your work:<br />
git push<br />
<br />
* From there, you have two options:<br />
** Send an email on the developer list referencing your topic<br />
** Submit a pull request [https://help.github.com/articles/using-pull-requests]<br />
<br />
* To delete a branch from your fork:<br />
git push origin :YYY-new-feature<br />
<br />
= Checkout a branch from a different fork =<br />
* You may want to collaborate with an other developer and work conjointly on a feature.<br />
* Let's say, ''jcfr'' published the branch ''awesome_feature'' on his fork. You should do the following to check out his branch:<br />
git remote add jcfr git://github.com/jcfr/CTK.git<br />
git fetch jcfr<br />
git checkout -b awesome_feature refs/remotes/jcfr/awesome_feature<br />
or <br />
git checkout -b awesome_feature jcfr/awesome_feature<br />
* You should now have a local branch named awesome_feature. You can now add, commit and publish your work.<br />
<br />
= Sync your topic branch =<br />
* If a collaborator previously checked out your published branch, committed some changes, then published a revised branch on his github fork, you may want to grab its changes.<br />
* Different ways:<br />
1) If you didn't work on your branch, you could do the following:<br />
git fetch jcfr<br />
git checkout my_topic<br />
git merge jcfr/my_topic<br />
<br />
2) If you worked on your branch while your collaborator was working, you may want to select only the commit your collaborator pushed on his fork: <br />
<br />
git fetch jcfr<br />
git checkout my_topic<br />
git cherry-pick <sha1> # sha1 identifying a specific commit<br />
<br />
= Integrate your new feature =<br />
<br />
After it has been validated and tested, your changes could be integrated to '''master''' following two approaches:<br />
<br />
* Direct integration<br />
<br />
git fetch upstream # Retrieve change from upstream repository<br />
git checkout master # Checkout your local "master" branch<br />
git reset --hard upstream/master # Make sure your local branch is up-to-date.<br />
git merge new_feature --log --no-ff # Merge locally to "master" - Your changes are now integrated<br />
git push upstream # Publish your change on the official repository<br />
git push origin # Publish your change on your fork<br />
<br />
* Pull request integration<br />
<br />
<!--<br />
* Initially, your feature should be integrated to '''next'''.<br />
* To integrate your change to '''next''', you could follow the steps listed below. More details are also available [http://public.kitware.com/Wiki/Git/Workflow/Topic#New_Topic here].<br />
git fetch upstream # Retrieve change from upstream repository<br />
git checkout next # Checkout your local "next" branch<br />
git merge upstream # Make sure your local branch is up-to-date.<br />
git merge new_feature # Merge locally to "next" - Your changes are now integrated<br />
git push upstream # Publish your change on the official repository<br />
git push origin # Publish your change on your fork<br />
<br />
* After it has been validated and tested, it could be integrated to '''master'''. More details [http://public.kitware.com/Wiki/Git/Workflow/Topic#Mature_Topic here].<br />
Repeat the command listed above changing "next" into "master"<br />
--><br />
<br />
<!--<br />
= Tutorial =<br />
The idea behind the tutorial is the following, it will guide you through the basic step allowing to:<br />
* Step1 - Fork and clone the tutorial repository<br />
* Step2 - Create a new feature from '''master''' branch<br />
* Step3 - Add and commit a file representing the feature<br />
* Step4 - Merge the feature into the '''next''' branch<br />
* Step5 - Refine your feature by doing an additional commit<br />
* Step6 - Merge again with '''next''<br />
* Step7 - Merge feature with '''master'''<br />
<br />
The 'tutorial feature' you will create could be correspond to a TXT file containing either a proverb, sentence, thought of the day, proverb, ... <br />
* For the sake of the tutorial, let's make sure the text you create for the first commit contain an "error" (missing the author name, spell mistake, ...).<br />
* The second commit will intent to fix the "error"<br />
<br />
For example:<br />
* Commit1<br />
** Filename: ghandi.txt<br />
** Content: "Be the change you want to see in the world." Mahatma Gandhi<br />
** CommitMsg: Added Mahatma Gandhi proverb about change<br />
* Commit2:<br />
** New content: "Be the change you want to see in the world." Mahatma Gandhi, Indian philosopher, internationally esteemed for his doctrine of nonviolent protest, 1869-1948<br />
** CommitMsg: Specified who is Mahatma Gandhi<br />
<br />
You will find a repository named GitTutorial here: http://github.com/commontk/GitTutorial<br />
<br />
* Step1<br />
<br />
* Step2<br />
<br />
* Step3<br />
<br />
* Step4<br />
<br />
* Step5<br />
<br />
* Step6<br />
<br />
* Step7<br />
--><br />
<br />
= Git Commit Style =<br />
<br />
* Write very descriptive and concise first line summary of your commit<br />
** try to stick to 50 characters max (no more than 65)<br />
** do not use 'COMP' 'ENH' etc. (these cut into your 50 characters)<br />
** summary should be a complete English sentence starting with a capital letter (terminating period is optional)<br />
* Include a blank line after the summary and then a more detailed multi-line description (72 character max line length)<br />
* In the body of the commit message, include #123 where 123 is the issue number. If a final commit fixes the issue, include "Fixes #123" or "Closes #123" in the commit message.<br />
* Use <code>git merge --log --no-ff <topicname></code> (this keeps the logs messages of the merged branch)<br />
<br />
= CTK Coding Style =<br />
The overall policy is to follow the coding conventions of the parent classes unless there is an accepted CTK exception to improve consistency or usability (to account for inconsistency in the parent class system). <br />
<br />
* If you are writing a widget that inherits from QObject, all your code should follow Qt coding conventions.<br />
** Use the [http://www.commontk.org/docs/html/CorePimpl.html Private Implementation approach ("PIMPL")] '''except''' make the member variables of your private class begin with a capital letter. This means that when you create a widget using the QtDesigner, you must rename the widget to a local name that begins with a capital letter (since this will be an instance variable in your private implementation).<br />
<br />
* Use ''virtual'' keyword also in derived class. Doing so improve readability of the code.<br />
<br />
* Use const reference if it applies. For example:<br />
<syntaxhighlight lang="cpp-qt"><br />
void setName(const QString& newName); // better<br />
void setName(QString newName); // poor<br />
</syntaxhighlight><br />
<br />
* Use ''comment line'' separator. For example:<br />
<syntaxhighlight lang="cpp-qt"><br />
...<br />
<br />
//----------------------------------------------------------------------------<br />
void Foo::setName(const QString& newName)<br />
{<br />
Q_D(Foo);<br />
d->Name = newName;<br />
}<br />
<br />
//----------------------------------------------------------------------------<br />
QString Foo::name() const<br />
{<br />
Q_D(const Foo);<br />
return d->Name;<br />
}<br />
...<br />
</syntaxhighlight><br />
<br />
* The following statements ''for'', ''while'', ''switch'', ''if'', ''else'', ''try'', ''catch'' should, most of time, be multi-line. The brackets should also be indented with 2 spaces. For example:<br />
<syntaxhighlight lang="cpp-qt"><br />
<br />
<br />
//----------------------------------------------------------------------------<br />
bool Foo::doSomething(int count)<br />
{<br />
// Better<br />
for(int i=1; i < count; ++i)<br />
{<br />
if (i == 100)<br />
{<br />
qDebug() << "i = 100";<br />
break;<br />
}<br />
}<br />
<br />
// Poor<br />
for(int i=1; i < count; ++i)<br />
if (i == 100) { qDebug() << "i = 100"; break; }<br />
}<br />
<br />
</syntaxhighlight><br />
* Within CMakeLists.txt files, source/header file names should be sorted alphabetically. It also applies with inclusion order in header/implementation files<br />
* [http://marcmutz.wordpress.com/effective-qt/prefer-to-use-normalised-signalslot-signatures/ Prefer to use normalised signal/slot signatures]<br />
<br />
= FAQ =<br />
* What the meaning of ''fatal: The current branch master is not tracking anything.'' ?</div>Finetjulhttp://www.commontk.org/index.php?title=Documentation/ImageGallery&diff=1823Documentation/ImageGallery2013-04-22T19:51:14Z<p>Finetjul: Add ctkVTKPropertyWidget</p>
<hr />
<div>==Widgets==<br />
<gallery widths=300 px heights=200px perrow=3><br />
Image:CtkActionsWidget.png|[http://www.commontk.org/docs/html/classctkActionsWidget.html ctkActionsWidget]<br>A custom QTreeView that shows the QActions (shortcuts) of an application.<br />
Image:CtkAxesWidget.png|[http://www.commontk.org/docs/html/classctkAxesWidget.html ctkAxesWidget]<br>A widget to select an axis (RAS).<br />
Image:CtkCheckableComboBox.png|[http://www.commontk.org/docs/html/classctkCheckableComboBox.html ctkCheckableComboBox]<br>A combo box to check items.<br />
Image:CtkCheckableHeaderView.png|[http://www.commontk.org/docs/html/classctkCheckableHeaderView.html ctkCheckableHeaderView]<br>A QHeaderView that support checkable sections. The checkState can be propagated to the model items.<br />
Image:CtkCheckablePushButton.png|[http://www.commontk.org/docs/html/classctkCheckablePushButton.html ctkCheckablePushButton]<br>A QPushButton with a custom checkbox. By default the checkable state is controlled with a checkbox.<br />
Image:CtkCollapsibleWidget.png|[http://www.commontk.org/docs/html/classctkCollapsibleButton.html ctkCollapsibleButton]<br>A container with a QPushButton on top that controls the visible state of the contents<br />
Image:CtkCollapsibleGroupBox.png|[http://www.commontk.org/docs/html/classctkCollapsibleGroupBox.html ctkCollapsibleGroupBox]<br>A QGroupBox that collapses/expands when checked/unchecked<br />
Image:CtkColorDialog.png|[http://www.commontk.org/docs/html/classctkColorDialog.html ctkColorDialog]<br>A QColorDialog that can be customized with extra widgets(tabs)<br />
Image:CtkColorPickerButton.png|[http://www.commontk.org/docs/html/classctkColorPickerButton.html ctkColorPickerButton]<br>A QPushButton with a colorful icon, opening a color chooser dialog on click<br />
Image:CtkTitleComboBox.png|[http://www.commontk.org/docs/html/classctkComboBox.html ctkComboBox]<br>An advanced QComboBox with default icon/title, persistent text...<br />
Image:CtkCoordinatesWidget.png|[http://www.commontk.org/docs/html/classctkCoordinatesWidget.html ctkCoordinatesWidget]<br>A QDoubleSpinBox container that groups signals/slots of 3D vectors(i.e. X,Y,Z)<br />
Image:CtkVTKScalarsToColorsView.png|[http://www.commontk.org/docs/html/classctkVTKScalarsToColorsView.html ctkVTKScalarsToColorsView]<br>A QVTKWidget that contains VTK Charts for transfer function rendering/interfacing<br />
Image:CtkDateRangeWidget.png|[http://www.commontk.org/docs/html/classctkDateRangeWidget.html ctkDateRangeWidget]<br>A utility widget to select a range in time.<br />
Image:CtkDirectoryButton.png|[http://www.commontk.org/docs/html/classctkDirectoryButton.html ctkDirectoryButton]<br>A QPushButton that display a directory path and popups a QFileDialog on click. The selected directory is then displayed on the button and a signal emitted.<br />
Image:CtkRangeSlider.png|[http://www.commontk.org/docs/html/classctkDoubleRangeSlider.html ctkDoubleRangeSlider]<br>A ctkRangeSlider handling double values.<br />
Image:CtkDoubleSlider.png|[http://www.commontk.org/docs/html/classctkDoubleSlider.html ctkDoubleSlider]<br>A slider handling doubles<br />
Image:CtkExpandableWidget.png|[http://www.commontk.org/docs/html/classctkExpandableWidget.html ctkExpandableWidget]<br>A resizable (size-hint) frame or grip (with [http://www.commontk.org/docs/html/classctkSizeGrip.html ctkSizeGrip]).<br />
Image:CtkErrorLogWidget.png|[http://www.commontk.org/docs/html/classctkErrorLogWidget.html ctkErrorLogWidget]<br>A widget to show errors and logs of your application<br />
Image:ExpandButton.png|[http://www.commontk.org/docs/html/classctkExpandButton.html ctkExpandButton]<br>A QToolButton with a standard icon, to show, hide widgets.<br />
Image:CtkFileDialog.png|[http://www.commontk.org/docs/html/classctkFileDialog.html ctkFileDialog]<br>A customizable QFileDialog (extra options can be added to the file dialog).<br />
Image:CtkFittedTextBrowser.png|[http://www.commontk.org/docs/html/classctkFittedTextBrowser.html ctkFittedTextBrowser]<br>A QTextBrowser that returns a dynamic vertical size hint depending of it's width.<br />
Image:CtkFittedTextBrowser2.png|[http://www.commontk.org/docs/html/classctkFittedTextBrowser.html ctkFittedTextBrowser]<br>A QTextBrowser that returns a dynamic vertical size hint depending of it's width.<br />
Image:CtkFlowLayout.png|[http://www.commontk.org/docs/html/classctkFlowLayout.html ctkFlowLayout]<br>A QLayout that dynamically lay-outs widgets based on the available width/height.<br />
Image:CtkFontButton.png|[http://www.commontk.org/docs/html/classctkFontButton.html ctkFontButton]<br>A pushbutton to select a font.<br />
Image:CtkLayoutManager.png|[http://www.commontk.org/docs/html/classctkLayoutManager.html ctkLayoutManager]<br>An XML layout manager for dynamic and serializable layout.<br />
Image:CtkLanguageComboBox.png|[http://www.commontk.org/docs/html/classctkLanguageComboBox.html ctkLanguageComboBox]<br>A combobox to select a language.<br />
Image:CtkMaterialPropertyWidget.png|[http://www.commontk.org/docs/html/classctkMaterialPropertyWidget.html ctkMaterialPropertyWidget]<br>A widget to control material properties<br />
Image:CtkMenuButton.png|[http://www.commontk.org/docs/html/classctkMenuButton.html ctkMenuButton]<br>A QPushButton with a dedicated area that popups a QMenu<br />
Image:CtkMenuComboBox.png|[http://www.commontk.org/docs/html/classctkMenuComboBox.html ctkMenuComboBox]<br>A QComboBox links with a Qmenu<br />
Image:CtkVTKMatrixWidget.png|[http://www.commontk.org/docs/html/classctkMatrixWidget.html ctkMatrixWidget]<br>A matrix table<br />
Image:CtkModalityWidget.png|[http://www.commontk.org/docs/html/classctkModalityWidget.html ctkModalityWidget]<br>A radio button group of medical (DICOM) modalities<br />
Image:CtkPathLineEdit.png|[http://www.commontk.org/docs/html/classctkPathLineEdit.html ctkPathLineEdit]<br>An auto-complete line edit to pick file path and remember history. <br />
Image:CtkPopupWidget.png|[http://www.commontk.org/docs/html/classctkPopupWidget.html ctkPopupWidget]<br>A widget that opens/closes dynamically. Read the [http://www.kitware.com/blog/home/post/169 blog post]. <br />
Image:CtkRangeSlider.png|[http://www.commontk.org/docs/html/classctkRangeSlider.html ctkRangeSlider]<br>A QSlider with 2 handles to select 2 values.<br />
Image:CtkRangeWidget.png|[http://www.commontk.org/docs/html/classctkRangeWidget.html ctkRangeWidget]<br>A ctkDoubleRangeSlider with 2 linked spinboxes.<br />
Image:CtkScreenshotDialog.png|[http://www.commontk.org/docs/html/classctkScreenshotDialog.html ctkScreenshotDialog]<br>A dialog to take screenshots of any QWidget<br />
Image:CtkSearchBox3.png|[http://www.commontk.org/docs/html/classctkSearchBox.html ctkSearchBox]<br>A QLineEdit with 2 QIcon to be used to filter other widgets<br />
Image:CtkSettingsDialog.png|[http://www.commontk.org/docs/html/classctkSettingsDialog.html ctkSettingsDialog]<br>An easy to setup dialog to control application settings.<br />
Image:CtkSliderSpinBoxWidget.png|[http://www.commontk.org/docs/html/classctkSliderWidget.html ctkSliderWidget]<br>A pair of a ctkDoubleSlider and a QDoubleSpinBox bound together<br />
Image:CtkThumbnailLabel.png|[http://www.commontk.org/docs/html/classctkThumbnailLabel.html ctkThumbnailLabel]<br>An advanced label to give control over the pixmap resizing and text position.<br />
Image:CtkThumbnailListWidget.png|[http://www.commontk.org/docs/html/classctkThumbnailListWidget.html ctkThumbnailListWidget]<br>A collection of ctkThumbnailLabels in a flexible layout.<br />
Image:CtkTransferFunctionWidget.png|[http://www.commontk.org/docs/html/classctkTransferFunctionWidget.html ctkTransferFunctionWidget]<br>A widget that displays [[Documentation/ctkTransferFunctionWidget|ctkTransferFunctions]]<br />
Image:CtkTreeComboBox.png|[http://www.commontk.org/docs/html/classctkTreeComboBox.html ctkTreeComboBox]<br>A QComboBox that displays items in a tree view<br />
</gallery><br />
<br />
==Visualization/VTK/Widgets==<br />
<gallery widths=300 px heights=200px perrow=3><br />
Image:CtkVTKDataSetArrayComboBox.png|[http://www.commontk.org/docs/html/classctkVTKDataSetArrayComboBox.html ctkVTKDataSetArrayComboBox]<br>A combobox populated with a vtkDataSet data arrays<br />
Image:CtkVTKMagnifyView.png|[http://www.commontk.org/docs/html/classctkVTKMagnifyView.html ctkVTKMagnifyView]<br>A widget that display zoomed contents of a VTK render window.<br />
Image:CtkVTKMatrixWidget.png|[http://www.commontk.org/docs/html/classctkVTKMatrixWidget.html ctkVTKMatrixWidget]<br>A QTableWidget specially conceived for displaying/editing matrices<br />
Image:CtkVTKPropertyWidget.png|[http://www.commontk.org/docs/html/classctkVTKPropertyWidget.html ctkVTKPropertyWidget]<br>A widget to control all the properties of vtkProperties.<br />
Image:CtkVTKRenderView.png|[http://www.commontk.org/docs/html/classctkVTKRenderView.html ctkVTKRenderView]<br>A QVTKRenderWidget with additional utility functions<br />
Image:CtkVTKSliceView-Lightbox.png|[http://www.commontk.org/docs/html/classctkVTKSliceView.html ctkVTKSliceView]<br>A QVTKRenderWidget to display 2D images (support lightbox mode)<br />
Image:CtkMaterialPropertyWidget.png|[http://www.commontk.org/docs/html/classctkVTKSurfaceMaterialPropertyWidget.html ctkVTKSurfaceMaterialPropertyWidget]<br>A widget to control vtkProperty most common properties<br />
Image:CtkVTKTextPropertyWidget.png|[http://www.commontk.org/docs/html/classctkVTKTextPropertyWidget.html ctkVTKTextPropertyWidget]<br>A widget to control vtkTextProperty most common properties<br />
Image:CtkVTKThresholdWidget.png|[http://www.commontk.org/docs/html/classctkVTKThresholdWidget.html ctkVTKThresholdWidget]<br>A widget to control a threshold min/max/height in a vtkPiecewiseFunction<br />
Image:CtkVTKThumbnailView.png|[http://www.commontk.org/docs/html/classctkVTKThumbnailView.html ctkVTKThumbnailView]<br>A widget to show the viewport of any vtkRenderer<br />
</gallery><br />
<br />
==DICOM==<br />
<gallery widths=300 px heights=200px perrow=3><br />
Image:CtkDICOM-hackfest-Feb-2011.png|[http://www.commontk.org/docs/html/classctkDICOMAppWidget.html ctkDICOMAppWidget]<br>A DICOM widget to manage local and remote DICOM image database<br />
Image:CtkDICOMImportWidget.png|[http://www.commontk.org/docs/html/classctkDICOMImportWidget.html ctkDICOMImportWidget]<br>Panel to select a directory containing DICOM files on a local file system.<br />
Image:CtkDICOMModel.png|[http://www.commontk.org/docs/html/classctkDICOMModel.html ctkDICOMModel]<br>A QAbstractItemModel to represent DICOM files.<br />
Image:CtkDICOMServerNodeWidget.png|[http://www.commontk.org/docs/html/classctkDICOMServerNodeWidget.html ctkDICOMServerNodeWidget]<br>A widget to list/add/remove remote servers.<br />
</gallery><br />
<br />
==Scripting/Python==<br />
<gallery widths=300 px heights=200px perrow=3><br />
Image:CtkPythonShell.png|[http://www.commontk.org/docs/html/classctkPythonShell.html ctkPythonShell]<br>A console to interact with python<br />
</gallery></div>Finetjulhttp://www.commontk.org/index.php?title=File:CtkVTKPropertyWidget.png&diff=1822File:CtkVTKPropertyWidget.png2013-04-22T19:48:21Z<p>Finetjul: </p>
<hr />
<div></div>Finetjulhttp://www.commontk.org/index.php?title=The_Team&diff=1807The Team2013-03-07T12:21:39Z<p>Finetjul: /* Individual contributors */ split MattClakrslon in firstname and lastname</p>
<hr />
<div>=Founders=<br />
* Hans-Peter Meinzer, German Cancer Research Center, Heidelberg, Germany ''(Catalyst of the CTK effort)''<br />
** Marco Nolden, German Cancer Research Center, Heidelberg, Germany<br />
* Ron Kikinis, Harvard Medical School, Boston, MA, USA ''(Meeting Chair)''<br />
* Ivo Wolf, Mannheim University of Applied Sciences, Institute for Medical Informatics, Mannheim, Germany<br />
* Steve Pieper, Isomics, Cambridge, MA, USA<br />
* Stephen Aylward, Kitware Inc., Carborro, NC, USA<br />
** Julien Finet, Kitware Inc.<br />
** Jean-Christophe Fillion-Robin, Kitware Inc.<br />
** Julien Jomier, Kitware Inc. <br />
** Will Schroeder, Kitware Inc., Clifton Park, NY, USA<br />
* Kevin Cleary, Georgetown University, Washington DC, USA<br />
** Patrick Cheng, Georgetown University, Washington DC, USA<br />
** Ziv Yaniv, Georgetown University, Washington DC, USA<br />
* Lawrence Tarbox, Mallinckrodt Institute of Radiology, St.Louis, MO, USA<br />
* Marco Viceconti, Laboratorio di Tecnologia Medica, Bologna, Italy<br />
** Daniele Giunchi, SCS - B3C , Bologna Italy<br />
** Paolo Quadrani, SCS - B3C , Bologna Italy<br />
* Michael Onken, OFFIS DICOM Team, Oldenburg, Germany<br />
* Nicholas Ayache, Sophia Antipolis, Inria, France<br />
** Olivier Clatz, Sophia Antipolis, Inria, France<br />
** Maxime Sermesant, Sophia Antipolis, Inria, France<br />
** Pierre Fillard, Sophia Antipolis, Inria, France<br />
* Gianluca Paladini, Siemens Corporate Research, Princeton, NJ, USA<br />
* David Clunie, RadPharm, Princeton, NJ, USA<br />
<br />
=Supporting institutions=<br />
{| cellspacing="20"<br />
|[[File:Dkfz_logo_en.gif|200px|link=http://www.dkfz.de]]<br />
||Prof. Dr. Hans-Peter Meinzer<br />
|[[File:Kitware_logo_en.png|200px|link=http://www.kitware.com]]<br />
||Stephen Aylward, Ph.D.<br />
|-<br />
|[[File:GeorgetownUniversity_logo_en.svg|200px|link=http://www.georgetown.edu/]]<br />
||Prof. Kevin Cleary, Ph.D.<br />
|[[File:Inria_logo_en.jpg|200px|link=http://www.inria.fr]]<br />
||Nicholas Ayache, Ph.D<br />
|-<br />
|[[File:Isomics_logo_en.png|200px|link=http://www.isomics.com]]<br />
||Steve Pieper, Ph.D.<br />
|[[File:Mannheim_logo_ge.png|200px|link=http://www.uni-mannheim.de]]<br />
||Prof. Dr. Ivo Wolf<br />
|-<br />
|[[File:Offis_logo_en.gif|200px|link=http://dicom.offis.de]]<br />
||Michael Onken<br />
|[[File:RadPharm_logo_en.jpg|200px]]<br />
||David Clunie<br />
|-<br />
|[[File:Siemens_logo_en.jpg|200px|link=http://www.usa.siemens.com/en/about_us/research/home.htm]]<br />
||Gianluca Paladini<br />
|[[File:SPL_logo.gif|70px]][http://www.spl.harvard.edu Surgical Planning Laboratory]<br />
||Prof. Dr. Ron Kikinis<br />
|-<br />
|[[File:UCL.gif|200px|link=http://www.ucl.ac.uk]]<br />
||Prof. Dr. Sebastien Ourselin<br />
|[[File:Upf_logo_it.gif|200px|link=http://www.upf.edu]]<br />
||Prof. Marco Viceconti, Ph.D.<br />
|-<br />
||[[File:WashingtonUniversity_logo_en.png|200px|link=http://www.mir.wustl.edu/]]<br />
||Prof. Lawrence Tarbox, Ph.D.<br />
||[[File:Crest-l.png|200px|link=http://www.cistib.org/cistib/index.php]]<br />
||Prof. Alejandro Frangi, Ph.D.<br />
|}<br />
<br />
=Individual contributors=<br />
<br />
The following data is retrieved from [http://www.ohloh.net/p/ctk/contributors?query=&sort=commits Ohloh], showing<br />
all active contributors during the last two years (as of 7th March 2013) with at least 10 commits:<br />
<br />
* Jean-Christophe Fillion-Robin<br />
* Julien Finet<br />
* Sascha Zelzer<br />
* Steve Pieper<br />
* Marco Nolden<br />
* Nicholas Herlambang (Inactive)<br />
* Matt Clarkson<br />
* Benjamin Long<br />
* Ivo Wolf<br />
* Michael Onken<br />
* Danielle Pace<br />
* Nicolas Rannou<br />
<br />
=Projects contributing to CTK=<br />
<gallery widths="200px" perrow="3"><br />
File:3DSlicer_logo_en.png|[http://www.slicer.org 3D Slicer]<br />
File:Gimias_logo_en.png|[http://www.gimias.org Gimias]<br />
File:MAF3_logo_en.png|[https://www.biomedtown.org/biomed_town/maf3 Maf]<br />
File:MedInria.png|[http://med.inria.fr medInria]<br />
File:Mitk_logo_en.png|[http://www.mitk.org Mitk]<br />
File:ParaView_logo.png|[http://www.paraview.org ParaView]<br />
</gallery><br />
<br />
=Grants, Fundings and Sponsors=<br />
{|<br />
|[[File:AFRL_logo.png|70px]] || Air Force Research Laboratories under Phases I and II of the SBIR contract "[http://www.vtk.org/Wiki/Maverick Generating Labeled Voxelization for Numerical Simulation]," <br>Topic: AF06-034, Contract #: <code>FA8650-07-C-6756</code><br />
|-<br />
|[[File:ARRA_logo.png|70px]] || [http://wiki.na-mic.org/Wiki/index.php/Projects:ARRA:SlicerUI ARRA supplement] to [http://nac.spl.harvard.edu NAC]<br />
|-<br />
|[[File:NAC_logo.gif|70px]] || [http://nac.spl.harvard.edu Neuroimage Analysis Center]<br />
|-<br />
|[[File:NA-MIC_logo.jpg|70px]] || [http://www.na-mic.org National Alliance for Medical Image Computing]<br />
|-<br />
|[[File:VPH_logo.jpg|70px|link=http://www.vph-noe.eu/]] || [http://www.vph-noe.eu/ Virtual Physiological Human Network of Excellence]<br />
|-<br />
|[[File:Sfb125.png|120px|link=http://www.cognitionguidedsurgery.de/]] || [http://www.cognitionguidedsurgery.de/ Cognition Guided Surgery, SFB/Transregio 125]<br />
|}</div>Finetjulhttp://www.commontk.org/index.php?title=Documentation/CLI_In_Context&diff=1778Documentation/CLI In Context2013-01-10T00:30:33Z<p>Finetjul: /* Events */</p>
<hr />
<div>This page lists some example and notes on different integration of CLI modules in different frameworks including CTK (see [[Documentation/Command_Line_Interface]]). The first interoperability testing was done during the [http://www.creatis.insa-lyon.fr/Interoperability_workshop third] VPH NoE Imaging workshop hold in Lyon, France on October 22-23, 2012. It will be continued in consecutive hackfests. The aim is to try to plug in CLI modules in CLI compatible frameworks and come up with possible improvement of the CLI standard, advice to CLI module and CLI framework developers.<br />
<br />
== Events ==<br />
<br />
* [[CTK-Hackfest-Nov-2011|CTK Hackfest]] in Sofia Antipolis, France in November 2011<br />
** Preliminary work to integrate CLI into Gimias<br />
* [[CTK-Hackfest-Jul-2012|CTK Hackfest]] in Boston, USA in July 2012<br />
** Preliminary work to integrate CLI into MITK<br />
* [http://www.creatis.insa-lyon.fr/Interoperability_workshop 3rd VPH NoE Imaging workshop] in Lyon, France on October 22-23, 2012<br />
** First [[#Interoperability_tests|Interoperability tests]] with CTK, Gimias, NiftyView and Slicer<br />
* [[CTK-Hackfest-Dec-2012|CTK Hackfest]] in Bologna, Italy on December, 2012<br />
** Preliminary work to integrate CLI into medInria, MAF3<br />
** Semi-Automatic framework CLI integration tests<br />
<br />
== Interoperability tests ==<br />
<br />
These first tests mainly concern the integration of niftyreg (registration algorithms from UCL). The different stages of integration are: load, execute and results. Meaning that the CLI module can be loaded. executed and provides the same results as if it was run only from the command line. The problems we encountered were:<br />
<br />
* Gimias does not support to have a `default` element different that `None` for the output, not sure about the `advanced` option for the `parameters` element <br />
* niftyreg was using `fileExtensions` with stars (`*.nii`) which is not supported by neither Gimias nor Slicer (the star is directly used in the file name)<br />
* The default output folder should be set to the user folder and not the running one, otherwise the CLI module can crash because they were denied access to write in that folder (for example `Program Files` under Windows)<br />
* What to do with CLI modules that have dependencies on shared libraries with the platform but of different versions? Platforms should have the option to only use the libraries shipped with the CLI module<br />
* Platforms should align the way they treat data since if two load data differently, the same CLI module could give different results<br />
<br />
It would be interesting to create test CLI modules for these integration tests. For example one that exposes all possible types of options, one running a simple algorithm without any dependencies (as niftyreg) and one with dependencies.<br />
<br />
Some thoughts on the tested platforms:<br />
* Niftyview has nice controls on the way CLI modules are found and loaded (control on the `XML` validation)<br />
* Slicer has a nice display of the loaded and non loaded CLI modules (appear in red, there could be more explanation why the loading failed)<br />
<br />
== Snapshots ==<br />
<br />
Here are the snapshots of niftyreg on the different platforms:<br />
<br />
* CTK command line module explorer <br />
<br />
[[File:Niftyreg-ctk.png|400px]]<br />
<br />
* Slicer<br />
<br />
[[File:Niftyreg-slicer.png|400px]]<br />
<br />
* NiftyView<br />
<br />
[[File:Niftyreg-niftyview.png|400px]]<br />
<br />
* GIMIAS <br />
<br />
[[File:Niftyreg-gimias.png|400px]]</div>Finetjulhttp://www.commontk.org/index.php?title=Commontk:Current_events&diff=1774Commontk:Current events2012-12-18T21:11:05Z<p>Finetjul: Add version to each hackfest (note that the Heidelberg hackfest is not an "official" hackfest)</p>
<hr />
<div><big>Participation in CTK meetings is currently limited to steering committee members.</big><br />
<br />
= Upcoming events =<br />
<br />
= Ongoing events =<br />
<br />
<br />
= Past events =<br />
== 2012==<br />
* [[CTK-Hackfest-Dec-2012 | 6th Hackfest; Bologna, Italy]] ''(2012, December)''<br />
* [[CTK-Hackfest-Jul-2012 | 5th Hackfest; Boston, USA]] ''(2012, July)'' <br />
== 2011 ==<br />
* [[CTK-Hackfest-Nov-2011 | 4th Hackfest; Sophia Antipolis, France]] ''(2011, November)''<br />
* [[CTK-Hackfest-Feb-2011 | 3rd Hackfest; Chapel Hill, USA]] ''(2011, February)''<br />
== 2010 ==<br />
<br />
* [[CTK-Hackfest-September-2010|2nd Hackfest; Barcelona, Spain]] ''(2010, September)''<br />
* [[CTK-Hackfest-May-2010| 1st Hackfest; Georgetown, USA]] ''(2010, May)''<br />
* [http://www.na-mic.org/Wiki/index.php/Events:CTK-Hackfest-2010 0th Hackfest (pre-hackfest); Heidelberg, Germany] ''(2010, March)''<br />
<br />
== 2009 ==<br />
<br />
* [http://wiki.na-mic.org/Wiki/index.php/Events:CTK-Workshop-Chicago-2009 Steering committee meeting at RSNA; Chicago, USA] ''(2009, November)''<br />
* [http://www.na-mic.org/Wiki/index.php/Events:CTK-Workshop-September-2009 Administrative Meeting; Oxford, United Kingdom] ''(2009, September)''<br />
* [http://www.na-mic.org/Wiki/index.php/Events:CTK-Workshop-June-2009 Kick-Off Meeting; Heidelberg, Germany] ''(2009, June)''</div>Finetjulhttp://www.commontk.org/index.php?title=Documentation/ImageGallery&diff=1773Documentation/ImageGallery2012-12-18T17:19:23Z<p>Finetjul: /* Widgets */ Add ctkLanguageComboBox</p>
<hr />
<div>==Widgets==<br />
<gallery widths=300 px heights=200px perrow=3><br />
Image:CtkActionsWidget.png|[http://www.commontk.org/docs/html/classctkActionsWidget.html ctkActionsWidget]<br>A custom QTreeView that shows the QActions (shortcuts) of an application.<br />
Image:CtkAxesWidget.png|[http://www.commontk.org/docs/html/classctkAxesWidget.html ctkAxesWidget]<br>A widget to select an axis (RAS).<br />
Image:CtkCheckableComboBox.png|[http://www.commontk.org/docs/html/classctkCheckableComboBox.html ctkCheckableComboBox]<br>A combo box to check items.<br />
Image:CtkCheckableHeaderView.png|[http://www.commontk.org/docs/html/classctkCheckableHeaderView.html ctkCheckableHeaderView]<br>A QHeaderView that support checkable sections. The checkState can be propagated to the model items.<br />
Image:CtkCheckablePushButton.png|[http://www.commontk.org/docs/html/classctkCheckablePushButton.html ctkCheckablePushButton]<br>A QPushButton with a custom checkbox. By default the checkable state is controlled with a checkbox.<br />
Image:CtkCollapsibleWidget.png|[http://www.commontk.org/docs/html/classctkCollapsibleButton.html ctkCollapsibleButton]<br>A container with a QPushButton on top that controls the visible state of the contents<br />
Image:CtkCollapsibleGroupBox.png|[http://www.commontk.org/docs/html/classctkCollapsibleGroupBox.html ctkCollapsibleGroupBox]<br>A QGroupBox that collapses/expands when checked/unchecked<br />
Image:CtkColorDialog.png|[http://www.commontk.org/docs/html/classctkColorDialog.html ctkColorDialog]<br>A QColorDialog that can be customized with extra widgets(tabs)<br />
Image:CtkColorPickerButton.png|[http://www.commontk.org/docs/html/classctkColorPickerButton.html ctkColorPickerButton]<br>A QPushButton with a colorful icon, opening a color chooser dialog on click<br />
Image:CtkTitleComboBox.png|[http://www.commontk.org/docs/html/classctkComboBox.html ctkComboBox]<br>An advanced QComboBox with default icon/title, persistent text...<br />
Image:CtkCoordinatesWidget.png|[http://www.commontk.org/docs/html/classctkCoordinatesWidget.html ctkCoordinatesWidget]<br>A QDoubleSpinBox container that groups signals/slots of 3D vectors(i.e. X,Y,Z)<br />
Image:CtkVTKScalarsToColorsView.png|[http://www.commontk.org/docs/html/classctkVTKScalarsToColorsView.html ctkVTKScalarsToColorsView]<br>A QVTKWidget that contains VTK Charts for transfer function rendering/interfacing<br />
Image:CtkDateRangeWidget.png|[http://www.commontk.org/docs/html/classctkDateRangeWidget.html ctkDateRangeWidget]<br>A utility widget to select a range in time.<br />
Image:CtkDirectoryButton.png|[http://www.commontk.org/docs/html/classctkDirectoryButton.html ctkDirectoryButton]<br>A QPushButton that display a directory path and popups a QFileDialog on click. The selected directory is then displayed on the button and a signal emitted.<br />
Image:CtkRangeSlider.png|[http://www.commontk.org/docs/html/classctkDoubleRangeSlider.html ctkDoubleRangeSlider]<br>A ctkRangeSlider handling double values.<br />
Image:CtkDoubleSlider.png|[http://www.commontk.org/docs/html/classctkDoubleSlider.html ctkDoubleSlider]<br>A slider handling doubles<br />
Image:CtkExpandableWidget.png|[http://www.commontk.org/docs/html/classctkExpandableWidget.html ctkExpandableWidget]<br>A resizable (size-hint) frame or grip (with [http://www.commontk.org/docs/html/classctkSizeGrip.html ctkSizeGrip]).<br />
Image:CtkErrorLogWidget.png|[http://www.commontk.org/docs/html/classctkErrorLogWidget.html ctkErrorLogWidget]<br>A widget to show errors and logs of your application<br />
Image:ExpandButton.png|[http://www.commontk.org/docs/html/classctkExpandButton.html ctkExpandButton]<br>A QToolButton with a standard icon, to show, hide widgets.<br />
Image:CtkFileDialog.png|[http://www.commontk.org/docs/html/classctkFileDialog.html ctkFileDialog]<br>A customizable QFileDialog (extra options can be added to the file dialog).<br />
Image:CtkFittedTextBrowser.png|[http://www.commontk.org/docs/html/classctkFittedTextBrowser.html ctkFittedTextBrowser]<br>A QTextBrowser that returns a dynamic vertical size hint depending of it's width.<br />
Image:CtkFittedTextBrowser2.png|[http://www.commontk.org/docs/html/classctkFittedTextBrowser.html ctkFittedTextBrowser]<br>A QTextBrowser that returns a dynamic vertical size hint depending of it's width.<br />
Image:CtkFlowLayout.png|[http://www.commontk.org/docs/html/classctkFlowLayout.html ctkFlowLayout]<br>A QLayout that dynamically lay-outs widgets based on the available width/height.<br />
Image:CtkFontButton.png|[http://www.commontk.org/docs/html/classctkFontButton.html ctkFontButton]<br>A pushbutton to select a font.<br />
Image:CtkLayoutManager.png|[http://www.commontk.org/docs/html/classctkLayoutManager.html ctkLayoutManager]<br>An XML layout manager for dynamic and serializable layout.<br />
Image:CtkLanguageComboBox.png|[http://www.commontk.org/docs/html/classctkLanguageComboBox.html ctkLanguageComboBox]<br>A combobox to select a language.<br />
Image:CtkMaterialPropertyWidget.png|[http://www.commontk.org/docs/html/classctkMaterialPropertyWidget.html ctkMaterialPropertyWidget]<br>A widget to control material properties<br />
Image:CtkMenuButton.png|[http://www.commontk.org/docs/html/classctkMenuButton.html ctkMenuButton]<br>A QPushButton with a dedicated area that popups a QMenu<br />
Image:CtkMenuComboBox.png|[http://www.commontk.org/docs/html/classctkMenuComboBox.html ctkMenuComboBox]<br>A QComboBox links with a Qmenu<br />
Image:CtkVTKMatrixWidget.png|[http://www.commontk.org/docs/html/classctkMatrixWidget.html ctkMatrixWidget]<br>A matrix table<br />
Image:CtkModalityWidget.png|[http://www.commontk.org/docs/html/classctkModalityWidget.html ctkModalityWidget]<br>A radio button group of medical (DICOM) modalities<br />
Image:CtkPathLineEdit.png|[http://www.commontk.org/docs/html/classctkPathLineEdit.html ctkPathLineEdit]<br>An auto-complete line edit to pick file path and remember history. <br />
Image:CtkPopupWidget.png|[http://www.commontk.org/docs/html/classctkPopupWidget.html ctkPopupWidget]<br>A widget that opens/closes dynamically. Read the [http://www.kitware.com/blog/home/post/169 blog post]. <br />
Image:CtkRangeSlider.png|[http://www.commontk.org/docs/html/classctkRangeSlider.html ctkRangeSlider]<br>A QSlider with 2 handles to select 2 values.<br />
Image:CtkRangeWidget.png|[http://www.commontk.org/docs/html/classctkRangeWidget.html ctkRangeWidget]<br>A ctkDoubleRangeSlider with 2 linked spinboxes.<br />
Image:CtkScreenshotDialog.png|[http://www.commontk.org/docs/html/classctkScreenshotDialog.html ctkScreenshotDialog]<br>A dialog to take screenshots of any QWidget<br />
Image:CtkSearchBox3.png|[http://www.commontk.org/docs/html/classctkSearchBox.html ctkSearchBox]<br>A QLineEdit with 2 QIcon to be used to filter other widgets<br />
Image:CtkSettingsDialog.png|[http://www.commontk.org/docs/html/classctkSettingsDialog.html ctkSettingsDialog]<br>An easy to setup dialog to control application settings.<br />
Image:CtkSliderSpinBoxWidget.png|[http://www.commontk.org/docs/html/classctkSliderWidget.html ctkSliderWidget]<br>A pair of a ctkDoubleSlider and a QDoubleSpinBox bound together<br />
Image:CtkThumbnailLabel.png|[http://www.commontk.org/docs/html/classctkThumbnailLabel.html ctkThumbnailLabel]<br>An advanced label to give control over the pixmap resizing and text position.<br />
Image:CtkThumbnailListWidget.png|[http://www.commontk.org/docs/html/classctkThumbnailListWidget.html ctkThumbnailListWidget]<br>A collection of ctkThumbnailLabels in a flexible layout.<br />
Image:CtkTransferFunctionWidget.png|[http://www.commontk.org/docs/html/classctkTransferFunctionWidget.html ctkTransferFunctionWidget]<br>A widget that displays [[Documentation/ctkTransferFunctionWidget|ctkTransferFunctions]]<br />
Image:CtkTreeComboBox.png|[http://www.commontk.org/docs/html/classctkTreeComboBox.html ctkTreeComboBox]<br>A QComboBox that displays items in a tree view<br />
</gallery><br />
<br />
==Visualization/VTK/Widgets==<br />
<gallery widths=300 px heights=200px perrow=3><br />
Image:CtkVTKDataSetArrayComboBox.png|[http://www.commontk.org/docs/html/classctkVTKDataSetArrayComboBox.html ctkVTKDataSetArrayComboBox]<br>A combobox populated with a vtkDataSet data arrays<br />
Image:CtkVTKMagnifyView.png|[http://www.commontk.org/docs/html/classctkVTKMagnifyView.html ctkVTKMagnifyView]<br>A widget that display zoomed contents of a VTK render window.<br />
Image:CtkVTKMatrixWidget.png|[http://www.commontk.org/docs/html/classctkVTKMatrixWidget.html ctkVTKMatrixWidget]<br>A QTableWidget specially conceived for displaying/editing matrices<br />
Image:CtkVTKRenderView.png|[http://www.commontk.org/docs/html/classctkVTKRenderView.html ctkVTKRenderView]<br>A QVTKRenderWidget with additional utility functions<br />
Image:CtkVTKSliceView-Lightbox.png|[http://www.commontk.org/docs/html/classctkVTKSliceView.html ctkVTKSliceView]<br>A QVTKRenderWidget to display 2D images (support lightbox mode)<br />
Image:CtkMaterialPropertyWidget.png|[http://www.commontk.org/docs/html/classctkVTKSurfaceMaterialPropertyWidget.html ctkVTKSurfaceMaterialPropertyWidget]<br>A widget to control vtkProperty most common properties<br />
Image:CtkVTKTextPropertyWidget.png|[http://www.commontk.org/docs/html/classctkVTKTextPropertyWidget.html ctkVTKTextPropertyWidget]<br>A widget to control vtkTextProperty most common properties<br />
Image:CtkVTKThresholdWidget.png|[http://www.commontk.org/docs/html/classctkVTKThresholdWidget.html ctkVTKThresholdWidget]<br>A widget to control a threshold min/max/height in a vtkPiecewiseFunction<br />
Image:CtkVTKThumbnailView.png|[http://www.commontk.org/docs/html/classctkVTKThumbnailView.html ctkVTKThumbnailView]<br>A widget to show the viewport of any vtkRenderer<br />
</gallery><br />
<br />
==DICOM==<br />
<gallery widths=300 px heights=200px perrow=3><br />
Image:CtkDICOM-hackfest-Feb-2011.png|[http://www.commontk.org/docs/html/classctkDICOMAppWidget.html ctkDICOMAppWidget]<br>A DICOM widget to manage local and remote DICOM image database<br />
Image:CtkDICOMImportWidget.png|[http://www.commontk.org/docs/html/classctkDICOMImportWidget.html ctkDICOMImportWidget]<br>Panel to select a directory containing DICOM files on a local file system.<br />
Image:CtkDICOMModel.png|[http://www.commontk.org/docs/html/classctkDICOMModel.html ctkDICOMModel]<br>A QAbstractItemModel to represent DICOM files.<br />
Image:CtkDICOMServerNodeWidget.png|[http://www.commontk.org/docs/html/classctkDICOMServerNodeWidget.html ctkDICOMServerNodeWidget]<br>A widget to list/add/remove remote servers.<br />
</gallery><br />
<br />
==Scripting/Python==<br />
<gallery widths=300 px heights=200px perrow=3><br />
Image:CtkPythonShell.png|[http://www.commontk.org/docs/html/classctkPythonShell.html ctkPythonShell]<br>A console to interact with python<br />
</gallery></div>Finetjulhttp://www.commontk.org/index.php?title=File:CtkLanguageComboBox.png&diff=1772File:CtkLanguageComboBox.png2012-12-18T17:18:30Z<p>Finetjul: </p>
<hr />
<div></div>Finetjulhttp://www.commontk.org/index.php?title=CTK-Hackfest-Dec-2012&diff=1747CTK-Hackfest-Dec-20122012-12-14T23:44:17Z<p>Finetjul: /* Gallery of Results */</p>
<hr />
<div>== Event pictures ==<br />
Images from the hackfest<br />
{|<br />
|[[image:CTK-Hackfest-2012-Bologna-Palazzo D Accursio.jpg|thumb|right|220px|<big>Visiting Bologna</big>]]<br />
|}<br />
<br />
== Introduction ==<br />
<br />
'''Date:''' December 10-14, 2012<br />
<br />
'''Location:''' [http://www.iporticihotel.com/en | Hotel i Portici] in Via Indipendenza , Bologna, Italy, Sala Montagnola (Room) <br />
<br />
'''Goal:''' A follow on to the [[Commontk:Current_events#Past_events|wildly successful previous hackfests!]]<br />
<br />
'''Requirements:''' Attendees must be willing to spend their time during the event writing ctk code that contributes to the main [[CTK-Roadmap | ctk roadmap]]. This means spending the week immersed in C++, Qt, DCMTK, CMake, and related technologies. People who do not feel qualified for this task are politely not invited :)<br />
<br />
'''Group size:''' Maximum 20 participants so we can have a manageable working meeting. The organizing committee will invite and select participants based on input from [[TheTeam]].<br />
<br />
'''Site Hosts:''' Alessandro Chiarini, Daniele Giunchi<br />
<br />
'''Organizing Committee:''' Ivo Wolf, Stephen Aylward, Steve Pieper<br />
<br />
'''Future Events:''' Future hackfests will be announced in advance, and we hope lots of people will be interested in participating. The venue and activities at future hackfests will be determined based on the number of active participants in the project. We welcome participation via the CTK email lists, the source code repository, and this website.<br />
<br />
== Attendees ==<br />
*So far we have received confirmation for the following people (in no particular order). <br />
<br />
'''WE HAVE REACHED THE MAXIMUM NUMBER OF PARTECIPANT - REGISTRATION CLOSED - 16 PARTECIPANTS<br />
'''<br />
<br />
Please fill in your intentions in terms of common accommodation.<br />
<br />
{|class="wikitable alternance" style="text-align:left; border:1px solid black;"<br />
|+ '''''Participants'''''<br />
|-<br />
! scope=col style="background:#cde6f8;"| Name<br />
! scope=col style="background:#cde6f8;"| Organization<br />
|-<br />
|Alessandro Chiarini<br />
|SCS, Bologna IT<br />
|-<br />
|Daniele Giunchi<br />
|SCS, Bologna IT<br />
|-<br />
|Alberto Losi<br />
|SCS, Bologna IT<br />
|-<br />
|Steve Pieper<br />
|Isomics, Inc., Cambridge, MA, USA<br />
|-<br />
| Ivo Wolf<br />
| Mannheim University of Applied Sciences & DKFZ Heidelberg<br />
|-<br />
| Jean-Chistophe Fillion-Robin<br />
| Kitware<br />
|-<br />
| Julien Finet<br />
| Kitware<br />
|-<br />
| Andreas Fetzer<br />
| DKFZ Heidelberg<br />
|-<br />
| Michael Bauer<br />
| DKFZ Heidelberg<br />
|-<br />
| Marco Nolden<br />
| DKFZ Heidelberg<br />
|-<br />
| Sascha Zelzer<br />
| DKFZ Heidelberg<br />
|-<br />
| Florian Vichot<br />
| INRIA<br />
|-<br />
| Yves Martelli<br />
| UPF<br />
|-<br />
| Claire Mouton<br />
| CREATIS<br />
|-<br />
| Miklos Espak<br />
| University College London (UCL)<br />
|-<br />
| Luca Antiga<br />
| Orobix<br />
|-<br />
|}<br />
<br />
<br />
<!--<br />
* People who manifested interest in joining the fest. Please move your names up to the confirmed table, with the details as soon as you can to facilitate discussions with potential hotels.<br />
<br />
{|class="wikitable alternance" style="text-align:left; border:1px solid black;"<br />
|+ '''''Confirmed'''''<br />
|-<br />
! scope=col style="background:#cde6f8;"| Name<br />
! scope=col style="background:#cde6f8;"| Organization<br />
<br />
|}<br />
--><br />
<br />
{{Note}}There were also other invitations sent to active people on the community, and people who recently showed interest. When their intent will be known they will be added to the list.<br />
<br />
== Preparation ==<br />
<br />
Developers should bring a laptop with the [http://github.com/commontk/CTK current CTK source code] downloaded and [[Build_Instructions|built]].<br />
<br />
Use the [http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers CTK developers mailing list] to discuss build issues and topics for ongoing work.<br />
<br />
Phone conferences have been scheduled in the weeks leading to the event:<br />
* To be announced<br />
<br />
== Topics and Projects ==<br />
<br />
<!--==== Roadmap development ====<br />
*As needed, refine the [[CTK-Roadmap|roadmap for the CTK core]].--><br />
<br />
==== DICOM Application Hosting ====<br />
<br />
* Refine, extend, [[DICOM_Application_Hosting_Testing | test]], and integrate with applications<br />
* See also [[CTK-Hackfest-Nov-2011#DICOM_Application_Hosting | (some still open) tasks]] and [[Hackfest_Nice_AppHosting_Progress | progress]] from the last hackfest<br />
* Goal: connect some real code via command line interface<br />
<br />
==== DICOM Database and Networking ====<br />
<br />
* Dig into ongoing developments. See [[CtkDICOM]] for discussion.<br />
* See CTK DICOM support is used in Slicer 4.2<br />
** [http://wiki.slicer.org/slicerWiki/index.php/Documentation/4.2/Modules/DICOM End-user documentation]<br />
** [http://na-mic.org/Bug/search.php?project_id=3&category=Module+DICOM&sticky_issues=on&sortby=last_updated&dir=DESC&hide_status_id=90 Slicer4 DICOM Bugs and Feature Requests]<br />
** SlicerRT Issues:<br />
*** https://www.assembla.com/spaces/slicerrt/tickets/25 - display of ^ (carat character) in ctkDICOMModel<br />
*** https://www.assembla.com/spaces/slicerrt/tickets/153 - extension import failure (slicer issue)<br />
*** https://www.assembla.com/spaces/slicerrt/tickets/36 - non-uniform study information in RT files<br />
<br />
==== QAT ====<br />
Quality Assurance Toolkit -> how to integrate in CTK<br />
<br />
==== Widgets ====<br />
<br />
* Discuss and refine as needed.<br />
* [https://www.assembla.com/spaces/slicerrt/wiki/20120125_Slicer_DICOM_browser_meeting SlicerRt example dicom interfaces discussion]<br />
<br />
==== Tests Framework ====<br />
Try QtTesting with CTK applications<br />
<br />
==== Build Systems & Software process ====<br />
<br />
<!--* <del>Update PythonQt dependency so that CTK can build against Qt 4.8</del><br />
** <del>See [https://github.com/pieper/PythonQt/tree/svn-mirror this experiment] to make a ctk-compatible version of the updated PythonQt - it works, but is not yet fully patched.</del><br />
** <del>[http://my.cdash.org/viewBuildError.php?buildid=362919 Some operator overloading issues in DAH]</del><br />
** Updated PythonQt: [https://github.com/commontk/PythonQt/pull/1 #1], [https://github.com/commontk/PythonQt/pull/2 #2] and [https://github.com/commontk/PythonQt/pull/3 #3] {{done}}<br />
** Updated CTK: [https://github.com/commontk/CTK/issues/189 #189], [https://github.com/commontk/CTK/issues/157 #157] {{done}}<br />
** Updated Slicer [http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=20601 r20601] {{done}}<br />
** Added [https://github.com/commontk/PythonQt#readme documentation] on PythonQt. {{done}}--><br />
<br />
<br />
* Update to [http://git.dcmtk.org/web?p=dcmtk.git;a=summary latest DCMTK]<br />
** includes dcmrt<br />
** need to pick a commit to standardize on<br />
** investigate shared/static library building. (Static instances of classes getting destructed in wrong order)<br />
** incorporate version checking <br />
*** build ctk against head or snapshot version<br />
<br />
* Prepare Debian packaging (Marco)<br />
** Resolve outstanding issues<br />
** Make CTK also build with latest stable DCMTK release (3.6.0)<br />
<br />
* Evaluate Qt5 (Sascha)<br />
<br />
* <del>Setup developer package</del><br />
** See [https://github.com/commontk/CTK/issues/10 #10] and [https://github.com/commontk/CTK/issues/65 #65]<br />
** Work in progress - See topic [https://github.com/jcfr/CTK/compare/65-packaging-support 65-packaging-support]<br />
<br />
<br />
<!-- * <del>Talk with Dominique (Debian packager) to understand what is missing</del> See https://github.com/commontk/CTK/pull/158<br />
** <del>Build from upstream PythonQt (to be done this week)</del> {{done}} Few patches still need to be contributed upstream. See [https://github.com/commontk/PythonQt#readme documentation]--><br />
** Release a version of CTK (Work on policy this week and maybe release this week).<br />
<br />
<!--* <del>Generalize documentation of CMake macro so that it can be-used.</del>--><br />
** Work in progress - See [https://github.com/jcfr/CTK/compare/master...cmake-doxygen-filter-reuse cmake-doxygen-filter-reuse]<br />
<br />
==== Command Line Modules ====<br />
* Extract CLI interface <br />
** Unify VPH and Slicer refactoring<br />
* Qt SEM XML widget<br />
* Follow on interoperability tests done in [[CLI_In_Context]]<br />
* Refine CLI XML standard<br />
** Text format for description/help/acknowledgement/resources: plain text ? html ? structured text ? github markup ?<br />
** Multiple categories per module ?<br />
** CLI XML versioning.<br />
<br />
== Agenda ==<br />
<br />
==== Monday ====<br />
<!--Start at 9:00am<br />
Arrive and get settled in the morning. Discussion of plans for the week will get underway when everyone has arrived.<br />
Review of goals and ideas--><br />
<br />
10:30am Welcome<br />
<br />
10:45 - 12:00 Round table: everyone presents 10-15 minutes how CTK is used in their project. And what's new in CTK (what has been added since previous hackfest)<br />
<br />
: CTK in use:<br />
:* MSVTK: [http://www.msvtk.org/content/electro-physiological-dataset-application ECG], HAI, Buttons (DG/AL, JF) (10m)<br />
:** Give your feedback: http://www.msvtk.org/content/evaluation<br />
:* [http://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Modules/DICOM DICOM in Slicer] (SP) (5m)<br />
:* [http://www.commontk.org/index.php/Documentation/CLI_In_Context CLI in Gimias, MITK, NiftyView, Slicer] (SZ, YM, ME) (10m)<br />
:* CTK in MITK (MN) (5m)<br />
: What's new since last hackfest?<br />
:* [http://www.commontk.org/index.php/Documentation/Command_Line_Interface CLI] in CTK (SZ, YM) (15m)<br />
:* DICOM Tag caching (SP) (5m)<br />
:* [http://www.commontk.org/index.php/Documentation/ImageGallery Widgets improvements] in CTK(JF, JCFR) (5m)<br />
:** New: ctkExpandableWidget/ctkSizeGrip, ctkPathListWidget<br />
:** Tweaks: ctkCoordinatesWidget (normalized), ctkPathLineEdit (sizeHint), ctkPanelSettings (user/revision settings), <br />
<br />
1:00pm Lunch<br />
<br />
: Discuss plans/priorities for hacking<br />
<br />
3:30pm Coffee Break<br />
<br />
hack, hack, hack...<br />
<br />
5:00pm Close<br />
<br />
==== Tuesday ====<br />
<!--hack, hack, hack...--><br />
9:30am Welcome<br />
* Review of Topics and demos<br />
11:00am Coffee Break<br />
* Discussion of goals for the week and breakout into working groups<br />
<br />
* Command Line Module Working Group Topics<br />
** Using ctk CLI infrastructure in Slicer (Jc, Sascha, Julien)<br />
** CLI Incremental Communication (Luca, Steve)<br />
** MAF CLI Integration (Daniele, Alberto)<br />
** PythonQt wrapping of ctkCLI<br />
** DAH and CLI (Ivo)<br />
** CLI Compatibility Testing (Yves)<br />
** CLI In MedINRIA (Florian)<br />
* CTK Qt Testing and Quality Assurance Toolkit (Claire, Andreas, Julien, Jc)<br />
* Transfer function interaction (Julien, Florian)<br />
** Publish previous CTK hackfest work into VTK<br />
** Minor interaction tweaks<br />
<br />
1:00pm Lunch<br />
<br />
hack, hack, hack...<br />
<br />
5:00pm Close<br />
<br />
hack, hack, hack...<br />
<br />
==== Wednesday ====<br />
<!--Review of progress--><br />
9:30am Welcome<br />
<br />
hack, hack, hack...<br />
<br />
<br />
11:00am Coffee Break<br />
<br />
hack, hack, hack...<br />
<br />
<br />
1:00pm Lunch<br />
<br />
hack, hack, hack...<br />
<br />
<br />
5:00pm Close<br />
<br />
==== Thursday ====<br />
<!--Hack, hack, hack...--><br />
9:30am Welcome<br />
<br />
hack, hack, hack...<br />
<br />
<br />
11:00am Coffee Break<br />
<br />
hack, hack, hack...<br />
<br />
<br />
1:00pm Lunch<br />
<br />
hack, hack, hack...<br />
<br />
<br />
5:00pm Close<br />
<br />
==== Friday ====<br />
<br />
9:30am Welcome<br />
<br />
hack, hack, hack...<br />
<br />
<br />
11:00am Coffee Break<br />
<br />
Wrap up discussion and presentations:<br />
* Alberto, Allesandro (for Daniele)<br />
**MAF2,3 migration<br />
*** Use CTK command line module explorer as MAF3 Plugin<br />
*** Wrap MAF2 modules as CLIs<br />
*** Solution to the WXWidgets (MAF2) to Qt (MAF3) migration with uniform solution<br />
** QAT running on CTK source code, working to make it more widely available<br />
** Migrating MAF plugins to CTK plugins<br />
* Clarire<br />
** Fixing compilation issues, working with Qt Testing and QAT for CREATIS (working to migrate to Qt)<br />
** Will report back in Lyons<br />
* Miklos<br />
** XNAT Plugin replacing curl with Qt network and ssl<br />
** Working with Jc on REST API implementation generalized across MIDAS and XNAT<br />
** With Sascha and Jc: updates to the build system to support plugins - new superrepository that has git submodules for optional plugins<br />
* Sascha<br />
** Superrepository and build system<br />
** Looked into Qt5<br />
*** some ifdefs required for deprecated functions<br />
* Andreas<br />
** Putting Qt Testing into MITK<br />
** Some issues being sorted out<br />
* Marco<br />
** Debian packaging<br />
*** dcmtk 3.6.0 build compatibility (with remote help from Michael Onken)<br />
*** Some debian specific patches in a separate branch<br />
***vtk 5.8 compatibility<br />
*** aim for named version release CTK within 6 months (for debian/ubuntu release)<br />
* Michael<br />
** Fixed selection of query results for retrieval<br />
** Refactoring Query and Retrieve<br />
*** New ctkDICOMOperation (superclass)<br />
*** May rename some widgets for consistency<br />
* Florian<br />
** CLI modules now work in MedINRIA!<br />
*** Interface is generated<br />
*** command line executable can be run<br />
*** Looking at specializations of GUI to support MedINRIA concepts<br />
** Fixes to some Qt style / css compatibility issues<br />
** Issue is reported to Qt, and now will be included in Qt 5.1<br />
* Ivo<br />
** DICOM Application Hosting<br />
*** Updated dah branch to the latest master<br />
*** Embedded dah into MITK<br />
*** MITK as hosted application<br />
*** ...and MIT as a host!<br />
* Yves<br />
** New tests for CLIs <br />
*** CLI finishes with error<br />
*** CLI checks that defaults are as expected<br />
*** CLI checks that image data passed from host is the same as when read from disk<br />
** Code could go into Slicer Execution Model repository<br />
* Julien<br />
** Lookup table editor<br />
*** layers of lookup tables<br />
*** Combine and edit layers independently<br />
*** Integrates Florian's work from Boston hackfest<br />
** Issues of ordering of XML for XML Schema comptibility<br />
* Jc<br />
** Build system work<br />
** Shared library backend for CLI framework<br />
** Updated XSD / XSL to handle additional element<br />
** Integrated CTK CLI module framework to Slicer<br />
*** Still uses Slicer custom logic for execution<br />
*** Delegates to custom widgets for specific data types (extra XSL definitions)<br />
* Steve<br />
** DICOM Bug fixes (with Marco)<br />
*** Name displays<br />
*** Encoding crashes<br />
** Command Line Module Widget - stand alone widget configured with CLI XML<br />
*** Test version with subclassed module reference: https://github.com/pieper/CTK/tree/cli-widget-reference-subclass<br />
*** improved version using QtGui subclass: https://github.com/pieper/CTK/tree/cli-widget<br />
*** [https://github.com/pieper/CTK/blob/8391b2f54e18e68e6672a4d3a54da38bc9c77b79/Libs/CommandLineModules/Widgets/Testing/Cpp/ctkCmdLineModuleWidgetTest1.cpp#L86 working test code for the module]<br />
* Luca<br />
** Work on refactoring GenerateCLP into a more dynamic structure to support incremental CLI <br />
** https://github.com/lantiga/CLIInterface<br />
<br />
<br />
1:00pm Lunch<br />
<br />
hack, hack, hack...<br />
<br />
* Reminder: Update project status on wiki<br />
** Links to branches, repositories, bug reports<br />
** Screen captures of progress to the Gallery below<br />
** Action photos of hacking in progress...<br />
<br />
== Gallery of Results ==<br />
<br />
<gallery widths=300 px heights=200px perrow=3><br />
Image:Cli-widget-prototype-2012-12-14.png|[https://github.com/pieper/CTK/blob/8391b2f54e18e68e6672a4d3a54da38bc9c77b79/Libs/CommandLineModules/Widgets/Testing/Cpp/ctkCmdLineModuleWidgetTest1.cpp#L86 Example widget generated from XML description.]<br />
Image:VtkCompositeControlPointsStack.png|Layers in VTK charts for transfer function edition.<br />
</gallery><br />
<br />
== Travel & Hotel ==<br />
<br />
'''Local contact'''<br />
If you have any troubles during your visit, call Alessandro: +39 342 1401554 or Daniele: +39 348 7260365<br />
<br />
'''Airport''' <br />
* [http://www.bologna-airport.it/uk/?LN=UK Bologna G.Marconi (BLQ)]<br />
<br />
'''Transportation on Site'''<br />
<br />
Airport Shuttle from airport to Railway Station (near to meeting location) 6 euro, link: http://www.atc.bo.it/orari/aerobus-airport-railway-station-link<br />
<br />
Taxi from airport to Railway Station 15-20 euro<br />
<br />
<!--Google's public transit search works well in Bologna. The site is about 5 blocks from subway stops and busses. Parking on-site is $10-$15 per day. Cabs are fairly convenient for most trips (perhaps $40 to/from the airport but $10-$15 for trips within town).--><br />
<br />
'''Lodging''' <br />
<br />
There are a lot of hotel options in Bologna.<br />
<br />
Millennium Hotel[http://www.millennhotelbologna.it/en/index.html]: close to the centre and to the central railways station. <br />
<br />
Star Hotel [http://www.starhotels.com/hotels/excelsior/en/home.aspx]: close to the centre and in front of the central railways station. <br />
<br />
Mercure Hotel [http://www.accorhotels.com/it/hotel-1310-mercure-bologna-centro/index.shtml] (Italian link, you need to find the page on your language from the Accor portal) In front of the central railways station.<br />
<br />
Albergo Atlantic [http://www.albergoatlantic.net/ENGLISH/index.html] In the city centre, 10' walking time from the central railways station.<br />
<br />
I Portici Hotel [http://www.iporticihotel.com/en/i-portici-hotel-bologna]10' walking time from the central railways station. <br />
<br />
<br />
<br />
'''Meeting Location''' <br />
<!--* [http://www.spl.harvard.edu/pages/Directions#Getting_to_1249_Boylston_Street. BWH Surgical Planning Laboratory] [http://maps.google.com/maps?q=1249+boylston+street+boston+ma+02215&hl=en&hnear=1249+Boylston+St,+Boston,+Massachusetts+02215&gl=us&t=m&z=16 1249 Boylston Street].--><br />
TBA We are finding a meeting venue that could be in the city centre or in the central station area. <br />
<br />
'''Catering'''<br />
<br />
It will be provided by the meeting venue. <br />
<br />
'''Weather'''<br />
<br />
* Probably not sunny, colder than Italian average :-), even it is quite variable, temperatures can range from 0°C to 10°C (min) and from 5°C to 20°C.</div>Finetjulhttp://www.commontk.org/index.php?title=File:VtkCompositeControlPointsStack.png&diff=1746File:VtkCompositeControlPointsStack.png2012-12-14T23:43:05Z<p>Finetjul: </p>
<hr />
<div></div>Finetjulhttp://www.commontk.org/index.php?title=Documentation/CLI_In_Context&diff=1745Documentation/CLI In Context2012-12-14T23:32:22Z<p>Finetjul: </p>
<hr />
<div>This page lists some example and notes on different integration of CLI modules in different frameworks including CTK (see [[Documentation/Command_Line_Interface]]). The first interoperability testing was done during the [http://www.creatis.insa-lyon.fr/Interoperability_workshop third] VPH NoE Imaging workshop hold in Lyon, France on October 22-23, 2012. It will be continued in consecutive hackfests. The aim is to try to plug in CLI modules in CLI compatible frameworks and come up with possible improvement of the CLI standard, advice to CLI module and CLI framework developers.<br />
<br />
== Events ==<br />
<br />
* [[CTK-Hackfest-Nov-2011|CTK Hackfest]] in Sofia Antipolis, France in November 2012<br />
** Preliminary work to integrate CLI into Gimias<br />
* [[CTK-Hackfest-Jul-2012|CTK Hackfest]] in Boston, USA in July 2012<br />
** Preliminary work to integrate CLI into MITK<br />
* [http://www.creatis.insa-lyon.fr/Interoperability_workshop 3rd VPH NoE Imaging workshop] in Lyon, France on October 22-23, 2012<br />
** First [[#Interoperability_tests|Interoperability tests]] with CTK, Gimias, NiftyView and Slicer<br />
* [[CTK-Hackfest-Dec-2012|CTK Hackfest]] in Bologna, Italy on December, 2012<br />
** Preliminary work to integrate CLI into medInria, MAF3<br />
** Automatic framework CLI integration tests<br />
<br />
== Interoperability tests ==<br />
<br />
These first tests mainly concern the integration of niftyreg (registration algorithms from UCL). The different stages of integration are: load, execute and results. Meaning that the CLI module can be loaded. executed and provides the same results as if it was run only from the command line. The problems we encountered were:<br />
<br />
* Gimias does not support to have a `default` element different that `None` for the output, not sure about the `advanced` option for the `parameters` element <br />
* niftyreg was using `fileExtensions` with stars (`*.nii`) which is not supported by neither Gimias nor Slicer (the star is directly used in the file name)<br />
* The default output folder should be set to the user folder and not the running one, otherwise the CLI module can crash because they were denied access to write in that folder (for example `Program Files` under Windows)<br />
* What to do with CLI modules that have dependencies on shared libraries with the platform but of different versions? Platforms should have the option to only use the libraries shipped with the CLI module<br />
* Platforms should align the way they treat data since if two load data differently, the same CLI module could give different results<br />
<br />
It would be interesting to create test CLI modules for these integration tests. For example one that exposes all possible types of options, one running a simple algorithm without any dependencies (as niftyreg) and one with dependencies.<br />
<br />
Some thoughts on the tested platforms:<br />
* Niftyview has nice controls on the way CLI modules are found and loaded (control on the `XML` validation)<br />
* Slicer has a nice display of the loaded and non loaded CLI modules (appear in red, there could be more explanation why the loading failed)<br />
<br />
== Snapshots ==<br />
<br />
Here are the snapshots of niftyreg on the different platforms:<br />
<br />
* CTK command line module explorer <br />
<br />
[[File:Niftyreg-ctk.png|400px]]<br />
<br />
* Slicer<br />
<br />
[[File:Niftyreg-slicer.png|400px]]<br />
<br />
* NiftyView<br />
<br />
[[File:Niftyreg-niftyview.png|400px]]<br />
<br />
* GIMIAS <br />
<br />
[[File:Niftyreg-gimias.png|400px]]</div>Finetjulhttp://www.commontk.org/index.php?title=Commontk:Current_events&diff=1744Commontk:Current events2012-12-14T16:28:42Z<p>Finetjul: </p>
<hr />
<div><big>Participation in CTK meetings is currently limited to steering committee members.</big><br />
<br />
= Upcoming events =<br />
<br />
= Ongoing events =<br />
<br />
<br />
= Past events =<br />
== 2012==<br />
* [[CTK-Hackfest-Dec-2012 | Hackfest; Bologna, Italy]] ''(2012, December)''<br />
* [[CTK-Hackfest-Jul-2012 | Hackfest; Boston, USA]] ''(2012, July)'' <br />
== 2011 ==<br />
* [[CTK-Hackfest-Nov-2011 | Hackfest; Sophia Antipolis, France]] ''(2011, November)''<br />
* [[CTK-Hackfest-Feb-2011 | Hackfest; Chapel Hill, USA]] ''(2011, February)''<br />
== 2010 ==<br />
<br />
* [[CTK-Hackfest-September-2010|Hackfest; Barcelona, Spain]] ''(2010, September)''<br />
* [[CTK-Hackfest-May-2010|Hackfest; Georgetown, USA]] ''(2010, May)''<br />
* [http://www.na-mic.org/Wiki/index.php/Events:CTK-Hackfest-2010 Pre-Hackfest; Heidelberg, Germany] ''(2010, March)''<br />
<br />
== 2009 ==<br />
<br />
* [http://wiki.na-mic.org/Wiki/index.php/Events:CTK-Workshop-Chicago-2009 Steering committee meeting at RSNA; Chicago, USA] ''(2009, November)''<br />
* [http://www.na-mic.org/Wiki/index.php/Events:CTK-Workshop-September-2009 Administrative Meeting; Oxford, United Kingdom] ''(2009, September)''<br />
* [http://www.na-mic.org/Wiki/index.php/Events:CTK-Workshop-June-2009 Kick-Off Meeting; Heidelberg, Germany] ''(2009, June)''</div>Finetjulhttp://www.commontk.org/index.php?title=CTK-Hackfest-Dec-2012&diff=1743CTK-Hackfest-Dec-20122012-12-14T16:16:14Z<p>Finetjul: /* Event pictures */</p>
<hr />
<div>== Event pictures ==<br />
Images from the hackfest<br />
{|<br />
|[[image:CTK-Hackfest-2012-Bologna-Palazzo D Accursio.jpg|thumb|right|220px|<big>Visiting Bologna</big>]]<br />
|}<br />
<br />
== Introduction ==<br />
<br />
'''Date:''' December 10-14, 2012<br />
<br />
'''Location:''' [http://www.iporticihotel.com/en | Hotel i Portici] in Via Indipendenza , Bologna, Italy, Sala Montagnola (Room) <br />
<br />
'''Goal:''' A follow on to the [[Commontk:Current_events#Past_events|wildly successful previous hackfests!]]<br />
<br />
'''Requirements:''' Attendees must be willing to spend their time during the event writing ctk code that contributes to the main [[CTK-Roadmap | ctk roadmap]]. This means spending the week immersed in C++, Qt, DCMTK, CMake, and related technologies. People who do not feel qualified for this task are politely not invited :)<br />
<br />
'''Group size:''' Maximum 20 participants so we can have a manageable working meeting. The organizing committee will invite and select participants based on input from [[TheTeam]].<br />
<br />
'''Site Hosts:''' Alessandro Chiarini, Daniele Giunchi<br />
<br />
'''Organizing Committee:''' Ivo Wolf, Stephen Aylward, Steve Pieper<br />
<br />
'''Future Events:''' Future hackfests will be announced in advance, and we hope lots of people will be interested in participating. The venue and activities at future hackfests will be determined based on the number of active participants in the project. We welcome participation via the CTK email lists, the source code repository, and this website.<br />
<br />
== Attendees ==<br />
*So far we have received confirmation for the following people (in no particular order). <br />
<br />
'''WE HAVE REACHED THE MAXIMUM NUMBER OF PARTECIPANT - REGISTRATION CLOSED - 16 PARTECIPANTS<br />
'''<br />
<br />
Please fill in your intentions in terms of common accommodation.<br />
<br />
{|class="wikitable alternance" style="text-align:left; border:1px solid black;"<br />
|+ '''''Participants'''''<br />
|-<br />
! scope=col style="background:#cde6f8;"| Name<br />
! scope=col style="background:#cde6f8;"| Organization<br />
|-<br />
|Alessandro Chiarini<br />
|SCS, Bologna IT<br />
|-<br />
|Daniele Giunchi<br />
|SCS, Bologna IT<br />
|-<br />
|Alberto Losi<br />
|SCS, Bologna IT<br />
|-<br />
|Steve Pieper<br />
|Isomics, Inc., Cambridge, MA, USA<br />
|-<br />
| Ivo Wolf<br />
| Mannheim University of Applied Sciences & DKFZ Heidelberg<br />
|-<br />
| Jean-Chistophe Fillion-Robin<br />
| Kitware<br />
|-<br />
| Julien Finet<br />
| Kitware<br />
|-<br />
| Andreas Fetzer<br />
| DKFZ Heidelberg<br />
|-<br />
| Michael Bauer<br />
| DKFZ Heidelberg<br />
|-<br />
| Marco Nolden<br />
| DKFZ Heidelberg<br />
|-<br />
| Sascha Zelzer<br />
| DKFZ Heidelberg<br />
|-<br />
| Florian Vichot<br />
| INRIA<br />
|-<br />
| Yves Martelli<br />
| UPF<br />
|-<br />
| Claire Mouton<br />
| CREATIS<br />
|-<br />
| Miklos Espak<br />
| University College London (UCL)<br />
|-<br />
| Luca Antiga<br />
| Orobix<br />
|-<br />
|}<br />
<br />
<br />
<!--<br />
* People who manifested interest in joining the fest. Please move your names up to the confirmed table, with the details as soon as you can to facilitate discussions with potential hotels.<br />
<br />
{|class="wikitable alternance" style="text-align:left; border:1px solid black;"<br />
|+ '''''Confirmed'''''<br />
|-<br />
! scope=col style="background:#cde6f8;"| Name<br />
! scope=col style="background:#cde6f8;"| Organization<br />
<br />
|}<br />
--><br />
<br />
{{Note}}There were also other invitations sent to active people on the community, and people who recently showed interest. When their intent will be known they will be added to the list.<br />
<br />
== Preparation ==<br />
<br />
Developers should bring a laptop with the [http://github.com/commontk/CTK current CTK source code] downloaded and [[Build_Instructions|built]].<br />
<br />
Use the [http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers CTK developers mailing list] to discuss build issues and topics for ongoing work.<br />
<br />
Phone conferences have been scheduled in the weeks leading to the event:<br />
* To be announced<br />
<br />
== Topics and Projects ==<br />
<br />
<!--==== Roadmap development ====<br />
*As needed, refine the [[CTK-Roadmap|roadmap for the CTK core]].--><br />
<br />
==== DICOM Application Hosting ====<br />
<br />
* Refine, extend, [[DICOM_Application_Hosting_Testing | test]], and integrate with applications<br />
* See also [[CTK-Hackfest-Nov-2011#DICOM_Application_Hosting | (some still open) tasks]] and [[Hackfest_Nice_AppHosting_Progress | progress]] from the last hackfest<br />
* Goal: connect some real code via command line interface<br />
<br />
==== DICOM Database and Networking ====<br />
<br />
* Dig into ongoing developments. See [[CtkDICOM]] for discussion.<br />
* See CTK DICOM support is used in Slicer 4.2<br />
** [http://wiki.slicer.org/slicerWiki/index.php/Documentation/4.2/Modules/DICOM End-user documentation]<br />
** [http://na-mic.org/Bug/search.php?project_id=3&category=Module+DICOM&sticky_issues=on&sortby=last_updated&dir=DESC&hide_status_id=90 Slicer4 DICOM Bugs and Feature Requests]<br />
** SlicerRT Issues:<br />
*** https://www.assembla.com/spaces/slicerrt/tickets/25 - display of ^ (carat character) in ctkDICOMModel<br />
*** https://www.assembla.com/spaces/slicerrt/tickets/153 - extension import failure (slicer issue)<br />
*** https://www.assembla.com/spaces/slicerrt/tickets/36 - non-uniform study information in RT files<br />
<br />
==== QAT ====<br />
Quality Assurance Toolkit -> how to integrate in CTK<br />
<br />
==== Widgets ====<br />
<br />
* Discuss and refine as needed.<br />
* [https://www.assembla.com/spaces/slicerrt/wiki/20120125_Slicer_DICOM_browser_meeting SlicerRt example dicom interfaces discussion]<br />
<br />
==== Tests Framework ====<br />
Try QtTesting with CTK applications<br />
<br />
==== Build Systems & Software process ====<br />
<br />
<!--* <del>Update PythonQt dependency so that CTK can build against Qt 4.8</del><br />
** <del>See [https://github.com/pieper/PythonQt/tree/svn-mirror this experiment] to make a ctk-compatible version of the updated PythonQt - it works, but is not yet fully patched.</del><br />
** <del>[http://my.cdash.org/viewBuildError.php?buildid=362919 Some operator overloading issues in DAH]</del><br />
** Updated PythonQt: [https://github.com/commontk/PythonQt/pull/1 #1], [https://github.com/commontk/PythonQt/pull/2 #2] and [https://github.com/commontk/PythonQt/pull/3 #3] {{done}}<br />
** Updated CTK: [https://github.com/commontk/CTK/issues/189 #189], [https://github.com/commontk/CTK/issues/157 #157] {{done}}<br />
** Updated Slicer [http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=20601 r20601] {{done}}<br />
** Added [https://github.com/commontk/PythonQt#readme documentation] on PythonQt. {{done}}--><br />
<br />
<br />
* Update to [http://git.dcmtk.org/web?p=dcmtk.git;a=summary latest DCMTK]<br />
** includes dcmrt<br />
** need to pick a commit to standardize on<br />
** investigate shared/static library building. (Static instances of classes getting destructed in wrong order)<br />
** incorporate version checking <br />
*** build ctk against head or snapshot version<br />
<br />
* Prepare Debian packaging (Marco)<br />
** Resolve outstanding issues<br />
** Make CTK also build with latest stable DCMTK release (3.6.0)<br />
<br />
* Evaluate Qt5 (Sascha)<br />
<br />
* <del>Setup developer package</del><br />
** See [https://github.com/commontk/CTK/issues/10 #10] and [https://github.com/commontk/CTK/issues/65 #65]<br />
** Work in progress - See topic [https://github.com/jcfr/CTK/compare/65-packaging-support 65-packaging-support]<br />
<br />
<br />
<!-- * <del>Talk with Dominique (Debian packager) to understand what is missing</del> See https://github.com/commontk/CTK/pull/158<br />
** <del>Build from upstream PythonQt (to be done this week)</del> {{done}} Few patches still need to be contributed upstream. See [https://github.com/commontk/PythonQt#readme documentation]--><br />
** Release a version of CTK (Work on policy this week and maybe release this week).<br />
<br />
<!--* <del>Generalize documentation of CMake macro so that it can be-used.</del>--><br />
** Work in progress - See [https://github.com/jcfr/CTK/compare/master...cmake-doxygen-filter-reuse cmake-doxygen-filter-reuse]<br />
<br />
==== Command Line Modules ====<br />
* Extract CLI interface <br />
** Unify VPH and Slicer refactoring<br />
* Qt SEM XML widget<br />
* Follow on interoperability tests done in [[CLI_In_Context]]<br />
* Refine CLI XML standard<br />
** Text format for description/help/acknowledgement/resources: plain text ? html ? structured text ? github markup ?<br />
** Multiple categories per module ?<br />
** CLI XML versioning.<br />
<br />
== Agenda ==<br />
<br />
==== Monday ====<br />
<!--Start at 9:00am<br />
Arrive and get settled in the morning. Discussion of plans for the week will get underway when everyone has arrived.<br />
Review of goals and ideas--><br />
<br />
10:30am Welcome<br />
<br />
10:45 - 12:00 Round table: everyone presents 10-15 minutes how CTK is used in their project. And what's new in CTK (what has been added since previous hackfest)<br />
<br />
: CTK in use:<br />
:* MSVTK: [http://www.msvtk.org/content/electro-physiological-dataset-application ECG], HAI, Buttons (DG/AL, JF) (10m)<br />
:** Give your feedback: http://www.msvtk.org/content/evaluation<br />
:* [http://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Modules/DICOM DICOM in Slicer] (SP) (5m)<br />
:* [http://www.commontk.org/index.php/Documentation/CLI_In_Context CLI in Gimias, MITK, NiftyView, Slicer] (SZ, YM, ME) (10m)<br />
:* CTK in MITK (MN) (5m)<br />
: What's new since last hackfest?<br />
:* [http://www.commontk.org/index.php/Documentation/Command_Line_Interface CLI] in CTK (SZ, YM) (15m)<br />
:* DICOM Tag caching (SP) (5m)<br />
:* [http://www.commontk.org/index.php/Documentation/ImageGallery Widgets improvements] in CTK(JF, JCFR) (5m)<br />
:** New: ctkExpandableWidget/ctkSizeGrip, ctkPathListWidget<br />
:** Tweaks: ctkCoordinatesWidget (normalized), ctkPathLineEdit (sizeHint), ctkPanelSettings (user/revision settings), <br />
<br />
1:00pm Lunch<br />
<br />
: Discuss plans/priorities for hacking<br />
<br />
3:30pm Coffee Break<br />
<br />
hack, hack, hack...<br />
<br />
5:00pm Close<br />
<br />
==== Tuesday ====<br />
<!--hack, hack, hack...--><br />
9:30am Welcome<br />
* Review of Topics and demos<br />
11:00am Coffee Break<br />
* Discussion of goals for the week and breakout into working groups<br />
<br />
* Command Line Module Working Group Topics<br />
** Using ctk CLI infrastructure in Slicer (Jc, Sascha, Julien)<br />
** CLI Incremental Communication (Luca, Steve)<br />
** MAF CLI Integration (Daniele, Alberto)<br />
** PythonQt wrapping of ctkCLI<br />
** DAH and CLI (Ivo)<br />
** CLI Compatibility Testing (Yves)<br />
** CLI In MedINRIA (Florian)<br />
* CTK Qt Testing and Quality Assurance Toolkit (Claire, Andreas, Julien, Jc)<br />
* Transfer function interaction (Julien, Florian)<br />
** Publish previous CTK hackfest work into VTK<br />
** Minor interaction tweaks<br />
<br />
1:00pm Lunch<br />
<br />
hack, hack, hack...<br />
<br />
5:00pm Close<br />
<br />
hack, hack, hack...<br />
<br />
==== Wednesday ====<br />
<!--Review of progress--><br />
9:30am Welcome<br />
<br />
hack, hack, hack...<br />
<br />
<br />
11:00am Coffee Break<br />
<br />
hack, hack, hack...<br />
<br />
<br />
1:00pm Lunch<br />
<br />
hack, hack, hack...<br />
<br />
<br />
5:00pm Close<br />
<br />
==== Thursday ====<br />
<!--Hack, hack, hack...--><br />
9:30am Welcome<br />
<br />
hack, hack, hack...<br />
<br />
<br />
11:00am Coffee Break<br />
<br />
hack, hack, hack...<br />
<br />
<br />
1:00pm Lunch<br />
<br />
hack, hack, hack...<br />
<br />
<br />
5:00pm Close<br />
<br />
==== Friday ====<br />
<br />
9:30am Welcome<br />
<br />
hack, hack, hack...<br />
<br />
<br />
11:00am Coffee Break<br />
<br />
Wrap up discussion and presentations:<br />
* Alberto, Allesandro (for Daniele)<br />
**MAF2,3 migration<br />
*** Use CTK command line module explorer as MAF3 Plugin<br />
*** Wrap MAF2 modules as CLIs<br />
*** Solution to the WXWidgets (MAF2) to Qt (MAF3) migration with uniform solution<br />
** QAT running on CTK source code, working to make it more widely available<br />
** Migrating MAF plugins to CTK plugins<br />
* Clarire<br />
** Fixing compilation issues, working with Qt Testing and QAT for CREATIS (working to migrate to Qt)<br />
** Will report back in Lyons<br />
* Miklos<br />
** XNAT Plugin replacing curl with Qt network and ssl<br />
** Working with Jc on REST API implementation generalized across MIDAS and XNAT<br />
** With Sascha and Jc: updates to the build system to support plugins - new superrepository that has git submodules for optional plugins<br />
* Sascha<br />
** Superrepository and build system<br />
** Looked into Qt5<br />
*** some ifdefs required for deprecated functions<br />
* Andreas<br />
** Putting Qt Testing into MITK<br />
** Some issues being sorted out<br />
* Marco<br />
** Debian packaging<br />
*** dcmtk 3.6.0 build compatibility (with remote help from Michael Onken)<br />
*** Some debian specific patches in a separate branch<br />
***vtk 5.8 compatibility<br />
*** aim for named version release CTK within 6 months (for debian/ubuntu release)<br />
* Michael<br />
** Fixed selection of query results for retrieval<br />
** Refactoring Query and Retrieve<br />
*** New ctkDICOMOperation (superclass)<br />
*** May rename some widgets for consistency<br />
* Florian<br />
** CLI modules now work in MedINRIA!<br />
*** Interface is generated<br />
*** command line executable can be run<br />
*** Looking at specializations of GUI to support MedINRIA concepts<br />
** Fixes to some Qt style / css compatibility issues<br />
** Issue is reported to Qt, and now will be included in Qt 5.1<br />
* Ivo<br />
** DICOM Application Hosting<br />
*** Updated dah branch to the latest master<br />
*** Embedded dah into MITK<br />
*** MITK as hosted application<br />
*** ...and MIT as a host!<br />
* Yves<br />
** New tests for CLIs <br />
*** CLI finishes with error<br />
*** CLI checks that defaults are as expected<br />
*** CLI checks that image data passed from host is the same as when read from disk<br />
** Code could go into Slicer Execution Model repository<br />
* Julien<br />
** Lookup table editor<br />
*** layers of lookup tables<br />
*** Combine and edit layers independently<br />
*** Integrates Florian's work from Boston hackfest<br />
** Issues of ordering of XML for XML Schema comptibility<br />
* Jc<br />
** Build system work<br />
** Shared library backend for CLI framework<br />
** Updated XSD / XSL to handle additional element<br />
** Integrated CTK CLI module framework to Slicer<br />
*** Still uses Slicer custom logic for execution<br />
*** Delegates to custom widgets for specific data types (extra XSL definitions)<br />
* Steve<br />
** DICOM Bug fixes (with Marco)<br />
*** Name displays<br />
*** Encoding crashes<br />
** Command Line Module Widget - stand alone widget configured with CLI XML<br />
*** Test version with subclassed module reference: https://github.com/pieper/CTK/tree/cli-widget-reference-subclass<br />
*** improved version using QtGui subclass: https://github.com/pieper/CTK/tree/cli-widget<br />
*** [https://github.com/pieper/CTK/blob/8391b2f54e18e68e6672a4d3a54da38bc9c77b79/Libs/CommandLineModules/Widgets/Testing/Cpp/ctkCmdLineModuleWidgetTest1.cpp#L86 working test code for the module]<br />
* Luca<br />
** Work on refactoring GenerateCLP into a more dynamic structure to support incremental CLI <br />
** https://github.com/lantiga/CLIInterface<br />
<br />
<br />
1:00pm Lunch<br />
<br />
hack, hack, hack...<br />
<br />
* Reminder: Update project status on wiki<br />
** Links to branches, repositories, bug reports<br />
** Screen captures of progress to the Gallery below<br />
** Action photos of hacking in progress...<br />
<br />
== Gallery of Results ==<br />
<br />
<gallery widths=300 px heights=200px perrow=3><br />
Image:Cli-widget-prototype-2012-12-14.png|[https://github.com/pieper/CTK/blob/8391b2f54e18e68e6672a4d3a54da38bc9c77b79/Libs/CommandLineModules/Widgets/Testing/Cpp/ctkCmdLineModuleWidgetTest1.cpp#L86 Example widget generated from XML description.]<br />
</gallery><br />
<br />
== Travel & Hotel ==<br />
<br />
'''Local contact'''<br />
If you have any troubles during your visit, call Alessandro: +39 342 1401554 or Daniele: +39 348 7260365<br />
<br />
'''Airport''' <br />
* [http://www.bologna-airport.it/uk/?LN=UK Bologna G.Marconi (BLQ)]<br />
<br />
'''Transportation on Site'''<br />
<br />
Airport Shuttle from airport to Railway Station (near to meeting location) 6 euro, link: http://www.atc.bo.it/orari/aerobus-airport-railway-station-link<br />
<br />
Taxi from airport to Railway Station 15-20 euro<br />
<br />
<!--Google's public transit search works well in Bologna. The site is about 5 blocks from subway stops and busses. Parking on-site is $10-$15 per day. Cabs are fairly convenient for most trips (perhaps $40 to/from the airport but $10-$15 for trips within town).--><br />
<br />
'''Lodging''' <br />
<br />
There are a lot of hotel options in Bologna.<br />
<br />
Millennium Hotel[http://www.millennhotelbologna.it/en/index.html]: close to the centre and to the central railways station. <br />
<br />
Star Hotel [http://www.starhotels.com/hotels/excelsior/en/home.aspx]: close to the centre and in front of the central railways station. <br />
<br />
Mercure Hotel [http://www.accorhotels.com/it/hotel-1310-mercure-bologna-centro/index.shtml] (Italian link, you need to find the page on your language from the Accor portal) In front of the central railways station.<br />
<br />
Albergo Atlantic [http://www.albergoatlantic.net/ENGLISH/index.html] In the city centre, 10' walking time from the central railways station.<br />
<br />
I Portici Hotel [http://www.iporticihotel.com/en/i-portici-hotel-bologna]10' walking time from the central railways station. <br />
<br />
<br />
<br />
'''Meeting Location''' <br />
<!--* [http://www.spl.harvard.edu/pages/Directions#Getting_to_1249_Boylston_Street. BWH Surgical Planning Laboratory] [http://maps.google.com/maps?q=1249+boylston+street+boston+ma+02215&hl=en&hnear=1249+Boylston+St,+Boston,+Massachusetts+02215&gl=us&t=m&z=16 1249 Boylston Street].--><br />
TBA We are finding a meeting venue that could be in the city centre or in the central station area. <br />
<br />
'''Catering'''<br />
<br />
It will be provided by the meeting venue. <br />
<br />
'''Weather'''<br />
<br />
* Probably not sunny, colder than Italian average :-), even it is quite variable, temperatures can range from 0°C to 10°C (min) and from 5°C to 20°C.</div>Finetjulhttp://www.commontk.org/index.php?title=CTK-Hackfest-Dec-2012&diff=1742CTK-Hackfest-Dec-20122012-12-14T16:15:31Z<p>Finetjul: /* Event pictures */</p>
<hr />
<div>== Event pictures ==<br />
Images from the hackfest<br />
{|<br />
|[[image:CTK-Hackfest-2012-Bologna-Palazzio D Accursio.JPG|thumb|right|220px|<big>Visiting Bologna</big>]]<br />
|}<br />
<br />
== Introduction ==<br />
<br />
'''Date:''' December 10-14, 2012<br />
<br />
'''Location:''' [http://www.iporticihotel.com/en | Hotel i Portici] in Via Indipendenza , Bologna, Italy, Sala Montagnola (Room) <br />
<br />
'''Goal:''' A follow on to the [[Commontk:Current_events#Past_events|wildly successful previous hackfests!]]<br />
<br />
'''Requirements:''' Attendees must be willing to spend their time during the event writing ctk code that contributes to the main [[CTK-Roadmap | ctk roadmap]]. This means spending the week immersed in C++, Qt, DCMTK, CMake, and related technologies. People who do not feel qualified for this task are politely not invited :)<br />
<br />
'''Group size:''' Maximum 20 participants so we can have a manageable working meeting. The organizing committee will invite and select participants based on input from [[TheTeam]].<br />
<br />
'''Site Hosts:''' Alessandro Chiarini, Daniele Giunchi<br />
<br />
'''Organizing Committee:''' Ivo Wolf, Stephen Aylward, Steve Pieper<br />
<br />
'''Future Events:''' Future hackfests will be announced in advance, and we hope lots of people will be interested in participating. The venue and activities at future hackfests will be determined based on the number of active participants in the project. We welcome participation via the CTK email lists, the source code repository, and this website.<br />
<br />
== Attendees ==<br />
*So far we have received confirmation for the following people (in no particular order). <br />
<br />
'''WE HAVE REACHED THE MAXIMUM NUMBER OF PARTECIPANT - REGISTRATION CLOSED - 16 PARTECIPANTS<br />
'''<br />
<br />
Please fill in your intentions in terms of common accommodation.<br />
<br />
{|class="wikitable alternance" style="text-align:left; border:1px solid black;"<br />
|+ '''''Participants'''''<br />
|-<br />
! scope=col style="background:#cde6f8;"| Name<br />
! scope=col style="background:#cde6f8;"| Organization<br />
|-<br />
|Alessandro Chiarini<br />
|SCS, Bologna IT<br />
|-<br />
|Daniele Giunchi<br />
|SCS, Bologna IT<br />
|-<br />
|Alberto Losi<br />
|SCS, Bologna IT<br />
|-<br />
|Steve Pieper<br />
|Isomics, Inc., Cambridge, MA, USA<br />
|-<br />
| Ivo Wolf<br />
| Mannheim University of Applied Sciences & DKFZ Heidelberg<br />
|-<br />
| Jean-Chistophe Fillion-Robin<br />
| Kitware<br />
|-<br />
| Julien Finet<br />
| Kitware<br />
|-<br />
| Andreas Fetzer<br />
| DKFZ Heidelberg<br />
|-<br />
| Michael Bauer<br />
| DKFZ Heidelberg<br />
|-<br />
| Marco Nolden<br />
| DKFZ Heidelberg<br />
|-<br />
| Sascha Zelzer<br />
| DKFZ Heidelberg<br />
|-<br />
| Florian Vichot<br />
| INRIA<br />
|-<br />
| Yves Martelli<br />
| UPF<br />
|-<br />
| Claire Mouton<br />
| CREATIS<br />
|-<br />
| Miklos Espak<br />
| University College London (UCL)<br />
|-<br />
| Luca Antiga<br />
| Orobix<br />
|-<br />
|}<br />
<br />
<br />
<!--<br />
* People who manifested interest in joining the fest. Please move your names up to the confirmed table, with the details as soon as you can to facilitate discussions with potential hotels.<br />
<br />
{|class="wikitable alternance" style="text-align:left; border:1px solid black;"<br />
|+ '''''Confirmed'''''<br />
|-<br />
! scope=col style="background:#cde6f8;"| Name<br />
! scope=col style="background:#cde6f8;"| Organization<br />
<br />
|}<br />
--><br />
<br />
{{Note}}There were also other invitations sent to active people on the community, and people who recently showed interest. When their intent will be known they will be added to the list.<br />
<br />
== Preparation ==<br />
<br />
Developers should bring a laptop with the [http://github.com/commontk/CTK current CTK source code] downloaded and [[Build_Instructions|built]].<br />
<br />
Use the [http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers CTK developers mailing list] to discuss build issues and topics for ongoing work.<br />
<br />
Phone conferences have been scheduled in the weeks leading to the event:<br />
* To be announced<br />
<br />
== Topics and Projects ==<br />
<br />
<!--==== Roadmap development ====<br />
*As needed, refine the [[CTK-Roadmap|roadmap for the CTK core]].--><br />
<br />
==== DICOM Application Hosting ====<br />
<br />
* Refine, extend, [[DICOM_Application_Hosting_Testing | test]], and integrate with applications<br />
* See also [[CTK-Hackfest-Nov-2011#DICOM_Application_Hosting | (some still open) tasks]] and [[Hackfest_Nice_AppHosting_Progress | progress]] from the last hackfest<br />
* Goal: connect some real code via command line interface<br />
<br />
==== DICOM Database and Networking ====<br />
<br />
* Dig into ongoing developments. See [[CtkDICOM]] for discussion.<br />
* See CTK DICOM support is used in Slicer 4.2<br />
** [http://wiki.slicer.org/slicerWiki/index.php/Documentation/4.2/Modules/DICOM End-user documentation]<br />
** [http://na-mic.org/Bug/search.php?project_id=3&category=Module+DICOM&sticky_issues=on&sortby=last_updated&dir=DESC&hide_status_id=90 Slicer4 DICOM Bugs and Feature Requests]<br />
** SlicerRT Issues:<br />
*** https://www.assembla.com/spaces/slicerrt/tickets/25 - display of ^ (carat character) in ctkDICOMModel<br />
*** https://www.assembla.com/spaces/slicerrt/tickets/153 - extension import failure (slicer issue)<br />
*** https://www.assembla.com/spaces/slicerrt/tickets/36 - non-uniform study information in RT files<br />
<br />
==== QAT ====<br />
Quality Assurance Toolkit -> how to integrate in CTK<br />
<br />
==== Widgets ====<br />
<br />
* Discuss and refine as needed.<br />
* [https://www.assembla.com/spaces/slicerrt/wiki/20120125_Slicer_DICOM_browser_meeting SlicerRt example dicom interfaces discussion]<br />
<br />
==== Tests Framework ====<br />
Try QtTesting with CTK applications<br />
<br />
==== Build Systems & Software process ====<br />
<br />
<!--* <del>Update PythonQt dependency so that CTK can build against Qt 4.8</del><br />
** <del>See [https://github.com/pieper/PythonQt/tree/svn-mirror this experiment] to make a ctk-compatible version of the updated PythonQt - it works, but is not yet fully patched.</del><br />
** <del>[http://my.cdash.org/viewBuildError.php?buildid=362919 Some operator overloading issues in DAH]</del><br />
** Updated PythonQt: [https://github.com/commontk/PythonQt/pull/1 #1], [https://github.com/commontk/PythonQt/pull/2 #2] and [https://github.com/commontk/PythonQt/pull/3 #3] {{done}}<br />
** Updated CTK: [https://github.com/commontk/CTK/issues/189 #189], [https://github.com/commontk/CTK/issues/157 #157] {{done}}<br />
** Updated Slicer [http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=20601 r20601] {{done}}<br />
** Added [https://github.com/commontk/PythonQt#readme documentation] on PythonQt. {{done}}--><br />
<br />
<br />
* Update to [http://git.dcmtk.org/web?p=dcmtk.git;a=summary latest DCMTK]<br />
** includes dcmrt<br />
** need to pick a commit to standardize on<br />
** investigate shared/static library building. (Static instances of classes getting destructed in wrong order)<br />
** incorporate version checking <br />
*** build ctk against head or snapshot version<br />
<br />
* Prepare Debian packaging (Marco)<br />
** Resolve outstanding issues<br />
** Make CTK also build with latest stable DCMTK release (3.6.0)<br />
<br />
* Evaluate Qt5 (Sascha)<br />
<br />
* <del>Setup developer package</del><br />
** See [https://github.com/commontk/CTK/issues/10 #10] and [https://github.com/commontk/CTK/issues/65 #65]<br />
** Work in progress - See topic [https://github.com/jcfr/CTK/compare/65-packaging-support 65-packaging-support]<br />
<br />
<br />
<!-- * <del>Talk with Dominique (Debian packager) to understand what is missing</del> See https://github.com/commontk/CTK/pull/158<br />
** <del>Build from upstream PythonQt (to be done this week)</del> {{done}} Few patches still need to be contributed upstream. See [https://github.com/commontk/PythonQt#readme documentation]--><br />
** Release a version of CTK (Work on policy this week and maybe release this week).<br />
<br />
<!--* <del>Generalize documentation of CMake macro so that it can be-used.</del>--><br />
** Work in progress - See [https://github.com/jcfr/CTK/compare/master...cmake-doxygen-filter-reuse cmake-doxygen-filter-reuse]<br />
<br />
==== Command Line Modules ====<br />
* Extract CLI interface <br />
** Unify VPH and Slicer refactoring<br />
* Qt SEM XML widget<br />
* Follow on interoperability tests done in [[CLI_In_Context]]<br />
* Refine CLI XML standard<br />
** Text format for description/help/acknowledgement/resources: plain text ? html ? structured text ? github markup ?<br />
** Multiple categories per module ?<br />
** CLI XML versioning.<br />
<br />
== Agenda ==<br />
<br />
==== Monday ====<br />
<!--Start at 9:00am<br />
Arrive and get settled in the morning. Discussion of plans for the week will get underway when everyone has arrived.<br />
Review of goals and ideas--><br />
<br />
10:30am Welcome<br />
<br />
10:45 - 12:00 Round table: everyone presents 10-15 minutes how CTK is used in their project. And what's new in CTK (what has been added since previous hackfest)<br />
<br />
: CTK in use:<br />
:* MSVTK: [http://www.msvtk.org/content/electro-physiological-dataset-application ECG], HAI, Buttons (DG/AL, JF) (10m)<br />
:** Give your feedback: http://www.msvtk.org/content/evaluation<br />
:* [http://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Modules/DICOM DICOM in Slicer] (SP) (5m)<br />
:* [http://www.commontk.org/index.php/Documentation/CLI_In_Context CLI in Gimias, MITK, NiftyView, Slicer] (SZ, YM, ME) (10m)<br />
:* CTK in MITK (MN) (5m)<br />
: What's new since last hackfest?<br />
:* [http://www.commontk.org/index.php/Documentation/Command_Line_Interface CLI] in CTK (SZ, YM) (15m)<br />
:* DICOM Tag caching (SP) (5m)<br />
:* [http://www.commontk.org/index.php/Documentation/ImageGallery Widgets improvements] in CTK(JF, JCFR) (5m)<br />
:** New: ctkExpandableWidget/ctkSizeGrip, ctkPathListWidget<br />
:** Tweaks: ctkCoordinatesWidget (normalized), ctkPathLineEdit (sizeHint), ctkPanelSettings (user/revision settings), <br />
<br />
1:00pm Lunch<br />
<br />
: Discuss plans/priorities for hacking<br />
<br />
3:30pm Coffee Break<br />
<br />
hack, hack, hack...<br />
<br />
5:00pm Close<br />
<br />
==== Tuesday ====<br />
<!--hack, hack, hack...--><br />
9:30am Welcome<br />
* Review of Topics and demos<br />
11:00am Coffee Break<br />
* Discussion of goals for the week and breakout into working groups<br />
<br />
* Command Line Module Working Group Topics<br />
** Using ctk CLI infrastructure in Slicer (Jc, Sascha, Julien)<br />
** CLI Incremental Communication (Luca, Steve)<br />
** MAF CLI Integration (Daniele, Alberto)<br />
** PythonQt wrapping of ctkCLI<br />
** DAH and CLI (Ivo)<br />
** CLI Compatibility Testing (Yves)<br />
** CLI In MedINRIA (Florian)<br />
* CTK Qt Testing and Quality Assurance Toolkit (Claire, Andreas, Julien, Jc)<br />
* Transfer function interaction (Julien, Florian)<br />
** Publish previous CTK hackfest work into VTK<br />
** Minor interaction tweaks<br />
<br />
1:00pm Lunch<br />
<br />
hack, hack, hack...<br />
<br />
5:00pm Close<br />
<br />
hack, hack, hack...<br />
<br />
==== Wednesday ====<br />
<!--Review of progress--><br />
9:30am Welcome<br />
<br />
hack, hack, hack...<br />
<br />
<br />
11:00am Coffee Break<br />
<br />
hack, hack, hack...<br />
<br />
<br />
1:00pm Lunch<br />
<br />
hack, hack, hack...<br />
<br />
<br />
5:00pm Close<br />
<br />
==== Thursday ====<br />
<!--Hack, hack, hack...--><br />
9:30am Welcome<br />
<br />
hack, hack, hack...<br />
<br />
<br />
11:00am Coffee Break<br />
<br />
hack, hack, hack...<br />
<br />
<br />
1:00pm Lunch<br />
<br />
hack, hack, hack...<br />
<br />
<br />
5:00pm Close<br />
<br />
==== Friday ====<br />
<br />
9:30am Welcome<br />
<br />
hack, hack, hack...<br />
<br />
<br />
11:00am Coffee Break<br />
<br />
Wrap up discussion and presentations:<br />
* Alberto, Allesandro (for Daniele)<br />
**MAF2,3 migration<br />
*** Use CTK command line module explorer as MAF3 Plugin<br />
*** Wrap MAF2 modules as CLIs<br />
*** Solution to the WXWidgets (MAF2) to Qt (MAF3) migration with uniform solution<br />
** QAT running on CTK source code, working to make it more widely available<br />
** Migrating MAF plugins to CTK plugins<br />
* Clarire<br />
** Fixing compilation issues, working with Qt Testing and QAT for CREATIS (working to migrate to Qt)<br />
** Will report back in Lyons<br />
* Miklos<br />
** XNAT Plugin replacing curl with Qt network and ssl<br />
** Working with Jc on REST API implementation generalized across MIDAS and XNAT<br />
** With Sascha and Jc: updates to the build system to support plugins - new superrepository that has git submodules for optional plugins<br />
* Sascha<br />
** Superrepository and build system<br />
** Looked into Qt5<br />
*** some ifdefs required for deprecated functions<br />
* Andreas<br />
** Putting Qt Testing into MITK<br />
** Some issues being sorted out<br />
* Marco<br />
** Debian packaging<br />
*** dcmtk 3.6.0 build compatibility (with remote help from Michael Onken)<br />
*** Some debian specific patches in a separate branch<br />
***vtk 5.8 compatibility<br />
*** aim for named version release CTK within 6 months (for debian/ubuntu release)<br />
* Michael<br />
** Fixed selection of query results for retrieval<br />
** Refactoring Query and Retrieve<br />
*** New ctkDICOMOperation (superclass)<br />
*** May rename some widgets for consistency<br />
* Florian<br />
** CLI modules now work in MedINRIA!<br />
*** Interface is generated<br />
*** command line executable can be run<br />
*** Looking at specializations of GUI to support MedINRIA concepts<br />
** Fixes to some Qt style / css compatibility issues<br />
** Issue is reported to Qt, and now will be included in Qt 5.1<br />
* Ivo<br />
** DICOM Application Hosting<br />
*** Updated dah branch to the latest master<br />
*** Embedded dah into MITK<br />
*** MITK as hosted application<br />
*** ...and MIT as a host!<br />
* Yves<br />
** New tests for CLIs <br />
*** CLI finishes with error<br />
*** CLI checks that defaults are as expected<br />
*** CLI checks that image data passed from host is the same as when read from disk<br />
** Code could go into Slicer Execution Model repository<br />
* Julien<br />
** Lookup table editor<br />
*** layers of lookup tables<br />
*** Combine and edit layers independently<br />
*** Integrates Florian's work from Boston hackfest<br />
** Issues of ordering of XML for XML Schema comptibility<br />
* Jc<br />
** Build system work<br />
** Shared library backend for CLI framework<br />
** Updated XSD / XSL to handle additional element<br />
** Integrated CTK CLI module framework to Slicer<br />
*** Still uses Slicer custom logic for execution<br />
*** Delegates to custom widgets for specific data types (extra XSL definitions)<br />
* Steve<br />
** DICOM Bug fixes (with Marco)<br />
*** Name displays<br />
*** Encoding crashes<br />
** Command Line Module Widget - stand alone widget configured with CLI XML<br />
*** Test version with subclassed module reference: https://github.com/pieper/CTK/tree/cli-widget-reference-subclass<br />
*** improved version using QtGui subclass: https://github.com/pieper/CTK/tree/cli-widget<br />
*** [https://github.com/pieper/CTK/blob/8391b2f54e18e68e6672a4d3a54da38bc9c77b79/Libs/CommandLineModules/Widgets/Testing/Cpp/ctkCmdLineModuleWidgetTest1.cpp#L86 working test code for the module]<br />
* Luca<br />
** Work on refactoring GenerateCLP into a more dynamic structure to support incremental CLI <br />
** https://github.com/lantiga/CLIInterface<br />
<br />
<br />
1:00pm Lunch<br />
<br />
hack, hack, hack...<br />
<br />
* Reminder: Update project status on wiki<br />
** Links to branches, repositories, bug reports<br />
** Screen captures of progress to the Gallery below<br />
** Action photos of hacking in progress...<br />
<br />
== Gallery of Results ==<br />
<br />
<gallery widths=300 px heights=200px perrow=3><br />
Image:Cli-widget-prototype-2012-12-14.png|[https://github.com/pieper/CTK/blob/8391b2f54e18e68e6672a4d3a54da38bc9c77b79/Libs/CommandLineModules/Widgets/Testing/Cpp/ctkCmdLineModuleWidgetTest1.cpp#L86 Example widget generated from XML description.]<br />
</gallery><br />
<br />
== Travel & Hotel ==<br />
<br />
'''Local contact'''<br />
If you have any troubles during your visit, call Alessandro: +39 342 1401554 or Daniele: +39 348 7260365<br />
<br />
'''Airport''' <br />
* [http://www.bologna-airport.it/uk/?LN=UK Bologna G.Marconi (BLQ)]<br />
<br />
'''Transportation on Site'''<br />
<br />
Airport Shuttle from airport to Railway Station (near to meeting location) 6 euro, link: http://www.atc.bo.it/orari/aerobus-airport-railway-station-link<br />
<br />
Taxi from airport to Railway Station 15-20 euro<br />
<br />
<!--Google's public transit search works well in Bologna. The site is about 5 blocks from subway stops and busses. Parking on-site is $10-$15 per day. Cabs are fairly convenient for most trips (perhaps $40 to/from the airport but $10-$15 for trips within town).--><br />
<br />
'''Lodging''' <br />
<br />
There are a lot of hotel options in Bologna.<br />
<br />
Millennium Hotel[http://www.millennhotelbologna.it/en/index.html]: close to the centre and to the central railways station. <br />
<br />
Star Hotel [http://www.starhotels.com/hotels/excelsior/en/home.aspx]: close to the centre and in front of the central railways station. <br />
<br />
Mercure Hotel [http://www.accorhotels.com/it/hotel-1310-mercure-bologna-centro/index.shtml] (Italian link, you need to find the page on your language from the Accor portal) In front of the central railways station.<br />
<br />
Albergo Atlantic [http://www.albergoatlantic.net/ENGLISH/index.html] In the city centre, 10' walking time from the central railways station.<br />
<br />
I Portici Hotel [http://www.iporticihotel.com/en/i-portici-hotel-bologna]10' walking time from the central railways station. <br />
<br />
<br />
<br />
'''Meeting Location''' <br />
<!--* [http://www.spl.harvard.edu/pages/Directions#Getting_to_1249_Boylston_Street. BWH Surgical Planning Laboratory] [http://maps.google.com/maps?q=1249+boylston+street+boston+ma+02215&hl=en&hnear=1249+Boylston+St,+Boston,+Massachusetts+02215&gl=us&t=m&z=16 1249 Boylston Street].--><br />
TBA We are finding a meeting venue that could be in the city centre or in the central station area. <br />
<br />
'''Catering'''<br />
<br />
It will be provided by the meeting venue. <br />
<br />
'''Weather'''<br />
<br />
* Probably not sunny, colder than Italian average :-), even it is quite variable, temperatures can range from 0°C to 10°C (min) and from 5°C to 20°C.</div>Finetjulhttp://www.commontk.org/index.php?title=CTK-Hackfest-Dec-2012&diff=1741CTK-Hackfest-Dec-20122012-12-14T16:15:06Z<p>Finetjul: /* Event pictures */</p>
<hr />
<div>== Event pictures ==<br />
Images from the hackfest<br />
{|<br />
|[[image:CTK-Hackfest-2012-Bologna Palazzio D Accursio.JPG|thumb|right|220px|<big>Visiting Bologna</big>]]<br />
|}<br />
<br />
== Introduction ==<br />
<br />
'''Date:''' December 10-14, 2012<br />
<br />
'''Location:''' [http://www.iporticihotel.com/en | Hotel i Portici] in Via Indipendenza , Bologna, Italy, Sala Montagnola (Room) <br />
<br />
'''Goal:''' A follow on to the [[Commontk:Current_events#Past_events|wildly successful previous hackfests!]]<br />
<br />
'''Requirements:''' Attendees must be willing to spend their time during the event writing ctk code that contributes to the main [[CTK-Roadmap | ctk roadmap]]. This means spending the week immersed in C++, Qt, DCMTK, CMake, and related technologies. People who do not feel qualified for this task are politely not invited :)<br />
<br />
'''Group size:''' Maximum 20 participants so we can have a manageable working meeting. The organizing committee will invite and select participants based on input from [[TheTeam]].<br />
<br />
'''Site Hosts:''' Alessandro Chiarini, Daniele Giunchi<br />
<br />
'''Organizing Committee:''' Ivo Wolf, Stephen Aylward, Steve Pieper<br />
<br />
'''Future Events:''' Future hackfests will be announced in advance, and we hope lots of people will be interested in participating. The venue and activities at future hackfests will be determined based on the number of active participants in the project. We welcome participation via the CTK email lists, the source code repository, and this website.<br />
<br />
== Attendees ==<br />
*So far we have received confirmation for the following people (in no particular order). <br />
<br />
'''WE HAVE REACHED THE MAXIMUM NUMBER OF PARTECIPANT - REGISTRATION CLOSED - 16 PARTECIPANTS<br />
'''<br />
<br />
Please fill in your intentions in terms of common accommodation.<br />
<br />
{|class="wikitable alternance" style="text-align:left; border:1px solid black;"<br />
|+ '''''Participants'''''<br />
|-<br />
! scope=col style="background:#cde6f8;"| Name<br />
! scope=col style="background:#cde6f8;"| Organization<br />
|-<br />
|Alessandro Chiarini<br />
|SCS, Bologna IT<br />
|-<br />
|Daniele Giunchi<br />
|SCS, Bologna IT<br />
|-<br />
|Alberto Losi<br />
|SCS, Bologna IT<br />
|-<br />
|Steve Pieper<br />
|Isomics, Inc., Cambridge, MA, USA<br />
|-<br />
| Ivo Wolf<br />
| Mannheim University of Applied Sciences & DKFZ Heidelberg<br />
|-<br />
| Jean-Chistophe Fillion-Robin<br />
| Kitware<br />
|-<br />
| Julien Finet<br />
| Kitware<br />
|-<br />
| Andreas Fetzer<br />
| DKFZ Heidelberg<br />
|-<br />
| Michael Bauer<br />
| DKFZ Heidelberg<br />
|-<br />
| Marco Nolden<br />
| DKFZ Heidelberg<br />
|-<br />
| Sascha Zelzer<br />
| DKFZ Heidelberg<br />
|-<br />
| Florian Vichot<br />
| INRIA<br />
|-<br />
| Yves Martelli<br />
| UPF<br />
|-<br />
| Claire Mouton<br />
| CREATIS<br />
|-<br />
| Miklos Espak<br />
| University College London (UCL)<br />
|-<br />
| Luca Antiga<br />
| Orobix<br />
|-<br />
|}<br />
<br />
<br />
<!--<br />
* People who manifested interest in joining the fest. Please move your names up to the confirmed table, with the details as soon as you can to facilitate discussions with potential hotels.<br />
<br />
{|class="wikitable alternance" style="text-align:left; border:1px solid black;"<br />
|+ '''''Confirmed'''''<br />
|-<br />
! scope=col style="background:#cde6f8;"| Name<br />
! scope=col style="background:#cde6f8;"| Organization<br />
<br />
|}<br />
--><br />
<br />
{{Note}}There were also other invitations sent to active people on the community, and people who recently showed interest. When their intent will be known they will be added to the list.<br />
<br />
== Preparation ==<br />
<br />
Developers should bring a laptop with the [http://github.com/commontk/CTK current CTK source code] downloaded and [[Build_Instructions|built]].<br />
<br />
Use the [http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers CTK developers mailing list] to discuss build issues and topics for ongoing work.<br />
<br />
Phone conferences have been scheduled in the weeks leading to the event:<br />
* To be announced<br />
<br />
== Topics and Projects ==<br />
<br />
<!--==== Roadmap development ====<br />
*As needed, refine the [[CTK-Roadmap|roadmap for the CTK core]].--><br />
<br />
==== DICOM Application Hosting ====<br />
<br />
* Refine, extend, [[DICOM_Application_Hosting_Testing | test]], and integrate with applications<br />
* See also [[CTK-Hackfest-Nov-2011#DICOM_Application_Hosting | (some still open) tasks]] and [[Hackfest_Nice_AppHosting_Progress | progress]] from the last hackfest<br />
* Goal: connect some real code via command line interface<br />
<br />
==== DICOM Database and Networking ====<br />
<br />
* Dig into ongoing developments. See [[CtkDICOM]] for discussion.<br />
* See CTK DICOM support is used in Slicer 4.2<br />
** [http://wiki.slicer.org/slicerWiki/index.php/Documentation/4.2/Modules/DICOM End-user documentation]<br />
** [http://na-mic.org/Bug/search.php?project_id=3&category=Module+DICOM&sticky_issues=on&sortby=last_updated&dir=DESC&hide_status_id=90 Slicer4 DICOM Bugs and Feature Requests]<br />
** SlicerRT Issues:<br />
*** https://www.assembla.com/spaces/slicerrt/tickets/25 - display of ^ (carat character) in ctkDICOMModel<br />
*** https://www.assembla.com/spaces/slicerrt/tickets/153 - extension import failure (slicer issue)<br />
*** https://www.assembla.com/spaces/slicerrt/tickets/36 - non-uniform study information in RT files<br />
<br />
==== QAT ====<br />
Quality Assurance Toolkit -> how to integrate in CTK<br />
<br />
==== Widgets ====<br />
<br />
* Discuss and refine as needed.<br />
* [https://www.assembla.com/spaces/slicerrt/wiki/20120125_Slicer_DICOM_browser_meeting SlicerRt example dicom interfaces discussion]<br />
<br />
==== Tests Framework ====<br />
Try QtTesting with CTK applications<br />
<br />
==== Build Systems & Software process ====<br />
<br />
<!--* <del>Update PythonQt dependency so that CTK can build against Qt 4.8</del><br />
** <del>See [https://github.com/pieper/PythonQt/tree/svn-mirror this experiment] to make a ctk-compatible version of the updated PythonQt - it works, but is not yet fully patched.</del><br />
** <del>[http://my.cdash.org/viewBuildError.php?buildid=362919 Some operator overloading issues in DAH]</del><br />
** Updated PythonQt: [https://github.com/commontk/PythonQt/pull/1 #1], [https://github.com/commontk/PythonQt/pull/2 #2] and [https://github.com/commontk/PythonQt/pull/3 #3] {{done}}<br />
** Updated CTK: [https://github.com/commontk/CTK/issues/189 #189], [https://github.com/commontk/CTK/issues/157 #157] {{done}}<br />
** Updated Slicer [http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=20601 r20601] {{done}}<br />
** Added [https://github.com/commontk/PythonQt#readme documentation] on PythonQt. {{done}}--><br />
<br />
<br />
* Update to [http://git.dcmtk.org/web?p=dcmtk.git;a=summary latest DCMTK]<br />
** includes dcmrt<br />
** need to pick a commit to standardize on<br />
** investigate shared/static library building. (Static instances of classes getting destructed in wrong order)<br />
** incorporate version checking <br />
*** build ctk against head or snapshot version<br />
<br />
* Prepare Debian packaging (Marco)<br />
** Resolve outstanding issues<br />
** Make CTK also build with latest stable DCMTK release (3.6.0)<br />
<br />
* Evaluate Qt5 (Sascha)<br />
<br />
* <del>Setup developer package</del><br />
** See [https://github.com/commontk/CTK/issues/10 #10] and [https://github.com/commontk/CTK/issues/65 #65]<br />
** Work in progress - See topic [https://github.com/jcfr/CTK/compare/65-packaging-support 65-packaging-support]<br />
<br />
<br />
<!-- * <del>Talk with Dominique (Debian packager) to understand what is missing</del> See https://github.com/commontk/CTK/pull/158<br />
** <del>Build from upstream PythonQt (to be done this week)</del> {{done}} Few patches still need to be contributed upstream. See [https://github.com/commontk/PythonQt#readme documentation]--><br />
** Release a version of CTK (Work on policy this week and maybe release this week).<br />
<br />
<!--* <del>Generalize documentation of CMake macro so that it can be-used.</del>--><br />
** Work in progress - See [https://github.com/jcfr/CTK/compare/master...cmake-doxygen-filter-reuse cmake-doxygen-filter-reuse]<br />
<br />
==== Command Line Modules ====<br />
* Extract CLI interface <br />
** Unify VPH and Slicer refactoring<br />
* Qt SEM XML widget<br />
* Follow on interoperability tests done in [[CLI_In_Context]]<br />
* Refine CLI XML standard<br />
** Text format for description/help/acknowledgement/resources: plain text ? html ? structured text ? github markup ?<br />
** Multiple categories per module ?<br />
** CLI XML versioning.<br />
<br />
== Agenda ==<br />
<br />
==== Monday ====<br />
<!--Start at 9:00am<br />
Arrive and get settled in the morning. Discussion of plans for the week will get underway when everyone has arrived.<br />
Review of goals and ideas--><br />
<br />
10:30am Welcome<br />
<br />
10:45 - 12:00 Round table: everyone presents 10-15 minutes how CTK is used in their project. And what's new in CTK (what has been added since previous hackfest)<br />
<br />
: CTK in use:<br />
:* MSVTK: [http://www.msvtk.org/content/electro-physiological-dataset-application ECG], HAI, Buttons (DG/AL, JF) (10m)<br />
:** Give your feedback: http://www.msvtk.org/content/evaluation<br />
:* [http://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Modules/DICOM DICOM in Slicer] (SP) (5m)<br />
:* [http://www.commontk.org/index.php/Documentation/CLI_In_Context CLI in Gimias, MITK, NiftyView, Slicer] (SZ, YM, ME) (10m)<br />
:* CTK in MITK (MN) (5m)<br />
: What's new since last hackfest?<br />
:* [http://www.commontk.org/index.php/Documentation/Command_Line_Interface CLI] in CTK (SZ, YM) (15m)<br />
:* DICOM Tag caching (SP) (5m)<br />
:* [http://www.commontk.org/index.php/Documentation/ImageGallery Widgets improvements] in CTK(JF, JCFR) (5m)<br />
:** New: ctkExpandableWidget/ctkSizeGrip, ctkPathListWidget<br />
:** Tweaks: ctkCoordinatesWidget (normalized), ctkPathLineEdit (sizeHint), ctkPanelSettings (user/revision settings), <br />
<br />
1:00pm Lunch<br />
<br />
: Discuss plans/priorities for hacking<br />
<br />
3:30pm Coffee Break<br />
<br />
hack, hack, hack...<br />
<br />
5:00pm Close<br />
<br />
==== Tuesday ====<br />
<!--hack, hack, hack...--><br />
9:30am Welcome<br />
* Review of Topics and demos<br />
11:00am Coffee Break<br />
* Discussion of goals for the week and breakout into working groups<br />
<br />
* Command Line Module Working Group Topics<br />
** Using ctk CLI infrastructure in Slicer (Jc, Sascha, Julien)<br />
** CLI Incremental Communication (Luca, Steve)<br />
** MAF CLI Integration (Daniele, Alberto)<br />
** PythonQt wrapping of ctkCLI<br />
** DAH and CLI (Ivo)<br />
** CLI Compatibility Testing (Yves)<br />
** CLI In MedINRIA (Florian)<br />
* CTK Qt Testing and Quality Assurance Toolkit (Claire, Andreas, Julien, Jc)<br />
* Transfer function interaction (Julien, Florian)<br />
** Publish previous CTK hackfest work into VTK<br />
** Minor interaction tweaks<br />
<br />
1:00pm Lunch<br />
<br />
hack, hack, hack...<br />
<br />
5:00pm Close<br />
<br />
hack, hack, hack...<br />
<br />
==== Wednesday ====<br />
<!--Review of progress--><br />
9:30am Welcome<br />
<br />
hack, hack, hack...<br />
<br />
<br />
11:00am Coffee Break<br />
<br />
hack, hack, hack...<br />
<br />
<br />
1:00pm Lunch<br />
<br />
hack, hack, hack...<br />
<br />
<br />
5:00pm Close<br />
<br />
==== Thursday ====<br />
<!--Hack, hack, hack...--><br />
9:30am Welcome<br />
<br />
hack, hack, hack...<br />
<br />
<br />
11:00am Coffee Break<br />
<br />
hack, hack, hack...<br />
<br />
<br />
1:00pm Lunch<br />
<br />
hack, hack, hack...<br />
<br />
<br />
5:00pm Close<br />
<br />
==== Friday ====<br />
<br />
9:30am Welcome<br />
<br />
hack, hack, hack...<br />
<br />
<br />
11:00am Coffee Break<br />
<br />
Wrap up discussion and presentations:<br />
* Alberto, Allesandro (for Daniele)<br />
**MAF2,3 migration<br />
*** Use CTK command line module explorer as MAF3 Plugin<br />
*** Wrap MAF2 modules as CLIs<br />
*** Solution to the WXWidgets (MAF2) to Qt (MAF3) migration with uniform solution<br />
** QAT running on CTK source code, working to make it more widely available<br />
** Migrating MAF plugins to CTK plugins<br />
* Clarire<br />
** Fixing compilation issues, working with Qt Testing and QAT for CREATIS (working to migrate to Qt)<br />
** Will report back in Lyons<br />
* Miklos<br />
** XNAT Plugin replacing curl with Qt network and ssl<br />
** Working with Jc on REST API implementation generalized across MIDAS and XNAT<br />
** With Sascha and Jc: updates to the build system to support plugins - new superrepository that has git submodules for optional plugins<br />
* Sascha<br />
** Superrepository and build system<br />
** Looked into Qt5<br />
*** some ifdefs required for deprecated functions<br />
* Andreas<br />
** Putting Qt Testing into MITK<br />
** Some issues being sorted out<br />
* Marco<br />
** Debian packaging<br />
*** dcmtk 3.6.0 build compatibility (with remote help from Michael Onken)<br />
*** Some debian specific patches in a separate branch<br />
***vtk 5.8 compatibility<br />
*** aim for named version release CTK within 6 months (for debian/ubuntu release)<br />
* Michael<br />
** Fixed selection of query results for retrieval<br />
** Refactoring Query and Retrieve<br />
*** New ctkDICOMOperation (superclass)<br />
*** May rename some widgets for consistency<br />
* Florian<br />
** CLI modules now work in MedINRIA!<br />
*** Interface is generated<br />
*** command line executable can be run<br />
*** Looking at specializations of GUI to support MedINRIA concepts<br />
** Fixes to some Qt style / css compatibility issues<br />
** Issue is reported to Qt, and now will be included in Qt 5.1<br />
* Ivo<br />
** DICOM Application Hosting<br />
*** Updated dah branch to the latest master<br />
*** Embedded dah into MITK<br />
*** MITK as hosted application<br />
*** ...and MIT as a host!<br />
* Yves<br />
** New tests for CLIs <br />
*** CLI finishes with error<br />
*** CLI checks that defaults are as expected<br />
*** CLI checks that image data passed from host is the same as when read from disk<br />
** Code could go into Slicer Execution Model repository<br />
* Julien<br />
** Lookup table editor<br />
*** layers of lookup tables<br />
*** Combine and edit layers independently<br />
*** Integrates Florian's work from Boston hackfest<br />
** Issues of ordering of XML for XML Schema comptibility<br />
* Jc<br />
** Build system work<br />
** Shared library backend for CLI framework<br />
** Updated XSD / XSL to handle additional element<br />
** Integrated CTK CLI module framework to Slicer<br />
*** Still uses Slicer custom logic for execution<br />
*** Delegates to custom widgets for specific data types (extra XSL definitions)<br />
* Steve<br />
** DICOM Bug fixes (with Marco)<br />
*** Name displays<br />
*** Encoding crashes<br />
** Command Line Module Widget - stand alone widget configured with CLI XML<br />
*** Test version with subclassed module reference: https://github.com/pieper/CTK/tree/cli-widget-reference-subclass<br />
*** improved version using QtGui subclass: https://github.com/pieper/CTK/tree/cli-widget<br />
*** [https://github.com/pieper/CTK/blob/8391b2f54e18e68e6672a4d3a54da38bc9c77b79/Libs/CommandLineModules/Widgets/Testing/Cpp/ctkCmdLineModuleWidgetTest1.cpp#L86 working test code for the module]<br />
* Luca<br />
** Work on refactoring GenerateCLP into a more dynamic structure to support incremental CLI <br />
** https://github.com/lantiga/CLIInterface<br />
<br />
<br />
1:00pm Lunch<br />
<br />
hack, hack, hack...<br />
<br />
* Reminder: Update project status on wiki<br />
** Links to branches, repositories, bug reports<br />
** Screen captures of progress to the Gallery below<br />
** Action photos of hacking in progress...<br />
<br />
== Gallery of Results ==<br />
<br />
<gallery widths=300 px heights=200px perrow=3><br />
Image:Cli-widget-prototype-2012-12-14.png|[https://github.com/pieper/CTK/blob/8391b2f54e18e68e6672a4d3a54da38bc9c77b79/Libs/CommandLineModules/Widgets/Testing/Cpp/ctkCmdLineModuleWidgetTest1.cpp#L86 Example widget generated from XML description.]<br />
</gallery><br />
<br />
== Travel & Hotel ==<br />
<br />
'''Local contact'''<br />
If you have any troubles during your visit, call Alessandro: +39 342 1401554 or Daniele: +39 348 7260365<br />
<br />
'''Airport''' <br />
* [http://www.bologna-airport.it/uk/?LN=UK Bologna G.Marconi (BLQ)]<br />
<br />
'''Transportation on Site'''<br />
<br />
Airport Shuttle from airport to Railway Station (near to meeting location) 6 euro, link: http://www.atc.bo.it/orari/aerobus-airport-railway-station-link<br />
<br />
Taxi from airport to Railway Station 15-20 euro<br />
<br />
<!--Google's public transit search works well in Bologna. The site is about 5 blocks from subway stops and busses. Parking on-site is $10-$15 per day. Cabs are fairly convenient for most trips (perhaps $40 to/from the airport but $10-$15 for trips within town).--><br />
<br />
'''Lodging''' <br />
<br />
There are a lot of hotel options in Bologna.<br />
<br />
Millennium Hotel[http://www.millennhotelbologna.it/en/index.html]: close to the centre and to the central railways station. <br />
<br />
Star Hotel [http://www.starhotels.com/hotels/excelsior/en/home.aspx]: close to the centre and in front of the central railways station. <br />
<br />
Mercure Hotel [http://www.accorhotels.com/it/hotel-1310-mercure-bologna-centro/index.shtml] (Italian link, you need to find the page on your language from the Accor portal) In front of the central railways station.<br />
<br />
Albergo Atlantic [http://www.albergoatlantic.net/ENGLISH/index.html] In the city centre, 10' walking time from the central railways station.<br />
<br />
I Portici Hotel [http://www.iporticihotel.com/en/i-portici-hotel-bologna]10' walking time from the central railways station. <br />
<br />
<br />
<br />
'''Meeting Location''' <br />
<!--* [http://www.spl.harvard.edu/pages/Directions#Getting_to_1249_Boylston_Street. BWH Surgical Planning Laboratory] [http://maps.google.com/maps?q=1249+boylston+street+boston+ma+02215&hl=en&hnear=1249+Boylston+St,+Boston,+Massachusetts+02215&gl=us&t=m&z=16 1249 Boylston Street].--><br />
TBA We are finding a meeting venue that could be in the city centre or in the central station area. <br />
<br />
'''Catering'''<br />
<br />
It will be provided by the meeting venue. <br />
<br />
'''Weather'''<br />
<br />
* Probably not sunny, colder than Italian average :-), even it is quite variable, temperatures can range from 0°C to 10°C (min) and from 5°C to 20°C.</div>Finetjulhttp://www.commontk.org/index.php?title=File:CTK-Hackfest-2012-Bologna-Palazzo_D_Accursio.jpg&diff=1740File:CTK-Hackfest-2012-Bologna-Palazzo D Accursio.jpg2012-12-14T16:14:21Z<p>Finetjul: CTK team in Bologna 2012</p>
<hr />
<div>CTK team in Bologna 2012</div>Finetjulhttp://www.commontk.org/index.php?title=CTK-Hackfest-Dec-2012&diff=1722CTK-Hackfest-Dec-20122012-12-11T17:02:54Z<p>Finetjul: /* Tuesday */</p>
<hr />
<div>== Event pictures ==<br />
Images from the hackfest<br />
{|<br />
|}<br />
<br />
== Introduction ==<br />
<br />
'''Date:''' December 10-14, 2012<br />
<br />
'''Location:''' [http://www.iporticihotel.com/en | Hotel i Portici] in Via Indipendenza , Bologna, Italy, Sala Montagnola (Room) <br />
<br />
'''Goal:''' A follow on to the [[Commontk:Current_events#Past_events|wildly successful previous hackfests!]]<br />
<br />
'''Requirements:''' Attendees must be willing to spend their time during the event writing ctk code that contributes to the main [[CTK-Roadmap | ctk roadmap]]. This means spending the week immersed in C++, Qt, DCMTK, CMake, and related technologies. People who do not feel qualified for this task are politely not invited :)<br />
<br />
'''Group size:''' Maximum 20 participants so we can have a manageable working meeting. The organizing committee will invite and select participants based on input from [[TheTeam]].<br />
<br />
'''Site Hosts:''' Alessandro Chiarini, Daniele Giunchi<br />
<br />
'''Organizing Committee:''' Ivo Wolf, Stephen Aylward, Steve Pieper<br />
<br />
'''Future Events:''' Future hackfests will be announced in advance, and we hope lots of people will be interested in participating. The venue and activities at future hackfests will be determined based on the number of active participants in the project. We welcome participation via the CTK email lists, the source code repository, and this website.<br />
<br />
== Attendees ==<br />
*So far we have received confirmation for the following people (in no particular order). <br />
<br />
'''WE HAVE REACHED THE MAXIMUM NUMBER OF PARTECIPANT - REGISTRATION CLOSED - 16 PARTECIPANTS<br />
'''<br />
<br />
Please fill in your intentions in terms of common accommodation.<br />
<br />
{|class="wikitable alternance" style="text-align:left; border:1px solid black;"<br />
|+ '''''Participants'''''<br />
|-<br />
! scope=col style="background:#cde6f8;"| Name<br />
! scope=col style="background:#cde6f8;"| Organization<br />
|-<br />
|Alessandro Chiarini<br />
|SCS, Bologna IT<br />
|-<br />
|Daniele Giunchi<br />
|SCS, Bologna IT<br />
|-<br />
|Alberto Losi<br />
|SCS, Bologna IT<br />
|-<br />
|Steve Pieper<br />
|Isomics, Inc., Cambridge, MA, USA<br />
|-<br />
| Ivo Wolf<br />
| Mannheim University of Applied Sciences & DKFZ Heidelberg<br />
|-<br />
| Jean-Chistophe Fillion-Robin<br />
| Kitware<br />
|-<br />
| Julien Finet<br />
| Kitware<br />
|-<br />
| Andreas Fetzer<br />
| DKFZ Heidelberg<br />
|-<br />
| Michael Bauer<br />
| DKFZ Heidelberg<br />
|-<br />
| Marco Nolden<br />
| DKFZ Heidelberg<br />
|-<br />
| Sascha Zelzer<br />
| DKFZ Heidelberg<br />
|-<br />
| Florian Vichot<br />
| INRIA<br />
|-<br />
| Yves Martelli<br />
| UPF<br />
|-<br />
| Claire Mouton<br />
| CREATIS<br />
|-<br />
| Miklos Espak<br />
| University College London (UCL)<br />
|-<br />
| Luca Antiga<br />
| Orobix<br />
|-<br />
|}<br />
<br />
<br />
<!--<br />
* People who manifested interest in joining the fest. Please move your names up to the confirmed table, with the details as soon as you can to facilitate discussions with potential hotels.<br />
<br />
{|class="wikitable alternance" style="text-align:left; border:1px solid black;"<br />
|+ '''''Confirmed'''''<br />
|-<br />
! scope=col style="background:#cde6f8;"| Name<br />
! scope=col style="background:#cde6f8;"| Organization<br />
<br />
|}<br />
--><br />
<br />
{{Note}}There were also other invitations sent to active people on the community, and people who recently showed interest. When their intent will be known they will be added to the list.<br />
<br />
== Preparation ==<br />
<br />
Developers should bring a laptop with the [http://github.com/commontk/CTK current CTK source code] downloaded and [[Build_Instructions|built]].<br />
<br />
Use the [http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers CTK developers mailing list] to discuss build issues and topics for ongoing work.<br />
<br />
Phone conferences have been scheduled in the weeks leading to the event:<br />
* To be announced<br />
<br />
== Topics and Projects ==<br />
<br />
<!--==== Roadmap development ====<br />
*As needed, refine the [[CTK-Roadmap|roadmap for the CTK core]].--><br />
<br />
==== DICOM Application Hosting ====<br />
<br />
* Refine, extend, [[DICOM_Application_Hosting_Testing | test]], and integrate with applications<br />
* See also [[CTK-Hackfest-Nov-2011#DICOM_Application_Hosting | (some still open) tasks]] and [[Hackfest_Nice_AppHosting_Progress | progress]] from the last hackfest<br />
* Goal: connect some real code via command line interface<br />
<br />
==== DICOM Database and Networking ====<br />
<br />
* Dig into ongoing developments. See [[CtkDICOM]] for discussion.<br />
* See CTK DICOM support is used in Slicer 4.2<br />
** [http://wiki.slicer.org/slicerWiki/index.php/Documentation/4.2/Modules/DICOM End-user documentation]<br />
** [http://na-mic.org/Bug/search.php?project_id=3&category=Module+DICOM&sticky_issues=on&sortby=last_updated&dir=DESC&hide_status_id=90 Slicer4 DICOM Bugs and Feature Requests]<br />
** SlicerRT Issues:<br />
*** https://www.assembla.com/spaces/slicerrt/tickets/25 - display of ^ (carat character) in ctkDICOMModel<br />
*** https://www.assembla.com/spaces/slicerrt/tickets/153 - extension import failure (slicer issue)<br />
*** https://www.assembla.com/spaces/slicerrt/tickets/36 - non-uniform study information in RT files<br />
<br />
==== QAT ====<br />
Quality Assurance Toolkit -> how to integrate in CTK<br />
<br />
==== Widgets ====<br />
<br />
* Discuss and refine as needed.<br />
* [https://www.assembla.com/spaces/slicerrt/wiki/20120125_Slicer_DICOM_browser_meeting SlicerRt example dicom interfaces discussion]<br />
<br />
==== Tests Framework ====<br />
Try QtTesting with CTK applications<br />
<br />
==== Build Systems & Software process ====<br />
<br />
<!--* <del>Update PythonQt dependency so that CTK can build against Qt 4.8</del><br />
** <del>See [https://github.com/pieper/PythonQt/tree/svn-mirror this experiment] to make a ctk-compatible version of the updated PythonQt - it works, but is not yet fully patched.</del><br />
** <del>[http://my.cdash.org/viewBuildError.php?buildid=362919 Some operator overloading issues in DAH]</del><br />
** Updated PythonQt: [https://github.com/commontk/PythonQt/pull/1 #1], [https://github.com/commontk/PythonQt/pull/2 #2] and [https://github.com/commontk/PythonQt/pull/3 #3] {{done}}<br />
** Updated CTK: [https://github.com/commontk/CTK/issues/189 #189], [https://github.com/commontk/CTK/issues/157 #157] {{done}}<br />
** Updated Slicer [http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=20601 r20601] {{done}}<br />
** Added [https://github.com/commontk/PythonQt#readme documentation] on PythonQt. {{done}}--><br />
<br />
<br />
* Update to [http://git.dcmtk.org/web?p=dcmtk.git;a=summary latest DCMTK]<br />
** includes dcmrt<br />
** need to pick a commit to standardize on<br />
** investigate shared/static library building. (Static instances of classes getting destructed in wrong order)<br />
** incorporate version checking <br />
*** build ctk against head or snapshot version<br />
<br />
* Prepare Debian packaging (Marco)<br />
** Resolve outstanding issues<br />
** Make CTK also build with latest stable DCMTK release (3.6.0)<br />
<br />
* Evaluate Qt5 (Sascha)<br />
<br />
* <del>Setup developer package</del><br />
** See [https://github.com/commontk/CTK/issues/10 #10] and [https://github.com/commontk/CTK/issues/65 #65]<br />
** Work in progress - See topic [https://github.com/jcfr/CTK/compare/65-packaging-support 65-packaging-support]<br />
<br />
<br />
<!-- * <del>Talk with Dominique (Debian packager) to understand what is missing</del> See https://github.com/commontk/CTK/pull/158<br />
** <del>Build from upstream PythonQt (to be done this week)</del> {{done}} Few patches still need to be contributed upstream. See [https://github.com/commontk/PythonQt#readme documentation]--><br />
** Release a version of CTK (Work on policy this week and maybe release this week).<br />
<br />
<!--* <del>Generalize documentation of CMake macro so that it can be-used.</del>--><br />
** Work in progress - See [https://github.com/jcfr/CTK/compare/master...cmake-doxygen-filter-reuse cmake-doxygen-filter-reuse]<br />
<br />
==== Command Line Modules ====<br />
* Extract CLI interface <br />
** Unify VPH and Slicer refactoring<br />
* Qt SEM XML widget<br />
* Follow on interoperability tests done in [[CLI_In_Context]]<br />
* Refine CLI XML standard<br />
** Text format for description/help/acknowledgement/resources: plain text ? html ? structured text ? github markup ?<br />
** Multiple categories per module ?<br />
** CLI XML versioning.<br />
<br />
== Agenda ==<br />
<br />
==== Monday ====<br />
<!--Start at 9:00am<br />
Arrive and get settled in the morning. Discussion of plans for the week will get underway when everyone has arrived.<br />
Review of goals and ideas--><br />
<br />
10:30am Welcome<br />
<br />
10:45 - 12:00 Round table: everyone presents 10-15 minutes how CTK is used in their project. And what's new in CTK (what has been added since previous hackfest)<br />
<br />
: CTK in use:<br />
:* MSVTK: [http://www.msvtk.org/content/electro-physiological-dataset-application ECG], HAI, Buttons (DG/AL, JF) (10m)<br />
:** Give your feedback: http://www.msvtk.org/content/evaluation<br />
:* [http://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Modules/DICOM DICOM in Slicer] (SP) (5m)<br />
:* [http://www.commontk.org/index.php/Documentation/CLI_In_Context CLI in Gimias, MITK, NiftyView, Slicer] (SZ, YM, ME) (10m)<br />
:* CTK in MITK (MN) (5m)<br />
: What's new since last hackfest?<br />
:* [http://www.commontk.org/index.php/Documentation/Command_Line_Interface CLI] in CTK (SZ, YM) (15m)<br />
:* DICOM Tag caching (SP) (5m)<br />
:* [http://www.commontk.org/index.php/Documentation/ImageGallery Widgets improvements] in CTK(JF, JCFR) (5m)<br />
:** New: ctkExpandableWidget/ctkSizeGrip, ctkPathListWidget<br />
:** Tweaks: ctkCoordinatesWidget (normalized), ctkPathLineEdit (sizeHint), ctkPanelSettings (user/revision settings), <br />
<br />
1:00pm Lunch<br />
<br />
: Discuss plans/priorities for hacking<br />
<br />
3:30pm Coffee Break<br />
<br />
5:00pm Close<br />
<br />
==== Tuesday ====<br />
<!--hack, hack, hack...--><br />
9:30am Welcome<br />
* Review of Topics and demos<br />
11:00am Coffee Break<br />
* Discussion of goals for the week and breakout into working groups<br />
<br />
* Command Line Module Working Group Topics<br />
** Using ctk CLI infrastructure in Slicer (Jc, Sascha, Julien)<br />
** CLI Incremental Communication (Luca, Steve)<br />
** MAF CLI Integration (Daniele, Alberto)<br />
** PythonQt wrapping of ctkCLI<br />
** DAH and CLI (Ivo)<br />
** CLI Compatibility Testing (Yves)<br />
** CLI In MedINRIA (Florian)<br />
* CTK Qt Testing and Quality Assurance Toolkit (Claire, Andreas, Julien, Jc)<br />
* Transfer function interaction (Julien, Florian)<br />
** Publish previous CTK hackfest work into VTK<br />
** Minor interaction tweaks<br />
<br />
1:00pm Lunch<br />
<br />
5:00pm Close<br />
<br />
==== Wednesday ====<br />
<!--Review of progress--><br />
9:30am Welcome<br />
<br />
11:00am Coffee Break<br />
<br />
1:00pm Lunch<br />
<br />
5:00pm Close<br />
<br />
==== Thursday ====<br />
<!--Hack, hack, hack...--><br />
9:30am Welcome<br />
<br />
11:00am Coffee Break<br />
<br />
1:00pm Lunch<br />
<br />
5:00pm Close<br />
<br />
==== Friday ====<br />
<!--* 10:30 Review hacking progress<br />
*Tour of [http://ncigt.org/pages/AMIGO AMIGO].<br />
** Leave 1249 by 12:00. Stop for lunch on the way and meet Isaiah at AMIGO at 2:00.<br />
** Turn in badges - do not plan to return to 1249.<br />
End by 5:00pm--><br />
9:30am Welcome<br />
<br />
11:00am Coffee Break<br />
<br />
1:00pm Lunch<br />
<br />
2:00pm Wrap up discussion and Meeting Closes<br />
* Update project status on wiki<br />
<br />
== Travel & Hotel ==<br />
<br />
'''Local contact'''<br />
If you have any troubles during your visit, call Alessandro: +39 342 1401554 or Daniele: +39 348 7260365<br />
<br />
'''Airport''' <br />
* [http://www.bologna-airport.it/uk/?LN=UK Bologna G.Marconi (BLQ)]<br />
<br />
'''Transportation on Site'''<br />
<br />
Airport Shuttle from airport to Railway Station (near to meeting location) 6 euro, link: http://www.atc.bo.it/orari/aerobus-airport-railway-station-link<br />
<br />
Taxi from airport to Railway Station 15-20 euro<br />
<br />
<!--Google's public transit search works well in Bologna. The site is about 5 blocks from subway stops and busses. Parking on-site is $10-$15 per day. Cabs are fairly convenient for most trips (perhaps $40 to/from the airport but $10-$15 for trips within town).--><br />
<br />
'''Lodging''' <br />
<br />
There are a lot of hotel options in Bologna.<br />
<br />
Millennium Hotel[http://www.millennhotelbologna.it/en/index.html]: close to the centre and to the central railways station. <br />
<br />
Star Hotel [http://www.starhotels.com/hotels/excelsior/en/home.aspx]: close to the centre and in front of the central railways station. <br />
<br />
Mercure Hotel [http://www.accorhotels.com/it/hotel-1310-mercure-bologna-centro/index.shtml] (Italian link, you need to find the page on your language from the Accor portal) In front of the central railways station.<br />
<br />
Albergo Atlantic [http://www.albergoatlantic.net/ENGLISH/index.html] In the city centre, 10' walking time from the central railways station.<br />
<br />
I Portici Hotel [http://www.iporticihotel.com/en/i-portici-hotel-bologna]10' walking time from the central railways station. <br />
<br />
<br />
<br />
'''Meeting Location''' <br />
<!--* [http://www.spl.harvard.edu/pages/Directions#Getting_to_1249_Boylston_Street. BWH Surgical Planning Laboratory] [http://maps.google.com/maps?q=1249+boylston+street+boston+ma+02215&hl=en&hnear=1249+Boylston+St,+Boston,+Massachusetts+02215&gl=us&t=m&z=16 1249 Boylston Street].--><br />
TBA We are finding a meeting venue that could be in the city centre or in the central station area. <br />
<br />
'''Catering'''<br />
<br />
It will be provided by the meeting venue. <br />
<br />
'''Weather'''<br />
<br />
* Probably not sunny, colder than Italian average :-), even it is quite variable, temperatures can range from 0°C to 10°C (min) and from 5°C to 20°C.</div>Finetjulhttp://www.commontk.org/index.php?title=CTK-Hackfest-Dec-2012&diff=1721CTK-Hackfest-Dec-20122012-12-11T16:21:53Z<p>Finetjul: /* Attendees */</p>
<hr />
<div>== Event pictures ==<br />
Images from the hackfest<br />
{|<br />
|}<br />
<br />
== Introduction ==<br />
<br />
'''Date:''' December 10-14, 2012<br />
<br />
'''Location:''' [http://www.iporticihotel.com/en | Hotel i Portici] in Via Indipendenza , Bologna, Italy, Sala Montagnola (Room) <br />
<br />
'''Goal:''' A follow on to the [[Commontk:Current_events#Past_events|wildly successful previous hackfests!]]<br />
<br />
'''Requirements:''' Attendees must be willing to spend their time during the event writing ctk code that contributes to the main [[CTK-Roadmap | ctk roadmap]]. This means spending the week immersed in C++, Qt, DCMTK, CMake, and related technologies. People who do not feel qualified for this task are politely not invited :)<br />
<br />
'''Group size:''' Maximum 20 participants so we can have a manageable working meeting. The organizing committee will invite and select participants based on input from [[TheTeam]].<br />
<br />
'''Site Hosts:''' Alessandro Chiarini, Daniele Giunchi<br />
<br />
'''Organizing Committee:''' Ivo Wolf, Stephen Aylward, Steve Pieper<br />
<br />
'''Future Events:''' Future hackfests will be announced in advance, and we hope lots of people will be interested in participating. The venue and activities at future hackfests will be determined based on the number of active participants in the project. We welcome participation via the CTK email lists, the source code repository, and this website.<br />
<br />
== Attendees ==<br />
*So far we have received confirmation for the following people (in no particular order). <br />
<br />
'''WE HAVE REACHED THE MAXIMUM NUMBER OF PARTECIPANT - REGISTRATION CLOSED - 16 PARTECIPANTS<br />
'''<br />
<br />
Please fill in your intentions in terms of common accommodation.<br />
<br />
{|class="wikitable alternance" style="text-align:left; border:1px solid black;"<br />
|+ '''''Participants'''''<br />
|-<br />
! scope=col style="background:#cde6f8;"| Name<br />
! scope=col style="background:#cde6f8;"| Organization<br />
|-<br />
|Alessandro Chiarini<br />
|SCS, Bologna IT<br />
|-<br />
|Daniele Giunchi<br />
|SCS, Bologna IT<br />
|-<br />
|Alberto Losi<br />
|SCS, Bologna IT<br />
|-<br />
|Steve Pieper<br />
|Isomics, Inc., Cambridge, MA, USA<br />
|-<br />
| Ivo Wolf<br />
| Mannheim University of Applied Sciences & DKFZ Heidelberg<br />
|-<br />
| Jean-Chistophe Fillion-Robin<br />
| Kitware<br />
|-<br />
| Julien Finet<br />
| Kitware<br />
|-<br />
| Andreas Fetzer<br />
| DKFZ Heidelberg<br />
|-<br />
| Michael Bauer<br />
| DKFZ Heidelberg<br />
|-<br />
| Marco Nolden<br />
| DKFZ Heidelberg<br />
|-<br />
| Sascha Zelzer<br />
| DKFZ Heidelberg<br />
|-<br />
| Florian Vichot<br />
| INRIA<br />
|-<br />
| Yves Martelli<br />
| UPF<br />
|-<br />
| Claire Mouton<br />
| CREATIS<br />
|-<br />
| Miklos Espak<br />
| University College London (UCL)<br />
|-<br />
| Luca Antiga<br />
| Orobix<br />
|-<br />
|}<br />
<br />
<br />
<!--<br />
* People who manifested interest in joining the fest. Please move your names up to the confirmed table, with the details as soon as you can to facilitate discussions with potential hotels.<br />
<br />
{|class="wikitable alternance" style="text-align:left; border:1px solid black;"<br />
|+ '''''Confirmed'''''<br />
|-<br />
! scope=col style="background:#cde6f8;"| Name<br />
! scope=col style="background:#cde6f8;"| Organization<br />
<br />
|}<br />
--><br />
<br />
{{Note}}There were also other invitations sent to active people on the community, and people who recently showed interest. When their intent will be known they will be added to the list.<br />
<br />
== Preparation ==<br />
<br />
Developers should bring a laptop with the [http://github.com/commontk/CTK current CTK source code] downloaded and [[Build_Instructions|built]].<br />
<br />
Use the [http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers CTK developers mailing list] to discuss build issues and topics for ongoing work.<br />
<br />
Phone conferences have been scheduled in the weeks leading to the event:<br />
* To be announced<br />
<br />
== Topics and Projects ==<br />
<br />
<!--==== Roadmap development ====<br />
*As needed, refine the [[CTK-Roadmap|roadmap for the CTK core]].--><br />
<br />
==== DICOM Application Hosting ====<br />
<br />
* Refine, extend, [[DICOM_Application_Hosting_Testing | test]], and integrate with applications<br />
* See also [[CTK-Hackfest-Nov-2011#DICOM_Application_Hosting | (some still open) tasks]] and [[Hackfest_Nice_AppHosting_Progress | progress]] from the last hackfest<br />
* Goal: connect some real code via command line interface<br />
<br />
==== DICOM Database and Networking ====<br />
<br />
* Dig into ongoing developments. See [[CtkDICOM]] for discussion.<br />
* See CTK DICOM support is used in Slicer 4.2<br />
** [http://wiki.slicer.org/slicerWiki/index.php/Documentation/4.2/Modules/DICOM End-user documentation]<br />
** [http://na-mic.org/Bug/search.php?project_id=3&category=Module+DICOM&sticky_issues=on&sortby=last_updated&dir=DESC&hide_status_id=90 Slicer4 DICOM Bugs and Feature Requests]<br />
** SlicerRT Issues:<br />
*** https://www.assembla.com/spaces/slicerrt/tickets/25 - display of ^ (carat character) in ctkDICOMModel<br />
*** https://www.assembla.com/spaces/slicerrt/tickets/153 - extension import failure (slicer issue)<br />
*** https://www.assembla.com/spaces/slicerrt/tickets/36 - non-uniform study information in RT files<br />
<br />
==== QAT ====<br />
Quality Assurance Toolkit -> how to integrate in CTK<br />
<br />
==== Widgets ====<br />
<br />
* Discuss and refine as needed.<br />
* [https://www.assembla.com/spaces/slicerrt/wiki/20120125_Slicer_DICOM_browser_meeting SlicerRt example dicom interfaces discussion]<br />
<br />
==== Tests Framework ====<br />
Try QtTesting with CTK applications<br />
<br />
==== Build Systems & Software process ====<br />
<br />
<!--* <del>Update PythonQt dependency so that CTK can build against Qt 4.8</del><br />
** <del>See [https://github.com/pieper/PythonQt/tree/svn-mirror this experiment] to make a ctk-compatible version of the updated PythonQt - it works, but is not yet fully patched.</del><br />
** <del>[http://my.cdash.org/viewBuildError.php?buildid=362919 Some operator overloading issues in DAH]</del><br />
** Updated PythonQt: [https://github.com/commontk/PythonQt/pull/1 #1], [https://github.com/commontk/PythonQt/pull/2 #2] and [https://github.com/commontk/PythonQt/pull/3 #3] {{done}}<br />
** Updated CTK: [https://github.com/commontk/CTK/issues/189 #189], [https://github.com/commontk/CTK/issues/157 #157] {{done}}<br />
** Updated Slicer [http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=20601 r20601] {{done}}<br />
** Added [https://github.com/commontk/PythonQt#readme documentation] on PythonQt. {{done}}--><br />
<br />
<br />
* Update to [http://git.dcmtk.org/web?p=dcmtk.git;a=summary latest DCMTK]<br />
** includes dcmrt<br />
** need to pick a commit to standardize on<br />
** investigate shared/static library building. (Static instances of classes getting destructed in wrong order)<br />
** incorporate version checking <br />
*** build ctk against head or snapshot version<br />
<br />
* Prepare Debian packaging (Marco)<br />
** Resolve outstanding issues<br />
** Make CTK also build with latest stable DCMTK release (3.6.0)<br />
<br />
* Evaluate Qt5 (Sascha)<br />
<br />
* <del>Setup developer package</del><br />
** See [https://github.com/commontk/CTK/issues/10 #10] and [https://github.com/commontk/CTK/issues/65 #65]<br />
** Work in progress - See topic [https://github.com/jcfr/CTK/compare/65-packaging-support 65-packaging-support]<br />
<br />
<br />
<!-- * <del>Talk with Dominique (Debian packager) to understand what is missing</del> See https://github.com/commontk/CTK/pull/158<br />
** <del>Build from upstream PythonQt (to be done this week)</del> {{done}} Few patches still need to be contributed upstream. See [https://github.com/commontk/PythonQt#readme documentation]--><br />
** Release a version of CTK (Work on policy this week and maybe release this week).<br />
<br />
<!--* <del>Generalize documentation of CMake macro so that it can be-used.</del>--><br />
** Work in progress - See [https://github.com/jcfr/CTK/compare/master...cmake-doxygen-filter-reuse cmake-doxygen-filter-reuse]<br />
<br />
==== Command Line Modules ====<br />
* Extract CLI interface <br />
** Unify VPH and Slicer refactoring<br />
* Qt SEM XML widget<br />
* Follow on interoperability tests done in [[CLI_In_Context]]<br />
* Refine CLI XML standard<br />
** Text format for description/help/acknowledgement/resources: plain text ? html ? structured text ? github markup ?<br />
** Multiple categories per module ?<br />
** CLI XML versioning.<br />
<br />
== Agenda ==<br />
<br />
==== Monday ====<br />
<!--Start at 9:00am<br />
Arrive and get settled in the morning. Discussion of plans for the week will get underway when everyone has arrived.<br />
Review of goals and ideas--><br />
<br />
10:30am Welcome<br />
<br />
10:45 - 12:00 Round table: everyone presents 10-15 minutes how CTK is used in their project. And what's new in CTK (what has been added since previous hackfest)<br />
<br />
: CTK in use:<br />
:* MSVTK: [http://www.msvtk.org/content/electro-physiological-dataset-application ECG], HAI, Buttons (DG/AL, JF) (10m)<br />
:** Give your feedback: http://www.msvtk.org/content/evaluation<br />
:* [http://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Modules/DICOM DICOM in Slicer] (SP) (5m)<br />
:* [http://www.commontk.org/index.php/Documentation/CLI_In_Context CLI in Gimias, MITK, NiftyView, Slicer] (SZ, YM, ME) (10m)<br />
:* CTK in MITK (MN) (5m)<br />
: What's new since last hackfest?<br />
:* [http://www.commontk.org/index.php/Documentation/Command_Line_Interface CLI] in CTK (SZ, YM) (15m)<br />
:* DICOM Tag caching (SP) (5m)<br />
:* [http://www.commontk.org/index.php/Documentation/ImageGallery Widgets improvements] in CTK(JF, JCFR) (5m)<br />
:** New: ctkExpandableWidget/ctkSizeGrip, ctkPathListWidget<br />
:** Tweaks: ctkCoordinatesWidget (normalized), ctkPathLineEdit (sizeHint), ctkPanelSettings (user/revision settings), <br />
<br />
1:00pm Lunch<br />
<br />
: Discuss plans/priorities for hacking<br />
<br />
3:30pm Coffee Break<br />
<br />
5:00pm Close<br />
<br />
==== Tuesday ====<br />
<!--hack, hack, hack...--><br />
9:30am Welcome<br />
* Review of Topics and demos<br />
11:00am Coffee Break<br />
* Discussion of goals for the week and breakout into working groups<br />
<br />
* Command Line Module Working Group Topics<br />
** Using ctk CLI infrastructure in Slicer (Jc, Sascha)<br />
** CLI Incremental Communication (Luca, Steve)<br />
** MAF CLI Integration (Daniele, Alberto)<br />
** PythonQt wrapping of ctkCLI<br />
** DAH and CLI (Ivo)<br />
** CLI Compatibility Testing (Yves)<br />
** CLI In MedINRIA (Florian)<br />
* CTK Qt Testing and Quality Assurance Toolkit<br />
<br />
1:00pm Lunch<br />
<br />
5:00pm Close<br />
<br />
==== Wednesday ====<br />
<!--Review of progress--><br />
9:30am Welcome<br />
<br />
11:00am Coffee Break<br />
<br />
1:00pm Lunch<br />
<br />
5:00pm Close<br />
<br />
==== Thursday ====<br />
<!--Hack, hack, hack...--><br />
9:30am Welcome<br />
<br />
11:00am Coffee Break<br />
<br />
1:00pm Lunch<br />
<br />
5:00pm Close<br />
<br />
==== Friday ====<br />
<!--* 10:30 Review hacking progress<br />
*Tour of [http://ncigt.org/pages/AMIGO AMIGO].<br />
** Leave 1249 by 12:00. Stop for lunch on the way and meet Isaiah at AMIGO at 2:00.<br />
** Turn in badges - do not plan to return to 1249.<br />
End by 5:00pm--><br />
9:30am Welcome<br />
<br />
11:00am Coffee Break<br />
<br />
1:00pm Lunch<br />
<br />
2:00pm Wrap up discussion and Meeting Closes<br />
* Update project status on wiki<br />
<br />
== Travel & Hotel ==<br />
<br />
'''Local contact'''<br />
If you have any troubles during your visit, call Alessandro: +39 342 1401554 or Daniele: +39 348 7260365<br />
<br />
'''Airport''' <br />
* [http://www.bologna-airport.it/uk/?LN=UK Bologna G.Marconi (BLQ)]<br />
<br />
'''Transportation on Site'''<br />
<br />
Airport Shuttle from airport to Railway Station (near to meeting location) 6 euro, link: http://www.atc.bo.it/orari/aerobus-airport-railway-station-link<br />
<br />
Taxi from airport to Railway Station 15-20 euro<br />
<br />
<!--Google's public transit search works well in Bologna. The site is about 5 blocks from subway stops and busses. Parking on-site is $10-$15 per day. Cabs are fairly convenient for most trips (perhaps $40 to/from the airport but $10-$15 for trips within town).--><br />
<br />
'''Lodging''' <br />
<br />
There are a lot of hotel options in Bologna.<br />
<br />
Millennium Hotel[http://www.millennhotelbologna.it/en/index.html]: close to the centre and to the central railways station. <br />
<br />
Star Hotel [http://www.starhotels.com/hotels/excelsior/en/home.aspx]: close to the centre and in front of the central railways station. <br />
<br />
Mercure Hotel [http://www.accorhotels.com/it/hotel-1310-mercure-bologna-centro/index.shtml] (Italian link, you need to find the page on your language from the Accor portal) In front of the central railways station.<br />
<br />
Albergo Atlantic [http://www.albergoatlantic.net/ENGLISH/index.html] In the city centre, 10' walking time from the central railways station.<br />
<br />
I Portici Hotel [http://www.iporticihotel.com/en/i-portici-hotel-bologna]10' walking time from the central railways station. <br />
<br />
<br />
<br />
'''Meeting Location''' <br />
<!--* [http://www.spl.harvard.edu/pages/Directions#Getting_to_1249_Boylston_Street. BWH Surgical Planning Laboratory] [http://maps.google.com/maps?q=1249+boylston+street+boston+ma+02215&hl=en&hnear=1249+Boylston+St,+Boston,+Massachusetts+02215&gl=us&t=m&z=16 1249 Boylston Street].--><br />
TBA We are finding a meeting venue that could be in the city centre or in the central station area. <br />
<br />
'''Catering'''<br />
<br />
It will be provided by the meeting venue. <br />
<br />
'''Weather'''<br />
<br />
* Probably not sunny, colder than Italian average :-), even it is quite variable, temperatures can range from 0°C to 10°C (min) and from 5°C to 20°C.</div>Finetjulhttp://www.commontk.org/index.php?title=CTK-Hackfest-Dec-2012&diff=1718CTK-Hackfest-Dec-20122012-12-11T10:12:08Z<p>Finetjul: /* Monday */</p>
<hr />
<div>== Event pictures ==<br />
Images from the hackfest<br />
{|<br />
|}<br />
<br />
== Introduction ==<br />
<br />
'''Date:''' December 10-14, 2012<br />
<br />
'''Location:''' [http://www.iporticihotel.com/en | Hotel i Portici] in Via Indipendenza , Bologna, Italy, Sala Montagnola (Room) <br />
<br />
'''Goal:''' A follow on to the [[Commontk:Current_events#Past_events|wildly successful previous hackfests!]]<br />
<br />
'''Requirements:''' Attendees must be willing to spend their time during the event writing ctk code that contributes to the main [[CTK-Roadmap | ctk roadmap]]. This means spending the week immersed in C++, Qt, DCMTK, CMake, and related technologies. People who do not feel qualified for this task are politely not invited :)<br />
<br />
'''Group size:''' Maximum 20 participants so we can have a manageable working meeting. The organizing committee will invite and select participants based on input from [[TheTeam]].<br />
<br />
'''Site Hosts:''' Alessandro Chiarini, Daniele Giunchi<br />
<br />
'''Organizing Committee:''' Ivo Wolf, Stephen Aylward, Steve Pieper<br />
<br />
'''Future Events:''' Future hackfests will be announced in advance, and we hope lots of people will be interested in participating. The venue and activities at future hackfests will be determined based on the number of active participants in the project. We welcome participation via the CTK email lists, the source code repository, and this website.<br />
<br />
== Attendees ==<br />
*So far we have received confirmation for the following people (in no particular order). <br />
<br />
'''WE HAVE REACHED THE MAXIMUM NUMBER OF PARTECIPANT - REGISTRATION CLOSED - 16 PARTECIPANTS<br />
'''<br />
<br />
Please fill in your intentions in terms of common accommodation.<br />
<br />
{|class="wikitable alternance" style="text-align:left; border:1px solid black;"<br />
|+ '''''Participants'''''<br />
|-<br />
! scope=col style="background:#cde6f8;"| Name<br />
! scope=col style="background:#cde6f8;"| Organization<br />
|-<br />
|Alessandro Chiarini<br />
|SCS, Bologna IT<br />
|-<br />
|Daniele Giunchi<br />
|SCS, Bologna IT<br />
|-<br />
|Alberto Losi<br />
|SCS, Bologna IT<br />
|-<br />
|Steve Pieper<br />
|Isomics, Inc., Cambridge, MA, USA<br />
|-<br />
| Ivo Wolf<br />
| Mannheim University of Applied Sciences & DKFZ Heidelberg<br />
|-<br />
| Jean-Chistophe Fillion-Robin<br />
| Kitware<br />
|-<br />
| Julien Finet<br />
| Kitware<br />
|-<br />
| Andreas Fetzer<br />
| DKFZ Heidelberg<br />
|-<br />
| Michael Bauer<br />
| DKFZ Heidelberg<br />
|-<br />
| Marco Nolden<br />
| DKFZ Heidelberg<br />
|-<br />
| Sascha Zelzer<br />
| DKFZ Heidelberg<br />
|-<br />
| Florian Vichot<br />
| INRIA<br />
|-<br />
| Yves Martelli<br />
| UPF<br />
|-<br />
| Claire Mouton<br />
| CREATIS<br />
|-<br />
|-<br />
| Miklos Espak<br />
| University College London (UCL)<br />
|-<br />
|}<br />
<br />
<br />
<!--<br />
* People who manifested interest in joining the fest. Please move your names up to the confirmed table, with the details as soon as you can to facilitate discussions with potential hotels.<br />
<br />
{|class="wikitable alternance" style="text-align:left; border:1px solid black;"<br />
|+ '''''Confirmed'''''<br />
|-<br />
! scope=col style="background:#cde6f8;"| Name<br />
! scope=col style="background:#cde6f8;"| Organization<br />
<br />
|}<br />
--><br />
<br />
{{Note}}There were also other invitations sent to active people on the community, and people who recently showed interest. When their intent will be known they will be added to the list.<br />
<br />
== Preparation ==<br />
<br />
Developers should bring a laptop with the [http://github.com/commontk/CTK current CTK source code] downloaded and [[Build_Instructions|built]].<br />
<br />
Use the [http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers CTK developers mailing list] to discuss build issues and topics for ongoing work.<br />
<br />
Phone conferences have been scheduled in the weeks leading to the event:<br />
* To be announced<br />
<br />
== Topics and Projects ==<br />
<br />
<!--==== Roadmap development ====<br />
*As needed, refine the [[CTK-Roadmap|roadmap for the CTK core]].--><br />
<br />
==== DICOM Application Hosting ====<br />
<br />
* Refine, extend, [[DICOM_Application_Hosting_Testing | test]], and integrate with applications<br />
* See also [[CTK-Hackfest-Nov-2011#DICOM_Application_Hosting | (some still open) tasks]] and [[Hackfest_Nice_AppHosting_Progress | progress]] from the last hackfest<br />
* Goal: connect some real code via command line interface<br />
<br />
==== DICOM Database and Networking ====<br />
<br />
* Dig into ongoing developments. See [[CtkDICOM]] for discussion.<br />
* See CTK DICOM support is used in Slicer 4.2<br />
** [http://wiki.slicer.org/slicerWiki/index.php/Documentation/4.2/Modules/DICOM End-user documentation]<br />
** [http://na-mic.org/Bug/search.php?project_id=3&category=Module+DICOM&sticky_issues=on&sortby=last_updated&dir=DESC&hide_status_id=90 Slicer4 DICOM Bugs and Feature Requests]<br />
** SlicerRT Issues:<br />
*** https://www.assembla.com/spaces/slicerrt/tickets/25 - display of ^ (carat character) in ctkDICOMModel<br />
*** https://www.assembla.com/spaces/slicerrt/tickets/153 - extension import failure (slicer issue)<br />
*** https://www.assembla.com/spaces/slicerrt/tickets/36 - non-uniform study information in RT files<br />
<br />
==== QAT ====<br />
Quality Assurance Toolkit -> how to integrate in CTK<br />
<br />
==== Widgets ====<br />
<br />
* Discuss and refine as needed.<br />
* [https://www.assembla.com/spaces/slicerrt/wiki/20120125_Slicer_DICOM_browser_meeting SlicerRt example dicom interfaces discussion]<br />
<br />
==== Tests Framework ====<br />
Try QtTesting with CTK applications<br />
<br />
==== Build Systems & Software process ====<br />
<br />
<!--* <del>Update PythonQt dependency so that CTK can build against Qt 4.8</del><br />
** <del>See [https://github.com/pieper/PythonQt/tree/svn-mirror this experiment] to make a ctk-compatible version of the updated PythonQt - it works, but is not yet fully patched.</del><br />
** <del>[http://my.cdash.org/viewBuildError.php?buildid=362919 Some operator overloading issues in DAH]</del><br />
** Updated PythonQt: [https://github.com/commontk/PythonQt/pull/1 #1], [https://github.com/commontk/PythonQt/pull/2 #2] and [https://github.com/commontk/PythonQt/pull/3 #3] {{done}}<br />
** Updated CTK: [https://github.com/commontk/CTK/issues/189 #189], [https://github.com/commontk/CTK/issues/157 #157] {{done}}<br />
** Updated Slicer [http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=20601 r20601] {{done}}<br />
** Added [https://github.com/commontk/PythonQt#readme documentation] on PythonQt. {{done}}--><br />
<br />
<br />
* Update to [http://git.dcmtk.org/web?p=dcmtk.git;a=summary latest DCMTK]<br />
** includes dcmrt<br />
** need to pick a commit to standardize on<br />
** investigate shared/static library building. (Static instances of classes getting destructed in wrong order)<br />
** incorporate version checking <br />
*** build ctk against head or snapshot version<br />
<br />
* Prepare Debian packaging (Marco)<br />
** Resolve outstanding issues<br />
** Make CTK also build with latest stable DCMTK release (3.6.0)<br />
<br />
* Evaluate Qt5 (Sascha)<br />
<br />
* <del>Setup developer package</del><br />
** See [https://github.com/commontk/CTK/issues/10 #10] and [https://github.com/commontk/CTK/issues/65 #65]<br />
** Work in progress - See topic [https://github.com/jcfr/CTK/compare/65-packaging-support 65-packaging-support]<br />
<br />
<br />
<!-- * <del>Talk with Dominique (Debian packager) to understand what is missing</del> See https://github.com/commontk/CTK/pull/158<br />
** <del>Build from upstream PythonQt (to be done this week)</del> {{done}} Few patches still need to be contributed upstream. See [https://github.com/commontk/PythonQt#readme documentation]--><br />
** Release a version of CTK (Work on policy this week and maybe release this week).<br />
<br />
<!--* <del>Generalize documentation of CMake macro so that it can be-used.</del>--><br />
** Work in progress - See [https://github.com/jcfr/CTK/compare/master...cmake-doxygen-filter-reuse cmake-doxygen-filter-reuse]<br />
<br />
==== Command Line Modules ====<br />
* Extract CLI interface <br />
** Unify VPH and Slicer refactoring<br />
* Qt SEM XML widget<br />
* Follow on interoperability tests done in [[CLI_In_Context]]<br />
* Refine CLI XML standard<br />
** Text format for description/help/acknowledgement/resources: plain text ? html ? structured text ? github markup ?<br />
** Multiple categories per module ?<br />
** CLI XML versioning.<br />
<br />
== Agenda ==<br />
<br />
==== Monday ====<br />
<!--Start at 9:00am<br />
Arrive and get settled in the morning. Discussion of plans for the week will get underway when everyone has arrived.<br />
Review of goals and ideas--><br />
<br />
10:30am Welcome<br />
<br />
10:45 - 12:00 Round table: everyone presents 10-15 minutes how CTK is used in their project. And what's new in CTK (what has been added since previous hackfest)<br />
<br />
: CTK in use:<br />
:* MSVTK: [http://www.msvtk.org/content/electro-physiological-dataset-application ECG], HAI, Buttons (DG/AL, JF) (10m)<br />
:** Give your feedback: http://www.msvtk.org/content/evaluation<br />
:* [http://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Modules/DICOM DICOM in Slicer] (SP) (5m)<br />
:* [http://www.commontk.org/index.php/Documentation/CLI_In_Context CLI in Gimias, MITK, NiftyView, Slicer] (SZ, YM, ME) (10m)<br />
:* CTK in MITK (MN) (5m)<br />
: What's new since last hackfest?<br />
:* [http://www.commontk.org/index.php/Documentation/Command_Line_Interface CLI] in CTK (SZ, YM) (15m)<br />
:* DICOM Tag caching (SP) (5m)<br />
:* [http://www.commontk.org/index.php/Documentation/ImageGallery Widgets improvements] in CTK(JF, JCFR) (5m)<br />
:** New: ctkExpandableWidget/ctkSizeGrip, ctkPathListWidget<br />
:** Tweaks: ctkCoordinatesWidget (normalized), ctkPathLineEdit (sizeHint), ctkPanelSettings (user/revision settings), <br />
<br />
1:00pm Lunch<br />
<br />
: Discuss plans/priorities for hacking<br />
<br />
3:30pm Coffee Break<br />
<br />
5:00pm Close<br />
<br />
==== Tuesday ====<br />
<!--hack, hack, hack...--><br />
9:30am Welcome<br />
<br />
11:00am Coffee Break<br />
<br />
1:00pm Lunch<br />
<br />
5:00pm Close<br />
<br />
==== Wednesday ====<br />
<!--Review of progress--><br />
9:30am Welcome<br />
<br />
11:00am Coffee Break<br />
<br />
1:00pm Lunch<br />
<br />
5:00pm Close<br />
<br />
==== Thursday ====<br />
<!--Hack, hack, hack...--><br />
9:30am Welcome<br />
<br />
11:00am Coffee Break<br />
<br />
1:00pm Lunch<br />
<br />
5:00pm Close<br />
<br />
==== Friday ====<br />
<!--* 10:30 Review hacking progress<br />
*Tour of [http://ncigt.org/pages/AMIGO AMIGO].<br />
** Leave 1249 by 12:00. Stop for lunch on the way and meet Isaiah at AMIGO at 2:00.<br />
** Turn in badges - do not plan to return to 1249.<br />
End by 5:00pm--><br />
9:30am Welcome<br />
<br />
11:00am Coffee Break<br />
<br />
1:00pm Lunch<br />
<br />
2:00pm Wrap up discussion and Meeting Closes<br />
* Update project status on wiki<br />
<br />
== Travel & Hotel ==<br />
<br />
'''Local contact'''<br />
If you have any troubles during your visit, call Alessandro: +39 342 1401554 or Daniele: +39 348 7260365<br />
<br />
'''Airport''' <br />
* [http://www.bologna-airport.it/uk/?LN=UK Bologna G.Marconi (BLQ)]<br />
<br />
'''Transportation on Site'''<br />
<br />
Airport Shuttle from airport to Railway Station (near to meeting location) 6 euro, link: http://www.atc.bo.it/orari/aerobus-airport-railway-station-link<br />
<br />
Taxi from airport to Railway Station 15-20 euro<br />
<br />
<!--Google's public transit search works well in Bologna. The site is about 5 blocks from subway stops and busses. Parking on-site is $10-$15 per day. Cabs are fairly convenient for most trips (perhaps $40 to/from the airport but $10-$15 for trips within town).--><br />
<br />
'''Lodging''' <br />
<br />
There are a lot of hotel options in Bologna.<br />
<br />
Millennium Hotel[http://www.millennhotelbologna.it/en/index.html]: close to the centre and to the central railways station. <br />
<br />
Star Hotel [http://www.starhotels.com/hotels/excelsior/en/home.aspx]: close to the centre and in front of the central railways station. <br />
<br />
Mercure Hotel [http://www.accorhotels.com/it/hotel-1310-mercure-bologna-centro/index.shtml] (Italian link, you need to find the page on your language from the Accor portal) In front of the central railways station.<br />
<br />
Albergo Atlantic [http://www.albergoatlantic.net/ENGLISH/index.html] In the city centre, 10' walking time from the central railways station.<br />
<br />
I Portici Hotel [http://www.iporticihotel.com/en/i-portici-hotel-bologna]10' walking time from the central railways station. <br />
<br />
<br />
<br />
'''Meeting Location''' <br />
<!--* [http://www.spl.harvard.edu/pages/Directions#Getting_to_1249_Boylston_Street. BWH Surgical Planning Laboratory] [http://maps.google.com/maps?q=1249+boylston+street+boston+ma+02215&hl=en&hnear=1249+Boylston+St,+Boston,+Massachusetts+02215&gl=us&t=m&z=16 1249 Boylston Street].--><br />
TBA We are finding a meeting venue that could be in the city centre or in the central station area. <br />
<br />
'''Catering'''<br />
<br />
It will be provided by the meeting venue. <br />
<br />
'''Weather'''<br />
<br />
* Probably not sunny, colder than Italian average :-), even it is quite variable, temperatures can range from 0°C to 10°C (min) and from 5°C to 20°C.</div>Finetjulhttp://www.commontk.org/index.php?title=CTK-Hackfest-Dec-2012&diff=1717CTK-Hackfest-Dec-20122012-12-11T09:51:45Z<p>Finetjul: /* Monday */</p>
<hr />
<div>== Event pictures ==<br />
Images from the hackfest<br />
{|<br />
|}<br />
<br />
== Introduction ==<br />
<br />
'''Date:''' December 10-14, 2012<br />
<br />
'''Location:''' [http://www.iporticihotel.com/en | Hotel i Portici] in Via Indipendenza , Bologna, Italy, Sala Montagnola (Room) <br />
<br />
'''Goal:''' A follow on to the [[Commontk:Current_events#Past_events|wildly successful previous hackfests!]]<br />
<br />
'''Requirements:''' Attendees must be willing to spend their time during the event writing ctk code that contributes to the main [[CTK-Roadmap | ctk roadmap]]. This means spending the week immersed in C++, Qt, DCMTK, CMake, and related technologies. People who do not feel qualified for this task are politely not invited :)<br />
<br />
'''Group size:''' Maximum 20 participants so we can have a manageable working meeting. The organizing committee will invite and select participants based on input from [[TheTeam]].<br />
<br />
'''Site Hosts:''' Alessandro Chiarini, Daniele Giunchi<br />
<br />
'''Organizing Committee:''' Ivo Wolf, Stephen Aylward, Steve Pieper<br />
<br />
'''Future Events:''' Future hackfests will be announced in advance, and we hope lots of people will be interested in participating. The venue and activities at future hackfests will be determined based on the number of active participants in the project. We welcome participation via the CTK email lists, the source code repository, and this website.<br />
<br />
== Attendees ==<br />
*So far we have received confirmation for the following people (in no particular order). <br />
<br />
'''WE HAVE REACHED THE MAXIMUM NUMBER OF PARTECIPANT - REGISTRATION CLOSED - 16 PARTECIPANTS<br />
'''<br />
<br />
Please fill in your intentions in terms of common accommodation.<br />
<br />
{|class="wikitable alternance" style="text-align:left; border:1px solid black;"<br />
|+ '''''Participants'''''<br />
|-<br />
! scope=col style="background:#cde6f8;"| Name<br />
! scope=col style="background:#cde6f8;"| Organization<br />
|-<br />
|Alessandro Chiarini<br />
|SCS, Bologna IT<br />
|-<br />
|Daniele Giunchi<br />
|SCS, Bologna IT<br />
|-<br />
|Alberto Losi<br />
|SCS, Bologna IT<br />
|-<br />
|Steve Pieper<br />
|Isomics, Inc., Cambridge, MA, USA<br />
|-<br />
| Ivo Wolf<br />
| Mannheim University of Applied Sciences & DKFZ Heidelberg<br />
|-<br />
| Jean-Chistophe Fillion-Robin<br />
| Kitware<br />
|-<br />
| Julien Finet<br />
| Kitware<br />
|-<br />
| Andreas Fetzer<br />
| DKFZ Heidelberg<br />
|-<br />
| Michael Bauer<br />
| DKFZ Heidelberg<br />
|-<br />
| Marco Nolden<br />
| DKFZ Heidelberg<br />
|-<br />
| Sascha Zelzer<br />
| DKFZ Heidelberg<br />
|-<br />
| Florian Vichot<br />
| INRIA<br />
|-<br />
| Yves Martelli<br />
| UPF<br />
|-<br />
| Claire Mouton<br />
| CREATIS<br />
|-<br />
|-<br />
| Miklos Espak<br />
| University College London (UCL)<br />
|-<br />
|}<br />
<br />
<br />
<!--<br />
* People who manifested interest in joining the fest. Please move your names up to the confirmed table, with the details as soon as you can to facilitate discussions with potential hotels.<br />
<br />
{|class="wikitable alternance" style="text-align:left; border:1px solid black;"<br />
|+ '''''Confirmed'''''<br />
|-<br />
! scope=col style="background:#cde6f8;"| Name<br />
! scope=col style="background:#cde6f8;"| Organization<br />
<br />
|}<br />
--><br />
<br />
{{Note}}There were also other invitations sent to active people on the community, and people who recently showed interest. When their intent will be known they will be added to the list.<br />
<br />
== Preparation ==<br />
<br />
Developers should bring a laptop with the [http://github.com/commontk/CTK current CTK source code] downloaded and [[Build_Instructions|built]].<br />
<br />
Use the [http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers CTK developers mailing list] to discuss build issues and topics for ongoing work.<br />
<br />
Phone conferences have been scheduled in the weeks leading to the event:<br />
* To be announced<br />
<br />
== Topics and Projects ==<br />
<br />
<!--==== Roadmap development ====<br />
*As needed, refine the [[CTK-Roadmap|roadmap for the CTK core]].--><br />
<br />
==== DICOM Application Hosting ====<br />
<br />
* Refine, extend, [[DICOM_Application_Hosting_Testing | test]], and integrate with applications<br />
* See also [[CTK-Hackfest-Nov-2011#DICOM_Application_Hosting | (some still open) tasks]] and [[Hackfest_Nice_AppHosting_Progress | progress]] from the last hackfest<br />
* Goal: connect some real code via command line interface<br />
<br />
==== DICOM Database and Networking ====<br />
<br />
* Dig into ongoing developments. See [[CtkDICOM]] for discussion.<br />
* See CTK DICOM support is used in Slicer 4.2<br />
** [http://wiki.slicer.org/slicerWiki/index.php/Documentation/4.2/Modules/DICOM End-user documentation]<br />
** [http://na-mic.org/Bug/search.php?project_id=3&category=Module+DICOM&sticky_issues=on&sortby=last_updated&dir=DESC&hide_status_id=90 Slicer4 DICOM Bugs and Feature Requests]<br />
** SlicerRT Issues:<br />
*** https://www.assembla.com/spaces/slicerrt/tickets/25 - display of ^ (carat character) in ctkDICOMModel<br />
*** https://www.assembla.com/spaces/slicerrt/tickets/153 - extension import failure (slicer issue)<br />
*** https://www.assembla.com/spaces/slicerrt/tickets/36 - non-uniform study information in RT files<br />
<br />
==== QAT ====<br />
Quality Assurance Toolkit -> how to integrate in CTK<br />
<br />
==== Widgets ====<br />
<br />
* Discuss and refine as needed.<br />
* [https://www.assembla.com/spaces/slicerrt/wiki/20120125_Slicer_DICOM_browser_meeting SlicerRt example dicom interfaces discussion]<br />
<br />
==== Tests Framework ====<br />
Try QtTesting with CTK applications<br />
<br />
==== Build Systems & Software process ====<br />
<br />
<!--* <del>Update PythonQt dependency so that CTK can build against Qt 4.8</del><br />
** <del>See [https://github.com/pieper/PythonQt/tree/svn-mirror this experiment] to make a ctk-compatible version of the updated PythonQt - it works, but is not yet fully patched.</del><br />
** <del>[http://my.cdash.org/viewBuildError.php?buildid=362919 Some operator overloading issues in DAH]</del><br />
** Updated PythonQt: [https://github.com/commontk/PythonQt/pull/1 #1], [https://github.com/commontk/PythonQt/pull/2 #2] and [https://github.com/commontk/PythonQt/pull/3 #3] {{done}}<br />
** Updated CTK: [https://github.com/commontk/CTK/issues/189 #189], [https://github.com/commontk/CTK/issues/157 #157] {{done}}<br />
** Updated Slicer [http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=20601 r20601] {{done}}<br />
** Added [https://github.com/commontk/PythonQt#readme documentation] on PythonQt. {{done}}--><br />
<br />
<br />
* Update to [http://git.dcmtk.org/web?p=dcmtk.git;a=summary latest DCMTK]<br />
** includes dcmrt<br />
** need to pick a commit to standardize on<br />
** investigate shared/static library building. (Static instances of classes getting destructed in wrong order)<br />
** incorporate version checking <br />
*** build ctk against head or snapshot version<br />
<br />
* Prepare Debian packaging (Marco)<br />
** Resolve outstanding issues<br />
** Make CTK also build with latest stable DCMTK release (3.6.0)<br />
<br />
* Evaluate Qt5 (Sascha)<br />
<br />
* <del>Setup developer package</del><br />
** See [https://github.com/commontk/CTK/issues/10 #10] and [https://github.com/commontk/CTK/issues/65 #65]<br />
** Work in progress - See topic [https://github.com/jcfr/CTK/compare/65-packaging-support 65-packaging-support]<br />
<br />
<br />
<!-- * <del>Talk with Dominique (Debian packager) to understand what is missing</del> See https://github.com/commontk/CTK/pull/158<br />
** <del>Build from upstream PythonQt (to be done this week)</del> {{done}} Few patches still need to be contributed upstream. See [https://github.com/commontk/PythonQt#readme documentation]--><br />
** Release a version of CTK (Work on policy this week and maybe release this week).<br />
<br />
<!--* <del>Generalize documentation of CMake macro so that it can be-used.</del>--><br />
** Work in progress - See [https://github.com/jcfr/CTK/compare/master...cmake-doxygen-filter-reuse cmake-doxygen-filter-reuse]<br />
<br />
==== Command Line Modules ====<br />
* Extract CLI interface <br />
** Unify VPH and Slicer refactoring<br />
* Qt SEM XML widget<br />
* Follow on interoperability tests done in [[CLI_In_Context]]<br />
* Refine CLI XML standard<br />
** Text format for description/help/acknowledgement/resources: plain text ? html ? structured text ? github markup ?<br />
** Multiple categories per module ?<br />
** CLI XML versioning.<br />
<br />
== Agenda ==<br />
<br />
==== Monday ====<br />
<!--Start at 9:00am<br />
Arrive and get settled in the morning. Discussion of plans for the week will get underway when everyone has arrived.<br />
Review of goals and ideas--><br />
<br />
10:30am Welcome<br />
<br />
10:45 - 12:00 Round table: everyone presents 10-15 minutes how CTK is used in their project. And what's new in CTK (what has been added since previous hackfest)<br />
<br />
: CTK in use:<br />
:* MSVTK: [http://www.msvtk.org/content/electro-physiological-dataset-application ECG], HAI, Buttons (DG/AL, JF) (10m)<br />
:** Give your feedback: http://www.msvtk.org/content/evaluation<br />
:* [http://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Modules/DICOM DICOM in Slicer] (SP) (5m)<br />
:* [http://www.commontk.org/index.php/Documentation/CLI_In_Context CLI in Gimias, MITK, NiftyView, Slicer] (SZ, YM, ME) (10m)<br />
:* CTK in MITK (MN) (5m)<br />
: What's new since last hackfest?<br />
:* [http://www.commontk.org/index.php/Documentation/Command_Line_Interface CLI] in CTK (SZ, YM) (15m)<br />
:* DICOM Tag caching (SP) (5m)<br />
:* [http://www.commontk.org/index.php/Documentation/ImageGallery New widgets] in CTK(JF, JCFR) (e.g. ctkCoordinatesWidget, ctkExpandableWidgetctkSizeGrip, ctkPathLineEdit, ctkPanelSettings...) (10m)<br />
<br />
<br />
1:00pm Lunch<br />
<br />
: Discuss plans/priorities for hacking<br />
<br />
3:30pm Coffee Break<br />
<br />
5:00pm Close<br />
<br />
==== Tuesday ====<br />
<!--hack, hack, hack...--><br />
9:30am Welcome<br />
<br />
11:00am Coffee Break<br />
<br />
1:00pm Lunch<br />
<br />
5:00pm Close<br />
<br />
==== Wednesday ====<br />
<!--Review of progress--><br />
9:30am Welcome<br />
<br />
11:00am Coffee Break<br />
<br />
1:00pm Lunch<br />
<br />
5:00pm Close<br />
<br />
==== Thursday ====<br />
<!--Hack, hack, hack...--><br />
9:30am Welcome<br />
<br />
11:00am Coffee Break<br />
<br />
1:00pm Lunch<br />
<br />
5:00pm Close<br />
<br />
==== Friday ====<br />
<!--* 10:30 Review hacking progress<br />
*Tour of [http://ncigt.org/pages/AMIGO AMIGO].<br />
** Leave 1249 by 12:00. Stop for lunch on the way and meet Isaiah at AMIGO at 2:00.<br />
** Turn in badges - do not plan to return to 1249.<br />
End by 5:00pm--><br />
9:30am Welcome<br />
<br />
11:00am Coffee Break<br />
<br />
1:00pm Lunch<br />
<br />
2:00pm Wrap up discussion and Meeting Closes<br />
* Update project status on wiki<br />
<br />
== Travel & Hotel ==<br />
<br />
'''Local contact'''<br />
If you have any troubles during your visit, call Alessandro: +39 342 1401554 or Daniele: +39 348 7260365<br />
<br />
'''Airport''' <br />
* [http://www.bologna-airport.it/uk/?LN=UK Bologna G.Marconi (BLQ)]<br />
<br />
'''Transportation on Site'''<br />
<br />
Airport Shuttle from airport to Railway Station (near to meeting location) 6 euro, link: http://www.atc.bo.it/orari/aerobus-airport-railway-station-link<br />
<br />
Taxi from airport to Railway Station 15-20 euro<br />
<br />
<!--Google's public transit search works well in Bologna. The site is about 5 blocks from subway stops and busses. Parking on-site is $10-$15 per day. Cabs are fairly convenient for most trips (perhaps $40 to/from the airport but $10-$15 for trips within town).--><br />
<br />
'''Lodging''' <br />
<br />
There are a lot of hotel options in Bologna.<br />
<br />
Millennium Hotel[http://www.millennhotelbologna.it/en/index.html]: close to the centre and to the central railways station. <br />
<br />
Star Hotel [http://www.starhotels.com/hotels/excelsior/en/home.aspx]: close to the centre and in front of the central railways station. <br />
<br />
Mercure Hotel [http://www.accorhotels.com/it/hotel-1310-mercure-bologna-centro/index.shtml] (Italian link, you need to find the page on your language from the Accor portal) In front of the central railways station.<br />
<br />
Albergo Atlantic [http://www.albergoatlantic.net/ENGLISH/index.html] In the city centre, 10' walking time from the central railways station.<br />
<br />
I Portici Hotel [http://www.iporticihotel.com/en/i-portici-hotel-bologna]10' walking time from the central railways station. <br />
<br />
<br />
<br />
'''Meeting Location''' <br />
<!--* [http://www.spl.harvard.edu/pages/Directions#Getting_to_1249_Boylston_Street. BWH Surgical Planning Laboratory] [http://maps.google.com/maps?q=1249+boylston+street+boston+ma+02215&hl=en&hnear=1249+Boylston+St,+Boston,+Massachusetts+02215&gl=us&t=m&z=16 1249 Boylston Street].--><br />
TBA We are finding a meeting venue that could be in the city centre or in the central station area. <br />
<br />
'''Catering'''<br />
<br />
It will be provided by the meeting venue. <br />
<br />
'''Weather'''<br />
<br />
* Probably not sunny, colder than Italian average :-), even it is quite variable, temperatures can range from 0°C to 10°C (min) and from 5°C to 20°C.</div>Finetjulhttp://www.commontk.org/index.php?title=CTK-Hackfest-Dec-2012&diff=1716CTK-Hackfest-Dec-20122012-12-11T09:50:34Z<p>Finetjul: /* Monday */</p>
<hr />
<div>== Event pictures ==<br />
Images from the hackfest<br />
{|<br />
|}<br />
<br />
== Introduction ==<br />
<br />
'''Date:''' December 10-14, 2012<br />
<br />
'''Location:''' [http://www.iporticihotel.com/en | Hotel i Portici] in Via Indipendenza , Bologna, Italy, Sala Montagnola (Room) <br />
<br />
'''Goal:''' A follow on to the [[Commontk:Current_events#Past_events|wildly successful previous hackfests!]]<br />
<br />
'''Requirements:''' Attendees must be willing to spend their time during the event writing ctk code that contributes to the main [[CTK-Roadmap | ctk roadmap]]. This means spending the week immersed in C++, Qt, DCMTK, CMake, and related technologies. People who do not feel qualified for this task are politely not invited :)<br />
<br />
'''Group size:''' Maximum 20 participants so we can have a manageable working meeting. The organizing committee will invite and select participants based on input from [[TheTeam]].<br />
<br />
'''Site Hosts:''' Alessandro Chiarini, Daniele Giunchi<br />
<br />
'''Organizing Committee:''' Ivo Wolf, Stephen Aylward, Steve Pieper<br />
<br />
'''Future Events:''' Future hackfests will be announced in advance, and we hope lots of people will be interested in participating. The venue and activities at future hackfests will be determined based on the number of active participants in the project. We welcome participation via the CTK email lists, the source code repository, and this website.<br />
<br />
== Attendees ==<br />
*So far we have received confirmation for the following people (in no particular order). <br />
<br />
'''WE HAVE REACHED THE MAXIMUM NUMBER OF PARTECIPANT - REGISTRATION CLOSED - 16 PARTECIPANTS<br />
'''<br />
<br />
Please fill in your intentions in terms of common accommodation.<br />
<br />
{|class="wikitable alternance" style="text-align:left; border:1px solid black;"<br />
|+ '''''Participants'''''<br />
|-<br />
! scope=col style="background:#cde6f8;"| Name<br />
! scope=col style="background:#cde6f8;"| Organization<br />
|-<br />
|Alessandro Chiarini<br />
|SCS, Bologna IT<br />
|-<br />
|Daniele Giunchi<br />
|SCS, Bologna IT<br />
|-<br />
|Alberto Losi<br />
|SCS, Bologna IT<br />
|-<br />
|Steve Pieper<br />
|Isomics, Inc., Cambridge, MA, USA<br />
|-<br />
| Ivo Wolf<br />
| Mannheim University of Applied Sciences & DKFZ Heidelberg<br />
|-<br />
| Jean-Chistophe Fillion-Robin<br />
| Kitware<br />
|-<br />
| Julien Finet<br />
| Kitware<br />
|-<br />
| Andreas Fetzer<br />
| DKFZ Heidelberg<br />
|-<br />
| Michael Bauer<br />
| DKFZ Heidelberg<br />
|-<br />
| Marco Nolden<br />
| DKFZ Heidelberg<br />
|-<br />
| Sascha Zelzer<br />
| DKFZ Heidelberg<br />
|-<br />
| Florian Vichot<br />
| INRIA<br />
|-<br />
| Yves Martelli<br />
| UPF<br />
|-<br />
| Claire Mouton<br />
| CREATIS<br />
|-<br />
|-<br />
| Miklos Espak<br />
| University College London (UCL)<br />
|-<br />
|}<br />
<br />
<br />
<!--<br />
* People who manifested interest in joining the fest. Please move your names up to the confirmed table, with the details as soon as you can to facilitate discussions with potential hotels.<br />
<br />
{|class="wikitable alternance" style="text-align:left; border:1px solid black;"<br />
|+ '''''Confirmed'''''<br />
|-<br />
! scope=col style="background:#cde6f8;"| Name<br />
! scope=col style="background:#cde6f8;"| Organization<br />
<br />
|}<br />
--><br />
<br />
{{Note}}There were also other invitations sent to active people on the community, and people who recently showed interest. When their intent will be known they will be added to the list.<br />
<br />
== Preparation ==<br />
<br />
Developers should bring a laptop with the [http://github.com/commontk/CTK current CTK source code] downloaded and [[Build_Instructions|built]].<br />
<br />
Use the [http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers CTK developers mailing list] to discuss build issues and topics for ongoing work.<br />
<br />
Phone conferences have been scheduled in the weeks leading to the event:<br />
* To be announced<br />
<br />
== Topics and Projects ==<br />
<br />
<!--==== Roadmap development ====<br />
*As needed, refine the [[CTK-Roadmap|roadmap for the CTK core]].--><br />
<br />
==== DICOM Application Hosting ====<br />
<br />
* Refine, extend, [[DICOM_Application_Hosting_Testing | test]], and integrate with applications<br />
* See also [[CTK-Hackfest-Nov-2011#DICOM_Application_Hosting | (some still open) tasks]] and [[Hackfest_Nice_AppHosting_Progress | progress]] from the last hackfest<br />
* Goal: connect some real code via command line interface<br />
<br />
==== DICOM Database and Networking ====<br />
<br />
* Dig into ongoing developments. See [[CtkDICOM]] for discussion.<br />
* See CTK DICOM support is used in Slicer 4.2<br />
** [http://wiki.slicer.org/slicerWiki/index.php/Documentation/4.2/Modules/DICOM End-user documentation]<br />
** [http://na-mic.org/Bug/search.php?project_id=3&category=Module+DICOM&sticky_issues=on&sortby=last_updated&dir=DESC&hide_status_id=90 Slicer4 DICOM Bugs and Feature Requests]<br />
** SlicerRT Issues:<br />
*** https://www.assembla.com/spaces/slicerrt/tickets/25 - display of ^ (carat character) in ctkDICOMModel<br />
*** https://www.assembla.com/spaces/slicerrt/tickets/153 - extension import failure (slicer issue)<br />
*** https://www.assembla.com/spaces/slicerrt/tickets/36 - non-uniform study information in RT files<br />
<br />
==== QAT ====<br />
Quality Assurance Toolkit -> how to integrate in CTK<br />
<br />
==== Widgets ====<br />
<br />
* Discuss and refine as needed.<br />
* [https://www.assembla.com/spaces/slicerrt/wiki/20120125_Slicer_DICOM_browser_meeting SlicerRt example dicom interfaces discussion]<br />
<br />
==== Tests Framework ====<br />
Try QtTesting with CTK applications<br />
<br />
==== Build Systems & Software process ====<br />
<br />
<!--* <del>Update PythonQt dependency so that CTK can build against Qt 4.8</del><br />
** <del>See [https://github.com/pieper/PythonQt/tree/svn-mirror this experiment] to make a ctk-compatible version of the updated PythonQt - it works, but is not yet fully patched.</del><br />
** <del>[http://my.cdash.org/viewBuildError.php?buildid=362919 Some operator overloading issues in DAH]</del><br />
** Updated PythonQt: [https://github.com/commontk/PythonQt/pull/1 #1], [https://github.com/commontk/PythonQt/pull/2 #2] and [https://github.com/commontk/PythonQt/pull/3 #3] {{done}}<br />
** Updated CTK: [https://github.com/commontk/CTK/issues/189 #189], [https://github.com/commontk/CTK/issues/157 #157] {{done}}<br />
** Updated Slicer [http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=20601 r20601] {{done}}<br />
** Added [https://github.com/commontk/PythonQt#readme documentation] on PythonQt. {{done}}--><br />
<br />
<br />
* Update to [http://git.dcmtk.org/web?p=dcmtk.git;a=summary latest DCMTK]<br />
** includes dcmrt<br />
** need to pick a commit to standardize on<br />
** investigate shared/static library building. (Static instances of classes getting destructed in wrong order)<br />
** incorporate version checking <br />
*** build ctk against head or snapshot version<br />
<br />
* Prepare Debian packaging (Marco)<br />
** Resolve outstanding issues<br />
** Make CTK also build with latest stable DCMTK release (3.6.0)<br />
<br />
* Evaluate Qt5 (Sascha)<br />
<br />
* <del>Setup developer package</del><br />
** See [https://github.com/commontk/CTK/issues/10 #10] and [https://github.com/commontk/CTK/issues/65 #65]<br />
** Work in progress - See topic [https://github.com/jcfr/CTK/compare/65-packaging-support 65-packaging-support]<br />
<br />
<br />
<!-- * <del>Talk with Dominique (Debian packager) to understand what is missing</del> See https://github.com/commontk/CTK/pull/158<br />
** <del>Build from upstream PythonQt (to be done this week)</del> {{done}} Few patches still need to be contributed upstream. See [https://github.com/commontk/PythonQt#readme documentation]--><br />
** Release a version of CTK (Work on policy this week and maybe release this week).<br />
<br />
<!--* <del>Generalize documentation of CMake macro so that it can be-used.</del>--><br />
** Work in progress - See [https://github.com/jcfr/CTK/compare/master...cmake-doxygen-filter-reuse cmake-doxygen-filter-reuse]<br />
<br />
==== Command Line Modules ====<br />
* Extract CLI interface <br />
** Unify VPH and Slicer refactoring<br />
* Qt SEM XML widget<br />
* Follow on interoperability tests done in [[CLI_In_Context]]<br />
* Refine CLI XML standard<br />
** Text format for description/help/acknowledgement/resources: plain text ? html ? structured text ? github markup ?<br />
** Multiple categories per module ?<br />
** CLI XML versioning.<br />
<br />
== Agenda ==<br />
<br />
==== Monday ====<br />
<!--Start at 9:00am<br />
Arrive and get settled in the morning. Discussion of plans for the week will get underway when everyone has arrived.<br />
Review of goals and ideas--><br />
<br />
10:30am Welcome<br />
<br />
10:45 - 12:00 Round table: everyone presents 10-15 minutes how CTK is used in their project. And what's new in CTK (what has been added since previous hackfest)<br />
<br />
: CTK in use:<br />
:* MSVTK: [http://www.msvtk.org/content/electro-physiological-dataset-application ECG], HAI, Buttons (DG/AL, JF) (10m)<br />
:** Give your feedback: http://www.msvtk.org/content/evaluation<br />
:* [http://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Modules/DICOM DICOM in Slicer] (SP) (5m)<br />
:* [http://www.commontk.org/index.php/Documentation/CLI_In_Context CLI in Gimias, MITK, NiftyView, Slicer] (SZ, YM, ME) (10m)<br />
:* CTK in MITK (MN) (5m)<br />
: What's new ?<br />
:* [http://www.commontk.org/index.php/Documentation/ImageGallery New widgets] in CTK(JF, JCFR) (e.g. ctkCoordinatesWidget, ctkExpandableWidgetctkSizeGrip, ctkPathLineEdit, ctkPanelSettings...) (10m)<br />
:* [http://www.commontk.org/index.php/Documentation/Command_Line_Interface CLI] in CTK (SZ, YM) (15m)<br />
<br />
1:00pm Lunch<br />
<br />
: Discuss plans/priorities for hacking<br />
<br />
3:30pm Coffee Break<br />
<br />
5:00pm Close<br />
<br />
==== Tuesday ====<br />
<!--hack, hack, hack...--><br />
9:30am Welcome<br />
<br />
11:00am Coffee Break<br />
<br />
1:00pm Lunch<br />
<br />
5:00pm Close<br />
<br />
==== Wednesday ====<br />
<!--Review of progress--><br />
9:30am Welcome<br />
<br />
11:00am Coffee Break<br />
<br />
1:00pm Lunch<br />
<br />
5:00pm Close<br />
<br />
==== Thursday ====<br />
<!--Hack, hack, hack...--><br />
9:30am Welcome<br />
<br />
11:00am Coffee Break<br />
<br />
1:00pm Lunch<br />
<br />
5:00pm Close<br />
<br />
==== Friday ====<br />
<!--* 10:30 Review hacking progress<br />
*Tour of [http://ncigt.org/pages/AMIGO AMIGO].<br />
** Leave 1249 by 12:00. Stop for lunch on the way and meet Isaiah at AMIGO at 2:00.<br />
** Turn in badges - do not plan to return to 1249.<br />
End by 5:00pm--><br />
9:30am Welcome<br />
<br />
11:00am Coffee Break<br />
<br />
1:00pm Lunch<br />
<br />
2:00pm Wrap up discussion and Meeting Closes<br />
* Update project status on wiki<br />
<br />
== Travel & Hotel ==<br />
<br />
'''Local contact'''<br />
If you have any troubles during your visit, call Alessandro: +39 342 1401554 or Daniele: +39 348 7260365<br />
<br />
'''Airport''' <br />
* [http://www.bologna-airport.it/uk/?LN=UK Bologna G.Marconi (BLQ)]<br />
<br />
'''Transportation on Site'''<br />
<br />
Airport Shuttle from airport to Railway Station (near to meeting location) 6 euro, link: http://www.atc.bo.it/orari/aerobus-airport-railway-station-link<br />
<br />
Taxi from airport to Railway Station 15-20 euro<br />
<br />
<!--Google's public transit search works well in Bologna. The site is about 5 blocks from subway stops and busses. Parking on-site is $10-$15 per day. Cabs are fairly convenient for most trips (perhaps $40 to/from the airport but $10-$15 for trips within town).--><br />
<br />
'''Lodging''' <br />
<br />
There are a lot of hotel options in Bologna.<br />
<br />
Millennium Hotel[http://www.millennhotelbologna.it/en/index.html]: close to the centre and to the central railways station. <br />
<br />
Star Hotel [http://www.starhotels.com/hotels/excelsior/en/home.aspx]: close to the centre and in front of the central railways station. <br />
<br />
Mercure Hotel [http://www.accorhotels.com/it/hotel-1310-mercure-bologna-centro/index.shtml] (Italian link, you need to find the page on your language from the Accor portal) In front of the central railways station.<br />
<br />
Albergo Atlantic [http://www.albergoatlantic.net/ENGLISH/index.html] In the city centre, 10' walking time from the central railways station.<br />
<br />
I Portici Hotel [http://www.iporticihotel.com/en/i-portici-hotel-bologna]10' walking time from the central railways station. <br />
<br />
<br />
<br />
'''Meeting Location''' <br />
<!--* [http://www.spl.harvard.edu/pages/Directions#Getting_to_1249_Boylston_Street. BWH Surgical Planning Laboratory] [http://maps.google.com/maps?q=1249+boylston+street+boston+ma+02215&hl=en&hnear=1249+Boylston+St,+Boston,+Massachusetts+02215&gl=us&t=m&z=16 1249 Boylston Street].--><br />
TBA We are finding a meeting venue that could be in the city centre or in the central station area. <br />
<br />
'''Catering'''<br />
<br />
It will be provided by the meeting venue. <br />
<br />
'''Weather'''<br />
<br />
* Probably not sunny, colder than Italian average :-), even it is quite variable, temperatures can range from 0°C to 10°C (min) and from 5°C to 20°C.</div>Finetjulhttp://www.commontk.org/index.php?title=CTK-Hackfest-Dec-2012&diff=1715CTK-Hackfest-Dec-20122012-12-11T09:43:42Z<p>Finetjul: /* Monday */</p>
<hr />
<div>== Event pictures ==<br />
Images from the hackfest<br />
{|<br />
|}<br />
<br />
== Introduction ==<br />
<br />
'''Date:''' December 10-14, 2012<br />
<br />
'''Location:''' [http://www.iporticihotel.com/en | Hotel i Portici] in Via Indipendenza , Bologna, Italy, Sala Montagnola (Room) <br />
<br />
'''Goal:''' A follow on to the [[Commontk:Current_events#Past_events|wildly successful previous hackfests!]]<br />
<br />
'''Requirements:''' Attendees must be willing to spend their time during the event writing ctk code that contributes to the main [[CTK-Roadmap | ctk roadmap]]. This means spending the week immersed in C++, Qt, DCMTK, CMake, and related technologies. People who do not feel qualified for this task are politely not invited :)<br />
<br />
'''Group size:''' Maximum 20 participants so we can have a manageable working meeting. The organizing committee will invite and select participants based on input from [[TheTeam]].<br />
<br />
'''Site Hosts:''' Alessandro Chiarini, Daniele Giunchi<br />
<br />
'''Organizing Committee:''' Ivo Wolf, Stephen Aylward, Steve Pieper<br />
<br />
'''Future Events:''' Future hackfests will be announced in advance, and we hope lots of people will be interested in participating. The venue and activities at future hackfests will be determined based on the number of active participants in the project. We welcome participation via the CTK email lists, the source code repository, and this website.<br />
<br />
== Attendees ==<br />
*So far we have received confirmation for the following people (in no particular order). <br />
<br />
'''WE HAVE REACHED THE MAXIMUM NUMBER OF PARTECIPANT - REGISTRATION CLOSED - 16 PARTECIPANTS<br />
'''<br />
<br />
Please fill in your intentions in terms of common accommodation.<br />
<br />
{|class="wikitable alternance" style="text-align:left; border:1px solid black;"<br />
|+ '''''Participants'''''<br />
|-<br />
! scope=col style="background:#cde6f8;"| Name<br />
! scope=col style="background:#cde6f8;"| Organization<br />
|-<br />
|Alessandro Chiarini<br />
|SCS, Bologna IT<br />
|-<br />
|Daniele Giunchi<br />
|SCS, Bologna IT<br />
|-<br />
|Alberto Losi<br />
|SCS, Bologna IT<br />
|-<br />
|Steve Pieper<br />
|Isomics, Inc., Cambridge, MA, USA<br />
|-<br />
| Ivo Wolf<br />
| Mannheim University of Applied Sciences & DKFZ Heidelberg<br />
|-<br />
| Jean-Chistophe Fillion-Robin<br />
| Kitware<br />
|-<br />
| Julien Finet<br />
| Kitware<br />
|-<br />
| Andreas Fetzer<br />
| DKFZ Heidelberg<br />
|-<br />
| Michael Bauer<br />
| DKFZ Heidelberg<br />
|-<br />
| Marco Nolden<br />
| DKFZ Heidelberg<br />
|-<br />
| Sascha Zelzer<br />
| DKFZ Heidelberg<br />
|-<br />
| Florian Vichot<br />
| INRIA<br />
|-<br />
| Yves Martelli<br />
| UPF<br />
|-<br />
| Claire Mouton<br />
| CREATIS<br />
|-<br />
|-<br />
| Miklos Espak<br />
| University College London (UCL)<br />
|-<br />
|}<br />
<br />
<br />
<!--<br />
* People who manifested interest in joining the fest. Please move your names up to the confirmed table, with the details as soon as you can to facilitate discussions with potential hotels.<br />
<br />
{|class="wikitable alternance" style="text-align:left; border:1px solid black;"<br />
|+ '''''Confirmed'''''<br />
|-<br />
! scope=col style="background:#cde6f8;"| Name<br />
! scope=col style="background:#cde6f8;"| Organization<br />
<br />
|}<br />
--><br />
<br />
{{Note}}There were also other invitations sent to active people on the community, and people who recently showed interest. When their intent will be known they will be added to the list.<br />
<br />
== Preparation ==<br />
<br />
Developers should bring a laptop with the [http://github.com/commontk/CTK current CTK source code] downloaded and [[Build_Instructions|built]].<br />
<br />
Use the [http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers CTK developers mailing list] to discuss build issues and topics for ongoing work.<br />
<br />
Phone conferences have been scheduled in the weeks leading to the event:<br />
* To be announced<br />
<br />
== Topics and Projects ==<br />
<br />
<!--==== Roadmap development ====<br />
*As needed, refine the [[CTK-Roadmap|roadmap for the CTK core]].--><br />
<br />
==== DICOM Application Hosting ====<br />
<br />
* Refine, extend, [[DICOM_Application_Hosting_Testing | test]], and integrate with applications<br />
* See also [[CTK-Hackfest-Nov-2011#DICOM_Application_Hosting | (some still open) tasks]] and [[Hackfest_Nice_AppHosting_Progress | progress]] from the last hackfest<br />
* Goal: connect some real code via command line interface<br />
<br />
==== DICOM Database and Networking ====<br />
<br />
* Dig into ongoing developments. See [[CtkDICOM]] for discussion.<br />
* See CTK DICOM support is used in Slicer 4.2<br />
** [http://wiki.slicer.org/slicerWiki/index.php/Documentation/4.2/Modules/DICOM End-user documentation]<br />
** [http://na-mic.org/Bug/search.php?project_id=3&category=Module+DICOM&sticky_issues=on&sortby=last_updated&dir=DESC&hide_status_id=90 Slicer4 DICOM Bugs and Feature Requests]<br />
** SlicerRT Issues:<br />
*** https://www.assembla.com/spaces/slicerrt/tickets/25 - display of ^ (carat character) in ctkDICOMModel<br />
*** https://www.assembla.com/spaces/slicerrt/tickets/153 - extension import failure (slicer issue)<br />
*** https://www.assembla.com/spaces/slicerrt/tickets/36 - non-uniform study information in RT files<br />
<br />
==== QAT ====<br />
Quality Assurance Toolkit -> how to integrate in CTK<br />
<br />
==== Widgets ====<br />
<br />
* Discuss and refine as needed.<br />
* [https://www.assembla.com/spaces/slicerrt/wiki/20120125_Slicer_DICOM_browser_meeting SlicerRt example dicom interfaces discussion]<br />
<br />
==== Tests Framework ====<br />
Try QtTesting with CTK applications<br />
<br />
==== Build Systems & Software process ====<br />
<br />
<!--* <del>Update PythonQt dependency so that CTK can build against Qt 4.8</del><br />
** <del>See [https://github.com/pieper/PythonQt/tree/svn-mirror this experiment] to make a ctk-compatible version of the updated PythonQt - it works, but is not yet fully patched.</del><br />
** <del>[http://my.cdash.org/viewBuildError.php?buildid=362919 Some operator overloading issues in DAH]</del><br />
** Updated PythonQt: [https://github.com/commontk/PythonQt/pull/1 #1], [https://github.com/commontk/PythonQt/pull/2 #2] and [https://github.com/commontk/PythonQt/pull/3 #3] {{done}}<br />
** Updated CTK: [https://github.com/commontk/CTK/issues/189 #189], [https://github.com/commontk/CTK/issues/157 #157] {{done}}<br />
** Updated Slicer [http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=20601 r20601] {{done}}<br />
** Added [https://github.com/commontk/PythonQt#readme documentation] on PythonQt. {{done}}--><br />
<br />
<br />
* Update to [http://git.dcmtk.org/web?p=dcmtk.git;a=summary latest DCMTK]<br />
** includes dcmrt<br />
** need to pick a commit to standardize on<br />
** investigate shared/static library building. (Static instances of classes getting destructed in wrong order)<br />
** incorporate version checking <br />
*** build ctk against head or snapshot version<br />
<br />
* Prepare Debian packaging (Marco)<br />
** Resolve outstanding issues<br />
** Make CTK also build with latest stable DCMTK release (3.6.0)<br />
<br />
* Evaluate Qt5 (Sascha)<br />
<br />
* <del>Setup developer package</del><br />
** See [https://github.com/commontk/CTK/issues/10 #10] and [https://github.com/commontk/CTK/issues/65 #65]<br />
** Work in progress - See topic [https://github.com/jcfr/CTK/compare/65-packaging-support 65-packaging-support]<br />
<br />
<br />
<!-- * <del>Talk with Dominique (Debian packager) to understand what is missing</del> See https://github.com/commontk/CTK/pull/158<br />
** <del>Build from upstream PythonQt (to be done this week)</del> {{done}} Few patches still need to be contributed upstream. See [https://github.com/commontk/PythonQt#readme documentation]--><br />
** Release a version of CTK (Work on policy this week and maybe release this week).<br />
<br />
<!--* <del>Generalize documentation of CMake macro so that it can be-used.</del>--><br />
** Work in progress - See [https://github.com/jcfr/CTK/compare/master...cmake-doxygen-filter-reuse cmake-doxygen-filter-reuse]<br />
<br />
==== Command Line Modules ====<br />
* Extract CLI interface <br />
** Unify VPH and Slicer refactoring<br />
* Qt SEM XML widget<br />
* Follow on interoperability tests done in [[CLI_In_Context]]<br />
* Refine CLI XML standard<br />
** Text format for description/help/acknowledgement/resources: plain text ? html ? structured text ? github markup ?<br />
** Multiple categories per module ?<br />
** CLI XML versioning.<br />
<br />
== Agenda ==<br />
<br />
==== Monday ====<br />
<!--Start at 9:00am<br />
Arrive and get settled in the morning. Discussion of plans for the week will get underway when everyone has arrived.<br />
Review of goals and ideas--><br />
<br />
10:30am Welcome<br />
<br />
10:45 - 12:00 Round table: everyone presents 10-15 minutes how CTK is used in their project. And what's new in CTK (what has been added since previous hackfest)<br />
<br />
: CTK in use:<br />
:* MSVTK: [http://www.msvtk.org/content/electro-physiological-dataset-application ECG], HAI, Buttons (DG/AL, JF) (10m)<br />
:** Give your feedback: http://www.msvtk.org/content/evaluation<br />
:* [http://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Modules/DICOM DICOM in Slicer] (SP) (5m)<br />
:* [http://www.commontk.org/index.php/Documentation/CLI_In_Context CLI in Gimias, MITK, NiftyView]... (YM, SZ...) (10m)<br />
:* CTK in MITK (MN) (5m)<br />
: What's new ?<br />
:* [http://www.commontk.org/index.php/Documentation/ImageGallery New widgets] in CTK(JF, JCFR) (e.g. ctkCoordinatesWidget, ctkExpandableWidgetctkSizeGrip, ctkPathLineEdit, ctkPanelSettings...) (10m)<br />
:* [http://www.commontk.org/index.php/Documentation/Command_Line_Interface CLI] in CTK (SZ, YM) (15m)<br />
<br />
1:00pm Lunch<br />
<br />
: Discuss plans/priorities for hacking<br />
<br />
3:30pm Coffee Break<br />
<br />
5:00pm Close<br />
<br />
==== Tuesday ====<br />
<!--hack, hack, hack...--><br />
9:30am Welcome<br />
<br />
11:00am Coffee Break<br />
<br />
1:00pm Lunch<br />
<br />
5:00pm Close<br />
<br />
==== Wednesday ====<br />
<!--Review of progress--><br />
9:30am Welcome<br />
<br />
11:00am Coffee Break<br />
<br />
1:00pm Lunch<br />
<br />
5:00pm Close<br />
<br />
==== Thursday ====<br />
<!--Hack, hack, hack...--><br />
9:30am Welcome<br />
<br />
11:00am Coffee Break<br />
<br />
1:00pm Lunch<br />
<br />
5:00pm Close<br />
<br />
==== Friday ====<br />
<!--* 10:30 Review hacking progress<br />
*Tour of [http://ncigt.org/pages/AMIGO AMIGO].<br />
** Leave 1249 by 12:00. Stop for lunch on the way and meet Isaiah at AMIGO at 2:00.<br />
** Turn in badges - do not plan to return to 1249.<br />
End by 5:00pm--><br />
9:30am Welcome<br />
<br />
11:00am Coffee Break<br />
<br />
1:00pm Lunch<br />
<br />
2:00pm Wrap up discussion and Meeting Closes<br />
* Update project status on wiki<br />
<br />
== Travel & Hotel ==<br />
<br />
'''Local contact'''<br />
If you have any troubles during your visit, call Alessandro: +39 342 1401554 or Daniele: +39 348 7260365<br />
<br />
'''Airport''' <br />
* [http://www.bologna-airport.it/uk/?LN=UK Bologna G.Marconi (BLQ)]<br />
<br />
'''Transportation on Site'''<br />
<br />
Airport Shuttle from airport to Railway Station (near to meeting location) 6 euro, link: http://www.atc.bo.it/orari/aerobus-airport-railway-station-link<br />
<br />
Taxi from airport to Railway Station 15-20 euro<br />
<br />
<!--Google's public transit search works well in Bologna. The site is about 5 blocks from subway stops and busses. Parking on-site is $10-$15 per day. Cabs are fairly convenient for most trips (perhaps $40 to/from the airport but $10-$15 for trips within town).--><br />
<br />
'''Lodging''' <br />
<br />
There are a lot of hotel options in Bologna.<br />
<br />
Millennium Hotel[http://www.millennhotelbologna.it/en/index.html]: close to the centre and to the central railways station. <br />
<br />
Star Hotel [http://www.starhotels.com/hotels/excelsior/en/home.aspx]: close to the centre and in front of the central railways station. <br />
<br />
Mercure Hotel [http://www.accorhotels.com/it/hotel-1310-mercure-bologna-centro/index.shtml] (Italian link, you need to find the page on your language from the Accor portal) In front of the central railways station.<br />
<br />
Albergo Atlantic [http://www.albergoatlantic.net/ENGLISH/index.html] In the city centre, 10' walking time from the central railways station.<br />
<br />
I Portici Hotel [http://www.iporticihotel.com/en/i-portici-hotel-bologna]10' walking time from the central railways station. <br />
<br />
<br />
<br />
'''Meeting Location''' <br />
<!--* [http://www.spl.harvard.edu/pages/Directions#Getting_to_1249_Boylston_Street. BWH Surgical Planning Laboratory] [http://maps.google.com/maps?q=1249+boylston+street+boston+ma+02215&hl=en&hnear=1249+Boylston+St,+Boston,+Massachusetts+02215&gl=us&t=m&z=16 1249 Boylston Street].--><br />
TBA We are finding a meeting venue that could be in the city centre or in the central station area. <br />
<br />
'''Catering'''<br />
<br />
It will be provided by the meeting venue. <br />
<br />
'''Weather'''<br />
<br />
* Probably not sunny, colder than Italian average :-), even it is quite variable, temperatures can range from 0°C to 10°C (min) and from 5°C to 20°C.</div>Finetjulhttp://www.commontk.org/index.php?title=CTK-Hackfest-Dec-2012&diff=1714CTK-Hackfest-Dec-20122012-12-10T17:44:06Z<p>Finetjul: /* Command Line Modules */</p>
<hr />
<div>== Event pictures ==<br />
Images from the hackfest<br />
{|<br />
|}<br />
<br />
== Introduction ==<br />
<br />
'''Date:''' December 10-14, 2012<br />
<br />
'''Location:''' [http://www.iporticihotel.com/en | Hotel i Portici] in Via Indipendenza , Bologna, Italy, Sala Montagnola (Room) <br />
<br />
'''Goal:''' A follow on to the [[Commontk:Current_events#Past_events|wildly successful previous hackfests!]]<br />
<br />
'''Requirements:''' Attendees must be willing to spend their time during the event writing ctk code that contributes to the main [[CTK-Roadmap | ctk roadmap]]. This means spending the week immersed in C++, Qt, DCMTK, CMake, and related technologies. People who do not feel qualified for this task are politely not invited :)<br />
<br />
'''Group size:''' Maximum 20 participants so we can have a manageable working meeting. The organizing committee will invite and select participants based on input from [[TheTeam]].<br />
<br />
'''Site Hosts:''' Alessandro Chiarini, Daniele Giunchi<br />
<br />
'''Organizing Committee:''' Ivo Wolf, Stephen Aylward, Steve Pieper<br />
<br />
'''Future Events:''' Future hackfests will be announced in advance, and we hope lots of people will be interested in participating. The venue and activities at future hackfests will be determined based on the number of active participants in the project. We welcome participation via the CTK email lists, the source code repository, and this website.<br />
<br />
== Attendees ==<br />
*So far we have received confirmation for the following people (in no particular order). <br />
<br />
'''WE HAVE REACHED THE MAXIMUM NUMBER OF PARTECIPANT - REGISTRATION CLOSED - 16 PARTECIPANTS<br />
'''<br />
<br />
Please fill in your intentions in terms of common accommodation.<br />
<br />
{|class="wikitable alternance" style="text-align:left; border:1px solid black;"<br />
|+ '''''Participants'''''<br />
|-<br />
! scope=col style="background:#cde6f8;"| Name<br />
! scope=col style="background:#cde6f8;"| Organization<br />
|-<br />
|Alessandro Chiarini<br />
|SCS, Bologna IT<br />
|-<br />
|Daniele Giunchi<br />
|SCS, Bologna IT<br />
|-<br />
|Alberto Losi<br />
|SCS, Bologna IT<br />
|-<br />
|Steve Pieper<br />
|Isomics, Inc., Cambridge, MA, USA<br />
|-<br />
| Ivo Wolf<br />
| Mannheim University of Applied Sciences & DKFZ Heidelberg<br />
|-<br />
| Jean-Chistophe Fillion-Robin<br />
| Kitware<br />
|-<br />
| Julien Finet<br />
| Kitware<br />
|-<br />
| Andreas Fetzer<br />
| DKFZ Heidelberg<br />
|-<br />
| Michael Bauer<br />
| DKFZ Heidelberg<br />
|-<br />
| Marco Nolden<br />
| DKFZ Heidelberg<br />
|-<br />
| Sascha Zelzer<br />
| DKFZ Heidelberg<br />
|-<br />
| Florian Vichot<br />
| INRIA<br />
|-<br />
| Yves Martelli<br />
| UPF<br />
|-<br />
| Claire Mouton<br />
| CREATIS<br />
|-<br />
|-<br />
| Miklos Espak<br />
| University College London (UCL)<br />
|-<br />
|}<br />
<br />
<br />
<!--<br />
* People who manifested interest in joining the fest. Please move your names up to the confirmed table, with the details as soon as you can to facilitate discussions with potential hotels.<br />
<br />
{|class="wikitable alternance" style="text-align:left; border:1px solid black;"<br />
|+ '''''Confirmed'''''<br />
|-<br />
! scope=col style="background:#cde6f8;"| Name<br />
! scope=col style="background:#cde6f8;"| Organization<br />
<br />
|}<br />
--><br />
<br />
{{Note}}There were also other invitations sent to active people on the community, and people who recently showed interest. When their intent will be known they will be added to the list.<br />
<br />
== Preparation ==<br />
<br />
Developers should bring a laptop with the [http://github.com/commontk/CTK current CTK source code] downloaded and [[Build_Instructions|built]].<br />
<br />
Use the [http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers CTK developers mailing list] to discuss build issues and topics for ongoing work.<br />
<br />
Phone conferences have been scheduled in the weeks leading to the event:<br />
* To be announced<br />
<br />
== Topics and Projects ==<br />
<br />
<!--==== Roadmap development ====<br />
*As needed, refine the [[CTK-Roadmap|roadmap for the CTK core]].--><br />
<br />
==== DICOM Application Hosting ====<br />
<br />
* Refine, extend, [[DICOM_Application_Hosting_Testing | test]], and integrate with applications<br />
* See also [[CTK-Hackfest-Nov-2011#DICOM_Application_Hosting | (some still open) tasks]] and [[Hackfest_Nice_AppHosting_Progress | progress]] from the last hackfest<br />
* Goal: connect some real code via command line interface<br />
<br />
==== DICOM Database and Networking ====<br />
<br />
* Dig into ongoing developments. See [[CtkDICOM]] for discussion.<br />
* See CTK DICOM support is used in Slicer 4.2<br />
** [http://wiki.slicer.org/slicerWiki/index.php/Documentation/4.2/Modules/DICOM End-user documentation]<br />
** [http://na-mic.org/Bug/search.php?project_id=3&category=Module+DICOM&sticky_issues=on&sortby=last_updated&dir=DESC&hide_status_id=90 Slicer4 DICOM Bugs and Feature Requests]<br />
** SlicerRT Issues:<br />
*** https://www.assembla.com/spaces/slicerrt/tickets/25 - display of ^ (carat character) in ctkDICOMModel<br />
*** https://www.assembla.com/spaces/slicerrt/tickets/153 - extension import failure (slicer issue)<br />
*** https://www.assembla.com/spaces/slicerrt/tickets/36 - non-uniform study information in RT files<br />
<br />
==== QAT ====<br />
Quality Assurance Toolkit -> how to integrate in CTK<br />
<br />
==== Widgets ====<br />
<br />
* Discuss and refine as needed.<br />
* [https://www.assembla.com/spaces/slicerrt/wiki/20120125_Slicer_DICOM_browser_meeting SlicerRt example dicom interfaces discussion]<br />
<br />
==== Tests Framework ====<br />
Try QtTesting with CTK applications<br />
<br />
==== Build Systems & Software process ====<br />
<br />
<!--* <del>Update PythonQt dependency so that CTK can build against Qt 4.8</del><br />
** <del>See [https://github.com/pieper/PythonQt/tree/svn-mirror this experiment] to make a ctk-compatible version of the updated PythonQt - it works, but is not yet fully patched.</del><br />
** <del>[http://my.cdash.org/viewBuildError.php?buildid=362919 Some operator overloading issues in DAH]</del><br />
** Updated PythonQt: [https://github.com/commontk/PythonQt/pull/1 #1], [https://github.com/commontk/PythonQt/pull/2 #2] and [https://github.com/commontk/PythonQt/pull/3 #3] {{done}}<br />
** Updated CTK: [https://github.com/commontk/CTK/issues/189 #189], [https://github.com/commontk/CTK/issues/157 #157] {{done}}<br />
** Updated Slicer [http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=20601 r20601] {{done}}<br />
** Added [https://github.com/commontk/PythonQt#readme documentation] on PythonQt. {{done}}--><br />
<br />
<br />
* Update to [http://git.dcmtk.org/web?p=dcmtk.git;a=summary latest DCMTK]<br />
** includes dcmrt<br />
** need to pick a commit to standardize on<br />
** investigate shared/static library building. (Static instances of classes getting destructed in wrong order)<br />
** incorporate version checking <br />
*** build ctk against head or snapshot version<br />
<br />
* Prepare Debian packaging (Marco)<br />
** Resolve outstanding issues<br />
** Make CTK also build with latest stable DCMTK release (3.6.0)<br />
<br />
* Evaluate Qt5 (Sascha)<br />
<br />
* <del>Setup developer package</del><br />
** See [https://github.com/commontk/CTK/issues/10 #10] and [https://github.com/commontk/CTK/issues/65 #65]<br />
** Work in progress - See topic [https://github.com/jcfr/CTK/compare/65-packaging-support 65-packaging-support]<br />
<br />
<br />
<!-- * <del>Talk with Dominique (Debian packager) to understand what is missing</del> See https://github.com/commontk/CTK/pull/158<br />
** <del>Build from upstream PythonQt (to be done this week)</del> {{done}} Few patches still need to be contributed upstream. See [https://github.com/commontk/PythonQt#readme documentation]--><br />
** Release a version of CTK (Work on policy this week and maybe release this week).<br />
<br />
<!--* <del>Generalize documentation of CMake macro so that it can be-used.</del>--><br />
** Work in progress - See [https://github.com/jcfr/CTK/compare/master...cmake-doxygen-filter-reuse cmake-doxygen-filter-reuse]<br />
<br />
==== Command Line Modules ====<br />
* Extract CLI interface <br />
** Unify VPH and Slicer refactoring<br />
* Qt SEM XML widget<br />
* Follow on interoperability tests done in [[CLI_In_Context]]<br />
* Refine CLI XML standard<br />
** Text format for description/help/acknowledgement/resources: plain text ? html ? structured text ? github markup ?<br />
** Multiple categories per module ?<br />
** CLI XML versioning.<br />
<br />
== Agenda ==<br />
<br />
==== Monday ====<br />
<!--Start at 9:00am<br />
Arrive and get settled in the morning. Discussion of plans for the week will get underway when everyone has arrived.<br />
Review of goals and ideas--><br />
<br />
10:30am Welcome<br />
<br />
10:45 - 12:00 Round table: everyone presents 10-15 minutes how CTK is used in their project. And what's new in CTK (what has been added since previous hackfest)<br />
<br />
: CTK in use:<br />
:* MSVTK: [http://www.msvtk.org/content/electro-physiological-dataset-application ECG], HAI, Buttons (DG/AL, JF) (10m)<br />
:** Give your feedback: http://www.msvtk.org/content/evaluation<br />
:* [http://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Modules/DICOM DICOM in Slicer] (SP) (5m)<br />
:* [http://www.commontk.org/index.php/Documentation/CLI_In_Context CLI in Gimias, MITK, NiftyView]... (YM, SZ...) (10m)<br />
: What's new ?<br />
:* [http://www.commontk.org/index.php/Documentation/ImageGallery New widgets] in CTK(JF, JCFR) (e.g. ctkCoordinatesWidget, ctkExpandableWidgetctkSizeGrip, ctkPathLineEdit, ctkPanelSettings...) (10m)<br />
:* [http://www.commontk.org/index.php/Documentation/Command_Line_Interface CLI] in CTK (SZ, YM) (15m)<br />
<br />
1:00pm Lunch<br />
<br />
: Discuss plans/priorities for hacking<br />
<br />
3:30pm Coffee Break<br />
<br />
5:00pm Close<br />
<br />
==== Tuesday ====<br />
<!--hack, hack, hack...--><br />
9:30am Welcome<br />
<br />
11:00am Coffee Break<br />
<br />
1:00pm Lunch<br />
<br />
5:00pm Close<br />
<br />
==== Wednesday ====<br />
<!--Review of progress--><br />
9:30am Welcome<br />
<br />
11:00am Coffee Break<br />
<br />
1:00pm Lunch<br />
<br />
5:00pm Close<br />
<br />
==== Thursday ====<br />
<!--Hack, hack, hack...--><br />
9:30am Welcome<br />
<br />
11:00am Coffee Break<br />
<br />
1:00pm Lunch<br />
<br />
5:00pm Close<br />
<br />
==== Friday ====<br />
<!--* 10:30 Review hacking progress<br />
*Tour of [http://ncigt.org/pages/AMIGO AMIGO].<br />
** Leave 1249 by 12:00. Stop for lunch on the way and meet Isaiah at AMIGO at 2:00.<br />
** Turn in badges - do not plan to return to 1249.<br />
End by 5:00pm--><br />
9:30am Welcome<br />
<br />
11:00am Coffee Break<br />
<br />
1:00pm Lunch<br />
<br />
2:00pm Wrap up discussion and Meeting Closes<br />
* Update project status on wiki<br />
<br />
== Travel & Hotel ==<br />
<br />
'''Local contact'''<br />
If you have any troubles during your visit, call Alessandro: +39 342 1401554 or Daniele: +39 348 7260365<br />
<br />
'''Airport''' <br />
* [http://www.bologna-airport.it/uk/?LN=UK Bologna G.Marconi (BLQ)]<br />
<br />
'''Transportation on Site'''<br />
<br />
Airport Shuttle from airport to Railway Station (near to meeting location) 6 euro, link: http://www.atc.bo.it/orari/aerobus-airport-railway-station-link<br />
<br />
Taxi from airport to Railway Station 15-20 euro<br />
<br />
<!--Google's public transit search works well in Bologna. The site is about 5 blocks from subway stops and busses. Parking on-site is $10-$15 per day. Cabs are fairly convenient for most trips (perhaps $40 to/from the airport but $10-$15 for trips within town).--><br />
<br />
'''Lodging''' <br />
<br />
There are a lot of hotel options in Bologna.<br />
<br />
Millennium Hotel[http://www.millennhotelbologna.it/en/index.html]: close to the centre and to the central railways station. <br />
<br />
Star Hotel [http://www.starhotels.com/hotels/excelsior/en/home.aspx]: close to the centre and in front of the central railways station. <br />
<br />
Mercure Hotel [http://www.accorhotels.com/it/hotel-1310-mercure-bologna-centro/index.shtml] (Italian link, you need to find the page on your language from the Accor portal) In front of the central railways station.<br />
<br />
Albergo Atlantic [http://www.albergoatlantic.net/ENGLISH/index.html] In the city centre, 10' walking time from the central railways station.<br />
<br />
I Portici Hotel [http://www.iporticihotel.com/en/i-portici-hotel-bologna]10' walking time from the central railways station. <br />
<br />
<br />
<br />
'''Meeting Location''' <br />
<!--* [http://www.spl.harvard.edu/pages/Directions#Getting_to_1249_Boylston_Street. BWH Surgical Planning Laboratory] [http://maps.google.com/maps?q=1249+boylston+street+boston+ma+02215&hl=en&hnear=1249+Boylston+St,+Boston,+Massachusetts+02215&gl=us&t=m&z=16 1249 Boylston Street].--><br />
TBA We are finding a meeting venue that could be in the city centre or in the central station area. <br />
<br />
'''Catering'''<br />
<br />
It will be provided by the meeting venue. <br />
<br />
'''Weather'''<br />
<br />
* Probably not sunny, colder than Italian average :-), even it is quite variable, temperatures can range from 0°C to 10°C (min) and from 5°C to 20°C.</div>Finetjulhttp://www.commontk.org/index.php?title=CTK-Hackfest-Dec-2012&diff=1713CTK-Hackfest-Dec-20122012-12-10T17:08:20Z<p>Finetjul: /* Monday */</p>
<hr />
<div>== Event pictures ==<br />
Images from the hackfest<br />
{|<br />
|}<br />
<br />
== Introduction ==<br />
<br />
'''Date:''' December 10-14, 2012<br />
<br />
'''Location:''' [http://www.iporticihotel.com/en | Hotel i Portici] in Via Indipendenza , Bologna, Italy, Sala Montagnola (Room) <br />
<br />
'''Goal:''' A follow on to the [[Commontk:Current_events#Past_events|wildly successful previous hackfests!]]<br />
<br />
'''Requirements:''' Attendees must be willing to spend their time during the event writing ctk code that contributes to the main [[CTK-Roadmap | ctk roadmap]]. This means spending the week immersed in C++, Qt, DCMTK, CMake, and related technologies. People who do not feel qualified for this task are politely not invited :)<br />
<br />
'''Group size:''' Maximum 20 participants so we can have a manageable working meeting. The organizing committee will invite and select participants based on input from [[TheTeam]].<br />
<br />
'''Site Hosts:''' Alessandro Chiarini, Daniele Giunchi<br />
<br />
'''Organizing Committee:''' Ivo Wolf, Stephen Aylward, Steve Pieper<br />
<br />
'''Future Events:''' Future hackfests will be announced in advance, and we hope lots of people will be interested in participating. The venue and activities at future hackfests will be determined based on the number of active participants in the project. We welcome participation via the CTK email lists, the source code repository, and this website.<br />
<br />
== Attendees ==<br />
*So far we have received confirmation for the following people (in no particular order). <br />
<br />
'''WE HAVE REACHED THE MAXIMUM NUMBER OF PARTECIPANT - REGISTRATION CLOSED - 16 PARTECIPANTS<br />
'''<br />
<br />
Please fill in your intentions in terms of common accommodation.<br />
<br />
{|class="wikitable alternance" style="text-align:left; border:1px solid black;"<br />
|+ '''''Participants'''''<br />
|-<br />
! scope=col style="background:#cde6f8;"| Name<br />
! scope=col style="background:#cde6f8;"| Organization<br />
|-<br />
|Alessandro Chiarini<br />
|SCS, Bologna IT<br />
|-<br />
|Daniele Giunchi<br />
|SCS, Bologna IT<br />
|-<br />
|Alberto Losi<br />
|SCS, Bologna IT<br />
|-<br />
|Steve Pieper<br />
|Isomics, Inc., Cambridge, MA, USA<br />
|-<br />
| Ivo Wolf<br />
| Mannheim University of Applied Sciences & DKFZ Heidelberg<br />
|-<br />
| Jean-Chistophe Fillion-Robin<br />
| Kitware<br />
|-<br />
| Julien Finet<br />
| Kitware<br />
|-<br />
| Andreas Fetzer<br />
| DKFZ Heidelberg<br />
|-<br />
| Michael Bauer<br />
| DKFZ Heidelberg<br />
|-<br />
| Marco Nolden<br />
| DKFZ Heidelberg<br />
|-<br />
| Sascha Zelzer<br />
| DKFZ Heidelberg<br />
|-<br />
| Florian Vichot<br />
| INRIA<br />
|-<br />
| Yves Martelli<br />
| UPF<br />
|-<br />
| Claire Mouton<br />
| CREATIS<br />
|-<br />
|-<br />
| Miklos Espak<br />
| University College London (UCL)<br />
|-<br />
|}<br />
<br />
<br />
<!--<br />
* People who manifested interest in joining the fest. Please move your names up to the confirmed table, with the details as soon as you can to facilitate discussions with potential hotels.<br />
<br />
{|class="wikitable alternance" style="text-align:left; border:1px solid black;"<br />
|+ '''''Confirmed'''''<br />
|-<br />
! scope=col style="background:#cde6f8;"| Name<br />
! scope=col style="background:#cde6f8;"| Organization<br />
<br />
|}<br />
--><br />
<br />
{{Note}}There were also other invitations sent to active people on the community, and people who recently showed interest. When their intent will be known they will be added to the list.<br />
<br />
== Preparation ==<br />
<br />
Developers should bring a laptop with the [http://github.com/commontk/CTK current CTK source code] downloaded and [[Build_Instructions|built]].<br />
<br />
Use the [http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers CTK developers mailing list] to discuss build issues and topics for ongoing work.<br />
<br />
Phone conferences have been scheduled in the weeks leading to the event:<br />
* To be announced<br />
<br />
== Topics and Projects ==<br />
<br />
<!--==== Roadmap development ====<br />
*As needed, refine the [[CTK-Roadmap|roadmap for the CTK core]].--><br />
<br />
==== DICOM Application Hosting ====<br />
<br />
* Refine, extend, [[DICOM_Application_Hosting_Testing | test]], and integrate with applications<br />
* See also [[CTK-Hackfest-Nov-2011#DICOM_Application_Hosting | (some still open) tasks]] and [[Hackfest_Nice_AppHosting_Progress | progress]] from the last hackfest<br />
* Goal: connect some real code via command line interface<br />
<br />
==== DICOM Database and Networking ====<br />
<br />
* Dig into ongoing developments. See [[CtkDICOM]] for discussion.<br />
* See CTK DICOM support is used in Slicer 4.2<br />
** [http://wiki.slicer.org/slicerWiki/index.php/Documentation/4.2/Modules/DICOM End-user documentation]<br />
** [http://na-mic.org/Bug/search.php?project_id=3&category=Module+DICOM&sticky_issues=on&sortby=last_updated&dir=DESC&hide_status_id=90 Slicer4 DICOM Bugs and Feature Requests]<br />
** SlicerRT Issues:<br />
*** https://www.assembla.com/spaces/slicerrt/tickets/25 - display of ^ (carat character) in ctkDICOMModel<br />
*** https://www.assembla.com/spaces/slicerrt/tickets/153 - extension import failure (slicer issue)<br />
*** https://www.assembla.com/spaces/slicerrt/tickets/36 - non-uniform study information in RT files<br />
<br />
==== QAT ====<br />
Quality Assurance Toolkit -> how to integrate in CTK<br />
<br />
==== Widgets ====<br />
<br />
* Discuss and refine as needed.<br />
* [https://www.assembla.com/spaces/slicerrt/wiki/20120125_Slicer_DICOM_browser_meeting SlicerRt example dicom interfaces discussion]<br />
<br />
==== Tests Framework ====<br />
Try QtTesting with CTK applications<br />
<br />
==== Build Systems & Software process ====<br />
<br />
<!--* <del>Update PythonQt dependency so that CTK can build against Qt 4.8</del><br />
** <del>See [https://github.com/pieper/PythonQt/tree/svn-mirror this experiment] to make a ctk-compatible version of the updated PythonQt - it works, but is not yet fully patched.</del><br />
** <del>[http://my.cdash.org/viewBuildError.php?buildid=362919 Some operator overloading issues in DAH]</del><br />
** Updated PythonQt: [https://github.com/commontk/PythonQt/pull/1 #1], [https://github.com/commontk/PythonQt/pull/2 #2] and [https://github.com/commontk/PythonQt/pull/3 #3] {{done}}<br />
** Updated CTK: [https://github.com/commontk/CTK/issues/189 #189], [https://github.com/commontk/CTK/issues/157 #157] {{done}}<br />
** Updated Slicer [http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=20601 r20601] {{done}}<br />
** Added [https://github.com/commontk/PythonQt#readme documentation] on PythonQt. {{done}}--><br />
<br />
<br />
* Update to [http://git.dcmtk.org/web?p=dcmtk.git;a=summary latest DCMTK]<br />
** includes dcmrt<br />
** need to pick a commit to standardize on<br />
** investigate shared/static library building. (Static instances of classes getting destructed in wrong order)<br />
** incorporate version checking <br />
*** build ctk against head or snapshot version<br />
<br />
* Prepare Debian packaging (Marco)<br />
** Resolve outstanding issues<br />
** Make CTK also build with latest stable DCMTK release (3.6.0)<br />
<br />
* Evaluate Qt5 (Sascha)<br />
<br />
* <del>Setup developer package</del><br />
** See [https://github.com/commontk/CTK/issues/10 #10] and [https://github.com/commontk/CTK/issues/65 #65]<br />
** Work in progress - See topic [https://github.com/jcfr/CTK/compare/65-packaging-support 65-packaging-support]<br />
<br />
<br />
<!-- * <del>Talk with Dominique (Debian packager) to understand what is missing</del> See https://github.com/commontk/CTK/pull/158<br />
** <del>Build from upstream PythonQt (to be done this week)</del> {{done}} Few patches still need to be contributed upstream. See [https://github.com/commontk/PythonQt#readme documentation]--><br />
** Release a version of CTK (Work on policy this week and maybe release this week).<br />
<br />
<!--* <del>Generalize documentation of CMake macro so that it can be-used.</del>--><br />
** Work in progress - See [https://github.com/jcfr/CTK/compare/master...cmake-doxygen-filter-reuse cmake-doxygen-filter-reuse]<br />
<br />
==== Command Line Modules ====<br />
* Extract CLI interface <br />
** Unify VPH and Slicer refactoring<br />
* Qt SEM XML widget<br />
* Follow on interoperability tests done in [[CLI_In_Context]]<br />
<br />
== Agenda ==<br />
<br />
==== Monday ====<br />
<!--Start at 9:00am<br />
Arrive and get settled in the morning. Discussion of plans for the week will get underway when everyone has arrived.<br />
Review of goals and ideas--><br />
<br />
10:30am Welcome<br />
<br />
10:45 - 12:00 Round table: everyone presents 10-15 minutes how CTK is used in their project. And what's new in CTK (what has been added since previous hackfest)<br />
<br />
: CTK in use:<br />
:* MSVTK: [http://www.msvtk.org/content/electro-physiological-dataset-application ECG], HAI, Buttons (DG/AL, JF) (10m)<br />
:** Give your feedback: http://www.msvtk.org/content/evaluation<br />
:* [http://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Modules/DICOM DICOM in Slicer] (SP) (5m)<br />
:* [http://www.commontk.org/index.php/Documentation/CLI_In_Context CLI in Gimias, MITK, NiftyView]... (YM, SZ...) (10m)<br />
: What's new ?<br />
:* [http://www.commontk.org/index.php/Documentation/ImageGallery New widgets] in CTK(JF, JCFR) (e.g. ctkCoordinatesWidget, ctkExpandableWidgetctkSizeGrip, ctkPathLineEdit, ctkPanelSettings...) (10m)<br />
:* [http://www.commontk.org/index.php/Documentation/Command_Line_Interface CLI] in CTK (SZ, YM) (15m)<br />
<br />
1:00pm Lunch<br />
<br />
: Discuss plans/priorities for hacking<br />
<br />
3:30pm Coffee Break<br />
<br />
5:00pm Close<br />
<br />
==== Tuesday ====<br />
<!--hack, hack, hack...--><br />
9:30am Welcome<br />
<br />
11:00am Coffee Break<br />
<br />
1:00pm Lunch<br />
<br />
5:00pm Close<br />
<br />
==== Wednesday ====<br />
<!--Review of progress--><br />
9:30am Welcome<br />
<br />
11:00am Coffee Break<br />
<br />
1:00pm Lunch<br />
<br />
5:00pm Close<br />
<br />
==== Thursday ====<br />
<!--Hack, hack, hack...--><br />
9:30am Welcome<br />
<br />
11:00am Coffee Break<br />
<br />
1:00pm Lunch<br />
<br />
5:00pm Close<br />
<br />
==== Friday ====<br />
<!--* 10:30 Review hacking progress<br />
*Tour of [http://ncigt.org/pages/AMIGO AMIGO].<br />
** Leave 1249 by 12:00. Stop for lunch on the way and meet Isaiah at AMIGO at 2:00.<br />
** Turn in badges - do not plan to return to 1249.<br />
End by 5:00pm--><br />
9:30am Welcome<br />
<br />
11:00am Coffee Break<br />
<br />
1:00pm Lunch<br />
<br />
2:00pm Wrap up discussion and Meeting Closes<br />
* Update project status on wiki<br />
<br />
== Travel & Hotel ==<br />
<br />
'''Local contact'''<br />
If you have any troubles during your visit, call Alessandro: +39 342 1401554 or Daniele: +39 348 7260365<br />
<br />
'''Airport''' <br />
* [http://www.bologna-airport.it/uk/?LN=UK Bologna G.Marconi (BLQ)]<br />
<br />
'''Transportation on Site'''<br />
<br />
Airport Shuttle from airport to Railway Station (near to meeting location) 6 euro, link: http://www.atc.bo.it/orari/aerobus-airport-railway-station-link<br />
<br />
Taxi from airport to Railway Station 15-20 euro<br />
<br />
<!--Google's public transit search works well in Bologna. The site is about 5 blocks from subway stops and busses. Parking on-site is $10-$15 per day. Cabs are fairly convenient for most trips (perhaps $40 to/from the airport but $10-$15 for trips within town).--><br />
<br />
'''Lodging''' <br />
<br />
There are a lot of hotel options in Bologna.<br />
<br />
Millennium Hotel[http://www.millennhotelbologna.it/en/index.html]: close to the centre and to the central railways station. <br />
<br />
Star Hotel [http://www.starhotels.com/hotels/excelsior/en/home.aspx]: close to the centre and in front of the central railways station. <br />
<br />
Mercure Hotel [http://www.accorhotels.com/it/hotel-1310-mercure-bologna-centro/index.shtml] (Italian link, you need to find the page on your language from the Accor portal) In front of the central railways station.<br />
<br />
Albergo Atlantic [http://www.albergoatlantic.net/ENGLISH/index.html] In the city centre, 10' walking time from the central railways station.<br />
<br />
I Portici Hotel [http://www.iporticihotel.com/en/i-portici-hotel-bologna]10' walking time from the central railways station. <br />
<br />
<br />
<br />
'''Meeting Location''' <br />
<!--* [http://www.spl.harvard.edu/pages/Directions#Getting_to_1249_Boylston_Street. BWH Surgical Planning Laboratory] [http://maps.google.com/maps?q=1249+boylston+street+boston+ma+02215&hl=en&hnear=1249+Boylston+St,+Boston,+Massachusetts+02215&gl=us&t=m&z=16 1249 Boylston Street].--><br />
TBA We are finding a meeting venue that could be in the city centre or in the central station area. <br />
<br />
'''Catering'''<br />
<br />
It will be provided by the meeting venue. <br />
<br />
'''Weather'''<br />
<br />
* Probably not sunny, colder than Italian average :-), even it is quite variable, temperatures can range from 0°C to 10°C (min) and from 5°C to 20°C.</div>Finetjulhttp://www.commontk.org/index.php?title=Documentation/ImageGallery&diff=1710Documentation/ImageGallery2012-12-10T13:53:14Z<p>Finetjul: </p>
<hr />
<div>==Widgets==<br />
<gallery widths=300 px heights=200px perrow=3><br />
Image:CtkActionsWidget.png|[http://www.commontk.org/docs/html/classctkActionsWidget.html ctkActionsWidget]<br>A custom QTreeView that shows the QActions (shortcuts) of an application.<br />
Image:CtkAxesWidget.png|[http://www.commontk.org/docs/html/classctkAxesWidget.html ctkAxesWidget]<br>A widget to select an axis (RAS).<br />
Image:CtkCheckableComboBox.png|[http://www.commontk.org/docs/html/classctkCheckableComboBox.html ctkCheckableComboBox]<br>A combo box to check items.<br />
Image:CtkCheckableHeaderView.png|[http://www.commontk.org/docs/html/classctkCheckableHeaderView.html ctkCheckableHeaderView]<br>A QHeaderView that support checkable sections. The checkState can be propagated to the model items.<br />
Image:CtkCheckablePushButton.png|[http://www.commontk.org/docs/html/classctkCheckablePushButton.html ctkCheckablePushButton]<br>A QPushButton with a custom checkbox. By default the checkable state is controlled with a checkbox.<br />
Image:CtkCollapsibleWidget.png|[http://www.commontk.org/docs/html/classctkCollapsibleButton.html ctkCollapsibleButton]<br>A container with a QPushButton on top that controls the visible state of the contents<br />
Image:CtkCollapsibleGroupBox.png|[http://www.commontk.org/docs/html/classctkCollapsibleGroupBox.html ctkCollapsibleGroupBox]<br>A QGroupBox that collapses/expands when checked/unchecked<br />
Image:CtkColorDialog.png|[http://www.commontk.org/docs/html/classctkColorDialog.html ctkColorDialog]<br>A QColorDialog that can be customized with extra widgets(tabs)<br />
Image:CtkColorPickerButton.png|[http://www.commontk.org/docs/html/classctkColorPickerButton.html ctkColorPickerButton]<br>A QPushButton with a colorful icon, opening a color chooser dialog on click<br />
Image:CtkTitleComboBox.png|[http://www.commontk.org/docs/html/classctkComboBox.html ctkComboBox]<br>An advanced QComboBox with default icon/title, persistent text...<br />
Image:CtkCoordinatesWidget.png|[http://www.commontk.org/docs/html/classctkCoordinatesWidget.html ctkCoordinatesWidget]<br>A QDoubleSpinBox container that groups signals/slots of 3D vectors(i.e. X,Y,Z)<br />
Image:CtkVTKScalarsToColorsView.png|[http://www.commontk.org/docs/html/classctkVTKScalarsToColorsView.html ctkVTKScalarsToColorsView]<br>A QVTKWidget that contains VTK Charts for transfer function rendering/interfacing<br />
Image:CtkDateRangeWidget.png|[http://www.commontk.org/docs/html/classctkDateRangeWidget.html ctkDateRangeWidget]<br>A utility widget to select a range in time.<br />
Image:CtkDirectoryButton.png|[http://www.commontk.org/docs/html/classctkDirectoryButton.html ctkDirectoryButton]<br>A QPushButton that display a directory path and popups a QFileDialog on click. The selected directory is then displayed on the button and a signal emitted.<br />
Image:CtkRangeSlider.png|[http://www.commontk.org/docs/html/classctkDoubleRangeSlider.html ctkDoubleRangeSlider]<br>A ctkRangeSlider handling double values.<br />
Image:CtkDoubleSlider.png|[http://www.commontk.org/docs/html/classctkDoubleSlider.html ctkDoubleSlider]<br>A slider handling doubles<br />
Image:CtkExpandableWidget.png|[http://www.commontk.org/docs/html/classctkExpandableWidget.html ctkExpandableWidget]<br>A resizable (size-hint) frame or grip (with [http://www.commontk.org/docs/html/classctkSizeGrip.html ctkSizeGrip]).<br />
Image:CtkErrorLogWidget.png|[http://www.commontk.org/docs/html/classctkErrorLogWidget.html ctkErrorLogWidget]<br>A widget to show errors and logs of your application<br />
Image:ExpandButton.png|[http://www.commontk.org/docs/html/classctkExpandButton.html ctkExpandButton]<br>A QToolButton with a standard icon, to show, hide widgets.<br />
Image:CtkFileDialog.png|[http://www.commontk.org/docs/html/classctkFileDialog.html ctkFileDialog]<br>A customizable QFileDialog (extra options can be added to the file dialog).<br />
Image:CtkFittedTextBrowser.png|[http://www.commontk.org/docs/html/classctkFittedTextBrowser.html ctkFittedTextBrowser]<br>A QTextBrowser that returns a dynamic vertical size hint depending of it's width.<br />
Image:CtkFittedTextBrowser2.png|[http://www.commontk.org/docs/html/classctkFittedTextBrowser.html ctkFittedTextBrowser]<br>A QTextBrowser that returns a dynamic vertical size hint depending of it's width.<br />
Image:CtkFlowLayout.png|[http://www.commontk.org/docs/html/classctkFlowLayout.html ctkFlowLayout]<br>A QLayout that dynamically lay-outs widgets based on the available width/height.<br />
Image:CtkFontButton.png|[http://www.commontk.org/docs/html/classctkFontButton.html ctkFontButton]<br>A pushbutton to select a font.<br />
Image:CtkLayoutManager.png|[http://www.commontk.org/docs/html/classctkLayoutManager.html ctkLayoutManager]<br>An XML layout manager for dynamic and serializable layout.<br />
Image:CtkMaterialPropertyWidget.png|[http://www.commontk.org/docs/html/classctkMaterialPropertyWidget.html ctkMaterialPropertyWidget]<br>A widget to control material properties<br />
Image:CtkMenuButton.png|[http://www.commontk.org/docs/html/classctkMenuButton.html ctkMenuButton]<br>A QPushButton with a dedicated area that popups a QMenu<br />
Image:CtkMenuComboBox.png|[http://www.commontk.org/docs/html/classctkMenuComboBox.html ctkMenuComboBox]<br>A QComboBox links with a Qmenu<br />
Image:CtkVTKMatrixWidget.png|[http://www.commontk.org/docs/html/classctkMatrixWidget.html ctkMatrixWidget]<br>A matrix table<br />
Image:CtkModalityWidget.png|[http://www.commontk.org/docs/html/classctkModalityWidget.html ctkModalityWidget]<br>A radio button group of medical (DICOM) modalities<br />
Image:CtkPathLineEdit.png|[http://www.commontk.org/docs/html/classctkPathLineEdit.html ctkPathLineEdit]<br>An auto-complete line edit to pick file path and remember history. <br />
Image:CtkPopupWidget.png|[http://www.commontk.org/docs/html/classctkPopupWidget.html ctkPopupWidget]<br>A widget that opens/closes dynamically. Read the [http://www.kitware.com/blog/home/post/169 blog post]. <br />
Image:CtkRangeSlider.png|[http://www.commontk.org/docs/html/classctkRangeSlider.html ctkRangeSlider]<br>A QSlider with 2 handles to select 2 values.<br />
Image:CtkRangeWidget.png|[http://www.commontk.org/docs/html/classctkRangeWidget.html ctkRangeWidget]<br>A ctkDoubleRangeSlider with 2 linked spinboxes.<br />
Image:CtkScreenshotDialog.png|[http://www.commontk.org/docs/html/classctkScreenshotDialog.html ctkScreenshotDialog]<br>A dialog to take screenshots of any QWidget<br />
Image:CtkSearchBox3.png|[http://www.commontk.org/docs/html/classctkSearchBox.html ctkSearchBox]<br>A QLineEdit with 2 QIcon to be used to filter other widgets<br />
Image:CtkSettingsDialog.png|[http://www.commontk.org/docs/html/classctkSettingsDialog.html ctkSettingsDialog]<br>An easy to setup dialog to control application settings.<br />
Image:CtkSliderSpinBoxWidget.png|[http://www.commontk.org/docs/html/classctkSliderWidget.html ctkSliderWidget]<br>A pair of a ctkDoubleSlider and a QDoubleSpinBox bound together<br />
Image:CtkThumbnailLabel.png|[http://www.commontk.org/docs/html/classctkThumbnailLabel.html ctkThumbnailLabel]<br>An advanced label to give control over the pixmap resizing and text position.<br />
Image:CtkThumbnailListWidget.png|[http://www.commontk.org/docs/html/classctkThumbnailListWidget.html ctkThumbnailListWidget]<br>A collection of ctkThumbnailLabels in a flexible layout.<br />
Image:CtkTransferFunctionWidget.png|[http://www.commontk.org/docs/html/classctkTransferFunctionWidget.html ctkTransferFunctionWidget]<br>A widget that displays [[Documentation/ctkTransferFunctionWidget|ctkTransferFunctions]]<br />
Image:CtkTreeComboBox.png|[http://www.commontk.org/docs/html/classctkTreeComboBox.html ctkTreeComboBox]<br>A QComboBox that displays items in a tree view<br />
</gallery><br />
<br />
==Visualization/VTK/Widgets==<br />
<gallery widths=300 px heights=200px perrow=3><br />
Image:CtkVTKDataSetArrayComboBox.png|[http://www.commontk.org/docs/html/classctkVTKDataSetArrayComboBox.html ctkVTKDataSetArrayComboBox]<br>A combobox populated with a vtkDataSet data arrays<br />
Image:CtkVTKMagnifyView.png|[http://www.commontk.org/docs/html/classctkVTKMagnifyView.html ctkVTKMagnifyView]<br>A widget that display zoomed contents of a VTK render window.<br />
Image:CtkVTKMatrixWidget.png|[http://www.commontk.org/docs/html/classctkVTKMatrixWidget.html ctkVTKMatrixWidget]<br>A QTableWidget specially conceived for displaying/editing matrices<br />
Image:CtkVTKRenderView.png|[http://www.commontk.org/docs/html/classctkVTKRenderView.html ctkVTKRenderView]<br>A QVTKRenderWidget with additional utility functions<br />
Image:CtkVTKSliceView-Lightbox.png|[http://www.commontk.org/docs/html/classctkVTKSliceView.html ctkVTKSliceView]<br>A QVTKRenderWidget to display 2D images (support lightbox mode)<br />
Image:CtkMaterialPropertyWidget.png|[http://www.commontk.org/docs/html/classctkVTKSurfaceMaterialPropertyWidget.html ctkVTKSurfaceMaterialPropertyWidget]<br>A widget to control vtkProperty most common properties<br />
Image:CtkVTKTextPropertyWidget.png|[http://www.commontk.org/docs/html/classctkVTKTextPropertyWidget.html ctkVTKTextPropertyWidget]<br>A widget to control vtkTextProperty most common properties<br />
Image:CtkVTKThresholdWidget.png|[http://www.commontk.org/docs/html/classctkVTKThresholdWidget.html ctkVTKThresholdWidget]<br>A widget to control a threshold min/max/height in a vtkPiecewiseFunction<br />
Image:CtkVTKThumbnailView.png|[http://www.commontk.org/docs/html/classctkVTKThumbnailView.html ctkVTKThumbnailView]<br>A widget to show the viewport of any vtkRenderer<br />
</gallery><br />
<br />
==DICOM==<br />
<gallery widths=300 px heights=200px perrow=3><br />
Image:CtkDICOM-hackfest-Feb-2011.png|[http://www.commontk.org/docs/html/classctkDICOMAppWidget.html ctkDICOMAppWidget]<br>A DICOM widget to manage local and remote DICOM image database<br />
Image:CtkDICOMImportWidget.png|[http://www.commontk.org/docs/html/classctkDICOMImportWidget.html ctkDICOMImportWidget]<br>Panel to select a directory containing DICOM files on a local file system.<br />
Image:CtkDICOMModel.png|[http://www.commontk.org/docs/html/classctkDICOMModel.html ctkDICOMModel]<br>A QAbstractItemModel to represent DICOM files.<br />
Image:CtkDICOMServerNodeWidget.png|[http://www.commontk.org/docs/html/classctkDICOMServerNodeWidget.html ctkDICOMServerNodeWidget]<br>A widget to list/add/remove remote servers.<br />
</gallery><br />
<br />
==Scripting/Python==<br />
<gallery widths=300 px heights=200px perrow=3><br />
Image:CtkPythonShell.png|[http://www.commontk.org/docs/html/classctkPythonShell.html ctkPythonShell]<br>A console to interact with python<br />
</gallery></div>Finetjulhttp://www.commontk.org/index.php?title=Documentation/ImageGallery&diff=1709Documentation/ImageGallery2012-12-10T13:48:47Z<p>Finetjul: /* Widgets */ Add ctkExpandableWidget/ctkSizeGrip</p>
<hr />
<div>==Widgets==<br />
<gallery widths=300 px heights=200px perrow=3><br />
Image:CtkActionsWidget.png|[http://www.commontk.org/docs/html/classctkActionsWidget.html ctkActionsWidget]<br>A custom QTreeView that shows the QActions (shortcuts) of an application.<br />
Image:CtkAxesWidget.png|[http://www.commontk.org/docs/html/classctkAxesWidget.html ctkAxesWidget]<br>A widget to select an axis (RAS).<br />
Image:CtkCheckableComboBox.png|[http://www.commontk.org/docs/html/classctkCheckableComboBox.html ctkCheckableComboBox]<br>A combo box to check items.<br />
Image:CtkCheckableHeaderView.png|[http://www.commontk.org/docs/html/classctkCheckableHeaderView.html ctkCheckableHeaderView]<br>A QHeaderView that support checkable sections. The checkState can be propagated to the model items.<br />
Image:CtkCheckablePushButton.png|[http://www.commontk.org/docs/html/classctkCheckablePushButton.html ctkCheckablePushButton]<br>A QPushButton with a custom checkbox. By default the checkable state is controlled with a checkbox.<br />
Image:CtkCollapsibleWidget.png|[http://www.commontk.org/docs/html/classctkCollapsibleButton.html ctkCollapsibleButton]<br>A container with a QPushButton on top that controls the visible state of the contents<br />
Image:CtkCollapsibleGroupBox.png|[http://www.commontk.org/docs/html/classctkCollapsibleGroupBox.html ctkCollapsibleGroupBox]<br>A QGroupBox that collapses/expands when checked/unchecked<br />
Image:CtkColorDialog.png|[http://www.commontk.org/docs/html/classctkColorDialog.html ctkColorDialog]<br>A QColorDialog that can be customized with extra widgets(tabs)<br />
Image:CtkColorPickerButton.png|[http://www.commontk.org/docs/html/classctkColorPickerButton.html ctkColorPickerButton]<br>A QPushButton with a colorful icon, opening a color chooser dialog on click<br />
Image:CtkTitleComboBox.png|[http://www.commontk.org/docs/html/classctkComboBox.html ctkComboBox]<br>An advanced QComboBox with default icon/title, persistent text...<br />
Image:CtkCoordinatesWidget.png|[http://www.commontk.org/docs/html/classctkCoordinatesWidget.html ctkCoordinatesWidget]<br>A QDoubleSpinBox container that groups signals/slots of 3D vectors(i.e. X,Y,Z)<br />
Image:CtkVTKScalarsToColorsView.png|[http://www.commontk.org/docs/html/classctkVTKScalarsToColorsView.html ctkVTKScalarsToColorsView]<br>A QVTKWidget that contains VTK Charts for transfer function rendering/interfacing<br />
Image:CtkDateRangeWidget.png|[http://www.commontk.org/docs/html/classctkDateRangeWidget.html ctkDateRangeWidget]<br>A utility widget to select a range in time.<br />
Image:CtkDirectoryButton.png|[http://www.commontk.org/docs/html/classctkDirectoryButton.html ctkDirectoryButton]<br>A QPushButton that display a directory path and popups a QFileDialog on click. The selected directory is then displayed on the button and a signal emitted.<br />
Image:CtkRangeSlider.png|[http://www.commontk.org/docs/html/classctkDoubleRangeSlider.html ctkDoubleRangeSlider]<br>A ctkRangeSlider handling double values.<br />
Image:CtkDoubleSlider.png|[http://www.commontk.org/docs/html/classctkDoubleSlider.html ctkDoubleSlider]<br>A slider handling doubles<br />
Image:CtkExpandableWidget.png|[http://www.commontk.org/docs/html/classctkExpandableWidget.html ctkExpandableWidget]<br>A resizable (size-hint) frame or grip (with [http://www.commontk.org/docs/html/classctkSizeGrip.html ctkSizeGrip]).<br />
Image:CtkErrorLogWidget.png|[http://www.commontk.org/docs/html/classctkErrorLogWidget.html ctkErrorLogWidget]<br>A widget to show errors and logs of your application<br />
Image:ExpandButton.png|[http://www.commontk.org/docs/html/classctkExpandButton.html ctkExpandButton]<br>A QToolButton with a standard icon, to show, hide widgets.<br />
Image:CtkFileDialog.png|[http://www.commontk.org/docs/html/classctkFileDialog.html ctkFileDialog]<br>A customizable QFileDialog (extra options can be added to the file dialog).<br />
Image:CtkFittedTextBrowser.png|[http://www.commontk.org/docs/html/classctkFittedTextBrowser.html ctkFittedTextBrowser]<br>A QTextBrowser that returns a dynamic vertical size hint depending of it's width.<br />
Image:CtkFittedTextBrowser2.png|[http://www.commontk.org/docs/html/classctkFittedTextBrowser.html ctkFittedTextBrowser]<br>A QTextBrowser that returns a dynamic vertical size hint depending of it's width.<br />
Image:CtkFlowLayout.png|[http://www.commontk.org/docs/html/classctkFlowLayout.html ctkFlowLayout]<br>A QLayout that dynamically lay-outs widgets based on the available width/height.<br />
Image:CtkFontButton.png|[http://www.commontk.org/docs/html/classctkFontButton.html ctkFontButton]<br>A pushbutton to select a font.<br />
Image:CtkLayoutManager.png|[http://www.commontk.org/docs/html/classctkLayoutManager.html ctkLayoutManager]<br>An XML layout manager for dynamic and serializable layout.<br />
Image:CtkMaterialPropertyWidget.png|[http://www.commontk.org/docs/html/classctkMaterialPropertyWidget.html ctkMaterialPropertyWidget]<br>A widget to control material properties<br />
Image:CtkMenuButton.png|[http://www.commontk.org/docs/html/classctkMenuButton.html ctkMenuButton]<br>A QPushButton with a dedicated area that popups a QMenu<br />
Image:CtkMenuComboBox.png|[http://www.commontk.org/docs/html/classctkMenuComboBox.html ctkMenuComboBox]<br>A QComboBox links with a Qmenu<br />
Image:CtkVTKMatrixWidget.png|[http://www.commontk.org/docs/html/classctkMatrixWidget.html ctkMatrixWidget]<br>A matrix table<br />
Image:CtkModalityWidget.png|[http://www.commontk.org/docs/html/classctkModalityWidget.html ctkModalityWidget]<br>A radio button group of medical (DICOM) modalities<br />
Image:CtkPathLineEdit.png|[http://www.commontk.org/docs/html/classctkPathLineEdit.html ctkPathLineEdit]<br>An auto-complete line edit to pick file path and remember history. <br />
Image:CtkPopupWidget.png|[http://www.commontk.org/docs/html/classctkPopupWidget.html ctkPopupWidget]<br>A widget that opens/closes dynamically. Read the [http://www.kitware.com/blog/home/post/169 blog post]. <br />
Image:CtkRangeSlider.png|[http://www.commontk.org/docs/html/classctkRangeSlider.html ctkRangeSlider]<br>A QSlider with 2 handles to select 2 values.<br />
Image:CtkRangeWidget.png|[http://www.commontk.org/docs/html/classctkRangeWidget.html ctkRangeWidget]<br>A ctkDoubleRangeSlider with 2 linked spinboxes.<br />
Image:CtkScreenshotDialog.png|[http://www.commontk.org/docs/html/classctkScreenshotDialog.html ctkScreenshotDialog]<br>A dialog to take screenshots of any QWidget<br />
Image:CtkSearchBox3.png|[http://www.commontk.org/docs/html/classctkSearchBox.html ctkSearchBox]<br>A QLineEdit with 2 QIcon to be used to filter other widgets<br />
Image:CtkSettingsDialog.png|[http://www.commontk.org/docs/html/classctkSettingsDialog.html ctkSettingsDialog]<br>An easy to setup dialog to control application settings.<br />
Image:CtkSliderSpinBoxWidget.png|[http://www.commontk.org/docs/html/classctkSliderWidget.html ctkSliderWidget]<br>A pair of a ctkDoubleSlider and a QDoubleSpinBox bound together<br />
Image:CtkThumbnailLabel.png|[http://www.commontk.org/docs/html/classctkThumbnailLabel.html ctkThumbnailLabel]<br>An advanced label to give control over the pixmap resizing and text position.<br />
Image:CtkThumbnailListWidget.png|[http://www.commontk.org/docs/html/classctkThumbnailListWidget.html ctkThumbnailListLabel]<br>A collection of ctkThumbnailLabels in a flexible layout.<br />
Image:CtkTransferFunctionWidget.png|[http://www.commontk.org/docs/html/classctkTransferFunctionWidget.html ctkTransferFunctionWidget]<br>A widget that displays [[Documentation/ctkTransferFunctionWidget|ctkTransferFunctions]]<br />
Image:CtkTreeComboBox.png|[http://www.commontk.org/docs/html/classctkTreeComboBox.html ctkTreeComboBox]<br>A QComboBox that displays items in a tree view<br />
</gallery><br />
<br />
==Visualization/VTK/Widgets==<br />
<gallery widths=300 px heights=200px perrow=3><br />
Image:CtkVTKDataSetArrayComboBox.png|[http://www.commontk.org/docs/html/classctkVTKDataSetArrayComboBox.html ctkVTKDataSetArrayComboBox]<br>A combobox populated with a vtkDataSet data arrays<br />
Image:CtkVTKMagnifyView.png|[http://www.commontk.org/docs/html/classctkVTKMagnifyView.html ctkVTKMagnifyView]<br>A widget that display zoomed contents of a VTK render window.<br />
Image:CtkVTKMatrixWidget.png|[http://www.commontk.org/docs/html/classctkVTKMatrixWidget.html ctkVTKMatrixWidget]<br>A QTableWidget specially conceived for displaying/editing matrices<br />
Image:CtkVTKRenderView.png|[http://www.commontk.org/docs/html/classctkVTKRenderView.html ctkVTKRenderView]<br>A QVTKRenderWidget with additional utility functions<br />
Image:CtkVTKSliceView-Lightbox.png|[http://www.commontk.org/docs/html/classctkVTKSliceView.html ctkVTKSliceView]<br>A QVTKRenderWidget to display 2D images (support lightbox mode)<br />
Image:CtkMaterialPropertyWidget.png|[http://www.commontk.org/docs/html/classctkVTKSurfaceMaterialPropertyWidget.html ctkVTKSurfaceMaterialPropertyWidget]<br>A widget to control vtkProperty most common properties<br />
Image:CtkVTKTextPropertyWidget.png|[http://www.commontk.org/docs/html/classctkVTKTextPropertyWidget.html ctkVTKTextPropertyWidget]<br>A widget to control vtkTextProperty most common properties<br />
Image:CtkVTKThresholdWidget.png|[http://www.commontk.org/docs/html/classctkVTKThresholdWidget.html ctkVTKThresholdWidget]<br>A widget to control a threshold min/max/height in a vtkPiecewiseFunction<br />
Image:CtkVTKThumbnailView.png|[http://www.commontk.org/docs/html/classctkVTKThumbnailView.html ctkVTKThumbnailView]<br>A widget to show the viewport of any vtkRenderer<br />
</gallery><br />
<br />
==DICOM==<br />
<gallery widths=300 px heights=200px perrow=3><br />
Image:CtkDICOM-hackfest-Feb-2011.png|[http://www.commontk.org/docs/html/classctkDICOMAppWidget.html ctkDICOMAppWidget]<br>A DICOM widget to manage local and remote DICOM image database<br />
Image:CtkDICOMImportWidget.png|[http://www.commontk.org/docs/html/classctkDICOMImportWidget.html ctkDICOMImportWidget]<br>Panel to select a directory containing DICOM files on a local file system.<br />
Image:CtkDICOMModel.png|[http://www.commontk.org/docs/html/classctkDICOMModel.html ctkDICOMModel]<br>A QAbstractItemModel to represent DICOM files.<br />
Image:CtkDICOMServerNodeWidget.png|[http://www.commontk.org/docs/html/classctkDICOMServerNodeWidget.html ctkDICOMServerNodeWidget]<br>A widget to list/add/remove remote servers.<br />
</gallery><br />
<br />
==Scripting/Python==<br />
<gallery widths=300 px heights=200px perrow=3><br />
Image:CtkPythonShell.png|[http://www.commontk.org/docs/html/classctkPythonShell.html ctkPythonShell]<br>A console to interact with python<br />
</gallery></div>Finetjulhttp://www.commontk.org/index.php?title=File:CtkExpandableWidget.png&diff=1708File:CtkExpandableWidget.png2012-12-10T13:46:30Z<p>Finetjul: </p>
<hr />
<div></div>Finetjulhttp://www.commontk.org/index.php?title=CTK-Hackfest-Dec-2012&diff=1706CTK-Hackfest-Dec-20122012-12-09T20:02:08Z<p>Finetjul: /* Attendees */</p>
<hr />
<div>== Event pictures ==<br />
Images from the hackfest<br />
{|<br />
|}<br />
<br />
== Introduction ==<br />
<br />
'''Date:''' December 10-14, 2012<br />
<br />
'''Location:''' [http://www.iporticihotel.com/en | Hotel i Portici] in Via Indipendenza , Bologna, Italy, Sala Montagnola (Room) <br />
<br />
'''Goal:''' A follow on to the [[Commontk:Current_events#Past_events|wildly successful previous hackfests!]]<br />
<br />
'''Requirements:''' Attendees must be willing to spend their time during the event writing ctk code that contributes to the main [[CTK-Roadmap | ctk roadmap]]. This means spending the week immersed in C++, Qt, DCMTK, CMake, and related technologies. People who do not feel qualified for this task are politely not invited :)<br />
<br />
'''Group size:''' Maximum 20 participants so we can have a manageable working meeting. The organizing committee will invite and select participants based on input from [[TheTeam]].<br />
<br />
'''Site Hosts:''' Alessandro Chiarini, Daniele Giunchi<br />
<br />
'''Organizing Committee:''' Ivo Wolf, Stephen Aylward, Steve Pieper<br />
<br />
'''Future Events:''' Future hackfests will be announced in advance, and we hope lots of people will be interested in participating. The venue and activities at future hackfests will be determined based on the number of active participants in the project. We welcome participation via the CTK email lists, the source code repository, and this website.<br />
<br />
== Attendees ==<br />
*So far we have received confirmation for the following people (in no particular order). <br />
<br />
'''WE HAVE REACHED THE MAXIMUM NUMBER OF PARTECIPANT - REGISTRATION CLOSED - 16 PARTECIPANTS<br />
'''<br />
<br />
Please fill in your intentions in terms of common accommodation.<br />
<br />
{|class="wikitable alternance" style="text-align:left; border:1px solid black;"<br />
|+ '''''Participants'''''<br />
|-<br />
! scope=col style="background:#cde6f8;"| Name<br />
! scope=col style="background:#cde6f8;"| Organization<br />
|-<br />
|Alessandro Chiarini<br />
|SCS, Bologna IT<br />
|-<br />
|Daniele Giunchi<br />
|SCS, Bologna IT<br />
|-<br />
|Alberto Losi<br />
|SCS, Bologna IT<br />
|-<br />
|Steve Pieper<br />
|Isomics, Inc., Cambridge, MA, USA<br />
|-<br />
| Ivo Wolf<br />
| Mannheim University of Applied Sciences & DKFZ Heidelberg<br />
|-<br />
| Jean-Chistophe Fillion-Robin<br />
| Kitware<br />
|-<br />
| Julien Finet<br />
| Kitware<br />
|-<br />
| Andreas Fetzer<br />
| DKFZ Heidelberg<br />
|-<br />
| Michael Bauer<br />
| DKFZ Heidelberg<br />
|-<br />
| Marco Nolden<br />
| DKFZ Heidelberg<br />
|-<br />
| Sascha Zelzer<br />
| DKFZ Heidelberg<br />
|-<br />
| Florian Vichot<br />
| INRIA<br />
|-<br />
| Yves Martelli<br />
| UPF<br />
|-<br />
| Claire Mouton<br />
| CREATIS<br />
|-<br />
|-<br />
| Miklos Espak<br />
| University College London (UCL)<br />
|-<br />
|}<br />
<br />
<br />
<!--<br />
* People who manifested interest in joining the fest. Please move your names up to the confirmed table, with the details as soon as you can to facilitate discussions with potential hotels.<br />
<br />
{|class="wikitable alternance" style="text-align:left; border:1px solid black;"<br />
|+ '''''Confirmed'''''<br />
|-<br />
! scope=col style="background:#cde6f8;"| Name<br />
! scope=col style="background:#cde6f8;"| Organization<br />
<br />
|}<br />
--><br />
<br />
{{Note}}There were also other invitations sent to active people on the community, and people who recently showed interest. When their intent will be known they will be added to the list.<br />
<br />
== Preparation ==<br />
<br />
Developers should bring a laptop with the [http://github.com/commontk/CTK current CTK source code] downloaded and [[Build_Instructions|built]].<br />
<br />
Use the [http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers CTK developers mailing list] to discuss build issues and topics for ongoing work.<br />
<br />
Phone conferences have been scheduled in the weeks leading to the event:<br />
* To be announced<br />
<br />
== Topics and Projects ==<br />
<br />
<!--==== Roadmap development ====<br />
*As needed, refine the [[CTK-Roadmap|roadmap for the CTK core]].--><br />
<br />
==== DICOM Application Hosting ====<br />
<br />
* Refine, extend, [[DICOM_Application_Hosting_Testing | test]], and integrate with applications<br />
* See also [[CTK-Hackfest-Nov-2011#DICOM_Application_Hosting | (some still open) tasks]] and [[Hackfest_Nice_AppHosting_Progress | progress]] from the last hackfest<br />
* Goal: connect some real code via command line interface<br />
<br />
==== DICOM Database and Networking ====<br />
<br />
* Dig into ongoing developments. See [[CtkDICOM]] for discussion.<br />
* See CTK DICOM support is used in Slicer 4.2<br />
** [http://wiki.slicer.org/slicerWiki/index.php/Documentation/4.2/Modules/DICOM End-user documentation]<br />
** [http://na-mic.org/Bug/search.php?project_id=3&category=Module+DICOM&sticky_issues=on&sortby=last_updated&dir=DESC&hide_status_id=90 Slicer4 DICOM Bugs and Feature Requests]<br />
** SlicerRT Issues:<br />
*** https://www.assembla.com/spaces/slicerrt/tickets/25 - display of ^ (carat character) in ctkDICOMModel<br />
*** https://www.assembla.com/spaces/slicerrt/tickets/153 - extension import failure (slicer issue)<br />
*** https://www.assembla.com/spaces/slicerrt/tickets/36 - non-uniform study information in RT files<br />
<br />
==== QAT ====<br />
Quality Assurance Toolkit -> how to integrate in CTK<br />
<br />
==== Widgets ====<br />
<br />
* Discuss and refine as needed.<br />
* [https://www.assembla.com/spaces/slicerrt/wiki/20120125_Slicer_DICOM_browser_meeting SlicerRt example dicom interfaces discussion]<br />
<br />
==== Tests Framework ====<br />
Try QtTesting with CTK applications<br />
<br />
==== Build Systems & Software process ====<br />
<br />
<!--* <del>Update PythonQt dependency so that CTK can build against Qt 4.8</del><br />
** <del>See [https://github.com/pieper/PythonQt/tree/svn-mirror this experiment] to make a ctk-compatible version of the updated PythonQt - it works, but is not yet fully patched.</del><br />
** <del>[http://my.cdash.org/viewBuildError.php?buildid=362919 Some operator overloading issues in DAH]</del><br />
** Updated PythonQt: [https://github.com/commontk/PythonQt/pull/1 #1], [https://github.com/commontk/PythonQt/pull/2 #2] and [https://github.com/commontk/PythonQt/pull/3 #3] {{done}}<br />
** Updated CTK: [https://github.com/commontk/CTK/issues/189 #189], [https://github.com/commontk/CTK/issues/157 #157] {{done}}<br />
** Updated Slicer [http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=20601 r20601] {{done}}<br />
** Added [https://github.com/commontk/PythonQt#readme documentation] on PythonQt. {{done}}--><br />
<br />
<br />
* Update to [http://git.dcmtk.org/web?p=dcmtk.git;a=summary latest DCMTK]<br />
** includes dcmrt<br />
** need to pick a commit to standardize on<br />
** investigate shared/static library building. (Static instances of classes getting destructed in wrong order)<br />
** incorporate version checking <br />
*** build ctk against head or snapshot version<br />
<br />
* Prepare Debian packaging (Marco)<br />
** Resolve outstanding issues<br />
** Make CTK also build with latest stable DCMTK release (3.6.0)<br />
<br />
* Evaluate Qt5 (Sascha)<br />
<br />
* <del>Setup developer package</del><br />
** See [https://github.com/commontk/CTK/issues/10 #10] and [https://github.com/commontk/CTK/issues/65 #65]<br />
** Work in progress - See topic [https://github.com/jcfr/CTK/compare/65-packaging-support 65-packaging-support]<br />
<br />
<br />
<!-- * <del>Talk with Dominique (Debian packager) to understand what is missing</del> See https://github.com/commontk/CTK/pull/158<br />
** <del>Build from upstream PythonQt (to be done this week)</del> {{done}} Few patches still need to be contributed upstream. See [https://github.com/commontk/PythonQt#readme documentation]--><br />
** Release a version of CTK (Work on policy this week and maybe release this week).<br />
<br />
<!--* <del>Generalize documentation of CMake macro so that it can be-used.</del>--><br />
** Work in progress - See [https://github.com/jcfr/CTK/compare/master...cmake-doxygen-filter-reuse cmake-doxygen-filter-reuse]<br />
<br />
==== Command Line Modules ====<br />
* Extract CLI interface <br />
** Unify VPH and Slicer refactoring<br />
* Qt SEM XML widget<br />
<br />
== Agenda ==<br />
<br />
==== Monday ====<br />
<!--Start at 9:00am<br />
Arrive and get settled in the morning. Discussion of plans for the week will get underway when everyone has arrived.<br />
Review of goals and ideas--><br />
<br />
10:30am Welcome<br />
<br />
10:45 - 12:00 Round table: everyone presents 10-15 minutes how CTK is used in their project. And what's new in CTK (what has been added since previous hackfest)<br />
<br />
: CTK in use:<br />
:* MSVTK (DG/AL, JF) (10m)<br />
:* DICOM in Slicer (SP) (5m)<br />
: What's new ?<br />
:* New widgets in CTK(JF, JCFR) (e.g. ctkSizeGrip, ctkPathLineEdit, ctkPanelSettings...) (5m)<br />
<br />
1:00pm Lunch<br />
<br />
: Discuss plans/priorities for hacking<br />
<br />
3:30pm Coffee Break<br />
<br />
5:00pm Close<br />
<br />
==== Tuesday ====<br />
<!--hack, hack, hack...--><br />
9:30am Welcome<br />
<br />
11:00am Coffee Break<br />
<br />
1:00pm Lunch<br />
<br />
5:00pm Close<br />
<br />
==== Wednesday ====<br />
<!--Review of progress--><br />
9:30am Welcome<br />
<br />
11:00am Coffee Break<br />
<br />
1:00pm Lunch<br />
<br />
5:00pm Close<br />
<br />
==== Thursday ====<br />
<!--Hack, hack, hack...--><br />
9:30am Welcome<br />
<br />
11:00am Coffee Break<br />
<br />
1:00pm Lunch<br />
<br />
5:00pm Close<br />
<br />
==== Friday ====<br />
<!--* 10:30 Review hacking progress<br />
*Tour of [http://ncigt.org/pages/AMIGO AMIGO].<br />
** Leave 1249 by 12:00. Stop for lunch on the way and meet Isaiah at AMIGO at 2:00.<br />
** Turn in badges - do not plan to return to 1249.<br />
End by 5:00pm--><br />
9:30am Welcome<br />
<br />
11:00am Coffee Break<br />
<br />
1:00pm Lunch<br />
<br />
2:00pm Wrap up discussion and Meeting Closes<br />
* Update project status on wiki<br />
<br />
== Travel & Hotel ==<br />
<br />
'''Local contact'''<br />
If you have any troubles during your visit, call Alessandro: +39 342 1401554 or Daniele: +39 348 7260365<br />
<br />
'''Airport''' <br />
* [http://www.bologna-airport.it/uk/?LN=UK Bologna G.Marconi (BLQ)]<br />
<br />
'''Transportation on Site'''<br />
<br />
Airport Shuttle from airport to Railway Station (near to meeting location) 6 euro, link: http://www.atc.bo.it/orari/aerobus-airport-railway-station-link<br />
<br />
Taxi from airport to Railway Station 15-20 euro<br />
<br />
<!--Google's public transit search works well in Bologna. The site is about 5 blocks from subway stops and busses. Parking on-site is $10-$15 per day. Cabs are fairly convenient for most trips (perhaps $40 to/from the airport but $10-$15 for trips within town).--><br />
<br />
'''Lodging''' <br />
<br />
There are a lot of hotel options in Bologna.<br />
<br />
Millennium Hotel[http://www.millennhotelbologna.it/en/index.html]: close to the centre and to the central railways station. <br />
<br />
Star Hotel [http://www.starhotels.com/hotels/excelsior/en/home.aspx]: close to the centre and in front of the central railways station. <br />
<br />
Mercure Hotel [http://www.accorhotels.com/it/hotel-1310-mercure-bologna-centro/index.shtml] (Italian link, you need to find the page on your language from the Accor portal) In front of the central railways station.<br />
<br />
Albergo Atlantic [http://www.albergoatlantic.net/ENGLISH/index.html] In the city centre, 10' walking time from the central railways station.<br />
<br />
I Portici Hotel [http://www.iporticihotel.com/en/i-portici-hotel-bologna]10' walking time from the central railways station. <br />
<br />
<br />
<br />
'''Meeting Location''' <br />
<!--* [http://www.spl.harvard.edu/pages/Directions#Getting_to_1249_Boylston_Street. BWH Surgical Planning Laboratory] [http://maps.google.com/maps?q=1249+boylston+street+boston+ma+02215&hl=en&hnear=1249+Boylston+St,+Boston,+Massachusetts+02215&gl=us&t=m&z=16 1249 Boylston Street].--><br />
TBA We are finding a meeting venue that could be in the city centre or in the central station area. <br />
<br />
'''Catering'''<br />
<br />
It will be provided by the meeting venue. <br />
<br />
'''Weather'''<br />
<br />
* Probably not sunny, colder than Italian average :-), even it is quite variable, temperatures can range from 0°C to 10°C (min) and from 5°C to 20°C.</div>Finetjulhttp://www.commontk.org/index.php?title=CTK-Hackfest-Dec-2012&diff=1692CTK-Hackfest-Dec-20122012-12-06T14:57:01Z<p>Finetjul: /* Monday */</p>
<hr />
<div>== Event pictures ==<br />
Images from the hackfest<br />
{|<br />
|}<br />
<br />
== Introduction ==<br />
<br />
'''Date:''' December 10-14, 2012<br />
<br />
'''Location:''' [http://www.iporticihotel.com/en | Hotel i Portici] in Via Indipendenza , Bologna, Italy, Sala Montagnola (Room) <br />
<br />
'''Goal:''' A follow on to the [[Commontk:Current_events#Past_events|wildly successful previous hackfests!]]<br />
<br />
'''Requirements:''' Attendees must be willing to spend their time during the event writing ctk code that contributes to the main [[CTK-Roadmap | ctk roadmap]]. This means spending the week immersed in C++, Qt, DCMTK, CMake, and related technologies. People who do not feel qualified for this task are politely not invited :)<br />
<br />
'''Group size:''' Maximum 20 participants so we can have a manageable working meeting. The organizing committee will invite and select participants based on input from [[TheTeam]].<br />
<br />
'''Site Hosts:''' Alessandro Chiarini, Daniele Giunchi<br />
<br />
'''Organizing Committee:''' Ivo Wolf, Stephen Aylward, Steve Pieper<br />
<br />
'''Future Events:''' Future hackfests will be announced in advance, and we hope lots of people will be interested in participating. The venue and activities at future hackfests will be determined based on the number of active participants in the project. We welcome participation via the CTK email lists, the source code repository, and this website.<br />
<br />
== Attendees ==<br />
*So far we have received confirmation for the following people (in no particular order). <br />
<br />
'''WE HAVE REACHED THE MAXIMUM NUMBER OF PARTECIPANT - REGISTRATION CLOSED - 16 PARTECIPANTS<br />
'''<br />
<br />
Please fill in your intentions in terms of common accommodation.<br />
<br />
{|class="wikitable alternance" style="text-align:left; border:1px solid black;"<br />
|+ '''''Participants'''''<br />
|-<br />
! scope=col style="background:#cde6f8;"| Name<br />
! scope=col style="background:#cde6f8;"| Organization<br />
|-<br />
|Alessandro Chiarini<br />
|SCS, Bologna IT<br />
|-<br />
|Daniele Giunchi<br />
|SCS, Bologna IT<br />
|-<br />
|Alberto Losi<br />
|SCS, Bologna IT<br />
|-<br />
|Steve Pieper<br />
|Isomics, Inc., Cambridge, MA, USA<br />
|-<br />
| Ivo Wolf<br />
| Mannheim University of Applied Sciences & DKFZ Heidelberg<br />
|-<br />
| Jean-Chistophe Fillion-Robin<br />
| Kitware<br />
|-<br />
| Julien Finet<br />
| Kitware<br />
|-<br />
| Ricardo Ortiz<br />
| Kitware<br />
|-<br />
| Andreas Fetzer<br />
| DKFZ Heidelberg<br />
|-<br />
| Michael Bauer<br />
| DKFZ Heidelberg<br />
|-<br />
| Marco Nolden<br />
| DKFZ Heidelberg<br />
|-<br />
| Sascha Zelzer<br />
| DKFZ Heidelberg<br />
|-<br />
| Florian Vichot<br />
| INRIA<br />
|-<br />
| Yves Martelli<br />
| UPF<br />
|-<br />
| Claire Mouton<br />
| CREATIS<br />
|-<br />
|-<br />
| Miklos Espak<br />
| University College London (UCL)<br />
|-<br />
|}<br />
<br />
<br />
<!--<br />
* People who manifested interest in joining the fest. Please move your names up to the confirmed table, with the details as soon as you can to facilitate discussions with potential hotels.<br />
<br />
{|class="wikitable alternance" style="text-align:left; border:1px solid black;"<br />
|+ '''''Confirmed'''''<br />
|-<br />
! scope=col style="background:#cde6f8;"| Name<br />
! scope=col style="background:#cde6f8;"| Organization<br />
<br />
|}<br />
--><br />
<br />
{{Note}}There were also other invitations sent to active people on the community, and people who recently showed interest. When their intent will be known they will be added to the list.<br />
<br />
== Preparation ==<br />
<br />
Developers should bring a laptop with the [http://github.com/commontk/CTK current CTK source code] downloaded and [[Build_Instructions|built]].<br />
<br />
Use the [http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers CTK developers mailing list] to discuss build issues and topics for ongoing work.<br />
<br />
Phone conferences have been scheduled in the weeks leading to the event:<br />
* To be announced<br />
<br />
== Topics and Projects ==<br />
<br />
<!--==== Roadmap development ====<br />
*As needed, refine the [[CTK-Roadmap|roadmap for the CTK core]].--><br />
<br />
==== DICOM Application Hosting ====<br />
<br />
* Refine, extend, [[DICOM_Application_Hosting_Testing | test]], and integrate with applications<br />
* See also [[CTK-Hackfest-Nov-2011#DICOM_Application_Hosting | (some still open) tasks]] and [[Hackfest_Nice_AppHosting_Progress | progress]] from the last hackfest<br />
* Goal: connect some real code via command line interface<br />
<br />
==== DICOM Database and Networking ====<br />
<br />
* Dig into ongoing developments. See [[CtkDICOM]] for discussion.<br />
** Review [https://github.com/SlicerRt/CTK/commits/slicerRT-patches patches provided by the SlicerRT team] <br />
** Performance Optimization (loadHeader in ctkDICOMDatabase)<br />
<br />
* See [[ctkDICOM in Slicer4]] for information on a particular application use case.<br />
* [http://na-mic.org/Bug/search.php?project_id=3&category=Module+DICOM&sticky_issues=on&sortby=last_updated&dir=DESC&hide_status_id=90 Slicer4 DICOM Bugs and Feature Requests]<br />
<br />
==== QAT ====<br />
Quality Assurance Toolkit -> how to integrate in CTK<br />
<br />
==== Widgets ====<br />
<br />
* Discuss and refine as needed.<br />
* [https://www.assembla.com/spaces/slicerrt/wiki/20120125_Slicer_DICOM_browser_meeting SlicerRt example dicom interfaces discussion]<br />
<br />
==== Tests Framework ====<br />
Try QtTesting with CTK applications<br />
<br />
==== Build Systems & Software process ====<br />
<br />
<!--* <del>Update PythonQt dependency so that CTK can build against Qt 4.8</del><br />
** <del>See [https://github.com/pieper/PythonQt/tree/svn-mirror this experiment] to make a ctk-compatible version of the updated PythonQt - it works, but is not yet fully patched.</del><br />
** <del>[http://my.cdash.org/viewBuildError.php?buildid=362919 Some operator overloading issues in DAH]</del><br />
** Updated PythonQt: [https://github.com/commontk/PythonQt/pull/1 #1], [https://github.com/commontk/PythonQt/pull/2 #2] and [https://github.com/commontk/PythonQt/pull/3 #3] {{done}}<br />
** Updated CTK: [https://github.com/commontk/CTK/issues/189 #189], [https://github.com/commontk/CTK/issues/157 #157] {{done}}<br />
** Updated Slicer [http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=20601 r20601] {{done}}<br />
** Added [https://github.com/commontk/PythonQt#readme documentation] on PythonQt. {{done}}--><br />
<br />
<br />
* Update to [http://git.dcmtk.org/web?p=dcmtk.git;a=summary latest DCMTK]<br />
** includes dcmrt<br />
** need to pick a commit to standardize on<br />
** investigate shared/static library building. (Static instances of classes getting destructed in wrong order)<br />
** incorporate version checking <br />
*** build ctk against head or snapshot version<br />
<br />
* Prepare Debian packaging (Marco)<br />
** Resolve outstanding issues<br />
** Make CTK also build with latest stable DCMTK release (3.6.0)<br />
<br />
* Evaluate Qt5 (Sascha)<br />
<br />
* <del>Setup developer package</del><br />
** See [https://github.com/commontk/CTK/issues/10 #10] and [https://github.com/commontk/CTK/issues/65 #65]<br />
** Work in progress - See topic [https://github.com/jcfr/CTK/compare/65-packaging-support 65-packaging-support]<br />
<br />
<br />
<!-- * <del>Talk with Dominique (Debian packager) to understand what is missing</del> See https://github.com/commontk/CTK/pull/158<br />
** <del>Build from upstream PythonQt (to be done this week)</del> {{done}} Few patches still need to be contributed upstream. See [https://github.com/commontk/PythonQt#readme documentation]--><br />
** Release a version of CTK (Work on policy this week and maybe release this week).<br />
<br />
<!--* <del>Generalize documentation of CMake macro so that it can be-used.</del>--><br />
** Work in progress - See [https://github.com/jcfr/CTK/compare/master...cmake-doxygen-filter-reuse cmake-doxygen-filter-reuse]<br />
<br />
==== Command Line Modules ====<br />
* Extract CLI interface <br />
** Unify VPH and Slicer refactoring<br />
* Qt SEM XML widget<br />
<br />
== Agenda ==<br />
<br />
==== Monday ====<br />
<!--Start at 9:00am<br />
Arrive and get settled in the morning. Discussion of plans for the week will get underway when everyone has arrived.<br />
Review of goals and ideas--><br />
<br />
10:30am Welcome<br />
<br />
10:45 - 12:00 Round table: everyone presents 10-15 minutes how CTK is used in their project. And what's new in CTK (what has been added since previous hackfest)<br />
<br />
: CTK in use:<br />
:* MSVTK (DG, JF) (10m)<br />
:* DICOM in Slicer (SP) (5m)<br />
: What's new ?<br />
:* New widgets in CTK(JF, JCFR) (e.g. ctkSizeGrip, ctkPathLineEdit, ctkPanelSettings...) (5m)<br />
<br />
1:00pm Lunch<br />
<br />
3:00pm Coffee Break<br />
<br />
5:00pm Close<br />
<br />
==== Tuesday ====<br />
<!--hack, hack, hack...--><br />
9:30am Welcome<br />
<br />
1:00pm Lunch<br />
<br />
3:00pm Coffee Break<br />
<br />
5:00pm Close<br />
<br />
==== Wednesday ====<br />
<!--Review of progress--><br />
9:30am Welcome<br />
<br />
1:00pm Lunch<br />
<br />
3:00pm Coffee Break<br />
<br />
5:00pm Close<br />
[edit]<br />
<br />
==== Thursday ====<br />
<!--Hack, hack, hack...--><br />
9:30am Welcome<br />
<br />
1:00pm Lunch<br />
<br />
3:00pm Coffee Break<br />
<br />
5:00pm Close<br />
<br />
==== Friday ====<br />
<!--* 10:30 Review hacking progress<br />
*Tour of [http://ncigt.org/pages/AMIGO AMIGO].<br />
** Leave 1249 by 12:00. Stop for lunch on the way and meet Isaiah at AMIGO at 2:00.<br />
** Turn in badges - do not plan to return to 1249.<br />
End by 5:00pm--><br />
9:30am Welcome<br />
<br />
1:00pm Lunch<br />
<br />
2:00pm Wrap up discussion and Meeting Closes<br />
* Update project status on wiki<br />
<br />
== Travel & Hotel ==<br />
<br />
'''Local contact'''<br />
If you have any troubles during your visit, call Alessandro: +39 342 1401554 or Daniele: +39 348 7260365<br />
<br />
'''Airport''' <br />
* [http://www.bologna-airport.it/uk/?LN=UK Bologna G.Marconi (BLQ)]<br />
<br />
'''Transportation on Site'''<br />
<br />
Airport Shuttle from airport to Railway Station (near to meeting location) 6 euro, link: http://www.atc.bo.it/orari/aerobus-airport-railway-station-link<br />
<br />
Taxi from airport to Railway Station 15-20 euro<br />
<br />
<!--Google's public transit search works well in Bologna. The site is about 5 blocks from subway stops and busses. Parking on-site is $10-$15 per day. Cabs are fairly convenient for most trips (perhaps $40 to/from the airport but $10-$15 for trips within town).--><br />
<br />
'''Lodging''' <br />
<br />
There are a lot of hotel options in Bologna.<br />
<br />
Millennium Hotel[http://www.millennhotelbologna.it/en/index.html]: close to the centre and to the central railways station. <br />
<br />
Star Hotel [http://www.starhotels.com/hotels/excelsior/en/home.aspx]: close to the centre and in front of the central railways station. <br />
<br />
Mercure Hotel [http://www.accorhotels.com/it/hotel-1310-mercure-bologna-centro/index.shtml] (Italian link, you need to find the page on your language from the Accor portal) In front of the central railways station.<br />
<br />
Albergo Atlantic [http://www.albergoatlantic.net/ENGLISH/index.html] In the city centre, 10' walking time from the central railways station.<br />
<br />
I Portici Hotel [http://www.iporticihotel.com/en/i-portici-hotel-bologna]10' walking time from the central railways station. <br />
<br />
<br />
<br />
'''Meeting Location''' <br />
<!--* [http://www.spl.harvard.edu/pages/Directions#Getting_to_1249_Boylston_Street. BWH Surgical Planning Laboratory] [http://maps.google.com/maps?q=1249+boylston+street+boston+ma+02215&hl=en&hnear=1249+Boylston+St,+Boston,+Massachusetts+02215&gl=us&t=m&z=16 1249 Boylston Street].--><br />
TBA We are finding a meeting venue that could be in the city centre or in the central station area. <br />
<br />
'''Catering'''<br />
<br />
It will be provided by the meeting venue. <br />
<br />
'''Weather'''<br />
<br />
* Probably not sunny, colder than Italian average :-), even it is quite variable, temperatures can range from 0°C to 10°C (min) and from 5°C to 20°C.</div>Finetjulhttp://www.commontk.org/index.php?title=CTK-Hackfest-Dec-2012&diff=1683CTK-Hackfest-Dec-20122012-12-05T15:10:11Z<p>Finetjul: /* Monday */</p>
<hr />
<div>== Event pictures ==<br />
Images from the hackfest<br />
{|<br />
|}<br />
<br />
== Introduction ==<br />
<br />
'''Date:''' December 10-14, 2012<br />
<br />
'''Location:''' [http://www.iporticihotel.com/en | Hotel i Portici] in Via Indipendenza , Bologna, Italy<br />
<br />
'''Goal:''' A follow on to the [[Commontk:Current_events#Past_events|wildly successful previous hackfests!]]<br />
<br />
'''Requirements:''' Attendees must be willing to spend their time during the event writing ctk code that contributes to the main [[CTK-Roadmap | ctk roadmap]]. This means spending the week immersed in C++, Qt, DCMTK, CMake, and related technologies. People who do not feel qualified for this task are politely not invited :)<br />
<br />
'''Group size:''' Maximum 20 participants so we can have a manageable working meeting. The organizing committee will invite and select participants based on input from [[TheTeam]].<br />
<br />
'''Site Hosts:''' Alessandro Chiarini, Daniele Giunchi<br />
<br />
'''Organizing Committee:''' Ivo Wolf, Stephen Aylward, Steve Pieper<br />
<br />
'''Future Events:''' Future hackfests will be announced in advance, and we hope lots of people will be interested in participating. The venue and activities at future hackfests will be determined based on the number of active participants in the project. We welcome participation via the CTK email lists, the source code repository, and this website.<br />
<br />
== Attendees ==<br />
*So far we have received confirmation for the following people (in no particular order). <br />
<br />
'''WE HAVE REACHED THE MAXIMUM NUMBER OF PARTECIPANT - REGISTRATION CLOSED - 16 PARTECIPANTS<br />
'''<br />
<br />
Please fill in your intentions in terms of common accommodation.<br />
<br />
{|class="wikitable alternance" style="text-align:left; border:1px solid black;"<br />
|+ '''''Participants'''''<br />
|-<br />
! scope=col style="background:#cde6f8;"| Name<br />
! scope=col style="background:#cde6f8;"| Organization<br />
|-<br />
|Alessandro Chiarini<br />
|SCS, Bologna IT<br />
|-<br />
|Daniele Giunchi<br />
|SCS, Bologna IT<br />
|-<br />
|Alberto Losi<br />
|SCS, Bologna IT<br />
|-<br />
|Steve Pieper<br />
|Isomics, Inc., Cambridge, MA, USA<br />
|-<br />
| Ivo Wolf<br />
| Mannheim University of Applied Sciences & DKFZ Heidelberg<br />
|-<br />
| Jean-Chistophe Fillion-Robin<br />
| Kitware<br />
|-<br />
| Julien Finet<br />
| Kitware<br />
|-<br />
| Ricardo Ortiz<br />
| Kitware<br />
|-<br />
| Andreas Fetzer<br />
| DKFZ Heidelberg<br />
|-<br />
| Michael Bauer<br />
| DKFZ Heidelberg<br />
|-<br />
| Marco Nolden<br />
| DKFZ Heidelberg<br />
|-<br />
| Sascha Zelzer<br />
| DKFZ Heidelberg<br />
|-<br />
| Florian Vichot<br />
| INRIA<br />
|-<br />
| Yves Martelli<br />
| UPF<br />
|-<br />
| Claire Mouton<br />
| CREATIS<br />
|-<br />
|-<br />
| Miklos Espak<br />
| University College London (UCL)<br />
|-<br />
|}<br />
<br />
<br />
<!--<br />
* People who manifested interest in joining the fest. Please move your names up to the confirmed table, with the details as soon as you can to facilitate discussions with potential hotels.<br />
<br />
{|class="wikitable alternance" style="text-align:left; border:1px solid black;"<br />
|+ '''''Confirmed'''''<br />
|-<br />
! scope=col style="background:#cde6f8;"| Name<br />
! scope=col style="background:#cde6f8;"| Organization<br />
<br />
|}<br />
--><br />
<br />
{{Note}}There were also other invitations sent to active people on the community, and people who recently showed interest. When their intent will be known they will be added to the list.<br />
<br />
== Preparation ==<br />
<br />
Developers should bring a laptop with the [http://github.com/commontk/CTK current CTK source code] downloaded and [[Build_Instructions|built]].<br />
<br />
Use the [http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers CTK developers mailing list] to discuss build issues and topics for ongoing work.<br />
<br />
Phone conferences have been scheduled in the weeks leading to the event:<br />
* To be announced<br />
<br />
== Topics and Projects ==<br />
<!--<br />
==== Roadmap development ====<br />
*As needed, refine the [[CTK-Roadmap|roadmap for the CTK core]].<br />
<br />
==== DICOM Application Hosting ====<br />
<br />
* Refine, extend, [[DICOM_Application_Hosting_Testing | test]], and integrate with applications<br />
* See also [[CTK-Hackfest-Nov-2011#DICOM_Application_Hosting | (some still open) tasks]] and [[Hackfest_Nice_AppHosting_Progress | progress]] from the last hackfest<br />
* Goal: connect some real code via command line interface<br />
<br />
==== DICOM Database and Networking ====<br />
<br />
* Dig into ongoing developments. See [[CtkDICOM]] for discussion.<br />
** Review [https://github.com/SlicerRt/CTK/commits/slicerRT-patches patches provided by the SlicerRT team] <br />
** Performance Optimization (loadHeader in ctkDICOMDatabase)<br />
<br />
* See [[ctkDICOM in Slicer4]] for information on a particular application use case.<br />
* [http://na-mic.org/Bug/search.php?project_id=3&search=dicom&category=DICOM&status_id%5B%5D=10&status_id%5B%5D=20&status_id%5B%5D=30&status_id%5B%5D=40&status_id%5B%5D=50&sticky_issues=off&sortby=last_updated&dir=DESC&hide_status_id=-2 Slicer4 DICOM Bugs and Feature Requests]<br />
<br />
==== Widgets ====<br />
<br />
* Discuss and refine as needed.<br />
* [https://www.assembla.com/spaces/slicerrt/wiki/20120125_Slicer_DICOM_browser_meeting SlicerRt example dicom interfaces discussion]<br />
<br />
==== Tests Framework ====<br />
Try QtTesting with CTK applications<br />
<br />
==== Build Systems & Software process ====<br />
<br />
* <del>Update PythonQt dependency so that CTK can build against Qt 4.8</del><br />
** <del>See [https://github.com/pieper/PythonQt/tree/svn-mirror this experiment] to make a ctk-compatible version of the updated PythonQt - it works, but is not yet fully patched.</del><br />
** <del>[http://my.cdash.org/viewBuildError.php?buildid=362919 Some operator overloading issues in DAH]</del><br />
** Updated PythonQt: [https://github.com/commontk/PythonQt/pull/1 #1], [https://github.com/commontk/PythonQt/pull/2 #2] and [https://github.com/commontk/PythonQt/pull/3 #3] {{done}}<br />
** Updated CTK: [https://github.com/commontk/CTK/issues/189 #189], [https://github.com/commontk/CTK/issues/157 #157] {{done}}<br />
** Updated Slicer [http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=20601 r20601] {{done}}<br />
** Added [https://github.com/commontk/PythonQt#readme documentation] on PythonQt. {{done}}<br />
<br />
<br />
* Update to [http://git.dcmtk.org/web?p=dcmtk.git;a=summary latest DCMTK]<br />
** includes dcmrt<br />
** need to pick a commit to standardize on<br />
** investigate shared/static library building. (Static instances of classes getting destructed in wrong order)<br />
** incorporate version checking <br />
*** build ctk against head or snapshot version<br />
<br />
<br />
* <del>Setup developer package</del><br />
** See [https://github.com/commontk/CTK/issues/10 #10] and [https://github.com/commontk/CTK/issues/65 #65]<br />
** Work in progress - See topic [https://github.com/jcfr/CTK/compare/65-packaging-support 65-packaging-support]<br />
<br />
<br />
* <del>Talk with Dominique (Debian packager) to understand what is missing</del> See https://github.com/commontk/CTK/pull/158<br />
** <del>Build from upstream PythonQt (to be done this week)</del> {{done}} Few patches still need to be contributed upstream. See [https://github.com/commontk/PythonQt#readme documentation]<br />
** Release a version of CTK (Work on policy this week and maybe release this week).<br />
<br />
* <del>Generalize documentation of CMake macro so that it can be-used.</del><br />
** Work in progress - See [https://github.com/jcfr/CTK/compare/master...cmake-doxygen-filter-reuse cmake-doxygen-filter-reuse]<br />
<br />
==== Command Line Modules ====<br />
* Extract CLI interface <br />
** Unify VPH and Slicer refactoring<br />
* Qt SEM XML widget<br />
<br />
[[Bologna Hackfest:Cmd Line Module Work Items|Cmd Line Module Work Items]]<br />
--><br />
== Agenda ==<br />
<br />
==== Monday ====<br />
<!--Start at 9:00am<br />
Arrive and get settled in the morning. Discussion of plans for the week will get underway when everyone has arrived.<br />
Review of goals and ideas--><br />
<br />
10:30am Welcome<br />
<br />
10:45 - 12:00 Round table: everyone presents 10-15 minutes how CTK is used in their project. And what's new in CTK (what has been added since previous hackfest)<br />
<br />
1:00pm Lunch<br />
<br />
3:00pm Coffee Break<br />
<br />
5:00pm Close<br />
<br />
==== Tuesday ====<br />
<!--hack, hack, hack...--><br />
9:30am Welcome<br />
<br />
1:00pm Lunch<br />
<br />
3:00pm Coffee Break<br />
<br />
5:00pm Close<br />
<br />
==== Wednesday ====<br />
<!--Review of progress--><br />
9:30am Welcome<br />
<br />
1:00pm Lunch<br />
<br />
3:00pm Coffee Break<br />
<br />
5:00pm Close<br />
[edit]<br />
<br />
==== Thursday ====<br />
<!--Hack, hack, hack...--><br />
9:30am Welcome<br />
<br />
1:00pm Lunch<br />
<br />
3:00pm Coffee Break<br />
<br />
5:00pm Close<br />
<br />
==== Friday ====<br />
<!--* 10:30 Review hacking progress<br />
*Tour of [http://ncigt.org/pages/AMIGO AMIGO].<br />
** Leave 1249 by 12:00. Stop for lunch on the way and meet Isaiah at AMIGO at 2:00.<br />
** Turn in badges - do not plan to return to 1249.<br />
End by 5:00pm--><br />
9:30am Welcome<br />
<br />
1:00pm Lunch<br />
<br />
2:00pm Meeting Closes<br />
<br />
== Travel & Hotel ==<br />
<br />
'''Local contact'''<br />
If you have any troubles during your visit, call Alessandro: +39 342 1401554 or Daniele: +39 348 7260365<br />
<br />
'''Airport''' <br />
* [http://www.bologna-airport.it/uk/?LN=UK Bologna G.Marconi (BLQ)]<br />
<br />
'''Transportation on Site'''<br />
<br />
Airport Shuttle from airport to Railway Station (near to meeting location) 6 euro, link: http://www.atc.bo.it/orari/aerobus-airport-railway-station-link<br />
<br />
Taxi from airport to Railway Station 15-20 euro<br />
<br />
<!--Google's public transit search works well in Bologna. The site is about 5 blocks from subway stops and busses. Parking on-site is $10-$15 per day. Cabs are fairly convenient for most trips (perhaps $40 to/from the airport but $10-$15 for trips within town).--><br />
<br />
'''Lodging''' <br />
<br />
There are a lot of hotel options in Bologna.<br />
<br />
Millennium Hotel[http://www.millennhotelbologna.it/en/index.html]: close to the centre and to the central railways station. <br />
<br />
Star Hotel [http://www.starhotels.com/hotels/excelsior/en/home.aspx]: close to the centre and in front of the central railways station. <br />
<br />
Mercure Hotel [http://www.accorhotels.com/it/hotel-1310-mercure-bologna-centro/index.shtml] (Italian link, you need to find the page on your language from the Accor portal) In front of the central railways station.<br />
<br />
Albergo Atlantic [http://www.albergoatlantic.net/ENGLISH/index.html] In the city centre, 10' walking time from the central railways station.<br />
<br />
I Portici Hotel [http://www.iporticihotel.com/en/i-portici-hotel-bologna]10' walking time from the central railways station. <br />
<br />
<br />
<br />
'''Meeting Location''' <br />
<!--* [http://www.spl.harvard.edu/pages/Directions#Getting_to_1249_Boylston_Street. BWH Surgical Planning Laboratory] [http://maps.google.com/maps?q=1249+boylston+street+boston+ma+02215&hl=en&hnear=1249+Boylston+St,+Boston,+Massachusetts+02215&gl=us&t=m&z=16 1249 Boylston Street].--><br />
TBA We are finding a meeting venue that could be in the city centre or in the central station area. <br />
<br />
'''Catering'''<br />
<br />
It will be provided by the meeting venue. <br />
<br />
'''Weather'''<br />
<br />
* Probably not sunny, colder than Italian average :-), even it is quite variable, temperatures can range from 0°C to 10°C (min) and from 5°C to 20°C.</div>Finetjulhttp://www.commontk.org/index.php?title=Getting_Started&diff=1662Getting Started2012-10-31T17:44:01Z<p>Finetjul: </p>
<hr />
<div>[[File:Commontk getting started.png|50px]]<br />
If you are new to CTK and want to learn more about the scope of the toolkit, please read the [[Main Page]].<br />
=How to=<br />
Instructions to build CTK are available [[Build_Instructions|here]].<br />
<br />
The [http://www.github.com/commontk/Examples Examples] project shows how to integrate CTK within an application.<br />
<br />
=CTK mailing list=<br />
For asking questions, please use the mailing list:<br />
<br />
ctk-developers@commontk.org<br />
<br />
The signup form and historical data for the mailing list is:<br />
<br />
http://public.kitware.com/cgi-bin/mailman/listinfo/ctk-developers<br />
<br />
The mailing list archives are available here:<br />
<br />
http://public.kitware.com/pipermail/ctk-developers/</div>Finetjulhttp://www.commontk.org/index.php?title=Build_Instructions&diff=1661Build Instructions2012-10-31T17:21:57Z<p>Finetjul: </p>
<hr />
<div>The following instructions are valid as of October 2012 (if something is incorrect, please [https://github.com/commontk/CTK/issues/new report an issue]).<br />
<br />
== Prerequisties ==<br />
<br />
* git version 1.6.5 or later<br />
* Qt version 4.6.3 or later<br />
* CMake 2.8.4 or later<br />
<br />
== Download ==<br />
<br />
{|<br />
! Anonymous checkout<br />
! Anonymous checkout behind a firewall<br />
! CTK developer with write access<br />
|-<br />
|<br />
git clone git://github.com/commontk/CTK.git<br />
|<br />
git clone http://github.com/commontk/CTK.git<br />
|<br />
git clone git@github.com:commontk/CTK.git<br />
|}<br />
<br />
== Build with CMake ==<br />
<br />
mkdir CTK-superbuild<br />
cd CTK-superbuild<br />
ccmake ../CTK<br />
make<br />
<br />
=== CMake Configuration ===<br />
<br />
* set QT_QMAKE_EXECUTABLE for 4.6 development install if needed (use {path/to/qt}/bin/qmake not {path/to/qt}/qmake/qmake)<br />
* turn on the parts of CTK you want to build<br />
<br />
=== How to use CTK ? ===<br />
See the [http://www.github.com/commontk/Examples Examples] project that illustrates how CTK can be integrated into applications.<br />
<br />
= Contribute =<br />
== Simple Git ==<br />
<br />
These are shortcuts for people used to the 'cvs or svn style' of source code management:<br />
<br />
=== Checkout ===<br />
* checkout<br />
git clone git@github.com:commontk/CTK.git<br />
(or use anonymous option listed above)<br />
<br />
=== Update ===<br />
git pull --rebase<br />
=== Commit ===<br />
* commit (commit is to local version, push sends it to upstream server)<br />
git add <changed files><br />
git commit -m <message><br />
git push<br />
<br />
== Intermediate Git ==<br />
<br />
* check update before merging (look at diff):<br />
git fetch<br />
git diff origin master<br />
git rebase<br />
<br />
* Making a repository hosted on github that can track git.vtk.org [http://wiki.github.com/pieper/SlicerVTK/]<br />
<br />
* If you have changes pending that you aren't ready to commit, you can't rebase on top of them unless you do this:<br />
git stash<br />
git pull --rebase<br />
git stash pop<br />
<br />
* to get the code from a branch <br />
git clone <repository> <dir><br />
cd <dir><br />
git checkout origin/<branchname><br />
<br />
= Links =<br />
<br />
List of needed tools and libraries used when building CTK:<br />
* [http://git-scm.com/download Git]: To download source code<br />
* [http://qt.nokia.com/downloads Qt]: Dependency needed. You need to compile it in your machine before building CTK<br />
* [http://www.cmake.org/cmake/resources/software.html CMake]: Cross-platform build system<br />
* [http://gnuwin32.sourceforge.net/packages/patch.htm Patch for Windows]: Needed to apply patches to external thirdparty libraries source code<br />
* [http://www.collab.net/downloads/subversion SVN]: To update some third-party libraries automatically like PythonQt<br />
* [http://ftp.gnu.org/non-gnu/cvs/ CVS]: To update some third-party libraries automatically like KWStyle<br />
<br />
Optional:<br />
* [http://www.python.org/download/ Python]: If you plan to use Scripting<br />
* [http://www.stack.nl/~dimitri/doxygen/download.html#latestsrc DoxyGen]: To generate documentation from source code on your machine<br />
* [http://www.graphviz.org/Download.php GraphViz]: To generate documentation from source code on your machine</div>Finetjulhttp://www.commontk.org/index.php?title=Build_Instructions&diff=1660Build Instructions2012-10-31T17:14:17Z<p>Finetjul: /* Download */</p>
<hr />
<div>The following instructions are valid as of November 2011 (if something is incorrect, please [https://github.com/commontk/CTK/issues/new report an issue]).<br />
<br />
== Prerequisties ==<br />
<br />
* git version 1.6.5 or later<br />
* Qt version 4.6.3 or later<br />
* CMake 2.8.4 or later<br />
<br />
== Download ==<br />
<br />
{|<br />
! Anonymous checkout<br />
! Anonymous checkout behind a firewall<br />
! CTK developer with write access<br />
|-<br />
|<br />
git clone git://github.com/commontk/CTK.git<br />
|<br />
git clone http://github.com/commontk/CTK.git<br />
|<br />
git clone git@github.com:commontk/CTK.git<br />
|}<br />
<br />
== Build with CMake ==<br />
<br />
mkdir CTK-superbuild<br />
cd CTK-superbuild<br />
ccmake ../CTK<br />
make<br />
<br />
=== CMake Configuration ===<br />
<br />
* set QT_QMAKE_EXECUTABLE for 4.6 development install if needed (use {path/to/qt}/bin/qmake not {path/to/qt}/qmake/qmake)<br />
* turn on the parts of CTK you want to build<br />
<br />
= Simple Git =<br />
<br />
These are shortcuts for people used to the 'cvs or svn style' of source code management:<br />
<br />
=== Checkout ===<br />
* checkout<br />
git clone git@github.com:commontk/CTK.git<br />
(or use anonymous option listed above)<br />
<br />
=== Update ===<br />
git pull --rebase<br />
=== Commit ===<br />
* commit (commit is to local version, push sends it to upstream server)<br />
git add <changed files><br />
git commit -m <message><br />
git push<br />
<br />
= Intermediate Git =<br />
<br />
* check update before merging (look at diff):<br />
git fetch<br />
git diff origin master<br />
git rebase<br />
<br />
* Making a repository hosted on github that can track git.vtk.org [http://wiki.github.com/pieper/SlicerVTK/]<br />
<br />
* If you have changes pending that you aren't ready to commit, you can't rebase on top of them unless you do this:<br />
git stash<br />
git pull --rebase<br />
git stash pop<br />
<br />
* to get the code from a branch <br />
git clone <repository> <dir><br />
cd <dir><br />
git checkout origin/<branchname><br />
<br />
= Links =<br />
<br />
List of needed tools and libraries used when building CTK:<br />
* [http://git-scm.com/download Git]: To download source code<br />
* [http://qt.nokia.com/downloads Qt]: Dependency needed. You need to compile it in your machine before building CTK<br />
* [http://www.cmake.org/cmake/resources/software.html CMake]: Cross-platform build system<br />
* [http://gnuwin32.sourceforge.net/packages/patch.htm Patch for Windows]: Needed to apply patches to external thirdparty libraries source code<br />
* [http://www.collab.net/downloads/subversion SVN]: To update some third-party libraries automatically like PythonQt<br />
* [http://ftp.gnu.org/non-gnu/cvs/ CVS]: To update some third-party libraries automatically like KWStyle<br />
<br />
Optional:<br />
* [http://www.python.org/download/ Python]: If you plan to use Scripting<br />
* [http://www.stack.nl/~dimitri/doxygen/download.html#latestsrc DoxyGen]: To generate documentation from source code on your machine<br />
* [http://www.graphviz.org/Download.php GraphViz]: To generate documentation from source code on your machine</div>Finetjul