From Commontk
Jump to navigationJump to search
Home < CTK-Hackfest-May-2013

Event pictures

Images from the hackfest

Social programs


Date: May 20-24, 2013

Location: Kingston, Ontario, Canada. In a classroom at Queens University.

Goal: A follow on to the wildly successful previous hackfests!

Requirements: Attendees must be willing to spend their time during the event writing ctk code that contributes to the main 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 :)

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.

Site Hosts: Gabor Fichtinger, Csaba Pinter, Andras Lasso

Organizing Committee: Ivo Wolf, Stephen Aylward, Steve Pieper

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.


  • So far we have received confirmation for the following people (in no particular order).

Please fill in your intentions in terms of common accommodation.

Name Organization
Steve Pieper Isomics, Inc., Cambridge, MA, USA
Ivo Wolf Hochschule Mannheim
Marco Nolden German Cancer Research Center (DKFZ)
Sascha Zelzer German Cancer Research Center (DKFZ)
Andreas Fetzer German Cancer Research Center (DKFZ)
Florian Vichot INRIA
Lawrence Tarbox Washington University, St. Louis
Andras Lasso Queen's University, Kingston, ON
Csaba Pinter Queen's University, Kingston, ON
Alberto Biancardi The University of Sheffield, UK
Xenios Papademetris Yale University US
Google Hangout Participants
Name Organization
Jean-Christophe Fillion-Robin Kitware Inc.

Note 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.


Developers should bring a laptop with the current CTK source code downloaded and built.

Use the CTK developers mailing list to discuss build issues and topics for ongoing work.

Phone conferences have been scheduled in the weeks leading to the event:

  • To be announced

Topics and Projects

DICOM Application Hosting

  • Results:
    • Merged DAH branch into master
    • Slicer as Hosted Application (Ivo, Lawrence, Steve) [1]
      • launch hosted app, send data
      • loaded into slicer for manipulation
      • changed data detected automatically
      • TODO: data sent back to host
      • TODO: act on bringToFront events (includes resizing)
    • pushed corresponding CTK-based MITK hosted/host application
    • Started to develop integration tests
  • Plans
    • finish data return to host by end of next hackfest ;)
    • Interoperability testing of CTK with other Application Hosting code
    • Lawrence to test CTK code against the XIP hosting implementation
    • Testing framework to be continued

DICOM Database and Networking

  • Review implementation issues when using CTK DICOM
    • DICOM issues in github [2]
    • Incorrect import when DICOMDIR is present [3]. Should we skip DICOMDIR when it is not picked explicitly? Yes check.png
    • Incorrect/slow database behavior when multiple processes access it simultaneously [4] (interference between ctkDICOMIndexer and ctkDICOMModel)
  • Discuss DICOM-RT for CTK
  • Discuss DICOM Export options
    • CLI outputs converted into real DICOM
    • RT and other non-imaging types
      • GUI Issues
      • Lower-level dcmrt issues, possible use of DKFZ toolkit
      • Use of various tools (VTK, ITK, Plastimatch), validation
  • Results
    • New DB table of display overrides
    • New table view of patient/study/series - ctkDICOMTableView
    • New Layout control for ctkDICOMBrowser to replace tree and ctkDICOMModel
    • New signals to match use cases
    • New signals for ctkDICOMDatabase during imports and new dialog in app widget to show summary results
  • Plans
    • issue #336 - create replacement for ctkDICOMAppWidget and deprecate old (Marco)
    • issue #337 - implement signals from table view (Marco and Andras with Steve)
    • issue #331 - to be completed soon by Andreas
    • issue #332 - ctkDICOMTableManager to control layouts (also Andreas)
    • issue #276 - fix up RT use cases (Andras and Csaba)
    • Review naming View vs. Widget
    • Look into re-using http://www.commontk.org/index.php/File:CtkSearchBox3.png
    • Marco is making ctkDICOM2


  • Results
    • Miklos and Julien developed plan for resolving spin box features: there will be a ctkDoubleSpinBox with new precision features migrated from current ctkSpinBox and Miklos's changes to expose more of the QSpinBox features.
    • Jc was Qt5+VTK6 issues and plans to backport them to VTK5.10

