CTK-Hackfest-May-2013: Difference between revisions
(23 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
== Event pictures == | == Event pictures == | ||
Images from the hackfest | Images from the hackfest | ||
<gallery widths=300 px heights=200px perrow=3> | <gallery widths=300 px heights=200px perrow=3> | ||
File:2013-05-20_16.16.28.jpg|<big>Discussions on Monday</big> | File:2013-05-20_16.16.28.jpg|<big>Discussions on Monday</big> | ||
File:2013-05-21_11.33.58.jpg|<big>Planning on Tuesday</big> | File:2013-05-21_11.33.58.jpg|<big>Planning on Tuesday</big> | ||
</gallery> | |||
Social programs | |||
<gallery widths=150 px heights=100px perrow=4> | |||
File:Hackfest2013_AtGabors1.jpg|Dinner at Gabor's house | |||
File:Hackfest2013_AtGabors2.jpg | |||
File:Hackfest2013_bbq1.jpg|BBQ with the PerkLab | |||
File:Hackfest2013_bbq2.jpg | |||
File:Hackfest2013_bbq3.jpg | |||
File:Hackfest2013_PerkLabAndCtkGroup1.jpg|Group picture with the PerkLab | |||
File:Hackfest2013_PerkLabAndCtkGroup2.jpg | |||
File:Poutine.jpg|[http://en.wikipedia.org/wiki/Poutine Poutine for lunch!] | |||
</gallery> | </gallery> | ||
Line 110: | Line 123: | ||
==== DICOM Application Hosting ==== | ==== DICOM Application Hosting ==== | ||
* Interoperability testing of CTK with other Application Hosting code | * Results: | ||
** Merged DAH branch into master | |||
** Slicer as Hosted Application (Ivo, Lawrence, Steve) [https://github.com/pieper/SlicerDICOMHosting] | |||
*** 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 ==== | ==== DICOM Database and Networking ==== | ||
Line 116: | Line 143: | ||
* Review implementation issues when using CTK DICOM | * Review implementation issues when using CTK DICOM | ||
** DICOM issues in github [https://github.com/commontk/CTK/issues?labels=DICOM&state=open] | ** DICOM issues in github [https://github.com/commontk/CTK/issues?labels=DICOM&state=open] | ||
** | ** <del> Incorrect import when DICOMDIR is present [http://na-mic.org/Bug/view.php?id=3111]. Should we skip DICOMDIR when it is not picked explicitly? </del> {{done}} | ||
** Incorrect/slow database behavior when multiple processes access it simultaneously [http://na-mic.org/Bug/view.php?id=3106] (interference between ctkDICOMIndexer and ctkDICOMModel) | ** Incorrect/slow database behavior when multiple processes access it simultaneously [http://na-mic.org/Bug/view.php?id=3106] (interference between ctkDICOMIndexer and ctkDICOMModel) | ||
* Discuss DICOM-RT for CTK | * Discuss DICOM-RT for CTK | ||
Line 134: | Line 161: | ||
** New Layout control for ctkDICOMBrowser to replace tree and ctkDICOMModel | ** New Layout control for ctkDICOMBrowser to replace tree and ctkDICOMModel | ||
** New signals to match use cases | ** New signals to match use cases | ||
** New signals for ctkDICOMDatabase during imports and new dialog in app widget to show summary results | |||
* Plans | * Plans | ||
** issue #336 - create replacement for ctkDICOMAppWidget and deprecate old (Marco) | ** issue #336 - create replacement for ctkDICOMAppWidget and deprecate old (Marco) | ||
Line 140: | Line 168: | ||
** issue #332 - ctkDICOMTableManager to control layouts (also Andreas) | ** issue #332 - ctkDICOMTableManager to control layouts (also Andreas) | ||
** issue #276 - fix up RT use cases (Andras and Csaba) | ** 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 | |||
==== Widgets ==== | ==== Widgets ==== | ||
Line 147: | Line 178: | ||
* Qt5 Compatibility? | * Qt5 Compatibility? | ||
** <del>Working on VTK / Qt5 compatibility</del> - {{done}} VTK6 topic : http://review.source.kitware.com/#/t/2803 | ** <del>Working on VTK / Qt5 compatibility</del> - {{done}} VTK6 topic : http://review.source.kitware.com/#/t/2803 | ||
* 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 ==== | ==== Tests Framework ==== | ||
Line 162: | Line 197: | ||
** track the exact version of libraries and stack traces (platform specific) Look into google crashpad. | ** 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 | ** 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 ==== | ==== Build Systems & Software process ==== | ||
Line 169: | Line 207: | ||
* Collection of "External_XXX.cmake" file that could easily be re-used ? (See https://github.com/BRAINSia/NAMICExternalProjects) | * Collection of "External_XXX.cmake" file that could easily be re-used ? (See https://github.com/BRAINSia/NAMICExternalProjects) | ||
* <del>Finalize work related to qRestAPI project (pending since Bologna hackfest)</del> {{done}} History cleaned and pushed: https://github.com/commontk/qRestAPI | * <del>Finalize work related to qRestAPI project (pending since Bologna hackfest)</del> {{done}} 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 ==== | ==== Command Line Modules ==== | ||
Line 176: | Line 218: | ||
** keep the CLI simple. | ** keep the CLI simple. | ||
** xinclude to allow people to centralize their grant support and other boilerplate info | ** xinclude to allow people to centralize their grant support and other boilerplate info | ||
* 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. | |||
==== qRestAPI and XNAT API ==== | |||
* 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. | |||
== Agenda == | == Agenda == | ||
Line 220: | Line 286: | ||
== Gallery of Results == | == Gallery of Results == | ||
Images from the hackfest | |||
<gallery widths=300 px heights=200px perrow=3> | |||
File:Screen Shot 2013-05-24 at 10.23.16 AM.png |<big>Slicer running as DICOM Hosted Application using CTK infrastructure</big> | |||
Image:MITKasHostedApp-and-asHost-withCLIasHostedApp.jpg|For comparison image from Bologna Hackfest: MITK running as DICOM Application Hosting hosted application (hosted by ctkDICOMHost) as well as hosting system with CTK-CLI as hosted application | |||
File:Screen Shot 2013-05-24 at 11.27.52 AM.png |<big>Summary dialog after DICOM import shown in use in slicer. Uses new signals from ctkDICOMDatabase and the signal tracking in ctkDICOMAppWidget</big> | |||
File:TableView_Horizontal_Sorting.png |<big>New DICOMWidgets with horizontal orientation. The ctkDICOMTableView uses the QSqlQueryModel to display the database content</big> | |||
File:TableView_Vertical_Sorting.png |<big>New DICOMWidgets with vertical orientation.</big> | |||
</gallery> | |||
== Travel & Hotel == | == Travel & Hotel == |
Latest revision as of 18:28, 3 June 2013
Home < CTK-Hackfest-May-2013Event pictures
Images from the hackfest
Social programs
Introduction
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.
Attendees
- 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 |
Name | Organization |
---|---|
Jean-Christophe Fillion-Robin | Kitware Inc. |
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.
Preparation
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
- 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
- GUI
- 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
Widgets
- Spin box development [5]
ctkDICOMModel and display of real-world patient data (RT special cases for example)-- Compare widget plans with current set.
- Qt5 Compatibility?
Working on VTK / Qt5 compatibility- VTK6 topic : http://review.source.kitware.com/#/t/2803
- 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]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)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
- Using CLI XML to build stand-alone widget [8][9]
- Contribute Slicer fixes to CLI infrastructure. See https://github.com/jcfr/CTK/tree/279-tweak-cmdlinemodule-library-for-slicer-integration
- Hierarchy nodes preserved on CLI execution
- keep the CLI simple.
- xinclude to allow people to centralize their grant support and other boilerplate info
- 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.
- Xenios and Sascha performed tests and discussed many options
qRestAPI and XNAT API
- 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.
Agenda
Monday
Opening discussion
- Review topics and projects
- Plans for the week
Evening: BBQ at the Fichtinger residence
Tuesday
During the day: hack, hack, hack...
Evening: Dinner and beers at the Kingston Brewery
Wednesday
During the day: hack, hack, hack... 10:30 Hangout to review status
Evening: Kingston Haunted Walks
Thursday
During the day: hack, hack, hack...
Evening: BBQ by the gazebo on the waterfront
Friday
During the day: hack, hack, hack...
Late morning; Closing discussion
https://plus.google.com/hangouts/_/33c4f3b6fd88ee2330172c2c91439632c7d6e9b6?authuser=0&hl=en
- Next hackfest in London, UK!?!
- Then back in North America - St. Louis - when?
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.
Airport
- 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.
Lodging
Be aware there is a Queen's event during the week of the hackfest so try to book your hotel early
- Frontenac http://www.frontenacclub.com Queen’s rate $143 per day (plus tax)
- The Belvedere http://www.hotelbelvedere.com is a small hotel of Colonial character, they only have 20 rooms.
- Holiday Inn Kingston Waterfront, http://www.hikingstonwaterfront.com/ about $140
- There are cheaper motels (Super-8 for $100 / night)
Meeting Location
Queen's University, Kinesiology building, room #107.
Weather
Can be still chilly in May, average temperature is about 15°C.
Food
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
- Boat Cruise in Thousand Islands
- Trip to Niagara Falls (Sat-Sun)
- Wildlife Canoeing (Thousand Islands, Bon Echo, Charleston Lake, etc.)
- Kingston Haunted Walks
- Art after dark:
- Canadian Souvenirs: Red Maple, some stuff they sell: http://shop.red-maple.ca/