Difference between revisions of "Events:CTK-Pre-Hackfest-2010"
From NAMIC Wiki
Line 135: | Line 135: | ||
** Setup PythonQt as external project and add related widgets to CTK repository | ** Setup PythonQt as external project and add related widgets to CTK repository | ||
** Setup nightly builds for windows, mac, linux | ** Setup nightly builds for windows, mac, linux | ||
+ | ** Messaging - ctk class event manager and dispatcher as a demo (e.g. send IGSTK messages to MITK) - zmq supports both in-process and cross-process messaging. | ||
+ | ** Slicer CLI in MITK | ||
+ | ** OpenIGTLink as superbuild external project | ||
+ | ** Qt Mobility running in linux - example service for discovering CLI | ||
+ | ** Launcher in Qt | ||
+ | *** Fast splash screen | ||
+ | *** setting paths | ||
+ | *** launching debuggers with paths resolved | ||
+ | *** monitor main application behavior (auto bug report?) | ||
+ | ** DICOM | ||
+ | *** Indexer working with CTK-built DCMTK - CLI existing | ||
+ | |||
+ | |||
---- | ---- |
Revision as of 09:53, 11 March 2010
Home < Events:CTK-Pre-Hackfest-2010Contents
- 1 The Common Toolkit Hackfest at the DKFZ in Heidelberg, Germany hosted by the MBI.
- 2 Links
- 3 Topics
- 3.1 (1) Memory Management
- 3.2 (2) Migrate some code to the repository (e.g. Qt widgets) and use it in our respective toolkits
- 3.3 (3) DICOM IO layer on top of DCMTK: interpretation of DICOM data
- 3.4 (4) Interoperability of plugins
- 3.5 (5) Generic event mechanism (e.g. event bus, translate events into signals)
- 4 Proposed Agenda
- 5 Attendees
The Common Toolkit Hackfest at the DKFZ in Heidelberg, Germany hosted by the MBI.
This is a working meeting - the goal is to start writing code! |
Links
- http://www.CommonTk.org (under development)
Topics
(1) Memory Management
- Large Image Handling
- streaming
- out of core data management (memory mapped files, etc)
- level of detail
- Google Earth 3D
- caching
- Decide on smartpointers e.g. C++0x/Boost
- Afternoon: check Qt vs C++0x/Boost smartpointers
- Rule: Use Smartpointers of the super-class; if there is no super-class, use the one decided upon in the afternoon...
(2) Migrate some code to the repository (e.g. Qt widgets) and use it in our respective toolkits
Steve: goal to make some progress on consolidating some Qt widgets from our various projects into a repository that we can all contribute to. Slicer Qt Project
See also CTK Widget Wish List Make use of Qxt? Qwt?
Slicer Annotation and Markup project for reporting
(3) DICOM IO layer on top of DCMTK: interpretation of DICOM data
(4) Interoperability of plugins
Steve: Summarize what would it take to make a standard that could handle at least the three following systems:
- Slicer Command Line Execution Model
- XIP / DICOM WG23 Application Hosting
- XIP-Builder / Visual Programming Interface integration
- MIPAV/JIST plugins
- OpenIGTLink
If we can handle those, then that's probably broad enough to cover many common scenarios.
Jc: PythonQt and the Qt based plugin architecture used in SlicerQt
Sascha, Olivier: Generic service oriented approach to expose modules for multiple platforms.
(5) Generic event mechanism (e.g. event bus, translate events into signals)
- Sascha
Proposed Agenda
Sunday
- 19:00 Welcome Dinner at Hotel Ritter
Monday - Thursday
- 9:00 Transfer by bus from Ritter to DKFZ (Note: every day)
Monday at DKFZ
- 9:30 Short presentation of agenda
- 9:45 – 12:00 Presentation of topic leaders 20 min each including discussion: requirements, existing libraries, … Coffee breaks on demand
- 12:00 – 13:00 Lunch
- 13:00 – 13:30 General discussion Goal: select three topics to start with in smaller teams
- 13:30 – 16:00 More detailed exploration of topics
- 16:00 Presentation of first results, planning of further agenda
Tuesday
Hacking...
- CTK Git repository
- Initial layout supports cross-toolkit code in the Libs directory (i.e. qCTKDCMTK that combines Qt with DCMTK)
- We may refactor the directory layout later
- We can consider making an automated mirror of git
- CMake wiki page with git hints
- Distributing CTK:
- Provide an initial CmakeLists.txt file that exposes a series of options
- Use CMake external project (SuperBuild)
- DICOM Database schema example
- Volume rendering test data
Wednesday
- DICOM interface discussion
- Effort to plug some XIP code into MITK
- Drafting a first generic plugin framework (based on Qt)
- CTK Repository Naming Conventions:
- CTK
- Libs
- Core (depends on QtCore, filenames start with ctk)
- ctkBundleActivator.h
- ctkBundleContext.h
- DICOM
- Scripting
- PythonQt
- Visualization
- VTK
- OpenInventor
- Widgets
- Core (depends on QtCore, filenames start with ctk)
- Utilities
- DCMTK
- KWStyle
- ZMQ
- Testing
- Examples
- Documentation
- Libs
- CTK
- CTK File Naming Conventions
- Considerations:
- allow KWStyle regular expressions to identify coding style (style is based on parent class - vtkObjects use vtk style, QObjects use Qt style).
- name should indicate dependencies - using ctk prefix implies QtCore dependency
- Considerations:
- Zero Message Queue ported to CMake and added to repository
Thursday
- TODO items
- Add xip as external project to CTK superbuild
- Setup PythonQt as external project and add related widgets to CTK repository
- Setup nightly builds for windows, mac, linux
- Messaging - ctk class event manager and dispatcher as a demo (e.g. send IGSTK messages to MITK) - zmq supports both in-process and cross-process messaging.
- Slicer CLI in MITK
- OpenIGTLink as superbuild external project
- Qt Mobility running in linux - example service for discovering CLI
- Launcher in Qt
- Fast splash screen
- setting paths
- launching debuggers with paths resolved
- monitor main application behavior (auto bug report?)
- DICOM
- Indexer working with CTK-built DCMTK - CLI existing
Attendees
- Steve Pieper, Boston
- Oliver Kutter, Siemens (SCR)
- Patrick Cheng, Georgetown University
- Julien Finet, Kitware Inc.
- Jean-Christophe Fillion-Robin, Kitware Inc.
- Julien Jomier, Kitware Inc.
- Marco Nolden, DKFZ
- Ivo Wolf, DKFZ
- Sascha Zelzer, DKFZ