Tests Framework

  • Qt testing framework
    • Checkpoint verification
    • Possibly help debugging when a test is failing and fixing a test
  • Check log for warnings and errors
  • Integrate with Error Log widget and the app launcher (but won't work on mac)
  • Suggest as something for student at CREATIS
    • Rotating log files
    • capturing screen during test to help diagnose failures
    • capturing all output to log files and flushing
    • report crash utility for user to send all files to file issue
    • auto-detect crashes using some kind of token
    • track the exact version of libraries and stack traces (platform specific) Look into google crashpad.
    • Review squish video: http://www.froglogic.com/squish/gui-testing/squish-qt-webinar-qanda.php
  • Results & Plans
    • CREATIS group attended hangout and plans to contribute to QtTesting

Build Systems & Software process

  • DCMTK build issues [6] [7] Yes check.png Fixed by 74b4b07b9
  • A drop-in CMake module allowing to easily setup Superbuild project.
    • Consolidate CTK, Slicer, .. approach
  • Collection of "External_XXX.cmake" file that could easily be re-used ? (See https://github.com/BRAINSia/NAMICExternalProjects)
  • Finalize work related to qRestAPI project (pending since Bologna hackfest) Yes check.png History cleaned and pushed: https://github.com/commontk/qRestAPI
  • Results
    • Fixed and tested the DCMTK build issues
    • Windows build issues identified for PythonQt on windows vs 2010/2012 (include order of std vector header)
    • Still some more issues, likely also to do with include order

Command Line Modules

  • Results
    • Xenios and Sascha performed tests and discussed many options
      • Explored C++ tools for generating the CLI XML on the fly
      • Lots of ideas and Xenios has some TODO items and he will push to a fork for review.


  • Results
    • Sascha and Florian built on Miklos's work from last hackfest
    • Many C++ level accessors are now available in a rough application
    • Can login to XNAT, list projects, lists subjects in project
    • Florian and Sascha contacted Tim Olsen and Dan Marcus to work through some questions on the REST API of XNAT
  • Plans
    • Work will continue and people will stay in touch.
    • Now there is a CTK library outside the plugin framework
    • New widgets and models reflecting status
    • The XNAT group expressed enthusiasm to work with CTK
    • INRIA is researching and evaluating XNAT to see if it will fill needs
    • Maxime is in contact with the CVI (cardiovascular) group associated with the XNAT developers (http://cvrgrid.org/featured/xnat-cvi)
    • DKFZ is likely to deploy XNAT instances unless there are unforeseen roadblocks
      • Want to take advantage of distributed project sharing
      • Pushing from PACS into common space
    • BWH also has internal XNAT implementations with several years worth of prostate biopsy databases.



Opening discussion

  • Review topics and projects
  • Plans for the week

Evening: BBQ at the Fichtinger residence


During the day: hack, hack, hack...

Evening: Dinner and beers at the Kingston Brewery


During the day: hack, hack, hack... 10:30 Hangout to review status

Evening: Kingston Haunted Walks


During the day: hack, hack, hack...

Evening: BBQ by the gazebo on the waterfront


During the day: hack, hack, hack...

Late morning; Closing discussion


Afternoon: hack or travel

Gallery of Results

Images from the hackfest

Travel & Hotel

Local contact

Need any help in organizing your visit, contact Andras Lasso (lasso@cs.queensu.ca). If you have any troubles during your visit, call TBD.


  • Option A: Fly into Kingston via Toronto
  • Option B: Fly into Toronto, take a bus to Kingston
    • Recommended: Coach Canada direct bus from Toronto Airport to Kingston, leaves twice a day: 2.30pm and 7pm. You can buy the ticket from a Kiosk at the airport or buy online
    • Megabus from Toronto downtown: get to the Toronto Coach Terminal, take a bus to Kingston, leaves in about every hour. Online reservation is strongly recommended, as early as possible, because the prices are continuously increasing (starts from $1 and increased to about $40).

Transportation on Site

Take a cab at the Kingston airport or bus terminal to your hotel. After that everything is in walking distance.


Be aware there is a Queen's event during the week of the hackfest so try to book your hotel early

Meeting Location

Queen's University, Kinesiology building, room #107.


Can be still chilly in May, average temperature is about 15°C.


Plan on having breakfast at your hotel before the meeting. A variety of lunch options will be available, as will access to snacks and beverages during the day. Please email the organizers if you have any allergies or dietary restrictions.

Optional Activities in the Area