| Anonymous | Login | Signup for a new account | 2013-06-19 13:18 EDT |
| Main | My View | View Issues | Change Log | Roadmap | Docs |
| Viewing Issue Simple Details [ Jump to Notes ] | [ View Advanced ] [ Issue History ] [ Print ] | |||||||||||
| ID | Category | Severity | Reproducibility | Date Submitted | Last Update | |||||||
| 0001998 | [Slicer3] Base Code | major | always | 2012-05-08 16:14 | 2012-05-14 10:44 | |||||||
| Reporter | kentwilliams | View Status | public | |||||||||
| Assigned To | ||||||||||||
| Priority | normal | Resolution | open | |||||||||
| Status | new | |||||||||||
| Summary | 0001998: Rewrite DicomToNrddConverter | |||||||||||
| Description |
I have re-written DicomToNrrdConverter to solve several problems. 1. The old version was dependent on GDCM 1. I use DCMTK instead of GDCM to access the private tags that hold DWI data -- the B-Value & Gradient Directions. 2. Removed dead code and code that made no sense. 3. Restructured the code to be easier to understand and maintain. 4. Fix bugs. 5. Convert a wider variety of Dicom datasets. |
|||||||||||
| Additional Information | ||||||||||||
| Tags | No tags attached. | |||||||||||
| Attached Files | ||||||||||||
|
|
||||||||||||
Notes |
|
|
(0004336) pieper (administrator) 2012-05-11 17:13 |
Hi Kent - I did a test with your pull request for the dicom to nrrd converter - I found that in order to compile I also needed to merge in Jc's branch that expose dcmtk and I also rebased to the current svn since there were some changes I wanted to test against with the slicer dicom database. Here's my integration branch: https://github.com/pieper/Slicer/commits/1998-mergeTest [^] However when I run it I get the crash below. I tested with the SiemensTrioTimB17-DWI dataset I got from you guys. Can you try this on your end? -Steve Program received signal SIGSEGV, Segmentation fault. 0x00007fffb3284f1c in ModuleEntryPoint (argc=11, argv=0x5885d10) at /home/pieper/slicer4/latest/Slicer/Modules/CLI/DicomToNrrdConverter/DicomToNrrdConverter.cxx:1240 1240 std::cout << " Directions 0: " << valueArray[0] << std::endl; (gdb) where #0 0x00007fffb3284f1c in ModuleEntryPoint (argc=11, argv=0x5885d10) at /home/pieper/slicer4/latest/Slicer/Modules/CLI/DicomToNrrdConverter/DicomToNrrdConverter.cxx:1240 0000001 0x00007ffff7441326 in vtkSlicerCLIModuleLogic::ApplyTask (this=0x2d120c0, clientdata=0x57ee740) at /home/pieper/slicer4/latest/Slicer/Base/QTCLI/vtkSlicerCLIModuleLogic.cxx:1607 0000002 0x00007ffff74390f2 in vtkSlicerCLIModuleLogic::ApplyAndWait (this=0x2d120c0, node=0x57ee740, updateDisplay=true) at /home/pieper/slicer4/latest/Slicer/Base/QTCLI/vtkSlicerCLIModuleLogic.cxx:340 0000003 0x00007fffcc727db6 in PyvtkSlicerCLIModuleLogic_ApplyAndWait (self=0x16b10a8, args=0x16cac90) at /home/pieper/slicer4/latest/Slicer-superbuild/Slicer-build/Base/QTCLI/vtkSlicerCLIModuleLogicPython.cxx:510 0000004 0x00007fffeff95ff4 in call_function (f=0x57ecdd0, throwflag=<value optimized out>) at Python/ceval.c:3750 0000005 PyEval_EvalFrameEx (f=0x57ecdd0, throwflag=<value optimized out>) at Python/ceval.c:2412 0000006 0x00007fffeff97d20 in PyEval_EvalCodeEx (co=0xfc1558, globals=<value optimized out>, locals=<value optimized out>, args=0x4, argcount=<value optimized out>, kws=<value optimized out>, kwcount=1, defs=0x106bb08, defcount=3, closure=0x0) at Python/ceval.c:3000 0000007 0x00007fffeff9606f in fast_function (f=0x57ed8b0, throwflag=<value optimized out>) at Python/ceval.c:3846 0000008 call_function (f=0x57ed8b0, throwflag=<value optimized out>) at Python/ceval.c:3771 0000009 PyEval_EvalFrameEx (f=0x57ed8b0, throwflag=<value optimized out>) at Python/ceval.c:2412 0000010 0x00007fffeff968e8 in fast_function (f=0x57ea180, throwflag=<value optimized out>) at Python/ceval.c:3836 0000011 call_function (f=0x57ea180, throwflag=<value optimized out>) at Python/ceval.c:3771 0000012 PyEval_EvalFrameEx (f=0x57ea180, throwflag=<value optimized out>) at Python/ceval.c:2412 0000013 0x00007fffeff97d20 in PyEval_EvalCodeEx (co=0x1506210, globals=<value optimized out>, locals=<value optimized out>, args=0x1, argcount=<value optimized out>, kws=<value optimized out>, kwcount=0, defs=0x0, defcount=0, closure=0x0) at Python/ceval.c:3000 0000014 0x00007fffeff1e0d0 in function_call (func=0x150c500, arg=0x159f4d0, kw=0x0) at Objects/funcobject.c:524 0000015 0x00007fffefef10d3 in PyObject_Call (func=0x150c500, arg=0x0, kw=0x0) at Objects/abstract.c:2492 0000016 0x00007fffeff02aef in instancemethod_call (func=0x150c500, arg=0x159f4d0, kw=0x0) at Objects/classobject.c:2579 0000017 0x00007fffefef10d3 in PyObject_Call (func=0x16a77d0, arg=0x0, kw=0x0) at Objects/abstract.c:2492 0000018 0x00007fffeff90153 in PyEval_CallObjectWithKeywords (func=0x16a77d0, arg=0x7fffd62c1050, kw=0x0) at Python/ceval.c:3619 0000019 0x00007fffef3fa6d5 in PythonQtSignalTarget::call (callable=0x16a77d0, methodInfos=0x865f20, arguments=0x7fffffffc5b0, skipFirstArgumentOfMethodInfo=false) at /home/pieper/slicer4/latest/Slicer-superbuild/CTK-build/PythonQt/src/PythonQtSignalReceiver.cpp:118 0000020 0x00007fffef3fa478 in PythonQtSignalTarget::call (this=0x54b3a50, arguments=0x7fffffffc5b0) at /home/pieper/slicer4/latest/Slicer-superbuild/CTK-build/PythonQt/src/PythonQtSignalReceiver.cpp:51 0000021 0x00007fffef3fafff in PythonQtSignalReceiver::qt_metacall (this=0x54b3800, c=QMetaObject::InvokeMetaMethod, id=4, arguments=0x7fffffffc5b0) at /home/pieper/slicer4/latest/Slicer-superbuild/CTK-build/PythonQt/src/PythonQtSignalReceiver.cpp:220 0000022 0x00007fffec665cf7 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/local/Trolltech/Qt-4.7.4/lib/libQtCore.so.4 0000023 0x00007fffed826ef2 in QAbstractButton::clicked(bool) () from /usr/local/Trolltech/Qt-4.7.4/lib/libQtGui.so.4 0000024 0x00007fffed533cdb in ?? () from /usr/local/Trolltech/Qt-4.7.4/lib/libQtGui.so.4 0000025 0x00007fffed5353ab in ?? () from /usr/local/Trolltech/Qt-4.7.4/lib/libQtGui.so.4 0000026 0x00007fffed53561c in QAbstractButton::mouseReleaseEvent(QMouseEvent*) () from /usr/local/Trolltech/Qt-4.7.4/lib/libQtGui.so.4 0000027 0x00007fffef642d56 in PythonQtShell_QPushButton::mouseReleaseEvent (this=0x54b3100, e=0x7fffffffcf80) at /home/pieper/slicer4/latest/Slicer-superbuild/CTK-build/PythonQt/generated_cpp/com_trolltech_qt_gui/com_trolltech_qt_gui6.cpp:6235 0000028 0x00007fffed169ede in QWidget::event(QEvent*) () from /usr/local/Trolltech/Qt-4.7.4/lib/libQtGui.so.4 0000029 0x00007fffef640b30 in PythonQtShell_QPushButton::event (this=0x54b3100, e=0x7fffffffcf80) at /home/pieper/slicer4/latest/Slicer-superbuild/CTK-build/PythonQt/generated_cpp/com_trolltech_qt_gui/com_trolltech_qt_gui6.cpp:5863 0000030 0x00007fffed113d4c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/local/Trolltech/Qt-4.7.4/lib/libQtGui.so.4 0000031 0x00007fffed11ad8e in QApplication::notify(QObject*, QEvent*) () from /usr/local/Trolltech/Qt-4.7.4/lib/libQtGui.so.4 0000032 0x00007fffec64decc in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/local/Trolltech/Qt-4.7.4/lib/libQtCore.so.4 0000033 0x00007fffed1182de in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) () from /usr/local/Trolltech/Qt-4.7.4/lib/libQtGui.so.4 0000034 0x00007fffed19b9c5 in ?? () from /usr/local/Trolltech/Qt-4.7.4/lib/libQtGui.so.4 0000035 0x00007fffed19a67b in QApplication::x11ProcessEvent(_XEvent*) () from /usr/local/Trolltech/Qt-4.7.4/lib/libQtGui.so.4 0000036 0x00007fffed1c267f in ?? () from /usr/local/Trolltech/Qt-4.7.4/lib/libQtGui.so.4 0000037 0x00007fffec64cbf2 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/local/Trolltech/Qt-4.7.4/lib/libQtCore.so.4 0000038 0x00007fffec64cfdc in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/local/Trolltech/Qt-4.7.4/lib/libQtCore.so.4 0000039 0x00007fffec650609 in QCoreApplication::exec() () from /usr/local/Trolltech/Qt-4.7.4/lib/libQtCore.so.4 0000040 0x0000000000408172 in SlicerAppMain (argc=1, argv=0x7fffffffdce8) at /home/pieper/slicer4/latest/Slicer/Applications/SlicerApp/Main.cxx:311 0000041 0x0000000000408256 in main (argc=1, argv=0x7fffffffdce8) at /home/pieper/slicer4/latest/Slicer/Applications/SlicerApp/Main.cxx:343 (gdb) |
|
(0004369) kentwilliams (reporter) 2012-05-14 10:33 |
Steve, the pull request is out of date and needs to be deleted. My understanding is that isn't how we're supposed to proceed, according to instructions you e-mailed me AFTER I made the pull request. A current version is here: https://github.com/Chaircrusher/Slicer/tree/0001998-NewDicomToNrrdConverter [^] The topic branch is 0001998-NewDicomToNrrdConverter I have a stopgap solution to finding the DCMTK libraries (it sets DCMTK_DIR to where they live in the slicer build tree), so it's not dependent on JCF's patch. I've done numerous changes since then, to the point that the line number for that crashing statement is completely different. On the other hand, I saw how a crash could happen at that print statement and fixed it. |
|
(0004370) pieper (administrator) 2012-05-14 10:44 |
Okay - good. Is it ready to test for merging or are you still working on it? |
| Mantis 1.1.4[^] Copyright © 2000 - 2008 Mantis Group |