http://www.commontk.org/api.php?action=feedcontributions&user=JChris.FillionR&feedformat=atomCommontk - User contributions [en]2024-03-29T06:45:17ZUser contributionsMediaWiki 1.39.3http://www.commontk.org/index.php?title=Making_a_Release&diff=2330Making a Release2023-07-18T07:33:24Z<p>JChris.FillionR: </p>
<hr />
<div>{{banner<br />
| text = [https://github.com/commontk/CTK/wiki/Release-Process For the latest version of this page, visit the CTK GitHub wiki.]}}<br />
<br />
A core developer should use the following steps to create a release <tt>YYYY-MM-DD</tt> of CTK<br />
<br />
<ol><br />
<br />
<li>Make sure that all CI tests are passing</li><br />
<br />
<li><br />
<p>Download the source</p><br />
<pre>cd /tmp && \<br />
git clone git@github.com:commontk/CTK && \<br />
cd CTK<br />
</pre><br />
</li><br />
<br />
<li><br />
<p>List all tags sorted by version</p><br />
<pre>$ git fetch --tags && \<br />
git tag -l | sort -V<br />
</pre><br />
</li><br />
<br />
<li><br />
<p>Choose the next release version number</p><br />
<pre>$ release=YYYY-MM-DD</pre><br />
</li><br />
<br />
<li><br />
<p>Tag the release</p><br />
<pre>git tag --sign -m "CTK ${release}" ${release} master</pre><br />
<p><small>We recommend using a [https://help.github.com/articles/generating-a-new-gpg-key/ GPG signing key] to sign the tag.</small></p><br />
</li><br />
<br />
<li><br />
<p>Publish the release tag</p><br />
<pre>git push origin ${release}</pre><br />
</li><br />
</ol></div>JChris.FillionRhttp://www.commontk.org/index.php?title=Template:Banner&diff=2329Template:Banner2023-07-18T07:32:46Z<p>JChris.FillionR: Add banner template based of https://www.slicer.org/wiki/Template:Documentation/banner</p>
<hr />
<div><includeonly>{| width="100%" style="clear:both; background:none; color:black;"<br />
|-<br />
| style="padding:1em 1em 1em 1em; border:1px solid #A3B1BF; background-color: #{{#if: {{{background-color|}}} |{{{background-color}}}|fce9f4}}; text-align:center" valign="top" |<br />
<span style="font-size:16pt">{{{text}}}</span><br />
|}</includeonly><noinclude><br />
<br />
== Usage ==<br />
<br />
<pre>{{banner<br />
| text = The message body text.}}</pre><br />
<br />
== Examples ==<br />
<br />
<pre>{{banner<br />
| text = The is an important message.}}</pre><br />
<br />
{{banner| text = The is an important message.}}<br />
<br />
<pre>{{banner<br />
| text = The is an important message in green.<br />
| background-color = 8FBC8F }}</pre><br />
<br />
{{banner<br />
| text = The is an important message in green.<br />
| background-color = 8FBC8F }}<br />
<br />
</noinclude></div>JChris.FillionRhttp://www.commontk.org/index.php?title=Build_Instructions&diff=2328Build Instructions2023-04-14T00:21:32Z<p>JChris.FillionR: Update Build_Instructions removing obsolete references</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 />
== Prerequisites ==<br />
<br />
* git version 1.6.5 or later<br />
* Qt version 4.x or 5.x<br />
* CMake 3.0 or later<br />
<br />
== Download ==<br />
<br />
{|<br />
! Anonymous checkout behind a firewall<br />
! CTK developer with write access<br />
|-<br />
|<br />
git clone https://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 />
* For Qt5, set <tt>Qt5_DIR</tt> to <tt>C:\Qt\5.15.2\msvc2019_64\lib\cmake\Qt5</tt><br />
* For Qt4, set <tt>QT_QMAKE_EXECUTABLE</tt> (<tt>qmake</tt> is usually found in the <tt>bin</tt> folder)<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 />
<br />
== Simple Git ==<br />
<br />
See also https://docs.github.com/en/get-started/using-git<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 />
<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 />
* 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 />
* [https://www.qt.io/download-open-source Qt]: Dependency required.<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 />
<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>JChris.FillionRhttp://www.commontk.org/index.php?title=Main_Page&diff=2326Main Page2020-01-14T15:58:15Z<p>JChris.FillionR: /* Important Links */</p>
<hr />
<div>__NOTOC__<br />
<br />
= '''CTK - The Common Toolkit''' =<br />
<br />
<div style="float:right; margin-left:12px;"><br />
<wikiscript type="text/javascript" src="http://www.ohloh.net/p/483293/widgets/project_basic_stats.js"></wikiscript><br />
<wikiscript type="text/javascript">document.write('<style>div.gadget { border-color: #bbb; }</style>')</wikiscript><br />
</div><br />
<br />
The goal of CTK is to support biomedical image computing. CTK code is licensed under [http://www.apache.org/licenses/LICENSE-2.0.html Apache 2.0]. This means that users of CTK are allowed to use the code for academic, commercial, or other purposes without paying license fees or being restricted in their ability to redistribute their code or keep it private. <br />
<br />
CTK works on topics that are not covered by existing toolkits that support the mutual interest and needs of the CTK community. The main scope of current CTK efforts includes the topics ''DICOM'', ''DICOM Application Hosting'', ''Widgets'', and ''Plugin Framework''.<br />
<br />
<br />
<center><br />
<div style="display:table-row;"><br />
<div style="display:table-cell; max-width:450px;"><br />
{{documentation/g-box-start|Documentation/Dicom_Overview|DICOM}}Provides high-level classes supporting query and retrieve operations from PACS and local databases. Includes Qt widgets to easily set-up a server connection and to send queries and view the results. [http://dicom.offis.de/dcmtk DCMTK] is used as the underlying toolkit.<br />
{{documentation/g-box-links|imggalurl=|apiurl=http://www.commontk.org/docs/html/group__Project__DICOM.html|issuelabel=DICOM}}. <br />
[[Documentation/Dicom_Overview | Read more...]]<br />
CTK is also the home of [http://dcmjs.org dcmjs].<br />
{{documentation/g-box-end}}<br />
</div><br />
<div style="display:table-cell; max-width:450px;"><br />
{{documentation/g-box-start|Documentation/DicomApplicationHosting|DICOM Application Hosting}}Aims at creating a C++ reference implementation of the [[media:DicomAppHostingSpecs.pdf | DICOM Part 19 Application Hosting specifications]]. It provides an infrastructure to create both hosts and hosted applications. The project is still in alpha status but may be useful for conformance testing and initial experimentation.<br />
{{documentation/g-box-links|imggalurl=|apiurl=http://www.commontk.org/docs/html/group__Project__DICOMAppHosting.html|issuelabel=DICOMApplicationHosting}}<br />
[[Documentation/DicomApplicationHosting | Read more...]]<br />
{{documentation/g-box-end}}<br />
</div><br />
</div><br />
<div style="display:table-row"><br />
<div style="display:table-cell; max-width:450px;"><br />
{{documentation/g-box-start|Documentation/Widgets|Widgets}}A collection of Qt Widgets for usage in biomedical imaging applications.<br />
{{documentation/g-box-links|imggalurl=Documentation/ImageGallery|apiurl=http://www.commontk.org/docs/html/group__Project__Widgets.html|issuelabel=Widgets}}<br />
[[Documentation/Widgets | Read more...]]<br />
{{documentation/g-box-end}}<br />
</div><br />
<div style="display:table-cell; max-width:450px;"><br />
{{documentation/g-box-start|Documentation/Plugin_Framework|Plugin Framework}}A dynamic component system for C++, modeled after the [http://www.osgi.org OSGi] specifications. It enables a development model where applications are (dynamically) composed of many different (reusable) components following a service oriented approach.<br />
{{documentation/g-box-links|imggalurl=|apiurl=http://www.commontk.org/docs/html/group__PluginFramework.html|issuelabel=PluginFramework}}<br />
[[Documentation/Plugin_Framework | Read more...]]<br />
{{documentation/g-box-end}}<br />
</div><br />
</div><br />
<div style="display:table-row"><br />
<div style="display:table-cell; max-width:450px;"><br />
{{documentation/g-box-start|Documentation/Command_Line_Interface|Command Line Interfaces}}A technology that allows the algorithms written as self-contained executables to be used in multiple end-user application environments without modifications.<br />
{{documentation/g-box-links|imggalurl=|apiurl=http://www.commontk.org/docs/html/group__CommandLineModules__Group.html|issuelabel=CmdLineModules}}<br />
[[Documentation/Command_Line_Interface | Read more...]]<br />
{{documentation/g-box-end}}<br />
</div><br />
</div><br />
</center><br />
=== Important Links ===<br />
<br />
Although the CTK efforts are concentrated on the topics described above, there are a couple of other working areas covering topics like ''[[Interoperability | interoperability]]'' and ''software testing'' which might be of interest to the biomedical imaging community. Please see the links given below for more details.<br />
<br />
{| border="0" align="center" width="98%" valign="top" cellspacing="7" cellpadding="2"<br />
|-<br />
! width="33%"|<br />
! |<br />
! width="33%"|<br />
! |<br />
! width="33%"|<br />
|- <br />
|valign="top"|<br />
<span style="color: #555555; font-size: 18px; font-weight: bold;">About CTK</span><br />
----<br />
* [[News]]<br />
* [[Events]]<br />
* [[The Team]]<br />
* [[CTK-Roadmap | CTK Roadmap Document]]<br />
* [[Interoperability]]<br />
* [[Documentation | Technical Documentation]]<br />
<!--<br />
* [[CTKBarCamp | CTKBarCamp]]<br />
--><br />
<br />
|bgcolor="#CCCCCC"|<br />
|valign="top"|<br />
<br />
<span style="color: #555555; font-size: 18px; font-weight: bold;">CTK Users</span><br />
----<br />
* [[Getting Started]]<br />
* [[Build Instructions]]<br />
* [http://www.commontk.org/docs/html/classes.html API Documentation]<br />
* [[Tools:_Application_launcher|Application Launcher]]<br />
<br />
|bgcolor="#CCCCCC"|<br />
|valign="top"|<br />
<br />
<span style="color: #555555; font-size: 18px; font-weight: bold;">CTK Developers</span><br />
----<br />
* [[Getting Started]]<br />
* [http://github.com/commontk/CTK Source Code]<br />
* [http://my.cdash.org/index.php?project=CTK Dashboard]<br />
* [[Contributing to CTK]]<br />
* [http://github.com/commontk/CTK/issues/new Report a problem]<br />
* [[Project Ideas]]<br />
* [[Making a Release]]<br />
<br />
<br />
|}<br />
<br />
<br />
{|align="center"<br />
|-<br />
|-<br />
| <br />
{|cellspacing="16px"<br />
|-<br />
|CTK builds on some awesome technology: <br />
| [[File:200px-GitHub.png|x26px|link=http://github.com/commontk/CTK]]<br />
| [[File:Cmake-logo.png|x26px|link=Documentation/BuildSystem_Description]]<br />
| [[File:Qt-logo.png|x26px|link=http://qt.nokia.com]]<br />
| [[File:Python-powered-w-100x40.png|x26px|link=Documentation/Python_Scripting]]<br />
| [[File:Dcmtk-logo.png|x26px|link=http://www.dcmtk.org]]<br />
| [[File:ItkLogo med.png|x26px|link=http://www.itk.org]]<br />
| [[File:VTKlogo.png|x26px|link=http://www.vtk.org]]<br />
|}<br />
|}</div>JChris.FillionRhttp://www.commontk.org/index.php?title=CTKBarCamp&diff=2325CTKBarCamp2020-01-14T15:57:46Z<p>JChris.FillionR: </p>
<hr />
<div><b>This page is obsolete</b><br />
<br />
The CTKBarCamp community lives on Google plus: https://plus.google.com/communities/105094033241300780178<br />
<br />
The main idea behind this community is to share facts, idea and news related the medical imaging field and the open-source library CTK<br />
<br />
<br />
You will find below a template of message to send to confirm the interest of folks requesting to join. Make sure to change <FUTURE_MEMBER_NAME> and <YOUR_NAME> with the appropriate value.<br />
<br />
<pre><br />
Dear <FUTURE_MEMBER_NAME>,<br />
<br />
You recently requested to join the CTK BarCamp community on Google plus. Before approving your request to join the CTKBarCamp, I am reaching to you to make sure this community aligns with your interests.<br />
<br />
The main idea behind this community is to share facts, idea and news related the medical imaging field and the open-source library CTK [1]<br />
<br />
Let me know if you are still interested and will gladly approve your request,<br />
<br />
Best,<br />
<YOUR_NAME> on behalf of the CTK community<br />
<br />
[1] http://www.commontk.org<br />
</pre><br />
<br />
<br />
If few days/weeks later, you haven't heard back you could send the following message:<br />
<br />
<pre><br />
Dear <FUTURE_MEMBER_NAME>,<br />
<br />
Not having heard back from you I will cancel your request. If you think this is a mistake, do not hesitate to contact us on the CTK mailing list.<br />
<br />
See http://commontk.org/index.php/Getting_Started<br />
<br />
Best,<br />
<YOUR_NAME> on behalf of the CTK community<br />
</pre></div>JChris.FillionRhttp://www.commontk.org/index.php?title=CTKBarCamp&diff=2324CTKBarCamp2020-01-14T15:57:21Z<p>JChris.FillionR: </p>
<hr />
<div>**This page is obsolete**<br />
<br />
The CTKBarCamp community lives on Google plus: https://plus.google.com/communities/105094033241300780178<br />
<br />
The main idea behind this community is to share facts, idea and news related the medical imaging field and the open-source library CTK<br />
<br />
<br />
You will find below a template of message to send to confirm the interest of folks requesting to join. Make sure to change <FUTURE_MEMBER_NAME> and <YOUR_NAME> with the appropriate value.<br />
<br />
<pre><br />
Dear <FUTURE_MEMBER_NAME>,<br />
<br />
You recently requested to join the CTK BarCamp community on Google plus. Before approving your request to join the CTKBarCamp, I am reaching to you to make sure this community aligns with your interests.<br />
<br />
The main idea behind this community is to share facts, idea and news related the medical imaging field and the open-source library CTK [1]<br />
<br />
Let me know if you are still interested and will gladly approve your request,<br />
<br />
Best,<br />
<YOUR_NAME> on behalf of the CTK community<br />
<br />
[1] http://www.commontk.org<br />
</pre><br />
<br />
<br />
If few days/weeks later, you haven't heard back you could send the following message:<br />
<br />
<pre><br />
Dear <FUTURE_MEMBER_NAME>,<br />
<br />
Not having heard back from you I will cancel your request. If you think this is a mistake, do not hesitate to contact us on the CTK mailing list.<br />
<br />
See http://commontk.org/index.php/Getting_Started<br />
<br />
Best,<br />
<YOUR_NAME> on behalf of the CTK community<br />
</pre></div>JChris.FillionRhttp://www.commontk.org/index.php?title=Tools:_Application_launcher&diff=2321Tools: Application launcher2019-05-10T17:38:32Z<p>JChris.FillionR: </p>
<hr />
<div>[[Image:commontk_applauncher.png|200px|frame|right|Application Launcher Logo]]<br />
<br />
=== What is CTK Application Launcher ?=== <br />
<br />
CTK Application launcher is a lightweight open-source utility allowing to set environment before starting a real application. The launcher is available on Linux, Windows and MacOSX.<br />
<br />
=== Getting started ===<br />
<br />
You could either:<br />
* download the [https://github.com/commontk/AppLauncher/releases pre-built binaries] matching your operating system {{note-with-icon-only}}See [[#Why should I used the pre-build binaries ?]]''<br />
<br />
or <br />
<br />
* [[Tools:_Application_launcher/Build_Instructions|build]] from the source<br />
<br />
<br />
See also [[#How to integrate the launcher in my existing project ?]]''<br />
<br />
=== How does CTK Application Launcher work ?=== <br />
<br />
The launcher looks for a setting file where the path of the real application and its associated environment variable are reported. While setting the environment and loading the real application, it can also display a splash screen.<br />
<br />
The settings file follows the format as specified here: https://doc.qt.io/qt-5/qsettings.html#Format-enum<br />
<br />
<br />
''' Settings file location '''<br />
<br />
The launcher successively looks for a setting file located either in the current directory or in ''bin'' and ''lib'' subdirectories. <br />
The setting file should match the following pattern ''<LAUNCHERNAME>LauncherSettings.ini''<br />
<br />
For example:<br />
<pre><br />
/home/jchris/Projects/AwesomeApp<br />
/home/jchris/Projects/bin/AwesomeApp-real<br />
/home/jchris/Projects/bin/AwesomeAppLauncherSettings.ini<br />
/home/jchris/Projects/lib/libFoo.so<br />
</pre><br />
<br />
<br />
''' Setting file description '''<br />
<br />
The setting file should have the following format:<br />
<pre><br />
[General]<br />
launcherSplashImagePath=bin/Splash.png<br />
launcherSplashScreenHideDelayMs=1000<br />
<br />
[Application]<br />
path=bin/AwesomeApp-real<br />
arguments=--multithreading-enabled<br />
<br />
[Paths]<br />
1\path=./bin<br />
size=1<br />
<br />
[LibraryPaths]<br />
1\path=./lib<br />
size=1<br />
<br />
[EnvironmentVariables]<br />
FOO_DIRS=<APPLAUNCHER_DIR>/lib<PATHSEP>/usr/local/lib<br />
</pre><br />
<br />
Note that the special strings '''<PATHSEP>''', '''<APPLAUNCHER_NAME>''' and '''<APPLAUNCHER_DIR>''' will be expanded by the launcher to match the current context.<br />
<br />
<br />
''' Launcher command line arguments '''<br />
<br />
As described below, the launcher also provides a broad set of command line arguments.<br />
<br />
<pre><br />
jchris@karakoram:~/Projects/CTK-AppLauncher-Debug/bin $ ./CTKAppLauncher --launcher-help<br />
Usage<br />
CTKAppLauncher [options]<br />
<br />
Options<br />
--launcher-help Display help<br />
--launcher-verbose Verbose mode<br />
--launch Specify the application to launch<br />
--launcher-detach Launcher will NOT wait for the application to finish<br />
--launcher-no-splash Hide launcher splash<br />
--launcher-timeout Specify the time in second before the launcher kills the application. -1 means no timeout (default: -1)<br />
--launcher-generate-template Generate an example of setting file<br />
</pre><br />
<br />
=== Why should you use CTK Application Launcher ?=== <br />
<br />
* Very easy to configure<br />
* Standalone executable<br />
* Available on Windows, linux and MacOSX<br />
* Thoroughly tested<br />
<br />
<br />
=== How to integrate the launcher in my existing project ? ===<br />
<br />
==== Superbuild ====<br />
* Integrate the [[Tools:_Application_launcher/external project definition|external project definition]]<br />
* Use the macro '''ctkAppLauncherConfigure''' as described below<br />
<pre><br />
INCLUDE(${CTKAPPLAUNCHER_DIR}/CMake/ctkAppLauncher.cmake)<br />
INCLUDE(${Slicer_CMAKE_DIR}/SlicerCTKAppLauncherSettings.cmake)<br />
<br />
ctkAppLauncherConfigure(<br />
<br />
TARGET SlicerQT-real<br />
<br />
APPLICATION_INSTALL_SUBDIR ${Slicer_INSTALL_BIN_DIR}<br />
APPLICATION_NAME Slicer<br />
<br />
SPLASH_IMAGE_PATH ${Slicer_SOURCE_DIR}/Applications/SlicerQT/Resources/Images/SlicerSplashScreen.png<br />
SPLASH_IMAGE_INSTALL_SUBDIR ${Slicer_INSTALL_BIN_DIR}<br />
SPLASHSCREEN_HIDE_DELAY_MS 3000<br />
<br />
ADDITIONAL_HELP_SHORT_ARG "-h"<br />
ADDITIONAL_HELP_LONG_ARG "--help"<br />
ADDITIONAL_NOSPLASH_LONG_ARG "--no-splash"<br />
<br />
DESTINATION_DIR ${Slicer_BINARY_DIR}<br />
<br />
LIBRARY_PATHS_BUILD "${SLICER_LIBRARY_PATHS_BUILD}"<br />
PATHS_BUILD "${SLICER_PATHS_BUILD}"<br />
ENVVARS_BUILD "${SLICER_ENVVARS_BUILD}"<br />
<br />
LIBRARY_PATHS_INSTALLED "${SLICER_LIBRARY_PATHS_INSTALLED}"<br />
PATHS_INSTALLED "${SLICER_PATHS_INSTALLED}"<br />
ENVVARS_INSTALLED "${SLICER_ENVVARS_INSTALLED}"<br />
)<br />
<br />
install(PROGRAMS "${Slicer_BINARY_DIR}/Slicer${CMAKE_EXECUTABLE_SUFFIX}" DESTINATION ".")<br />
<br />
install(<br />
FILES "${Slicer_SOURCE_DIR}/Applications/SlicerQT/Resources/Images/SlicerSplashScreen.png" <br />
DESTINATION ${Slicer_INSTALL_BIN_DIR}<br />
)<br />
<br />
install(<br />
FILES "${Slicer_BINARY_DIR}/SlicerLauncherSettingsToInstall.ini" <br />
DESTINATION ${Slicer_INSTALL_BIN_DIR}<br />
RENAME SlicerLauncherSettings.ini<br />
)<br />
</pre><br />
<br />
= Links for Developers =<br />
<br />
{| cellspacing="20"<br />
|- style="vertical-align:top;"<br />
|| [[File:Commontk build.png|150px|link=Tools:_Application_launcher/Build_Instructions]]<br />
|| [[File:Commontk sourcecode.png|150px|link=http://github.com/commontk/AppLauncher]]<br />
<!--<br />
|| [[File:Commontk dashboard.png|150px|link=http://my.cdash.org/index.php?project=CTKAppLauncher]]<br />
|| [[File:commontk_ideas.png|150px|link=Tools:_Application_launcher/Project Ideas]]<br />
--><br />
|| [[File:Commontk bug.png|150px|link=http://github.com/commontk/AppLauncher/issues]]<br />
|- style="text-align:center; font-size: large"<br />
|| [[Tools:_Application_launcher/Build_Instructions|Build Instructions]]<br />
|| [http://github.com/commontk/AppLauncher Source Code]<br />
<!--<br />
|| [http://my.cdash.org/index.php?project=CTKAppLauncher Source Code's <br/>Quality Dashboard]<br />
|| [[Tools:_Application_launcher/Project_Ideas|Project Ideas]]<br />
--><br />
|| [http://github.com/commontk/AppLauncher/issues Report a problem]<br />
|}<br />
<br />
<!--<br />
<br />
= Links for Dashboard Maintainers =<br />
<br />
{| cellspacing="20"<br />
|- style="vertical-align:top;"<br />
|| [[File:Commontk dashboard setup.png|150px|link=CTKAppLauncher:Dashboard setup]]<br />
|- style="text-align:center; font-size: large"<br />
|| [[Tools:_Application_launcher/Dashboard setup|Dashboard setup]]<br />
|}<br />
<br />
--><br />
<br />
= Known issues =<br />
<br />
* Windows: Timeout option doesn't work properly<br />
<br />
= Frequently Asked Questions =<br />
<br />
== Why should I used the pre-build binaries ? ==<br />
<br />
If you distribute the AppLauncher along with your Qt application and if there is a chance that Qt libraries are not installed on the host system, you will probably also distribute Qt libraries along with your package. For that reason, you will prefer using the pre-built binaries since they are statically linked against Qt.</div>JChris.FillionRhttp://www.commontk.org/index.php?title=Tools:_Application_launcher&diff=2320Tools: Application launcher2019-05-10T17:37:10Z<p>JChris.FillionR: /* How does CTK Application Launcher work ? */</p>
<hr />
<div>[[Image:commontk_applauncher.png|200px|frame|right|Application Launcher Logo]]<br />
<br />
=== What is CTK Application Launcher ?=== <br />
<br />
CTK Application launcher is a lightweight open-source utility allowing to set environment before starting a real application. The launcher is available on Linux, Windows and MacOSX.<br />
<br />
=== Getting started ===<br />
<br />
You could either:<br />
* download the [https://github.com/commontk/AppLauncher/releases pre-built binaries] matching your operating system {{note-with-icon-only}}See [[#Why should I used the pre-build binaries ?]]''<br />
<br />
or <br />
<br />
* [[Tools:_Application_launcher/Build_Instructions|build]] from the source<br />
<br />
<br />
See also [[#How to integrate the launcher in my existing project ?]]''<br />
<br />
=== How does CTK Application Launcher work ?=== <br />
<br />
The launcher looks for a setting file where the path of the real application and its associated environment variable are reported. While setting the environment and loading the real application, it can also display a splash screen.<br />
<br />
The settings file follows the format as specified here: https://doc.qt.io/qt-5/qsettings.html#Format-enum<br />
<br />
<br />
''' Settings file location '''<br />
<br />
The launcher successively looks for a setting file located either in the current directory or in ''bin'' and ''lib'' subdirectories. <br />
The setting file should match the following pattern ''<LAUNCHERNAME>LauncherSettings.ini''<br />
<br />
For example:<br />
<pre><br />
/home/jchris/Projects/AwesomeApp<br />
/home/jchris/Projects/bin/AwesomeApp-real<br />
/home/jchris/Projects/bin/AwesomeAppLauncherSettings.ini<br />
/home/jchris/Projects/lib/libFoo.so<br />
</pre><br />
<br />
<br />
''' Setting file description '''<br />
<br />
The setting file should have the following format:<br />
<pre><br />
[General]<br />
launcherSplashImagePath=bin/Splash.png<br />
launcherSplashScreenHideDelayMs=1000<br />
<br />
[Application]<br />
path=bin/AwesomeApp-real<br />
arguments=--multithreading-enabled<br />
<br />
[Paths]<br />
1\path=./bin<br />
size=1<br />
<br />
[LibraryPaths]<br />
1\path=./lib<br />
size=1<br />
<br />
[EnvironmentVariables]<br />
FOO_DIRS=<APPLAUNCHER_DIR>/lib<PATHSEP>/usr/local/lib<br />
</pre><br />
<br />
Note that the special strings '''<PATHSEP>''', '''<APPLAUNCHER_NAME>''' and '''<APPLAUNCHER_DIR>''' will be expanded by the launcher to match the current context.<br />
<br />
<br />
''' Launcher command line arguments '''<br />
<br />
As described below, the launcher also provides a broad set of command line arguments.<br />
<br />
<pre><br />
jchris@karakoram:~/Projects/CTK-AppLauncher-Debug/bin $ ./CTKAppLauncher --launcher-help<br />
Usage<br />
CTKAppLauncher [options]<br />
<br />
Options<br />
--launcher-help Display help<br />
--launcher-verbose Verbose mode<br />
--launch Specify the application to launch<br />
--launcher-detach Launcher will NOT wait for the application to finish<br />
--launcher-no-splash Hide launcher splash<br />
--launcher-timeout Specify the time in second before the launcher kills the application. -1 means no timeout (default: -1)<br />
--launcher-generate-template Generate an example of setting file<br />
</pre><br />
<br />
=== Why should you use CTK Application Launcher ?=== <br />
<br />
* Very easy to configure<br />
* Standalone executable<br />
* Available on Windows, linux and MacOSX<br />
* Thoroughly tested<br />
<br />
<br />
=== How to integrate the launcher in my existing project ? ===<br />
<br />
==== Superbuild ====<br />
* Integrate the [[Tools:_Application_launcher/external project definition|external project definition]]<br />
* Use the macro '''ctkAppLauncherConfigure''' as described below<br />
<pre><br />
INCLUDE(${CTKAPPLAUNCHER_DIR}/CMake/ctkAppLauncher.cmake)<br />
INCLUDE(${Slicer_CMAKE_DIR}/SlicerCTKAppLauncherSettings.cmake)<br />
<br />
ctkAppLauncherConfigure(<br />
<br />
TARGET SlicerQT-real<br />
<br />
APPLICATION_INSTALL_SUBDIR ${Slicer_INSTALL_BIN_DIR}<br />
APPLICATION_NAME Slicer<br />
<br />
SPLASH_IMAGE_PATH ${Slicer_SOURCE_DIR}/Applications/SlicerQT/Resources/Images/SlicerSplashScreen.png<br />
SPLASH_IMAGE_INSTALL_SUBDIR ${Slicer_INSTALL_BIN_DIR}<br />
SPLASHSCREEN_HIDE_DELAY_MS 3000<br />
<br />
ADDITIONAL_HELP_SHORT_ARG "-h"<br />
ADDITIONAL_HELP_LONG_ARG "--help"<br />
ADDITIONAL_NOSPLASH_LONG_ARG "--no-splash"<br />
<br />
DESTINATION_DIR ${Slicer_BINARY_DIR}<br />
<br />
LIBRARY_PATHS_BUILD "${SLICER_LIBRARY_PATHS_BUILD}"<br />
PATHS_BUILD "${SLICER_PATHS_BUILD}"<br />
ENVVARS_BUILD "${SLICER_ENVVARS_BUILD}"<br />
<br />
LIBRARY_PATHS_INSTALLED "${SLICER_LIBRARY_PATHS_INSTALLED}"<br />
PATHS_INSTALLED "${SLICER_PATHS_INSTALLED}"<br />
ENVVARS_INSTALLED "${SLICER_ENVVARS_INSTALLED}"<br />
)<br />
<br />
install(PROGRAMS "${Slicer_BINARY_DIR}/Slicer${CMAKE_EXECUTABLE_SUFFIX}" DESTINATION ".")<br />
<br />
install(<br />
FILES "${Slicer_SOURCE_DIR}/Applications/SlicerQT/Resources/Images/SlicerSplashScreen.png" <br />
DESTINATION ${Slicer_INSTALL_BIN_DIR}<br />
)<br />
<br />
install(<br />
FILES "${Slicer_BINARY_DIR}/SlicerLauncherSettingsToInstall.ini" <br />
DESTINATION ${Slicer_INSTALL_BIN_DIR}<br />
RENAME SlicerLauncherSettings.ini<br />
)<br />
</pre><br />
<br />
= Links for Developers =<br />
<br />
{| cellspacing="20"<br />
|- style="vertical-align:top;"<br />
|| [[File:Commontk build.png|150px|link=Tools:_Application_launcher/Build_Instructions]]<br />
|| [[File:Commontk sourcecode.png|150px|link=http://github.com/commontk/AppLauncher]]<br />
<!--<br />
|| [[File:Commontk dashboard.png|150px|link=http://my.cdash.org/index.php?project=CTKAppLauncher]]<br />
--><br />
|| [[File:commontk_ideas.png|150px|link=Tools:_Application_launcher/Project Ideas]]<br />
|| [[File:Commontk bug.png|150px|link=http://github.com/commontk/AppLauncher/issues]]<br />
|- style="text-align:center; font-size: large"<br />
|| [[Tools:_Application_launcher/Build_Instructions|Build Instructions]]<br />
|| [http://github.com/commontk/AppLauncher Source Code]<br />
<!--<br />
|| [http://my.cdash.org/index.php?project=CTKAppLauncher Source Code's <br/>Quality Dashboard]<br />
--><br />
|| [[Tools:_Application_launcher/Project_Ideas|Project Ideas]]<br />
|| [http://github.com/commontk/AppLauncher/issues Report a problem]<br />
|}<br />
<br />
= Links for Dashboard Maintainers =<br />
<br />
{| cellspacing="20"<br />
|- style="vertical-align:top;"<br />
|| [[File:Commontk dashboard setup.png|150px|link=CTKAppLauncher:Dashboard setup]]<br />
|- style="text-align:center; font-size: large"<br />
|| [[Tools:_Application_launcher/Dashboard setup|Dashboard setup]]<br />
|}<br />
<br />
= Known issues =<br />
<br />
* Windows: Timeout option doesn't work properly<br />
<br />
= Frequently Asked Questions =<br />
<br />
== Why should I used the pre-build binaries ? ==<br />
<br />
If you distribute the AppLauncher along with your Qt application and if there is a chance that Qt libraries are not installed on the host system, you will probably also distribute Qt libraries along with your package. For that reason, you will prefer using the pre-built binaries since they are statically linked against Qt.</div>JChris.FillionRhttp://www.commontk.org/index.php?title=Tools:_Application_launcher&diff=2319Tools: Application launcher2019-05-10T17:34:28Z<p>JChris.FillionR: /* Getting started */</p>
<hr />
<div>[[Image:commontk_applauncher.png|200px|frame|right|Application Launcher Logo]]<br />
<br />
=== What is CTK Application Launcher ?=== <br />
<br />
CTK Application launcher is a lightweight open-source utility allowing to set environment before starting a real application. The launcher is available on Linux, Windows and MacOSX.<br />
<br />
=== Getting started ===<br />
<br />
You could either:<br />
* download the [https://github.com/commontk/AppLauncher/releases pre-built binaries] matching your operating system {{note-with-icon-only}}See [[#Why should I used the pre-build binaries ?]]''<br />
<br />
or <br />
<br />
* [[Tools:_Application_launcher/Build_Instructions|build]] from the source<br />
<br />
<br />
See also [[#How to integrate the launcher in my existing project ?]]''<br />
<br />
=== How does CTK Application Launcher work ?=== <br />
<br />
The launcher looks for a setting file where the path of the real application and its associated environment variable are reported. While setting the environment and loading the real application, it can also display a splash screen.<br />
<br />
The settings file follows the format as specified here: http://doc.qt.nokia.com/qsettings.html<br />
<br />
<br />
''' Settings file location '''<br />
<br />
The launcher successively looks for a setting file located either in the current directory or in ''bin'' and ''lib'' subdirectories. <br />
The setting file should match the following pattern ''<LAUNCHERNAME>LauncherSettings.ini''<br />
<br />
For example:<br />
<pre><br />
/home/jchris/Projects/AwesomeApp<br />
/home/jchris/Projects/bin/AwesomeApp-real<br />
/home/jchris/Projects/bin/AwesomeAppLauncherSettings.ini<br />
/home/jchris/Projects/lib/libFoo.so<br />
</pre><br />
<br />
<br />
''' Setting file description '''<br />
<br />
The setting file should have the following format:<br />
<pre><br />
[General]<br />
launcherSplashImagePath=bin/Splash.png<br />
launcherSplashScreenHideDelayMs=1000<br />
<br />
[Application]<br />
path=bin/AwesomeApp-real<br />
arguments=--multithreading-enabled<br />
<br />
[Paths]<br />
1\path=./bin<br />
size=1<br />
<br />
[LibraryPaths]<br />
1\path=./lib<br />
size=1<br />
<br />
[EnvironmentVariables]<br />
FOO_DIRS=<APPLAUNCHER_DIR>/lib<PATHSEP>/usr/local/lib<br />
</pre><br />
<br />
Note that the special strings '''<PATHSEP>''', '''<APPLAUNCHER_NAME>''' and '''<APPLAUNCHER_DIR>''' will be expanded by the launcher to match the current context.<br />
<br />
<br />
''' Launcher command line arguments '''<br />
<br />
As described below, the launcher also provides a broad set of command line arguments.<br />
<br />
<pre><br />
jchris@karakoram:~/Projects/CTK-AppLauncher-Debug/bin $ ./CTKAppLauncher --launcher-help<br />
Usage<br />
CTKAppLauncher [options]<br />
<br />
Options<br />
--launcher-help Display help<br />
--launcher-verbose Verbose mode<br />
--launch Specify the application to launch<br />
--launcher-detach Launcher will NOT wait for the application to finish<br />
--launcher-no-splash Hide launcher splash<br />
--launcher-timeout Specify the time in second before the launcher kills the application. -1 means no timeout (default: -1)<br />
--launcher-generate-template Generate an example of setting file<br />
</pre><br />
<br />
=== Why should you use CTK Application Launcher ?=== <br />
<br />
* Very easy to configure<br />
* Standalone executable<br />
* Available on Windows, linux and MacOSX<br />
* Thoroughly tested<br />
<br />
<br />
=== How to integrate the launcher in my existing project ? ===<br />
<br />
==== Superbuild ====<br />
* Integrate the [[Tools:_Application_launcher/external project definition|external project definition]]<br />
* Use the macro '''ctkAppLauncherConfigure''' as described below<br />
<pre><br />
INCLUDE(${CTKAPPLAUNCHER_DIR}/CMake/ctkAppLauncher.cmake)<br />
INCLUDE(${Slicer_CMAKE_DIR}/SlicerCTKAppLauncherSettings.cmake)<br />
<br />
ctkAppLauncherConfigure(<br />
<br />
TARGET SlicerQT-real<br />
<br />
APPLICATION_INSTALL_SUBDIR ${Slicer_INSTALL_BIN_DIR}<br />
APPLICATION_NAME Slicer<br />
<br />
SPLASH_IMAGE_PATH ${Slicer_SOURCE_DIR}/Applications/SlicerQT/Resources/Images/SlicerSplashScreen.png<br />
SPLASH_IMAGE_INSTALL_SUBDIR ${Slicer_INSTALL_BIN_DIR}<br />
SPLASHSCREEN_HIDE_DELAY_MS 3000<br />
<br />
ADDITIONAL_HELP_SHORT_ARG "-h"<br />
ADDITIONAL_HELP_LONG_ARG "--help"<br />
ADDITIONAL_NOSPLASH_LONG_ARG "--no-splash"<br />
<br />
DESTINATION_DIR ${Slicer_BINARY_DIR}<br />
<br />
LIBRARY_PATHS_BUILD "${SLICER_LIBRARY_PATHS_BUILD}"<br />
PATHS_BUILD "${SLICER_PATHS_BUILD}"<br />
ENVVARS_BUILD "${SLICER_ENVVARS_BUILD}"<br />
<br />
LIBRARY_PATHS_INSTALLED "${SLICER_LIBRARY_PATHS_INSTALLED}"<br />
PATHS_INSTALLED "${SLICER_PATHS_INSTALLED}"<br />
ENVVARS_INSTALLED "${SLICER_ENVVARS_INSTALLED}"<br />
)<br />
<br />
install(PROGRAMS "${Slicer_BINARY_DIR}/Slicer${CMAKE_EXECUTABLE_SUFFIX}" DESTINATION ".")<br />
<br />
install(<br />
FILES "${Slicer_SOURCE_DIR}/Applications/SlicerQT/Resources/Images/SlicerSplashScreen.png" <br />
DESTINATION ${Slicer_INSTALL_BIN_DIR}<br />
)<br />
<br />
install(<br />
FILES "${Slicer_BINARY_DIR}/SlicerLauncherSettingsToInstall.ini" <br />
DESTINATION ${Slicer_INSTALL_BIN_DIR}<br />
RENAME SlicerLauncherSettings.ini<br />
)<br />
</pre><br />
<br />
= Links for Developers =<br />
<br />
{| cellspacing="20"<br />
|- style="vertical-align:top;"<br />
|| [[File:Commontk build.png|150px|link=Tools:_Application_launcher/Build_Instructions]]<br />
|| [[File:Commontk sourcecode.png|150px|link=http://github.com/commontk/AppLauncher]]<br />
<!--<br />
|| [[File:Commontk dashboard.png|150px|link=http://my.cdash.org/index.php?project=CTKAppLauncher]]<br />
--><br />
|| [[File:commontk_ideas.png|150px|link=Tools:_Application_launcher/Project Ideas]]<br />
|| [[File:Commontk bug.png|150px|link=http://github.com/commontk/AppLauncher/issues]]<br />
|- style="text-align:center; font-size: large"<br />
|| [[Tools:_Application_launcher/Build_Instructions|Build Instructions]]<br />
|| [http://github.com/commontk/AppLauncher Source Code]<br />
<!--<br />
|| [http://my.cdash.org/index.php?project=CTKAppLauncher Source Code's <br/>Quality Dashboard]<br />
--><br />
|| [[Tools:_Application_launcher/Project_Ideas|Project Ideas]]<br />
|| [http://github.com/commontk/AppLauncher/issues Report a problem]<br />
|}<br />
<br />
= Links for Dashboard Maintainers =<br />
<br />
{| cellspacing="20"<br />
|- style="vertical-align:top;"<br />
|| [[File:Commontk dashboard setup.png|150px|link=CTKAppLauncher:Dashboard setup]]<br />
|- style="text-align:center; font-size: large"<br />
|| [[Tools:_Application_launcher/Dashboard setup|Dashboard setup]]<br />
|}<br />
<br />
= Known issues =<br />
<br />
* Windows: Timeout option doesn't work properly<br />
<br />
= Frequently Asked Questions =<br />
<br />
== Why should I used the pre-build binaries ? ==<br />
<br />
If you distribute the AppLauncher along with your Qt application and if there is a chance that Qt libraries are not installed on the host system, you will probably also distribute Qt libraries along with your package. For that reason, you will prefer using the pre-built binaries since they are statically linked against Qt.</div>JChris.FillionRhttp://www.commontk.org/index.php?title=Tools:_Application_launcher/Project_Ideas&diff=2318Tools: Application launcher/Project Ideas2019-05-10T17:29:40Z<p>JChris.FillionR: </p>
<hr />
<div>=== Add terminal emulation ===<br />
<s>Will give the possibility to launch directly application like gdb without first starting a shell</s>. '''DONE''' {{done}}. See [[https://github.com/commontk/AppLauncher/pull/100 PR#100]] and [[https://github.com/commontk/AppLauncher/pull/107 PR#107]]<br />
<br />
=== Resource Editor ===<br />
<s>Develop a small tools (ie CTKResEdit) that could be used to change the icon embedded in a window executable.</s> '''DONE''' {{done}}. See https://github.com/jcfr/ResEdit/</div>JChris.FillionRhttp://www.commontk.org/index.php?title=Tools:_Application_launcher&diff=2317Tools: Application launcher2019-05-10T17:22:52Z<p>JChris.FillionR: /* Links for Developers */</p>
<hr />
<div>[[Image:commontk_applauncher.png|200px|frame|right|Application Launcher Logo]]<br />
<br />
=== What is CTK Application Launcher ?=== <br />
<br />
CTK Application launcher is a lightweight open-source utility allowing to set environment before starting a real application. The launcher is available on Linux, Windows and MacOSX.<br />
<br />
=== Getting started ===<br />
<br />
You could either:<br />
* download the [http://github.com/commontk/AppLauncher/archives/master pre-built binaries] matching your operating system {{note-with-icon-only}}See [[#Why should I used the pre-build binaries ?]]''<br />
<br />
or <br />
<br />
* [[Tools:_Application_launcher/Build_Instructions|build]] from the source<br />
<br />
<br />
See also [[#How to integrate the launcher in my existing project ?]]''<br />
<br />
=== How does CTK Application Launcher work ?=== <br />
<br />
The launcher looks for a setting file where the path of the real application and its associated environment variable are reported. While setting the environment and loading the real application, it can also display a splash screen.<br />
<br />
The settings file follows the format as specified here: http://doc.qt.nokia.com/qsettings.html<br />
<br />
<br />
''' Settings file location '''<br />
<br />
The launcher successively looks for a setting file located either in the current directory or in ''bin'' and ''lib'' subdirectories. <br />
The setting file should match the following pattern ''<LAUNCHERNAME>LauncherSettings.ini''<br />
<br />
For example:<br />
<pre><br />
/home/jchris/Projects/AwesomeApp<br />
/home/jchris/Projects/bin/AwesomeApp-real<br />
/home/jchris/Projects/bin/AwesomeAppLauncherSettings.ini<br />
/home/jchris/Projects/lib/libFoo.so<br />
</pre><br />
<br />
<br />
''' Setting file description '''<br />
<br />
The setting file should have the following format:<br />
<pre><br />
[General]<br />
launcherSplashImagePath=bin/Splash.png<br />
launcherSplashScreenHideDelayMs=1000<br />
<br />
[Application]<br />
path=bin/AwesomeApp-real<br />
arguments=--multithreading-enabled<br />
<br />
[Paths]<br />
1\path=./bin<br />
size=1<br />
<br />
[LibraryPaths]<br />
1\path=./lib<br />
size=1<br />
<br />
[EnvironmentVariables]<br />
FOO_DIRS=<APPLAUNCHER_DIR>/lib<PATHSEP>/usr/local/lib<br />
</pre><br />
<br />
Note that the special strings '''<PATHSEP>''', '''<APPLAUNCHER_NAME>''' and '''<APPLAUNCHER_DIR>''' will be expanded by the launcher to match the current context.<br />
<br />
<br />
''' Launcher command line arguments '''<br />
<br />
As described below, the launcher also provides a broad set of command line arguments.<br />
<br />
<pre><br />
jchris@karakoram:~/Projects/CTK-AppLauncher-Debug/bin $ ./CTKAppLauncher --launcher-help<br />
Usage<br />
CTKAppLauncher [options]<br />
<br />
Options<br />
--launcher-help Display help<br />
--launcher-verbose Verbose mode<br />
--launch Specify the application to launch<br />
--launcher-detach Launcher will NOT wait for the application to finish<br />
--launcher-no-splash Hide launcher splash<br />
--launcher-timeout Specify the time in second before the launcher kills the application. -1 means no timeout (default: -1)<br />
--launcher-generate-template Generate an example of setting file<br />
</pre><br />
<br />
=== Why should you use CTK Application Launcher ?=== <br />
<br />
* Very easy to configure<br />
* Standalone executable<br />
* Available on Windows, linux and MacOSX<br />
* Thoroughly tested<br />
<br />
<br />
=== How to integrate the launcher in my existing project ? ===<br />
<br />
==== Superbuild ====<br />
* Integrate the [[Tools:_Application_launcher/external project definition|external project definition]]<br />
* Use the macro '''ctkAppLauncherConfigure''' as described below<br />
<pre><br />
INCLUDE(${CTKAPPLAUNCHER_DIR}/CMake/ctkAppLauncher.cmake)<br />
INCLUDE(${Slicer_CMAKE_DIR}/SlicerCTKAppLauncherSettings.cmake)<br />
<br />
ctkAppLauncherConfigure(<br />
<br />
TARGET SlicerQT-real<br />
<br />
APPLICATION_INSTALL_SUBDIR ${Slicer_INSTALL_BIN_DIR}<br />
APPLICATION_NAME Slicer<br />
<br />
SPLASH_IMAGE_PATH ${Slicer_SOURCE_DIR}/Applications/SlicerQT/Resources/Images/SlicerSplashScreen.png<br />
SPLASH_IMAGE_INSTALL_SUBDIR ${Slicer_INSTALL_BIN_DIR}<br />
SPLASHSCREEN_HIDE_DELAY_MS 3000<br />
<br />
ADDITIONAL_HELP_SHORT_ARG "-h"<br />
ADDITIONAL_HELP_LONG_ARG "--help"<br />
ADDITIONAL_NOSPLASH_LONG_ARG "--no-splash"<br />
<br />
DESTINATION_DIR ${Slicer_BINARY_DIR}<br />
<br />
LIBRARY_PATHS_BUILD "${SLICER_LIBRARY_PATHS_BUILD}"<br />
PATHS_BUILD "${SLICER_PATHS_BUILD}"<br />
ENVVARS_BUILD "${SLICER_ENVVARS_BUILD}"<br />
<br />
LIBRARY_PATHS_INSTALLED "${SLICER_LIBRARY_PATHS_INSTALLED}"<br />
PATHS_INSTALLED "${SLICER_PATHS_INSTALLED}"<br />
ENVVARS_INSTALLED "${SLICER_ENVVARS_INSTALLED}"<br />
)<br />
<br />
install(PROGRAMS "${Slicer_BINARY_DIR}/Slicer${CMAKE_EXECUTABLE_SUFFIX}" DESTINATION ".")<br />
<br />
install(<br />
FILES "${Slicer_SOURCE_DIR}/Applications/SlicerQT/Resources/Images/SlicerSplashScreen.png" <br />
DESTINATION ${Slicer_INSTALL_BIN_DIR}<br />
)<br />
<br />
install(<br />
FILES "${Slicer_BINARY_DIR}/SlicerLauncherSettingsToInstall.ini" <br />
DESTINATION ${Slicer_INSTALL_BIN_DIR}<br />
RENAME SlicerLauncherSettings.ini<br />
)<br />
</pre><br />
<br />
= Links for Developers =<br />
<br />
{| cellspacing="20"<br />
|- style="vertical-align:top;"<br />
|| [[File:Commontk build.png|150px|link=Tools:_Application_launcher/Build_Instructions]]<br />
|| [[File:Commontk sourcecode.png|150px|link=http://github.com/commontk/AppLauncher]]<br />
<!--<br />
|| [[File:Commontk dashboard.png|150px|link=http://my.cdash.org/index.php?project=CTKAppLauncher]]<br />
--><br />
|| [[File:commontk_ideas.png|150px|link=Tools:_Application_launcher/Project Ideas]]<br />
|| [[File:Commontk bug.png|150px|link=http://github.com/commontk/AppLauncher/issues]]<br />
|- style="text-align:center; font-size: large"<br />
|| [[Tools:_Application_launcher/Build_Instructions|Build Instructions]]<br />
|| [http://github.com/commontk/AppLauncher Source Code]<br />
<!--<br />
|| [http://my.cdash.org/index.php?project=CTKAppLauncher Source Code's <br/>Quality Dashboard]<br />
--><br />
|| [[Tools:_Application_launcher/Project_Ideas|Project Ideas]]<br />
|| [http://github.com/commontk/AppLauncher/issues Report a problem]<br />
|}<br />
<br />
= Links for Dashboard Maintainers =<br />
<br />
{| cellspacing="20"<br />
|- style="vertical-align:top;"<br />
|| [[File:Commontk dashboard setup.png|150px|link=CTKAppLauncher:Dashboard setup]]<br />
|- style="text-align:center; font-size: large"<br />
|| [[Tools:_Application_launcher/Dashboard setup|Dashboard setup]]<br />
|}<br />
<br />
= Known issues =<br />
<br />
* Windows: Timeout option doesn't work properly<br />
<br />
= Frequently Asked Questions =<br />
<br />
== Why should I used the pre-build binaries ? ==<br />
<br />
If you distribute the AppLauncher along with your Qt application and if there is a chance that Qt libraries are not installed on the host system, you will probably also distribute Qt libraries along with your package. For that reason, you will prefer using the pre-built binaries since they are statically linked against Qt.</div>JChris.FillionRhttp://www.commontk.org/index.php?title=Making_a_Release&diff=2316Making a Release2018-10-29T09:58:27Z<p>JChris.FillionR: </p>
<hr />
<div>A core developer should use the following steps to create a release <tt>YYYY-MM-DD</tt> of CTK<br />
<br />
<ol><br />
<br />
<li>Make sure that all CI tests are passing</li><br />
<br />
<li><br />
<p>Download the source</p><br />
<pre>cd /tmp && \<br />
git clone git@github.com:commontk/CTK && \<br />
cd CTK<br />
</pre><br />
</li><br />
<br />
<li><br />
<p>List all tags sorted by version</p><br />
<pre>$ git fetch --tags && \<br />
git tag -l | sort -V<br />
</pre><br />
</li><br />
<br />
<li><br />
<p>Choose the next release version number</p><br />
<pre>$ release=YYYY-MM-DD</pre><br />
</li><br />
<br />
<li><br />
<p>Tag the release</p><br />
<pre>git tag --sign -m "CTK ${release}" ${release} master</pre><br />
<p><small>We recommend using a [https://help.github.com/articles/generating-a-new-gpg-key/ GPG signing key] to sign the tag.</small></p><br />
</li><br />
<br />
<li><br />
<p>Publish the release tag</p><br />
<pre>git push origin ${release}</pre><br />
</li><br />
</ol></div>JChris.FillionRhttp://www.commontk.org/index.php?title=Making_a_Release&diff=2315Making a Release2018-10-29T09:58:06Z<p>JChris.FillionR: Created page with "A core developer should use the following steps to create a release <tt>YYYY-MM-DD</tt> of CTK <ol> <li>Make sure that all CI tests are passing</li> <li> <p>Downloa..."</p>
<hr />
<div>A core developer should use the following steps to create a release <tt>YYYY-MM-DD</tt> of CTK<br />
<br />
<ol><br />
<br />
<li>Make sure that all CI tests are passing</li><br />
<br />
<li><br />
<p>Download the source</p><br />
<pre>cd /tmp && \<br />
git clone git@github.com:commontk/CTK && \<br />
cd CTK<br />
</pre><br />
</li><br />
<br />
<li><br />
<p>List all tags sorted by version</p><br />
<pre>$ git fetch --tags && \<br />
git tag -l | sort -V<br />
</pre><br />
</li><br />
<br />
<li><br />
<p>Choose the next release version number</p><br />
<pre>$ release=YYYY-MM--DDD</pre><br />
</li><br />
<br />
<li><br />
<p>Tag the release</p><br />
<pre>git tag --sign -m "CTK ${release}" ${release} master</pre><br />
<p><small>We recommend using a [https://help.github.com/articles/generating-a-new-gpg-key/ GPG signing key] to sign the tag.</small></p><br />
</li><br />
<br />
<li><br />
<p>Publish the release tag</p><br />
<pre>git push origin ${release}</pre><br />
</li><br />
</ol></div>JChris.FillionRhttp://www.commontk.org/index.php?title=Main_Page&diff=2314Main Page2018-10-29T09:49:36Z<p>JChris.FillionR: </p>
<hr />
<div>__NOTOC__<br />
<br />
= '''CTK - The Common Toolkit''' =<br />
<br />
<div style="float:right; margin-left:12px;"><br />
<wikiscript type="text/javascript" src="http://www.ohloh.net/p/483293/widgets/project_basic_stats.js"></wikiscript><br />
<wikiscript type="text/javascript">document.write('<style>div.gadget { border-color: #bbb; }</style>')</wikiscript><br />
</div><br />
<br />
The goal of CTK is to support biomedical image computing. CTK code is licensed under [http://www.apache.org/licenses/LICENSE-2.0.html Apache 2.0]. This means that users of CTK are allowed to use the code for academic, commercial, or other purposes without paying license fees or being restricted in their ability to redistribute their code or keep it private. <br />
<br />
CTK works on topics that are not covered by existing toolkits that support the mutual interest and needs of the CTK community. The main scope of current CTK efforts includes the topics ''DICOM'', ''DICOM Application Hosting'', ''Widgets'', and ''Plugin Framework''.<br />
<br />
<br />
<center><br />
<div style="display:table-row;"><br />
<div style="display:table-cell; max-width:450px;"><br />
{{documentation/g-box-start|Documentation/Dicom_Overview|DICOM}}Provides high-level classes supporting query and retrieve operations from PACS and local databases. Includes Qt widgets to easily set-up a server connection and to send queries and view the results. [http://dicom.offis.de/dcmtk DCMTK] is used as the underlying toolkit.<br />
{{documentation/g-box-links|imggalurl=|apiurl=http://www.commontk.org/docs/html/group__Project__DICOM.html|issuelabel=DICOM}}. <br />
[[Documentation/Dicom_Overview | Read more...]]<br />
CTK is also the home of [http://dcmjs.org dcmjs].<br />
{{documentation/g-box-end}}<br />
</div><br />
<div style="display:table-cell; max-width:450px;"><br />
{{documentation/g-box-start|Documentation/DicomApplicationHosting|DICOM Application Hosting}}Aims at creating a C++ reference implementation of the [[media:DicomAppHostingSpecs.pdf | DICOM Part 19 Application Hosting specifications]]. It provides an infrastructure to create both hosts and hosted applications. The project is still in alpha status but may be useful for conformance testing and initial experimentation.<br />
{{documentation/g-box-links|imggalurl=|apiurl=http://www.commontk.org/docs/html/group__Project__DICOMAppHosting.html|issuelabel=DICOMApplicationHosting}}<br />
[[Documentation/DicomApplicationHosting | Read more...]]<br />
{{documentation/g-box-end}}<br />
</div><br />
</div><br />
<div style="display:table-row"><br />
<div style="display:table-cell; max-width:450px;"><br />
{{documentation/g-box-start|Documentation/Widgets|Widgets}}A collection of Qt Widgets for usage in biomedical imaging applications.<br />
{{documentation/g-box-links|imggalurl=Documentation/ImageGallery|apiurl=http://www.commontk.org/docs/html/group__Project__Widgets.html|issuelabel=Widgets}}<br />
[[Documentation/Widgets | Read more...]]<br />
{{documentation/g-box-end}}<br />
</div><br />
<div style="display:table-cell; max-width:450px;"><br />
{{documentation/g-box-start|Documentation/Plugin_Framework|Plugin Framework}}A dynamic component system for C++, modeled after the [http://www.osgi.org OSGi] specifications. It enables a development model where applications are (dynamically) composed of many different (reusable) components following a service oriented approach.<br />
{{documentation/g-box-links|imggalurl=|apiurl=http://www.commontk.org/docs/html/group__PluginFramework.html|issuelabel=PluginFramework}}<br />
[[Documentation/Plugin_Framework | Read more...]]<br />
{{documentation/g-box-end}}<br />
</div><br />
</div><br />
<div style="display:table-row"><br />
<div style="display:table-cell; max-width:450px;"><br />
{{documentation/g-box-start|Documentation/Command_Line_Interface|Command Line Interfaces}}A technology that allows the algorithms written as self-contained executables to be used in multiple end-user application environments without modifications.<br />
{{documentation/g-box-links|imggalurl=|apiurl=http://www.commontk.org/docs/html/group__CommandLineModules__Group.html|issuelabel=CmdLineModules}}<br />
[[Documentation/Command_Line_Interface | Read more...]]<br />
{{documentation/g-box-end}}<br />
</div><br />
</div><br />
</center><br />
=== Important Links ===<br />
<br />
Although the CTK efforts are concentrated on the topics described above, there are a couple of other working areas covering topics like ''[[Interoperability | interoperability]]'' and ''software testing'' which might be of interest to the biomedical imaging community. Please see the links given below for more details.<br />
<br />
{| border="0" align="center" width="98%" valign="top" cellspacing="7" cellpadding="2"<br />
|-<br />
! width="33%"|<br />
! |<br />
! width="33%"|<br />
! |<br />
! width="33%"|<br />
|- <br />
|valign="top"|<br />
<span style="color: #555555; font-size: 18px; font-weight: bold;">About CTK</span><br />
----<br />
* [[News]]<br />
* [[Events]]<br />
* [[The Team]]<br />
* [[CTK-Roadmap | CTK Roadmap Document]]<br />
* [[Interoperability]]<br />
* [[Documentation | Technical Documentation]]<br />
* [[CTKBarCamp | CTKBarCamp]]<br />
<br />
|bgcolor="#CCCCCC"|<br />
|valign="top"|<br />
<br />
<span style="color: #555555; font-size: 18px; font-weight: bold;">CTK Users</span><br />
----<br />
* [[Getting Started]]<br />
* [[Build Instructions]]<br />
* [http://www.commontk.org/docs/html/classes.html API Documentation]<br />
* [[Tools:_Application_launcher|Application Launcher]]<br />
<br />
|bgcolor="#CCCCCC"|<br />
|valign="top"|<br />
<br />
<span style="color: #555555; font-size: 18px; font-weight: bold;">CTK Developers</span><br />
----<br />
* [[Getting Started]]<br />
* [http://github.com/commontk/CTK Source Code]<br />
* [http://my.cdash.org/index.php?project=CTK Dashboard]<br />
* [[Contributing to CTK]]<br />
* [http://github.com/commontk/CTK/issues/new Report a problem]<br />
* [[Project Ideas]]<br />
* [[Making a Release]]<br />
<br />
<br />
|}<br />
<br />
<br />
{|align="center"<br />
|-<br />
|-<br />
| <br />
{|cellspacing="16px"<br />
|-<br />
|CTK builds on some awesome technology: <br />
| [[File:200px-GitHub.png|x26px|link=http://github.com/commontk/CTK]]<br />
| [[File:Cmake-logo.png|x26px|link=Documentation/BuildSystem_Description]]<br />
| [[File:Qt-logo.png|x26px|link=http://qt.nokia.com]]<br />
| [[File:Python-powered-w-100x40.png|x26px|link=Documentation/Python_Scripting]]<br />
| [[File:Dcmtk-logo.png|x26px|link=http://www.dcmtk.org]]<br />
| [[File:ItkLogo med.png|x26px|link=http://www.itk.org]]<br />
| [[File:VTKlogo.png|x26px|link=http://www.vtk.org]]<br />
|}<br />
|}</div>JChris.FillionRhttp://www.commontk.org/index.php?title=Documentation/Plugin_Framework&diff=2313Documentation/Plugin Framework2018-03-10T05:54:27Z<p>JChris.FillionR: </p>
<hr />
<div>The CTK Plugin Framework can shortly be described as a dynamic component system for C++. It is directly based on the [http://www.osgi.org OSGi] specifications, hence any material explaining OSGi also applies to CTK (without the Java specifics, of course).<br />
<br />
=== Introduction ===<br />
<br />
Being based on an industry standard like OSGi brings the benefits of stabilized APIs and specifications directly to the CTK Plugin Framework. Making use of the experience and dedicated work of highly skilled architects enables us to concentrate on the implementation instead of doing tedious iterations of the API design.<br />
<br />
Start reading the [[Documentation/CTK_Plugin_Framework:_Introduction | introduction to the scope and features]] of the Plugin Framework.<br />
<br />
See the original [[Documentation/PluginFramework_DesignDoc | design document]] for the initial requirements.<br />
<br />
=== Specifications ===<br />
<br />
The original [http://www.osgi.org/Release4/Download OSGi specifications] are a great read for detailed technical information about the plugin framework itself and the provided interfaces and implementations for the compendium services. The CTK Plugin Framework is based on OSGi Release 4 Version 4.2, with some API inspired by the upcoming Version 4.3.<br />
<br />
=== Documentation ===<br />
<br />
If you are new to OSGi, consider reading [http://njbartlett.name/osgibook.html Neil Bartlett's free book on OSGi] (skip the first 20 pages and read the rest of Part I). To get a quick overview how to use parts of the CTK Plugin Framework API, you can view this [[Media:CTKPluginFrameworkIntro.pdf | Technical Introduction]].<br />
<br />
Below you will find more information about specific topics.<br />
<br />
{| border="0" align="center" width="98%" valign="top" cellspacing="7" cellpadding="2"<br />
|-<br />
! width="33%"|<br />
! |<br />
! width="33%"|<br />
! |<br />
! width="33%"|<br />
|- <br />
|valign="top"|<br />
<span style="color: #555555; font-size: 18px; font-weight: bold;">Tutorials</span><br />
----<br />
This is a list of available or planned tutorials:<br />
* [[Documentation/CTK_Plugin_Framework: Setting up a project|Setting up a project using the CTK Plugin Framework]]<br />
* [[Documentation/CTK_Plugin_Framework: Embedding the CTK Plugin Framework|Embedding the CTK Plugin Framework in an existing application]]<br />
* Starting and configuring the Framework<br />
* [[Documentation/CTK_Plugin_Framework: Creating a new CTK Plugin | Creating a new CTK Plugin]]<br />
* Listen to service events<br />
* The CTK-Plugin Framework in CAS Applications ([https://github.com/transbite/CTK_CAS_Tutorial/blob/master/TheCTK-PluginFrameworkinCASApplications-ATutorial.pdf Tutorial], [https://github.com/transbite/CTK_CAS_Tutorial source code])<br />
<br />
|bgcolor="#CCCCCC"|<br />
|valign="top"|<br />
<br />
<span style="color: #555555; font-size: 18px; font-weight: bold;">Service Implementations</span><br />
----<br />
OSGi Compendium Service Specifications already implemented or being worked on:<br />
* [[Documentation/CTK_Plugin_MetaType | MetaType Service]] {{Done}} [ [http://www.osgi.org/Download/File?url=/download/r4v42/r4.cmpn.pdf Chapter 105] ]<br />
* [[Documentation/CTK_Plugin_EventAdmin_local | Event Admin (local event bus)]] {{Done}} [ [http://www.osgi.org/Download/File?url=/download/r4v42/r4.cmpn.pdf Chapter 113] ]<br />
* [[Documentation/CTK_Plugin_EventAdmin_remote | Event Admin (remote event bus)]] {{Doing}} [ [http://www.osgi.org/Download/File?url=/download/r4v42/r4.cmpn.pdf Chapter 113] ]<br />
* [[Documentation/CTK_Plugin_ConfigAdmin | Config Admin]] {{Done}} [ [http://www.osgi.org/Download/File?url=/download/r4v42/r4.cmpn.pdf Chapter 104] ]<br />
* [[Documentation/CTK_Plugin_Log | Log Service]] {{Doing}} [ [http://www.osgi.org/Download/File?url=/download/r4v42/r4.cmpn.pdf Chapter 101] ]<br />
<br />
|bgcolor="#CCCCCC"|<br />
|valign="top"|<br />
<br />
<span style="color: #555555; font-size: 18px; font-weight: bold;">External Documentation</span><br />
----<br />
* [http://www.commontk.org/docs/html/group__PluginFramework.html API Documentation]<br />
<br />
A free preview draft about OSGi. Skip the first 20 pages about Java class dependencies and read the rest of Part I.<br />
<br />
* [http://njbartlett.name/osgibook.html Neil Bartlett's free book on OSGi]<br />
<br />
Java implementations which provide several tutorials (Java specific)<br />
<br />
* [http://www.eclipse.org/equinox Equinox]<br />
* [http://www.knopflerfish.org Knopflerfish]<br />
* [http://felix.apache.org Apache Felix]<br />
<br />
|}</div>JChris.FillionRhttp://www.commontk.org/index.php?title=Tools:_Application_launcher/Build_Instructions&diff=2312Tools: Application launcher/Build Instructions2017-09-22T04:20:27Z<p>JChris.FillionR: /* Versionning */</p>
<hr />
<div>= Prerequisites: Build Qt statically =<br />
<br />
== Qt 4.8.6 ==<br />
<!--<br />
=== Linux ===<br />
<br />
=== Mac ===<br />
--><br />
<br />
=== Windows ===<br />
<br />
* Download the source: http://packages.kitware.com/download/item/6174/qt-everywhere-opensource-src-4.8.6.zip<br />
* Extract archive into <code>C:\D\Support\qt-static-release-i386-4.8.6</code><br />
** Note: ''On windows, the library is built in the source tree. To avoid confusion, let's make sure the source directory is properly named''<br />
* Download ftp://ftp.qt.nokia.com/jom/jom.zip<br />
* Extract archive into <code>C:\D\Support\jom</code><br />
* Add "C:\D\Support\jom" to PATH<br />
* Start <code>Visual Studio 32 bits Command Prompt</code><br />
<pre><br />
cd C:\D\Support\qt-static-release-i386-4.8.6<br />
configure.exe -confirm-license -static -release -opensource -arch windows -no-exceptions -no-accessibility -no-sql-db2 -no-sql-ibase -no-sql-mysql -no-sql-oci -no-sql-odbc -no-sql-psql -no-sql-sqlite -no-sql-sqlite2 -no-sql-ibase -no-sql-tds -no-qt3support -no-xmlpatterns -no-multimedia -no-audio-backend -no-phonon -no-phonon-backend -no-webkit -no-script -no-scripttools -no-declarative -no-gif -no-libtiff -no-libmng -no-openssl -no-dbus -no-opengl -no-openvg -nomake demos<br />
</pre><br />
* Build<br />
<pre><br />
jom<br />
</pre><br />
<br />
== Qt 4.7.4 ==<br />
<br />
* <code>-no-stl</code> flag shouldn't be used. See http://qt-project.org/forums/viewthread/9716/#55456<br />
<br />
=== Linux ===<br />
* Download the source<br />
cd Dashboards/Support<br />
wget http://packages.kitware.com/download/item/7521/qt-everywhere-opensource-src-4.7.4.tar.gz<br />
tar -xzvf qt-everywhere-opensource-src-4.7.4.tar.gz<br />
<br />
* Configure<br />
<pre><br />
./configure -prefix /home/kitware/Dashboards/Support/qt/qt-everywhere-opensource-static-release-4.7.4 -confirm-license -static -release -opensource -no-largefile -no-exceptions -no-accessibility -no-sql-db2 -no-sql-ibase -no-sql-mysql -no-sql-oci -no-sql-odbc -no-sql-psql -no-sql-sqlite -no-sql-sqlite2 -no-sql-sqlite_symbian -no-sql-tds -no-qt3support -no-xmlpatterns -no-multimedia -no-audio-backend -no-phonon -no-phonon-backend -no-svg -no-webkit -no-javascript-jit -no-script -no-scripttools -no-declarative -no-gif -no-libtiff -no-libmng -no-openssl -no-nis -no-cups -no-dbus -no-opengl -no-openvg -nomake demos -no-gtkstyle<br />
</pre><br />
<br />
* Build and install<br />
make sub-src && make install<br />
<br />
=== Mac ===<br />
* Download the source<br />
cd Dashboards/Support<br />
curl -O http://packages.kitware.com/download/item/7521/qt-everywhere-opensource-src-4.7.4.tar.gz<br />
tar -xzvf qt-everywhere-opensource-src-4.7.4.tar.gz<br />
<br />
* Configure<br />
<pre><br />
./configure -prefix /Users/kitware/Dashboards/Support/qt-everywhere-opensource-static-build-4.7.4/ -confirm-license -arch x86_64 -static -release -opensource -no-largefile -no-exceptions -no-egl -no-accessibility -no-sql-db2 -no-sql-ibase -no-sql-mysql -no-sql-oci -no-sql-odbc -no-sql-psql -no-sql-sqlite -no-sql-sqlite2 -no-sql-sqlite_symbian -no-sql-tds -no-qt3support -no-xmlpatterns -no-multimedia -no-audio-backend -no-phonon -no-phonon-backend -no-svg -no-webkit -no-javascript-jit -no-script -no-scripttools -no-declarative -no-gif -no-libtiff -no-libmng -no-openssl -no-nis -no-cups -no-dbus -no-opengl -nomake demos -sdk /Developer/SDKs/MacOSX10.5.sdk/<br />
</pre><br />
<br />
* Build and install<br />
make sub-src -j3 && make install<br />
<br />
=== Windows ===<br />
<br />
* Download the source: http://packages.kitware.com/download/item/7520/qt-everywhere-opensource-src-4.7.4.zip<br />
* Extract archive into <code>C:\D\Support\qt-static-release-i386-4.7.4</code><br />
** Note: ''On windows, the library is built in the source tree. To avoid confusion, let's make sure the source directory is properly named''<br />
* Download ftp://ftp.qt.nokia.com/jom/jom.zip<br />
* Extract archive into <code>C:\D\Support\jom</code><br />
* Add "C:\D\Support\jom" to PATH<br />
* Start <code>Visual Studio 32 bits Command Prompt</code><br />
<pre><br />
cd C:\D\Support\qt-static-release-i386-4.7.4<br />
configure.exe -confirm-license -static -release -opensource -arch windows -no-exceptions -no-accessibility -no-sql-db2 -no-sql-ibase -no-sql-mysql -no-sql-oci -no-sql-odbc -no-sql-psql -no-sql-sqlite -no-sql-sqlite2 -no-sql-ibase -no-sql-tds -no-qt3support -no-xmlpatterns -no-multimedia -no-audio-backend -no-phonon -no-phonon-backend -no-webkit -no-script -no-scripttools -no-declarative -no-gif -no-libtiff -no-libmng -no-openssl -no-dbus -no-opengl -no-openvg -nomake demos<br />
</pre><br />
* Build<br />
<pre><br />
jom<br />
</pre><br />
<br />
== Qt 4.7.0 ==<br />
<br />
=== Linux ===<br />
* Download the source<br />
cd Dashboards/Support<br />
wget http://get.qt.nokia.com/qt/source/qt-everywhere-opensource-src-4.7.0.tar.gz<br />
tar -xzvf qt-everywhere-opensource-src-4.7.0.tar.gz<br />
<br />
* Configure<br />
<pre><br />
./configure -prefix /home/jchris/Dashboards/Support/qt-static-release-4.7.0 -confirm-license -static -release -opensource -no-largefile -no-stl -no-exceptions -no-accessibility -no-sql-db2 -no-sql-ibase -no-sql-mysql -no-sql-oci -no-sql-odbc -no-sql-psql -no-sql-sqlite -no-sql-sqlite2 -no-sql-sqlite_symbian -no-sql-tds -no-qt3support -no-xmlpatterns -no-multimedia -no-audio-backend -no-phonon -no-phonon-backend -no-svg -no-webkit -no-javascript-jit -no-script -no-scripttools -no-declarative -no-gif -no-libtiff -no-libmng -no-openssl -no-nis -no-cups -no-dbus -no-opengl -no-openvg -nomake tools -nomake demos -no-gtkstyle<br />
</pre><br />
<br />
* Build and install<br />
make && make install<br />
<br />
=== Mac ===<br />
<br />
* Download the source<br />
cd Dashboards/Support<br />
curl-O http://get.qt.nokia.com/qt/source/qt-everywhere-opensource-src-4.7.0.tar.gz<br />
tar -xzvf qt-everywhere-opensource-src-4.7.0.tar.gz<br />
<br />
* Configure<br />
<pre><br />
./configure -prefix /Users/jjomier/Workspace/qt-static-release-4.7.0 -confirm-license -cocoa -universal -static -release -opensource -no-largefile -no-stl -no-exceptions -no-egl -no-accessibility -no-sql-db2 -no-sql-ibase -no-sql-mysql -no-sql-oci -no-sql-odbc -no-sql-psql -no-sql-sqlite -no-sql-sqlite2 -no-sql-sqlite_symbian -no-sql-tds -no-qt3support -no-xmlpatterns -no-multimedia -no-audio-backend -no-phonon -no-phonon-backend -no-svg -no-webkit -no-javascript-jit -no-script -no-scripttools -no-declarative -no-gif -no-libtiff -no-libmng -no-openssl -no-nis -no-cups -no-dbus -no-opengl -no-openvg-nomake tools -nomake demos<br />
</pre><br />
<br />
* Build and install<br />
make && make install<br />
<br />
=== Windows ===<br />
* Download the source: http://get.qt.nokia.com/qt/source/qt-everywhere-opensource-src-4.7.0.zip<br />
* Extract archive into C:\Dashboards\Support\qt-static-release-4.7.0<br />
** Note: ''On windows, the library is built in the source tree. To avoid confusion, let's make sure the source directory is properly named''<br />
<pre><br />
cd C:\Dashboards\Support\qt-static-release-4.7.0<br />
configure.exe -confirm-license -static -release -opensource -arch windows -no-stl -no-exceptions -no-accessibility -no-sql-db2 -no-sql-ibase -no-sql-mysql -no-sql-oci -no-sql-odbc -no-sql-psql -no-sql-sqlite -no-sql-sqlite2 -no-sql-ibase -no-sql-tds -no-qt3support -no-xmlpatterns -no-multimedia -no-audio-backend -no-phonon -no-phonon-backend -no-webkit -no-script -no-scripttools -no-declarative -no-gif -no-libtiff -no-libmng -no-openssl -no-dbus -no-opengl -no-openvg -nomake tools -nomake demos<br />
</pre><br />
* Build<br />
<pre><br />
nmake<br />
</pre><br />
<br />
= Build the launcher =<br />
<br />
== Linux ==<br />
cd ~/Projects<br />
git clone git://github.com/commontk/AppLauncher.git<br />
mkdir AppLauncher-Release<br />
cd AppLauncher-Release<br />
cmake -DQT_QMAKE_EXECUTABLE:FILEPATH=/home/jchris/Dashboards/Support/qt-static-release-4.7.0/bin/qmake -DBUILD_TESTING:BOOL=ON -DBUILD_TYPE:STRING=Release ../AppLauncher<br />
<br />
== Mac ==<br />
cd ~/Projects<br />
git clone git://github.com/commontk/AppLauncher.git<br />
mkdir AppLauncher-Release<br />
cd AppLauncher-Release<br />
cmake -DQT_QMAKE_EXECUTABLE:FILEPATH=/home/jchris/Dashboards/Support/qt-static-release-4.7.0/bin/qmake -DBUILD_TESTING:BOOL=ON -DBUILD_TYPE:STRING=Release -DCMAKE_OSX_ARCHITECTURES:STRING="i386"../AppLauncher<br />
<br />
* Note that an extra cmake variable has been specified: '''-DCMAKE_OSX_ARCHITECTURES:STRING="i386"'''<br />
<br />
== Windows ==<br />
<br />
= Package the launcher =<br />
== Linux ==<br />
== Mac ==<br />
== Windows ==<br />
Don't build the package via Visual Studio, but from the command line<br />
"c:\Program Files\CMake 2.8\bin\cpack.exe" -G TGZ<br />
<br />
= Versioning =<br />
<br />
See https://github.com/commontk/AppLauncher#maintainers-how-to-make-a-release-<br />
<br />
<!--<br />
Since there all development occurs on <code>master</code>, each time version is updated, two commits will be required.<br />
<br />
== Release-candidate ==<br />
=== Step1 ===<br />
<br />
<code><RC></code> corresponds to the release candidate number. It is greater or equal to one.<br />
<br />
* In <code>CMakeLists.txt</code>, <br />
** set <code>CTKAppLauncher_VERSION_IS_RELEASE</code> to <code>1</code><br />
** uncomment and set <code>CTKAppLauncher_VERSION_RC</code> to <code><RC></code><br />
<br />
* ... and if this is the first release candidate, update at least one these variables:<br />
** <code>CTKAppLauncher_MAJOR_VERSION</code><br />
** <code>CTKAppLauncher_MINOR_VERSION</code><br />
** <code>CTKAppLauncher_BUILD_VERSION</code><br />
<br />
* Commit message: <code>CTKAppLauncher X.Y.Z-rc<RC></code><br />
<br />
=== Step2 ===<br />
<br />
* Generate packages based on SHA associated with step1.<br />
<br />
=== Step3 ===<br />
<br />
* In <code>CMakeLists.txt</code>, set <code>CTKAppLauncher_VERSION_IS_RELEASE</code> to <code>0</code><br />
* Commit message: <code>Begin post-X.Y.Z-rc<RC> development</code><br />
<br />
== Release ==<br />
=== Step1 ===<br />
* In <code>CMakeLists.txt</code>, <br />
** set <code>CTKAppLauncher_VERSION_IS_RELEASE</code> to <code>1</code><br />
** comment <code>CTKAppLauncher_VERSION_RC</code> and reset to <code>1</code><br />
<br />
* Commit message: <code>CTKAppLauncher X.Y.Z</code><br />
<br />
=== Step2 ===<br />
<br />
* Generate packages based on SHA associated with step1.<br />
* Tag the repository:<br />
git tag -s -m "CTKAppLauncher X.Y.Z" vX.Y.Z<br />
<br />
=== Step3 ===<br />
<br />
* In <code>CMakeLists.txt</code>, set <code>CTKAppLauncher_VERSION_IS_RELEASE</code> to <code>0</code><br />
* Commit message: <code>Begin post-X.Y.Z development</code><br />
<br />
--></div>JChris.FillionRhttp://www.commontk.org/index.php?title=Documentation&diff=2303Documentation2016-09-01T21:55:09Z<p>JChris.FillionR: /* Python scripting */</p>
<hr />
<div>=== Architectural Notes ===<br />
<br />
These notes have been taken during various meetings in the past and summarize discussions about the architecture and requirements of CTK.<br />
<br />
* [[Documentation/Whitepaper|Whitepaper]]<br />
* [[CTK-Roadmap|Roadmap]]<br />
* [[Documentation/Third_Party_Dependencies|Third party dependencies]]<br />
<br />
Topics being discussed but with no concrete agreement or maintained coding efforts include the following:<br />
<br />
* [[Documentation/ctkScene|ctkScene ideas]]<br />
* [[Documentation/Interfacing_Via_OpenGL|Interfacing systems at the OpenGL level (i.e. VTK and OpenInventor)]]<br />
* [[Documentation/Messaging | Messaging service for event management and system integration]]<br />
<br />
=== Build System ===<br />
<br />
* [[Documentation/BuildSystem_Description | Description]]<br />
* [[Documentation/Build Options | Build Options]]<br />
* [[Documentation/Create_SVN_Project_Mirror | Create SVN project mirror]]<br />
<br />
=== DICOM ===<br />
<br />
=== DICOM Application Hosting ===<br />
<br />
Please visit the page documenting the [[Documentation/DicomApplicationHosting | DICOM Part 19]] implementation efforts.<br />
<br />
=== [[Documentation/Widgets|Widgets]] ===<br />
<br />
{{:Documentation/Widgets}}<br />
<br />
=== Plugin Framework ===<br />
<br />
The CTK Plugin Framework has its own page [[Documentation/Plugin_Framework | here]].<br />
<br />
=== CLI Modules ===<br />
<br />
Big picture for [[Documentation/Command_Line_Interface|Command Line Interface]]<br />
<br />
=== Testing ===<br />
<br />
* [[Documentation/Widget_testing | Widget testing]]<br />
<br />
=== Python scripting ===<br />
<br />
* [[Documentation/PythonScripting_HowToUseCTKPythonConsole | How to use CTK Python console ?]]<br />
* [[Documentation/PythonScripting_ConvertPyQt2PythonQt | From PyQt to PythonQt]]<br />
<br />
=== [[Documentation/MigrationGuide|Migration Guide]] ===<br />
<br />
{{:Documentation/MigrationGuide}}</div>JChris.FillionRhttp://www.commontk.org/index.php?title=Build_Instructions&diff=2300Build Instructions2016-05-09T14:53:14Z<p>JChris.FillionR: /* Prerequisties */</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.x or 5.x<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>JChris.FillionRhttp://www.commontk.org/index.php?title=Build_Instructions&diff=2299Build Instructions2016-05-09T14:52:45Z<p>JChris.FillionR: </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.x (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>JChris.FillionRhttp://www.commontk.org/index.php?title=Documentation/Command_Line_Interface&diff=2298Documentation/Command Line Interface2015-11-04T22:05:10Z<p>JChris.FillionR: </p>
<hr />
<div>== What are CLI modules? ==<br />
<br />
"CLI (commandline interface) modules" are standalone tools (for instance, a segmentation algorithm) that offer a commandline interface and a '''--xml''' switch that outputs a ''machine-readable kind of --help'' (XML description of their supported parameters, values, hints, etc.). This makes it possible to use such CLIs as some kind of "plugins" for rich GUI applications that offer visualization and '''automatically generated GUI panels''' for parameter adjustment. Also, the whole data handling is left to the host application (which may e.g. implement a batch processing pipeline, running the CLI systematically on all relevant data for a particular study), and it becomes possible to use the '''same algorithm in various different host applications and contexts''', by agreeing on a common standard for the --xml output.<br />
<br />
== CTK Support for CLI Modules ==<br />
<br />
CTK provides an API for interfacing with such self-describing command line modules, and the XML schema for the parameter description and most of the supported feature set for a module has been adopted from the Slicer Execution Model (the first host where this idea originated).<br />
<br />
The API provided by CTK allows the management, GUI generation, and asynchronous execution of such modules in a toolkit-independent and interoperable way. Application writers can rely on the provided libraries and their API to quickly integrate command line modules into their applications. CTK also comes with an example application, called ctkCommandLineModuleExplorer which can be used to load different kinds of modules, to verify their correctness, to run - and finally inspect their output.<br />
<br />
;More information on CTK's support for CLI modules:<br />
: There is [http://www.commontk.org/docs/html/CommandLineModules_Page.html a well-written page in the Doxygen docs] (and a [http://www.commontk.org/docs/html/group__CommandLineModules__Group.html group for the classes]), as well as [[Documentation/CLI Support in CTK|a separate wiki page]].<br />
<br />
== Example Applications ==<br />
<br />
CLI modules are already supported by a number of host applications, e.g. 3D Slicer, NiftyView / MITK Workbench, GIMIAS, MedInria, MeVisLab, nipype and more. You can see some examples on the [[Documentation/CLI_In_Context|CLI In Context]] page.<br />
<br />
== Background Information / Specs ==<br />
<br />
Currently, the CLI module standard is documented as [http://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Developers/SlicerExecutionModel Slicer's Execution Model]. There is an [https://github.com/commontk/CTK/blob/master/Libs/CommandLineModules/Core/Resources/ctkCmdLineModule.xsd XML schema definition] ([http://www.commontk.org/docs/html/ctkCmdLineModule.xsd auto-generated pretty-printed documentation]) that was created retroactively, and not all existing modules strictly follow the spec. However, one problem is that the schema definition does not facilitate to specify that e.g. the order of author and description elements is irrelevant, so the schema is more strict than the actual implementation in some respects (and less strict in some other).<br />
<br />
You are welcome to join the [http://www.commontk.org/index.php/Getting_Started#CTK_mailing_list ctk-developers mailing list] for discussing related questions.<br />
<br />
TODO: The standard (Slicer execution model description) should probably be moved to the CTK domain.<br />
<br />
== Creating your own CLI modules ==<br />
<br />
There is a [https://github.com/Slicer/SlicerExecutionModel "SlicerExecutionModel"] project at GitHub that shall help you with implementing new CLIs, e.g. by offering means to '''automatically parse commandline arguments''' based on the XML spec.<br />
<br />
The Slicer documentation also contains instructions on [http://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Developers/Modules how to extend Slicer via CLI modules] or other means.<br />
<br />
If you want to implement a Python-based solution, you might also be interested in [https://github.com/commontk/ctk-cli the code available on GitHub] and [https://pypi.python.org/pypi/ctk-cli the Python Package Index] that was developed as part of the [http://www.na-mic.org/Wiki/index.php/2013_Summer_Project_Week:CLI_modules_in_MeVisLab CLI integration in MeVisLab] during the NA-MIC summer project week 2013.<br />
<br />
== Examples of CLI Modules ==<br />
<br />
Wherever feasible, Slicer developers are encouraged to encapsulate functionality as CLI modules.<br />
* [https://github.com/Slicer/Slicer/tree/master/Modules/CLI Source code of Slicer's CLI Modules]<br />
* Many [http://slicer.kitware.com/midas3/slicerappstore?os=win&arch=amd64&revision=23777&category=&search=&layout=layout Slicer extensions] provide command line modules (unfortunately, ATM, it is not possible yet to query only CLI modules, but there are now [http://wiki.slicer.org/slicerWiki/index.php/User:UpdateBot/Issue-2843-Consolidated-Extension-List auto-generated lists] that can be [http://wiki.slicer.org/slicerWiki/index.php/User:UpdateBot/Issue-2843-Consolidated-Extension-List/4.4#cli filtered by type=cli]).<br />
* The [http://www.nitrc.org/projects/slicer NITRC.org project for 3D Slicer] lists associations to software packages that interoperate with Slicer, and many of these consist of one or more CLI modules.<br />
* [http://sourceforge.net/projects/niftyreg/ niftyreg] contains registration algorithms (from UCL, hosted on SF.net).</div>JChris.FillionRhttp://www.commontk.org/index.php?title=Main_Page&diff=2297Main Page2015-09-11T03:09:53Z<p>JChris.FillionR: </p>
<hr />
<div>__NOTOC__<br />
<br />
= '''CTK - The Common Toolkit''' =<br />
<br />
<div style="float:right; margin-left:12px;"><br />
<wikiscript type="text/javascript" src="http://www.ohloh.net/p/483293/widgets/project_basic_stats.js"></wikiscript><br />
<wikiscript type="text/javascript">document.write('<style>div.gadget { border-color: #bbb; }</style>')</wikiscript><br />
</div><br />
<br />
The goal of CTK is to support biomedical image computing. CTK code is licensed under [http://www.apache.org/licenses/LICENSE-2.0.html Apache 2.0]. This means that users of CTK are allowed to use the code for academic, commercial, or other purposes without paying license fees or being restricted in their ability to redistribute their code or keep it private. <br />
<br />
CTK works on topics that are not covered by existing toolkits that support the mutual interest and needs of the CTK community. The main scope of current CTK efforts includes the topics ''DICOM'', ''DICOM Application Hosting'', ''Widgets'', and ''Plugin Framework''.<br />
<br />
<br />
<center><br />
<div style="display:table-row;"><br />
<div style="display:table-cell; max-width:450px;"><br />
{{documentation/g-box-start|Documentation/Dicom_Overview|DICOM}}Provides high-level classes supporting query and retrieve operations from PACS and local databases. Includes Qt widgets to easily set-up a server connection and to send queries and view the results. [http://dicom.offis.de/dcmtk DCMTK] is used as the underlying toolkit.<br />
{{documentation/g-box-links|imggalurl=|apiurl=http://www.commontk.org/docs/html/group__Project__DICOM.html|issuelabel=DICOM}}. <br />
[[Documentation/Dicom_Overview | Read more...]]<br />
CTK is also the home of [http://dcmjs.org dcmjs].<br />
{{documentation/g-box-end}}<br />
</div><br />
<div style="display:table-cell; max-width:450px;"><br />
{{documentation/g-box-start|Documentation/DicomApplicationHosting|DICOM Application Hosting}}Aims at creating a C++ reference implementation of the [[media:DicomAppHostingSpecs.pdf | DICOM Part 19 Application Hosting specifications]]. It provides an infrastructure to create both hosts and hosted applications. The project is still in alpha status but may be useful for conformance testing and initial experimentation.<br />
{{documentation/g-box-links|imggalurl=|apiurl=http://www.commontk.org/docs/html/group__Project__DICOMAppHosting.html|issuelabel=DICOMApplicationHosting}}<br />
[[Documentation/DicomApplicationHosting | Read more...]]<br />
{{documentation/g-box-end}}<br />
</div><br />
</div><br />
<div style="display:table-row"><br />
<div style="display:table-cell; max-width:450px;"><br />
{{documentation/g-box-start|Documentation/Widgets|Widgets}}A collection of Qt Widgets for usage in biomedical imaging applications.<br />
{{documentation/g-box-links|imggalurl=Documentation/ImageGallery|apiurl=http://www.commontk.org/docs/html/group__Project__Widgets.html|issuelabel=Widgets}}<br />
[[Documentation/Widgets | Read more...]]<br />
{{documentation/g-box-end}}<br />
</div><br />
<div style="display:table-cell; max-width:450px;"><br />
{{documentation/g-box-start|Documentation/Plugin_Framework|Plugin Framework}}A dynamic component system for C++, modeled after the [http://www.osgi.org OSGi] specifications. It enables a development model where applications are (dynamically) composed of many different (reusable) components following a service oriented approach.<br />
{{documentation/g-box-links|imggalurl=|apiurl=http://www.commontk.org/docs/html/group__PluginFramework.html|issuelabel=PluginFramework}}<br />
[[Documentation/Plugin_Framework | Read more...]]<br />
{{documentation/g-box-end}}<br />
</div><br />
</div><br />
<div style="display:table-row"><br />
<div style="display:table-cell; max-width:450px;"><br />
{{documentation/g-box-start|Documentation/Command_Line_Interface|Command Line Interfaces}}A technology that allows the algorithms written as self-contained executables to be used in multiple end-user application environments without modifications.<br />
{{documentation/g-box-links|imggalurl=|apiurl=http://www.commontk.org/docs/html/group__CommandLineModules__Group.html|issuelabel=CmdLineModules}}<br />
[[Documentation/Command_Line_Interface | Read more...]]<br />
{{documentation/g-box-end}}<br />
</div><br />
</div><br />
</center><br />
=== Important Links ===<br />
<br />
Although the CTK efforts are concentrated on the topics described above, there are a couple of other working areas covering topics like ''[[Interoperability | interoperability]]'' and ''software testing'' which might be of interest to the biomedical imaging community. Please see the links given below for more details.<br />
<br />
{| border="0" align="center" width="98%" valign="top" cellspacing="7" cellpadding="2"<br />
|-<br />
! width="33%"|<br />
! |<br />
! width="33%"|<br />
! |<br />
! width="33%"|<br />
|- <br />
|valign="top"|<br />
<span style="color: #555555; font-size: 18px; font-weight: bold;">About CTK</span><br />
----<br />
* [[News]]<br />
* [[Events]]<br />
* [[The Team]]<br />
* [[CTK-Roadmap | CTK Roadmap Document]]<br />
* [[Interoperability]]<br />
* [[Documentation | Technical Documentation]]<br />
* [[CTKBarCamp | CTKBarCamp]]<br />
<br />
|bgcolor="#CCCCCC"|<br />
|valign="top"|<br />
<br />
<span style="color: #555555; font-size: 18px; font-weight: bold;">CTK Users</span><br />
----<br />
* [[Getting Started]]<br />
* [[Build Instructions]]<br />
* [http://www.commontk.org/docs/html/classes.html API Documentation]<br />
* [[Tools:_Application_launcher|Application Launcher]]<br />
<br />
|bgcolor="#CCCCCC"|<br />
|valign="top"|<br />
<br />
<span style="color: #555555; font-size: 18px; font-weight: bold;">CTK Developers</span><br />
----<br />
* [[Getting Started]]<br />
* [http://github.com/commontk/CTK Source Code]<br />
* [http://my.cdash.org/index.php?project=CTK Dashboard]<br />
* [[Contributing to CTK]]<br />
* [http://github.com/commontk/CTK/issues/new Report a problem]<br />
* [[Project Ideas]]<br />
<br />
|}<br />
<br />
<br />
{|align="center"<br />
|-<br />
|-<br />
| <br />
{|cellspacing="16px"<br />
|-<br />
|CTK builds on some awesome technology: <br />
| [[File:200px-GitHub.png|x26px|link=http://github.com/commontk/CTK]]<br />
| [[File:Cmake-logo.png|x26px|link=Documentation/BuildSystem_Description]]<br />
| [[File:Qt-logo.png|x26px|link=http://qt.nokia.com]]<br />
| [[File:Python-powered-w-100x40.png|x26px|link=Documentation/Python_Scripting]]<br />
| [[File:Dcmtk-logo.png|x26px|link=http://www.dcmtk.org]]<br />
| [[File:ItkLogo med.png|x26px|link=http://www.itk.org]]<br />
| [[File:VTKlogo.png|x26px|link=http://www.vtk.org]]<br />
|}<br />
|}</div>JChris.FillionRhttp://www.commontk.org/index.php?title=Getting_Started&diff=2296Getting Started2015-09-10T13:26:09Z<p>JChris.FillionR: </p>
<hr />
<div><br />
= New community member checklist =<br />
<br />
<br />
&nbsp;&nbsp;{{Done}}&nbsp;&nbsp;&nbsp;Join<br />
<br />
:: [http://public.kitware.com/mailman/listinfo/ctk-developers Sign-up] on the community mailing list<br />
:: Sign-up on [https://github.com/join Github] and [https://github.com/commontk/CTK fork] the repository<br />
<br />
<br />
&nbsp;&nbsp;{{Done}}&nbsp;&nbsp;&nbsp;Read<br />
<br />
:: Main scope of current CTK efforts on the [[Main Page]]. <br />
:: 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 />
<br />
&nbsp;&nbsp;{{Done}}&nbsp;&nbsp;&nbsp;Contribute<br />
:: To improve this wiki: [[Special:RequestAccount|request an account]].<br />
:: [[Contributing_to_CTK|Step-by-step: How to contribute a patch creating a pull request?]]<br />
<br />
<br />
=CTK mailing list=<br />
<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/mailman/listinfo/ctk-developers<br />
<br />
The mailing list archives are available here:<br />
<br />
http://public.kitware.com/pipermail/ctk-developers/</div>JChris.FillionRhttp://www.commontk.org/index.php?title=CTKBarCamp&diff=2293CTKBarCamp2015-02-17T06:20:24Z<p>JChris.FillionR: </p>
<hr />
<div>The CTKBarCamp community lives on Google plus: https://plus.google.com/communities/105094033241300780178<br />
<br />
The main idea behind this community is to share facts, idea and news related the medical imaging field and the open-source library CTK<br />
<br />
<br />
You will find below a template of message to send to confirm the interest of folks requesting to join. Make sure to change <FUTURE_MEMBER_NAME> and <YOUR_NAME> with the appropriate value.<br />
<br />
<pre><br />
Dear <FUTURE_MEMBER_NAME>,<br />
<br />
You recently requested to join the CTK BarCamp community on Google plus. Before approving your request to join the CTKBarCamp, I am reaching to you to make sure this community aligns with your interests.<br />
<br />
The main idea behind this community is to share facts, idea and news related the medical imaging field and the open-source library CTK [1]<br />
<br />
Let me know if you are still interested and will gladly approve your request,<br />
<br />
Best,<br />
<YOUR_NAME> on behalf of the CTK community<br />
<br />
[1] http://www.commontk.org<br />
</pre><br />
<br />
<br />
If few days/weeks later, you haven't heard back you could send the following message:<br />
<br />
<pre><br />
Dear <FUTURE_MEMBER_NAME>,<br />
<br />
Not having heard back from you I will cancel your request. If you think this is a mistake, do not hesitate to contact us on the CTK mailing list.<br />
<br />
See http://commontk.org/index.php/Getting_Started<br />
<br />
Best,<br />
<YOUR_NAME> on behalf of the CTK community<br />
</pre></div>JChris.FillionRhttp://www.commontk.org/index.php?title=CTKBarCamp&diff=2291CTKBarCamp2015-02-14T23:59:34Z<p>JChris.FillionR: </p>
<hr />
<div>The CTKBarCamp community lives on Google plus: https://plus.google.com/communities/105094033241300780178<br />
<br />
The main idea behind this community is to share facts, idea and news related the medical imaging field and the open-source library CTK<br />
<br />
<br />
You will find below a template of message to send to confirm the interest of folks requesting to join. Make sure to change <FUTURE_MEMBER_NAME> and <YOUR_NAME> with the appropriate value.<br />
<br />
<pre><br />
Dear <FUTURE_MEMBER_NAME>,<br />
<br />
You recently requested to join the CTK BarCamp community on Google plus. Before approving your request, I am reaching to you to make sure this community aligns with your interests.<br />
<br />
The main idea behind this community is to share facts, idea and news related the medical imaging field and the open-source library CTK [1]<br />
<br />
Let me know if you are still interested and will gladly approve your request,<br />
<br />
Best,<br />
<YOUR_NAME> on behalf of the CTK community<br />
<br />
[1] http://www.commontk.org<br />
</pre><br />
<br />
<br />
If few days/weeks later, you haven't heard back you could send the following message:<br />
<br />
<pre><br />
Dear <FUTURE_MEMBER_NAME>,<br />
<br />
Not having heard back from you I will cancel your request. If you think this is a mistake, do not hesitate to contact us on the CTK mailing list.<br />
<br />
See http://commontk.org/index.php/Getting_Started<br />
<br />
Best,<br />
<YOUR_NAME> on behalf of the CTK community<br />
</pre></div>JChris.FillionRhttp://www.commontk.org/index.php?title=Tools:_Application_launcher/Build_Instructions&diff=2289Tools: Application launcher/Build Instructions2015-02-03T22:35:15Z<p>JChris.FillionR: /* Qt 4.8.6 */</p>
<hr />
<div>= Prerequisites: Build Qt statically =<br />
<br />
== Qt 4.8.6 ==<br />
<!--<br />
=== Linux ===<br />
<br />
=== Mac ===<br />
--><br />
<br />
=== Windows ===<br />
<br />
* Download the source: http://packages.kitware.com/download/item/6174/qt-everywhere-opensource-src-4.8.6.zip<br />
* Extract archive into <code>C:\D\Support\qt-static-release-i386-4.8.6</code><br />
** Note: ''On windows, the library is built in the source tree. To avoid confusion, let's make sure the source directory is properly named''<br />
* Download ftp://ftp.qt.nokia.com/jom/jom.zip<br />
* Extract archive into <code>C:\D\Support\jom</code><br />
* Add "C:\D\Support\jom" to PATH<br />
* Start <code>Visual Studio 32 bits Command Prompt</code><br />
<pre><br />
cd C:\D\Support\qt-static-release-i386-4.8.6<br />
configure.exe -confirm-license -static -release -opensource -arch windows -no-exceptions -no-accessibility -no-sql-db2 -no-sql-ibase -no-sql-mysql -no-sql-oci -no-sql-odbc -no-sql-psql -no-sql-sqlite -no-sql-sqlite2 -no-sql-ibase -no-sql-tds -no-qt3support -no-xmlpatterns -no-multimedia -no-audio-backend -no-phonon -no-phonon-backend -no-webkit -no-script -no-scripttools -no-declarative -no-gif -no-libtiff -no-libmng -no-openssl -no-dbus -no-opengl -no-openvg -nomake demos<br />
</pre><br />
* Build<br />
<pre><br />
jom<br />
</pre><br />
<br />
== Qt 4.7.4 ==<br />
<br />
* <code>-no-stl</code> flag shouldn't be used. See http://qt-project.org/forums/viewthread/9716/#55456<br />
<br />
=== Linux ===<br />
* Download the source<br />
cd Dashboards/Support<br />
wget http://packages.kitware.com/download/item/7521/qt-everywhere-opensource-src-4.7.4.tar.gz<br />
tar -xzvf qt-everywhere-opensource-src-4.7.4.tar.gz<br />
<br />
* Configure<br />
<pre><br />
./configure -prefix /home/kitware/Dashboards/Support/qt/qt-everywhere-opensource-static-release-4.7.4 -confirm-license -static -release -opensource -no-largefile -no-exceptions -no-accessibility -no-sql-db2 -no-sql-ibase -no-sql-mysql -no-sql-oci -no-sql-odbc -no-sql-psql -no-sql-sqlite -no-sql-sqlite2 -no-sql-sqlite_symbian -no-sql-tds -no-qt3support -no-xmlpatterns -no-multimedia -no-audio-backend -no-phonon -no-phonon-backend -no-svg -no-webkit -no-javascript-jit -no-script -no-scripttools -no-declarative -no-gif -no-libtiff -no-libmng -no-openssl -no-nis -no-cups -no-dbus -no-opengl -no-openvg -nomake demos -no-gtkstyle<br />
</pre><br />
<br />
* Build and install<br />
make sub-src && make install<br />
<br />
=== Mac ===<br />
* Download the source<br />
cd Dashboards/Support<br />
curl -O http://packages.kitware.com/download/item/7521/qt-everywhere-opensource-src-4.7.4.tar.gz<br />
tar -xzvf qt-everywhere-opensource-src-4.7.4.tar.gz<br />
<br />
* Configure<br />
<pre><br />
./configure -prefix /Users/kitware/Dashboards/Support/qt-everywhere-opensource-static-build-4.7.4/ -confirm-license -arch x86_64 -static -release -opensource -no-largefile -no-exceptions -no-egl -no-accessibility -no-sql-db2 -no-sql-ibase -no-sql-mysql -no-sql-oci -no-sql-odbc -no-sql-psql -no-sql-sqlite -no-sql-sqlite2 -no-sql-sqlite_symbian -no-sql-tds -no-qt3support -no-xmlpatterns -no-multimedia -no-audio-backend -no-phonon -no-phonon-backend -no-svg -no-webkit -no-javascript-jit -no-script -no-scripttools -no-declarative -no-gif -no-libtiff -no-libmng -no-openssl -no-nis -no-cups -no-dbus -no-opengl -nomake demos -sdk /Developer/SDKs/MacOSX10.5.sdk/<br />
</pre><br />
<br />
* Build and install<br />
make sub-src -j3 && make install<br />
<br />
=== Windows ===<br />
<br />
* Download the source: http://packages.kitware.com/download/item/7520/qt-everywhere-opensource-src-4.7.4.zip<br />
* Extract archive into <code>C:\D\Support\qt-static-release-i386-4.7.4</code><br />
** Note: ''On windows, the library is built in the source tree. To avoid confusion, let's make sure the source directory is properly named''<br />
* Download ftp://ftp.qt.nokia.com/jom/jom.zip<br />
* Extract archive into <code>C:\D\Support\jom</code><br />
* Add "C:\D\Support\jom" to PATH<br />
* Start <code>Visual Studio 32 bits Command Prompt</code><br />
<pre><br />
cd C:\D\Support\qt-static-release-i386-4.7.4<br />
configure.exe -confirm-license -static -release -opensource -arch windows -no-exceptions -no-accessibility -no-sql-db2 -no-sql-ibase -no-sql-mysql -no-sql-oci -no-sql-odbc -no-sql-psql -no-sql-sqlite -no-sql-sqlite2 -no-sql-ibase -no-sql-tds -no-qt3support -no-xmlpatterns -no-multimedia -no-audio-backend -no-phonon -no-phonon-backend -no-webkit -no-script -no-scripttools -no-declarative -no-gif -no-libtiff -no-libmng -no-openssl -no-dbus -no-opengl -no-openvg -nomake demos<br />
</pre><br />
* Build<br />
<pre><br />
jom<br />
</pre><br />
<br />
== Qt 4.7.0 ==<br />
<br />
=== Linux ===<br />
* Download the source<br />
cd Dashboards/Support<br />
wget http://get.qt.nokia.com/qt/source/qt-everywhere-opensource-src-4.7.0.tar.gz<br />
tar -xzvf qt-everywhere-opensource-src-4.7.0.tar.gz<br />
<br />
* Configure<br />
<pre><br />
./configure -prefix /home/jchris/Dashboards/Support/qt-static-release-4.7.0 -confirm-license -static -release -opensource -no-largefile -no-stl -no-exceptions -no-accessibility -no-sql-db2 -no-sql-ibase -no-sql-mysql -no-sql-oci -no-sql-odbc -no-sql-psql -no-sql-sqlite -no-sql-sqlite2 -no-sql-sqlite_symbian -no-sql-tds -no-qt3support -no-xmlpatterns -no-multimedia -no-audio-backend -no-phonon -no-phonon-backend -no-svg -no-webkit -no-javascript-jit -no-script -no-scripttools -no-declarative -no-gif -no-libtiff -no-libmng -no-openssl -no-nis -no-cups -no-dbus -no-opengl -no-openvg -nomake tools -nomake demos -no-gtkstyle<br />
</pre><br />
<br />
* Build and install<br />
make && make install<br />
<br />
=== Mac ===<br />
<br />
* Download the source<br />
cd Dashboards/Support<br />
curl-O http://get.qt.nokia.com/qt/source/qt-everywhere-opensource-src-4.7.0.tar.gz<br />
tar -xzvf qt-everywhere-opensource-src-4.7.0.tar.gz<br />
<br />
* Configure<br />
<pre><br />
./configure -prefix /Users/jjomier/Workspace/qt-static-release-4.7.0 -confirm-license -cocoa -universal -static -release -opensource -no-largefile -no-stl -no-exceptions -no-egl -no-accessibility -no-sql-db2 -no-sql-ibase -no-sql-mysql -no-sql-oci -no-sql-odbc -no-sql-psql -no-sql-sqlite -no-sql-sqlite2 -no-sql-sqlite_symbian -no-sql-tds -no-qt3support -no-xmlpatterns -no-multimedia -no-audio-backend -no-phonon -no-phonon-backend -no-svg -no-webkit -no-javascript-jit -no-script -no-scripttools -no-declarative -no-gif -no-libtiff -no-libmng -no-openssl -no-nis -no-cups -no-dbus -no-opengl -no-openvg-nomake tools -nomake demos<br />
</pre><br />
<br />
* Build and install<br />
make && make install<br />
<br />
=== Windows ===<br />
* Download the source: http://get.qt.nokia.com/qt/source/qt-everywhere-opensource-src-4.7.0.zip<br />
* Extract archive into C:\Dashboards\Support\qt-static-release-4.7.0<br />
** Note: ''On windows, the library is built in the source tree. To avoid confusion, let's make sure the source directory is properly named''<br />
<pre><br />
cd C:\Dashboards\Support\qt-static-release-4.7.0<br />
configure.exe -confirm-license -static -release -opensource -arch windows -no-stl -no-exceptions -no-accessibility -no-sql-db2 -no-sql-ibase -no-sql-mysql -no-sql-oci -no-sql-odbc -no-sql-psql -no-sql-sqlite -no-sql-sqlite2 -no-sql-ibase -no-sql-tds -no-qt3support -no-xmlpatterns -no-multimedia -no-audio-backend -no-phonon -no-phonon-backend -no-webkit -no-script -no-scripttools -no-declarative -no-gif -no-libtiff -no-libmng -no-openssl -no-dbus -no-opengl -no-openvg -nomake tools -nomake demos<br />
</pre><br />
* Build<br />
<pre><br />
nmake<br />
</pre><br />
<br />
= Build the launcher =<br />
<br />
== Linux ==<br />
cd ~/Projects<br />
git clone git://github.com/commontk/AppLauncher.git<br />
mkdir AppLauncher-Release<br />
cd AppLauncher-Release<br />
cmake -DQT_QMAKE_EXECUTABLE:FILEPATH=/home/jchris/Dashboards/Support/qt-static-release-4.7.0/bin/qmake -DBUILD_TESTING:BOOL=ON -DBUILD_TYPE:STRING=Release ../AppLauncher<br />
<br />
== Mac ==<br />
cd ~/Projects<br />
git clone git://github.com/commontk/AppLauncher.git<br />
mkdir AppLauncher-Release<br />
cd AppLauncher-Release<br />
cmake -DQT_QMAKE_EXECUTABLE:FILEPATH=/home/jchris/Dashboards/Support/qt-static-release-4.7.0/bin/qmake -DBUILD_TESTING:BOOL=ON -DBUILD_TYPE:STRING=Release -DCMAKE_OSX_ARCHITECTURES:STRING="i386"../AppLauncher<br />
<br />
* Note that an extra cmake variable has been specified: '''-DCMAKE_OSX_ARCHITECTURES:STRING="i386"'''<br />
<br />
== Windows ==<br />
<br />
= Package the launcher =<br />
== Linux ==<br />
== Mac ==<br />
== Windows ==<br />
Don't build the package via Visual Studio, but from the command line<br />
"c:\Program Files\CMake 2.8\bin\cpack.exe" -G TGZ<br />
<br />
= Versionning =<br />
<br />
Since there all development occurs on <code>master</code>, each time version is updated, two commits will be required.<br />
<br />
== Release-candidate ==<br />
=== Step1 ===<br />
<br />
<code><RC></code> corresponds to the release candidate number. It is greater or equal to one.<br />
<br />
* In <code>CMakeLists.txt</code>, <br />
** set <code>CTKAppLauncher_VERSION_IS_RELEASE</code> to <code>1</code><br />
** uncomment and set <code>CTKAppLauncher_VERSION_RC</code> to <code><RC></code><br />
<br />
* ... and if this is the first release candidate, update at least one these variables:<br />
** <code>CTKAppLauncher_MAJOR_VERSION</code><br />
** <code>CTKAppLauncher_MINOR_VERSION</code><br />
** <code>CTKAppLauncher_BUILD_VERSION</code><br />
<br />
* Commit message: <code>CTKAppLauncher X.Y.Z-rc<RC></code><br />
<br />
=== Step2 ===<br />
<br />
* Generate packages based on SHA associated with step1.<br />
<br />
=== Step3 ===<br />
<br />
* In <code>CMakeLists.txt</code>, set <code>CTKAppLauncher_VERSION_IS_RELEASE</code> to <code>0</code><br />
* Commit message: <code>Begin post-X.Y.Z-rc<RC> development</code><br />
<br />
== Release ==<br />
=== Step1 ===<br />
* In <code>CMakeLists.txt</code>, <br />
** set <code>CTKAppLauncher_VERSION_IS_RELEASE</code> to <code>1</code><br />
** comment <code>CTKAppLauncher_VERSION_RC</code> and reset to <code>1</code><br />
<br />
* Commit message: <code>CTKAppLauncher X.Y.Z</code><br />
<br />
=== Step2 ===<br />
<br />
* Generate packages based on SHA associated with step1.<br />
* Tag the repository:<br />
git tag -s -m "CTKAppLauncher X.Y.Z" vX.Y.Z<br />
<br />
=== Step3 ===<br />
<br />
* In <code>CMakeLists.txt</code>, set <code>CTKAppLauncher_VERSION_IS_RELEASE</code> to <code>0</code><br />
* Commit message: <code>Begin post-X.Y.Z development</code></div>JChris.FillionRhttp://www.commontk.org/index.php?title=Tools:_Application_launcher/Build_Instructions&diff=2288Tools: Application launcher/Build Instructions2015-02-03T22:34:40Z<p>JChris.FillionR: /* Prerequisites: Build Qt statically */</p>
<hr />
<div>= Prerequisites: Build Qt statically =<br />
<br />
== Qt 4.8.6 ==<br />
<br />
=== Linux ===<br />
<br />
=== Mac ===<br />
<br />
=== Windows ===<br />
<br />
* Download the source: http://packages.kitware.com/download/item/6174/qt-everywhere-opensource-src-4.8.6.zip<br />
* Extract archive into <code>C:\D\Support\qt-static-release-i386-4.8.6</code><br />
** Note: ''On windows, the library is built in the source tree. To avoid confusion, let's make sure the source directory is properly named''<br />
* Download ftp://ftp.qt.nokia.com/jom/jom.zip<br />
* Extract archive into <code>C:\D\Support\jom</code><br />
* Add "C:\D\Support\jom" to PATH<br />
* Start <code>Visual Studio 32 bits Command Prompt</code><br />
<pre><br />
cd C:\D\Support\qt-static-release-i386-4.8.6<br />
configure.exe -confirm-license -static -release -opensource -arch windows -no-exceptions -no-accessibility -no-sql-db2 -no-sql-ibase -no-sql-mysql -no-sql-oci -no-sql-odbc -no-sql-psql -no-sql-sqlite -no-sql-sqlite2 -no-sql-ibase -no-sql-tds -no-qt3support -no-xmlpatterns -no-multimedia -no-audio-backend -no-phonon -no-phonon-backend -no-webkit -no-script -no-scripttools -no-declarative -no-gif -no-libtiff -no-libmng -no-openssl -no-dbus -no-opengl -no-openvg -nomake demos<br />
</pre><br />
* Build<br />
<pre><br />
jom<br />
</pre><br />
<br />
== Qt 4.7.4 ==<br />
<br />
* <code>-no-stl</code> flag shouldn't be used. See http://qt-project.org/forums/viewthread/9716/#55456<br />
<br />
=== Linux ===<br />
* Download the source<br />
cd Dashboards/Support<br />
wget http://packages.kitware.com/download/item/7521/qt-everywhere-opensource-src-4.7.4.tar.gz<br />
tar -xzvf qt-everywhere-opensource-src-4.7.4.tar.gz<br />
<br />
* Configure<br />
<pre><br />
./configure -prefix /home/kitware/Dashboards/Support/qt/qt-everywhere-opensource-static-release-4.7.4 -confirm-license -static -release -opensource -no-largefile -no-exceptions -no-accessibility -no-sql-db2 -no-sql-ibase -no-sql-mysql -no-sql-oci -no-sql-odbc -no-sql-psql -no-sql-sqlite -no-sql-sqlite2 -no-sql-sqlite_symbian -no-sql-tds -no-qt3support -no-xmlpatterns -no-multimedia -no-audio-backend -no-phonon -no-phonon-backend -no-svg -no-webkit -no-javascript-jit -no-script -no-scripttools -no-declarative -no-gif -no-libtiff -no-libmng -no-openssl -no-nis -no-cups -no-dbus -no-opengl -no-openvg -nomake demos -no-gtkstyle<br />
</pre><br />
<br />
* Build and install<br />
make sub-src && make install<br />
<br />
=== Mac ===<br />
* Download the source<br />
cd Dashboards/Support<br />
curl -O http://packages.kitware.com/download/item/7521/qt-everywhere-opensource-src-4.7.4.tar.gz<br />
tar -xzvf qt-everywhere-opensource-src-4.7.4.tar.gz<br />
<br />
* Configure<br />
<pre><br />
./configure -prefix /Users/kitware/Dashboards/Support/qt-everywhere-opensource-static-build-4.7.4/ -confirm-license -arch x86_64 -static -release -opensource -no-largefile -no-exceptions -no-egl -no-accessibility -no-sql-db2 -no-sql-ibase -no-sql-mysql -no-sql-oci -no-sql-odbc -no-sql-psql -no-sql-sqlite -no-sql-sqlite2 -no-sql-sqlite_symbian -no-sql-tds -no-qt3support -no-xmlpatterns -no-multimedia -no-audio-backend -no-phonon -no-phonon-backend -no-svg -no-webkit -no-javascript-jit -no-script -no-scripttools -no-declarative -no-gif -no-libtiff -no-libmng -no-openssl -no-nis -no-cups -no-dbus -no-opengl -nomake demos -sdk /Developer/SDKs/MacOSX10.5.sdk/<br />
</pre><br />
<br />
* Build and install<br />
make sub-src -j3 && make install<br />
<br />
=== Windows ===<br />
<br />
* Download the source: http://packages.kitware.com/download/item/7520/qt-everywhere-opensource-src-4.7.4.zip<br />
* Extract archive into <code>C:\D\Support\qt-static-release-i386-4.7.4</code><br />
** Note: ''On windows, the library is built in the source tree. To avoid confusion, let's make sure the source directory is properly named''<br />
* Download ftp://ftp.qt.nokia.com/jom/jom.zip<br />
* Extract archive into <code>C:\D\Support\jom</code><br />
* Add "C:\D\Support\jom" to PATH<br />
* Start <code>Visual Studio 32 bits Command Prompt</code><br />
<pre><br />
cd C:\D\Support\qt-static-release-i386-4.7.4<br />
configure.exe -confirm-license -static -release -opensource -arch windows -no-exceptions -no-accessibility -no-sql-db2 -no-sql-ibase -no-sql-mysql -no-sql-oci -no-sql-odbc -no-sql-psql -no-sql-sqlite -no-sql-sqlite2 -no-sql-ibase -no-sql-tds -no-qt3support -no-xmlpatterns -no-multimedia -no-audio-backend -no-phonon -no-phonon-backend -no-webkit -no-script -no-scripttools -no-declarative -no-gif -no-libtiff -no-libmng -no-openssl -no-dbus -no-opengl -no-openvg -nomake demos<br />
</pre><br />
* Build<br />
<pre><br />
jom<br />
</pre><br />
<br />
== Qt 4.7.0 ==<br />
<br />
=== Linux ===<br />
* Download the source<br />
cd Dashboards/Support<br />
wget http://get.qt.nokia.com/qt/source/qt-everywhere-opensource-src-4.7.0.tar.gz<br />
tar -xzvf qt-everywhere-opensource-src-4.7.0.tar.gz<br />
<br />
* Configure<br />
<pre><br />
./configure -prefix /home/jchris/Dashboards/Support/qt-static-release-4.7.0 -confirm-license -static -release -opensource -no-largefile -no-stl -no-exceptions -no-accessibility -no-sql-db2 -no-sql-ibase -no-sql-mysql -no-sql-oci -no-sql-odbc -no-sql-psql -no-sql-sqlite -no-sql-sqlite2 -no-sql-sqlite_symbian -no-sql-tds -no-qt3support -no-xmlpatterns -no-multimedia -no-audio-backend -no-phonon -no-phonon-backend -no-svg -no-webkit -no-javascript-jit -no-script -no-scripttools -no-declarative -no-gif -no-libtiff -no-libmng -no-openssl -no-nis -no-cups -no-dbus -no-opengl -no-openvg -nomake tools -nomake demos -no-gtkstyle<br />
</pre><br />
<br />
* Build and install<br />
make && make install<br />
<br />
=== Mac ===<br />
<br />
* Download the source<br />
cd Dashboards/Support<br />
curl-O http://get.qt.nokia.com/qt/source/qt-everywhere-opensource-src-4.7.0.tar.gz<br />
tar -xzvf qt-everywhere-opensource-src-4.7.0.tar.gz<br />
<br />
* Configure<br />
<pre><br />
./configure -prefix /Users/jjomier/Workspace/qt-static-release-4.7.0 -confirm-license -cocoa -universal -static -release -opensource -no-largefile -no-stl -no-exceptions -no-egl -no-accessibility -no-sql-db2 -no-sql-ibase -no-sql-mysql -no-sql-oci -no-sql-odbc -no-sql-psql -no-sql-sqlite -no-sql-sqlite2 -no-sql-sqlite_symbian -no-sql-tds -no-qt3support -no-xmlpatterns -no-multimedia -no-audio-backend -no-phonon -no-phonon-backend -no-svg -no-webkit -no-javascript-jit -no-script -no-scripttools -no-declarative -no-gif -no-libtiff -no-libmng -no-openssl -no-nis -no-cups -no-dbus -no-opengl -no-openvg-nomake tools -nomake demos<br />
</pre><br />
<br />
* Build and install<br />
make && make install<br />
<br />
=== Windows ===<br />
* Download the source: http://get.qt.nokia.com/qt/source/qt-everywhere-opensource-src-4.7.0.zip<br />
* Extract archive into C:\Dashboards\Support\qt-static-release-4.7.0<br />
** Note: ''On windows, the library is built in the source tree. To avoid confusion, let's make sure the source directory is properly named''<br />
<pre><br />
cd C:\Dashboards\Support\qt-static-release-4.7.0<br />
configure.exe -confirm-license -static -release -opensource -arch windows -no-stl -no-exceptions -no-accessibility -no-sql-db2 -no-sql-ibase -no-sql-mysql -no-sql-oci -no-sql-odbc -no-sql-psql -no-sql-sqlite -no-sql-sqlite2 -no-sql-ibase -no-sql-tds -no-qt3support -no-xmlpatterns -no-multimedia -no-audio-backend -no-phonon -no-phonon-backend -no-webkit -no-script -no-scripttools -no-declarative -no-gif -no-libtiff -no-libmng -no-openssl -no-dbus -no-opengl -no-openvg -nomake tools -nomake demos<br />
</pre><br />
* Build<br />
<pre><br />
nmake<br />
</pre><br />
<br />
= Build the launcher =<br />
<br />
== Linux ==<br />
cd ~/Projects<br />
git clone git://github.com/commontk/AppLauncher.git<br />
mkdir AppLauncher-Release<br />
cd AppLauncher-Release<br />
cmake -DQT_QMAKE_EXECUTABLE:FILEPATH=/home/jchris/Dashboards/Support/qt-static-release-4.7.0/bin/qmake -DBUILD_TESTING:BOOL=ON -DBUILD_TYPE:STRING=Release ../AppLauncher<br />
<br />
== Mac ==<br />
cd ~/Projects<br />
git clone git://github.com/commontk/AppLauncher.git<br />
mkdir AppLauncher-Release<br />
cd AppLauncher-Release<br />
cmake -DQT_QMAKE_EXECUTABLE:FILEPATH=/home/jchris/Dashboards/Support/qt-static-release-4.7.0/bin/qmake -DBUILD_TESTING:BOOL=ON -DBUILD_TYPE:STRING=Release -DCMAKE_OSX_ARCHITECTURES:STRING="i386"../AppLauncher<br />
<br />
* Note that an extra cmake variable has been specified: '''-DCMAKE_OSX_ARCHITECTURES:STRING="i386"'''<br />
<br />
== Windows ==<br />
<br />
= Package the launcher =<br />
== Linux ==<br />
== Mac ==<br />
== Windows ==<br />
Don't build the package via Visual Studio, but from the command line<br />
"c:\Program Files\CMake 2.8\bin\cpack.exe" -G TGZ<br />
<br />
= Versionning =<br />
<br />
Since there all development occurs on <code>master</code>, each time version is updated, two commits will be required.<br />
<br />
== Release-candidate ==<br />
=== Step1 ===<br />
<br />
<code><RC></code> corresponds to the release candidate number. It is greater or equal to one.<br />
<br />
* In <code>CMakeLists.txt</code>, <br />
** set <code>CTKAppLauncher_VERSION_IS_RELEASE</code> to <code>1</code><br />
** uncomment and set <code>CTKAppLauncher_VERSION_RC</code> to <code><RC></code><br />
<br />
* ... and if this is the first release candidate, update at least one these variables:<br />
** <code>CTKAppLauncher_MAJOR_VERSION</code><br />
** <code>CTKAppLauncher_MINOR_VERSION</code><br />
** <code>CTKAppLauncher_BUILD_VERSION</code><br />
<br />
* Commit message: <code>CTKAppLauncher X.Y.Z-rc<RC></code><br />
<br />
=== Step2 ===<br />
<br />
* Generate packages based on SHA associated with step1.<br />
<br />
=== Step3 ===<br />
<br />
* In <code>CMakeLists.txt</code>, set <code>CTKAppLauncher_VERSION_IS_RELEASE</code> to <code>0</code><br />
* Commit message: <code>Begin post-X.Y.Z-rc<RC> development</code><br />
<br />
== Release ==<br />
=== Step1 ===<br />
* In <code>CMakeLists.txt</code>, <br />
** set <code>CTKAppLauncher_VERSION_IS_RELEASE</code> to <code>1</code><br />
** comment <code>CTKAppLauncher_VERSION_RC</code> and reset to <code>1</code><br />
<br />
* Commit message: <code>CTKAppLauncher X.Y.Z</code><br />
<br />
=== Step2 ===<br />
<br />
* Generate packages based on SHA associated with step1.<br />
* Tag the repository:<br />
git tag -s -m "CTKAppLauncher X.Y.Z" vX.Y.Z<br />
<br />
=== Step3 ===<br />
<br />
* In <code>CMakeLists.txt</code>, set <code>CTKAppLauncher_VERSION_IS_RELEASE</code> to <code>0</code><br />
* Commit message: <code>Begin post-X.Y.Z development</code></div>JChris.FillionRhttp://www.commontk.org/index.php?title=CTK-Hackfest-Nov-2014/LabTour&diff=2284CTK-Hackfest-Nov-2014/LabTour2014-11-17T15:59:37Z<p>JChris.FillionR: </p>
<hr />
<div>This page showcase the projects seen during the DKFZ lab tour.<br />
<br />
<br />
= Project: Description of project =<br />
<br />
[[File:CTK-Hackfest-DKFZ-Nov2014_LabTour2.jpg|400px]]<br />
<br />
= Project: Description of project =<br />
<br />
[[File:CTK-Hackfest-DKFZ-Nov2014_LabTour1.jpg|400px]]</div>JChris.FillionRhttp://www.commontk.org/index.php?title=File:CTK-Hackfest-DKFZ-Nov2014_LabTour2.jpg&diff=2283File:CTK-Hackfest-DKFZ-Nov2014 LabTour2.jpg2014-11-17T15:56:57Z<p>JChris.FillionR: </p>
<hr />
<div></div>JChris.FillionRhttp://www.commontk.org/index.php?title=File:CTK-Hackfest-DKFZ-Nov2014_LabTour1.jpg&diff=2282File:CTK-Hackfest-DKFZ-Nov2014 LabTour1.jpg2014-11-17T15:56:49Z<p>JChris.FillionR: </p>
<hr />
<div></div>JChris.FillionRhttp://www.commontk.org/index.php?title=CTK-Hackfest-Nov-2014&diff=2281CTK-Hackfest-Nov-20142014-11-17T15:53:31Z<p>JChris.FillionR: /* Tuesday */</p>
<hr />
<div>== Event pictures ==<br />
<br />
[[File:Ctk.2014,11.png|600px]]<br />
<br />
=== Progress ===<br />
<br />
<br />
== Introduction ==<br />
<br />
'''Date:''' November 3-7, 2014<br />
<br />
'''Location:'''<br />
<br />
German Cancer Research Center, Heidelberg, Germany<br />
<br />
More details to follow.<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:''' Marco Nolden, Sascha Zelzer, Ivo Wolf<br />
<br />
'''Organizing Committee:''' Steve Pieper, Ivo Wolf, Stephen Aylward<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 />
<br />
* So far we have received confirmation for the following people (in no particular order). <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 />
|Marco Nolden<br />
|German Cancer Research Center, Heidelberg, Germany<br />
|-<br />
|Sascha Zelzer<br />
|German Cancer Research Center, Heidelberg, Germany<br />
|-<br />
|Andreas Fetzer<br />
|German Cancer Research Center, Heidelberg, Germany<br />
|-<br />
|Stefan Kislinkiy<br />
|German Cancer Research Center, Heidelberg, Germany<br />
|-<br />
|Ralf Floca<br />
|German Cancer Research Center, Heidelberg, Germany<br />
|-<br />
|Ivo Wolf<br />
|Mannheim University of Applied Sciences, Germany<br />
|-<br />
|Steve Pieper<br />
|Isomics, Inc., USA<br />
|-<br />
|Michael Onken<br />
|Open Connections GmbH / OFFIS<br />
|-<br />
|Jean-Christophe Fillion-Robin<br />
|Kitware, Inc., USA<br />
|-<br />
|Miklos Espak<br />
|University College London, UK<br />
|-<br />
|Nicolas Toussaint<br />
|University College London, UK<br />
|-<br />
|Gergely Zombori<br />
|University College London, UK<br />
|-<br />
|Christian Askeland<br />
|SINTEF Medical Technology, Trondheim, Norway<br />
|-<br />
|Stefan Baumann<br />
|Basel, Switzerland<br />
|-<br />
|Hans Meine<br />
|Fraunhofer MEVIS, Germany<br />
|-<br />
|}<br />
<br />
{|class="wikitable alternance" style="text-align:left; border:1px solid black;"<br />
|+ '''''Google Hangout Participants'''''<br />
|-<br />
! scope=col style="background:#cde6f8;"| Name<br />
! scope=col style="background:#cde6f8;"| Organization<br />
! scope=col style="background:#cde6f8;"| Availablity (Central European Time)<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 />
<br />
'''https://plus.google.com/hangouts/_/g3vi3lz7sycalj74ys2xpnpr3ya'''<br />
<br />
== Topics and Projects ==<br />
<br />
Consider reading [http://www.commontk.org/index.php/Contributing_to_CTK#Integrate_your_new_feature Contributing_to_CTK#Integrate_your_new_feature]<br />
<br />
Reminder: when integrating branches, remember to use --log --no-ff when merging.<br />
<br />
We plan to have concrete hacking topics as well as dedicated discussions in smaller groups. People are encouraged to show their interest in a particular subject by adding their name to the list below.<br />
<br />
=== Hacking Topics ===<br />
<br />
==== Infrastructure ====<br />
<br />
* Qt5 migration (Christian)<br />
** compile and run on Mac<br />
* Packaging / install support (Marco, Jc)<br />
* Fix issue related to [https://github.com/commontk/Artichoke Artichoke] and improve documentation (Jc)<br />
* Dashboard<br />
** General Situation: Continuous/Nightly clients, coverage<br />
** Configurations: Qt4, Qt5, etc.<br />
** Travis CI (Sascha, Steve)<br />
* Incomplete doxygen on the website (Christian)<br />
* Component / target oriented build system (Jc, Sascha)<br />
* Review commontk/* repositories (delete/update/etc.)<br />
* Check support for MacOS 10.10<br />
<br />
==== DICOM ====<br />
<br />
* dcmtk Features<br />
** Support building with emscripten, pinnacle<br />
** Multi-frame support (Steve, Christian, Michael)<br />
** SEG support<br />
*** Investigate compatibility of DCMTK seg functionality with BrainLab segmentations; [http://slicer.kitware.com/midas3/item/162562 sample dataset] (QIICR community, Steve has access) - RLE compressed<br />
*** Investigate DCMTK RLE compression tools applied to segmentations; trying to apply it to sample objects generates "F: No conversion to transfer syntax RLE Lossless possible!" error; [http://slicer.kitware.com/midas3/item/162428 SPL segmentation dataset example], [http://slicer.kitware.com/midas3/item/161740 PET segmentation example]<br />
<br />
* Making CLIs read and write valid DICOM (Steve, Michael)<br />
<br />
* Anonymization (Andreas Fetzer, Marco, Steve, Stefan, Ralf)<br />
** Client-side options: gdcmanon, dcmtk (?), dcmjs, DicomCleaner, CTP...<br />
** Testing can use [[File:PieperMRI.tar.gz | this freely sharable identified MR scan]]<br />
** Goal is to de-identify with various tools and compare results with [ftp://medical.nema.org/medical/dicom/Final/sup142_ft.pdf supplement 142 of the DICOM standard].<br />
** There is a separate page, which provides an overview of existing de-identification tools: [[DICOM de-identification tool overview]]<br />
<br />
* ctkDICOM improvments (Ralf); discussed ideas:<br />
** Introduce "compact and detailed view mode" to ctkDICOMTableView and ctkDICOMTableManager. Basic idea is that you can give the widgets a list of "high priority" tags -> in compact mode all columns of non priority tags will be filter. You can define the active mode via property / slot (to e.g. easily connect it with a control widget signal).<br />
** Refactoring of one unified "search definition widget" and separated generators for "dicom q/r" and sql statement that use the search definition. This would give the possibility for instance to use the same search widget in different places (e.g. in the ctkDICOMQueryRetrieveWidget or ctkDICOMTableManager)<br />
<br />
==== XNAT ====<br />
<br />
* Improve and extend the XNAT API (Sascha Zelzer, Miklos Espak, Ralf)<br />
** Python Wrapping (Sascha, Nicolas)<br />
** Data editing (post-poned)<br />
** Uploading (Andreas, Ivo)<br />
** Caching (Miklos, (Ralf))<br />
** C++ VS XNAT data model (Nicolas, Andreas)<br />
** Filtered data query based on data type and/or properties (Miklos)<br />
** Launch pipelines (remote) and follow progress (Miklos)<br />
<br />
==== CLI ====<br />
<br />
* Make it customisable what options to generate to the final command (Gergely Zombori)<br />
* Finalize integration of CTK CLI frontend into Slicer and investigate how to integrate the backend (Jc)<br />
* Improved entry point / documentation for CLI users & developers<br />
<br />
==== Documentation & Presentation ====<br />
<br />
* Nice landing page?<br />
* Improve wiki? Something different?<br />
<br />
== Agenda ==<br />
<br />
==== Monday ====<br />
<br />
Start: The meeting room will be open starting at 9am. Official start and kick-off will be early afternoon after everybody arrived.<br />
<br />
Opening discussion<br />
* Review topics and projects<br />
* Plans for the week<br />
* Review [https://github.com/commontk/CTK/issues?state=open open issues on github].<br />
<br />
Afternoon:<br />
* Welcome by Prof. Hans-Peter Meinzer<br />
* Presentation about [[Media:The_Common_Toolkit_Jubilee.pptx|The Common Toolkit Jubilee]]<br />
<br />
Evening:<br />
<br />
* Dinner 20:15 @ [http://www.heidelberger-kulturbrauerei.de/en/ Kulturbrauerei], [https://www.google.de/maps/dir/Hotel+Holl%C3%A4nder+Hof,+Neckarstaden+66,+69117+Heidelberg/Kulturbrauerei+Heidelberg,+Leyergasse+6,+69117+Heidelberg/@49.413196,8.7102803,18z/data=!3m1!4b1!4m14!4m13!1m5!1m1!1s0x4797c10638e496a5:0xe28b6a91325a2c23!2m2!1d8.709242!2d49.413192!1m5!1m1!1s0x4797c1a81df9996d:0xb0cec22d395e79e1!2m2!1d8.713414!2d49.41318!3e2 directions], Pickup ~20:00 at Holländer Hof<br />
<br />
==== Tuesday ====<br />
<br />
Morning:<br />
<br />
* Steve QIICR<br />
* Michael Onken presentation about upcoming dcmtk modules<br />
* XNAT discussion<br />
<br />
<br />
Afternoon:<br />
<br />
* 13:30 [[CTK-Hackfest-Nov-2014/LabTour|Lab Tour]]<br />
<br />
Evening:<br />
<br />
* 16:00 Famous Old City tour guided by Hans-Peter Meinzer<br />
<br />
* 20:00 Beer Topics<br />
** Defacing<br />
<br />
==== Wednesday ====<br />
<br />
Morning<br />
<br />
During the day: hack, hack, hack...<br />
<br />
==== Thursday ====<br />
<br />
Morning:<br />
<br />
* IGT & OpenIGTLink discussion<br />
<br />
During the day: hack, hack, hack…<br />
<br />
Short wrap-up:<br />
<br />
Christian:<br />
* Fixed Qt5 DICOM & Plugin Framework issues<br />
* Doxygen fixes<br />
* Started integrating CTK DICOM Widget improvements<br />
<br />
JC:<br />
* dcmjs: Update to use latest version of emscripten<br />
* dcmjs: create dcmjs.org github project and add deploy mechanism<br />
* dcmjs: Improve user experience of http://dcmjs.org website<br />
* Re-started Slicer CTK CLI integration<br />
* Discussed extension of CLI schema to support optional parameter.<br />
* Improved CTK PythonQt wrapping to support import from regular python shell. See [https://github.com/commontk/CTK/pull/520 commontk/CTK#520]<br />
<br />
Hans:<br />
* Many discussion topics (Chronicle, CLI)<br />
* CLI documentation overview (CTK Wiki)<br />
* Investigated elasticsearch database for CLI modules<br />
* OpenInventor <-> VTK integration<br />
<br />
Stefan:<br />
* Added [[Media:Testmr.txt | mapping/de-identification]] functionality to dcmjs (minimal feature set like CTP)<br />
<br />
Steve:<br />
* dcmjs organize tool<br />
** exploring boundaries (extracting data etc.)<br />
** anonymization<br />
* DICOM segmentation object discussions<br />
** How to support CLIs?<br />
<br />
Michael:<br />
* Compiled CTK with new dcmtk snapshot (worked)<br />
* Worked on dcmseg module<br />
<br />
Marco:<br />
* Discussions about QIICR<br />
* Closed a couple of GitHub issues<br />
<br />
Ivo:<br />
* Discussions about QIICR, XNAT<br />
* Compiling MRML outside of Slicer<br />
<br />
Andreas:<br />
* XNAT upload (qRestAPI changes)<br />
* DICOM discussions (widget usability, anonymization tools)<br />
<br />
Nicolas:<br />
* Wrapped XNAT library into Python (for usage in NiPype)<br />
* Usage outside of a QApplication needs investigation<br />
<br />
Gergely:<br />
* Added possibility for optional CLI parameter<br />
<br />
Miklos:<br />
* Started XNAT query API<br />
* Hit API limits -> focus on caching objects<br />
* Needs more discussion<br />
<br />
Sascha:<br />
* Qt5 fixes<br />
* Travis integration<br />
<br />
<br />
Evening:<br />
<br />
==== Friday ====<br />
<br />
During the day: hack, hack, hack...<br />
<br />
11:00: Closing discussion<br />
* CLI Elasticsearch (Hans)<br />
** Search for keywords and get matching CLIs<br />
** Use it to browse CLI descriptions and clean-up contents<br />
** [https://github.com/commontk/cli-indexer commontk/cli-indexer] repository. Creates JSON descriptions from CLI XML.<br />
** Every institution could publish the JSON description of their CLIs and publish it<br />
** There is a pypi package for cli-indexer<br />
<br />
Afternoon: hack or travel<br />
<br />
== Travel & Hotel ==<br />
<br />
===Local contacts===<br />
<br />
* Marco Nolden (m.nolden@dkfz-heidelberg.de)<br />
* Sascha Zelzer (s.zelzer@dkfz-heidelberg.de) [[File:Sascha_phone.png|130px]]<br />
* Andreas Fetzer (a.fetzer@dkfz-heidelberg.de)<br />
<br />
===Transportation===<br />
<br />
It takes about an hour from Frankfurt Airport (FRA) to Heidelberg Main Station with one change in Mannheim. If you stay in the Old Town you can also look for connections going to "Heidelberg Altstadt". You can look it up at [http://www.bahn.de/p_en/view/index.shtml Deutsche Bahn], but they run quite frequently.<br />
<br />
'''Local:''' from the Old Town, "Universitätsplatz", runs [http://www.vrn.de/mam/vrn/einfach-ankommen/dokumente/stadtlinienplaene/heidelberg_schematisch.pdf bus number 32] ([http://www.vrn.de/mam/vrn/einfach-ankommen/dokumente/stadtlinienplaene/heidelberg.pdf geographic map]) via Main Station to DKFZ, exit at "Chirurgische Klinik", bus direction is "Neuenheim". After you exit, DKFZ is on your right.<br />
<br />
[[File:Heidelberg_map.png|700px]]<br />
<br />
During the day the bus runs every 10 minutes in both directions, timetables are also available at [http://fahrplanauskunft.vrn.de/vrn/XSLT_TRIP_REQUEST2?language=en VRN].<br />
<br />
==== To Frankfurt Airport ====<br />
<br />
The German Railways is affected by a strike from Thursday to Monday morning. Trains will operate on a limited basis - check the website of [http://www.bahn.de Deutsch Bahn].<br />
<br />
You may also use a [http://www.transcontinental-group.com/en/airport-shuttle-buchen Shuttle Bus] departing from the Crown Plaza in Heidelberg. It is recommended to book online as early as possible.<br />
<br />
===Lodging===<br />
<br />
We recommend to stay in the historic Old Town. There is an easy direct bus ride every 10 minutes from there to DKFZ.<br />
<br />
We have reserved a number of rooms at the [http://www.hollaender-hof.de/en/ Holländer Hof] ([http://www.openstreetmap.org/?mlat=49.41317&mlon=8.70925#map=19/49.41317/8.70925 map]) hotel! Please use "CTK 2014" when you do a reservation there. Of course there are plenty of other hotels in that area, e.g. [http://www.hotel-goldener-hecht.de/ Goldener Hecht] or the oldest house in town, [http://www.ritter-heidelberg.de/ Hotel zum Ritter].<br />
<br />
===Meeting Room===<br />
<br />
The full address for the DKFZ is<br />
<br />
Deutsches Krebsforschungszentrum<br />
Im Neuenheimer Feld 280<br />
69120 Heidelberg<br />
<br />
We will meet in the main building on the second floor (European counting!). The cryptic room number is D0.02.032. Follow the description below to find it.<br />
<br />
When leaving bus 32, you will see something similar to<br />
<br />
[[File:DKFZ_Bus.jpg|600px]]<br />
<br />
The large building on the right is the DKFZ main bulding<br />
<br />
[[File:DKFZ_Hauptgebaeude_neu_600x402.jpg|600px]]<br />
<br />
Walk through the main entrance and follow the map<br />
<br />
[[File:DKFZ_Hackfest_map.jpg|600px]]<br />
<br />
Ask the nice guys at the reception or call us in case of any problems.<br />
<br />
===Weather===<br />
<br />
November is a rather wet month. [http://www.weather-and-climate.com/average-monthly-Rainfall-Temperature-Sunshine,heidelberg,Germany Average weather in Heidelberg]<br />
<br />
===Food===<br />
<br />
Plan on having breakfast at your hotel before the meeting. Please email the organizers if you have any allergies or dietary restrictions. <br />
<br />
Being a university and hospital campus, there are several lunch possibilities, including cafeterias, a students mensa, and two restaurants.<br />
<br />
<br />
===Optional Activities in the Area===</div>JChris.FillionRhttp://www.commontk.org/index.php?title=CTK-Hackfest-Nov-2014/LabTour&diff=2280CTK-Hackfest-Nov-2014/LabTour2014-11-17T15:53:00Z<p>JChris.FillionR: Created page with " This page showcase the projects seen during the DKFZ lab tour."</p>
<hr />
<div><br />
This page showcase the projects seen during the DKFZ lab tour.</div>JChris.FillionRhttp://www.commontk.org/index.php?title=Commontk:Current_events&diff=2279Commontk:Current events2014-11-17T15:50:21Z<p>JChris.FillionR: </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 />
= Past events =<br />
== 2014 ==<br />
* [[CTK-Hackfest-Nov-2014 | 10th Hackfest; Heidelberg, Germany]] ''(2014, November 3th-7th)''<br />
* [[CTK-Hackfest-May-2014 | 9th Hackfest; St. Louis, U.S.]] ''(2014, May 5th-9th)''<br />
<br />
== 2013==<br />
* [[CTK-Hackfest-Nov-2013 | 8th Hackfest; London, U.K.]] ''(2013, Nov 4th-8th)''<br />
* [[CTK-Hackfest-May-2013 | 7th Hackfest; Kingston, Canada]] ''(2013, May)''<br />
<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>JChris.FillionRhttp://www.commontk.org/index.php?title=CTK-Hackfest-Nov-2014&diff=2274CTK-Hackfest-Nov-20142014-11-08T01:41:31Z<p>JChris.FillionR: /* Friday */</p>
<hr />
<div>== Event pictures ==<br />
<br />
[[File:Ctk.2014,11.png|600px]]<br />
<br />
=== Progress ===<br />
<br />
<br />
== Introduction ==<br />
<br />
'''Date:''' November 3-7, 2014<br />
<br />
'''Location:'''<br />
<br />
German Cancer Research Center, Heidelberg, Germany<br />
<br />
More details to follow.<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:''' Marco Nolden, Sascha Zelzer, Ivo Wolf<br />
<br />
'''Organizing Committee:''' Steve Pieper, Ivo Wolf, Stephen Aylward<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 />
<br />
* So far we have received confirmation for the following people (in no particular order). <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 />
|Marco Nolden<br />
|German Cancer Research Center, Heidelberg, Germany<br />
|-<br />
|Sascha Zelzer<br />
|German Cancer Research Center, Heidelberg, Germany<br />
|-<br />
|Andreas Fetzer<br />
|German Cancer Research Center, Heidelberg, Germany<br />
|-<br />
|Stefan Kislinkiy<br />
|German Cancer Research Center, Heidelberg, Germany<br />
|-<br />
|Ralf Floca<br />
|German Cancer Research Center, Heidelberg, Germany<br />
|-<br />
|Ivo Wolf<br />
|Mannheim University of Applied Sciences, Germany<br />
|-<br />
|Steve Pieper<br />
|Isomics, Inc., USA<br />
|-<br />
|Michael Onken<br />
|Open Connections GmbH / OFFIS<br />
|-<br />
|Jean-Christophe Fillion-Robin<br />
|Kitware, Inc., USA<br />
|-<br />
|Miklos Espak<br />
|University College London, UK<br />
|-<br />
|Nicolas Toussaint<br />
|University College London, UK<br />
|-<br />
|Gergely Zombori<br />
|University College London, UK<br />
|-<br />
|Christian Askeland<br />
|SINTEF Medical Technology, Trondheim, Norway<br />
|-<br />
|Stefan Baumann<br />
|Basel, Switzerland<br />
|-<br />
|Hans Meine<br />
|Fraunhofer MEVIS, Germany<br />
|-<br />
|}<br />
<br />
{|class="wikitable alternance" style="text-align:left; border:1px solid black;"<br />
|+ '''''Google Hangout Participants'''''<br />
|-<br />
! scope=col style="background:#cde6f8;"| Name<br />
! scope=col style="background:#cde6f8;"| Organization<br />
! scope=col style="background:#cde6f8;"| Availablity (Central European Time)<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 />
<br />
'''https://plus.google.com/hangouts/_/g3vi3lz7sycalj74ys2xpnpr3ya'''<br />
<br />
== Topics and Projects ==<br />
<br />
Consider reading [http://www.commontk.org/index.php/Contributing_to_CTK#Integrate_your_new_feature Contributing_to_CTK#Integrate_your_new_feature]<br />
<br />
Reminder: when integrating branches, remember to use --log --no-ff when merging.<br />
<br />
We plan to have concrete hacking topics as well as dedicated discussions in smaller groups. People are encouraged to show their interest in a particular subject by adding their name to the list below.<br />
<br />
=== Hacking Topics ===<br />
<br />
==== Infrastructure ====<br />
<br />
* Qt5 migration (Christian)<br />
** compile and run on Mac<br />
* Packaging / install support (Marco, Jc)<br />
* Fix issue related to [https://github.com/commontk/Artichoke Artichoke] and improve documentation (Jc)<br />
* Dashboard<br />
** General Situation: Continuous/Nightly clients, coverage<br />
** Configurations: Qt4, Qt5, etc.<br />
** Travis CI (Sascha, Steve)<br />
* Incomplete doxygen on the website (Christian)<br />
* Component / target oriented build system (Jc, Sascha)<br />
* Review commontk/* repositories (delete/update/etc.)<br />
* Check support for MacOS 10.10<br />
<br />
==== DICOM ====<br />
<br />
* dcmtk Features<br />
** Support building with emscripten, pinnacle<br />
** Multi-frame support (Steve, Christian, Michael)<br />
** SEG support<br />
*** Investigate compatibility of DCMTK seg functionality with BrainLab segmentations; [http://slicer.kitware.com/midas3/item/162562 sample dataset] (QIICR community, Steve has access) - RLE compressed<br />
*** Investigate DCMTK RLE compression tools applied to segmentations; trying to apply it to sample objects generates "F: No conversion to transfer syntax RLE Lossless possible!" error; [http://slicer.kitware.com/midas3/item/162428 SPL segmentation dataset example], [http://slicer.kitware.com/midas3/item/161740 PET segmentation example]<br />
<br />
* Making CLIs read and write valid DICOM (Steve, Michael)<br />
<br />
* Anonymization (Andreas Fetzer, Marco, Steve, Stefan, Ralf)<br />
** Client-side options: gdcmanon, dcmtk (?), dcmjs, DicomCleaner, CTP...<br />
** Testing can use [[File:PieperMRI.tar.gz | this freely sharable identified MR scan]]<br />
** Goal is to de-identify with various tools and compare results with [ftp://medical.nema.org/medical/dicom/Final/sup142_ft.pdf supplement 142 of the DICOM standard].<br />
** There is a separate page, which provides an overview of existing de-identification tools: [[DICOM de-identification tool overview]]<br />
<br />
* ctkDICOM improvments (Ralf); discussed ideas:<br />
** Introduce "compact and detailed view mode" to ctkDICOMTableView and ctkDICOMTableManager. Basic idea is that you can give the widgets a list of "high priority" tags -> in compact mode all columns of non priority tags will be filter. You can define the active mode via property / slot (to e.g. easily connect it with a control widget signal).<br />
** Refactoring of one unified "search definition widget" and separated generators for "dicom q/r" and sql statement that use the search definition. This would give the possibility for instance to use the same search widget in different places (e.g. in the ctkDICOMQueryRetrieveWidget or ctkDICOMTableManager)<br />
<br />
==== XNAT ====<br />
<br />
* Improve and extend the XNAT API (Sascha Zelzer, Miklos Espak, Ralf)<br />
** Python Wrapping (Sascha, Nicolas)<br />
** Data editing (post-poned)<br />
** Uploading (Andreas, Ivo)<br />
** Caching (Miklos, (Ralf))<br />
** C++ VS XNAT data model (Nicolas, Andreas)<br />
** Filtered data query based on data type and/or properties (Miklos)<br />
** Launch pipelines (remote) and follow progress (Miklos)<br />
<br />
==== CLI ====<br />
<br />
* Make it customisable what options to generate to the final command (Gergely Zombori)<br />
* Finalize integration of CTK CLI frontend into Slicer and investigate how to integrate the backend (Jc)<br />
* Improved entry point / documentation for CLI users & developers<br />
<br />
==== Documentation & Presentation ====<br />
<br />
* Nice landing page?<br />
* Improve wiki? Something different?<br />
<br />
== Agenda ==<br />
<br />
==== Monday ====<br />
<br />
Start: The meeting room will be open starting at 9am. Official start and kick-off will be early afternoon after everybody arrived.<br />
<br />
Opening discussion<br />
* Review topics and projects<br />
* Plans for the week<br />
* Review [https://github.com/commontk/CTK/issues?state=open open issues on github].<br />
<br />
Afternoon:<br />
* Welcome by Prof. Hans-Peter Meinzer<br />
* Presentation about [[Media:The_Common_Toolkit_Jubilee.pptx|The Common Toolkit Jubilee]]<br />
<br />
Evening:<br />
<br />
* Dinner 20:15 @ [http://www.heidelberger-kulturbrauerei.de/en/ Kulturbrauerei], [https://www.google.de/maps/dir/Hotel+Holl%C3%A4nder+Hof,+Neckarstaden+66,+69117+Heidelberg/Kulturbrauerei+Heidelberg,+Leyergasse+6,+69117+Heidelberg/@49.413196,8.7102803,18z/data=!3m1!4b1!4m14!4m13!1m5!1m1!1s0x4797c10638e496a5:0xe28b6a91325a2c23!2m2!1d8.709242!2d49.413192!1m5!1m1!1s0x4797c1a81df9996d:0xb0cec22d395e79e1!2m2!1d8.713414!2d49.41318!3e2 directions], Pickup ~20:00 at Holländer Hof<br />
<br />
==== Tuesday ====<br />
<br />
Morning:<br />
<br />
* Steve QIICR<br />
* Michael Onken presentation about upcoming dcmtk modules<br />
* XNAT discussion<br />
<br />
<br />
Afternoon:<br />
<br />
* 13:30 Lab Tour<br />
<br />
Evening:<br />
<br />
* 16:00 Famous Old City tour guided by Hans-Peter Meinzer<br />
<br />
* 20:00 Beer Topics<br />
** Defacing<br />
<br />
==== Wednesday ====<br />
<br />
Morning<br />
<br />
During the day: hack, hack, hack...<br />
<br />
==== Thursday ====<br />
<br />
Morning:<br />
<br />
* IGT & OpenIGTLink discussion<br />
<br />
During the day: hack, hack, hack…<br />
<br />
Short wrap-up:<br />
<br />
Christian:<br />
* Fixed Qt5 DICOM & Plugin Framework issues<br />
* Doxygen fixes<br />
* Started integrating CTK DICOM Widget improvements<br />
<br />
JC:<br />
* dcmjs: Update to use latest version of emscripten<br />
* dcmjs: create dcmjs.org github project and add deploy mechanism<br />
* dcmjs: Improve user experience of http://dcmjs.org website<br />
* Re-started Slicer CTK CLI integration<br />
* Discussed extension of CLI schema to support optional parameter.<br />
* Improved CTK PythonQt wrapping to support import from regular python shell. See [https://github.com/commontk/CTK/pull/520 commontk/CTK#520]<br />
<br />
Hans:<br />
* Many discussion topics (Chronicle, CLI)<br />
* CLI documentation overview (CTK Wiki)<br />
* Investigated elasticsearch database for CLI modules<br />
* OpenInventor <-> VTK integration<br />
<br />
Stefan:<br />
* Added [[Media:Testmr.txt | mapping/de-identification]] functionality to dcmjs (minimal feature set like CTP)<br />
<br />
Steve:<br />
* dcmjs organize tool<br />
** exploring boundaries (extracting data etc.)<br />
** anonymization<br />
* DICOM segmentation object discussions<br />
** How to support CLIs?<br />
<br />
Michael:<br />
* Compiled CTK with new dcmtk snapshot (worked)<br />
* Worked on dcmseg module<br />
<br />
Marco:<br />
* Discussions about QIICR<br />
* Closed a couple of GitHub issues<br />
<br />
Ivo:<br />
* Discussions about QIICR, XNAT<br />
* Compiling MRML outside of Slicer<br />
<br />
Andreas:<br />
* XNAT upload (qRestAPI changes)<br />
* DICOM discussions (widget usability, anonymization tools)<br />
<br />
Nicolas:<br />
* Wrapped XNAT library into Python (for usage in NiPype)<br />
* Usage outside of a QApplication needs investigation<br />
<br />
Gergely:<br />
* Added possibility for optional CLI parameter<br />
<br />
Miklos:<br />
* Started XNAT query API<br />
* Hit API limits -> focus on caching objects<br />
* Needs more discussion<br />
<br />
Sascha:<br />
* Qt5 fixes<br />
* Travis integration<br />
<br />
<br />
Evening:<br />
<br />
==== Friday ====<br />
<br />
During the day: hack, hack, hack...<br />
<br />
11:00: Closing discussion<br />
* CLI Elasticsearch (Hans)<br />
** Search for keywords and get matching CLIs<br />
** Use it to browse CLI descriptions and clean-up contents<br />
** [https://github.com/commontk/cli-indexer commontk/cli-indexer] repository. Creates JSON descriptions from CLI XML.<br />
** Every institution could publish the JSON description of their CLIs and publish it<br />
** There is a pypi package for cli-indexer<br />
<br />
Afternoon: hack or travel<br />
<br />
== Travel & Hotel ==<br />
<br />
===Local contacts===<br />
<br />
* Marco Nolden (m.nolden@dkfz-heidelberg.de)<br />
* Sascha Zelzer (s.zelzer@dkfz-heidelberg.de) [[File:Sascha_phone.png|130px]]<br />
* Andreas Fetzer (a.fetzer@dkfz-heidelberg.de)<br />
<br />
===Transportation===<br />
<br />
It takes about an hour from Frankfurt Airport (FRA) to Heidelberg Main Station with one change in Mannheim. If you stay in the Old Town you can also look for connections going to "Heidelberg Altstadt". You can look it up at [http://www.bahn.de/p_en/view/index.shtml Deutsche Bahn], but they run quite frequently.<br />
<br />
'''Local:''' from the Old Town, "Universitätsplatz", runs [http://www.vrn.de/mam/vrn/einfach-ankommen/dokumente/stadtlinienplaene/heidelberg_schematisch.pdf bus number 32] ([http://www.vrn.de/mam/vrn/einfach-ankommen/dokumente/stadtlinienplaene/heidelberg.pdf geographic map]) via Main Station to DKFZ, exit at "Chirurgische Klinik", bus direction is "Neuenheim". After you exit, DKFZ is on your right.<br />
<br />
[[File:Heidelberg_map.png|700px]]<br />
<br />
During the day the bus runs every 10 minutes in both directions, timetables are also available at [http://fahrplanauskunft.vrn.de/vrn/XSLT_TRIP_REQUEST2?language=en VRN].<br />
<br />
==== To Frankfurt Airport ====<br />
<br />
The German Railways is affected by a strike from Thursday to Monday morning. Trains will operate on a limited basis - check the website of [http://www.bahn.de Deutsch Bahn].<br />
<br />
You may also use a [http://www.transcontinental-group.com/en/airport-shuttle-buchen Shuttle Bus] departing from the Crown Plaza in Heidelberg. It is recommended to book online as early as possible.<br />
<br />
===Lodging===<br />
<br />
We recommend to stay in the historic Old Town. There is an easy direct bus ride every 10 minutes from there to DKFZ.<br />
<br />
We have reserved a number of rooms at the [http://www.hollaender-hof.de/en/ Holländer Hof] ([http://www.openstreetmap.org/?mlat=49.41317&mlon=8.70925#map=19/49.41317/8.70925 map]) hotel! Please use "CTK 2014" when you do a reservation there. Of course there are plenty of other hotels in that area, e.g. [http://www.hotel-goldener-hecht.de/ Goldener Hecht] or the oldest house in town, [http://www.ritter-heidelberg.de/ Hotel zum Ritter].<br />
<br />
===Meeting Room===<br />
<br />
The full address for the DKFZ is<br />
<br />
Deutsches Krebsforschungszentrum<br />
Im Neuenheimer Feld 280<br />
69120 Heidelberg<br />
<br />
We will meet in the main building on the second floor (European counting!). The cryptic room number is D0.02.032. Follow the description below to find it.<br />
<br />
When leaving bus 32, you will see something similar to<br />
<br />
[[File:DKFZ_Bus.jpg|600px]]<br />
<br />
The large building on the right is the DKFZ main bulding<br />
<br />
[[File:DKFZ_Hauptgebaeude_neu_600x402.jpg|600px]]<br />
<br />
Walk through the main entrance and follow the map<br />
<br />
[[File:DKFZ_Hackfest_map.jpg|600px]]<br />
<br />
Ask the nice guys at the reception or call us in case of any problems.<br />
<br />
===Weather===<br />
<br />
November is a rather wet month. [http://www.weather-and-climate.com/average-monthly-Rainfall-Temperature-Sunshine,heidelberg,Germany Average weather in Heidelberg]<br />
<br />
===Food===<br />
<br />
Plan on having breakfast at your hotel before the meeting. Please email the organizers if you have any allergies or dietary restrictions. <br />
<br />
Being a university and hospital campus, there are several lunch possibilities, including cafeterias, a students mensa, and two restaurants.<br />
<br />
<br />
===Optional Activities in the Area===</div>JChris.FillionRhttp://www.commontk.org/index.php?title=CTK-Hackfest-Nov-2014&diff=2273CTK-Hackfest-Nov-20142014-11-08T00:15:45Z<p>JChris.FillionR: /* Thursday */</p>
<hr />
<div>== Event pictures ==<br />
<br />
[[File:Ctk.2014,11.png|600px]]<br />
<br />
=== Progress ===<br />
<br />
<br />
== Introduction ==<br />
<br />
'''Date:''' November 3-7, 2014<br />
<br />
'''Location:'''<br />
<br />
German Cancer Research Center, Heidelberg, Germany<br />
<br />
More details to follow.<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:''' Marco Nolden, Sascha Zelzer, Ivo Wolf<br />
<br />
'''Organizing Committee:''' Steve Pieper, Ivo Wolf, Stephen Aylward<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 />
<br />
* So far we have received confirmation for the following people (in no particular order). <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 />
|Marco Nolden<br />
|German Cancer Research Center, Heidelberg, Germany<br />
|-<br />
|Sascha Zelzer<br />
|German Cancer Research Center, Heidelberg, Germany<br />
|-<br />
|Andreas Fetzer<br />
|German Cancer Research Center, Heidelberg, Germany<br />
|-<br />
|Stefan Kislinkiy<br />
|German Cancer Research Center, Heidelberg, Germany<br />
|-<br />
|Ralf Floca<br />
|German Cancer Research Center, Heidelberg, Germany<br />
|-<br />
|Ivo Wolf<br />
|Mannheim University of Applied Sciences, Germany<br />
|-<br />
|Steve Pieper<br />
|Isomics, Inc., USA<br />
|-<br />
|Michael Onken<br />
|Open Connections GmbH / OFFIS<br />
|-<br />
|Jean-Christophe Fillion-Robin<br />
|Kitware, Inc., USA<br />
|-<br />
|Miklos Espak<br />
|University College London, UK<br />
|-<br />
|Nicolas Toussaint<br />
|University College London, UK<br />
|-<br />
|Gergely Zombori<br />
|University College London, UK<br />
|-<br />
|Christian Askeland<br />
|SINTEF Medical Technology, Trondheim, Norway<br />
|-<br />
|Stefan Baumann<br />
|Basel, Switzerland<br />
|-<br />
|Hans Meine<br />
|Fraunhofer MEVIS, Germany<br />
|-<br />
|}<br />
<br />
{|class="wikitable alternance" style="text-align:left; border:1px solid black;"<br />
|+ '''''Google Hangout Participants'''''<br />
|-<br />
! scope=col style="background:#cde6f8;"| Name<br />
! scope=col style="background:#cde6f8;"| Organization<br />
! scope=col style="background:#cde6f8;"| Availablity (Central European Time)<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 />
<br />
'''https://plus.google.com/hangouts/_/g3vi3lz7sycalj74ys2xpnpr3ya'''<br />
<br />
== Topics and Projects ==<br />
<br />
Consider reading [http://www.commontk.org/index.php/Contributing_to_CTK#Integrate_your_new_feature Contributing_to_CTK#Integrate_your_new_feature]<br />
<br />
Reminder: when integrating branches, remember to use --log --no-ff when merging.<br />
<br />
We plan to have concrete hacking topics as well as dedicated discussions in smaller groups. People are encouraged to show their interest in a particular subject by adding their name to the list below.<br />
<br />
=== Hacking Topics ===<br />
<br />
==== Infrastructure ====<br />
<br />
* Qt5 migration (Christian)<br />
** compile and run on Mac<br />
* Packaging / install support (Marco, Jc)<br />
* Fix issue related to [https://github.com/commontk/Artichoke Artichoke] and improve documentation (Jc)<br />
* Dashboard<br />
** General Situation: Continuous/Nightly clients, coverage<br />
** Configurations: Qt4, Qt5, etc.<br />
** Travis CI (Sascha, Steve)<br />
* Incomplete doxygen on the website (Christian)<br />
* Component / target oriented build system (Jc, Sascha)<br />
* Review commontk/* repositories (delete/update/etc.)<br />
* Check support for MacOS 10.10<br />
<br />
==== DICOM ====<br />
<br />
* dcmtk Features<br />
** Support building with emscripten, pinnacle<br />
** Multi-frame support (Steve, Christian, Michael)<br />
** SEG support<br />
*** Investigate compatibility of DCMTK seg functionality with BrainLab segmentations; [http://slicer.kitware.com/midas3/item/162562 sample dataset] (QIICR community, Steve has access) - RLE compressed<br />
*** Investigate DCMTK RLE compression tools applied to segmentations; trying to apply it to sample objects generates "F: No conversion to transfer syntax RLE Lossless possible!" error; [http://slicer.kitware.com/midas3/item/162428 SPL segmentation dataset example], [http://slicer.kitware.com/midas3/item/161740 PET segmentation example]<br />
<br />
* Making CLIs read and write valid DICOM (Steve, Michael)<br />
<br />
* Anonymization (Andreas Fetzer, Marco, Steve, Stefan, Ralf)<br />
** Client-side options: gdcmanon, dcmtk (?), dcmjs, DicomCleaner, CTP...<br />
** Testing can use [[File:PieperMRI.tar.gz | this freely sharable identified MR scan]]<br />
** Goal is to de-identify with various tools and compare results with [ftp://medical.nema.org/medical/dicom/Final/sup142_ft.pdf supplement 142 of the DICOM standard].<br />
** There is a separate page, which provides an overview of existing de-identification tools: [[DICOM de-identification tool overview]]<br />
<br />
* ctkDICOM improvments (Ralf); discussed ideas:<br />
** Introduce "compact and detailed view mode" to ctkDICOMTableView and ctkDICOMTableManager. Basic idea is that you can give the widgets a list of "high priority" tags -> in compact mode all columns of non priority tags will be filter. You can define the active mode via property / slot (to e.g. easily connect it with a control widget signal).<br />
** Refactoring of one unified "search definition widget" and separated generators for "dicom q/r" and sql statement that use the search definition. This would give the possibility for instance to use the same search widget in different places (e.g. in the ctkDICOMQueryRetrieveWidget or ctkDICOMTableManager)<br />
<br />
==== XNAT ====<br />
<br />
* Improve and extend the XNAT API (Sascha Zelzer, Miklos Espak, Ralf)<br />
** Python Wrapping (Sascha, Nicolas)<br />
** Data editing (post-poned)<br />
** Uploading (Andreas, Ivo)<br />
** Caching (Miklos, (Ralf))<br />
** C++ VS XNAT data model (Nicolas, Andreas)<br />
** Filtered data query based on data type and/or properties (Miklos)<br />
** Launch pipelines (remote) and follow progress (Miklos)<br />
<br />
==== CLI ====<br />
<br />
* Make it customisable what options to generate to the final command (Gergely Zombori)<br />
* Finalize integration of CTK CLI frontend into Slicer and investigate how to integrate the backend (Jc)<br />
* Improved entry point / documentation for CLI users & developers<br />
<br />
==== Documentation & Presentation ====<br />
<br />
* Nice landing page?<br />
* Improve wiki? Something different?<br />
<br />
== Agenda ==<br />
<br />
==== Monday ====<br />
<br />
Start: The meeting room will be open starting at 9am. Official start and kick-off will be early afternoon after everybody arrived.<br />
<br />
Opening discussion<br />
* Review topics and projects<br />
* Plans for the week<br />
* Review [https://github.com/commontk/CTK/issues?state=open open issues on github].<br />
<br />
Afternoon:<br />
* Welcome by Prof. Hans-Peter Meinzer<br />
* Presentation about [[Media:The_Common_Toolkit_Jubilee.pptx|The Common Toolkit Jubilee]]<br />
<br />
Evening:<br />
<br />
* Dinner 20:15 @ [http://www.heidelberger-kulturbrauerei.de/en/ Kulturbrauerei], [https://www.google.de/maps/dir/Hotel+Holl%C3%A4nder+Hof,+Neckarstaden+66,+69117+Heidelberg/Kulturbrauerei+Heidelberg,+Leyergasse+6,+69117+Heidelberg/@49.413196,8.7102803,18z/data=!3m1!4b1!4m14!4m13!1m5!1m1!1s0x4797c10638e496a5:0xe28b6a91325a2c23!2m2!1d8.709242!2d49.413192!1m5!1m1!1s0x4797c1a81df9996d:0xb0cec22d395e79e1!2m2!1d8.713414!2d49.41318!3e2 directions], Pickup ~20:00 at Holländer Hof<br />
<br />
==== Tuesday ====<br />
<br />
Morning:<br />
<br />
* Steve QIICR<br />
* Michael Onken presentation about upcoming dcmtk modules<br />
* XNAT discussion<br />
<br />
<br />
Afternoon:<br />
<br />
* 13:30 Lab Tour<br />
<br />
Evening:<br />
<br />
* 16:00 Famous Old City tour guided by Hans-Peter Meinzer<br />
<br />
* 20:00 Beer Topics<br />
** Defacing<br />
<br />
==== Wednesday ====<br />
<br />
Morning<br />
<br />
During the day: hack, hack, hack...<br />
<br />
==== Thursday ====<br />
<br />
Morning:<br />
<br />
* IGT & OpenIGTLink discussion<br />
<br />
During the day: hack, hack, hack…<br />
<br />
Short wrap-up:<br />
<br />
Christian:<br />
* Fixed Qt5 DICOM & Plugin Framework issues<br />
* Doxygen fixes<br />
* Started integrating CTK DICOM Widget improvements<br />
<br />
JC:<br />
* dcmjs: Update to use latest version of emscripten<br />
* dcmjs: create dcmjs.org github project and add deploy mechanism<br />
* dcmjs: Improve user experience of http://dcmjs.org website<br />
* Re-started Slicer CTK CLI integration<br />
* Discussed extension of CLI schema to support optional parameter.<br />
* Improved CTK PythonQt wrapping to support import from regular python shell. See [https://github.com/commontk/CTK/pull/520 commontk/CTK#520]<br />
<br />
Hans:<br />
* Many discussion topics (Chronicle, CLI)<br />
* CLI documentation overview (CTK Wiki)<br />
* Investigated elasticsearch database for CLI modules<br />
* OpenInventor <-> VTK integration<br />
<br />
Stefan:<br />
* Added [[Media:Testmr.txt | mapping/de-identification]] functionality to dcmjs (minimal feature set like CTP)<br />
<br />
Steve:<br />
* dcmjs organize tool<br />
** exploring boundaries (extracting data etc.)<br />
** anonymization<br />
* DICOM segmentation object discussions<br />
** How to support CLIs?<br />
<br />
Michael:<br />
* Compiled CTK with new dcmtk snapshot (worked)<br />
* Worked on dcmseg module<br />
<br />
Marco:<br />
* Discussions about QIICR<br />
* Closed a couple of GitHub issues<br />
<br />
Ivo:<br />
* Discussions about QIICR, XNAT<br />
* Compiling MRML outside of Slicer<br />
<br />
Andreas:<br />
* XNAT upload (qRestAPI changes)<br />
* DICOM discussions (widget usability, anonymization tools)<br />
<br />
Nicolas:<br />
* Wrapped XNAT library into Python (for usage in NiPype)<br />
* Usage outside of a QApplication needs investigation<br />
<br />
Gergely:<br />
* Added possibility for optional CLI parameter<br />
<br />
Miklos:<br />
* Started XNAT query API<br />
* Hit API limits -> focus on caching objects<br />
* Needs more discussion<br />
<br />
Sascha:<br />
* Qt5 fixes<br />
* Travis integration<br />
<br />
<br />
Evening:<br />
<br />
==== Friday ====<br />
<br />
During the day: hack, hack, hack...<br />
<br />
11:00: Closing discussion<br />
* CLI Elasticsearch (Hans)<br />
** Search for keywords and get matching CLIs<br />
** Use it to browse CLI descriptions and clean-up contents<br />
** [[https://github.com/commontk/cli-indexer commontk/cli-indexer]] repository. Creates JSON descriptions from CLI XML.<br />
** Every institution could publish the JSON description of their CLIs and publish it<br />
** There is a pypi package for cli-indexer<br />
<br />
Afternoon: hack or travel<br />
<br />
== Travel & Hotel ==<br />
<br />
===Local contacts===<br />
<br />
* Marco Nolden (m.nolden@dkfz-heidelberg.de)<br />
* Sascha Zelzer (s.zelzer@dkfz-heidelberg.de) [[File:Sascha_phone.png|130px]]<br />
* Andreas Fetzer (a.fetzer@dkfz-heidelberg.de)<br />
<br />
===Transportation===<br />
<br />
It takes about an hour from Frankfurt Airport (FRA) to Heidelberg Main Station with one change in Mannheim. If you stay in the Old Town you can also look for connections going to "Heidelberg Altstadt". You can look it up at [http://www.bahn.de/p_en/view/index.shtml Deutsche Bahn], but they run quite frequently.<br />
<br />
'''Local:''' from the Old Town, "Universitätsplatz", runs [http://www.vrn.de/mam/vrn/einfach-ankommen/dokumente/stadtlinienplaene/heidelberg_schematisch.pdf bus number 32] ([http://www.vrn.de/mam/vrn/einfach-ankommen/dokumente/stadtlinienplaene/heidelberg.pdf geographic map]) via Main Station to DKFZ, exit at "Chirurgische Klinik", bus direction is "Neuenheim". After you exit, DKFZ is on your right.<br />
<br />
[[File:Heidelberg_map.png|700px]]<br />
<br />
During the day the bus runs every 10 minutes in both directions, timetables are also available at [http://fahrplanauskunft.vrn.de/vrn/XSLT_TRIP_REQUEST2?language=en VRN].<br />
<br />
==== To Frankfurt Airport ====<br />
<br />
The German Railways is affected by a strike from Thursday to Monday morning. Trains will operate on a limited basis - check the website of [http://www.bahn.de Deutsch Bahn].<br />
<br />
You may also use a [http://www.transcontinental-group.com/en/airport-shuttle-buchen Shuttle Bus] departing from the Crown Plaza in Heidelberg. It is recommended to book online as early as possible.<br />
<br />
===Lodging===<br />
<br />
We recommend to stay in the historic Old Town. There is an easy direct bus ride every 10 minutes from there to DKFZ.<br />
<br />
We have reserved a number of rooms at the [http://www.hollaender-hof.de/en/ Holländer Hof] ([http://www.openstreetmap.org/?mlat=49.41317&mlon=8.70925#map=19/49.41317/8.70925 map]) hotel! Please use "CTK 2014" when you do a reservation there. Of course there are plenty of other hotels in that area, e.g. [http://www.hotel-goldener-hecht.de/ Goldener Hecht] or the oldest house in town, [http://www.ritter-heidelberg.de/ Hotel zum Ritter].<br />
<br />
===Meeting Room===<br />
<br />
The full address for the DKFZ is<br />
<br />
Deutsches Krebsforschungszentrum<br />
Im Neuenheimer Feld 280<br />
69120 Heidelberg<br />
<br />
We will meet in the main building on the second floor (European counting!). The cryptic room number is D0.02.032. Follow the description below to find it.<br />
<br />
When leaving bus 32, you will see something similar to<br />
<br />
[[File:DKFZ_Bus.jpg|600px]]<br />
<br />
The large building on the right is the DKFZ main bulding<br />
<br />
[[File:DKFZ_Hauptgebaeude_neu_600x402.jpg|600px]]<br />
<br />
Walk through the main entrance and follow the map<br />
<br />
[[File:DKFZ_Hackfest_map.jpg|600px]]<br />
<br />
Ask the nice guys at the reception or call us in case of any problems.<br />
<br />
===Weather===<br />
<br />
November is a rather wet month. [http://www.weather-and-climate.com/average-monthly-Rainfall-Temperature-Sunshine,heidelberg,Germany Average weather in Heidelberg]<br />
<br />
===Food===<br />
<br />
Plan on having breakfast at your hotel before the meeting. Please email the organizers if you have any allergies or dietary restrictions. <br />
<br />
Being a university and hospital campus, there are several lunch possibilities, including cafeterias, a students mensa, and two restaurants.<br />
<br />
<br />
===Optional Activities in the Area===</div>JChris.FillionRhttp://www.commontk.org/index.php?title=CTK-Hackfest-Nov-2014&diff=2272CTK-Hackfest-Nov-20142014-11-08T00:15:26Z<p>JChris.FillionR: /* Thursday */</p>
<hr />
<div>== Event pictures ==<br />
<br />
[[File:Ctk.2014,11.png|600px]]<br />
<br />
=== Progress ===<br />
<br />
<br />
== Introduction ==<br />
<br />
'''Date:''' November 3-7, 2014<br />
<br />
'''Location:'''<br />
<br />
German Cancer Research Center, Heidelberg, Germany<br />
<br />
More details to follow.<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:''' Marco Nolden, Sascha Zelzer, Ivo Wolf<br />
<br />
'''Organizing Committee:''' Steve Pieper, Ivo Wolf, Stephen Aylward<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 />
<br />
* So far we have received confirmation for the following people (in no particular order). <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 />
|Marco Nolden<br />
|German Cancer Research Center, Heidelberg, Germany<br />
|-<br />
|Sascha Zelzer<br />
|German Cancer Research Center, Heidelberg, Germany<br />
|-<br />
|Andreas Fetzer<br />
|German Cancer Research Center, Heidelberg, Germany<br />
|-<br />
|Stefan Kislinkiy<br />
|German Cancer Research Center, Heidelberg, Germany<br />
|-<br />
|Ralf Floca<br />
|German Cancer Research Center, Heidelberg, Germany<br />
|-<br />
|Ivo Wolf<br />
|Mannheim University of Applied Sciences, Germany<br />
|-<br />
|Steve Pieper<br />
|Isomics, Inc., USA<br />
|-<br />
|Michael Onken<br />
|Open Connections GmbH / OFFIS<br />
|-<br />
|Jean-Christophe Fillion-Robin<br />
|Kitware, Inc., USA<br />
|-<br />
|Miklos Espak<br />
|University College London, UK<br />
|-<br />
|Nicolas Toussaint<br />
|University College London, UK<br />
|-<br />
|Gergely Zombori<br />
|University College London, UK<br />
|-<br />
|Christian Askeland<br />
|SINTEF Medical Technology, Trondheim, Norway<br />
|-<br />
|Stefan Baumann<br />
|Basel, Switzerland<br />
|-<br />
|Hans Meine<br />
|Fraunhofer MEVIS, Germany<br />
|-<br />
|}<br />
<br />
{|class="wikitable alternance" style="text-align:left; border:1px solid black;"<br />
|+ '''''Google Hangout Participants'''''<br />
|-<br />
! scope=col style="background:#cde6f8;"| Name<br />
! scope=col style="background:#cde6f8;"| Organization<br />
! scope=col style="background:#cde6f8;"| Availablity (Central European Time)<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 />
<br />
'''https://plus.google.com/hangouts/_/g3vi3lz7sycalj74ys2xpnpr3ya'''<br />
<br />
== Topics and Projects ==<br />
<br />
Consider reading [http://www.commontk.org/index.php/Contributing_to_CTK#Integrate_your_new_feature Contributing_to_CTK#Integrate_your_new_feature]<br />
<br />
Reminder: when integrating branches, remember to use --log --no-ff when merging.<br />
<br />
We plan to have concrete hacking topics as well as dedicated discussions in smaller groups. People are encouraged to show their interest in a particular subject by adding their name to the list below.<br />
<br />
=== Hacking Topics ===<br />
<br />
==== Infrastructure ====<br />
<br />
* Qt5 migration (Christian)<br />
** compile and run on Mac<br />
* Packaging / install support (Marco, Jc)<br />
* Fix issue related to [https://github.com/commontk/Artichoke Artichoke] and improve documentation (Jc)<br />
* Dashboard<br />
** General Situation: Continuous/Nightly clients, coverage<br />
** Configurations: Qt4, Qt5, etc.<br />
** Travis CI (Sascha, Steve)<br />
* Incomplete doxygen on the website (Christian)<br />
* Component / target oriented build system (Jc, Sascha)<br />
* Review commontk/* repositories (delete/update/etc.)<br />
* Check support for MacOS 10.10<br />
<br />
==== DICOM ====<br />
<br />
* dcmtk Features<br />
** Support building with emscripten, pinnacle<br />
** Multi-frame support (Steve, Christian, Michael)<br />
** SEG support<br />
*** Investigate compatibility of DCMTK seg functionality with BrainLab segmentations; [http://slicer.kitware.com/midas3/item/162562 sample dataset] (QIICR community, Steve has access) - RLE compressed<br />
*** Investigate DCMTK RLE compression tools applied to segmentations; trying to apply it to sample objects generates "F: No conversion to transfer syntax RLE Lossless possible!" error; [http://slicer.kitware.com/midas3/item/162428 SPL segmentation dataset example], [http://slicer.kitware.com/midas3/item/161740 PET segmentation example]<br />
<br />
* Making CLIs read and write valid DICOM (Steve, Michael)<br />
<br />
* Anonymization (Andreas Fetzer, Marco, Steve, Stefan, Ralf)<br />
** Client-side options: gdcmanon, dcmtk (?), dcmjs, DicomCleaner, CTP...<br />
** Testing can use [[File:PieperMRI.tar.gz | this freely sharable identified MR scan]]<br />
** Goal is to de-identify with various tools and compare results with [ftp://medical.nema.org/medical/dicom/Final/sup142_ft.pdf supplement 142 of the DICOM standard].<br />
** There is a separate page, which provides an overview of existing de-identification tools: [[DICOM de-identification tool overview]]<br />
<br />
* ctkDICOM improvments (Ralf); discussed ideas:<br />
** Introduce "compact and detailed view mode" to ctkDICOMTableView and ctkDICOMTableManager. Basic idea is that you can give the widgets a list of "high priority" tags -> in compact mode all columns of non priority tags will be filter. You can define the active mode via property / slot (to e.g. easily connect it with a control widget signal).<br />
** Refactoring of one unified "search definition widget" and separated generators for "dicom q/r" and sql statement that use the search definition. This would give the possibility for instance to use the same search widget in different places (e.g. in the ctkDICOMQueryRetrieveWidget or ctkDICOMTableManager)<br />
<br />
==== XNAT ====<br />
<br />
* Improve and extend the XNAT API (Sascha Zelzer, Miklos Espak, Ralf)<br />
** Python Wrapping (Sascha, Nicolas)<br />
** Data editing (post-poned)<br />
** Uploading (Andreas, Ivo)<br />
** Caching (Miklos, (Ralf))<br />
** C++ VS XNAT data model (Nicolas, Andreas)<br />
** Filtered data query based on data type and/or properties (Miklos)<br />
** Launch pipelines (remote) and follow progress (Miklos)<br />
<br />
==== CLI ====<br />
<br />
* Make it customisable what options to generate to the final command (Gergely Zombori)<br />
* Finalize integration of CTK CLI frontend into Slicer and investigate how to integrate the backend (Jc)<br />
* Improved entry point / documentation for CLI users & developers<br />
<br />
==== Documentation & Presentation ====<br />
<br />
* Nice landing page?<br />
* Improve wiki? Something different?<br />
<br />
== Agenda ==<br />
<br />
==== Monday ====<br />
<br />
Start: The meeting room will be open starting at 9am. Official start and kick-off will be early afternoon after everybody arrived.<br />
<br />
Opening discussion<br />
* Review topics and projects<br />
* Plans for the week<br />
* Review [https://github.com/commontk/CTK/issues?state=open open issues on github].<br />
<br />
Afternoon:<br />
* Welcome by Prof. Hans-Peter Meinzer<br />
* Presentation about [[Media:The_Common_Toolkit_Jubilee.pptx|The Common Toolkit Jubilee]]<br />
<br />
Evening:<br />
<br />
* Dinner 20:15 @ [http://www.heidelberger-kulturbrauerei.de/en/ Kulturbrauerei], [https://www.google.de/maps/dir/Hotel+Holl%C3%A4nder+Hof,+Neckarstaden+66,+69117+Heidelberg/Kulturbrauerei+Heidelberg,+Leyergasse+6,+69117+Heidelberg/@49.413196,8.7102803,18z/data=!3m1!4b1!4m14!4m13!1m5!1m1!1s0x4797c10638e496a5:0xe28b6a91325a2c23!2m2!1d8.709242!2d49.413192!1m5!1m1!1s0x4797c1a81df9996d:0xb0cec22d395e79e1!2m2!1d8.713414!2d49.41318!3e2 directions], Pickup ~20:00 at Holländer Hof<br />
<br />
==== Tuesday ====<br />
<br />
Morning:<br />
<br />
* Steve QIICR<br />
* Michael Onken presentation about upcoming dcmtk modules<br />
* XNAT discussion<br />
<br />
<br />
Afternoon:<br />
<br />
* 13:30 Lab Tour<br />
<br />
Evening:<br />
<br />
* 16:00 Famous Old City tour guided by Hans-Peter Meinzer<br />
<br />
* 20:00 Beer Topics<br />
** Defacing<br />
<br />
==== Wednesday ====<br />
<br />
Morning<br />
<br />
During the day: hack, hack, hack...<br />
<br />
==== Thursday ====<br />
<br />
Morning:<br />
<br />
* IGT & OpenIGTLink discussion<br />
<br />
During the day: hack, hack, hack…<br />
<br />
Short wrap-up:<br />
<br />
Christian:<br />
* Fixed Qt5 DICOM & Plugin Framework issues<br />
* Doxygen fixes<br />
* Started integrating CTK DICOM Widget improvements<br />
<br />
JC:<br />
* dcmjs: Update to use latest version of emscripten<br />
* dcmjs: create dcmjs.org github project and add deploy mechanism<br />
* dcmjs: Improve user experience of dcmjs.org website<br />
* Re-started Slicer CTK CLI integration<br />
* Discussed extension of CLI schema to support optional parameter.<br />
* Improved CTK PythonQt wrapping to support import from regular python shell. See [https://github.com/commontk/CTK/pull/520 commontk/CTK#520]<br />
<br />
Hans:<br />
* Many discussion topics (Chronicle, CLI)<br />
* CLI documentation overview (CTK Wiki)<br />
* Investigated elasticsearch database for CLI modules<br />
* OpenInventor <-> VTK integration<br />
<br />
Stefan:<br />
* Added [[Media:Testmr.txt | mapping/de-identification]] functionality to dcmjs (minimal feature set like CTP)<br />
<br />
Steve:<br />
* dcmjs organize tool<br />
** exploring boundaries (extracting data etc.)<br />
** anonymization<br />
* DICOM segmentation object discussions<br />
** How to support CLIs?<br />
<br />
Michael:<br />
* Compiled CTK with new dcmtk snapshot (worked)<br />
* Worked on dcmseg module<br />
<br />
Marco:<br />
* Discussions about QIICR<br />
* Closed a couple of GitHub issues<br />
<br />
Ivo:<br />
* Discussions about QIICR, XNAT<br />
* Compiling MRML outside of Slicer<br />
<br />
Andreas:<br />
* XNAT upload (qRestAPI changes)<br />
* DICOM discussions (widget usability, anonymization tools)<br />
<br />
Nicolas:<br />
* Wrapped XNAT library into Python (for usage in NiPype)<br />
* Usage outside of a QApplication needs investigation<br />
<br />
Gergely:<br />
* Added possibility for optional CLI parameter<br />
<br />
Miklos:<br />
* Started XNAT query API<br />
* Hit API limits -> focus on caching objects<br />
* Needs more discussion<br />
<br />
Sascha:<br />
* Qt5 fixes<br />
* Travis integration<br />
<br />
<br />
Evening:<br />
<br />
==== Friday ====<br />
<br />
During the day: hack, hack, hack...<br />
<br />
11:00: Closing discussion<br />
* CLI Elasticsearch (Hans)<br />
** Search for keywords and get matching CLIs<br />
** Use it to browse CLI descriptions and clean-up contents<br />
** [[https://github.com/commontk/cli-indexer commontk/cli-indexer]] repository. Creates JSON descriptions from CLI XML.<br />
** Every institution could publish the JSON description of their CLIs and publish it<br />
** There is a pypi package for cli-indexer<br />
<br />
Afternoon: hack or travel<br />
<br />
== Travel & Hotel ==<br />
<br />
===Local contacts===<br />
<br />
* Marco Nolden (m.nolden@dkfz-heidelberg.de)<br />
* Sascha Zelzer (s.zelzer@dkfz-heidelberg.de) [[File:Sascha_phone.png|130px]]<br />
* Andreas Fetzer (a.fetzer@dkfz-heidelberg.de)<br />
<br />
===Transportation===<br />
<br />
It takes about an hour from Frankfurt Airport (FRA) to Heidelberg Main Station with one change in Mannheim. If you stay in the Old Town you can also look for connections going to "Heidelberg Altstadt". You can look it up at [http://www.bahn.de/p_en/view/index.shtml Deutsche Bahn], but they run quite frequently.<br />
<br />
'''Local:''' from the Old Town, "Universitätsplatz", runs [http://www.vrn.de/mam/vrn/einfach-ankommen/dokumente/stadtlinienplaene/heidelberg_schematisch.pdf bus number 32] ([http://www.vrn.de/mam/vrn/einfach-ankommen/dokumente/stadtlinienplaene/heidelberg.pdf geographic map]) via Main Station to DKFZ, exit at "Chirurgische Klinik", bus direction is "Neuenheim". After you exit, DKFZ is on your right.<br />
<br />
[[File:Heidelberg_map.png|700px]]<br />
<br />
During the day the bus runs every 10 minutes in both directions, timetables are also available at [http://fahrplanauskunft.vrn.de/vrn/XSLT_TRIP_REQUEST2?language=en VRN].<br />
<br />
==== To Frankfurt Airport ====<br />
<br />
The German Railways is affected by a strike from Thursday to Monday morning. Trains will operate on a limited basis - check the website of [http://www.bahn.de Deutsch Bahn].<br />
<br />
You may also use a [http://www.transcontinental-group.com/en/airport-shuttle-buchen Shuttle Bus] departing from the Crown Plaza in Heidelberg. It is recommended to book online as early as possible.<br />
<br />
===Lodging===<br />
<br />
We recommend to stay in the historic Old Town. There is an easy direct bus ride every 10 minutes from there to DKFZ.<br />
<br />
We have reserved a number of rooms at the [http://www.hollaender-hof.de/en/ Holländer Hof] ([http://www.openstreetmap.org/?mlat=49.41317&mlon=8.70925#map=19/49.41317/8.70925 map]) hotel! Please use "CTK 2014" when you do a reservation there. Of course there are plenty of other hotels in that area, e.g. [http://www.hotel-goldener-hecht.de/ Goldener Hecht] or the oldest house in town, [http://www.ritter-heidelberg.de/ Hotel zum Ritter].<br />
<br />
===Meeting Room===<br />
<br />
The full address for the DKFZ is<br />
<br />
Deutsches Krebsforschungszentrum<br />
Im Neuenheimer Feld 280<br />
69120 Heidelberg<br />
<br />
We will meet in the main building on the second floor (European counting!). The cryptic room number is D0.02.032. Follow the description below to find it.<br />
<br />
When leaving bus 32, you will see something similar to<br />
<br />
[[File:DKFZ_Bus.jpg|600px]]<br />
<br />
The large building on the right is the DKFZ main bulding<br />
<br />
[[File:DKFZ_Hauptgebaeude_neu_600x402.jpg|600px]]<br />
<br />
Walk through the main entrance and follow the map<br />
<br />
[[File:DKFZ_Hackfest_map.jpg|600px]]<br />
<br />
Ask the nice guys at the reception or call us in case of any problems.<br />
<br />
===Weather===<br />
<br />
November is a rather wet month. [http://www.weather-and-climate.com/average-monthly-Rainfall-Temperature-Sunshine,heidelberg,Germany Average weather in Heidelberg]<br />
<br />
===Food===<br />
<br />
Plan on having breakfast at your hotel before the meeting. Please email the organizers if you have any allergies or dietary restrictions. <br />
<br />
Being a university and hospital campus, there are several lunch possibilities, including cafeterias, a students mensa, and two restaurants.<br />
<br />
<br />
===Optional Activities in the Area===</div>JChris.FillionRhttp://www.commontk.org/index.php?title=Help:Editing&diff=2242Help:Editing2014-11-05T09:48:04Z<p>JChris.FillionR: Created page with "See http://www.mediawiki.org/wiki/Help:Editing"</p>
<hr />
<div>See http://www.mediawiki.org/wiki/Help:Editing</div>JChris.FillionRhttp://www.commontk.org/index.php?title=CTK-Hackfest-Nov-2014&diff=2184CTK-Hackfest-Nov-20142014-10-29T02:52:14Z<p>JChris.FillionR: /* Infrastructure */</p>
<hr />
<div>== Event pictures ==<br />
<br />
<br />
=== Progress ===<br />
<br />
<br />
== Introduction ==<br />
<br />
'''Date:''' November 3-7, 2014<br />
<br />
'''Location:'''<br />
<br />
German Cancer Research Center, Heidelberg, Germany<br />
<br />
More details to follow.<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:''' Marco Nolden, Sascha Zelzer, Ivo Wolf<br />
<br />
'''Organizing Committee:''' Steve Pieper, Ivo Wolf, Stephen Aylward<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 />
<br />
* So far we have received confirmation for the following people (in no particular order). <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 />
|Marco Nolden<br />
|German Cancer Research Center, Heidelberg, Germany<br />
|-<br />
|Sascha Zelzer<br />
|German Cancer Research Center, Heidelberg, Germany<br />
|-<br />
|Andreas Fetzer<br />
|German Cancer Research Center, Heidelberg, Germany<br />
|-<br />
|Ivo Wolf<br />
|Mannheim University of Applied Sciences, Germany<br />
|-<br />
|Steve Pieper<br />
|Isomics, Inc., USA<br />
|-<br />
|Michael Onken<br />
|Open Connections GmbH / OFFIS<br />
|-<br />
|Jean-Christophe Fillion-Robin<br />
|Kitware, Inc., USA<br />
|-<br />
|Miklos Espak<br />
|University College London, UK<br />
|-<br />
|Nicolas Toussaint<br />
|University College London, UK<br />
|-<br />
|Gergely Zombori<br />
|University College London, UK<br />
|-<br />
|Christian Askeland<br />
|SINTEF Medical Technology, Trondheim, Norway<br />
|-<br />
|Stefan Baumann<br />
|Basel, Switzerland<br />
|-<br />
|Hans Meine<br />
|Fraunhofer MEVIS, Germany<br />
|-<br />
|}<br />
<br />
{|class="wikitable alternance" style="text-align:left; border:1px solid black;"<br />
|+ '''''Google Hangout Participants'''''<br />
|-<br />
! scope=col style="background:#cde6f8;"| Name<br />
! scope=col style="background:#cde6f8;"| Organization<br />
! scope=col style="background:#cde6f8;"| Availablity (Central European Time)<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 />
<br />
'''https://plus.google.com/hangouts/_/g3vi3lz7sycalj74ys2xpnpr3ya'''<br />
<br />
== Topics and Projects ==<br />
<br />
Consider reading [http://www.commontk.org/index.php/Contributing_to_CTK#Integrate_your_new_feature Contributing_to_CTK#Integrate_your_new_feature]<br />
<br />
Reminder: when integrating branches, remember to use --log --no-ff when merging.<br />
<br />
We plan to have concrete hacking topics as well as dedicated discussions in smaller groups. People are encouraged to show their interest in a particular subject by adding their name to the list below.<br />
<br />
=== Hacking Topics ===<br />
<br />
==== Infrastructure ====<br />
<br />
* Qt5 migration (Christian)<br />
* Packaging / install support (Marco, Jc)<br />
* Fix issue related to [https://github.com/commontk/Artichoke Artichoke] and improve documentation (Jc)<br />
* Dashboard<br />
** General Situation: Continuous/Nightly clients, coverage<br />
** Configurations: Qt4, Qt5, etc.<br />
** Travis CI (Sascha, Steve)<br />
<br />
==== DICOM ====<br />
<br />
* Multi-frame support (Steve, Christian, Michael)<br />
* Making CLIs read and write valid DICOM (Steve, Michael)<br />
* Anonymization (Andreas Fetzer, Marco, Steve, Stefan)<br />
** Client-side options: gdcmanon, dcmtk (?), dcmjs, DicomCleaner, CTP...<br />
<br />
==== XNAT ====<br />
<br />
* Improve and extend the XNAT API (Sascha Zelzer, Miklos Espak)<br />
** Data editing<br />
** Caching<br />
** Filtered data query based on data type and/or properties<br />
** Launch pipelines (remote) and follow progress<br />
<br />
==== CLI ====<br />
<br />
* Make it customisable what options to generate to the final command (Gergely Zombori)<br />
<br />
* Finalize integration of CTK CLI frontend into Slicer and investigate how to integrate the backend (Jc)<br />
<br />
==== ?? ====<br />
<br />
=== Planned Discussions ===<br />
* Possible extensions of CTK to the IGT domain<br />
** OpenIGT link<br />
** ...<br />
* QIICR Presentation<br />
==== ... ====<br />
<br />
== Agenda ==<br />
<br />
==== Monday ====<br />
<br />
Opening discussion<br />
* Review topics and projects<br />
* Plans for the week<br />
* Review [https://github.com/commontk/CTK/issues?state=open open issues on github].<br />
<br />
Evening:<br />
<br />
==== Tuesday ====<br />
<br />
During the day: hack, hack, hack...<br />
<br />
Evening:<br />
<br />
==== Wednesday ====<br />
<br />
During the day: hack, hack, hack...<br />
<br />
16:00 Famous Old City tour guided by Hans-Peter Meinzer<br />
<br />
==== Thursday ====<br />
<br />
During the day: hack, hack, hack...<br />
<br />
Evening: <br />
<br />
==== Friday ====<br />
<br />
During the day: hack, hack, hack...<br />
<br />
11:00: Closing discussion<br />
<br />
Afternoon: hack or travel<br />
<br />
== Travel & Hotel ==<br />
<br />
===Local contacts===<br />
<br />
* Marco Nolden (m.nolden@dkfz-heidelberg.de)<br />
* Sascha Zelzer (s.zelzer@dkfz-heidelberg.de)<br />
* Andreas Fetzer (a.fetzer@dkfz-heidelberg.de)<br />
<br />
===Transportation===<br />
<br />
It takes about an hour from Frankfurt Airport (FRA) to Heidelberg Main Station with one change in Mannheim. If you stay in the Old Town you can also look for connections going to "Heidelberg Altstadt". You can look it up at [http://www.bahn.de/p_en/view/index.shtml Deutsche Bahn], but they run quite frequently.<br />
<br />
'''Local:''' from the Old Town, "Universitätsplatz", runs bus number 32 via Main Station to DKFZ, exit at "Chirurgische Klinik", bus direction is "Neuenheim". After you exit, DKFZ is on your right.<br />
<br />
During the day the bus runs every 10 minutes in both directions, timetables are also available at [http://fahrplanauskunft.vrn.de/vrn/XSLT_TRIP_REQUEST2?language=en VRN].<br />
<br />
===Lodging===<br />
<br />
We recommend to stay in the historic Old Town. There is an easy direct bus ride every 10 minutes from there to DKFZ.<br />
<br />
We have reserved a number of rooms at the [http://www.hollaender-hof.de/en/ Holländer Hof] hotel! Please use "CTK 2014" when you do a reservation there. Of course there are plenty of other hotels in that area, e.g. [http://www.hotel-goldener-hecht.de/ Goldener Hecht] or the oldest house in town, [http://www.ritter-heidelberg.de/ Hotel zum Ritter].<br />
<br />
===Weather===<br />
<br />
November is a rather wet month. [http://www.weather-and-climate.com/average-monthly-Rainfall-Temperature-Sunshine,heidelberg,Germany Average weather in Heidelberg]<br />
<br />
===Food===<br />
<br />
Plan on having breakfast at your hotel before the meeting. Please email the organizers if you have any allergies or dietary restrictions. <br />
<br />
Being a university and hospital campus, there are several lunch possibilities, including cafeterias, a students mensa, and two restaurants.<br />
<br />
<br />
===Optional Activities in the Area===</div>JChris.FillionRhttp://www.commontk.org/index.php?title=CTK-Hackfest-Nov-2014&diff=2183CTK-Hackfest-Nov-20142014-10-29T02:46:11Z<p>JChris.FillionR: /* CLI */</p>
<hr />
<div>== Event pictures ==<br />
<br />
<br />
=== Progress ===<br />
<br />
<br />
== Introduction ==<br />
<br />
'''Date:''' November 3-7, 2014<br />
<br />
'''Location:'''<br />
<br />
German Cancer Research Center, Heidelberg, Germany<br />
<br />
More details to follow.<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:''' Marco Nolden, Sascha Zelzer, Ivo Wolf<br />
<br />
'''Organizing Committee:''' Steve Pieper, Ivo Wolf, Stephen Aylward<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 />
<br />
* So far we have received confirmation for the following people (in no particular order). <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 />
|Marco Nolden<br />
|German Cancer Research Center, Heidelberg, Germany<br />
|-<br />
|Sascha Zelzer<br />
|German Cancer Research Center, Heidelberg, Germany<br />
|-<br />
|Andreas Fetzer<br />
|German Cancer Research Center, Heidelberg, Germany<br />
|-<br />
|Ivo Wolf<br />
|Mannheim University of Applied Sciences, Germany<br />
|-<br />
|Steve Pieper<br />
|Isomics, Inc., USA<br />
|-<br />
|Michael Onken<br />
|Open Connections GmbH / OFFIS<br />
|-<br />
|Jean-Christophe Fillion-Robin<br />
|Kitware, Inc., USA<br />
|-<br />
|Miklos Espak<br />
|University College London, UK<br />
|-<br />
|Nicolas Toussaint<br />
|University College London, UK<br />
|-<br />
|Gergely Zombori<br />
|University College London, UK<br />
|-<br />
|Christian Askeland<br />
|SINTEF Medical Technology, Trondheim, Norway<br />
|-<br />
|Stefan Baumann<br />
|Basel, Switzerland<br />
|-<br />
|Hans Meine<br />
|Fraunhofer MEVIS, Germany<br />
|-<br />
|}<br />
<br />
{|class="wikitable alternance" style="text-align:left; border:1px solid black;"<br />
|+ '''''Google Hangout Participants'''''<br />
|-<br />
! scope=col style="background:#cde6f8;"| Name<br />
! scope=col style="background:#cde6f8;"| Organization<br />
! scope=col style="background:#cde6f8;"| Availablity (Central European Time)<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 />
<br />
'''https://plus.google.com/hangouts/_/g3vi3lz7sycalj74ys2xpnpr3ya'''<br />
<br />
== Topics and Projects ==<br />
<br />
Consider reading [http://www.commontk.org/index.php/Contributing_to_CTK#Integrate_your_new_feature Contributing_to_CTK#Integrate_your_new_feature]<br />
<br />
Reminder: when integrating branches, remember to use --log --no-ff when merging.<br />
<br />
We plan to have concrete hacking topics as well as dedicated discussions in smaller groups. People are encouraged to show their interest in a particular subject by adding their name to the list below.<br />
<br />
=== Hacking Topics ===<br />
<br />
==== Infrastructure ====<br />
<br />
* Qt5 migration (Christian)<br />
* Packaging / install support (Marco)<br />
* Dashboard<br />
** General Situation: Continuous/Nightly clients, coverage<br />
** Configurations: Qt4, Qt5, etc.<br />
** Travis CI (Sascha, Steve)<br />
<br />
==== DICOM ====<br />
<br />
* Multi-frame support (Steve, Christian, Michael)<br />
* Making CLIs read and write valid DICOM (Steve, Michael)<br />
* Anonymization (Andreas Fetzer, Marco, Steve, Stefan)<br />
** Client-side options: gdcmanon, dcmtk (?), dcmjs, DicomCleaner, CTP...<br />
<br />
==== XNAT ====<br />
<br />
* Improve and extend the XNAT API (Sascha Zelzer, Miklos Espak)<br />
** Data editing<br />
** Caching<br />
** Filtered data query based on data type and/or properties<br />
** Launch pipelines (remote) and follow progress<br />
<br />
==== CLI ====<br />
<br />
* Make it customisable what options to generate to the final command (Gergely Zombori)<br />
<br />
* Finalize integration of CTK CLI frontend into Slicer and investigate how to integrate the backend (Jc)<br />
<br />
==== ?? ====<br />
<br />
=== Planned Discussions ===<br />
* Possible extensions of CTK to the IGT domain<br />
** OpenIGT link<br />
** ...<br />
* QIICR Presentation<br />
==== ... ====<br />
<br />
== Agenda ==<br />
<br />
==== Monday ====<br />
<br />
Opening discussion<br />
* Review topics and projects<br />
* Plans for the week<br />
* Review [https://github.com/commontk/CTK/issues?state=open open issues on github].<br />
<br />
Evening:<br />
<br />
==== Tuesday ====<br />
<br />
During the day: hack, hack, hack...<br />
<br />
Evening:<br />
<br />
==== Wednesday ====<br />
<br />
During the day: hack, hack, hack...<br />
<br />
16:00 Famous Old City tour guided by Hans-Peter Meinzer<br />
<br />
==== Thursday ====<br />
<br />
During the day: hack, hack, hack...<br />
<br />
Evening: <br />
<br />
==== Friday ====<br />
<br />
During the day: hack, hack, hack...<br />
<br />
11:00: Closing discussion<br />
<br />
Afternoon: hack or travel<br />
<br />
== Travel & Hotel ==<br />
<br />
===Local contacts===<br />
<br />
* Marco Nolden (m.nolden@dkfz-heidelberg.de)<br />
* Sascha Zelzer (s.zelzer@dkfz-heidelberg.de)<br />
* Andreas Fetzer (a.fetzer@dkfz-heidelberg.de)<br />
<br />
===Transportation===<br />
<br />
It takes about an hour from Frankfurt Airport (FRA) to Heidelberg Main Station with one change in Mannheim. If you stay in the Old Town you can also look for connections going to "Heidelberg Altstadt". You can look it up at [http://www.bahn.de/p_en/view/index.shtml Deutsche Bahn], but they run quite frequently.<br />
<br />
'''Local:''' from the Old Town, "Universitätsplatz", runs bus number 32 via Main Station to DKFZ, exit at "Chirurgische Klinik", bus direction is "Neuenheim". After you exit, DKFZ is on your right.<br />
<br />
During the day the bus runs every 10 minutes in both directions, timetables are also available at [http://fahrplanauskunft.vrn.de/vrn/XSLT_TRIP_REQUEST2?language=en VRN].<br />
<br />
===Lodging===<br />
<br />
We recommend to stay in the historic Old Town. There is an easy direct bus ride every 10 minutes from there to DKFZ.<br />
<br />
We have reserved a number of rooms at the [http://www.hollaender-hof.de/en/ Holländer Hof] hotel! Please use "CTK 2014" when you do a reservation there. Of course there are plenty of other hotels in that area, e.g. [http://www.hotel-goldener-hecht.de/ Goldener Hecht] or the oldest house in town, [http://www.ritter-heidelberg.de/ Hotel zum Ritter].<br />
<br />
===Weather===<br />
<br />
November is a rather wet month. [http://www.weather-and-climate.com/average-monthly-Rainfall-Temperature-Sunshine,heidelberg,Germany Average weather in Heidelberg]<br />
<br />
===Food===<br />
<br />
Plan on having breakfast at your hotel before the meeting. Please email the organizers if you have any allergies or dietary restrictions. <br />
<br />
Being a university and hospital campus, there are several lunch possibilities, including cafeterias, a students mensa, and two restaurants.<br />
<br />
<br />
===Optional Activities in the Area===</div>JChris.FillionRhttp://www.commontk.org/index.php?title=CTK-Hackfest-Nov-2014&diff=2156CTK-Hackfest-Nov-20142014-09-23T02:47:12Z<p>JChris.FillionR: /* Attendees */</p>
<hr />
<div>== Event pictures ==<br />
<br />
<br />
=== Progress ===<br />
<br />
<br />
== Introduction ==<br />
<br />
'''Date:''' November 3-7, 2014<br />
<br />
'''Location:'''<br />
<br />
German Cancer Research Center, Heidelberg, Germany<br />
<br />
More details to follow.<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:''' Marco Nolden, Sascha Zelzer, Ivo Wolf<br />
<br />
'''Organizing Committee:''' Steve Pieper, Ivo Wolf, Stephen Aylward<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 />
<br />
* So far we have received confirmation for the following people (in no particular order). <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 />
|Marco Nolden<br />
|German Cancer Research Center, Heidelberg, Germany<br />
|-<br />
|Sascha Zelzer<br />
|German Cancer Research Center, Heidelberg, Germany<br />
|-<br />
|Andreas Fetzer<br />
|German Cancer Research Center, Heidelberg, Germany<br />
|-<br />
|Ivo Wolf<br />
|Mannheim University of Applied Sciences, Germany<br />
|-<br />
|Steve Pieper<br />
|Isomics, Inc., USA<br />
|-<br />
|Michael Onken<br />
|Open Connections GmbH / OFFIS<br />
|-<br />
|Jean-Christophe Fillion-Robin<br />
|Kitware, Inc., USA<br />
|-<br />
|}<br />
<br />
{|class="wikitable alternance" style="text-align:left; border:1px solid black;"<br />
|+ '''''Google Hangout Participants'''''<br />
|-<br />
! scope=col style="background:#cde6f8;"| Name<br />
! scope=col style="background:#cde6f8;"| Organization<br />
! scope=col style="background:#cde6f8;"| Availablity (Central European Time)<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 />
Consider reading [http://www.commontk.org/index.php/Contributing_to_CTK#Integrate_your_new_feature Contributing_to_CTK#Integrate_your_new_feature]<br />
<br />
<br />
Reminder: when integrating branches, remember to use --log --no-ff when merging.<br />
<br />
== Agenda ==<br />
<br />
==== Monday ====<br />
<br />
==== Tuesday ====<br />
<br />
==== Wednesday ====<br />
<br />
==== Thursday ====<br />
<br />
==== Friday ====<br />
<br />
<br />
== Travel & Hotel ==<br />
<br />
===Local contacts===<br />
<br />
* Marco Nolden (m.nolden@dkfz-heidelberg.de)<br />
* Sascha Zelzer (s.zelzer@dkfz-heidelberg.de)<br />
* Andreas Fetzer (a.fetzer@dkfz-heidelberg.de)<br />
<br />
===Transportation===<br />
<br />
<br />
<br />
===Lodging===<br />
<br />
<br />
===Weather===<br />
<br />
November is a rather wet month. [http://www.weather-and-climate.com/average-monthly-Rainfall-Temperature-Sunshine,heidelberg,Germany Average weather in Heidelberg]<br />
<br />
===Food===<br />
<br />
Plan on having breakfast at your hotel before the meeting. Please email the organizers if you have any allergies or dietary restrictions. <br />
<br />
Being a university and hospital campus, there are several lunch possibilities, including cafeterias, a students mensa, and two restaurants.<br />
<br />
<br />
===Optional Activities in the Area===</div>JChris.FillionRhttp://www.commontk.org/index.php?title=CTKBarCamp&diff=2154CTKBarCamp2014-09-10T04:28:57Z<p>JChris.FillionR: </p>
<hr />
<div>The CTKBarCamp community lives on Google plus: https://plus.google.com/communities/105094033241300780178<br />
<br />
The main idea behind this community is to share facts, idea and news related the medical imaging field and the open-source library CTK<br />
<br />
<br />
You will find below a template of message to send to confirm the interest of folks requesting to join. Make sure to change <FUTURE_MEMBER_NAME> and <YOUR_NAME> with the appropriate value.<br />
<br />
<pre><br />
Dear <FUTURE_MEMBER_NAME>,<br />
<br />
You recently requested to join the CTK BarCamp community on Google plus. Before approving your request, I am reaching to you to make sure this community aligns with your interests.<br />
<br />
The main idea behind this community is to share facts, idea and news related the medical imaging field and the open-source library CTK [1]<br />
<br />
Let me know if you are still interested and will gladly approve your request,<br />
<br />
Best,<br />
<YOUR_NAME> on behalf of the CTK community<br />
<br />
[1] http://www.commontk.org<br />
</pre></div>JChris.FillionRhttp://www.commontk.org/index.php?title=CTKBarCamp&diff=2153CTKBarCamp2014-09-09T17:12:13Z<p>JChris.FillionR: </p>
<hr />
<div>The CTKBarCamp community lives on Google plus: https://plus.google.com/communities/105094033241300780178<br />
<br />
The main idea behind this community is to share facts, idea and news related the medical imaging field and the open-source library CTK<br />
<br />
<br />
You will find below a template of message to send to confirm the interest of folks requesting to join. Make sure to change <FUTURE_MEMBER_NAME> and <YOUR_NAME> is the appropriate value.<br />
<br />
<pre><br />
Dear <FUTURE_MEMBER_NAME>,<br />
<br />
You recently requested to join the CTK BarCamp community on Google plus. Before approving your request, I am reaching to you to make sure this community aligns with your interests.<br />
<br />
The main idea behind this community is to share facts, idea and news related the medical imaging field and the open-source library CTK [1]<br />
<br />
Let me know if you are still interested and will gladly approve your request,<br />
<br />
Best,<br />
<YOUR_NAME> on behalf of the CTK community<br />
<br />
[1] http://www.commontk.org<br />
</pre></div>JChris.FillionRhttp://www.commontk.org/index.php?title=CTKBarCamp&diff=2152CTKBarCamp2014-09-09T17:11:43Z<p>JChris.FillionR: </p>
<hr />
<div>The CTKBarCamp community lives on Google plus: https://plus.google.com/communities/105094033241300780178<br />
<br />
The main idea behind this community is to share facts, idea and news related the medical imaging field and the open-source library CTK<br />
<br />
<br />
You will find below a template of message to send to confirm the interest of folks requesting to join.<br />
<br />
<pre><br />
Dear <FUTURE_MEMBER_NAME>,<br />
<br />
You recently requested to join the CTK BarCamp community on Google plus. Before approving your request, I am reaching to you to make sure this community aligns with your interests.<br />
<br />
The main idea behind this community is to share facts, idea and news related the medical imaging field and the open-source library CTK [1]<br />
<br />
Let me know if you are still interested and will gladly approve your request,<br />
<br />
Best,<br />
<YOUR_NAME> on behalf of the CTK community<br />
<br />
[1] http://www.commontk.org<br />
</pre></div>JChris.FillionRhttp://www.commontk.org/index.php?title=CTKBarCamp&diff=2151CTKBarCamp2014-09-09T17:11:35Z<p>JChris.FillionR: </p>
<hr />
<div><br />
The CTKBarCamp community lives on Google plus: https://plus.google.com/communities/105094033241300780178<br />
<br />
The main idea behind this community is to share facts, idea and news related the medical imaging field and the open-source library CTK<br />
<br />
<br />
You will find below a template of message to send to confirm the interest of folks requesting to join.<br />
<br />
<pre><br />
Dear <FUTURE_MEMBER_NAME>,<br />
<br />
You recently requested to join the CTK BarCamp community on Google plus. Before approving your request, I am reaching to you to make sure this community aligns with your interests.<br />
<br />
The main idea behind this community is to share facts, idea and news related the medical imaging field and the open-source library CTK [1]<br />
<br />
Let me know if you are still interested and will gladly approve your request,<br />
<br />
Best,<br />
<YOURNAME> on behalf of the CTK community<br />
<br />
[1] http://www.commontk.org<br />
</pre></div>JChris.FillionRhttp://www.commontk.org/index.php?title=Main_Page&diff=2150Main Page2014-09-09T16:57:04Z<p>JChris.FillionR: /* Important Links */</p>
<hr />
<div>__NOTOC__<br />
<br />
= '''CTK - The Common Toolkit''' =<br />
<br />
<div style="float:right; margin-left:12px;"><br />
<wikiscript type="text/javascript" src="http://www.ohloh.net/p/483293/widgets/project_basic_stats.js"></wikiscript><br />
<wikiscript type="text/javascript">document.write('<style>div.gadget { border-color: #bbb; }</style>')</wikiscript><br />
</div><br />
<br />
The goal of CTK is to support biomedical image computing. CTK code is licensed under [http://www.apache.org/licenses/LICENSE-2.0.html Apache 2.0]. This means that users of CTK are allowed to use the code for academic, commercial, or other purposes without paying license fees or being restricted in their ability to redistribute their code or keep it private. <br />
<br />
CTK works on topics that are not covered by existing toolkits that support the mutual interest and needs of the CTK community. The main scope of current CTK efforts includes the topics ''DICOM'', ''DICOM Application Hosting'', ''Widgets'', and ''Plugin Framework''.<br />
<br />
<br />
<center><br />
<div style="display:table-row;"><br />
<div style="display:table-cell; max-width:450px;"><br />
{{documentation/g-box-start|Documentation/Dicom_Overview|DICOM}}Provides high-level classes supporting query and retrieve operations from PACS and local databases. Includes Qt widgets to easily set-up a server connection and to send queries and view the results. [http://dicom.offis.de/dcmtk DCMTK] is used as the underlying toolkit.<br />
{{documentation/g-box-links|imggalurl=|apiurl=http://www.commontk.org/docs/html/group__Project__DICOM.html|issuelabel=DICOM}}. <br />
[[Documentation/Dicom_Overview | Read more...]]<br />
CTK is also the home of [http://dcmjs.org dcmjs].<br />
{{documentation/g-box-end}}<br />
</div><br />
<div style="display:table-cell; max-width:450px;"><br />
{{documentation/g-box-start|Documentation/DicomApplicationHosting|DICOM Application Hosting}}Aims at creating a C++ reference implementation of the [[media:DicomAppHostingSpecs.pdf | DICOM Part 19 Application Hosting specifications]]. It provides an infrastructure to create both hosts and hosted applications. The project is still in alpha status but may be useful for conformance testing and initial experimentation.<br />
{{documentation/g-box-links|imggalurl=|apiurl=http://www.commontk.org/docs/html/group__Project__DICOMAppHosting.html|issuelabel=DICOMApplicationHosting}}<br />
[[Documentation/DicomApplicationHosting | Read more...]]<br />
{{documentation/g-box-end}}<br />
</div><br />
</div><br />
<div style="display:table-row"><br />
<div style="display:table-cell; max-width:450px;"><br />
{{documentation/g-box-start|Documentation/Widgets|Widgets}}A collection of Qt Widgets for usage in biomedical imaging applications.<br />
{{documentation/g-box-links|imggalurl=Documentation/ImageGallery|apiurl=http://www.commontk.org/docs/html/group__Project__Widgets.html|issuelabel=Widgets}}<br />
[[Documentation/Widgets | Read more...]]<br />
{{documentation/g-box-end}}<br />
</div><br />
<div style="display:table-cell; max-width:450px;"><br />
{{documentation/g-box-start|Documentation/Plugin_Framework|Plugin Framework}}A dynamic component system for C++, modeled after the [http://www.osgi.org OSGi] specifications. It enables a development model where applications are (dynamically) composed of many different (reusable) components following a service oriented approach.<br />
{{documentation/g-box-links|imggalurl=|apiurl=http://www.commontk.org/docs/html/group__PluginFramework.html|issuelabel=PluginFramework}}<br />
[[Documentation/Plugin_Framework | Read more...]]<br />
{{documentation/g-box-end}}<br />
</div><br />
</div><br />
<div style="display:table-row"><br />
<div style="display:table-cell; max-width:450px;"><br />
{{documentation/g-box-start|Documentation/Command_Line_Interface|Command Line Interfaces}}A technology that allows the algorithms written as self-contained executables to be used in multiple end-user application environments without modifications.<br />
{{documentation/g-box-links|imggalurl=|apiurl=http://www.commontk.org/docs/html/group__CommandLineModules__Group.html|issuelabel=CmdLineModules}}<br />
[[Documentation/CLI_In_Context | Read more...]]<br />
{{documentation/g-box-end}}<br />
</div><br />
</div><br />
</center><br />
=== Important Links ===<br />
<br />
Although the CTK efforts are concentrated on the topics described above, there are a couple of other working areas covering topics like ''[[Interoperability | interoperability]]'' and ''software testing'' which might be of interest to the biomedical imaging community. Please see the links given below for more details.<br />
<br />
{| border="0" align="center" width="98%" valign="top" cellspacing="7" cellpadding="2"<br />
|-<br />
! width="33%"|<br />
! |<br />
! width="33%"|<br />
! |<br />
! width="33%"|<br />
|- <br />
|valign="top"|<br />
<span style="color: #555555; font-size: 18px; font-weight: bold;">About CTK</span><br />
----<br />
* [[News]]<br />
* [[Events]]<br />
* [[The Team]]<br />
* [[CTK-Roadmap | CTK Roadmap Document]]<br />
* [[Interoperability]]<br />
* [[Documentation | Technical Documentation]]<br />
* [[CTKBarCamp | CTKBarCamp]]<br />
<br />
|bgcolor="#CCCCCC"|<br />
|valign="top"|<br />
<br />
<span style="color: #555555; font-size: 18px; font-weight: bold;">CTK Users</span><br />
----<br />
* [[Getting Started]]<br />
* [[Build Instructions]]<br />
* [http://www.commontk.org/docs/html/classes.html API Documentation]<br />
* [[Tools:_Application_launcher|Application Launcher]]<br />
<br />
|bgcolor="#CCCCCC"|<br />
|valign="top"|<br />
<br />
<span style="color: #555555; font-size: 18px; font-weight: bold;">CTK Developers</span><br />
----<br />
* [http://github.com/commontk/CTK Source Code]<br />
* [http://my.cdash.org/index.php?project=CTK Dashboard]<br />
* [[Contributing to CTK]]<br />
* [http://github.com/commontk/CTK/issues/new Report a problem]<br />
* [[Project Ideas]]<br />
<br />
|}<br />
<br />
<br />
{|align="center"<br />
|-<br />
|-<br />
| <br />
{|cellspacing="16px"<br />
|-<br />
|CTK builds on some awesome technology: <br />
| [[File:200px-GitHub.png|x26px|link=http://github.com/commontk/CTK]]<br />
| [[File:Cmake-logo.png|x26px|link=Documentation/BuildSystem_Description]]<br />
| [[File:Qt-logo.png|x26px|link=http://qt.nokia.com]]<br />
| [[File:Python-powered-w-100x40.png|x26px|link=Documentation/Python_Scripting]]<br />
| [[File:Dcmtk-logo.png|x26px|link=http://www.dcmtk.org]]<br />
| [[File:ItkLogo med.png|x26px|link=http://www.itk.org]]<br />
| [[File:VTKlogo.png|x26px|link=http://www.vtk.org]]<br />
|}<br />
|}</div>JChris.FillionRhttp://www.commontk.org/index.php?title=CTKBarCamp&diff=2149CTKBarCamp2014-09-09T16:56:33Z<p>JChris.FillionR: Created page with " The CTKBarCamp community lives on Google plus: https://plus.google.com/communities/105094033241300780178 The main idea behind this community is to share facts, idea and news r..."</p>
<hr />
<div><br />
<br />
The CTKBarCamp community lives on Google plus: https://plus.google.com/communities/105094033241300780178<br />
<br />
The main idea behind this community is to share facts, idea and news related the medical imaging field and the open-source library CTK<br />
<br />
<br />
You will find below a template of message to send to confirm the interest of folks requesting to join.<br />
<br />
<pre><br />
Dear <NAME>,<br />
<br />
You recently requested to join the CTK BarCamp community on Google plus. Before approving your request, I am reaching to you to make sure this community aligns with your interests.<br />
<br />
The main idea behind this community is to share facts, idea and news related the medical imaging field and the open-source library CTK [1]<br />
<br />
Let me know if you are still interested and will gladly approve your request,<br />
<br />
Best,<br />
<YOURNAME> on behalf of the CTK community<br />
<br />
[1] http://www.commontk.org<br />
</pre></div>JChris.FillionRhttp://www.commontk.org/index.php?title=CTK-Hackfest-May-2014&diff=2131CTK-Hackfest-May-20142014-05-29T05:33:20Z<p>JChris.FillionR: /* Topics and Projects */</p>
<hr />
<div>== Event pictures ==<br />
<br />
Images from the hackfest: <br />
<gallery widths=300 px heights=200px perrow=3><br />
File:20140506_174248.jpg|<big>Hacking on Tuesday</big><br />
</gallery><br />
<br />
<br />
Social programs<br />
<gallery widths=150 px heights=100px perrow=4><br />
File:ctk2014arch.JPG|[http://en.wikipedia.org/wiki/Gateway_Arch Visiting the Gateway Arch!]<br />
</gallery><br />
<br />
<br />
=== Progress ===<br />
<br />
<gallery widths=400px heights=300px perrow=2><br />
<br />
</gallery><br />
<br />
== Introduction ==<br />
<br />
'''Date:''' May 5-9, 2014<br />
<br />
'''Location:'''<br />
<br />
ERL conference room, [http://www.wustl.edu/ Washington University Saint Louis], [http://erl.wustl.edu/aboutus/location.html Electronic Radiology Laboratory], 4525 Scott Avenue, 3rd floor, room 3347.<br />
<br />
[http://erl.wustl.edu/aboutus/location.html How to get here.]<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:''' Lawrence Tarbox and Dan Marcus<br />
<br />
'''Organizing Committee:''' Steve Pieper, Ivo Wolf, Stephen Aylward<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 />
<br />
* So far we have received confirmation for the following people (in no particular order). <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 />
|Steve Pieper<br />
|Isomics, Inc. Cambridge, USA. (Arrive by noon Monday, leave noon Friday)<br />
|-<br />
|Stephen Aylward<br />
|Kitware, Inc. North Carolina, USA.<br />
|-<br />
|Jean-Christophe Fillion-Robin<br />
|Kitware, Inc. North Carolina, USA.<br />
|-<br />
|-<br />
|Marco Nolden<br />
|German Cancer Research Center, Heidelberg, Germany<br />
|-<br />
|-<br />
|Sascha Zelzer<br />
|German Cancer Research Center, Heidelberg, Germany<br />
|-<br />
|-<br />
|Andreas Fetzer<br />
|German Cancer Research Center, Heidelberg, Germany<br />
|-<br />
|-<br />
|Ivo Wolf<br />
|Mannheim University of Applied Sciences, Germany<br />
|-<br />
|-<br />
|Florian Vichot<br />
|INRIA - Asclepios, Sophia-Antipolis, France<br />
|-<br />
|-<br />
|Alireza Mehrtash<br />
|Brigham & Women's Hospital, Boston, USA.<br />
|-<br />
|Nicolas Toussaint<br />
|UCL, London.<br />
|-<br />
|}<br />
<br />
{|class="wikitable alternance" style="text-align:left; border:1px solid black;"<br />
|+ '''''Google Hangout Participants'''''<br />
|-<br />
! scope=col style="background:#cde6f8;"| Name<br />
! scope=col style="background:#cde6f8;"| Organization<br />
! scope=col style="background:#cde6f8;"| Availablity (St. Louis time)<br />
|-<br />
|[http://en.wikipedia.org/wiki/Jeremy_Bentham#Death_and_the_Auto-Icon Jeremy Bentham's auto-icon]<br />
|University College, London<br />
| Anytime<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 />
Consider reading [http://www.commontk.org/index.php/Contributing_to_CTK#Integrate_your_new_feature Contributing_to_CTK#Integrate_your_new_feature]<br />
<br />
=== DICOM ===<br />
<br />
* Investigate web service approach (WG27): [[CTK DICOM Web Services]]<br />
* JavaScript DICOM Library<br />
** For client side anonymization (like CTP does with java applet or jnlp but without java)<br />
** emscripten option? DCMTK(dcmdata) Dan, Kevin, Steve, Jc {{done}} See http://dcmjs.org<br />
<br />
<br />
=== DCMTK ===<br />
* <del>Touch base with Michael for CMake build system patches</del>. All patches have been integrated upstream. {{done}}<br />
* Bump version of DCMTK in CTK<br />
<br />
<br />
=== ctkDICOM Issues ===<br />
* [https://github.com/QIICR/ProjectIssuesAndWiki/wiki/Slicer-Infrastructure-Projects Slicer Infrastructure Projects] (Alireza with Andreas and Marco)<br />
* Fix ctkDICOMApplicationTest1 (Steve, Jc)<br />
* ctkDICOM Query with XNAT DICOM Gateway (Andreas, Misha)<br />
<br />
<br />
=== XNAT ===<br />
* extend qRESTAPI used in ctkXNAT interface (used by ctkXNATTreeBrowser test interface and MITK custom interface)<br />
** Add subject, new folders, data<br />
** Demo of current state (Misha, Rick, Sascha)<br />
** Access assessments, reports and forms<br />
* Launch XNAT Pipelines via the REST API<br />
* Adding caching support to avoid redundant downloads<br />
* Asynchronous API (ctk level)<br />
<br />
<br />
=== Infrastructure ===<br />
* Switch to regular CDash dashboard (jc) {{done}}<br />
* finalize integration of Qt5<br />
** ctk (J2 and Sascha)<br />
** Experiment with PythonQt and Qt5:<br />
*** See https://github.com/Orochimarufan/PythonQt as discussed [http://sourceforge.net/p/pythonqt/discussion/631392/thread/5f20c176/?limit=50 on the PythonQt list]<br />
*** See https://github.com/commontk/PythonQt/tree/add-qt5-support<br />
* Leverage TravisCI (Sascha)<br />
* Touch base with Dominique Belhachemi regarding Debian packaging (Marco)<br />
<br />
<br />
=== Application Hosting (Ivo and Larry) ===<br />
<br />
* RESTful APIs Planning session (Ivo, Larry, Sascha, Andreas)<br />
* Add integration testing<br />
* Interoperability testing <br />
** with XIP host(?)<br />
** with commercial system(?)<br />
<br />
<br />
=== CLIs ===<br />
* DICOM Wrapper Proof of Concept test prototype hack experiment (Steve)<br />
** Became [http://github.com/pieper/SlicerChronicle]<br />
* MedInria Integration of CLIs<br />
<br />
<br />
Reminder: when integrating branches, remember to use --log --no-ff when merging.<br />
<br />
== Agenda ==<br />
<br />
==== Monday ====<br />
<br />
Opening discussion<br />
* Review topics and projects<br />
* Plans for the week<br />
* Review [https://github.com/commontk/CTK/issues?state=open open issues on github].<br />
<br />
Evening:<br />
<br />
==== Tuesday ====<br />
<br />
During the day: hack, hack, hack...<br />
<br />
[http://dcmjs.org dcmjs.org is born!]<br />
<br />
Evening:<br />
<br />
==== Wednesday ====<br />
<br />
10:00 Roadmap discussion<br />
<br />
During the day: hack, hack, hack...<br />
<br />
Evening:<br />
<br />
==== Thursday ====<br />
<br />
During the day: hack, hack, hack...<br />
<br />
Evening: <br />
<br />
==== Friday ====<br />
<br />
During the day: hack, hack, hack...<br />
<br />
10:00; Closing discussion<br />
<br />
Afternoon: hack or travel<br />
<br />
== Travel & Hotel ==<br />
<br />
===Local contacts===<br />
<br />
* Lawrence Tarbox (tarboxl@mir.wustl.edu)<br />
* Dan Marcus (dmarcus@wustl.edu)<br />
<br />
<br />
===Transportation===<br />
<br />
The facility is easy to get to from the airport via the Metrorail light rail system, with stations at the airport terminals and just around the corner from our building. We do not recommend renting a car due to parking headaches, but if one chooses to rent a car, there are parking garages available that are not terribly expensive (e.g. $6 - $8 per day, no in and out).<br />
<br />
<br />
===Lodging===<br />
<br />
Within walking distance is the Parkway Hotel (83% thumbs up and ranked #23 out of 123 hotels in St. Louis on tripadvisor.com). If we were to reserve a room block, the Parkway would be very convenient. The Parkway is affiliated with the medical campus, and one can use enclosed skyways to walk to our building (though the routing is a bit confusing). There are other good hotels in the area. Fred Prior likes the Chase Park Plaza, even though it is more expensive than the Parkway, and a several blocks longer walk. A nearby Drury Inn said that they would provide a shuttle if enough people stayed there. And of course there are several downtown hotels that are only a few Metrorail stops away.<br />
<br />
<br />
===Weather===<br />
<br />
[http://www.weather.com/weather/wxclimatology/monthly/graph/USMO0787 Average weather in St. Louis]<br />
<br />
===Food===<br />
<br />
Plan on having breakfast at your hotel before the meeting. Please email the organizers if you have any allergies or dietary restrictions. <br />
<br />
Being a university and hospital campus, there are several lunch possibilities, including several cafeterias and a daily show of high end food trucks just outside our door. And both the nearby Grove and Central West neighborhoods have several restaurant choices for any meal and at multiple budget levels. Naturally, we could also have pizza or Chinese food or sandwiches or whatever brought in if participants are interested, and don’t want to be bothered with going out.<br />
<br />
<br />
===Optional Activities in the Area===<br />
Fred did offer to host an outing to his country club (Meadowbrook), if there is interest. The pool would not be open until Memorial Day (May 26th), but golf, tennis, and of course excellent food would be available. While a country club outing would not be inexpensive, it would be less expensive than many other similar, high quality outings. Other outing options could include a Cardinals game, if they are in town, or any of the museums and gardens in the area.</div>JChris.FillionRhttp://www.commontk.org/index.php?title=CTK_DICOM_Web_Services&diff=2128CTK DICOM Web Services2014-05-12T15:59:05Z<p>JChris.FillionR: </p>
<hr />
<div>* Investigate web service approach (WG27)<br />
** Pros: Easily go accross firewall, leverage caching from commercial app<br />
** Approach:<br />
*** Improve DCMTK<br />
*** Kick the tires of the dcm4che implementation<br />
<br />
== Useful links ==<br />
<br />
Presentation: [http://medical.nema.org/dicom/CP/Conference-2013/Presentations/Post-Conf-Day-1/D1-0935F-Philbin-by-Tarbox-Image%20Access%20Everywhere.pptx "Image Access Everywhere, DICOM Web Services"] James F Philbin<br />
<br />
dcm4che: [http://sourceforge.net/projects/dcm4che/files/dcm4chee-arc4/4.1.0.Alpha3/ Version 4.1.0.Alpha3 (and above) ]<br />
<br />
== DICOM Supplements ==<br />
<br />
[http://medical.nema.org/Dicom/2011/11_18pu.pdf DICOM Part 18: Web Access to DICOM Persistent Objects (WADO)]<br />
<br />
[ftp://medical.nema.org/medical/dicom/final/sup161_ft.pdf Web Access to DICOM Persistent Objects by RESTful Services (WADO-RS); supplement 161]<br />
<br />
[ftp://medical.nema.org/medical/dicom/Final/sup163_ft3.pdf Store Over the Web by RESTful Services (STOW-RS); supplement 163]<br />
<br />
[ftp://medical.nema.org/medical/dicom/final/sup166_ft5.pdf Query based on ID for DICOM Objects by RESTful Services (QIDO-RS); supplement 166]<br />
<br />
[ftp://medical.nema.org/medical/dicom/supps/PC/sup170_pc.pdf Server Options RESTful Services; supplement 170 (pc)]<br />
<br />
Not directly related is [ftp://medical.nema.org/medical/dicom/final/sup157_ft2.pdf Supplement 157, "Multi-Frame Converted Legacy Images"] , which is a more convenient way of handling large stacks of planar images (i.e. convert multiple single-slice images into a single multi-dimensional image).</div>JChris.FillionRhttp://www.commontk.org/index.php?title=Commontk:Current_events&diff=2127Commontk:Current events2014-05-12T15:01:03Z<p>JChris.FillionR: </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 />
= Past events =<br />
== 2014 ==<br />
* [[CTK-Hackfest-May-2014 | 9th Hackfest; St. Louis, U.S.]] ''(2014, May 5th-9th)''<br />
<br />
== 2013==<br />
* [[CTK-Hackfest-Nov-2013 | 8th Hackfest; London, U.K.]] ''(2013, Nov 4th-8th)''<br />
* [[CTK-Hackfest-May-2013 | 7th Hackfest; Kingston, Canada]] ''(2013, May)''<br />
<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>JChris.FillionRhttp://www.commontk.org/index.php?title=CTK-Hackfest-May-2014&diff=2126CTK-Hackfest-May-20142014-05-09T20:08:56Z<p>JChris.FillionR: /* Attendees */</p>
<hr />
<div>== Event pictures ==<br />
<br />
Images from the hackfest: <br />
<gallery widths=300 px heights=200px perrow=3><br />
File:20140506_174248.jpg|<big>Hacking on Tuesday</big><br />
</gallery><br />
<br />
<br />
Social programs<br />
<gallery widths=150 px heights=100px perrow=4><br />
File:ctk2014arch.JPG|[http://en.wikipedia.org/wiki/Gateway_Arch Visiting the Gateway Arch!]<br />
</gallery><br />
<br />
<br />
=== Progress ===<br />
<br />
<gallery widths=400px heights=300px perrow=2><br />
<br />
</gallery><br />
<br />
== Introduction ==<br />
<br />
'''Date:''' May 5-9, 2014<br />
<br />
'''Location:'''<br />
<br />
ERL conference room, [http://www.wustl.edu/ Washington University Saint Louis], [http://erl.wustl.edu/aboutus/location.html Electronic Radiology Laboratory], 4525 Scott Avenue, 3rd floor, room 3347.<br />
<br />
[http://erl.wustl.edu/aboutus/location.html How to get here.]<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:''' Lawrence Tarbox and Dan Marcus<br />
<br />
'''Organizing Committee:''' Steve Pieper, Ivo Wolf, Stephen Aylward<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 />
<br />
* So far we have received confirmation for the following people (in no particular order). <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 />
|Steve Pieper<br />
|Isomics, Inc. Cambridge, USA. (Arrive by noon Monday, leave noon Friday)<br />
|-<br />
|Stephen Aylward<br />
|Kitware, Inc. North Carolina, USA.<br />
|-<br />
|Jean-Christophe Fillion-Robin<br />
|Kitware, Inc. North Carolina, USA.<br />
|-<br />
|-<br />
|Marco Nolden<br />
|German Cancer Research Center, Heidelberg, Germany<br />
|-<br />
|-<br />
|Sascha Zelzer<br />
|German Cancer Research Center, Heidelberg, Germany<br />
|-<br />
|-<br />
|Andreas Fetzer<br />
|German Cancer Research Center, Heidelberg, Germany<br />
|-<br />
|-<br />
|Ivo Wolf<br />
|Mannheim University of Applied Sciences, Germany<br />
|-<br />
|-<br />
|Florian Vichot<br />
|INRIA - Asclepios, Sophia-Antipolis, France<br />
|-<br />
|-<br />
|Alireza Mehrtash<br />
|Brigham & Women's Hospital, Boston, USA.<br />
|-<br />
|Nicolas Toussaint<br />
|UCL, London.<br />
|-<br />
|}<br />
<br />
{|class="wikitable alternance" style="text-align:left; border:1px solid black;"<br />
|+ '''''Google Hangout Participants'''''<br />
|-<br />
! scope=col style="background:#cde6f8;"| Name<br />
! scope=col style="background:#cde6f8;"| Organization<br />
! scope=col style="background:#cde6f8;"| Availablity (St. Louis time)<br />
|-<br />
|[http://en.wikipedia.org/wiki/Jeremy_Bentham#Death_and_the_Auto-Icon Jeremy Bentham's auto-icon]<br />
|University College, London<br />
| Anytime<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 />
Consider reading [http://www.commontk.org/index.php/Contributing_to_CTK#Integrate_your_new_feature Contributing_to_CTK#Integrate_your_new_feature]<br />
<br />
* DICOM<br />
** Investigate web service approach (WG27): [[CTK DICOM Web Services]]<br />
** JavaScript DICOM Library<br />
*** For client side anonymization (like CTP does with java applet or jnlp but without java)<br />
*** emscripten option? DCMTK(dcmdata) Dan, Kevin, Steve, Jc {{done}} See http://dcmjs.org<br />
<br />
* DCMTK<br />
** <del>Touch base with Michael for CMake build system patches</del>. All patches have been integrated upstream. {{done}}<br />
** Bump version of DCMTK in CTK<br />
<br />
* ctkDICOM Issues<br />
** [https://github.com/QIICR/ProjectIssuesAndWiki/wiki/Slicer-Infrastructure-Projects Slicer Infrastructure Projects] (Alireza with Andreas and Marco)<br />
** Fix ctkDICOMApplicationTest1 (Steve, Jc)<br />
** ctkDICOM Query with XNAT DICOM Gateway (Andreas, Misha)<br />
<br />
<br />
* XNAT<br />
** extend qRESTAPI used in ctkXNAT interface (used by ctkXNATTreeBrowser test interface and MITK custom interface)<br />
*** Add subject, new folders, data<br />
*** Demo of current state (Misha, Rick, Sascha)<br />
*** Access assessments, reports and forms<br />
** Launch XNAT Pipelines via the REST API<br />
** Adding caching support to avoid redundant downloads<br />
** Asynchronous API (ctk level)<br />
<br />
<br />
* Infrastructure: <br />
** Switch to regular CDash dashboard (jc) {{done}}<br />
** finalize integration of Qt5<br />
*** ctk (J2 and Sascha)<br />
*** Experiment with PythonQt and Qt5:<br />
**** See https://github.com/Orochimarufan/PythonQt as discussed [http://sourceforge.net/p/pythonqt/discussion/631392/thread/5f20c176/?limit=50 on the PythonQt list]<br />
**** See https://github.com/commontk/PythonQt/tree/add-qt5-support<br />
** Leverage TravisCI (Sascha)<br />
** Touch base with Dominique Belhachemi regarding Debian packaging (Marco)<br />
<br />
<br />
* Application Hosting (Ivo and Larry)<br />
** RESTful APIs Planning session (Ivo, Larry, Sascha, Andreas)<br />
** Add integration testing<br />
** Interoperability testing <br />
*** with XIP host(?)<br />
*** with commercial system(?)<br />
<br />
<br />
* CLIs<br />
** DICOM Wrapper Proof of Concept test prototype hack experiment (Steve)<br />
*** Became [http://github.com/pieper/SlicerChronicle]<br />
** MedInria Integration of CLIs<br />
<br />
<br />
Reminder: when integrating branches, remember to use --log --no-ff when merging.<br />
<br />
== Agenda ==<br />
<br />
==== Monday ====<br />
<br />
Opening discussion<br />
* Review topics and projects<br />
* Plans for the week<br />
* Review [https://github.com/commontk/CTK/issues?state=open open issues on github].<br />
<br />
Evening:<br />
<br />
==== Tuesday ====<br />
<br />
During the day: hack, hack, hack...<br />
<br />
[http://dcmjs.org dcmjs.org is born!]<br />
<br />
Evening:<br />
<br />
==== Wednesday ====<br />
<br />
10:00 Roadmap discussion<br />
<br />
During the day: hack, hack, hack...<br />
<br />
Evening:<br />
<br />
==== Thursday ====<br />
<br />
During the day: hack, hack, hack...<br />
<br />
Evening: <br />
<br />
==== Friday ====<br />
<br />
During the day: hack, hack, hack...<br />
<br />
10:00; Closing discussion<br />
<br />
Afternoon: hack or travel<br />
<br />
== Travel & Hotel ==<br />
<br />
===Local contacts===<br />
<br />
* Lawrence Tarbox (tarboxl@mir.wustl.edu)<br />
* Dan Marcus (dmarcus@wustl.edu)<br />
<br />
<br />
===Transportation===<br />
<br />
The facility is easy to get to from the airport via the Metrorail light rail system, with stations at the airport terminals and just around the corner from our building. We do not recommend renting a car due to parking headaches, but if one chooses to rent a car, there are parking garages available that are not terribly expensive (e.g. $6 - $8 per day, no in and out).<br />
<br />
<br />
===Lodging===<br />
<br />
Within walking distance is the Parkway Hotel (83% thumbs up and ranked #23 out of 123 hotels in St. Louis on tripadvisor.com). If we were to reserve a room block, the Parkway would be very convenient. The Parkway is affiliated with the medical campus, and one can use enclosed skyways to walk to our building (though the routing is a bit confusing). There are other good hotels in the area. Fred Prior likes the Chase Park Plaza, even though it is more expensive than the Parkway, and a several blocks longer walk. A nearby Drury Inn said that they would provide a shuttle if enough people stayed there. And of course there are several downtown hotels that are only a few Metrorail stops away.<br />
<br />
<br />
===Weather===<br />
<br />
[http://www.weather.com/weather/wxclimatology/monthly/graph/USMO0787 Average weather in St. Louis]<br />
<br />
===Food===<br />
<br />
Plan on having breakfast at your hotel before the meeting. Please email the organizers if you have any allergies or dietary restrictions. <br />
<br />
Being a university and hospital campus, there are several lunch possibilities, including several cafeterias and a daily show of high end food trucks just outside our door. And both the nearby Grove and Central West neighborhoods have several restaurant choices for any meal and at multiple budget levels. Naturally, we could also have pizza or Chinese food or sandwiches or whatever brought in if participants are interested, and don’t want to be bothered with going out.<br />
<br />
<br />
===Optional Activities in the Area===<br />
Fred did offer to host an outing to his country club (Meadowbrook), if there is interest. The pool would not be open until Memorial Day (May 26th), but golf, tennis, and of course excellent food would be available. While a country club outing would not be inexpensive, it would be less expensive than many other similar, high quality outings. Other outing options could include a Cardinals game, if they are in town, or any of the museums and gardens in the area.</div>JChris.FillionRhttp://www.commontk.org/index.php?title=CTK-Hackfest-May-2014&diff=2125CTK-Hackfest-May-20142014-05-09T18:43:44Z<p>JChris.FillionR: /* Topics and Projects */</p>
<hr />
<div>== Event pictures ==<br />
<br />
Images from the hackfest: <br />
<gallery widths=300 px heights=200px perrow=3><br />
File:20140506_174248.jpg|<big>Hacking on Tuesday</big><br />
</gallery><br />
<br />
<br />
Social programs<br />
<gallery widths=150 px heights=100px perrow=4><br />
File:ctk2014arch.JPG|[http://en.wikipedia.org/wiki/Gateway_Arch Visiting the Gateway Arch!]<br />
</gallery><br />
<br />
<br />
=== Progress ===<br />
<br />
<gallery widths=400px heights=300px perrow=2><br />
<br />
</gallery><br />
<br />
== Introduction ==<br />
<br />
'''Date:''' May 5-9, 2014<br />
<br />
'''Location:'''<br />
<br />
ERL conference room, [http://www.wustl.edu/ Washington University Saint Louis], [http://erl.wustl.edu/aboutus/location.html Electronic Radiology Laboratory], 4525 Scott Avenue, 3rd floor, room 3347.<br />
<br />
[http://erl.wustl.edu/aboutus/location.html How to get here.]<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:''' Lawrence Tarbox and Dan Marcus<br />
<br />
'''Organizing Committee:''' Steve Pieper, Ivo Wolf, Stephen Aylward<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 />
<br />
* So far we have received confirmation for the following people (in no particular order). <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 />
|Steve Pieper<br />
|Isomics, Inc. Cambridge, USA. (Arrive by noon Monday, leave noon Friday)<br />
|-<br />
|Stephen Aylward<br />
|Kitware, Inc. North Carolina, USA.<br />
|-<br />
|Jean-Christophe Fillion-Robin<br />
|Kitware, Inc. North Carolina, USA.<br />
|-<br />
|-<br />
|Marco Nolden<br />
|German Cancer Research Center, Heidelberg, Germany<br />
|-<br />
|-<br />
|Sascha Zelzer<br />
|German Cancer Research Center, Heidelberg, Germany<br />
|-<br />
|-<br />
|Andreas Fetzer<br />
|German Cancer Research Center, Heidelberg, Germany<br />
|-<br />
|-<br />
|Ivo Wolf<br />
|Mannheim University of Applied Sciences, Germany<br />
|-<br />
|-<br />
|Florian Vichot<br />
|INRIA - Asclepios, Sophia-Antipolis, France<br />
|-<br />
|-<br />
|Alireza Mehrtash<br />
|Brigham & Women's Hospital, Boston, USA.<br />
|-<br />
|}<br />
<br />
{|class="wikitable alternance" style="text-align:left; border:1px solid black;"<br />
|+ '''''Google Hangout Participants'''''<br />
|-<br />
! scope=col style="background:#cde6f8;"| Name<br />
! scope=col style="background:#cde6f8;"| Organization<br />
! scope=col style="background:#cde6f8;"| Availablity (St. Louis time)<br />
|-<br />
|[http://en.wikipedia.org/wiki/Jeremy_Bentham#Death_and_the_Auto-Icon Jeremy Bentham's auto-icon]<br />
|University College, London<br />
| Anytime<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 />
Consider reading [http://www.commontk.org/index.php/Contributing_to_CTK#Integrate_your_new_feature Contributing_to_CTK#Integrate_your_new_feature]<br />
<br />
* DICOM<br />
** Investigate web service approach (WG27): [[CTK DICOM Web Services]]<br />
** JavaScript DICOM Library<br />
*** For client side anonymization (like CTP does with java applet or jnlp but without java)<br />
*** emscripten option? DCMTK(dcmdata) Dan, Kevin, Steve, Jc {{done}} See http://dcmjs.org<br />
<br />
* DCMTK<br />
** <del>Touch base with Michael for CMake build system patches</del>. All patches have been integrated upstream. {{done}}<br />
** Bump version of DCMTK in CTK<br />
<br />
* ctkDICOM Issues<br />
** [https://github.com/QIICR/ProjectIssuesAndWiki/wiki/Slicer-Infrastructure-Projects Slicer Infrastructure Projects] (Alireza with Andreas and Marco)<br />
** Fix ctkDICOMApplicationTest1 (Steve, Jc)<br />
** ctkDICOM Query with XNAT DICOM Gateway (Andreas, Misha)<br />
<br />
<br />
* XNAT<br />
** extend qRESTAPI used in ctkXNAT interface (used by ctkXNATTreeBrowser test interface and MITK custom interface)<br />
*** Add subject, new folders, data<br />
*** Demo of current state (Misha, Rick, Sascha)<br />
*** Access assessments, reports and forms<br />
** Launch XNAT Pipelines via the REST API<br />
** Adding caching support to avoid redundant downloads<br />
** Asynchronous API (ctk level)<br />
<br />
<br />
* Infrastructure: <br />
** Switch to regular CDash dashboard (jc) {{done}}<br />
** finalize integration of Qt5<br />
*** ctk (J2 and Sascha)<br />
*** Experiment with PythonQt and Qt5:<br />
**** See https://github.com/Orochimarufan/PythonQt as discussed [http://sourceforge.net/p/pythonqt/discussion/631392/thread/5f20c176/?limit=50 on the PythonQt list]<br />
**** See https://github.com/commontk/PythonQt/tree/add-qt5-support<br />
** Leverage TravisCI (Sascha)<br />
** Touch base with Dominique Belhachemi regarding Debian packaging (Marco)<br />
<br />
<br />
* Application Hosting (Ivo and Larry)<br />
** RESTful APIs Planning session (Ivo, Larry, Sascha, Andreas)<br />
** Add integration testing<br />
** Interoperability testing <br />
*** with XIP host(?)<br />
*** with commercial system(?)<br />
<br />
<br />
* CLIs<br />
** DICOM Wrapper Proof of Concept test prototype hack experiment (Steve)<br />
*** Became [http://github.com/pieper/SlicerChronicle]<br />
** MedInria Integration of CLIs<br />
<br />
<br />
Reminder: when integrating branches, remember to use --log --no-ff when merging.<br />
<br />
== Agenda ==<br />
<br />
==== Monday ====<br />
<br />
Opening discussion<br />
* Review topics and projects<br />
* Plans for the week<br />
* Review [https://github.com/commontk/CTK/issues?state=open open issues on github].<br />
<br />
Evening:<br />
<br />
==== Tuesday ====<br />
<br />
During the day: hack, hack, hack...<br />
<br />
[http://dcmjs.org dcmjs.org is born!]<br />
<br />
Evening:<br />
<br />
==== Wednesday ====<br />
<br />
10:00 Roadmap discussion<br />
<br />
During the day: hack, hack, hack...<br />
<br />
Evening:<br />
<br />
==== Thursday ====<br />
<br />
During the day: hack, hack, hack...<br />
<br />
Evening: <br />
<br />
==== Friday ====<br />
<br />
During the day: hack, hack, hack...<br />
<br />
10:00; Closing discussion<br />
<br />
Afternoon: hack or travel<br />
<br />
== Travel & Hotel ==<br />
<br />
===Local contacts===<br />
<br />
* Lawrence Tarbox (tarboxl@mir.wustl.edu)<br />
* Dan Marcus (dmarcus@wustl.edu)<br />
<br />
<br />
===Transportation===<br />
<br />
The facility is easy to get to from the airport via the Metrorail light rail system, with stations at the airport terminals and just around the corner from our building. We do not recommend renting a car due to parking headaches, but if one chooses to rent a car, there are parking garages available that are not terribly expensive (e.g. $6 - $8 per day, no in and out).<br />
<br />
<br />
===Lodging===<br />
<br />
Within walking distance is the Parkway Hotel (83% thumbs up and ranked #23 out of 123 hotels in St. Louis on tripadvisor.com). If we were to reserve a room block, the Parkway would be very convenient. The Parkway is affiliated with the medical campus, and one can use enclosed skyways to walk to our building (though the routing is a bit confusing). There are other good hotels in the area. Fred Prior likes the Chase Park Plaza, even though it is more expensive than the Parkway, and a several blocks longer walk. A nearby Drury Inn said that they would provide a shuttle if enough people stayed there. And of course there are several downtown hotels that are only a few Metrorail stops away.<br />
<br />
<br />
===Weather===<br />
<br />
[http://www.weather.com/weather/wxclimatology/monthly/graph/USMO0787 Average weather in St. Louis]<br />
<br />
===Food===<br />
<br />
Plan on having breakfast at your hotel before the meeting. Please email the organizers if you have any allergies or dietary restrictions. <br />
<br />
Being a university and hospital campus, there are several lunch possibilities, including several cafeterias and a daily show of high end food trucks just outside our door. And both the nearby Grove and Central West neighborhoods have several restaurant choices for any meal and at multiple budget levels. Naturally, we could also have pizza or Chinese food or sandwiches or whatever brought in if participants are interested, and don’t want to be bothered with going out.<br />
<br />
<br />
===Optional Activities in the Area===<br />
Fred did offer to host an outing to his country club (Meadowbrook), if there is interest. The pool would not be open until Memorial Day (May 26th), but golf, tennis, and of course excellent food would be available. While a country club outing would not be inexpensive, it would be less expensive than many other similar, high quality outings. Other outing options could include a Cardinals game, if they are in town, or any of the museums and gardens in the area.</div>JChris.FillionR