Home Download Documentation Feedback Tutorials Publications Contributors

Legacy Assembla Tickets

#2 Define SparKit goals for the first 6 months

2011-04-28, 00:50:41 - Andras Lasso

summary: changed from “Get information about OCAIRO group needs” to “Define SparKit goals for the first 6 months”

2011-05-17, 21:50:55 - Andras Lasso

description: changed from “Using online survey. Manage…” to “* Get info from OCAIRO inve…”

2011-05-17, 21:59:47 - Andras Lasso

milestone: changed from null to “SparKit M0”

2011-11-12, 14:45:31 - Andras Lasso

SlicerRt scope items: https://www.assembla.com/spaces/sparkit/wiki/Radiotherapy_support_in_3D_Slicer Plus released, dissemination is on-going.

2011-11-12, 14:50:42 - Andras Lasso

status: changed from “New” to “Fixed”

#5 Set up basic infrastructure

Solutions for:

2011-05-17, 22:06:54 - Andras Lasso

description: changed from “” to “Solutions for:

2011-11-12, 14:46:40 - Andras Lasso

Source code, documentation, issue tracking is hosted on Assembla, dashboard&nightly API documentation is hosted at Queen’s.

2011-11-12, 14:46:40 - Andras Lasso

status: changed from “New” to “Fixed”

#9 Set up core team

2011-05-17, 22:11:20 - Andras Lasso

summary: changed from “Set up the team” to “Set up core team”

2011-06-03, 23:21:52 - Andras Lasso

description: changed from “* Hire software engineers …” to “ Hire software engineers *…”

2011-11-12, 14:47:28 - Andras Lasso

Queen’s: Andras Lasso, Csaba Pinter Robarts: Elvis Chen Toronto UHN: Kevin Wang

2011-11-12, 14:47:28 - Andras Lasso

status: changed from “New” to “Fixed”

#10 Get images from KGH

Need to get RT sample images from KGH (from the participants of this meeting: http://www.assembla.com/spaces/sparkit/wiki/20111128_Meeting_at_KGH_CCSO)

2011-12-12, 11:12:56 - Andras Lasso

milestone_id: changed from null to “NA-MIC Winter project week 2012 preparation”

2011-12-13, 17:53:32 - Csaba Pinter

status: changed from “New” to “Accepted”

2011-12-20, 16:43:56 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

2011-12-20, 16:48:30 - Andras Lasso

Where the full DVD is archived? Please upload selected data sets into SVN.

2011-12-20, 16:50:41 - Csaba Pinter

I just uploaded it as a file to assembla. If it would be better to store them in the SVN then I do that.

2011-12-20, 16:50:41 - Csaba Pinter

status: changed from “Fixed” to “Accepted”

2011-12-20, 16:55:56 - Andras Lasso

We need to use the images in automatic tests. Downloading data sets separately from assembla files would not be very convenient.

Just upload the unzipped data set (SVN stores/downloads it in compressed format anyway) to trunk/SlicerRt/data. Thanks!

2011-12-20, 17:05:37 - Csaba Pinter

(In r:3) Test #10: Images obtained from KGH (sample images of three different phantoms) added

2011-12-20, 17:05:37 - Csaba Pinter

status: changed from “Accepted” to “Test”

2012-01-13, 17:19:51 - Csaba Pinter

status: changed from “Test” to “Fixed”

#11 Get images from UHN

Need to get RT sample images from KGH (from the participants of this meeting: http://www.assembla.com/spaces/sparkit/wiki/20111128_Meeting_at_KGH_CCSO)

Contact at least the following people/groups (CC me on all the emails): -Curtis Caldwell -Mike Velec -Lee Chin -Robert Heaton

2011-12-12, 11:17:27 - Andras Lasso

Thanks for contacting Mike Velec in person. Please follow-up with him and contact Curtis Caldwell, Lee Chin, and Robert Heaton as well. Let me know if you need any help with this. The holidays are near so we don’t have too much time.

2011-12-12, 18:40:30 - wangk

Will do and keep you posted.

2011-12-12, 18:40:30 - wangk

status: changed from “New” to “Accepted”

2012-01-04, 20:13:52 - wangk

Phantom RT plan added.

2012-01-04, 20:13:52 - wangk

status: changed from “Accepted” to “Test”

2012-01-05, 06:05:25 - Andras Lasso

This is very good Kevin!

Could you please also add a readme.txt file that describes:

thanks! Andras

2012-01-06, 16:43:25 - wangk

I just uploaded another RT plan which is an IMRT plan using the same phantom images.

I have added a readme file to the files I uploaded also.

2012-01-13, 17:34:21 - Csaba Pinter

Updating tickets (#17, #18, #19, #20, #21, #11)

2012-01-13, 17:34:21 - Csaba Pinter

milestone_id: changed from “NA-MIC Winter project week 2012 preparation” to “ImNO demo”

2012-01-13, 17:35:00 - Csaba Pinter

One more dataset may arrive from Rob Heaton

2012-01-23, 20:24:24 - Andras Lasso

status: changed from “Test” to “Fixed”

#12 Build Slicer4 with DCMRT

The CTK toolkit already downloads, builds, and uses DCMTK, and Slicer uses CTK, so Slicer already uses DCMTK. Probably CTK uses the latest stable DCMTK release. However, the package that contains DCMRT (the link that Steve sent) is a newer version of DCMTK.

Could you please try to patch the DCMTK in Slicer-4.0-bin\CTK-build\DCMTK\ with this new DCMTK? One option would be to just add the dcmrt directory and modify a few CMakeLists.txt files to include the new directory in the build (the risk is that dcmrt could rely on some changes that were introduced since the last stable release). The other option would be to completely replace the DCMTK with the new version (the risk is that the new DCMTK may not be fully stable or fully compatible with the current CTK).

Csaba, Kevin, please work together on this and coordinate who does what and when. Let me know if you make any progress (or really stuck).

2011-12-16, 21:49:01 - Csaba Pinter

status: changed from “New” to “Test”

2011-12-19, 10:11:47 - Andras Lasso

Csaba, please add detailed build/patch instructions to https://www.assembla.com/spaces/sparkit/wiki/SlicerRt_developers_page

2012-01-13, 17:20:02 - Csaba Pinter

status: changed from “Test” to “Fixed”

#13 Finalize NA-MIC week project page

http://www.na-mic.org/Wiki/index.php/2012_Winter_Project_Week:RTTools

Deadline is Dec. 15

2011-12-13, 17:53:40 - Csaba Pinter

status: changed from “New” to “Accepted”

2011-12-14, 16:30:16 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

#14 Collect ideas for Slicer simplification

Think about potential improvements and add them to the ‘Slicer simplification ideas’ section of this wiki page: 20110110_Slicer_core_improvements_discussion

2011-12-12, 13:50:24 - Andras Lasso

status: changed from “New” to “Accepted”

2012-01-20, 18:33:18 - Andras Lasso

milestone: changed from null to “NA-MIC 2012 Summer Project week”

2012-07-04, 22:05:12 - Andras Lasso

milestone_id: changed from “Release for AAPM2012” to “Future”

2013-09-06, 18:43:57 - Andras Lasso

description: changed from “Think about potential impro…” to “Think about potential impro…”

2014-01-21, 20:13:33 - Csaba Pinter

The data-centered concept of the Subject Hierarchy could be considered as an ‘A’-type solution (from the referenced wiki page in the ticket description: ‘A: make Slicer simpler to use (make it usable for an average clinician), showing only simplified GUI, only with the essential tools’).

The simplified GUI is the Subject Hierarchy tree (convenient central organizing point for basic features), and the essential tools are the collection of the plugins we consider ‘core’.

2015-09-17, 19:05:25 - Csaba Pinter

@lassoan Only two items are still pending in this ticket:

2015-09-21, 21:40:54 - Andras Lasso

These are not related to SlicerRT, so I agree that they don’t need to be tracked here.

2015-09-21, 21:40:54 - Andras Lasso

status: changed from “Accepted” to “Invalid”

#15 Prepare for DICOM-RT breakout session

Get familiar with DICOM-RT (see links at the project page http://www.na-mic.org/Wiki/index.php/2012_Winter_Project_Week:RTTools):

2012-01-06, 23:48:46 - Csaba Pinter

status: changed from “New” to “Test”

2012-01-13, 17:20:38 - Csaba Pinter

status: changed from “Test” to “Fixed”

#16 DicomRtImport loadable module for Slicer4

2012-01-10, 16:05:56 - Csaba Pinter

(In r:11) Re #16: Skeleton of the DicomRtImport module created by ModuleWizard; s4ext description added

2012-01-12, 16:41:26 - Csaba Pinter

(In r:14) Re #16: General DICOM loading mechanism first implementation; Not module (Slicer, CTK) related files also added for the record (Slicer stuff may be removed later when we have the Slicer branch)

2012-01-12, 16:56:03 - Csaba Pinter

(In r:15) Re #16: The module is now hidden (no UI yet and we don’t need to show it)

2012-01-12, 18:40:53 - Csaba Pinter

(In r:18) Re #16: DICOM tree view is now bigger

2012-01-12, 18:43:11 - Csaba Pinter

(In r:19) Re #16: Loadable module fix removed as the Slicer group commited their bugfix since; readme file added about how to build and use the module (I didn’t add these to the wiki until we don’t finalize the repositories: branch Slicer and CTK)

2012-01-12, 21:34:04 - Csaba Pinter

(In r:23) Re #16: Fix normal vectors and ribbon width for visualization (by Andras)

2012-01-13, 17:15:13 - Csaba Pinter

All subtasks except the DICOM IO Factory done. The module is in the SparKit repository in /SlicerRt/src directory New CTK branch created: git@github.com:SlicerRt/CTK.git Slicer4 branch created: http://svn.slicer.org/Slicer4/branches/SlicerRT

2012-01-13, 17:15:13 - Csaba Pinter

status: changed from “New” to “Fixed”

2012-04-05, 17:07:19 - Csaba Pinter

milestone_id: changed from null to “Basic RT support as standard 3DSlicer extension”

#17 DICOMObjectFactory in Slicer4

Implement DICOMObjectFactory (hidden module or internal class) in Slicer4/SlicerRT branch that makes one of the registered DICOM IO modules instantiate the proper data object according to the DICOM file it is given.

2012-01-13, 17:27:03 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2012-01-13, 17:34:21 - Csaba Pinter

Updating tickets (#17, #18, #19, #20, #21, #11)

2012-01-13, 17:34:21 - Csaba Pinter

milestone_id: changed from null to “ImNO demo”

2012-01-20, 19:44:19 - Csaba Pinter

status: changed from “New” to “Invalid”

#18 Enhance PolyDataToLabelmap module in Slicer4 to handle RT contours

Convert one model that was imported from a structure set to one labelmap

2012-01-13, 17:27:00 - Csaba Pinter

assigned_to_id: changed from null to “wangk”

2012-01-13, 17:34:21 - Csaba Pinter

Updating tickets (#17, #18, #19, #20, #21, #11)

2012-01-13, 17:34:21 - Csaba Pinter

milestone_id: changed from null to “ImNO demo”

2012-01-18, 18:32:45 - wangk

status: changed from “New” to “Accepted”

2012-01-23, 20:23:51 - Andras Lasso

It’s a simple module: SlicerRt\Modules\CLI\PolyDataToLabelmap\PolyDataToLabelmap.cxx

2012-02-23, 15:21:39 - Csaba Pinter

Updating tickets (#18, #19, #45, #48, #49)

2012-02-23, 15:21:39 - Csaba Pinter

milestone_id: changed from “ImNO demo” to “NA-MIC 2012 Summer Project week”

2012-02-28, 00:27:08 - Andras Lasso

The model to labelmap module now works well for ribbonized planar contours (the format used now for structure sets).

The module now uses vtkImageStencil instead of the old (flood-filling based) method. This method should replace the old implementation in Slicer because the old method has severe limitations.

Limitations of the old (flood-filling based) method:

2012-02-28, 00:27:08 - Andras Lasso

status: changed from “Accepted” to “Fixed”

#19 Fix slice intersection visualization of imported RTSS

If we harden a transform it appears but not before

2012-01-13, 17:34:22 - Csaba Pinter

Updating tickets (#17, #18, #19, #20, #21, #11)

2012-01-13, 17:34:22 - Csaba Pinter

milestone_id: changed from null to “ImNO demo”

2012-01-13, 19:29:56 - Csaba Pinter

See Slicer Mantis ticket http://www.na-mic.org/Bug/view.php?id=1650

2012-02-23, 15:21:39 - Csaba Pinter

Updating tickets (#18, #19, #45, #48, #49)

2012-02-23, 15:21:39 - Csaba Pinter

milestone_id: changed from “ImNO demo” to “NA-MIC 2012 Summer Project week”

2012-03-05, 00:16:11 - Andras Lasso

milestone: changed from null to “Basic RT support as standard 3DSlicer extension”

2012-04-11, 14:00:44 - Andras Lasso

(In r:87) Fixed #19: RTSTRUCT slice intersections now displayed after DICOM-RT import

2012-04-11, 14:00:44 - Andras Lasso

status: changed from “New” to “Fixed”

#20 Show fiducials for point ROIs

RTSS contour containing one point

2012-01-13, 17:34:22 - Csaba Pinter

Updating tickets (#17, #18, #19, #20, #21, #11)

2012-01-13, 17:34:22 - Csaba Pinter

milestone_id: changed from null to “ImNO demo”

2012-01-20, 19:40:38 - Csaba Pinter

assigned_to_id: changed from null to “lassoan”

2012-02-10, 16:11:38 - Andras Lasso

Updating tickets (#20, #25, #27, #36)

2012-02-10, 16:11:38 - Andras Lasso

milestone_id: changed from “ImNO demo” to “NA-MIC 2012 Summer Project week”

2012-03-03, 17:56:15 - Andras Lasso

(In r:58) Fixed #20: Point ROIs are now imported and shown as fiducial points

2012-03-03, 17:56:15 - Andras Lasso

status: changed from “New” to “Fixed”

2012-03-04, 20:53:05 - Andras Lasso

(In r:63) Re #20: Fixed crash when importing ROIs without any points

#21 Make DicomRtImport module a downloadable extension module

2012-01-13, 17:30:28 - Csaba Pinter

summary: changed from “Create DicomRtImport module as a downloadable extension module” to “Make DicomRtImport module a downloadable extension module”

2012-01-13, 17:34:22 - Csaba Pinter

Updating tickets (#17, #18, #19, #20, #21, #11)

2012-01-13, 17:34:22 - Csaba Pinter

milestone_id: changed from null to “ImNO demo”

2012-01-20, 19:26:03 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2012-01-20, 19:27:09 - Csaba Pinter

With CMake 2.8.7 - Copy s4ext into SlicerRt branch

2012-01-23, 20:28:01 - Andras Lasso

Probably it works already, just need to be tested

2012-01-30, 21:41:45 - Csaba Pinter

status: changed from “New” to “Accepted”

2012-01-31, 22:09:12 - Csaba Pinter

Downloading of the source fails. I fixed this error, and added a mantis item (http://www.na-mic.org/Bug/view.php?id=1677) for this so that it can go to the trunk if my remarks prove to be valid.

2012-02-01, 15:25:23 - Csaba Pinter

I commited the fix in the SlicerRt/Slicer forked Git repository (The progress made in the Slicer bug issue should be tracked)

2012-02-01, 15:25:23 - Csaba Pinter

status: changed from “Accepted” to “Test”

2012-02-09, 21:42:35 - Csaba Pinter

Important note: The modules (…\Slicer4-bin\Extensions\CMake\DicomRtImport-build\lib\Slicer-4.0\qt-loadable-modules and …\Slicer4-bin\Extensions\CMake\DicomRtImport-build\lib\Slicer-4.0\qt-scripted-modules) still have to be added to the Additional module paths in Application Settings/Module Settings

2012-02-10, 16:09:05 - Andras Lasso

I’ve tested it and it works well

2012-02-10, 16:09:05 - Andras Lasso

status: changed from “Test” to “Fixed”

#22 Create Slicer node bundle module for 3D+t data representation

*Each dataset in a node + a bundle node *need timestamp info: it could be stored in the node (in a node attribute) or in the bundle node *The 4D image module could be extended to handle multiple objects and additional object type *can be naturally extended to support multiple nodes and different node types *a bundle node could contain another bundle node *How to do processing manually if there are tens of different time points? Could be an option to show/hide nodes that are part of a time bundle. CLI modules could be easily applied to each contained node one-by-one. *memory management could be an issue *Implement HHSC model: original and valid time

http://www.na-mic.org/Wiki/index.php/AHM2012-3D-US-Slicer-Breakout

Use cases: *adaptive radiotherapy: track changes between 3D images acquired at different times *inter-volume registration; if there is one 4D node then it’s difficult to run existing slicer registration modules *DCE-MRI *2D+t ultrasound *3D+t ultrasound *population studies

2012-01-20, 18:29:48 - Andras Lasso

milestone_id: changed from null to “Future”

2012-03-05, 00:21:48 - Andras Lasso

milestone: changed from null to “RT data analysis”

2012-08-20, 19:58:25 - Andras Lasso

milestone: changed from “RT data analysis” to “Future”

2013-09-06, 18:44:10 - Csaba Pinter

priority: changed from “Normal (3)” to “High (2)”

2013-11-06, 23:02:13 - Csaba Pinter

milestone_id: changed from “Future” to “MultidimData 0.1.0”

2014-01-20, 19:41:50 - Andras Lasso

The requested feature are now available in MultidimData extension. Specific additional requests will be tracked in other tickets.

2014-01-20, 19:41:50 - Andras Lasso

assigned_to_id: changed from null to “lassoan”

2014-01-20, 19:41:50 - Andras Lasso

status: changed from “New” to “Fixed”

2014-01-20, 19:45:52 - Csaba Pinter

Hooray!

2016-02-01, 22:00:19 - Andras Lasso

re #22: Moved MultiDimData extension to github as Sequences extension

https://github.com/SlicerRt/Sequences Commit: r:2621|slicerrt:2621

2016-02-01, 22:00:35 - Andras Lasso

re #22: Moved MultiDimData extension to github as Sequences extension

https://github.com/SlicerRt/Sequences Commit: r:2622|slicerrt:2622

#23 Display a progress bar and cancel button during Slicer DICOM import

DICOM import can take a while. It’s important to give some feedback to the user about the progress of this operation and to allow him to cancel that at any time.

2012-01-20, 18:30:05 - Andras Lasso

milestone_id: changed from null to “ImNO demo”

2012-01-20, 18:32:20 - Andras Lasso

milestone: changed from null to “NA-MIC 2012 Summer Project week”

2012-03-05, 00:16:22 - Andras Lasso

milestone: changed from null to “Basic RT support as standard 3DSlicer extension”

2012-03-29, 19:27:16 - Andras Lasso

assigned_to_id: changed from null to “lassoan”

2012-03-29, 19:27:43 - Andras Lasso

Steve is working on it (will be available in Slicer 4.1)

2012-04-11, 14:01:40 - Andras Lasso

Fixed by updating the core to Slicer 4.1

2012-04-11, 14:01:40 - Andras Lasso

status: changed from “New” to “Fixed”

#24 DICOM import in Slicer is slow

Need to speed up the DICOM import in Slicer. Maybe just buy reading/parsing the fields that will be displayed in the DICOM browser window?

2012-01-20, 18:30:11 - Andras Lasso

milestone_id: changed from null to “ImNO demo”

2012-01-20, 18:32:26 - Andras Lasso

milestone: changed from null to “NA-MIC 2012 Summer Project week”

2012-01-31, 00:05:22 - Andras Lasso

Profiling on Windows7 in debug mode showed that the main culprit is FlushFileBuffers (called by QSqlQuery::exec). Therefore, a first target for the performance optimization should be the SQL database management.

Method Name % in Method % with Children Called Average (us) FlushFileBuffers 43.7 43.7 5,163 55,478.40 DcmList::seek(enum E_ListPos) 8.9 8.9 53,668,332 1.1 ReadFile 6.6 6.6 42,291 1,025.80 DcmItem::searchSubFromHere(class DcmTagKey const &,class DcmStack &,bool) 5.1 17.4 350,225 95.2 WaitForMultipleObjectsEx 4.7 4.7 3,121 9,784.90 OFConditionConst::status(void) 2.3 2.3 35,285,366 0.4 DcmList::get(enum E_ListPos) 2 5.5 26,419,216 0.5 operator new(unsigned int) 1.2 1.2 3,279,973 2.3 DcmDataDictionary::findEntry(class DcmTagKey const &,char const *) 1 2 644,146 10.3 OFConditionConst::deletable(void) 1 1 14,778,924 0.4 OFConditionConst::clone(void) 1 1 14,779,215 0.4 DcmItem::readTagAndLength(class DcmInputStream &,enum E_TransferSyntax,class DcmTag &,unsigned long &,unsigned long &) 1 7.4 420,300 15.2 DcmXfer::DcmXfer(enum E_TransferSyntax) 0.6 0.6 1,271,782 3.3 OFString::reserve(unsigned int) 0.6 1 1,227,635 3.3 WaitForMultipleObjects 0.5 0.5 17,332 207.2 DcmItem::read(class DcmInputStream &,enum E_TransferSyntax,enum E_GrpLenEncoding,unsigned long) 0.5 16.9 31,625 106.5 HeapFree 0.5 0.5 4,197,209 0.8 DcmElement::loadValue(class DcmInputStream *) 0.5 2.9 376,887 7.8 QSqlQuery::exec(void) 0.4 44.8 7,387 385.5 DcmInputStream::read(void *,__int64) 0.4 7.5 1,746,738 1.4 DcmElement::read(class DcmInputStream &,enum E_TransferSyntax,enum E_GrpLenEncoding,unsigned long) 0.4 3.3 390,008 6.2 DcmFileProducer::read(void *,__int64) 0.4 7.2 1,746,738 1.3 SetFilePointer 0.3 0.3 2,299,373 1 CreateFileW 0.3 0.3 4,128 529.4 DcmDictEntryList::find(class DcmTagKey const &,char const *) 0.3 0.5 680,336 3.2 DcmItem::readSubElement(class DcmInputStream &,class DcmTag &,unsigned long,enum E_TransferSyntax,enum E_GrpLenEncoding,unsigned long) 0.3 10 416,716 5.2 deflate 0.3 0.3 196,865 9.4 DcmHashDict::hash(class DcmTagKey const *,char const *) 0.3 0.3 720,566 2.5 WriteFile 0.3 0.3 55,194 32.6 DcmItem::insert(class DcmElement *,bool,bool) 0.3 1.1 403,570 4.4 OFReadWriteLock::rdlock(void) 0.3 0.6 668,916 2.7 DiMonoImage::getDataSint16(void *,class DiDisplayFunction *,int,unsigned long,int,unsigned long,unsigned long) 0.3 0.3 1,430 1,190.90 DcmList::insert(class DcmObject *,enum E_ListPos) 0.2 0.5 444,762 3.5 WaitForSingleObject 0.2 0.2 2,943,070 0.5 GetFileAttributesW 0.2 0.2 60,150 25.3 operator delete 0.2 0.4 6,991,222 0.2 DcmTag::lookupVRinDictionary(void) 0.2 3.5 620,974 2.3 OFMutex::lock(void) 0.2 0.4 2,273,782 0.6 newDicomElement(class DcmElement * &,class DcmTag &,unsigned long,class DcmPrivateTagCache *,bool &) 0.2 2.2 416,716 3.3 DcmTag::updatePrivateCreator(char const *) 0.2 0.3 975,723 1.4 OFMutex::unlock(void) 0.2 0.3 2,273,782 0.6 OFReadWriteLock::unlock(void) 0.2 0.5 668,931 2 swapIfNecessary(enum E_ByteOrder,enum E_ByteOrder,void *,unsigned long,unsigned int) 0.2 0.3 1,351,695 1 DcmTag::~DcmTag(void) 0.2 0.3 1,080,457 1.2 DcmInputStream::eos(void) 0.2 0.7 1,283,758 1 DcmList::deleteAllElements(void) 0.2 1.1 68,407 18.9 DcmFileProducer::eos(void) 0.2 0.5 1,283,758 1 DcmTag::updateTagName(char const *) 0.2 0.2 975,746 1.2 dcmtk::log4cplus::spi::LoggerImpl::isEnabledFor(int) 0.2 0.4 969,824 1.2 DcmHashDict::get(class DcmTagKey const &,char const *) 0.2 1 644,146 1.9 fgetpos 0.2 0.5 2,217,565 0.5 malloc 0.2 0.2 914,262 1.3 DiImage::convertPixelData(void) 0.2 1.2 1,594 687.5 dcmtk::log4cplus::spi::LoggerImpl::getChainedLogLevel(void) 0.2 0.2 969,824 1.1 OFString::assign(class OFString const &,unsigned int,unsigned int) 0.2 0.6 419,577 2.6 OFString::~OFString(void) 0.2 0.3 838,573 1.2 dcmtk::log4cplus::Logger::isEnabledFor(int) 0.2 0.5 969,824 1 DcmTag::operator=(class DcmTag const &) 0.1 0.4 450,565 2.1 DiMonoModality::Init(class DiDocument const *,class DiInputPixel *) 0.1 0.2 1,594 594.7 GetConsoleMode 0.1 0.1 18,953 49.6 CloseHandle 0.1 0.1 19,857 47 DcmItem::search(class DcmTagKey const &,class DcmStack &,enum E_SearchMode,bool) 0.1 17.8 351,747 2.6 DcmInputStream::avail(void) 0.1 0.4 876,018 1 DcmStack::clear(void) 0.1 0.1 701,696 1.2 DcmInputStream::status(void) 0.1 0.2 801,253 1 ReleaseMutex 0.1 0.1 2,273,901 0.4 DiMonoImage::InitUint16(class DiMonoModality *) 0.1 0.1 789 1,022.20 DiMonoImage::setMinMaxWindow(int) 0.1 0.1 971 818.2 HeapValidate 0.1 0.1 4,195,469 0.2 operator delete(void *) 0.1 0.3 1,462,664 0.5 DcmItem::checkAndUpdateVR(class DcmItem &,class DcmTag &) 0.1 0.3 388,817 1.9 QSqlResult::savePrepare(class QString const &) 0.1 0.2 7,387 93.7 DeleteFileW 0.1 0.1 1,721 402.2 DcmTagKey::getBaseTag(void) 0.1 0.1 775,201 0.9 DiDocument::search(class DcmTagKey const &,class DcmObject *) 0.1 16 288,628 2.4 GlobalDcmDataDictionary::rdlock(void) 0.1 0.7 668,915 1 DcmElement::~DcmElement(void) 0.1 0.4 409,027 1.6 DcmPrivateTagCache::updateCache(class DcmObject *) 0.1 0.1 387,780 1.7 free 0.1 0.3 907,225 0.7 DcmVR::setVR(enum DcmEVR) 0.1 0.1 705,044 0.9 DcmItem::transferEnd(void) 0.1 0.3 35,229 17.6 OFString::OFString(char const *) 0.1 0.4 308,382 2 DcmElement::transferInit(void) 0.1 0.1 390,008 1.5 DcmTag::DcmTag(unsigned short,unsigned short,char const *) 0.1 2.4 460,823 1.2 DcmFileProducer::avail(void) 0.1 0.3 876,018 0.6 DcmXfer::~DcmXfer(void) 0.1 0.1 1,273,867 0.4 CreateFileA 0.1 0.1 6,090 91.3 memcpy 0.1 0.1 5,425,791 0.1 DcmTag::DcmTag(class DcmTag const &) 0.1 0.3 452,343 1.2 DcmElement::getValue(enum E_ByteOrder) 0.1 1.2 199,518 2.7 DcmObject::~DcmObject(void) 0.1 0.2 452,200 1.1 GlobalDcmDataDictionary::unlock(void) 0.1 0.6 668,915 0.8 DcmInputStream::good(void) 0.1 0.1 476,563 1 DcmXfer::sizeofTagHeader(enum DcmEVR) 0.1 0.1 416,717 1.2 DcmByteString::newValueField(void) 0.1 0.2 238,492 1.9 DcmByteString::getVM(void) 0.1 0.3 53,252 8.5 fread 0.1 6.7 1,746,738 0.3 DcmUniqueIdentifier::makeMachineByteString(void) 0.1 0.2 14,243 30.4 memcmp 0.1 0.1 3,027,244 0.1 DcmFileProducer::status(void) 0.1 0.1 801,253 0.5 OFSemaphore::wait(void) 0.1 0.1 668,931 0.6 OFSemaphore::post(void) 0.1 0.1 668,931 0.6 DcmDictEntryList::empty(void) 0.1 0.1 683,942 0.6 DcmHashDict::findInList(class DcmDictEntryList &,class DcmTagKey const &,char const *) 0.1 0.6 680,336 0.6 isspace 0.1 0.1 540,806 0.7 QImage::loadFromData(class QByteArray const &,char const *) 0.1 0.2 1,594 230.4 DcmObject::transferInit(void) 0.1 0.1 413,258 0.9 DiMonoImage::InitSint16(class DiMonoModality *) 0.1 0.1 802 455.7 getStringPart(class OFString &,char const *,unsigned long) 0.1 0.2 35,562 9.8 DcmSequenceOfItems::readTagAndLength(class DcmInputStream &,enum E_TransferSyntax,class DcmTag &,unsigned long &) 0.1 0.4 33,848 10.2 DcmDictEntryList::end(void) 0.1 0.1 682,304 0.5 OFString::OFString(void) 0.1 0.3 433,947 0.8 DcmSequenceOfItems::read(class DcmInputStream &,enum E_TransferSyntax,enum E_GrpLenEncoding,unsigned long) 0.1 4.6 12,429 26.6 DcmDictEntryList::begin(void) 0.1 0.1 684,193 0.5

2012-01-31, 00:09:30 - Andras Lasso

We could have a look at utilizing DICOMDIR files both for making the import faster. The DICOMDIR file is often available for DICOM files that were written to a physical medium. See more details in Part 10 of the DICOM standard: http://medical.nema.org/Dicom/2011/11_10pu.pdf

2012-01-31, 18:16:00 - pieper

Marco Nolden of DKFZ said that he’s got a student working on adding DICOMDIR support to ctkDICOMDatabase - we could check with him on the status of that.

2012-06-02, 14:38:33 - Andras Lasso

Updating tickets (#24, #27, #29, #34, #37, #40, #44, #50, #54, #65, #68)

2012-06-02, 14:38:33 - Andras Lasso

milestone_id: changed from “NA-MIC 2012 Summer Project week” to “SlicerRt-0.3 release”

2012-07-23, 18:27:27 - Andras Lasso

This may explain the bad performance: http://www.sqlite.org/faq.html#q19

Thus, it seems that we have multiple options to make the DICOM import much faster:

2012-07-23, 18:30:29 - Andras Lasso

status: changed from “New” to “Accepted”

2012-07-23, 19:02:15 - Andras Lasso

Adding the following lines to the end of ctkDICOMDatabase::openDatabase(const QString databaseFile, const QString& connectionName ) makes the import much faster: //Disable synchronous writing to make modifications faster QSqlQuery pragmaSyncQuery(d->Database); pragmaSyncQuery.exec(‘PRAGMA synchronous = OFF’); pragmaSyncQuery.finish();

Importing the full SlicerRT data: SSD disk: 30 sec (original) -> 22 sec (sync off) HDD disk: 271 sec (original) -> 22 sec (sync off)

2012-07-24, 13:16:39 - Andras Lasso

assigned_to_id: changed from null to “lassoan”

2012-07-24, 13:16:39 - Andras Lasso

milestone_id: changed from “SlicerRt-0.3 release” to “Release for AAPM2012”

2012-07-24, 13:17:29 - Andras Lasso

Sync OFF is now integrated into CTK used by Slicer.

2012-07-24, 13:17:29 - Andras Lasso

status: changed from “Accepted” to “Fixed”

#25 Patient name is not always displayed correctly in the Slicer DICOM browser

In the Slicer DICOM browser the patient name sometimes contains ^ characters (the ^ characters are supposed to separate first/last/middle names and should not be displayed). It is reproducible with the SlicerRt test data set (https://subversion.assembla.com/svn/slicerrt/trunk/SlicerRt/data/), see the attached screenshot.

2012-01-20, 18:30:17 - Andras Lasso

milestone_id: changed from null to “ImNO demo”

2012-01-23, 19:19:40 - Andras Lasso

assigned_to_id: changed from null to “lassoan”

2012-02-10, 16:11:38 - Andras Lasso

Updating tickets (#20, #25, #27, #36)

2012-02-10, 16:11:38 - Andras Lasso

milestone_id: changed from “ImNO demo” to “NA-MIC 2012 Summer Project week”

2012-03-05, 00:16:06 - Andras Lasso

milestone: changed from null to “Basic RT support as standard 3DSlicer extension”

2012-04-13, 22:36:31 - Andras Lasso

milestone: changed from “SlicerRt-0.2 release” to “SlicerRt-0.3 release”

2012-08-20, 20:28:19 - Andras Lasso

milestone: changed from “SlicerRt-0.3 release” to “SlicerRt 2012-08”

2012-09-05, 14:38:56 - Andras Lasso

Updating tickets (#59, #33, #112, #131, #25, #129, #115, #81, #114, #113, #111, #38, #137)

2012-09-05, 14:38:56 - Andras Lasso

milestone_id: changed from “SlicerRt 2012-08” to “SlicerRt 2012-09”

2012-10-12, 12:36:53 - Csaba Pinter

Updating tickets (#144, #25, #38, #59, #61, #81, #113, #115, #131, #134, #136, #137, #138, #140, #145, #146)

2012-10-12, 12:36:53 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.5.0 (2012-09)” to “SlicerRt 0.6.0”

2012-11-13, 17:36:42 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.6.0 (2012-10)” to “SlicerRt 0.7.0 (2012-11)”

2012-12-07, 20:15:28 - Andras Lasso

image:screenshot-1354911284565.jpg Patient name is not decoded (contains ^ characters)

2012-12-07, 20:15:28 - Andras Lasso

Attachment added: “screenshot-1354911284565.jpg”

2012-12-07, 20:17:16 - Andras Lasso

description: changed from “In the Slicer DICOM browser…” to “In the Slicer DICOM browser…”

2012-12-12, 14:42:36 - pieper

Can you try this patch and see if it does what you expect:

https://github.com/pieper/CTK/compare/slicerrt-25-dicom-personname-display

2012-12-12, 15:24:11 - Csaba Pinter

image:d7eqyarg8r4RSPacwqEsg8

2012-12-12, 15:24:11 - Csaba Pinter

Attachment added: “Ticket25_FixedPatientNames1.png”

2012-12-12, 15:25:53 - Csaba Pinter

Thank you, Steve!

I tried it and made a screenshot. Andras, if you consider the screenshot above good, then we can consider it solved.

This ticket should be closed once this change appears in the CTK release used by Slicer superbuild

2012-12-12, 15:57:10 - Andras Lasso

Csaba, thanks for the screenshot.

@pieper: The fix is almost good, there are just two things:

2012-12-12, 20:05:47 - pieper

The current version (first middle last, suffix) is what dcmtk gives by default for the formatted string extracted from the ^ delimited version. But there’s another option to get the names as independent parts. So I propose we should be able to display as: last, first middle, suffix

For the PHANTOM, fourD scan, I suspect the issue actually lies in the patient ID field since the name shouldn’t be the unique key. Can you attach (or send me) two files that lead to this issue so we can test?

2012-12-12, 20:19:43 - Andras Lasso

The data are available here: https://subversion.assembla.com/svn/slicerrt/trunk/SlicerRt/data/pinnacle3-9.9-phantom https://subversion.assembla.com/svn/slicerrt/trunk/SlicerRt/data/pinnacle3-9.9-phantom-imrt

2012-12-14, 10:22:03 - pieper

Try the updated branch - now the last name is shown first.

2012-12-14, 17:05:08 - Csaba Pinter

Attachment added: “Ticket25_FixedPatientNames2.png”

2012-12-14, 17:10:37 - Csaba Pinter

Attachment added: “Ticket25_FixedPatientNames2.png”

2012-12-14, 17:12:39 - Csaba Pinter

image:b2UdugrHer4RBaacwqjQYw

2012-12-14, 17:12:39 - Csaba Pinter

Attachment added: “Ticket25_FixedPatientNames2.png”

2012-12-14, 17:19:10 - Csaba Pinter

Thanks, Steve! This is the current state above. The patient name looks good now. Looking at the DICOM tags of the fourD phantom dataset, it seems that the patient names are not the same. I think it should be the Patient ID that groups them together instead of the patient name.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
CT:
(0010,0010) PN [PHANTOM, fourD]                         #  14, 1 PatientName
(0010,0020) LO [1111111]                                #   8, 1 PatientID

RTDose:
(0010,0010) PN [PHANTOM^FourD^^]                        #  16, 1 PatientName
(0010,0020) LO [1111111]                                #   8, 1 PatientID

RTImage:
(0010,0010) PN [PHANTOM^FourD^^]                        #  16, 1 PatientName
(0010,0020) LO [1111111]                                #   8, 1 PatientID

RTPlan:
(0010,0010) PN [PHANTOM^FourD^^]                        #  16, 1 PatientName
(0010,0020) LO [1111111]                                #   8, 1 PatientID

RTStruct
(0010,0010) PN [PHANTOM^FourD^^]                        #  16, 1 PatientName
(0010,0020) LO [1111111]                                #   8, 1 PatientID



2012-12-14, 17:23:34 - wangk

Now that I took a closer look, the ‘age’ field is filled with imaging modality information. is this the intended effect? am I missing something here?

2012-12-14, 17:47:33 - Andras Lasso

Age: the issue is that the column headings are the same for patient, study, series level, while the information is clearly different. The proper implementation would be to have separate column heading for each level (or have multiple lists instead of a tree). It’s a separate issue, I’ve added #199 to keep track of that.

2012-12-14, 17:48:11 - Csaba Pinter

I haven’t noticed it, good catch! I think it is something to fix. I’ve created a Slicer mantis issue for it (http://www.na-mic.org/Bug/view.php?id=2828)

2012-12-14, 18:06:51 - Andras Lasso

Unfortunately, the DICOM standard doesn’t specify how to determine if two series belong to the same patient or not. Patient ID is not a unique identifier (see http://fixunix.com/dicom/497052-dangers-assuming-patient-id-unique-key.html). Usually the patient name and ID are compared, as they are both mandatory fields, but due to the lack of standard Slicer could implement any behavior, as long as it’s consistent throughout the application.

The main problem with the current Slicer behavior that it is inconsistent:

A good behavior could be: treat two patients to be the same if patient names and ids are the same, compared in a case-insensitive and character encoding neutral manner.

2012-12-14, 18:38:31 - pieper

Thanks for the info Csaba - lots of things to think about on this one. Julien, Jc, and I have been discussing it at length and are considering several options.

It seems to us that we should be very careful with the import and display of cases like this, since the PatientID is not ‘globally’ unique (the same ID may be used by different hospitals to refer to different people). We might want to have On the other hand, the same PatientID with different PatientNames can happen due to a typo or spelling variant in the PatientName, like the PHANTOM, fourD vs PHANTOM^FourD^^ example here.

We think it makes the most sense to detect these issues and display them to the user, with the option to resolve the issues in the database (not modifying the original dicom files).

Probably this basically similar to the underlying issue of #36, where the PatientName fields are inconsistent across series within the same study and probably should be dealt with together.

I envision a tool that checks the ctkDICOMDatabase for consistency according to a number of rules that we’ll need to define. Then we’ll need to have a set of corrective actions that the user will need to manually review and approve.

Another option is to consider the PatientName+PatientID as the main key, so that studies with unique PatientNames are not grouped together in the browser tree. This seems fail safe, but not as useful.

While we consider these longer term options we’ll keep looking at this issue.

2012-12-14, 19:18:05 - pieper

We looked at a couple possible solutions to this, but the fact remains that when multiple series have the same StudyUID, but different study level or patient level information the only viable option is to make only ‘obvious’ corrections automatically, and requesting user input on non-obvious issues.

2012-12-14, 19:23:40 - Csaba Pinter

Yes, this seems to be the best solution. We can still implement heuristics to set the most probable default choices, so that most of the time the user has to click only 1.

2012-12-14, 19:26:47 - pieper

As a small aside, these issues (#25 and #36) are in the ctkDICOMDatabase code, so the issues should be tracked in the ctk issue tracker with the DICOM tag and cross-links back to slicer or slicerrt as needed.

https://github.com/commontk/CTK/issues

2012-12-14, 20:27:41 - Andras Lasso

Added tickets on the CTK issue tracker: https://github.com/commontk/CTK/issues/274 (solved by Steve’s patch) https://github.com/commontk/CTK/issues/275 (remaining patient comparison inconsistency issue)

2012-12-23, 20:40:57 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.7.0 (2012-11)” to “SlicerRt 0.8.0 (2012-12)”

2013-01-24, 16:59:57 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.8.0 (2013-01)” to “SlicerRt 0.9.0 (2013-03)”

2013-03-24, 19:57:05 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.9.0 (2013-03)” to “SlicerRt 0.10.0 (2013-04)”

2013-04-04, 16:35:02 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.10.0 (2013-04)” to “SlicerRt 0.11.0 (2013-05)”

2013-05-28, 18:13:57 - Csaba Pinter

Moving tickets to 1.0, as 0.11 will be released before the NA-MIC week and the tasks in question will be tackled at the project week.

2013-05-28, 18:13:57 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.11.0 (2013-05)” to “SlicerRt 1.0 (2013-06)”

2014-01-30, 20:28:26 - Csaba Pinter

image:aswZCeIE0r44o2acwqjQXA

2014-01-30, 20:28:26 - Csaba Pinter

Attachment added: “NewDicomBrowser.jpg”

2014-01-30, 20:28:44 - Csaba Pinter

Tie same issue came back with the new DICOM browser

2017-07-28, 18:52:30 - Csaba Pinter

In relation to a project this issue came up again, specifically the handling of the same patient when their name is stored different ways (for MR it’s ‘DOE^JOHN’, for US it’s ‘DOE^JOHN^^^’).

Just to record the discussion with Andras about this issue:

2017-07-28, 22:26:22 - pieper

Those are good ideas - maybe this should be reported as a CTK issue.

#26 Modality list does not include RT objects in the Slicer DICOM browser

Add RTI, RTD, RTSS, RTP as categories (RT image, RT dose, RT structure set, RT plan). If this would mean to many displayed items then maybe only those modalities should be listed that exist in the database.

2012-01-20, 18:32:06 - Andras Lasso

milestone: changed from null to “NA-MIC 2012 Summer Project week”

2012-03-05, 00:17:40 - Andras Lasso

milestone: changed from null to “Basic RT support as standard 3DSlicer extension”

2012-04-13, 22:27:48 - Andras Lasso

Slicer 4.1 does not contain modality list filter any more

2012-04-13, 22:27:48 - Andras Lasso

status: changed from “New” to “Invalid”

#27 DICOM browser layout in Slicer is not optimal

2012-01-19, 14:18:30 - Andras Lasso

description: changed from “The tree view is too small…” to “The tree view is too small…”

2012-01-20, 18:31:31 - Andras Lasso

milestone: changed from null to “ImNO demo”

2012-01-20, 19:39:31 - Csaba Pinter

description: changed from “The tree view is too small…” to “ The tree view is too smal…”

2012-01-21, 00:22:58 - Andras Lasso

assigned_to_id: changed from null to “lassoan”

2012-01-24, 14:55:06 - Andras Lasso

Questions:

2012-01-24, 14:58:07 - Andras Lasso

file:dtiEq-rPSr4A27acwqjQYw

2012-01-24, 14:58:07 - Andras Lasso

Attachment added: “DicomPatientBrowsersReview.pptx”

2012-01-24, 15:03:51 - Andras Lasso

file:cGgMg-rPWr4BfqacwqjQWU

2012-01-24, 15:03:51 - Andras Lasso

Attachment added: “DicomPatientBrowserFields.xlsx”

2012-01-24, 16:28:08 - pieper

This material is very helpful.

I addressed some of these issues in the latest checkin to the trunk which is basically what I was working on before RSNA but finally debugged enough to be able to check it in.

http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=19131

It would be good to review this new interface in terms of the research you’ve been doing on standards in the field.

One usability question: what do people think about the popup widget? I’m thinking of replacing it with code that would take over the ‘central widget’ of the interface (basically replace all the slicer and 3d viewers with the contents of the dicom widget (or with some follow up implementation).

-Steve

2012-01-24, 16:34:38 - pieper

BTW, here’s another screen shot for your study.

This is one that Andrey captured from the BWH Syngo via system:

http://www.na-mic.org/Wiki/images/e/e2/Syngo_via_annotations_results.png

2012-01-24, 18:23:55 - Andras Lasso

file:dtiEq-rPSr4A27acwqjQYw

2012-01-24, 18:23:55 - Andras Lasso

attachment_updated:filesize: changed from “5245047” to “5378522”

2012-01-24, 18:24:19 - Andras Lasso

file:cGgMg-rPWr4BfqacwqjQWU

2012-01-24, 18:24:19 - Andras Lasso

attachment_updated:filesize: changed from “15181” to “15765”

2012-01-25, 14:54:57 - Andras Lasso

file:dtiEq-rPSr4A27acwqjQYw

2012-01-25, 14:54:57 - Andras Lasso

attachment_updated:filesize: changed from “5378522” to “5528397”

2012-01-25, 14:56:07 - Andras Lasso

file:cGgMg-rPWr4BfqacwqjQWU

2012-01-25, 14:56:07 - Andras Lasso

attachment_updated:filesize: changed from “15765” to “15874”

2012-01-25, 15:00:30 - Andras Lasso

file:bta4_qr2ur4BW6acwqjQXA

2012-01-25, 15:00:30 - Andras Lasso

Attachment added: “PatientBrowserProposal.pptx”

2012-01-26, 00:55:51 - Andras Lasso

file:dtiEq-rPSr4A27acwqjQYw

2012-01-26, 00:55:51 - Andras Lasso

attachment_updated:filesize: changed from “5528397” to “6540655”

2012-02-10, 16:11:38 - Andras Lasso

Updating tickets (#20, #25, #27, #36)

2012-02-10, 16:11:38 - Andras Lasso

milestone_id: changed from “ImNO demo” to “NA-MIC 2012 Summer Project week”

2012-06-02, 14:38:33 - Andras Lasso

Updating tickets (#24, #27, #29, #34, #37, #40, #44, #50, #54, #65, #68)

2012-06-02, 14:38:33 - Andras Lasso

milestone_id: changed from “NA-MIC 2012 Summer Project week” to “SlicerRt-0.3 release”

2012-08-20, 20:01:23 - Andras Lasso

DICOM browser in Slicer is functional. No further enhancements are planned until we receive specific feedback from users.

2012-08-20, 20:01:23 - Andras Lasso

status: changed from “New” to “Fixed”

#28 Dose map image coordinate system has to be transformed during import

When loading a dose map into slicer with the standard DICOM image loading method then it appears in a different size and location compared to the anatomical image and contours, because it’s defined in a different coordinate system.

Convert the dose map into the same coordinate system as the anatomical image. Maybe insert it into the scene under a transform node.

2012-01-20, 18:32:10 - Andras Lasso

milestone: changed from null to “ImNO demo”

2012-01-20, 19:41:20 - Csaba Pinter

assigned_to_id: changed from null to “wangk”

2012-01-23, 19:25:28 - wangk

status: changed from “New” to “Accepted”

2012-01-30, 20:19:32 - Andras Lasso

status: changed from “Accepted” to “New”

2012-02-10, 16:36:33 - Csaba Pinter

assigned_to_id: changed from “wangk” to “pinter”

2012-02-10, 19:23:44 - Csaba Pinter

status: changed from “New” to “Accepted”

2012-02-10, 22:19:41 - Csaba Pinter

(In r:39) Test #28: Pixel Spacing is read for dose volume and applied after loading it

2012-02-10, 22:19:41 - Csaba Pinter

status: changed from “Accepted” to “Test”

2012-02-23, 15:20:46 - Csaba Pinter

status: changed from “Test” to “Fixed”

#29 RT images should be imported as a series of single-slice images

Currently RT images (RTIMAGE IOD, typically portal images) are loaded as a single 3D volume, while they are actually a set of 2D images. It would be better to import them as separate single-slice 3D volumes.

The loaded slices need to be placed at the proper positions. Beam geometry models reach from the source to the corresponding RT Image (if available).

2012-01-19, 14:10:00 - Andras Lasso

description: changed from “Currently RT images (typica…” to “Currently RT images (RTIMAG…”

2012-01-20, 18:31:53 - Andras Lasso

milestone: changed from null to “NA-MIC 2012 Summer Project week”

2012-06-02, 14:38:33 - Andras Lasso

Updating tickets (#24, #27, #29, #34, #37, #40, #44, #50, #54, #65, #68)

2012-06-02, 14:38:33 - Andras Lasso

milestone_id: changed from “NA-MIC 2012 Summer Project week” to “SlicerRt-0.3 release”

2012-08-20, 20:07:28 - Andras Lasso

milestone: changed from “SlicerRt-0.3 release” to “Future”

2013-01-20, 07:03:05 - Csaba Pinter

description: changed from “Currently RT images (RTIMAG…” to “Currently RT images (RTIMAG…”

2013-04-25, 01:39:47 - Csaba Pinter

milestone_id: changed from “Future” to “SlicerRt 1.0 (2013-06)”

2013-06-04, 21:10:21 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2013-08-30, 17:59:10 - Csaba Pinter

(In r:1134|slicerrt:1134) Re #29: WIP Adding code related to RTImage loading

2013-08-30, 19:37:20 - Csaba Pinter

(In r:1135|slicerrt:1135) Re #29: WIP Added reading of more RTImage DICOM tags

2013-09-05, 14:36:20 - Csaba Pinter

working_hours: changed from “0.0” to “2.0”

2013-09-05, 14:36:20 - Csaba Pinter

total_working_hours: changed from “0.0” to “2.0”

2013-09-05, 14:38:36 - Csaba Pinter

milestone_id: changed from “SlicerRt 1.0” to “SlicerRt 0.12”

2013-09-12, 22:19:33 - Csaba Pinter

(In r:1152|slicerrt:1152) Re #29: RT images are loaded slice by slice. Their position and orientation is not yet set correctly; Improved patient hierarchy plugin mechanism to take the to-be parent into account when getting confidence number from a plugin

2013-09-13, 18:36:26 - Csaba Pinter

(In r:1156|slicerrt:1156) Re #29: Read and apply window center and width values to the loaded RT Image objects

2013-09-15, 23:39:56 - Csaba Pinter

(In r:1158|slicerrt:1158) Re #29: WIP store relevant objects and metadata for setting up RT image geometry

2013-09-16, 21:16:27 - Csaba Pinter

(In r:1159|slicerrt:1159) Re #29: Find corresponding isocenter for an RT image and vice versa regardless of the order of loading

2013-09-18, 23:05:22 - Csaba Pinter

(In r:1163|slicerrt:1163) Re #29: RT image is loaded in the correct position and orientation

2013-09-19, 17:38:19 - Csaba Pinter

(In r:1166|slicerrt:1166) Re #29: Display RT images as textured models. One slice is allowed at a time

2013-09-20, 20:28:44 - Csaba Pinter

(In r:1170|slicerrt:1170) Re #29: PlanarImage hidden module created. Its logic is used by DicomRtImport when RT images are loaded. Every planar image (for now they are all RT images) has a PlanarImage parameter set, with the image itself, the displayed model and the texture volume. Re #414: vtkSlicerPlanarImageModuleLogic can be used as an example for logic and parameter set node relations Re #411: vtkMRMLPlanarImageNode can be used as an example for the new reference mechanism Fixed #347: New icon for showing volumes in the Patient Hierarchy tree

2013-09-20, 21:59:08 - Csaba Pinter

(In r:1172|slicerrt:1172) Re #29: Planar image display model is updated when the planar image is transformed Re #411: Role attribute names have to be specified. Otherwise it causes a crash when saving a scene

2013-09-22, 21:40:12 - Csaba Pinter

(In r:1173|slicerrt:1173) Re #29: Image planes appear after loading a scene (workarounds had to be applied, see below) Re #411: User reference roles cannot be used after loading a scene. This should be fixed in Slicer core

2013-09-22, 22:30:41 - Csaba Pinter

(In r:1174|slicerrt:1174) Test #29: Isocenter to fixed coordinate system transform is now taken into account when loading RT images; Member variables for unused tags removed from the reader class

2013-09-22, 22:30:41 - Csaba Pinter

status: changed from “New” to “Test”

2013-09-23, 18:41:39 - Csaba Pinter

(In r:1176|slicerrt:1176) Re #29: Support datasets, where

2013-09-25, 23:59:18 - Csaba Pinter

working_hours: changed from “2.0” to “0.0”

2013-09-25, 23:59:18 - Csaba Pinter

status: changed from “Test” to “Fixed”

2013-09-25, 23:59:18 - Csaba Pinter

total_working_hours: changed from “2.0” to “0.0”

#30 Show dose maps with a color LUT by default

To make it simpler to overlay dose information over anatomical images it’s better to apply a color LUT on the dose map images (RTDOSE IOD) when they are imported into Slicer.

2012-01-20, 18:31:34 - Andras Lasso

milestone: changed from null to “ImNO demo”

2012-01-20, 18:32:50 - Andras Lasso

milestone: changed from null to “NA-MIC 2012 Summer Project week”

2012-02-14, 05:27:14 - Andras Lasso

assigned_to_id: changed from null to “lassoan”

2012-02-14, 05:27:14 - Andras Lasso

status: changed from “New” to “Fixed”

#31 Add plastimatch sample data sets to SparKit data repository

download from http://forge.abcd.harvard.edu/gf/project/plastimatch/frs/?action=FrsReleaseBrowse&frs_package_id=93 uncompress upload

2012-01-20, 18:31:39 - Andras Lasso

milestone: changed from null to “ImNO demo”

2012-01-20, 18:35:07 - Andras Lasso

assigned_to_id: changed from null to “lassoan”

2012-01-20, 18:35:07 - Andras Lasso

status: changed from “New” to “Accepted”

2012-01-21, 00:32:38 - Andras Lasso

(In r:30) Fixed #31: Added DICOM-RT data sets from the Plastimatch sample data collection (http://forge.abcd.harvard.edu/gf/project/plastimatch/frs/?action=FrsReleaseBrowse&frs_package_id=93)

2012-01-21, 00:32:38 - Andras Lasso

status: changed from “Accepted” to “Fixed”

#32 Compute and display DVH

2012-01-20, 18:31:26 - Andras Lasso

milestone: changed from null to “ImNO demo”

2012-01-20, 18:32:36 - Andras Lasso

milestone: changed from null to “NA-MIC 2012 Summer Project week”

2012-02-12, 00:10:37 - Andras Lasso

(In r:44) re #32: Added standard module files for DVH computation

2012-02-12, 00:10:37 - Andras Lasso

assigned_to_id: changed from null to “lassoan”

2012-02-12, 00:15:53 - Andras Lasso

(In r:45) re #32: Added s4ext plugin module descriptor file

2012-02-18, 15:31:22 - Andras Lasso

Remaining task:

Scaling of the x axis is not meaningful. We just show the dimensionless value that is stored in the voxels, while absolute dose values (Gy) or relative dose values should be displayed instead. Need to use the (3004,000e) DoseGridScaling, (3004,0002) DoseUnits, etc. values in the DICOM header. Probably we should read these fields from the DICOM header and store them as MRML node attributes.

Some more info about computation and display of DVH: http://cerr.info/cerrwiki/index.php?title=DVH&oldid=1456 http://www.eyephysics.com/ps/ps5/userguide/DoseVolDoc.html http://simuplan.com/s/images/0/06/DVHManual.pdf http://www.ncbi.nlm.nih.gov/pubmed/2032898

2012-02-28, 18:56:11 - Andras Lasso

Save the reference value and unit as custom MRML node attribute. Have a loadable module to compute and display the DVH in a chart.

Select existing or new chart to add the values to.

Currently DVH generation from a single labelmap is enough. Later the DVH generation could work from directly using a model hierarchy.

2012-02-28, 18:56:11 - Andras Lasso

assigned_to_id: changed from “lassoan” to “pinter”

2012-02-28, 18:56:26 - Andras Lasso

milestone_id: changed from “NA-MIC 2012 Summer Project week” to “QIN meeting demo”

2012-02-29, 16:14:15 - Csaba Pinter

(In r:48) Re #32: Renamed the initial scripted DVH module

2012-02-29, 17:04:53 - Csaba Pinter

(In r:49) Re #32: DoseVolumeHistogram skeleton added (generated by ModuleWizard)

2012-03-01, 16:49:08 - Csaba Pinter

(In r:50) Re #32: vtkPolyDataToLabelmapFilter added (based on ModelToLabelMap CLI module)

2012-03-02, 18:51:45 - Csaba Pinter

status: changed from “New” to “Accepted”

2012-03-02, 21:38:01 - Csaba Pinter

(In r:52) Re #32: vtkPolyDataToLabelmapFilter works fine, UI and logic created

2012-03-02, 22:47:44 - Csaba Pinter

(In r:53) Test #32: Statistics and DVH plotting works fine

2012-03-02, 22:47:44 - Csaba Pinter

status: changed from “Accepted” to “Test”

2012-03-02, 23:40:20 - Csaba Pinter

(In r:55) Re #32: Structure names are displayed in the stats and in the chart; Dose scaling applied to the statistics too; Y axis of the chart shows percent;

2012-03-03, 21:24:54 - Andras Lasso

(In r:59) Re #32: Fixed DVH computation on transformed models (model to RAS transform is now applied)

2012-03-03, 22:47:54 - Andras Lasso

(In r:60) Re #32: Force recomputation of DVH whenever plotting or statistics is requested (as DVH can change if the model is transformed or edited, so it must not be cached). Renamed DVH ‘statistics’ to ‘metrics’.

2012-03-04, 19:21:58 - Andras Lasso

(In r:61) Re #32: Fixed DVH computation on transformed dosemap (now any transform can be applied on the dosemap and/or the structure set)

2012-03-04, 19:28:18 - Andras Lasso

(In r:62) Re #32: Removed debugging code, added comments

2012-03-04, 21:39:39 - Andras Lasso

(In r:64) Re #32: Fixed crash when trying to compute DVH with a non-dose volume

2012-03-05, 20:50:51 - Andras Lasso

The module works well, providing basic DVH plotting and metric.

2012-03-05, 20:50:51 - Andras Lasso

status: changed from “Test” to “Fixed”

#33 Compute and display isodose contours

The user defines the dose level values (each value manually)

2012-01-20, 18:31:20 - Andras Lasso

milestone: changed from null to “ImNO demo”

2012-01-20, 18:32:55 - Andras Lasso

milestone: changed from null to “NA-MIC 2012 Summer Project week”

2012-02-28, 00:38:21 - Andras Lasso

Based on the feedback of prospective users (https://www.assembla.com/spaces/sparkit/wiki/20120213_SlicerRt_meeting_at_ImNO2012) this doesn’t seem to be a very important feature. Anyway, the effect can be achieved by using discrete colormaps or grayscale model maker and slice intersections.

2012-02-28, 00:38:21 - Andras Lasso

priority: changed from “Normal (3)” to “Low (4)”

2012-03-05, 00:17:24 - Andras Lasso

milestone: changed from null to “RT data analysis”

2012-04-03, 14:51:39 - Andras Lasso

Others reported that they would like to have isodose line display, so let’s do at least a basic implementation.

Two design options: A. Have one model with multiple isodose surfaces, color it with scalar values. Advantage: we don’t add too many MRML nodes, easy to show/hide all of them at once. B. Have one model for each isodose surface, color it with the surface color. Advantage: each surface can be turned on/off individually, color can be changed easily, the model name can contain the dose value. => To decide ask people and check how it is done in other software.

Would be nice to show a color bar (or text in the isodose line intersections) that specifies which line correspond to which dose value. It could be done by implementing a generic colormap display widget that could show the colormap and labels in the 2D and 3D viewers.

2012-04-03, 14:52:01 - Andras Lasso

milestone_id: changed from “RT data analysis” to “Basic RT support as standard 3DSlicer extension”

2012-04-13, 22:35:28 - Andras Lasso

milestone: changed from “SlicerRt-0.2 release” to “SlicerRt-0.3 release”

2012-05-23, 19:46:08 - wangk

After discussion with researchers at PMH, this was brought up again since it is very time consuming to do manual isosurface if there are more than 2 or 3 iso dose levels.

2012-06-18, 15:17:25 - Andras Lasso

description: changed from “” to “The user defines the dose l…”

2012-07-26, 15:31:18 - Andras Lasso

assigned_to_id: changed from null to “wangk”

2012-07-26, 15:31:18 - Andras Lasso

status: changed from “New” to “Accepted”

2012-07-26, 15:31:34 - Andras Lasso

priority: changed from “Low (4)” to “Normal (3)”

2012-07-30, 15:48:09 - wangk

(In r:214|slicerrt:214) Re #33: Interim check in. The code compiles but is not working properly. It is mainly for other people to see the changes so that they can modify as needed.

2012-07-30, 15:48:57 - wangk

Checked in the changes so that Csaba can see it and modify as needed.

2012-07-30, 19:44:23 - wangk

(In r:215|slicerrt:215) Re #33: Fixed compilation errors. now it should compile with no errors.

2012-07-30, 23:42:24 - Csaba Pinter

(In r:216|slicerrt:216) Re #33: Fixed crash when removing rows from the isodose table

2012-07-31, 19:49:19 - wangk

(In r:218|slicerrt:218) Re #33: Fixed the origin and spacing for input dose volume. now the iso surface are displayed correctly.

2012-08-01, 16:59:22 - wangk

(In r:220|slicerrt:220) Re #33: Add checks for input dose volume and some other checks for button states.

2012-08-02, 17:01:23 - Csaba Pinter

(In r:221|slicerrt:221) Re #33: Code cleanup

2012-08-14, 22:00:29 - Andras Lasso

Slicer issue reported for the model hierarchy not being created properly (http://www.na-mic.org/Bug/view.php?id=2403)

2012-08-20, 20:18:00 - Andras Lasso

milestone: changed from “SlicerRt-0.3 release” to “SlicerRt 2012-08”

2012-08-21, 19:13:20 - wangk

(In r:259|slicerrt:259) Re #33: Added colormap and decimation of the iso surface.

2012-08-22, 17:14:18 - wangk

(In r:261|slicerrt:261) Re #33: Change UI to simple QLineEdit for dose level inputs now.

2012-08-22, 17:15:01 - wangk

status: changed from “Accepted” to “Test”

2012-08-22, 18:17:14 - Andras Lasso

Thanks Kevin, you’re making progress.

Ultimately the GUI should look something like this (just a proposal, we can discuss, would be useful to see the GUI of existing software and implement something that is familiar for users):

Dose Volume: node selector listbox ** Isodose levels ( **label: Gy or %, depending on Level mode ): editbox; default: 100, 95, 90, 50, 30, 10 Level mode: listbox with 2 options: Percentage of reference level / Absolute; default: percentage Reference level (Gy): editbox, enabled only if Level mode is Percentage of reference level; default Update or apply button checkbox Show isodose lines checkbox Show isodose surfaces checkbox Show scalar bar

If we add more features that are not strictly related to isodose (such as colormap definition) then we should rename the Isodose module to have a more generic name (e.g., ‘Dose visualization’).

2012-08-22, 18:17:14 - Andras Lasso

status: changed from “Test” to “Accepted”

2012-08-22, 20:05:04 - wangk

I have just talked with our postdoc here. he showed me a couple of software. it seems that they only use absolute value when computing isodose lines.

I think we have many options regarding how to compute and how to display. so I think we need to discuss in our next weekly meeting.

2012-08-22, 20:55:30 - Andras Lasso

OK, let’s discuss it then. Please work on the obvious stuff till then (naming of the model hierarchy and dose surface models, show/hide lines and surfaces, update models by removing and recreating them if levels are changed, etc.) and also prepare a GUI proposal (just a single ppt slide) that we can discuss on Monday.

2012-08-27, 19:38:16 - Andras Lasso

GUI suggestion after discussion:

Dose Volume: node selector listbox ** Isodose levels: qMRMLColorTableView, specify the dose in Gy **Update or apply button checkbox Show isodose lines checkbox Show isodose surfaces checkbox Show scalar bar

If we add more features that are not strictly related to isodose (such as colormap definition) then we should rename the Isodose module to have a more generic name (e.g., ‘Dose visualization’).

2012-08-30, 18:55:26 - wangk

(In r:284|slicerrt:284) Re #33: Interim check commit. Changed UI to Slicer MRMLColorTableView for iso dose level. still need a bit more work. the show/hide isoline/surface is not working for now.

2012-09-05, 14:38:57 - Andras Lasso

Updating tickets (#59, #33, #112, #131, #25, #129, #115, #81, #114, #113, #111, #38, #137)

2012-09-05, 14:38:57 - Andras Lasso

milestone_id: changed from “SlicerRt 2012-08” to “SlicerRt 2012-09”

2012-09-06, 20:05:36 - wangk

After some investigation, I found the qMRMLColorTableView widget is not good for our iso level definition.

the qMRMLColorTableView widget is a good gui representation for vtklookuptable class. however, to use vtklookuptable with scalar range (0,255), we will have a lookup table that has 256 entries. we do not want to have so many entries. so we have to use vtkcolortransferfunction class. but qMRMLColorTableView has limited support for that class. when you copy a vtkcolortransferfunction, it creates an equvilent vtklookuptable then you can modify that.

so we cannot use qMRMLColorTableView widget in isodose module. either derive a new class from QTableView to make a new widget or use QTableView directly which is what we did before.

Any comments?

2012-09-06, 20:12:06 - Csaba Pinter

The qMRMLColorTableView widget displays the structure colors lookup table the way it should, with only showing the entries linked to each structure, instead of 256 entries. Maybe the key is the type you set to the vtkMRMLColorTableNode to display. There are many types, you can see them in the source code of the node. The way I used the node you can see in vtkSlicerDicomRtImportModuleLogic.cxx

2012-09-06, 20:30:50 - wangk

I have looked at code in vtkSlicerDicomRtImportModuleLogic.cxx. I think I have found a way to use vtkMRMLColorTableNode. I was looking at using the color index to store the isodose levels which is not possible. but we can also use color name to store the isodose levels. thanks.

2012-09-19, 18:13:51 - wangk

(In r:294|slicerrt:294) Re #33: now use colortableview widget and also add options to enable/disable visibility of surface and isolines. Scalarbar is not working now.

2012-09-19, 18:44:33 - Andras Lasso

Very nice work, Kevin!

A few suggestions:

2012-09-19, 21:18:01 - Andras Lasso

Also, the color map does not appear in the Color module GUI, so it’s not possible to show/hide the scalar bar.

2012-09-20, 14:39:36 - Csaba Pinter

(In r:297|slicerrt:297) Re #33: Default isodose levels changed from 1-6 to 5,10-30 and the colors are changed so that they gradually ‘heat up’

2012-09-20, 14:59:58 - wangk

the color map is in the user defined category. if you do not like that, I can put it in top level so it is much more visible to users.

2012-09-20, 15:40:51 - wangk

(In r:298|slicerrt:298) Re #33: Removed the scalarbar from ui and code by now until we have a solution. rearranged the display ui and removed output ui.

2012-09-20, 16:01:52 - Csaba Pinter

(In r:299|slicerrt:299) Re #33: Isodose module is now not experimental; SlicerRt version added to extension description; Cleaning up in the Isodose logic

2012-09-24, 20:06:33 - Csaba Pinter

I added a Slicer Mantis issue for the scalar bar labels: http://www.na-mic.org/Bug/view.php?id=2563

2012-10-05, 14:49:22 - wangk

(In r:338|slicerrt:338) Re #33: Added support to switch between Isodose parameter sets so that the gui updates and also creates new colortablenode. Included the name of the isodose ‘Parameter set’ in the Model hierarchy name.

2012-10-05, 14:50:38 - wangk

Now this module is done except the scalarbar which we will need the changes be made in slicer core. I am changing the status to text for now.

2012-10-05, 14:50:38 - wangk

status: changed from “Accepted” to “Test”

2012-10-12, 12:36:08 - Csaba Pinter

status: changed from “Test” to “Fixed”

2013-02-08, 17:20:08 - wangk

(In r:603|slicerrt:603) Re #33: added the scalarbar ui and classes. now scalarbar shows in all 3D and 2D viewers.

#34 Import DICOM-RT plan

At least show isocenter

2012-01-20, 18:31:16 - Andras Lasso

milestone: changed from null to “NA-MIC 2012 Summer Project week”

2012-06-02, 14:38:33 - Andras Lasso

Updating tickets (#24, #27, #29, #34, #37, #40, #44, #50, #54, #65, #68)

2012-06-02, 14:38:33 - Andras Lasso

milestone_id: changed from “NA-MIC 2012 Summer Project week” to “SlicerRt-0.3 release”

2012-08-20, 20:07:36 - Andras Lasso

milestone: changed from “SlicerRt-0.3 release” to “Future”

2013-01-19, 23:13:56 - Csaba Pinter

milestone_id: changed from “Future” to null

2013-01-19, 23:26:46 - Csaba Pinter

I think we can close this one as now we can import and show isocenter and simple beams, and the remaining tasks in this topic are already added as specific tickets.

2013-01-19, 23:54:01 - Andras Lasso

Yes, I agree.

From: Csaba Pinter (pinter) Sent: ‎2013-‎01-‎19 18:26

2013-01-20, 00:01:01 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2013-01-20, 00:01:06 - Csaba Pinter

milestone_id: changed from null to “SlicerRt 0.8.0 (2013-01)”

2013-01-20, 00:03:12 - Csaba Pinter

DicomRtImport module imports isocenter position and beam information, and creates fiducial annotations for isocenters. Beams module computes source positions and create simple beam geometries for the beams.

2013-01-20, 00:03:12 - Csaba Pinter

status: changed from “New” to “Fixed”

#35 Create a plug-in mechanism for customizing DICOM import

When importing DICOM objects Slicer should allow custom modules to do the import. Similar design could work as for other file I/O or editor plugins.

The DICOM file reading and parsing shall be done only once and the same DCMTK object should be passed to each plugin (reading+parsing in each plugin would take too much time).

If none of the custom modules can import the data then the default Slicer importer will try to load it. If multiple modules can read it then it could be possible to define priorities (advantage: there would be no need for extra popups and clicks for the user) or ask the user which importer it wants to use (more generic, but require more clicks, which can be annoying).

2012-01-20, 18:31:10 - Andras Lasso

milestone: changed from null to “ImNO demo”

2012-01-20, 19:27:16 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2012-01-20, 19:28:22 - Csaba Pinter

2012-01-30, 20:41:26 - Andras Lasso

2012-01-30, 22:44:23 - pieper

Hi Guys -

I’ve been thinking a lot about this one - I would like to generalize the whole dicom module so that even the ‘standard’ structural volume use case is factored out as a plugin. I would like to see scalar volumes and dwi volumes as two early examples of plugins. Then we can handle a lot of cases as future plugins (SR, segmentations, transforms, surfaces…) and keep the module simpler.

To avoid reloading all of the datasets for each of the plugins I’m looking at various ways to cache the header data in a way that it can be converted back into a DcmDataset without needing to re-read all of the data files. DWI is pretty much the worst case of this since there can be hundreds of files in a series. CT can also be problematic here. I’m thinking it might make sense to cache the xml representation of a DcmDataset and then the plugin could request the minimal data version of the dataset (reconstructed from the xml) when organizing the data or the full data version (re-read from the file) when actually reading the data into memory.

Do you have a proposal for what the API for the plugin superclass would look like? I’m thinking it should probably be at the ctkDICOM level so that an instance of the ctkDICOMDatabase could be passed in, along with the UIDs of the patient/study/series that the user has selected. From this the plugin would send back a list of loading options that it would know how to convert into MRML. (This would be like the organizeVolumes and offerVolumes functionality in the DICOMDataExchange.py code).

-Steve

2012-01-31, 00:08:37 - Andras Lasso

I would like to generalize the whole dicom module so that even the ‘standard’ structural volume use case is factored out as a plugin. Very good idea, completely agree.

I’m looking at various ways to cache the header data DICOM is a more compact data storage format, so file sizes are probably smaller than XML. DCMTK does the DICOM parsing pretty quickly, may be faster than parse the same amount of XML. So, having a cache in XML may or may not be faster. Of course, if we store only a subset of fields in the cache then it’ll be fast (but then maybe some required data will be missing for some plugins). We could have a look at utilizing DICOMDIR files both for making the import faster (as this file is often available on DICOM files that were written to a physical medium) and maybe for some additional information caching. Anyway, probably we should go for the simplest implementation first (no cache) and then use a profiler to find performance bottlenecks (by the way it seems that currently the DICOM import is so slow because of the SQL queries are very slow, see more details in #24).

Do you have a proposal for what the API for the plugin superclass would look like? The proposal that you described looks good.

2012-01-31, 16:20:07 - Csaba Pinter

Steve, The proposed design makes a lot of sense. I’ll have time in the second part of the week and I’m going to take a closer look, maybe do a prototype if I get that far.

2012-01-31, 18:25:09 - pieper

Regarding the XML part: I was looking at this as a convenient way to cache the header data in a way that could be stored easily (for example, in sqlite) but could be reconstituted into a DcmDataset when needed.

Another option would be to save dicom files with the pixel data removed so they could be reloaded quickly and with not much memory footprint. One option for this would be to save an entire series worth of headers in one file consisting of multiple DcmDatasets with the pixeldata elements removed. This would be quick to reload and one could send a whole patient’s worth of these headers down to the plugins for evaluation and parsing.

Agreed we should prototype before doing too much optimization. Perhaps the best thing to do is implement the skeleton of the plugin architecture first and just pass lists of filenames around and let each plugin reparse the files. Then we can streamline from there.

2012-01-31, 18:58:38 - Andras Lasso

OK, to prevent premature optimization let’s go with the simplest parameters, which are basically those that we use now (file names and intended object names).

We still need to define an interface for returning the list of objects that a plugin can load. Slicer would collect the list of loadable object names&types from all the plugins and would display a list where the user could choose from:

1
2
3
4
5
6
7
8
9

Load |   Object name   |   Object type   |   Importer
-----+-----------------+-----------------+-----------------
[X]  |   Plan1 SS      |  Structure sets | DICOM-RT
[X]  |   Plan1 dose    |  Dose map       | DICOM-RT
[ ]  |   Series12      |  Volume         | Generic image


2012-02-06, 16:46:02 - Csaba Pinter

status: changed from “New” to “Accepted”

2012-02-06, 17:43:31 - pieper

Hi Guys -

I have a first pass almost ready to check in this afternoon. For now I’m making two example plugins, one for scalar volumes and one for diffusion volumes.

Can we schedule a call or google hangout to discuss?

-Steve

2012-02-06, 18:06:28 - Csaba Pinter

Steve,

This sounds great! We have a weekly SparKit meeting with Kevin, Andras and myself at 3PM today, if that time works for you, it would be the best if you could join.

2012-02-06, 19:39:02 - pieper

Yes, I would like to join. Can you send me the call-in info?

2012-02-09, 19:24:08 - Csaba Pinter

(In r:35) Re #35: WIP First implementation of the python plugin, vtkSlicerDicomRtImportReader renamed to vtkSlicerDicomRtReader

2012-02-09, 20:46:31 - Csaba Pinter

(In r:36) Re #35: Fixed python plugin error and build path

2012-02-10, 16:36:18 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

#36 DICOM files without complete patient and study info can cause incomplete DICOM database records

Certain study-level fields (such as study description, institution name, etc.) are defined only for anatomical images, but not for RTSTRUCT (and other RT IODs). If RTSTRUCT is parsed first then the tree doesn’t contain the study info.

2012-01-20, 18:31:06 - Andras Lasso

milestone: changed from null to “ImNO demo”

2012-01-20, 19:43:12 - Csaba Pinter

assigned_to_id: changed from null to “lassoan”

2012-02-10, 16:11:38 - Andras Lasso

Updating tickets (#20, #25, #27, #36)

2012-02-10, 16:11:38 - Andras Lasso

milestone_id: changed from “ImNO demo” to “NA-MIC 2012 Summer Project week”

2012-02-28, 00:16:04 - Andras Lasso

Potential solution:

2012-03-05, 00:17:35 - Andras Lasso

milestone: changed from null to “Basic RT support as standard 3DSlicer extension”

2012-04-13, 22:36:36 - Andras Lasso

milestone: changed from “SlicerRt-0.2 release” to “SlicerRt-0.3 release”

2012-08-20, 20:08:06 - Andras Lasso

milestone: changed from “SlicerRt-0.3 release” to “Future”

2012-12-14, 16:06:22 - pieper

Can you point to a study that has this property? (i.e. a study where the patient data is different between two series in the same study). Ideally if you could attach two files that demonstrate this issue it would help with testing.

I think the best solution here is to refactor the insert method of ctkDICOMDatabase (it is long an hard to understand). As part of that we could better isolate code that deals with optimizing the insert mechanism and also doublecheck for inconsistencies in the data. Probably we should generate a warning for this situation, but also try to auto-correct it if the answer seems obvious (by obvious I mean that the patient name is blank for a given patient ID, but then later a non-blank name is provided).

2012-12-14, 17:30:44 - Andras Lasso

All RT studies are like this: the CT series typically contains much more information than the RT dose, structure set, etc. series. Fields that are present in CT but usually missing from RT series: institution, referring physician, study description, …

1
2
3
4
5
6
7
8
9
10
11
12
13
14
Specific example:
https://subversion.assembla.com/svn/slicerrt/trunk/SlicerRt/data/pinnacle3-9.9-phantom-imrt/

CT:
(0008,0020) DA [20070315]                               #   8, 1 StudyDate
(0008,0030) TM [131213]                                 #   6, 1 StudyTime
(0008,0080) LO [PrincessMargaretHosp]                   #  20, 1 InstitutionName
(0008,1030) LO [test]                                   #   4, 1 StudyDescription

RTDOSE:
(0008,0020) DA (no value available)                     #   0, 0 StudyDate
(0008,0030) TM (no value available)                     #   0, 0 StudyTime
<InstitutionName field is missing>
<StudyDescription field is missing>

2012-12-14, 17:35:11 - Andras Lasso

I think a good solution would be to store all the study information at the series level (because all the same fields of the same study can have different values in different series). In addition to this, a consolidated value (combined from all the series in the study) could be stored at the study level. The consolidation step could happen at the end of each import step (after all the files have been imported), just using the contents that are already in the database.

2012-12-14, 19:21:21 - pieper

Andras: when you say that ‘all RT studies are like this’ do you mean all the research cases, or this is a standard practice in the clinic? If it is a standard convention, then we could implement a rule that ignores patient and study level information from all RT series because they are not reliable. On the other hand if this is more of an ad-hoc research convention then we should make the user manually reconcile the information.

Either way it seems like invalid DICOM data, but something we need to accommodate cleanly.

2012-12-14, 19:26:05 - Andras Lasso

These are DICOM files produced by performing usual RT workflows on phantom data. I think all files conform to the DICOM standard.

I think loss-less storage of all fields at series level and storing composite values at study level is a good solution. What do you think?

2012-12-14, 19:33:05 - pieper

Hmmm… I’m having trouble imaging a situation where the DICOM spec would endorse the idea of different patient-level information occurring within the same study. It’s supposed to be a study of a particular person, so it seems like an error if things like patient name can change from series to series. (But the spec allows some odd things, so maybe we should consult someone more knowledgeable for advice).

Keeping all the patient and study level data with each series seems like a lot of into to keep (and a complex schema to maintain). But we need to sort this out one way or another. I’m thinking that we might need a less rigid schema if we anticipate a lot of this kind of variability in the wild.

2012-12-14, 20:02:57 - Andras Lasso

You can create a patient on different systems (CT scanner, treatment planning system, MRI scanner, …) with as many details as you want: you may enter patient birth date on the CT but not enter it when you do the MRI scan. This is perfectly valid, DICOM compliant. However, this means that you cannot fill the study or patient level information from only one series, but you have to have all the data and then decide what you display for the user.

For the consolidation of patient or study level field values into one displayable value you need to know the value stored in each series. So, you either have to re-read the values from the DICOM files on each insert and delete; or store all the values in the database. I think storing the values in the database is much more efficient and allows a simpler implementation of the consolidation mechanism. There is nothing complicated in the schema: you store all the values that you read from a file (or series) at the lowest level in the database (at file or series level). At higher levels nothing has to be changed, you compose the values from the low-level fields according to the compositing logic.

The advantage of storing all the field values before consolidation is that you can re-run the consolidation whenever you want (e.g., if you install a new plugin or a new software version you don’t have to re-build the database).

The compositing logic could be just appending values with a ‘,’ separator, showing each value only once.

Example: Series 1: Physician: A; Insitution: K Series 2: Physician: B; Institution undefined Series 3: Physician: A; Institution undefined => Shown at study level: Physician: A, B; Institution: K

Asking the user to resolve conflicts or confirm merges can be quite tricky, because we would need to store all these confirmations persistently somewhere so that when the database is rebuilt these confirmations can be applied again.

2012-12-14, 20:07:22 - Andras Lasso

I agree that we should double-check this with a DICOM guru before making a final decision. Maybe ask David Clunie or somebody from the DCMTK group?

2012-12-14, 20:26:56 - Andras Lasso

Added a ticket on the CTK issue tracker: https://github.com/commontk/CTK/issues/276

2012-12-15, 17:27:35 - Csaba Pinter

I think it would be very useful if we held a breakout session in SLC about these issues. We have quite a lot to discuss and decide in DICOM-related topics. (Andras could also attend over skype or hangout.)

Steve, what do you think?

2012-12-17, 18:42:59 - pieper

Yes, I think this is a great idea - something like the DICOM breakout we had in Boston at the summer meeting. We can be very focused though, and sort out this issue and maybe a few other high priority ones.

2012-12-17, 19:27:01 - pieper

Hi Andras -

Regarding the scenario you listed above, I just want to clarify.

You said:

‘You can create a patient on different systems (CT scanner, treatment planning system, MRI scanner, …) with as many details as you want: you may enter patient birth date on the CT but not enter it when you do the MRI scan. This is perfectly valid, DICOM compliant. However, this means that you cannot fill the study or patient level information from only one series, but you have to have all the data and then decide what you display for the user.’

In this case the MR and CT would have different Study UIDs because they are different studies. It’s possible that the patient’s name is misspelled or differently capitalized. In this case we currently treat these as different patients even if they have the same PatientID field (The same way that if they had the same name, but different PatientIDs they would be different patients).

However the issue in the RT examples we have been looking at is that the CT and the treatment plan have the same Study UID which means that the RT data is based on the CT as it’s reference data. Since the RT data is derived from the CT it’s not clear to me that it should be allowed to have different Patient or Study level data while sharing the same Study UID.

Again, I can easily see how this could happen in practice, but I don’t think it’s valid ;)

2012-12-17, 21:33:03 - Gabor Fichtinger

This continues to be a hairy issue… Traditionally, it is true that “RT data is based on the CT as it’s reference data” - however, this is expected to change, because adaptive RT plans will be based on multiple image data sources, from different sources (CT, MRI) throughout the course of series of treatment fractions. –Gabor

From: pieper [mailto:slicerrt@alerts.assembla.com] Sent: December-17-12 2:35 PM

2012-12-17, 23:16:25 - Andras Lasso

Yes, Steve, you are right that the patient creation on CT/MRI was not a good example, as the StudyInstanceUID would be different in that case.

Anyway, there is inconsistent study information in CT and various RT IODs in data sets that we received from different hospitals, created with different treatment planning systems.

I’ve also checked a couple of TPS DICOM conformance statements, and they all explicitly state the study fields that they store in the RT IODs. The stored fields include the mandatory fields and a few random optional fields - but several optional study fields are simply ignored. See:

You might consider this behavior ‘invalid’, but this is what specified in the DICOM conformance statements of several FDA-approved devices.

2015-09-10, 14:55:12 - Greg Sharp

milestone_id: changed from “Future” to “SlicerRt 0.18”

2015-09-10, 15:00:45 - Greg Sharp

milestone_id: changed from “SlicerRt 0.18” to “Future”

#37 Create a transform module that can apply any transform to DICOM-RT objects

The transform should be applicable to: -Contours and points -Dose maps -Anatomical images

Non-linear transforms shall be supported.

In the first step it could be a separate module, but later it would be better to make it part of the transform hierarchy (so that transforms can be applied by drag-and-drop)

2012-01-20, 18:30:56 - Andras Lasso

milestone: changed from null to “NA-MIC 2012 Summer Project week”

2012-06-02, 14:38:33 - Andras Lasso

Updating tickets (#24, #27, #29, #34, #37, #40, #44, #50, #54, #65, #68)

2012-06-02, 14:38:33 - Andras Lasso

milestone_id: changed from “NA-MIC 2012 Summer Project week” to “SlicerRt-0.3 release”

2012-08-20, 20:07:42 - Andras Lasso

milestone: changed from “SlicerRt-0.3 release” to “Future”

2012-12-10, 21:27:37 - Csaba Pinter

milestone_id: changed from “Future” to “SlicerRt 0.7.0 (2012-11)”

2012-12-10, 21:28:14 - Csaba Pinter

Kevin: ‘I thought the Slicer Transform module will be used for all the DicomRT object. do you still need a separate module for this? I took a look at our current code. Most modules do not take transform into account, although it is easy to add this part. So do we need to add support of transform to all RT modules?’

2012-12-10, 21:31:55 - Csaba Pinter

We discussed this with Kevin in the SlicerRT hangout today and it seems that transforming of the different data mentioned in the description is already possible through the Transform module and the handling of transforms in the Contour MRML node. The Transform module can also handle deformable transformations, however, it cannot apply them to the objects. Is there anything else that would be needed in this separate RT Transforms module?

2012-12-11, 00:03:36 - Andras Lasso

We need application of non-linear transforms as well. We can already apply non-linear transform to an image by using various resample CLI modules, the only issue is that the additional metadata (dose unit, colormap, etc.) is not carried on to the resulting image.

The long-term solution is to define a ‘reference’ input for each output and use it to copy all metadata (put back the result image in the same location in the patient hierarchy as the reference image, etc.).

We might consider providing a temporary solution to this problem by introducing a special resample module that properly copies the metadata. However, it would be better if we could skip this and go for the long-term solution directly.

2012-12-13, 16:40:31 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.7.0 (2012-11)” to “Future”

2013-04-25, 01:41:01 - Csaba Pinter

milestone_id: changed from “Future” to “SlicerRt 0.11.0 (2013-05)”

2013-05-28, 18:13:57 - Csaba Pinter

Moving tickets to 1.0, as 0.11 will be released before the NA-MIC week and the tasks in question will be tackled at the project week.

2013-05-28, 18:13:57 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.11.0 (2013-05)” to “SlicerRt 1.0 (2013-06)”

2013-07-11, 01:41:35 - Csaba Pinter

NA-MIC week project page: http://www.na-mic.org/Wiki/index.php/2013_Summer_Project_Week:Deformable_transforms

Meeting minutes: http://www.na-mic.org/Wiki/index.php/Handling_deformable_transforms_in_Slicer_meeting_minutes

2013-07-11, 01:41:35 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2013-08-28, 20:03:55 - Csaba Pinter

priority: changed from “Normal (3)” to “High (2)”

2013-09-04, 14:56:27 - Csaba Pinter

Steve wrote: ‘Alex is going to spend the next few months working on non-linear transform support building on our discussions in the summer [1, 2]’ [1] and [2] are the two links above

2014-01-21, 19:57:43 - Csaba Pinter

milestone_id: changed from “SlicerRt 1.0” to “SlicerRt 0.14”

2014-01-21, 19:57:57 - Csaba Pinter

priority: changed from “High (2)” to “Normal (3)”

2014-04-03, 18:16:16 - Csaba Pinter

With the non-linear transform support in the Slicer core, and feature in #247 added to subject hierarchy, this issue can be considered fixed

2014-04-03, 18:16:16 - Csaba Pinter

status: changed from “New” to “Fixed”

#38 Add CLI interface for Matlab

Researchers at KGH would be interested in prototyping algorithms in Matlab. For this it would be useful to have a possibility to implement CLI modules in Matlab.

See http://www.na-mic.org/Wiki/index.php/Projects:MATLABSlicerExampleModule

It would be useful if in Matlab the DICOM-RT data would be stored in a same format that CERR uses.

2012-01-20, 18:30:50 - Andras Lasso

milestone: changed from null to “Future”

2012-03-05, 00:21:39 - Andras Lasso

milestone: changed from null to “RT data export”

2012-08-20, 19:39:45 - Andras Lasso

assigned_to_id: changed from null to “lassoan”

2012-08-20, 19:39:45 - Andras Lasso

milestone_id: changed from “RT data export” to “SlicerRt-0.3 release”

2012-08-20, 20:09:31 - Andras Lasso

milestone: changed from “SlicerRt-0.3 release” to “SlicerRt 2012-08”

2012-09-05, 14:38:57 - Andras Lasso

Updating tickets (#59, #33, #112, #131, #25, #129, #115, #81, #114, #113, #111, #38, #137)

2012-09-05, 14:38:57 - Andras Lasso

milestone_id: changed from “SlicerRt 2012-08” to “SlicerRt 2012-09”

2012-09-16, 16:05:53 - Andras Lasso

Implementation could be in two phases:

Read/write Slicer files in Matlab: http://www.mathworks.com/matlabcentral/fileexchange/29344-read-medical-data-3d, http://www.mathworks.com/matlabcentral/fileexchange/34653-nrrd-format-file-reader/content/nrrdread.m

Run Matlab commands from Slicer using the CLI interface

Related work:

http://www.mathworks.com/matlabcentral/fileexchange/29027-web-server Web server (TCP/IP) interface, could server as the RMI interface for our solution

http://www.mathworks.com/help/matlab/using-web-services-in-matlab.html Web services interface for Matlab

http://www.na-mic.org/Wiki/index.php/Projects:MATLABSlicerExampleModule Earlier Matlab/CLI attempt, requires building of TEEM against Matlab:

http://mlabwrap.sourceforge.net/ Python interface, requires compiling of a cpp against matlab or it can use matlabcom.py/matlabpipe.py; may use the CLI interface

http://code.google.com/p/danapeerlab/source/browse/trunk/freecell/depends/common/python/matlabcom.py http://code.google.com/p/danapeerlab/source/browse/trunk/freecell/depends/common/python/matlabpipe.py http://code.google.com/p/danapeerlab/source/browse/trunk/freecell/depends/common/python/mlabraw.py Platform-dependent Matlab RMI implementation and adapter for mlabwrap

Requirements:

Implementation:

MyModule.exe => the user (or wizard) creates it by cloning (simple file copy) MyModule.xml => the user (or wizard) creates it MyModuleProxy.m => MyModule.exe creates it MyModule.m => the user (or wizard) creates it (MyModule.exe can create a skeleton)

MatlabTcpServer.m => part of package, receives commands through TCP/IP and executes them ModuleLauncher.exe => part of the package, user uses it to clone

2012-10-12, 12:36:53 - Csaba Pinter

Updating tickets (#144, #25, #38, #59, #61, #81, #113, #115, #131, #134, #136, #137, #138, #140, #145, #146)

2012-10-12, 12:36:53 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.5.0 (2012-09)” to “SlicerRt 0.6.0”

2012-11-13, 17:36:48 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.6.0 (2012-10)” to “SlicerRt 0.7.0 (2012-11)”

2012-12-10, 21:26:21 - Csaba Pinter

Updating tickets (#38, #61, #134, #136, #144, #191)

2012-12-10, 21:26:21 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.7.0 (2012-11)” to “SlicerRt 0.8.0 (2012-12)”

2013-01-08, 10:09:44 - Andras Lasso

(In r:538|slicerrt:538) re #38: Added a simple CLI module that runs a Matlab script and displays the reply. The MatlabCommandServer.m script has to be running on the server computer. The module and the Matlab server communicates via OpenIGTLink STRING messages.

2013-01-24, 16:59:58 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.8.0 (2013-01)” to “SlicerRt 0.9.0 (2013-03)”

2013-03-24, 19:57:06 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.9.0 (2013-03)” to “SlicerRt 0.10.0 (2013-04)”

2013-03-27, 20:33:56 - Csaba Pinter

priority: changed from “Normal (3)” to “High (2)”

2013-04-04, 16:35:03 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.10.0 (2013-04)” to “SlicerRt 0.11.0 (2013-05)”

2013-06-18, 15:42:08 - Andras Lasso

(In r:902|slicerrt:902) re #38: Fixed matlab server to be able to receive commands longer than 128 characters

2013-06-18, 15:43:32 - Andras Lasso

(In r:903|slicerrt:903) re #38: Added special mode to MatlabCommander that forwards all the command-line parameters in a cell to a specified function (if the first command-line argument is –call-matlab-function)

2013-06-18, 21:15:48 - Andras Lasso

(In r:905|slicerrt:905) re #38: Added the necessary scripts to have a fully functional demo script

2013-06-20, 06:36:00 - Andras Lasso

(In r:917|slicerrt:917) re #38: Added Matlab skeleton script generator module. Install script files into correct location.

2013-06-20, 15:04:10 - Gabor Fichtinger

This seems going well at the project week! I look forward to discussing the follow up.

From: Andras Lasso (lassoan) [mailto:slicerrt@alerts.assembla.com] Sent: June-20-13 2:36 AM

2013-06-20, 15:17:38 - Andras Lasso

(In r:918|slicerrt:918) re #38: Removed unused widgets from matlab module generator. Minor fixes in the matlab scripts.

2013-06-20, 15:25:09 - Andras Lasso

(In r:919|slicerrt:919) re #38: Fixed regression caused by merge conflict

2013-06-21, 06:02:29 - Andras Lasso

(In r:920|slicerrt:920) re #38: Implemented automatic starting of Matlab server. Improved error and status logging, module icon.

2013-06-21, 07:28:39 - Andras Lasso

(In r:921|slicerrt:921) re #38: Moved Matlab bridge modules to the list of regular modules. Changed environment setting (app->setEnvironmentVariable caused issues in the Python interpreter)

2013-06-21, 13:54:57 - Andras Lasso

(In r:922|slicerrt:922) re #38: Added design notes about Matlab bridge

2013-06-21, 13:55:36 - Andras Lasso

Basic functionality is complete, see some details here: http://www.na-mic.org/Wiki/index.php/2013_Summer_Project_Week:CLI_Matlab Further developments will be tracked in other tickets.

2013-06-21, 13:55:36 - Andras Lasso

status: changed from “New” to “Test”

2013-06-21, 14:00:49 - Andras Lasso

Component: changed from null to “Matlab bridge”

2013-06-24, 13:55:06 - Andras Lasso

(In r:927|slicerrt:927) re #38: Simplified parameter getting and setting in Matlab CLIs

2013-06-24, 20:45:43 - Andras Lasso

It’s tested on two computers, seems to work well. Submitted to the ExtensionIndex.

2013-06-24, 20:45:43 - Andras Lasso

status: changed from “Test” to “Fixed”

2013-06-24, 21:52:24 - Andras Lasso

milestone_id: changed from “SlicerRt 0.11.0 (2013-05)” to “MatlabBridge 0.1.0”

2013-06-25, 16:30:32 - Andras Lasso

(In r:942|slicerrt:942) re #38: Fixed proxy template to work even if Slicer is installed in a directory with spaces in the name

#39 Slice intersections in Slicer does not always work

the resolution is tracked in http://www.na-mic.org/Bug/view.php?id=1650

2012-01-20, 18:27:42 - Andras Lasso

status: changed from “New” to “Invalid”

2012-04-05, 17:07:25 - Csaba Pinter

milestone_id: changed from null to “Basic RT support as standard 3DSlicer extension”

#40 Allow different module paths definition for each Slicer instance

resolution tracked in http://www.na-mic.org/Bug/view.php?id=1655

2012-01-20, 18:30:43 - Andras Lasso

milestone: changed from null to “NA-MIC 2012 Summer Project week”

2012-06-02, 14:38:34 - Andras Lasso

Updating tickets (#24, #27, #29, #34, #37, #40, #44, #50, #54, #65, #68)

2012-06-02, 14:38:34 - Andras Lasso

milestone_id: changed from “NA-MIC 2012 Summer Project week” to “SlicerRt-0.3 release”

2012-08-20, 20:07:25 - Andras Lasso

milestone: changed from “SlicerRt-0.3 release” to “Future”

2012-12-08, 22:29:58 - Csaba Pinter

Investigate if this issue has been solved in the fixes applied for 1958 and related tickets.

2012-12-08, 22:30:03 - Csaba Pinter

milestone_id: changed from “Future” to “SlicerRt 0.7.0 (2012-11)”

2012-12-10, 21:25:42 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2012-12-13, 16:39:29 - Csaba Pinter

assigned_to_id: changed from “pinter” to “lassoan”

2012-12-13, 16:39:36 - Csaba Pinter

status: changed from “New” to “Test”

2012-12-23, 20:41:06 - Csaba Pinter

status: changed from “Test” to “Fixed”

#41 Get patient browser screenshots from MGH

Hi Greg,

For improving Slicer’s DICOM browser for RT more info is needed about the look&feel of patient browsing in planning/review workstations.

Greg, could you create a few screenshots of the patient browser of the workstations that you can access in MGH? It would be especially helpful if you could show how our test data sets (https://www.assembla.com/code/sparkit/subversion/nodes/trunk/SlicerRt/data) are displayed, because then we could determine which DICOM fields are shown and what is displayed if fields are missing, etc.

Please upload the screenshots as attachments to this ticket. Any additional information, explanation, improvement ideas are also welcome

Thanks! Andras

2012-01-23, 22:46:48 - Greg Sharp

Hi Andras,

As you might expect, I have opinions on this topic. We should discuss in telecon sometime.

Please see screenshots. I didn’t load test data, but I think the question of which tags are displayed is fairly easily inferred by looking at the column headers.

Greg

2012-01-23, 22:46:48 - Greg Sharp

status: changed from “New” to “Accepted”

2012-01-23, 22:47:28 - Greg Sharp

file:a6qSD-rHqr4zWeacwqjQXA

2012-01-23, 22:47:28 - Greg Sharp

Attachment added: “patient-selection.pdf”

2012-01-24, 15:09:21 - Andras Lasso

Thanks Greg, the screenshots were really helpful. Check out the attachments in the parent ticket (#27) to see the consolidated review of various browsers and the list of displayed fields. Also there are a couple of questions there that would require a decision. It would be great to discuss your ideas on this topic, I’ll send you a doodle link to find a good timeslot.

2012-01-30, 18:48:43 - Andras Lasso

Thanks, we have enough information now (see file:DicomPatientBrowsersReview.pptx)

2012-01-30, 18:48:43 - Andras Lasso

status: changed from “Accepted” to “Fixed”

#42 Get patient browser screenshots from UHN

Hi Kevin,

For improving Slicer’s DICOM browser for RT more info is needed about the look&feel of patient browsing in planning/review workstations.

Could you create a few screenshots of the patient browser of the workstations that you can access in UHN? It would be especially helpful if you could show how our test data sets (https://www.assembla.com/code/sparkit/subversion/nodes/trunk/SlicerRt/data) are displayed, because then we could determine which DICOM fields are shown and what is displayed if fields are missing, etc.

Please upload the screenshots as attachments to this ticket. Any additional information, explanation, improvement ideas are also welcome

Thanks! Andras

2012-01-23, 19:26:00 - wangk

status: changed from “New” to “Accepted”

2012-01-24, 18:16:34 - wangk

file:cmrvKWrRCr4AjvacwqjQXA

2012-01-24, 18:16:34 - wangk

Attachment added: “pinnacle_dicom_import.pdf”

2012-01-24, 18:17:43 - wangk

I uploaded a pdf file which shows several windows for importing dicom files into pinnacle. let me know if you have any questions.

thank,

Kevin

2012-01-24, 18:34:51 - Andras Lasso

Thanks Kevin! Could you upload the screenshot of the patient list after the import (what fields are displayed, how the patients, studies, series are listed)?

Could you upload in ppt format? (I would like to create one consolidated file for all the software)

2012-01-30, 18:48:18 - Andras Lasso

Thanks, we have enough information now (see file:DicomPatientBrowsersReview.pptx)

2012-01-30, 18:48:18 - Andras Lasso

status: changed from “Accepted” to “Fixed”

#43 Allow non-image DICOM object loading with the latest Slicer DICOM widget

In the Slicer version stored in git://github.com/SlicerRt/Slicer.git master loading of non-image DICOM object is not supported (the load button is disabled for non-image items). Need to fix this so that any DICOM series can be selected.

2012-02-10, 16:10:31 - Andras Lasso

Latest developments of the DICOM importer by Steve and Csaba resolved this problem.

2012-02-10, 16:10:31 - Andras Lasso

assigned_to_id: changed from “lassoan” to “pinter”

2012-02-10, 16:10:31 - Andras Lasso

status: changed from “New” to “Fixed”

#44 Load trusted modules without adding explicitly to additional modules path

Modules that have s4ext files added in Slicer4/Extensions should be loaded automatically when starting Slicer

2012-06-02, 14:38:34 - Andras Lasso

Updating tickets (#24, #27, #29, #34, #37, #40, #44, #50, #54, #65, #68)

2012-06-02, 14:38:34 - Andras Lasso

milestone_id: changed from “NA-MIC 2012 Summer Project week” to “SlicerRt-0.3 release”

2012-08-20, 20:08:33 - Andras Lasso

milestone: changed from “SlicerRt-0.3 release” to “Future”

2013-04-22, 03:56:38 - Csaba Pinter

@lassoan Is this still valid?

2013-04-25, 16:17:50 - Andras Lasso

We build extensions out of the Slicer build tree, so this ticket is not relevant anymore

2013-04-25, 16:19:24 - Csaba Pinter

I’m closing this as Invalid, as SlicerRT is a proper extension now that can be downloaded through the Extension Manager, all its modules at once.

2013-04-25, 16:19:24 - Csaba Pinter

status: changed from “New” to “Invalid”

#45 Manipulation of larger CT volumes is not possible due to memory issues

Loading or manipulating of larger (512x512x250) CT volumes is not possible or very limited. Even if loading is successful, any processing requires memory allocation for the output volume, which typically fails.

Workaround: downsample large volumes before loading into Slicer

Potential solutions:

2012-02-10, 16:21:34 - Andras Lasso

status: changed from “New” to “Accepted”

2012-02-10, 21:02:34 - Andras Lasso

We’ve found that due to the module renaming a number of modules have been loaded twice (both the old and the new version). After cleaning up all the old versions we can load somewhat more data, but still we run out of memory very quickly.

Used virtual memory size (measured by procexp.exe, “Virtual size”): • Startup: 1.191GB • After selecting the RANDO^PROSTATE/PELVIS CURATIVE CT dataset in the DICOM browser (not loaded yet): 1.315GB • After loading the CT: 1.411GB • After loading the CT (again): 1.506GB • After loading the CT (again): fails to load it It doesn’t get too close to the theoretical 2GB max, so we seem to have quite a bit of memory fragmentation.

2012-02-10, 21:03:34 - Andras Lasso

description: changed from “Loading or manipulating of …” to “Loading or manipulating of …”

2012-02-10, 21:42:02 - Andras Lasso

Win7 x64, Slicer 32-bit debug mode Memory use (measured by Process explorer ‘Virtual size’) in GB:

=> CLI modules seems to be the main culprit (of course the base 0.653GB is quite a lot, too)

2012-02-10, 22:08:03 - Andras Lasso

We can gain 500MB by unloading (or not even loading) the DLLs. This 500MB would probably be enough for basic use cases, demos, etc.

Options for CLI mem consumption problem fix would be: A. make dll/exe interface preference adjustable by the user B. unload CLI dlls after app start and load/unload upon request (when the user activates the module)

Option A. seems much simpler to implement (and solves the dll robustness issues, allows the CLI to access 2GB memory, etc.), so I think we should shoot for this one.

In addition, we could have a look at memory-hungry modules (the DICOM module is a candidate, as when we activate it the mem consumption grows by about 120MB). But it’s a lower priority compared to the CLI mem consumption problem.

2012-02-10, 22:41:17 - Andras Lasso

Workaround: move all the .dll files from the plugins directory to somewhere else in the slicer path (like bin or something) but leave the exe files where they are.

2012-02-23, 15:21:40 - Csaba Pinter

Updating tickets (#18, #19, #45, #48, #49)

2012-02-23, 15:21:40 - Csaba Pinter

milestone_id: changed from “ImNO demo” to “NA-MIC 2012 Summer Project week”

2012-03-05, 00:19:57 - Andras Lasso

milestone: changed from null to “Basic RT support as standard 3DSlicer extension”

2012-04-11, 14:05:09 - Andras Lasso

Fixed by updating the core to Slicer 4.1: there is now an application option (Prefer Executable CLIs), which increases the available memory size.

Also, tested 64-bit builds and they seem to work fine, so it is recommended to build x64 packages as well (that have virtually no address space limitation).

2012-04-11, 14:05:09 - Andras Lasso

status: changed from “Accepted” to “Fixed”

#46 Prepare a SlicerRt demo for ImNO

Prepare data sets and test them for the following demonstration:

2012-02-10, 20:00:25 - wangk

Here is the list of basic steps:

  1. load a DicomRT plan into slicer (including CT image, structure set and dose map)
  2. create a simple linear transform (change the translation and rotation parameters) using insert transform.
  3. resample the Original CT image to create the warped CT image using registration->resample image(Brains) module with the newly created transform.
  4. perform linear registration between original and warped CT image to calculate the transform using General registration (brains) module.
  5. apply the transform to dose map and labelmap or model from structure set.
  6. add warped dose map with original dose map to calculate the accumulated dose map.

This demos a very simple approach to accumulate the dose map adaptively during treatment. Of course you guys can throw in your ideas.

2012-02-14, 05:26:11 - Andras Lasso

status: changed from “New” to “Fixed”

#47 Loading whole CT series fails from DICOM module

It can load the sub-series that are created for the different ContentTime values, but not the whole series.

2012-02-10, 20:57:47 - Andras Lasso

Duplicate of #45

2012-02-10, 20:57:47 - Andras Lasso

status: changed from “New” to “Invalid”

#48 Name of the loadables should be got from the database

The loadable series list displays names that are assembled by each plugin that creates it. Instead, the name from the ctkDICOMDatabase should be used, as it appears in the treeview in the DICOM module toolbox. This way, loadables with the same name may appear in the list, so it could be useful to show the loading type for each row in the table (eg. two RT Plans with the same name but different loading types: ‘RT’ and ‘Scalar Volume’)

2012-02-23, 15:21:40 - Csaba Pinter

Updating tickets (#18, #19, #45, #48, #49)

2012-02-23, 15:21:40 - Csaba Pinter

milestone_id: changed from “ImNO demo” to “NA-MIC 2012 Summer Project week”

2012-02-23, 18:57:44 - Csaba Pinter

status: changed from “New” to “Accepted”

2012-02-27, 19:07:00 - Csaba Pinter

(In r:47) Test #48: Name of the RT loadable is got from the database

2012-02-27, 19:07:00 - Csaba Pinter

status: changed from “Accepted” to “Test”

2012-03-05, 00:21:17 - Andras Lasso

milestone: changed from null to “Basic RT support as standard 3DSlicer extension”

2012-03-29, 19:24:39 - Csaba Pinter

status: changed from “Test” to “Fixed”

#49 Compute ribbon width from slice thickness

In \\Extensions\\CMake\\DicomRtImport\\Logic\\vtkSlicerDicomRtReader.cxx:

ribbonFilter->SetWidth(1.1); // TODO: get this from the distance between the slices

Try to handle varying slice spacing.

2012-02-10, 17:15:00 - Andras Lasso

(In r:38) Re #49: added TODO comment

2012-02-23, 15:21:40 - Csaba Pinter

Updating tickets (#18, #19, #45, #48, #49)

2012-02-23, 15:21:40 - Csaba Pinter

milestone_id: changed from “ImNO demo” to “NA-MIC 2012 Summer Project week”

2012-02-27, 21:04:21 - Andras Lasso

How to reproduce the labelmap conversion problem with current ribbon thickness:

2012-02-27, 21:06:47 - Andras Lasso

image:d1PQ3cyyyr4BpAacwqjQXA

2012-02-27, 21:06:47 - Andras Lasso

Attachment added: “holesbetweenribbons.jpg”

2012-02-27, 21:09:09 - Andras Lasso

image:bkhgLqyyCr4BfuacwqjQWU

2012-02-27, 21:09:09 - Andras Lasso

Attachment added: “holesinthelabelmap.jpg”

2012-02-27, 21:09:21 - Andras Lasso

assigned_to_id: changed from “lassoan” to “wangk”

2012-02-27, 23:27:09 - Andras Lasso

milestone_id: changed from “NA-MIC 2012 Summer Project week” to “QIN meeting demo”

2012-02-28, 00:33:57 - Andras Lasso

Potential implementation:

2012-02-28, 15:56:08 - wangk

Hi Andras,

I think I know what the problem is. the input volume should be the original dicom image which has the correct spacing between slices. This is because that the 2D contours are constructed on the original dicom images so their spacing is same as the dicom spacing. Obviously the dose map volume has different spacing along z axis.

2012-02-28, 16:07:18 - Andras Lasso

We chose to create ribbons from the contour lines so that we can generate labelmaps for any volume. The only problem is that the ribbon width is hardcoded now.

2012-02-28, 17:33:04 - Andras Lasso

As we discussed, the slice thickness of the original volume (the one that is stored in the ReferencedSOPInstanceUID) should be used.

If reading the thickness from each slice takes too long time then we may just read one slice and assume that all the slices have the same thickness. But then we should add this limitation to the wiki.

2012-03-03, 17:54:56 - Andras Lasso

(In r:57) Re #49: Added a temporary solution to estimate the ribbon thickness (to be replaced by reading of slice thickness from the input image slice)

2012-03-05, 00:22:03 - Andras Lasso

milestone: changed from null to “Basic RT support as standard 3DSlicer extension”

2012-03-05, 20:58:40 - Andras Lasso

It’s important to get not only the slice thickness but the slice orientation from the image file.

If there are any assumptions (all slices have the same thickness, all slices have the same orientation, etc.) then please add them to the ‘Known limitations’ section in SlicerRt_users_guide. If possible, implement checking for the assumptions and warn the user if something may go wrong.

2012-03-26, 18:00:38 - wangk

status: changed from “New” to “Accepted”

2012-03-26, 19:27:29 - Csaba Pinter

The function that can be used to get the file list for a UID is QStringList ctkDICOMDatabase::filesForSeries(QString seriesUID)

2012-04-10, 17:59:39 - wangk

status: changed from “Accepted” to “Test”

2012-04-13, 22:36:55 - Andras Lasso

milestone: changed from “SlicerRt-0.2 release” to “SlicerRt-0.3 release”

2012-05-16, 17:41:04 - Andras Lasso

assigned_to_id: changed from “wangk” to “lassoan”

2012-07-26, 15:39:59 - Andras Lasso

assigned_to_id: changed from “lassoan” to “wangk”

2012-07-26, 15:39:59 - Andras Lasso

status: changed from “Test” to “Fixed”

#50 Selection of the loadables is not deterministic

In DICOMWidgets.py/DICOMLoadableTable::addLoadableRow function leaves a loadable item selected when it was examined by the first specialized DICOM plugin that can read it. However, the order of the plugins is not deterministic, so we cannot tell which loadable item of the same series is selected until we know the order the plugins have been loaded by Slicer. We need either a priority of the plugins or other method to make it predictable.

2012-06-02, 14:38:34 - Andras Lasso

Updating tickets (#24, #27, #29, #34, #37, #40, #44, #50, #54, #65, #68)

2012-06-02, 14:38:34 - Andras Lasso

milestone_id: changed from “NA-MIC 2012 Summer Project week” to “SlicerRt-0.3 release”

2012-07-26, 15:39:08 - Andras Lasso

A confidence value can be specified for each loadable item in DICOM plugin now, so the order can be determined.

2012-07-26, 15:39:08 - Andras Lasso

assigned_to_id: changed from null to “lassoan”

2012-07-26, 15:39:08 - Andras Lasso

milestone_id: changed from “SlicerRt-0.3 release” to “Release for AAPM2012”

2012-07-26, 15:39:08 - Andras Lasso

status: changed from “New” to “Fixed”

#51 Use the correct DICOM reader plugin when reloading a saved scene

Currently always the scalar image DICOM reader is used for loading the DICOM objects when a saved scenre is reloaded. This behavior causes problems, e.g., we load structure sets from an RTSS file, then save the scene, then when we load the scene the scalar image reader cannot interpret the RTSS file and it returns an error and it doesn’t load the structures.

We need to keep track of which DICOM importer was chosen by the user to load a particular DICOM object, and use that same importer when later the scene is saved and reloaded. It could be stored as MRML node attributes.

2012-02-18, 17:27:53 - Andras Lasso

description: changed from “Currently always the scalar…” to “Currently always the scalar…”

2012-02-18, 18:48:56 - pieper

If the plugin in really an importer, then it should be creating native slicer data types that have storage nodes with the ability to read/write the slicer format and preserve whatever information is needed to process them in slicer. For example, the diffusion dicom importer converts the files to nrrd dwi, which are then managed by slicer. The same is true for scalar volumes.

However if we need to go back to the dicom files at every scene load, then we should think about making storage nodes that would let the scene work with the dicom files natively.

But aren’t we more in the importing mode? Which cases aren’t imports?

2012-02-20, 22:45:00 - Andras Lasso

This is a very good point. We should not go back to the DICOM files once they are loaded into Slicer. We just import the data from DICOM and then we should treat them as native Slicer data types.

So, we just need to change the implementation to save the data using native Slicer data storage nodes. Now the only problematic data type is dose map, as currently it still uses the DICOM storage node. Probably if we just change the node’s ModifiedSinceRead attribute to true and then it would be saved in a new file and it would be reloaded correctly from that file.

2012-02-20, 22:53:49 - Andras Lasso

There is still one design question related to this: how shall we store additional metadata with the imported objects? E.g., we need to store the dose unit (‘Gy’) and reference dose value (a floating-point value that defines a multiplier to convert between the voxel values and the physical unit value) with the dose map (that is basically a scalar volume). I see these options:

2012-02-21, 02:23:20 - pieper

Yes, agreed on those options - the problem of passing along the data across processing steps is an interesting one. It would be helpful (to me at least) to sketch out some of the processing workflows and think what data is needed at each point. In some cases it might make sense to explicitly select a study for output data to be associated with (this is the approach for exporting non-dicom data into dicom files). In other cases it might make more sense to have slicer maintain information about the provenance information and the infer the metadata when it comes time to re-export the data to dicom.

As a point of reference, for annotations we’re planning to have annotations know the volume that was shown when they were created, and the volumes know the instance IDs of the slices in the volume. From that we plan to have the needed information to export SR/AIM documents.

Creating custom mrml nodes is possible, but it won’t really solve the data propagation issues unless we touch all the modules…

2012-03-02, 16:02:20 - Andras Lasso

(In revision:51) Fixed #55: Set ModifiedSinceRead attribute to true to force saving the imported RTDOSE volume (thus, it will not be imported again from DICOM). Additional data (dose unit and scaling factor) is saved as custom MRML node attributes.

2012-03-02, 16:02:20 - Andras Lasso

status: changed from “New” to “Fixed”

2012-03-02, 16:05:00 - Andras Lasso

For now we save the additional information into MRML attributes as this seems to be the simplest option. We’ll see how it works out.

2012-04-05, 17:07:29 - Csaba Pinter

assigned_to_id: changed from null to “lassoan”

2012-04-05, 17:07:33 - Csaba Pinter

milestone_id: changed from null to “Basic RT support as standard 3DSlicer extension”

#52 Create tutorial for the QIN demo

In powerpoint. Maybe also record screencasts.

2012-02-28, 22:22:28 - Andras Lasso

assigned_to_id: changed from null to “lassoan”

2012-03-17, 15:04:26 - Andras Lasso

https://www.assembla.com/spaces/sparkit/documents/aGr_-QzNir4yy_acwqjQXA/download/aGr_-QzNir4yy_acwqjQXA

2012-03-17, 15:04:26 - Andras Lasso

status: changed from “New” to “Fixed”

#53 Test SlicerRt build on linux

2012-02-28, 22:22:41 - Andras Lasso

assigned_to_id: changed from null to “pinter”

2012-03-04, 20:28:36 - Andras Lasso

Andriy confirmed that it works well on his computer

2012-03-04, 20:28:36 - Andras Lasso

status: changed from “New” to “Fixed”

#54 Allow batch processing of RT structures

Allow DICOM-RT import, transforms, computations (DVH, etc.) performed in a batch mode (using scripting, without GUI)

2012-03-04, 21:52:43 - Andras Lasso

Updating tickets (#54, #55, #56, #57, #58, #59, #60, #61, #63, #66, #67, #68)

2012-03-04, 21:52:43 - Andras Lasso

milestone_id: changed from null to “NA-MIC 2012 Summer Project week”

2012-06-02, 14:38:34 - Andras Lasso

Updating tickets (#24, #27, #29, #34, #37, #40, #44, #50, #54, #65, #68)

2012-06-02, 14:38:34 - Andras Lasso

milestone_id: changed from “NA-MIC 2012 Summer Project week” to “SlicerRt-0.3 release”

2012-08-20, 20:09:01 - Andras Lasso

milestone: changed from “SlicerRt-0.3 release” to “Future”

2013-04-25, 16:19:48 - Csaba Pinter

Idea: An application that reads an XML file that describes the algorithm(s) to run and its(/their) parameters, creates parameter set nodes and feeds them to the logic classes of the referenced algorithms.

2014-01-21, 16:22:04 - Csaba Pinter

(In r:1453|slicerrt:1453) Re #54: Added BatchContourConversion script as a simple sample for batch processing python scripts; Moved samples folder from doc to be bound more easily

2014-01-21, 16:22:04 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2014-01-21, 20:19:32 - Csaba Pinter

Needed: a Slicer wiki page or a section on a wiki page containing a list of tasks and links to sample code for each.

2014-01-21, 20:19:50 - Csaba Pinter

milestone_id: changed from “Future” to “SlicerRt 1.0”

2014-12-12, 14:33:27 - Csaba Pinter

milestone_id: changed from “SlicerRt 1.0” to “SlicerRt 0.15”

2014-12-12, 14:33:31 - Csaba Pinter

Component: changed from null to “SlicerRt modules”

2014-12-12, 14:33:33 - Csaba Pinter

status: changed from “New” to “Accepted”

2014-12-12, 15:40:15 - Csaba Pinter

Re #54: Update contour batch conversion script to work with latest Slicer Commit: r:2059|slicerrt:2059

2014-12-12, 16:24:58 - Csaba Pinter

Re #54: Create directory for maintained (automatically tested) batch processing scripts Commit: r:2060|slicerrt:2060

2014-12-12, 16:27:29 - Csaba Pinter

Re #54: Move BatchContourConversion script from samples to active source Commit: r:2061|slicerrt:2061

2014-12-12, 17:39:14 - Csaba Pinter

Re #54: BatchContourConversion works from command line. It is also a self-test module that downloads its test data automatically Commit: r:2062|slicerrt:2062

2014-12-12, 18:01:54 - Csaba Pinter

Re #54: BatchContourConversion works well, but automatic test fails due to memory leak Commit: r:2063|slicerrt:2063

2014-12-12, 19:57:01 - Csaba Pinter

Fixed #54: BatchContourConversion test passes (leak fixed); Fixed the other two python tests that also failed Commit: r:2064|slicerrt:2064

2014-12-12, 19:57:01 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

2014-12-16, 23:35:54 - Csaba Pinter

Re #54: Added more information in the Batch Processing readme file based on feedback. Commit: r:2073|slicerrt:2073

#55 Export RT data from Slicer in DICOM-RT format

It’s important to be able to save deformed contours, dose maps, etc. in DICOM-RT format. Slicer topic branch: https://github.com/cpinter/Slicer/tree/srt55-dicom-export SlicerRT branch: https://subversion.assembla.com/svn/slicerrt/branches/DICOMExport/

Plan:

  1. The export operation can be started from two places: the now disabled Export button in the DICOM browser, and from subject hierarchy (a button below the tree and/or from the context menu of exportable node (explained a bit later) – this would pre-select the node to export)

  2. When initiating export by any of the actions, a DICOM export window pops up containing the following A) Radio button to choose between individual series export (default), and entire scene export as a secondary capture containing the MRB. If entire scene is selected, then B, C and D are hidden B) Slightly modified subject hierarchy tree (determined by a flag in the SH model) - Only the exportable nodes show up (i.e. nodes that have at least one DICOM plugin that returns a confidence value on exporting greater than zero - this decision should be very quick, as the plugins are given nodes, and they don’t have to deal with the DICOM DB or files, so it can be expected not to slow down the tree operations) - Icons indicate if the mandatory tags are present (easy to do for patients and studies – probably already helps a lot – but can be extended, see below) - Multi-select to choose more nodes if they are to be exported together (DICOM plugin has to be able to handle multiple nodes of certain types for this, e.g. RT plugin can handle CT + RTSS + RTDOSE and can create connections between the series, but scalar volume plugin can only handle multiple volumes which it exports one by one without creating connections) C) A modified DICOM tag editor (DICOM browser -> Metadata) that allows editing the fields D) Actions for populating tags from another SH node, or from a DICOM series in the database (comments * and ** in the image) E) Export row with export button and a directory selector

  3. When export is clicked (for single series case, the entire scene case is straightforward), then A) DICOM plugins are given the series subject hierarchy node to export. They return confidence numbers (0 to 1) indicating how suitable they think themselves for exporting the node in question B) List of suitable plugins is shown with highest confidence on top and selected C) User makes selection D) Series is exported by the chosen plugin. The patient and study tags are pulled from parent SH nodes. If there is a mandatory tag missing, then the plugin returns with an error and the list of missing tags. The user can then edit the tags until all mandatory is present and click Export again.

  4. Two possibilities to handle mandatory tags in series: 1) popup error message when Export is clicked telling the user what mandatory tags are still required (easier implementation); 2) real-time feedback in the modified tree (2B) and red rows with the missing tags in the editor (for this pre-selection of the exporter plugin is necessary, which differs from 3A; this could be implemented as a second round after making it work with option 1)

2012-03-02, 16:00:01 - Andras Lasso

(In r:51) Fixed #55: Set ModifiedSinceRead attribute to true to force saving the imported RTDOSE volume (thus, it will not be imported again from DICOM). Additional data (dose unit and scaling factor) is saved as custom MRML node attributes.

2012-03-02, 16:00:01 - Andras Lasso

assigned_to_id: changed from null to “lassoan”

2012-03-02, 16:00:01 - Andras Lasso

status: changed from “New” to “Fixed”

2012-03-02, 16:02:00 - Andras Lasso

problem not yet fixed (revision:51 was linked to this ticket by mistake, it was meant to fix #51)

2012-03-02, 16:02:00 - Andras Lasso

status: changed from “Fixed” to “New”

2012-03-04, 21:52:43 - Andras Lasso

Updating tickets (#54, #55, #56, #57, #58, #59, #60, #61, #63, #66, #67, #68)

2012-03-04, 21:52:43 - Andras Lasso

milestone_id: changed from null to “NA-MIC 2012 Summer Project week”

2012-03-05, 00:18:12 - Andras Lasso

milestone: changed from null to “RT data export”

2012-03-29, 20:19:17 - Andras Lasso

Save UID into the model when importing it from DICOM-RT. Then, when saving, offer the user to choose from all the UIDs that are present in all the MRML nodes.

2012-03-29, 20:19:17 - Andras Lasso

assigned_to_id: changed from “lassoan” to “pinter”

2012-06-20, 15:06:55 - Andras Lasso

Potential solution: patient hierarchy tree, node attributes assigned to tree branches, CLI interface defines reference and results are put back into the same location as the referenced input. See more details at #96.

2012-12-10, 21:17:19 - Csaba Pinter

assigned_to_id: changed from “pinter” to null

2012-12-10, 21:17:25 - Csaba Pinter

priority: changed from “Normal (3)” to “High (2)”

2012-12-10, 21:19:59 - Csaba Pinter

milestone_id: changed from “Future” to “SlicerRt 0.8.0 (2012-12)”

2012-12-17, 21:09:26 - wangk

Namic preparation:

  1. select from patient hierarchy tree.
  2. ask about plugin writer mechanism.
  3. prepare a pythhon code based on plugin reader. where to connect this code (which gui).

2012-12-17, 23:05:44 - Andras Lasso

FYI, http://infoscience.epfl.ch/record/133543/files/RTSTRUCT_Exporter.pdf

2013-01-24, 16:59:58 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.8.0 (2013-01)” to “SlicerRt 0.9.0 (2013-03)”

2013-03-24, 19:57:06 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.9.0 (2013-03)” to “SlicerRt 0.10.0 (2013-04)”

2013-04-04, 16:35:03 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.10.0 (2013-04)” to “SlicerRt 0.11.0 (2013-05)”

2013-05-01, 13:17:58 - Greg Sharp

(In r:797|slicerrt:797) Re #55: Bump plastimatch version, and make associated fixes in preparation for additions to plastimatch API

2013-05-01, 13:17:58 - Greg Sharp

assigned_to_id: changed from null to “gregsharp”

2013-05-02, 12:49:07 - Greg Sharp

(In r:798|slicerrt:798) Re #55: Make SlicerRT compatible with plastimatch revision 4259

2013-06-03, 01:43:14 - Greg Sharp

(In r:863|slicerrt:863) Re #55: Bump plastimatch version to fix bug writing RTSTRUCT

2013-08-15, 14:58:35 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.11.0 (2013-07)” to “SlicerRt 1.0 (2013-09)”

2013-10-30, 22:20:14 - Greg Sharp

(In r:1242|slicerrt:1242) Re #55 bump plastimatch version

2013-12-30, 00:48:05 - Csaba Pinter

milestone_id: changed from “SlicerRt 1.0” to “SlicerRt 0.14”

2014-03-06, 14:18:11 - Andras Lasso

fixed #55: Moved MultidimData MRML nodes into MRML subdirectory Commit: r:1553|slicerrt:1553

2014-03-06, 14:18:11 - Andras Lasso

status: changed from “New” to “Fixed”

2014-03-06, 14:48:06 - Csaba Pinter

Did you mean to close this?

2014-03-06, 17:12:26 - Andras Lasso

Sorry, not at all, I wanted to write #555!

2014-03-06, 17:12:26 - Andras Lasso

status: changed from “Fixed” to “Accepted”

2014-04-03, 18:14:51 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.14” to “SlicerRt 0.15”

2014-04-13, 20:28:46 - Greg Sharp

Re #55 Add options forsetting Patient ID, Patient Name; add status message area to UI Commit: r:1644|slicerrt:1644

2014-04-13, 20:39:31 - Csaba Pinter

@gregsharp FYI the DICOM export module will be obsolete in weeks… Update: Maybe not weeks :)

2014-04-13, 20:39:31 - Csaba Pinter

CommentContent: changed from “@gregsharp FYI the DICOM export module will be obsolete in weeks…” to “@gregsharp FYI the DICOM export module will be obsolete in weeks… Update: Maybe not weeks :)”

2014-04-13, 21:19:00 - Greg Sharp

OK.

2014-04-24, 13:52:44 - Greg Sharp

Re #55 Update plastimatch version to improve heuristic when choosing image intercept/offset values; make adjustments to associated API changes Commit: r:1674|slicerrt:1674

2014-08-13, 15:02:40 - Csaba Pinter

assigned_to_id: changed from “gregsharp” to “pinter”

2014-08-13, 21:05:19 - Csaba Pinter

image:cifTW6iY0r5jeYacwqEsg8

2014-08-13, 21:05:19 - Csaba Pinter

Attachment added: “20140813_DICOMexportv01.jpg”

2014-08-13, 21:05:40 - Csaba Pinter

description: changed from “It’s important to be able t…” to “It’s important to be able t…”

2014-08-14, 00:43:18 - Csaba Pinter

priority: changed from “High (2)” to “Highest (1)”

2014-10-02, 23:10:37 - Csaba Pinter

Re #55: Branch created for DICOM export. There are changes to be made in SlicerRT in relation to the subject hierarchy changes in the core during development of the DICOM export feature Commit: r:1967|slicerrt:1967

2014-10-07, 15:00:44 - Csaba Pinter

description: changed from “It’s important to be able t…” to “It’s important to be able t…”

2014-10-08, 20:40:41 - Csaba Pinter

Re #55: DICOM tags are saved into the node on the corresponding level; Additional DICOM tags saved when loading

All DICOM tags extracted from a series were saved into attributes of the series subject hierarchy node. Now they are saved to the corresponding level (patient info in the patient subject hierarchy node etc.) Commit: r:1973|slicerrt:1973

2014-10-10, 17:34:55 - Csaba Pinter

image:c_0WSuukmr5ke0acwqjQWU

2014-10-10, 17:34:55 - Csaba Pinter

Attachment added: “DICOMexport2-UI.png”

2014-10-10, 17:35:05 - Csaba Pinter

image:dfZFHIukmr5i9Ndmr6bg7m

2014-10-10, 17:35:05 - Csaba Pinter

Attachment added: “DICOMexport2-SequenceDiagram.png”

2014-10-10, 17:35:24 - Csaba Pinter

See updated plan (v2) attached

2014-10-15, 04:03:28 - Csaba Pinter

image:a38j1Ivcar5ik6acwqjQWU

2014-10-15, 04:03:28 - Csaba Pinter

Attachment added: “DICOMexport-tageditor.jpg”

2014-10-15, 18:10:29 - Csaba Pinter

Re #55: Daily merge from trunk Commit: r:1978|slicerrt:1978

2014-10-23, 21:59:24 - Csaba Pinter

Re #55: Use methods to get constants instead of strings. Methods have been introduced instead of members for constants to avoid copy paste errors in python and regressions when those constants are changed. Commit: r:1991|slicerrt:1991

2014-10-26, 21:59:47 - Csaba Pinter

Re #55: Fix incorrectly saved tag value Commit: r:1992|slicerrt:1992

2014-10-29, 21:00:00 - Csaba Pinter

Re #55: Renamed DicomRtImport module to DicomRtImportExport, and moved DicomRtExport classes there Commit: r:1994|slicerrt:1994

2014-10-29, 22:35:35 - Csaba Pinter

Re #55: DICOM-RT import now uses qSlicerDICOMLoadable instead of vtkDICOMImportInfo, as it can use it directly instead of having to do conversions back and forth. DicomRtExport merged into DicomRtImportExport and deleted. Commit: r:1995|slicerrt:1995

2014-10-30, 19:26:09 - Csaba Pinter

Re #55: Export functions in DICOM plugin and RT logic WIP

Does not work, because the VTK functions having Qt objects as arguments are not wrapped in python. Need to come up with something. Commit: r:1996|slicerrt:1996

2014-10-31, 03:56:00 - jchris

Not sure if it is useful in your particular case but a Qt object having invokable function/slots/signal having VTK object as parameter would work.

Hth

Jc

2014-10-31, 03:56:00 - jchris

Plan Level: changed from null to “Story”

2014-10-31, 12:14:55 - Csaba Pinter

Re #55: DICOM-RT import works again by passing the loadable information one by one

Not the most elegant solution, but it works for now and we can change it if we find a better way. Commit: r:1997|slicerrt:1997

2014-10-31, 12:16:39 - Csaba Pinter

Thanks, Jc, I’ll try!

2014-10-31, 18:01:02 - Andras Lasso

It is a completely fine solution if you define a VTK class for storing all data exchange between the plugin and the framework. This is what the vtkDICOMImportInfo class already does for import. vtkDICOMImportInfo was not put into the DICOM import framework because the import was already implemented in Python, but with the new unified import/export framework, implemented in C++, we can finally make vtkDICOMImportInfo a first-class citizen. We can either extend vtkDICOMImportInfo to handle both import and export (if there are many common members) or create a new similar class for export.

2014-10-31, 23:31:39 - Csaba Pinter

I’d like to avoid the long conversion code from Qt to VTK. I also want to keep the Qt classes, as it is so elegant to use the exact same code for the python and Qt/C++ classes. I thought about re-instating the import info class, but with a single conversion call, which does not work if we do it by calling a copy method in the VTK class with the Qt class. But, as Jc suggested that it would work, maybe we could have a method for that in the Qt container classes. How about:

2014-11-01, 00:01:29 - Csaba Pinter

Re #55: Fix RT export examine; Loaded RT structure set are not placed in subject hierarchy as a child of the referenced anatomical volume, but under the study, to ensure consistency, as this parenting cannot be done manually by the user according to parenting rules Commit: r:1998|slicerrt:1998

2014-11-01, 13:26:48 - Andras Lasso

Logic and MRML cannot use Qt and in general I would somewhat prefer if import/export could be performed using only C++ Logic & MRML classes when doing batch processing. So, I would tend to favor solutions that allow this and that keep Qt at the application and GUI level. On the other hand, Qt allows higher level abstraction and simpler code, so I see that it has advantages to use Qt as much as possible. It’s hard to define where is the optimal division between Qt and non-Qt, so maybe the best would be to discuss this next week in person/Skype.

2014-11-01, 13:50:40 - Csaba Pinter

With the current DICOM infrastructure it would not be possible to do everything in VTK/MRML/C++, because of the python core. As I see absolutely no chance for that to change, I rather went for accommodating that with the Qt container that is better python-wrapped and easier to use (through Qt properties). I know this is quite heterogenious, but I think it is not a bad way to make do with the tools we have (I’ll show you the code).

2014-11-01, 13:51:23 - Csaba Pinter

I’ll go ahead with implementing the VTK containers, because those are needed in any case as far as I see.

2014-11-01, 22:42:53 - Csaba Pinter

Re #55: Use VTK loadable and exportable in RT import/export Commit: r:1999|slicerrt:1999

2014-11-03, 02:26:22 - Csaba Pinter

Test #55: DICOM-RT export works using new DICOM export dialog

There is memory leak caused by VTK objects created in DicomRtImportExportPlugin.py, see todos Commit: r:2000|slicerrt:2000

2014-11-03, 02:26:22 - Csaba Pinter

status: changed from “Accepted” to “Test”

2014-11-03, 20:44:00 - Csaba Pinter

Final design:

2014-11-03, 20:44:05 - Csaba Pinter

image:aMI93sy5Or5k_cacwqEsg8

2014-11-03, 20:44:05 - Csaba Pinter

Attachment added: “DICOMexport_2.jpg”

2014-11-03, 20:44:20 - Csaba Pinter

image:aVNIjuy5Or5kZdacwqjQWU

2014-11-03, 20:44:20 - Csaba Pinter

Attachment added: “DICOMexport_3.jpg”

2014-11-04, 16:10:46 - Csaba Pinter

Re #55: Fixed RT image import and load (those series are stored in multiple files, the assumption was to handle single files); Fixed python self tests using RT import Commit: r:2005|slicerrt:2005

2014-11-04, 22:18:00 - Csaba Pinter

Re #55: Fixed memory leak when loading RT objects Commit: r:2006|slicerrt:2006

2014-11-04, 23:27:20 - Csaba Pinter

Re #55: RT export now properly saves patient name and ID Commit: r:2007|slicerrt:2007

2014-11-05, 16:49:39 - Csaba Pinter

Labs wiki page for DICOM export http://www.slicer.org/slicerWiki/index.php/Documentation/Labs/DICOMExport

2014-11-05, 18:46:50 - Csaba Pinter

status: changed from “Test” to “Fixed”

2014-11-12, 17:21:29 - Csaba Pinter

Re #55: Merged from trunk Commit: r:2021|slicerrt:2021

2014-12-02, 00:18:22 - Csaba Pinter

Integrated to Slicer core with commit http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=23810

2014-12-02, 01:00:29 - Csaba Pinter

Re #55: Integrating DICOM export branch into the trunk Commit: r:2045|slicerrt:2045

2014-12-02, 01:09:52 - Csaba Pinter

Re #55: Integrating DICOM export branch into the trunk (the precious commit was actually merging the trunk to the branch, but mislabelled) Commit: r:2046|slicerrt:2046

#56 Compute dose accumulation

The ‘Add scalar volumes’ can already add two volumes, but dose maps can have special properties, such as measurment units, normalization factor, etc. It could be better to have a specialized module that takes into account all these special properties.

2012-03-04, 21:52:43 - Andras Lasso

Updating tickets (#54, #55, #56, #57, #58, #59, #60, #61, #63, #66, #67, #68)

2012-03-04, 21:52:43 - Andras Lasso

milestone_id: changed from null to “NA-MIC 2012 Summer Project week”

2012-03-05, 00:20:39 - Andras Lasso

milestone: changed from null to “RT data analysis”

2012-05-05, 19:11:29 - Andras Lasso

milestone: changed from “RT data analysis” to “SlicerRt-0.3 release”

2012-05-10, 22:32:30 - Csaba Pinter

(In r:105) Re #56: Dose Accumulation module GUI functional

2012-05-10, 22:32:30 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2012-05-11, 15:27:19 - Csaba Pinter

status: changed from “New” to “Accepted”

2012-05-11, 19:49:03 - Csaba Pinter

(In r:107) Re #56: Dose Accumulation ParameterSet MRML node created (not utilized yet); Module appears in Radiotherapy category

2012-05-12, 00:33:53 - Csaba Pinter

(In r:108) Re #56: Dose Accumulation ParameterSet MRML node is used as the model of the module. The module is usable, but is not tested thoroughly (scene import/save, node deletion etc.)

2012-05-14, 19:02:00 - Csaba Pinter

(In r:110) Re #56: Dose Accumulation crashes and bugs fixed; Scene save/load works

2012-05-14, 21:00:59 - Csaba Pinter

(In r:111) Re #56: updateWidgetFromMRML function only called if a relevant node is involved, without the SceneChanged flag

2012-05-14, 21:02:37 - Csaba Pinter

(In r:112) Re #56: Using qSlicerGetTitleMacro(QTMODULE_TITLE) as intended

2012-05-14, 22:13:19 - Csaba Pinter

(In r:113) Re #56: Updating CMake files to the style of the latest template in DicomRtImport

2012-05-14, 22:13:45 - Csaba Pinter

(In r:114) Re #56: Updating CMake files to the style of the latest template in DoseAccumulation

2012-05-14, 22:16:23 - Csaba Pinter

(In r:115) Re #56, Re #90: Updating CMake files to the style of the latest template in DoseVolumeHistogram; Dummy parameter set node vtkMRMLDoseVolumeHistogramNode added (now identical to the one in DoseAccumulation, but this is not in use)

2012-05-14, 22:27:00 - Csaba Pinter

(In r:116) Re #56: Simpler way to check the type of a MRML node

2012-05-14, 23:02:55 - Csaba Pinter

(In r:117) Re #56: Removed unnecessary includes; Moved member variable from widget class to widget private class

2012-05-15, 00:28:56 - Csaba Pinter

(In r:118) Re #56: Small cleanup (comments, includes, forward declarations)

2012-05-16, 17:40:56 - Andras Lasso

assigned_to_id: changed from “pinter” to “wangk”

2012-05-28, 19:40:34 - wangk

status: changed from “Accepted” to “Test”

2012-07-24, 13:21:55 - Andras Lasso

milestone_id: changed from “SlicerRt-0.3 release” to “Release for AAPM2012”

2012-07-24, 13:22:01 - Andras Lasso

status: changed from “Test” to “Fixed”

#57 Implement dose comparison tools

Implement dose comparison tools, such as:

2012-03-04, 21:52:43 - Andras Lasso

Updating tickets (#54, #55, #56, #57, #58, #59, #60, #61, #63, #66, #67, #68)

2012-03-04, 21:52:43 - Andras Lasso

milestone_id: changed from null to “NA-MIC 2012 Summer Project week”

2012-03-05, 00:18:28 - Andras Lasso

milestone: changed from null to “RT data analysis”

2012-03-29, 20:17:36 - Andras Lasso

assigned_to_id: changed from null to “pinter”

2012-04-10, 17:39:29 - Andras Lasso

See these papers for more information on gamma functions: http://online.medphys.org/resource/1/mphya6/v30/i9/p2455_s1 http://online.medphys.org/resource/1/mphya6/v25/i5/p656_s1 http://online.medphys.org/resource/1/mphya6/v34/i5/p1647_s1 http://online.medphys.org/resource/1/mphya6/v38/i7/p4032_s1

2012-04-10, 17:43:08 - Andras Lasso

We could implement a CLI module that can compare two dose maps.

Input: dose volume 1 dose volume 2 method (dose difference, absolute dose difference, gamma method, distance to agreement)

Output: difference volume

2012-04-10, 17:43:36 - Andras Lasso

milestone_id: changed from “RT data analysis” to “Basic RT support as standard 3DSlicer extension”

2012-04-10, 17:52:10 - Andras Lasso

See this related project: http://www.na-mic.org/Wiki/index.php/RT_dose_comparison_tool_for_Slicer

Gamma function implementation: http://forge.abcd.harvard.edu/gf/project/plastimatch/scmsvn/?action=browse&path=%2Fplastimatch%2Ftrunk%2Fsrc%2Fplastimatch%2Fgamma_analysis.cxx&revision=3182&view=markup

2012-04-13, 22:35:21 - Andras Lasso

milestone: changed from “SlicerRt-0.2 release” to “SlicerRt-0.3 release”

2012-04-16, 00:37:58 - Andras Lasso

description: changed from “Implement dose comparison t…” to “Implement dose comparison t…”

2012-04-16, 20:31:46 - Andras Lasso

Based on the recommendation of a dosimetrist at PMH a gamma function described by Daniel Low should be used (e.g., http://www.lcr.uerj.br/Manual_ABFM/Evaluation%20of%20the%20gamma%20dose%20distribution%20comparison%20method.pdf)

2012-04-16, 20:34:11 - Andras Lasso

We may may use the readily available gamma function implementation in Plastimatch, if the code gets documented, automatic tests and bibliographic reference will be added, and will be made available in a compact library. Discussion of this work is in progress with Greg Sharp (Plastimatch project leader).

2012-06-18, 20:28:11 - Csaba Pinter

status: changed from “New” to “Accepted”

2012-06-18, 20:29:34 - Csaba Pinter

(In r:140) Re #57: GammaDoseComparison module skeleton + s4ext; s4ext files of the other modules updated from SlicerRT trunk (they could be deleted from either location)

2012-06-18, 22:41:03 - Csaba Pinter

(In r:143) Re #57: GammaDoseComparison compiles; CMakeLists.txt files brought to the desired convention

2012-06-19, 03:27:44 - Csaba Pinter

(In r:145) Re #57: GammaDoseComparison renamed to DoseComparison

2012-06-19, 03:29:15 - Csaba Pinter

(In r:155405e972ef83205c155f2122fbcdc37ad09fe1) Re #57: GammaDoseComparison renamed to DoseComparison

Branch: master

2012-06-19, 16:27:49 - Csaba Pinter

(In r:146) Re #57: DoseComparison module GUI created

2012-06-20, 19:56:31 - Csaba Pinter

(In r:c91809d9d6a88a9878332be01ff8ee814ea43487) Re #57: DoseComparison.s4ext disabled until dependency to Plastimatch is not solved properly (http://www.na-mic.org/Bug/view.php?id=2222)

Branch: master

2012-06-20, 19:56:34 - Csaba Pinter

(In r:148) Re #57: Dose comparison GUI and logic and parameter set node implemented

2012-06-21, 03:52:36 - Csaba Pinter

(In r:151|slicerrt:151) Re #57: Dose comparison computes gamma image

2012-06-21, 19:19:57 - Csaba Pinter

(In r:152|slicerrt:152) Re #57: Fix gamma image scaling, origin, and orientation; Minor improvements in the Dose Comparison GUI

2012-08-13, 18:06:35 - Andras Lasso

(In r:244|slicerrt:244) re #57: Added superbuild option that downloads and builds Plastimatch core as static lib and uses it in SlicerRt. Can be enabled with the SLICERRT_SUPERBUILD option (does not work yet as is, because there are a few issues with Plastimatch CMake files)

Plastimatch issues:

2012-08-14, 21:56:57 - Andras Lasso

(In r:249|slicerrt:249) re #57: Enhancements of the dose compare module: display resulting scalar volume (select as active volume), use a red color map, fixed memory leak, allow renaming of the output volume

2012-08-17, 20:56:13 - Andras Lasso

(In r:250|slicerrt:250) re #57: Simplified build script after enhancing Plastimatch make files

2012-08-20, 20:08:14 - Andras Lasso

milestone: changed from “SlicerRt-0.3 release” to “SlicerRt 2012-08”

2012-08-31, 21:22:45 - Csaba Pinter

status: changed from “Accepted” to “Test”

2012-09-05, 13:37:50 - Andras Lasso

(In r:289|slicerrt:289) re #57: Fixed comments and default values in the dose comparison GUI

2012-09-20, 16:09:45 - Csaba Pinter

Updating tickets (#57, #65, #75, #83, #107, #119, #124, #126, #128)

2012-09-20, 16:09:45 - Csaba Pinter

status: changed from “Test” to “Fixed”

#58 Import isocenter from RT plan object

Get the isocenter position from the RT plan object (could be displayed as a fiducial point).

Later it might be useful to get more data, which could be used to produce DRRs.

2012-03-04, 21:52:43 - Andras Lasso

Updating tickets (#54, #55, #56, #57, #58, #59, #60, #61, #63, #66, #67, #68)

2012-03-04, 21:52:43 - Andras Lasso

milestone_id: changed from null to “NA-MIC 2012 Summer Project week”

2012-03-05, 00:19:32 - Andras Lasso

milestone: changed from null to “Basic RT support as standard 3DSlicer extension”

2012-03-05, 20:52:36 - Andras Lasso

assigned_to_id: changed from null to “wangk”

2012-03-26, 18:00:19 - wangk

status: changed from “New” to “Accepted”

2012-04-10, 15:07:03 - wangk

status: changed from “Accepted” to “Test”

2012-04-13, 22:37:00 - Andras Lasso

milestone: changed from “SlicerRt-0.2 release” to “SlicerRt-0.3 release”

2012-05-03, 16:47:37 - Andras Lasso

(In r:103) re #58: Put the isocenter fiducial points into a separate annotation node so that they show up correctly in the annotations module

2012-05-16, 17:41:14 - Andras Lasso

assigned_to_id: changed from “wangk” to “lassoan”

2012-06-22, 14:16:59 - Andras Lasso

status: changed from “Test” to “Fixed”

#59 Implement dice similarity measure for contour comparison

Dice similarity measure could be useful for comparison of the contours. Previously it had been available in Slicer but later it was removed. Source code for Slicer3 is available in the NA-MIC sandbox.

Add also 95% Hausdorff distance. Maybe also STAPLE.

2012-03-04, 21:52:43 - Andras Lasso

Updating tickets (#54, #55, #56, #57, #58, #59, #60, #61, #63, #66, #67, #68)

2012-03-04, 21:52:43 - Andras Lasso

milestone_id: changed from null to “NA-MIC 2012 Summer Project week”

2012-03-05, 00:20:24 - Andras Lasso

milestone: changed from null to “RT data analysis”

2012-06-20, 14:50:31 - Andras Lasso

Plastimatch algorithm could be used. Interface is expected to be ready by mid July.

2012-06-20, 14:52:36 - Andras Lasso

assigned_to_id: changed from null to “pinter”

2012-06-20, 14:52:36 - Andras Lasso

milestone_id: changed from “RT data analysis” to “SlicerRt-0.3 release”

2012-07-16, 15:25:46 - Csaba Pinter

Plastimatch class to use: http://plastimatch.org/doxygen/classDice__statistics.html

2012-08-08, 15:13:59 - Andras Lasso

description: changed from “Dice similarity measure cou…” to “Dice similarity measure cou…”

2012-08-20, 20:09:36 - Andras Lasso

milestone: changed from “SlicerRt-0.3 release” to “SlicerRt 2012-08”

2012-08-31, 22:37:23 - Csaba Pinter

status: changed from “New” to “Accepted”

2012-09-04, 15:31:16 - Csaba Pinter

(In r:288|slicerrt:288) Re #59: ContourComparison module skeleton; Fixed build errors in DicomRtImport (vtkPolyData in Logic.h) and Isodose (…AndObserve functions)

2012-09-04, 16:30:54 - Csaba Pinter

As the input format is labelmap, conversion or mapping to existing objects is necessary. #137 solves this problem, it needs to be done first.

2012-09-05, 14:38:57 - Andras Lasso

Updating tickets (#59, #33, #112, #131, #25, #129, #115, #81, #114, #113, #111, #38, #137)

2012-09-05, 14:38:57 - Andras Lasso

milestone_id: changed from “SlicerRt 2012-08” to “SlicerRt 2012-09”

2012-10-02, 18:19:21 - Csaba Pinter

(In r:329|slicerrt:329) Re #59: Contour comparison GUI done

2012-10-02, 21:34:19 - Csaba Pinter

(In r:333|slicerrt:333) Re #59: Reference volume added to Contour comparison UI; Contour comparison logic calls dice similarity algorithm (output needs to be displayed and saved into node)

2012-10-03, 21:16:18 - Csaba Pinter

(In r:335|slicerrt:335) Re #59: Dice metrics are computed and displayed. More testing is needed

2012-10-05, 21:11:17 - Csaba Pinter

(In r:344|slicerrt:344) Re #59: Fixed small GUI and logic bugs

2012-10-05, 21:16:24 - Csaba Pinter

What is still missing:

2012-10-12, 12:36:54 - Csaba Pinter

Updating tickets (#144, #25, #38, #59, #61, #81, #113, #115, #131, #134, #136, #137, #138, #140, #145, #146)

2012-10-12, 12:36:54 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.5.0 (2012-09)” to “SlicerRt 0.6.0”

2012-10-22, 17:51:06 - Csaba Pinter

All the issues above have been addressed, except for the case of input labelmaps with different geometry. As it would be better if Plastimatch handled this, I created a ticket there: http://forge.abcd.harvard.edu/gf/project/plastimatch/tracker/?action=TrackerItemEdit&tracker_item_id=3542&start=0

2012-10-22, 18:10:04 - Greg Sharp

Agreed. I will look into it.

2012-10-22, 20:13:03 - Csaba Pinter

I close this ticket, because the module itself is ready. I have created #159 to capture this issue.

2012-10-22, 20:13:03 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

#60 Allow saving of DVH values in text file

Allow saving of computed DVH values in text(like) file format

2012-03-04, 21:52:43 - Andras Lasso

Updating tickets (#54, #55, #56, #57, #58, #59, #60, #61, #63, #66, #67, #68)

2012-03-04, 21:52:43 - Andras Lasso

milestone_id: changed from null to “NA-MIC 2012 Summer Project week”

2012-03-05, 00:20:31 - Andras Lasso

milestone: changed from null to “RT data export”

2012-03-28, 17:16:45 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2012-03-28, 17:16:45 - Csaba Pinter

status: changed from “New” to “Accepted”

2012-03-28, 21:43:18 - Csaba Pinter

(In r:74) Test #60: Selected DVHs can be saved into CSV file. The output file contains two columns for each structure: one for the dose values, another for the accumulated percentages.

2012-03-28, 21:43:18 - Csaba Pinter

status: changed from “Accepted” to “Test”

2012-05-05, 19:09:03 - Andras Lasso

milestone_id: changed from “RT data export” to “SlicerRt-0.3 release”

2012-06-22, 14:42:32 - Andras Lasso

status: changed from “Test” to “Fixed”

#61 Export RT data to Matlab

Several groups (such as Dionne M. Aleman, UofT; John Schreiner et al. at the cancer center in KGH) use Matlab for algorithm development. Therefore, it’s important to be able to export DICOM-RT data in a file format that can be conveniently loaded into Matlab. Then the processing results should be possible to load into Slicer for analysis.

First just implement saving RT data in a format that can be read in Matlab.

Provide sample scripts that export data from Slicer to file. Provide sample scripts that import data from file to Matlab.

Data representation in Matlab is a non-trivial question. Many current Matlab-using RT researchers are familiar with CERR data representation. So, it seems to be a good idea to read from file into a CERR-like data representation.

2012-03-04, 21:52:43 - Andras Lasso

Updating tickets (#54, #55, #56, #57, #58, #59, #60, #61, #63, #66, #67, #68)

2012-03-04, 21:52:43 - Andras Lasso

milestone_id: changed from null to “NA-MIC 2012 Summer Project week”

2012-03-05, 00:18:38 - Andras Lasso

milestone: changed from null to “RT data export”

2012-08-20, 19:57:51 - Andras Lasso

milestone: changed from “RT data export” to “SlicerRt-0.3 release”

2012-08-20, 20:06:38 - Andras Lasso

milestone: changed from “SlicerRt-0.3 release” to “Future”

2012-09-26, 23:56:57 - Andras Lasso

assigned_to_id: changed from null to “wangk”

2012-09-26, 23:56:57 - Andras Lasso

description: changed from “Several groups (such as Dio…” to “Several groups (such as Dio…”

2012-09-26, 23:56:57 - Andras Lasso

milestone_id: changed from “Future” to “SlicerRt 0.5.0 (2012-09)”

2012-09-28, 17:57:05 - Anonymous

Is there a document for CERR on line?

2012-09-28, 18:03:11 - Greg Sharp

Yes, anonymous, look at http://cerr.info

2012-09-28, 21:18:40 - pieper

Thank you gregsharp!

(Anonymous was actually me, not logged in)

2012-10-05, 14:51:50 - wangk

status: changed from “New” to “Accepted”

2012-10-12, 12:36:54 - Csaba Pinter

Updating tickets (#144, #25, #38, #59, #61, #81, #113, #115, #131, #134, #136, #137, #138, #140, #145, #146)

2012-10-12, 12:36:54 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.5.0 (2012-09)” to “SlicerRt 0.6.0”

2012-10-29, 19:54:47 - Andras Lasso

status: changed from “Accepted” to “New”

2012-10-29, 19:54:56 - Andras Lasso

milestone_id: changed from “SlicerRt 0.6.0 (2012-10)” to “SlicerRt 0.7.0 (2012-11)”

2012-12-10, 21:26:22 - Csaba Pinter

Updating tickets (#38, #61, #134, #136, #144, #191)

2012-12-10, 21:26:22 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.7.0 (2012-11)” to “SlicerRt 0.8.0 (2012-12)”

2013-01-24, 16:59:58 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.8.0 (2013-01)” to “SlicerRt 0.9.0 (2013-03)”

2013-03-24, 19:57:06 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.9.0 (2013-03)” to “SlicerRt 0.10.0 (2013-04)”

2013-04-04, 17:04:36 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.10.0 (2013-04)” to “Future”

2013-07-11, 01:36:44 - Csaba Pinter

@lassoan: Can this be closed?

2013-07-11, 01:50:28 - Andras Lasso

Now dose and CT data can be sent as volume, structure sets as labelmaps, so I think we can consider this to be done.

2013-07-11, 12:58:14 - Csaba Pinter

milestone_id: changed from “Future” to “MatlabBridge 0.5.0”

2013-07-11, 12:58:21 - Csaba Pinter

status: changed from “New” to “Fixed”

#62 Use hierarchy node to store the loaded structure set models

When loading from the DICOM module, create a hierarchy node for the RTSS models. Enable DVH module to compute DVH from a hierarchy node of models.

2012-03-04, 20:29:19 - Andras Lasso

summary: changed from “Use hierarchy node to store the loaded structure set models in” to “Use hierarchy node to store the loaded structure set models”

2012-03-04, 20:29:35 - Andras Lasso

milestone_id: changed from “QIN meeting demo” to “NA-MIC 2012 Summer Project week”

2012-03-05, 00:19:39 - Andras Lasso

milestone: changed from null to “Basic RT support as standard 3DSlicer extension”

2012-03-26, 16:30:59 - Csaba Pinter

(In r:68) Re #62: Create a hierarchy node for the loaded RTSS models

2012-03-26, 18:19:16 - Csaba Pinter

status: changed from “New” to “Accepted”

2012-03-27, 17:46:55 - Csaba Pinter

(In r:70) Re #62, Re #67: Rework DVH module so that the histograms can be computed for hierarchy nodes as well; The histograms are stored in vtkMRMLDoubleArrayNode objects that are added to the scene; Checkboxes added to each row (structure) of the statistics table, that can be used to show/hide the corresponding DVH plot in the selected chart; vtkPolyDataToLabelmapFilter has two modes: one that has a labelmap as output (as before) and one that stencils the dose volume with the input structure and the output contains the dose values in that structure

2012-03-27, 21:27:47 - Csaba Pinter

(In r:71) Test #62: Show/hide all checkbox works; Handle structures with the same names (when computing the DVH twice on the same structure)

2012-03-27, 21:27:47 - Csaba Pinter

status: changed from “Accepted” to “Test”

2012-03-29, 19:24:32 - Csaba Pinter

status: changed from “Test” to “Fixed”

#63 Make the Model to labelmap module work for non-axis-aligned reference volumes

Currently the direction cosines in the reference volume are ignored. The generated labelmap is correct, but the labelmap covers a slightly different region than the reference volume.

Probably the simplest would be to run the labelmap generation in the IJK space (for this the contours should be converted form the RAS space to the IJK space).

2012-03-04, 21:52:43 - Andras Lasso

Updating tickets (#54, #55, #56, #57, #58, #59, #60, #61, #63, #66, #67, #68)

2012-03-04, 21:52:43 - Andras Lasso

milestone_id: changed from null to “NA-MIC 2012 Summer Project week”

2012-03-05, 00:20:01 - Andras Lasso

milestone: changed from null to “Basic RT support as standard 3DSlicer extension”

2012-03-29, 19:34:14 - Andras Lasso

assigned_to_id: changed from null to “pinter”

2012-04-11, 23:42:26 - Csaba Pinter

status: changed from “New” to “Test”

2012-04-12, 15:59:27 - Csaba Pinter

If the volume axes are not aligned with the RAS axes, then sometimes the model to labelmap generation with the stencil method gives a result that has holes in it (screenshot attached). Probably when Kevin manages the setting of the ribbon thicknesses according to the actual slice thickness, this issue will be fixed. Testing needed when ticket #49 is done.

2012-04-12, 15:59:39 - Csaba Pinter

image:ccy_SMHlGr4y4jacwqjQWU

2012-04-12, 15:59:39 - Csaba Pinter

Attachment added: “StencilIssue.jpg”

2012-04-13, 22:37:04 - Andras Lasso

milestone: changed from “SlicerRt-0.2 release” to “SlicerRt-0.3 release”

2012-06-22, 16:18:54 - Andras Lasso

It seems that the correct ribbon thickness does not solve the problem. Probably need to have closed contours (see #103) to make this work reliably.

2012-06-22, 16:18:54 - Andras Lasso

assigned_to_id: changed from “pinter” to “lassoan”

2012-06-22, 16:18:54 - Andras Lasso

status: changed from “Test” to “New”

2013-04-25, 16:44:09 - Csaba Pinter

The related tickets cover this ticket together. If they are resolved, this one can be closed, too.

2013-04-25, 18:35:16 - Andras Lasso

I agree, I think this ticket is not relevant anymore.

2013-04-25, 18:37:08 - Csaba Pinter

Closed as Invalid because other tickets cover this issue more specifically (see related tickets)

2013-04-25, 18:37:08 - Csaba Pinter

status: changed from “New” to “Invalid”

#64 Displayed DoseVolumeHistogram module name does not contain spaces

Setting the module name in the CMakeLists.txt file { set(qt_module_title ‘Dose Volume Histogram’) } does not have an effect. The displayed module name is still ‘DoseVolumeHistogram’. The ChangeTracker module has similar problem.

2012-03-05, 00:19:51 - Andras Lasso

milestone: changed from null to “Basic RT support as standard 3DSlicer extension”

2012-03-29, 01:17:33 - Csaba Pinter

Follow the issue on Slicer Mantis: http://www.na-mic.org/Bug/view.php?id=1846

2012-04-13, 22:35:53 - Andras Lasso

milestone: changed from “SlicerRt-0.2 release” to “SlicerRt-0.3 release”

2012-05-11, 16:18:27 - Csaba Pinter

(In r:106) Test #64: Spaces now appear in the module name in the module list (set to fixed only if Slicer Mantis issue http://www.na-mic.org/Bug/view.php?id=1846 is closed and this re-tested); Updated license text

2012-05-11, 16:18:27 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2012-05-11, 16:18:27 - Csaba Pinter

status: changed from “New” to “Test”

2012-05-14, 18:18:31 - Csaba Pinter

status: changed from “Test” to “Fixed”

#65 Make SlicerRt extensions downloadable for standard 3DSlicer releases

Currently a special private build of SlicerRt has to be used, as the DCMTK version that Slicer uses now does not support RT objects. Once 3DSlicer starts to use a more recent DCMTK version, the SlicerRt extensions can be published as extensions.

Automatic tests are required for the downloadable extensions.

2012-03-05, 00:20:06 - Andras Lasso

milestone: changed from null to “Basic RT support as standard 3DSlicer extension”

2012-04-04, 13:54:34 - Csaba Pinter

description: changed from “Currently a special private…” to “Currently a special private…”

2012-04-13, 22:29:34 - Andras Lasso

milestone_id: changed from “Basic RT support as standard 3DSlicer extension” to “NA-MIC 2012 Summer Project week”

2012-06-02, 14:38:34 - Andras Lasso

Updating tickets (#24, #27, #29, #34, #37, #40, #44, #50, #54, #65, #68)

2012-06-02, 14:38:34 - Andras Lasso

milestone_id: changed from “NA-MIC 2012 Summer Project week” to “SlicerRt-0.3 release”

2012-06-18, 18:51:48 - Andras Lasso

assigned_to_id: changed from null to “lassoan”

2012-06-18, 18:51:48 - Andras Lasso

status: changed from “New” to “Accepted”

2012-07-04, 22:07:01 - Andras Lasso

milestone_id: changed from “SlicerRt-0.3 release” to “Release for AAPM2012”

2012-07-22, 21:27:03 - Andras Lasso

(In r:190|slicerrt:190) re #65: Updated extension logo

2012-07-22, 21:30:19 - Andras Lasso

(In r:191|slicerrt:191) re #65: Pack all modules into one extension. It’s easier to manage one extension than a separate one for each module.

2012-07-23, 14:08:44 - Andras Lasso

(In r:192|slicerrt:192) re #65: Removed obsolete readme.txt, added License file (Slicer license)

2012-07-23, 17:17:18 - Andras Lasso

(In r:193|slicerrt:193) re #65: Fixed screenshot (it appears that https is not supported, therefore we have to upload images to an http server, such as the Slicer wiki)

2012-07-24, 21:28:11 - Andras Lasso

(In r:204|slicerrt:204) re #65: Updated tutorial after SlicerRT released as a regular extension

2012-07-24, 21:32:53 - Andras Lasso

(In r:205|slicerrt:205) re #65: Updated tutorial file name

2012-07-26, 15:28:33 - Andras Lasso

The only remaining issue is that the Python wrapping does not work in extensions on Mac, therefore the SlicerRT extension is not yet functional on Mac. The issue is tracked in: http://www.na-mic.org/Bug/view.php?id=2358

2012-08-10, 19:14:19 - Andras Lasso

milestone_id: changed from “Release for AAPM2012” to “SlicerRt-0.3 release”

2012-08-20, 20:32:55 - Andras Lasso

milestone: changed from “SlicerRt-0.3 release” to “SlicerRt 2012-08”

2012-09-05, 14:37:02 - Andras Lasso

status: changed from “Accepted” to “Test”

2012-09-20, 16:09:45 - Csaba Pinter

Updating tickets (#57, #65, #75, #83, #107, #119, #124, #126, #128)

2012-09-20, 16:09:45 - Csaba Pinter

status: changed from “Test” to “Fixed”

#66 Display real dose values

Currently when a dose map is loaded the raw voxel values are displayed. The users would be interested in the actual dose values (voxelValue*DoseGridScaling) and the unit (Dose Units). The DoseGridScaling and DoseUnit values are stored as custom MRML node attributes in the dose map volume.

Possible implementation options: *A: update the Data probe widget to use the intensity scaling and unit parameters (if they are defined for the selected volume). Probably update the volumes module as well to reflect the scaling value in the histogram, maybe add the possibility to view/edit the intensity scaling&unit. Somewhat not nice is that probably the scaling&unit info will be lost when the volume is processed. *B: convert the dose map to float image when importing the dose map: it requires 2x more memory (float instead of short) and the unit is still not displayed

Option A seems to be the better option, as it’s not too big change and the feature would be useful in general (not just for RT). The list of attributes name&values should be visible (and maybe editable) for the user. Maybe in the data module.

UPDATE: After further consideration we decided to implement Option B. The memory impact is not that painful as usually dose volumes are not very big and on a 64 bit environment the system should be able to handle the extra data. Also driving the changes trhough all the affected modules is complicated as the extra fields would have to be used in virtually every module that handles volumes, and these changes needs to be checked with the responsible people. UPDATE 2: It turned out that both the unsigned int and the float data type is 32 bits, so the volumes are of the same size in memory

2012-03-04, 21:52:43 - Andras Lasso

Updating tickets (#54, #55, #56, #57, #58, #59, #60, #61, #63, #66, #67, #68)

2012-03-04, 21:52:43 - Andras Lasso

milestone_id: changed from null to “NA-MIC 2012 Summer Project week”

2012-03-05, 00:18:18 - Andras Lasso

milestone: changed from null to “Basic RT support as standard 3DSlicer extension”

2012-03-19, 19:20:54 - Andras Lasso

assigned_to_id: changed from null to “pinter”

2012-03-29, 15:22:19 - Csaba Pinter

description: changed from “Currently when a dose map i…” to “Currently when a dose map i…”

2012-03-29, 15:22:19 - Csaba Pinter

status: changed from “New” to “Accepted”

2012-03-29, 18:52:42 - Csaba Pinter

description: changed from “Currently when a dose map i…” to “Currently when a dose map i…”

2012-03-29, 19:19:19 - Csaba Pinter

(In r:75) Re #66: Convert the unsigned int volume to float volume and replace the image data in the node with it

2012-03-29, 19:20:27 - Csaba Pinter

(In r:76) Test #66: Dose volume scaling does not have to be taken into account for the DVH metrics

2012-03-29, 19:20:27 - Csaba Pinter

status: changed from “Accepted” to “Test”

2012-04-12, 15:56:02 - Csaba Pinter

status: changed from “Test” to “Fixed”

#67 Store computed DVH in MRML node

Store computed DVH in MRML node to avoid recomputation for plotting/statistics computation. Also, now when the scene is closed all the MRML nodes are deleted, but the DVH metrics in the DVH module are still shown (becuase they don’t refer to MRML nodes). Note that for charting the values are already stored in a MRML node, so maybe that can be utilized.

There could be a list of computed DVHs in the DVH module. Each line could contain an eye icon (that could turn on/off the visibility of a DVH in the currently selected plot) and a number of DVH metric values.

Dose unit should be stored and displayed for each DVH (currently it is shown in the table header, but it’s not good, as the unit in DVHs may differ)

2012-03-04, 21:38:32 - Andras Lasso

description: changed from “Store computed DVH in MRML …” to “Store computed DVH in MRML …”

2012-03-04, 21:52:43 - Andras Lasso

Updating tickets (#54, #55, #56, #57, #58, #59, #60, #61, #63, #66, #67, #68)

2012-03-04, 21:52:43 - Andras Lasso

milestone_id: changed from null to “NA-MIC 2012 Summer Project week”

2012-03-05, 00:21:10 - Andras Lasso

milestone: changed from null to “Basic RT support as standard 3DSlicer extension”

2012-03-19, 19:21:32 - Andras Lasso

assigned_to_id: changed from null to “pinter”

2012-03-27, 17:40:05 - Csaba Pinter

status: changed from “New” to “Accepted”

2012-03-27, 17:46:55 - Csaba Pinter

(In r:70) Re #62, Re #67: Rework DVH module so that the histograms can be computed for hierarchy nodes as well; The histograms are stored in vtkMRMLDoubleArrayNode objects that are added to the scene; Checkboxes added to each row (structure) of the statistics table, that can be used to show/hide the corresponding DVH plot in the selected chart; vtkPolyDataToLabelmapFilter has two modes: one that has a labelmap as output (as before) and one that stencils the dose volume with the input structure and the output contains the dose values in that structure

2012-03-28, 17:16:15 - Csaba Pinter

(In r:72) Test #67: Handle MRML scene changes in DVH module

2012-03-28, 17:16:15 - Csaba Pinter

status: changed from “Accepted” to “Test”

2012-03-29, 19:24:26 - Csaba Pinter

status: changed from “Test” to “Fixed”

#68 Cannot move the legend on the DVH plot

Most often the DVH plot’s legend is quite big and it covers interesting parts of the chart. Need to find a way to move/resize the legend and the chart area.

It’s difficult to find out how to unzoom the chart area (double click with left mouse button).

2012-03-04, 21:46:59 - Andras Lasso

description: changed from “Most often the DVH plot’s l…” to “Most often the DVH plot’s l…”

2012-03-04, 21:52:43 - Andras Lasso

Updating tickets (#54, #55, #56, #57, #58, #59, #60, #61, #63, #66, #67, #68)

2012-03-04, 21:52:43 - Andras Lasso

milestone_id: changed from null to “NA-MIC 2012 Summer Project week”

2012-06-02, 14:38:34 - Andras Lasso

Updating tickets (#24, #27, #29, #34, #37, #40, #44, #50, #54, #65, #68)

2012-06-02, 14:38:34 - Andras Lasso

milestone_id: changed from “NA-MIC 2012 Summer Project week” to “SlicerRt-0.3 release”

2012-07-24, 23:12:44 - Andras Lasso

description: changed from “Most often the DVH plot’s l…” to “Most often the DVH plot’s l…”

2012-08-20, 20:08:19 - Andras Lasso

milestone: changed from “SlicerRt-0.3 release” to “Future”

2014-07-13, 06:10:07 - Csaba Pinter

priority: changed from “Normal (3)” to “Low (4)”

2015-08-05, 15:29:22 - Andras Lasso

If there are many series then we could switch to outside display mode:

location: ‘e’, placement: ‘outsideGrid’

See example here: http://stackoverflow.com/questions/14450030/jqplot-hide-lines-from-legend-click

2015-09-10, 14:55:12 - Greg Sharp

milestone_id: changed from “Future” to “SlicerRt 0.18”

2015-09-10, 15:00:51 - Greg Sharp

milestone_id: changed from “SlicerRt 0.18” to “Future”

#69 Implement dose surface histogram computation

2012-03-05, 00:21:45 - Andras Lasso

milestone: changed from null to “RT data analysis”

2012-08-20, 19:58:29 - Andras Lasso

milestone: changed from “RT data analysis” to “Future”

#70 Visualize deformation fields in Slicer

Visualization and/or export (for visualization in ParaView) is needed.

Question from the Slicer users mailing list: In Slicer3D, is there a way to get the deformation grid and displacement vector that represents the Bspline deformation between 2 3D images? Do you know how to do display this in Slicer3D? I have registered a lung CT-sim (planning) image with the conebeam CT (pre-treatment) image of the same patient and obviously, there are a few deformations involved. These are described using the Bspline parameters. However, the tfm file has a bunch of numbers that is difficult to interpret. Can you help me displaying the deformation using either a deformation grid or displacement vector field (with bunch of arrows) or both?

Answer: We have some rudimentary (commandline) tools to convert to a deformation field. You will find details here: http://www.slicer.org/slicerWiki/index.php/Slicer-3-6-FAQ#How_can_I_convert_a_BSpline_transform_into_a_deformation_field.3F Visualization can be done by loading the deformation field as a 4D volume which displays direction as color orientation, although of limited use because negative numbers are clipped. You can also try applying your transform to aux. grid images available here: http://na-mic.org/Wiki/index.php/Projects:RegistrationDocumentation:UseCaseInventory:Auxiliary

See more info here: Deformation_field_visualization_in_Slicer

2012-06-20, 14:44:38 - Andras Lasso

2012-06-20, 14:50:26 - Andras Lasso

Plastimatch algorithm could be used

2012-08-08, 15:20:30 - Andras Lasso

description: changed from “Question from the Slicer us…” to “Visualization and/or export…”

2012-08-20, 19:58:18 - Andras Lasso

milestone: changed from “RT data analysis” to “Future”

2012-12-11, 00:24:15 - Andras Lasso

description: changed from “Visualization and/or export…” to “Visualization and/or export…”

2013-02-07, 21:17:39 - Andras Lasso

(In r:601|slicerrt:601) re #70: Removed DeformationVisualizer library (vtkLengthGlyph3D is now part of the module)

2013-02-07, 21:17:39 - Andras Lasso

assigned_to_id: changed from null to “lassoan”

2013-02-19, 14:04:56 - Franklin King

(In r:625|slicerrt:625) re #70: Redid IO to work with already loaded volumes and models; Removed old IO; Fixed parameter node

2013-03-01, 20:03:07 - Andras Lasso

Fixes:

Add visualization capabilities for images slices:

Color map:

Add a hard threshold on the minimum deformation (nothing below that level is visualized)

2013-03-04, 17:10:41 - wangk

It is nice to see we now have the deformation field visualization function in slicerRT.

I have one comment or request to this module, can we make it available also in the 2D slice Viewers? It is much easy to investigate and visualize in 2D viewers in some cases.

2013-03-04, 17:23:16 - Andras Lasso

Yes, ‘Add visualization capabilities for images slices’ refers to adding support for visualization in slice viewers.

2013-03-04, 17:23:16 - Andras Lasso

assigned_to_id: changed from “lassoan” to “FranklinK”

2013-03-04, 17:23:16 - Andras Lasso

status: changed from “New” to “Accepted”

2013-03-07, 06:54:45 - Franklin King

(In r:686|slicerrt:686) re #70: Remade vtkLengthGlyph3D to suit new density (maximum points) options and renamed to vtkDFVGlyph3D; Removed Hedgehog visualization option, Fixed positioning and spacing bug; Modified IJKToRAS matrix to avoid warping glyphs due to non-cubic spacing; Partially fixed contour colour bug; Partially adjusted UI to be more user friendly

2013-03-14, 07:51:30 - Franklin King

(In r:694|slicerrt:694) re #70: Updated Glyph Option UI and fully enabled seed options; Fixed glyph distribution bug; Partially added image slice visualization options without proper UI; Added 2D Arrow to Glyph source options

2013-03-14, 21:46:39 - Andras Lasso

Thanks, nice improvements! See the updated list of remaining bugs and features below.

Priority: (H)igh, (M)edium, (L)ow

Fixes:

Features:

To be discussed:

2013-03-22, 20:31:21 - Franklin King

(In r:699|slicerrt:699) re #70: Glyph option fixes: Scale options reworked, set proper maximum for Arrow Glyph Tip Length, arrow Tip and Shaft resolution merged into single parameter, sphere radius option removed, sphere resolution options merged; Contour UI updated and fixed; Contour surface colors fixed; Magnitude threshold parameter completed; Grid now correctly displayed; Seed parameter renamed

2013-03-22, 20:34:05 - Franklin King

To do:

Fixes: (M) Add tooltips (L) Make sure that default values results in good visualization:

Features: (H) Allow using a Transform node (any kind of transform node, linear, non-linear, …) as input (H) Add visualization capabilities for images slices: Glyph extension to 2D: extruded simple arrow (with ribbon filter?) Ribbon grid (centered on each slice), selectable plane normal (M) Nicer icons (module icon and visualization option icons) (M) Change the color map to have 4 labels: negligible (0mm by default): transparent; low (1mm by default): green; medium (3mm by default): yellow; high (5mm by default): red. The actual values (1mm, 3mm, 5mm) may be hardcoded, optionally should be possible to set manually (it may be enough if you can do it in the color module), and may be also computed automatically. (L) Make the Visualize button disabled and explain why it’s disabled (in the tooltip or in warning message next to the button) if no Output Model is selected (L) Use sliders instead of spinbox wherever it’s possible

2013-03-22, 21:20:03 - Andras Lasso

Very good Franklin. Once the fixes and high-priority features are ready we’ll move this into the SlicerRT extension.

As a preparation for the integration, please build the SlicerRT extension on your computer (as described here: https://www.assembla.com/spaces/slicerrt/wiki/SlicerRt_developers_page).

2013-03-27, 19:12:54 - Franklin King

(In r:704|slicerrt:704) re #70: Visualize button now disabled if parameters are missing; Icons updated; Glyph Image Slice option added; Grid Image Slice option added without support for oblique slice planes; Tooltips updated; Other small UI adjustments

2013-03-28, 08:28:27 - Franklin King

(In r:706|slicerrt:706) re #70: Transform node (linear and non-linear) can now be used as input with reference image; UI updated; Grid option now has nicer resolution

2013-03-28, 08:31:35 - Franklin King

To do:

Edited: Removed Reformat orientation To Do

2013-03-28, 18:45:44 - Andras Lasso

Very nice work Franklin!

Add support for ‘Reformat’ orientation for Grid Image Slice option? => No, just having a node selector is enough. You can change the orientation of a slice viewer any time using the Reformat module (or reformat widget).

To do:

2013-03-28, 18:47:13 - Andras Lasso

I think the module is ready to be moved to the SlicerRT extension (as an experimental module for now, until the [H]igh priority todos are completed).

@pinter would do the integration (basically simply move the module under the SlicerRT extension directory and update the CMakeLists.txt), so let him know when you committed all your pending changes, then he would move the code, and he’ll tell you when it’s ready. After that you’ll have to check out and build the SlicerRT extension that’ll include your module.

2013-03-28, 20:18:49 - Franklin King

(In r:712|slicerrt:712) re #70: Custom color map added (4 labels)

2013-03-30, 11:38:48 - Franklin King

(In r:714|slicerrt:714) re #70: Fixed bug regarding using scalar volumes as reference images; Heavily modified behavior of Grid Image Slice option; Fixed Glyph Image Slice colours; Changed slice selectors to node selectors (still missing UI for missing slice nodes)

2013-03-31, 13:12:10 - Franklin King

(In r:716|slicerrt:716) re #70: Fixed a number of bugs regarding transform node input and orientation.

2013-04-04, 17:16:59 - Csaba Pinter

milestone_id: changed from “Future” to “SlicerRt 0.10.0 (2013-04)”

2013-04-05, 19:34:23 - Franklin King

(In r:742|slicerrt:742) re #70: Fixed Glyph Slice Arrow tip rotation bug; Fixed various minor bugs

2013-04-10, 12:18:26 - Franklin King

(In r:751|slicerrt:751) re #70: Updated parameter node; fix regarding transforms on input data

2013-04-14, 23:06:17 - Csaba Pinter

assigned_to_id: changed from “FranklinK” to “pinter”

2013-04-14, 23:07:01 - Csaba Pinter

(In r:757|slicerrt:757) Re #70: Moved DeformationFieldVisualizer directory in SlicerRT source tree (only moving, no change or adding to list of modules)

2013-04-14, 23:34:09 - Csaba Pinter

(In r:758|slicerrt:758) Re #70: Clean up DeformationFieldVisualizer code; Delete empty directory from sandbox

2013-04-15, 00:22:08 - Csaba Pinter

(In r:759|slicerrt:759) Test #70: Finished integrating the DeformationFieldVisualizer module

2013-04-15, 00:22:08 - Csaba Pinter

status: changed from “Accepted” to “Test”

2013-04-15, 00:22:24 - Csaba Pinter

assigned_to_id: changed from “pinter” to “FranklinK”

2013-04-15, 12:47:18 - Csaba Pinter

The display name of the module should include spaces: ‘Deformation Field Visualizer’

2013-04-15, 16:33:10 - Andras Lasso

The first version of the module is ready and integrated into the SlicerRT extension. We’ll track further issues and enhancement requestes in separate tickets.

2013-04-15, 16:33:10 - Andras Lasso

status: changed from “Test” to “Fixed”

#71 Make the DVH computation and display work for non-dose volumes as well

Currently any type of volume can be chosen for DVH computation (it’s then an ‘intensity volume histogram’). The problem is that the user may not know that it’s not a correct DVH, so some warning message should be displayed. Also, the fixed (0.0, 100%) point should not be inserted if there are negative values in the volume (as it appears as a peak in the plot, see attached).

2012-03-05, 18:12:19 - Andras Lasso

image:c_vceAzU4r4ybdacwqjQWU Screenshot of a DVH computed on a non-dose volume (it contains an extra peak due to the presence of negative values)

2012-03-05, 18:12:19 - Andras Lasso

Attachment added: “DvhPeakForNonDoseVolume.png”

2012-03-22, 11:22:43 - Andras Lasso

(In r:65) Fixed #71: Add origin point only if computing histogram for a dose volume

2012-03-22, 11:22:43 - Andras Lasso

status: changed from “New” to “Fixed”

2012-03-22, 11:30:20 - Andras Lasso

(In r:66) Re #71: If dose unit is unknown then use Intensity as X label axis title

2012-03-22, 11:35:54 - Andras Lasso

(In r:67) Re #71: If dose unit is unknown then use Intensity Volume Histogram as chart title

#72 Submit SlicerRt paper to MICCAI2012 workshop

Upcoming MICCAI2012 workshop: http://medical.rob.uni-luebeck.de/miccai2012rt/ - we’ll send a paper there

2012-05-24, 17:28:58 - Csaba Pinter

(In r:127) Re #72: WIP Changing DVH test to be able to compare two DVH tables that are not identical and check against tolerance values; CERR validation tests added

2012-05-24, 19:08:45 - Csaba Pinter

(In r:128) Re #72: WIP Comparison function done

2012-05-25, 16:27:12 - Csaba Pinter

(In r:129) Re #72: Bugs fixed in DVH computation (Input volume was quantized because of marking as labelmap; Zero doses were ignored in statistics computation); Instead of using certain number of bins when computing statistics on dose volumes, a start value and a step size is used; Background value added in vtkPolyDataToLabelmapFilter for settable background when using reference values in stencil filter; Baselines updated

2012-05-25, 18:38:07 - Csaba Pinter

(In r:130) Re #72: Bug fixed: both the start and the zero value were added to the DVH table and in the wrong order

2012-06-02, 14:36:21 - Andras Lasso

Updating tickets (#72, #84, #85, #92, #93, #94)

2012-06-02, 14:36:21 - Andras Lasso

milestone_id: changed from null to “NA-MIC 2012 Summer Project week”

2012-06-06, 17:35:29 - Csaba Pinter

(In r:139) Re #72: Added link to the phantom used for the PMH Pinnacle data

2012-06-11, 18:53:17 - Csaba Pinter

status: changed from “New” to “Test”

2012-06-22, 14:38:13 - Andras Lasso

submitted

2012-06-22, 14:38:13 - Andras Lasso

status: changed from “Test” to “Fixed”

#73 Display MRML node attributes in Slicer data module GUI

As we store some data in MRML attributes, it would be very useful to be able to see MRML node attributes in the Slicer data module GUI

2012-03-29, 20:21:45 - Andras Lasso

assigned_to_id: changed from null to “pinter”

2012-03-29, 20:22:03 - Andras Lasso

milestone_id: changed from null to “Basic RT support as standard 3DSlicer extension”

2012-04-12, 21:39:55 - Csaba Pinter

status: changed from “New” to “Accepted”

2012-04-12, 21:46:44 - Csaba Pinter

Revision: 00beb81b387a5a1e64f88283563c8c6c670114bb Author: cpinter Date: 4/12/2012 5:44:53 PM Message: Test #73: TableWidget added to Data module panel that displays MRML node attributes


Modified : Libs/MRML/Core/vtkMRMLNode.cxx Modified : Libs/MRML/Core/vtkMRMLNode.h Modified : Modules/Loadable/Data/Resources/UI/qSlicerDataModule.ui Modified : Modules/Loadable/Data/qSlicerDataModule.cxx Modified : Modules/Loadable/Data/qSlicerDataModuleWidget.cxx Modified : Modules/Loadable/Data/qSlicerDataModuleWidget.h

2012-04-12, 21:46:44 - Csaba Pinter

status: changed from “Accepted” to “Test”

2012-04-13, 13:58:26 - Andras Lasso

This is an extremely useful feature! Two things to be improved:

2012-04-13, 14:27:06 - Csaba Pinter

Oh right, I forgot to set them read-only. Should I do that or save the edited attribute in the MRML node?

2012-04-13, 22:40:59 - Csaba Pinter

Revision: 2e9ef2f229726369cc84f941185395dfb6e7336b Author: cpinter Date: 4/13/2012 6:40:27 PM Message: Re #73: Adding, removing, editing MRML node attributes features added to Data module; Logic added so that the Data module GUI can reflect changes in the MRML scene


Modified : Modules/Loadable/Data/CMakeLists.txt Added : Modules/Loadable/Data/Logic/CMakeLists.txt Added : Modules/Loadable/Data/Logic/vtkSlicerDataModuleLogic.cxx Added : Modules/Loadable/Data/Logic/vtkSlicerDataModuleLogic.h Modified : Modules/Loadable/Data/Resources/UI/qSlicerDataModule.ui Modified : Modules/Loadable/Data/qSlicerDataModule.cxx Modified : Modules/Loadable/Data/qSlicerDataModuleWidget.cxx Modified : Modules/Loadable/Data/qSlicerDataModuleWidget.h

2012-04-14, 00:17:30 - Andras Lasso

status: changed from “Test” to “Fixed”

2012-04-17, 14:09:05 - Andras Lasso

image:dKjtn6Ijyr4BT-acwqjQWU MRML node attributes can be viewed/edited in the MRML Node Inspector

2012-04-17, 14:09:05 - Andras Lasso

Attachment added: “nodeinspectorscreenshot.jpg”

#74 Add V(dose) statistics to DVH metrics

Add an input field and a button to compute metrics like V5, V20 etc.

Generalize the metric storage so that the attribute name looks like ‘DVH_Metric:Total Volume (cc)’ or ‘DVH_Metric:V20 (Gy)’. Automatically parse these attributes and display a column for each type of metric and display the values only in the row of the structure that has it.

2012-03-30, 16:27:13 - Csaba Pinter

status: changed from “New” to “Accepted”

2012-03-30, 16:28:15 - Csaba Pinter

summary: changed from “Add Vn statistics to DVH metrics” to “Add V(n) statistics to DVH metrics”

2012-03-30, 16:30:02 - Csaba Pinter

summary: changed from “Add V(n) statistics to DVH metrics” to “Add V(dose) statistics to DVH metrics”

2012-04-02, 15:28:23 - Csaba Pinter

(In r:78) Re #74: Generalized metric storage

2012-04-02, 22:01:33 - Csaba Pinter

(In r:79) Test #74: Compute V(dose) metrics

2012-04-02, 22:01:33 - Csaba Pinter

status: changed from “Accepted” to “Test”

2012-04-12, 18:57:08 - Csaba Pinter

(In r:90) Fixed #74: Add V metric % to the options; Show/hide all (tri-state) checkbox now advances to Checked state if there is no custom set defined for PartiallyChecked state

2012-04-12, 18:57:08 - Csaba Pinter

status: changed from “Test” to “Fixed”

#75 Change line type and color for DVH plots for structures with same name

Get the name of the structure (eg. ‘Bladder(3)’ => ‘Bladder’) from the plot name and if there is already a plot with the same name as the just added one, then match the color and change the line style of the second one for easier comparison.

2012-04-02, 22:46:39 - Csaba Pinter

(In r:80) Re #75: WIP If structure with the same name as an already existing one is added, then line style is changed and color is matched. Cannot get default color, need to define one from code!

2012-04-02, 23:24:02 - Csaba Pinter

(In r:82) Test #75: Same colors (that come from the RT object) are set to the structures with same name

2012-04-02, 23:24:02 - Csaba Pinter

status: changed from “New” to “Test”

2012-04-03, 16:09:02 - Csaba Pinter

The showLine and showMarker properties are not very helpful in distinguishing the plots, real line styles would be needed. I added a Mantis item for this: http://www.na-mic.org/Bug/view.php?id=1854

2012-04-03, 16:09:02 - Csaba Pinter

status: changed from “Test” to “Accepted”

2012-04-03, 22:22:46 - Csaba Pinter

(In r:83) Test #76, Re #75: D metrics computed and shown; Colors fixed; DVH metric prefix fixed: the colon confused the scene saving/loading mechanism

2012-04-13, 22:35:37 - Andras Lasso

milestone: changed from “SlicerRt-0.2 release” to “SlicerRt-0.3 release”

2012-06-21, 16:40:11 - Csaba Pinter

(In r:47a6b14c6aacdde232434a5d3fedad46d337039c|slicerrt:47a6b14c6aacdde232434a5d3fedad46d337039c) Test #75: qMRMLChartView now handles several line patterns

Branch: master

2012-06-21, 16:40:11 - Csaba Pinter

status: changed from “Accepted” to “Test”

2012-06-21, 19:48:52 - Csaba Pinter

(In r:ba066088e1136a8a949a3418c161ac0617a6c7ef|slicerrt:ba066088e1136a8a949a3418c161ac0617a6c7ef) Test #75: Line patterns can be set to plots individually

Branch: master

2012-06-22, 15:16:54 - Andras Lasso

Tried on June 22, 2012 at 11:14am with the latest source code and the DVH module still showed the old style lines (big blobs) instead of dotted lines. Maybe the changes have not been committed?

2012-06-22, 15:16:54 - Andras Lasso

status: changed from “Test” to “Accepted”

2012-06-22, 16:59:00 - Csaba Pinter

Oh, sorry, I totally forgot about half of the task. The line styles work, but not automatically for the plots with same names. I’ll go ahead and do it.

2012-06-26, 15:13:38 - Csaba Pinter

(In r:156|slicerrt:156) Fixed #75: Line style is set to different when a plot with the same name is added

2012-06-26, 15:13:38 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

2012-06-26, 15:15:31 - Csaba Pinter

Screenshot attached

2012-06-26, 15:51:14 - Csaba Pinter

image:dclkO2V6yr4BnTacwqjQYw

2012-06-26, 15:51:14 - Csaba Pinter

Attachment added: “screenshot-1340725763822.jpg”

2012-06-26, 15:52:16 - Csaba Pinter

Attachment added: “screenshot-1340725763822.jpg”

2012-06-26, 15:53:18 - Csaba Pinter

image:amEQSgV6Cr4Bs2acwqjQXA

2012-06-26, 15:53:18 - Csaba Pinter

Attachment added: “DVH_line_styles_screenshot.jpg”

2012-08-02, 16:36:52 - Csaba Pinter

status_updated_at: changed from null to “2012-08-02 16:36:52”

2012-08-02, 16:36:52 - Csaba Pinter

status: changed from “Fixed” to “Accepted”

2012-08-20, 20:14:32 - Andras Lasso

Some hints should be given to the user about the mapping from (1) (2) … to solid, dashed, …

If there are multiple line styles then we could just add it as a string, e.g.: [ ] solid: BRAIN (1) [ ] dashed: BRAIN (2) [ ] dotted: BRAIN (3) [ ] dash-dot: BRAIN (4)

And a feature request should be submitted for a long-term solution (where not only the color but the line style is shown in the legend). Unfortunately, jqPlot can only show the color swatch and doesn’t show the line style in the legend, so either heavy customization of jqPlot is needed (probably feasible) or a different plotting toolkit should be used.

2012-08-20, 20:14:42 - Andras Lasso

milestone: changed from “SlicerRt-0.3 release” to “SlicerRt 2012-08”

2012-08-21, 16:20:13 - Csaba Pinter

(In r:258|slicerrt:258) Test #75: Added line style indicators to the legend. The plots also remember their line styles so it remains the same after turning off and on

2012-08-21, 16:20:13 - Csaba Pinter

status: changed from “Accepted” to “Test”

2012-09-20, 16:09:45 - Csaba Pinter

Updating tickets (#57, #65, #75, #83, #107, #119, #124, #126, #128)

2012-09-20, 16:09:45 - Csaba Pinter

status: changed from “Test” to “Fixed”

#76 Compute D5cc DVH metric

Need to compute D?cc metrics of the DVH. See e.g., http://riti.learnexact.com/riti/cppid/ART_Launch_Demo/last/d/ELFH_Session/7/multi_2255.html#

2012-04-03, 16:25:16 - Csaba Pinter

status: changed from “New” to “Accepted”

2012-04-03, 18:14:10 - Andras Lasso

description: changed from “Need to compute D?cc metric…” to “Need to compute D?cc metric…”

2012-04-03, 18:19:38 - Csaba Pinter

I use this as the definition of the D5cc: http://riti.learnexact.com/riti/cppid/ART_Launch_Demo/last/d/ELFH_Session/7/multi_2255.html# ‘The D0.1cc, D1cc and D2cc refer to the minimum dose in the most exposed 0.1 cm3, 1 cm3 and 2 cm3 of an OAR. Note that the D0.1cc can be taken as an approximation of the maximum point dose as far as clinically relevant toxicity (e.g. micro-ulceration) is concerned.’

I take the D0.1cc as the maximum dose and counting back from that I give the dose between that and the dose of the volume 5cc.

2012-04-03, 22:22:46 - Csaba Pinter

(In r:83) Test #76, Re #75: D metrics computed and shown; Colors fixed; DVH metric prefix fixed: the colon confused the scene saving/loading mechanism

2012-04-03, 22:22:46 - Csaba Pinter

status: changed from “Accepted” to “Test”

2012-04-12, 18:57:18 - Csaba Pinter

status: changed from “Test” to “Fixed”

#77 Update SlicerRt core to Slicer 4.1

Merge all changes from Slicer 4.1 to the SlicerRt repository and update extension modules and SlicerRt’s CTK clone accordingly

2012-04-10, 21:45:19 - Andras Lasso

(In r:84) re #77: Updated DicomRtImport module for Slicer 4.1

2012-04-10, 21:45:45 - Andras Lasso

(In r:85) re #77: Updated DoseVolumeHistogram module for Slicer 4.1

2012-04-10, 22:26:59 - Andras Lasso

(In r:86) re #77: Fixed DicomRtImport module loading

2012-04-11, 14:11:29 - Andras Lasso

status: changed from “New” to “Fixed”

#78 Display a warning if not a dose volume is chosen as Dose Volume

Multiple people have reported that DVH module did not work correctly, while they just computed the DVH for the CT volume. Today I did the same mistake myself.

Possible options for helping the user to avoid this mistake:

2012-04-11, 15:57:34 - Csaba Pinter

Check DoseUnit attribute and consider the volume dose volume if it is present. Also we can remove the DoseGridScaling attribute as it is already applied and it can be misleading to have a value there that is not 1 (and having 1 there does not make much sense)

2012-04-12, 18:57:41 - Csaba Pinter

status: changed from “New” to “Accepted”

2012-04-12, 18:59:07 - Csaba Pinter

summary: changed from “Display a warning if note a dose volume is chosen as Dose Volume” to “Display a warning if not a dose volume is chosen as Dose Volume”

2012-04-12, 19:40:07 - Csaba Pinter

(In r:91) Re #78: DoseGridScaling attribute renamed to AppliedDoseGridScaling to be unambiguous (that is has already been applied to the volume). It cannot be deleted as it is used in course of computations

2012-04-12, 19:40:51 - Csaba Pinter

(In r:92) Test #78: Display warning next to ‘Compute DVH’ button if selected volume is not a dose volume

2012-04-12, 19:40:51 - Csaba Pinter

status: changed from “Accepted” to “Test”

2012-04-12, 20:29:20 - Csaba Pinter

(In r:93) Re #78: AppliedDoseGridScaling attribute renamed to DoseUnitValue and DoseUnits to DoseUnitName

2012-04-12, 20:29:33 - Csaba Pinter

(In r:94) Re #78: AppliedDoseGridScaling attribute renamed to DoseUnitValue and DoseUnits to DoseUnitName

2012-04-13, 22:28:59 - Andras Lasso

works very nicely for me

2012-04-13, 22:33:46 - Csaba Pinter

status: changed from “Test” to “Fixed”

#79 Submit technical note to MedPhys

Submit technical note to MedPhys that describes SlicerRt.

2012-04-16, 19:14:38 - Csaba Pinter

status: changed from “New” to “Accepted”

2012-04-16, 19:17:18 - Csaba Pinter

Technical notes about other RT tools (collected by Andras):

MedPhys paper: http://online.medphys.org/resource/1/mphya6/v30/i5/p979_s1?isAuthorized=no MedPhys technical note: http://www.ncbi.nlm.nih.gov/pubmed/21361176 Physics in Medicine and Biology: http://iopscience.iop.org/0031-9155/52/13/N03 Journal of Applied Clinical Medical Physics: http://www.jacmp.org/index.php/jacmp/article/view/3013/1803 AAPM conference poster: http://code.google.com/p/dicompyler/downloads/detail?name=AAPM%202010%20Poster.pdf

2012-06-02, 14:36:36 - Andras Lasso

milestone_id: changed from null to “SlicerRt-0.3 release”

2012-06-02, 15:46:28 - Csaba Pinter

(In r:137) Re #79: Reference papers added for the MedPhys technical note

2012-06-18, 16:19:59 - Csaba Pinter

status: changed from “Accepted” to “Test”

2012-06-22, 14:34:41 - Andras Lasso

Submitted

2012-06-22, 14:34:41 - Andras Lasso

status: changed from “Test” to “Fixed”

2012-07-19, 02:53:31 - Csaba Pinter

(In r:175|slicerrt:175) Re #79: Reference paper containing an ART use case added (and an entry for a not relevant too)

2012-07-31, 01:30:49 - Csaba Pinter

(In r:217|slicerrt:217) Re #79: Reference paper containing an ART use case added

2012-08-01, 00:47:08 - Csaba Pinter

(In r:219|slicerrt:219) Re #79: Entries added for not very relevant papers

2012-08-02, 16:37:54 - Csaba Pinter

status_updated_at: changed from null to “2012-08-02 16:37:54”

2012-08-02, 16:37:54 - Csaba Pinter

status: changed from “Fixed” to “Accepted”

2012-08-05, 23:12:55 - Csaba Pinter

(In r:224|slicerrt:224) Re #79: Reference paper containing an ART use case added (and an entry for a not relevant too)

2012-08-07, 01:27:28 - Csaba Pinter

(In r:225|slicerrt:225) Re #79: ART related papers added

2012-08-10, 21:58:39 - Csaba Pinter

(In r:238|slicerrt:238) Re #79: ART use case article and reviews added

2012-08-11, 21:16:28 - Csaba Pinter

(In r:239|slicerrt:239) Re #79: ART related papers added

2012-08-12, 00:05:24 - Csaba Pinter

(In r:240|slicerrt:240) Re #79: ART use case paper added

2012-08-12, 00:36:39 - Csaba Pinter

(In r:241|slicerrt:241) Re #79: ART use case paper added

2012-08-12, 01:00:56 - Csaba Pinter

(In r:242|slicerrt:242) Re #79: Not relevant ART use case paper added; Normalized author names to Bibtex style

2012-08-12, 19:48:26 - Csaba Pinter

(In r:243|slicerrt:243) Re #79: Minor corrections in the bibtex file

2012-08-20, 20:05:34 - Andras Lasso

Csaba submitted revised version, now waiting for review results.

2012-08-20, 20:05:34 - Andras Lasso

milestone_id: changed from “SlicerRt-0.3 release” to “SlicerRt 2012-09”

2012-09-10, 20:56:02 - Csaba Pinter

Paper was accepted today.

2012-09-10, 20:56:02 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

2012-10-02, 00:18:32 - bastula

Hello,

I am the project lead for dicompyler. I just received the Scitation TOC Alert today for the upcoming issue of Medical Physics and noticed your paper has been published. Congratulations and thank you for your reference to dicompyler in the paper.

I was wondering if there is there any way for you to correct your reference for dicompyler from the website to the AAPM canonical reference: available here: http://link.aip.org/link/doi/10.1118/1.3468652

The bibtex entry is as follows:

1
2
3
4
5
6
7
8
9
10
11
@ARTICLE{Panchal2010,
   author = {{Panchal}, A. and {Keyes}, R.},
    title = '{SU-GG-T-260: Dicompyler: An Open Source Radiation Therapy Research Platform with a Plugin Architecture}',
  journal = {Medical Physics},
     year = 2010,
   volume = 37,
    pages = {3245},
      doi = {10.1118/1.3468652},
}

Thanks,

Adit

2012-10-02, 03:29:24 - Csaba Pinter

Hi Adit,

Thank you for your kind words!

The paper has passed the proofing process, but I can try to push your paper reference. Sorry for not citing your article in the first place, I didn’t find it at the time.

Csaba

2012-10-02, 15:21:19 - Csaba Pinter

Hi Adit,

I asked the editorial staff if they can change it either in print or online, but it’s already published, so it is unfortunately too late. Sorry about that!

csaba

2012-10-02, 15:50:27 - Csaba Pinter

(In r:326|slicerrt:326) Re #79: Published SlicerRT MedPhys technical note uploaded

2012-10-02, 15:51:37 - Csaba Pinter

(In r:327|slicerrt:327) Re #79: SlicerRT paper added to groups

2013-04-10, 15:37:56 - Csaba Pinter

(In r:752|slicerrt:752) Re #79: Added DIRART technical note to references

2013-04-10, 15:40:55 - Gabor Fichtinger

They have several papers on the Wiki/Pubs. Are they actively maintain DIRART?

From: Csaba Pinter (pinter) [mailto:slicerrt@alerts.assembla.com] Sent: April-10-13 11:38 AM

2013-04-10, 15:49:06 - Csaba Pinter

I don’t follow their activity, but I downloaded their source code and according to the logs, there have been only 4 commits since November 2011 (2 from April 2012, one in October and one last month), all minor changes.

So I think we can say that they don’t really maintain it.

#80 Automatic test for DoseVolumeHistogram

Automatic test that compares computed DVH statistics on a test data to baseline values

2012-04-17, 18:01:59 - Csaba Pinter

status: changed from “New” to “Accepted”

2012-04-18, 18:39:20 - Csaba Pinter

(In r:96) Re #80: WIP Test for DoseVolumeHistogram with test data added

2012-04-18, 19:37:07 - Csaba Pinter

(In r:97) Re #80: Memory leaks and generic tests fixed

2012-04-18, 22:47:03 - Csaba Pinter

(In r:98) Fixed #80: Saving metrics to CSV function added; Moved export functions to logic; Added two tests that compare the exported DVH tables and metrics

2012-04-18, 22:47:03 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

#81 Automatic test for DicomRtImport module

Automatic test that imports RT objects in Slicer environment and check created MRML nodes and models

2012-08-20, 20:14:57 - Andras Lasso

milestone: changed from “SlicerRt-0.3 release” to “SlicerRt 2012-08”

2012-09-05, 14:38:57 - Andras Lasso

Updating tickets (#59, #33, #112, #131, #25, #129, #115, #81, #114, #113, #111, #38, #137)

2012-09-05, 14:38:57 - Andras Lasso

milestone_id: changed from “SlicerRt 2012-08” to “SlicerRt 2012-09”

2012-09-10, 20:56:15 - Csaba Pinter

status: changed from “New” to “Accepted”

2012-09-21, 14:15:02 - Csaba Pinter

(In r:306|slicerrt:306) Re #81: WIP Test data added; Initial DicomRtImportTest1.py python script added

2012-10-12, 12:36:54 - Csaba Pinter

Updating tickets (#144, #25, #38, #59, #61, #81, #113, #115, #131, #134, #136, #137, #138, #140, #145, #146)

2012-10-12, 12:36:54 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.5.0 (2012-09)” to “SlicerRt 0.6.0”

2012-10-14, 20:23:59 - Csaba Pinter

(In r:354|slicerrt:354) Re #81: DicomRtImportSelfTest added. It works as a module, but not yet as a unit test

2012-10-14, 21:51:08 - Csaba Pinter

(In r:355|slicerrt:355) Re #81: DicomRtImport and DicomRtImportSelfTest compiled C-wrapped python libs are in inner-build/lib/… instead of being in inner-build/DicomRtImport/… (in their own directory)

2012-10-16, 01:23:18 - Csaba Pinter

(In r:357|slicerrt:357) Re #81: The proper module paths are set to DicomRtImportSelfTest; Debug logging removed from the test

2012-10-16, 17:59:38 - Csaba Pinter

(In r:359|slicerrt:359) Re #81: Test starts fine (additional modules are found, data directory is found); Output directories are created in the binary directory; Empty database is not needed so it has been removed from the repository

2012-10-16, 20:03:02 - Csaba Pinter

(In r:360|slicerrt:360) Re #81: Unify DicomRtImportSelfTest tests so that they run in the correct order one after the other; Baseline removed (we won’t validate the whole result scene)

2012-10-18, 18:04:28 - Csaba Pinter

(In r:366|slicerrt:366) Re #81: Paths needed for DicomRtImportSelfTest are provided from a small script (and not the whole test script is configured by CMake)

2012-10-18, 19:42:47 - Csaba Pinter

(In r:367|slicerrt:367) Re #81: Attempt to fix Linux build error

2012-10-19, 14:04:58 - Csaba Pinter

(In r:368|slicerrt:368) Re #81: Changed the way the paths for DicomRtImportSelfTest are passed

2012-10-28, 15:19:12 - Csaba Pinter

(In r:383|slicerrt:383) Re #81: Fixed py_nomainwindow_qSlicerDicomRtImportModuleGenericTest

2012-10-29, 20:03:59 - Csaba Pinter

(In r:385|slicerrt:385) Re #81: Remove uncalled functions; Replace internal function calls with normal ones; Fixing DCMTK warnings

2012-10-30, 12:36:09 - Csaba Pinter

(In r:388|slicerrt:388) Re #81, Test #163: Load dose volume similarly as the scalar volume plugin does

2012-10-30, 13:00:18 - Csaba Pinter

(In r:389|slicerrt:389) Re #81: All the file names are used to load a dose volume (now it is loaded the exact same way as in the scalar volume plugin)

2012-10-30, 18:08:45 - Csaba Pinter

(In r:390|slicerrt:390) Re #81: Clean up memory management, mainly related to vtkCollection objects

2012-10-30, 23:15:46 - Csaba Pinter

(In r:391|slicerrt:391) Re #81: LeakFinder project added: prototype of a leak finder tool that can be used under windows to identify program leaks

2012-10-31, 17:38:32 - Csaba Pinter

(In r:393|slicerrt:393) Re #81: LeakFinder also notifies the observer that was originally set

2012-10-31, 19:14:46 - Csaba Pinter

(In r:394|slicerrt:394) Re #81: Fix LeakFinder so that it saves the whole stack trace (not just their last lines)

2012-10-31, 23:14:04 - Csaba Pinter

(In r:395|slicerrt:395) Re #81: Temporary fix for the DicomRtImportSelfTest leak

2012-11-01, 16:58:28 - Csaba Pinter

(In r:396|slicerrt:396) Re #81: Finalize callback function and doxygen comments added to vtkLeakFinder

2012-11-01, 21:03:51 - Csaba Pinter

(In r:399|slicerrt:399) Re #81: Add Register/Unregister trace option to vtkLeakFinder

2012-11-01, 21:24:55 - Csaba Pinter

(In r:400|slicerrt:400) Re #81: VTK patch added for version 5.10.0

It was made using the exact version: [remote ‘origin’] fetch = +refs/heads/:refs/remotes/origin/ url = git://github.com/Slicer/VTK.git [branch ‘slicer-4.1-v5.10.0’] remote = origin merge = refs/heads/slicer-4.1-v5.10.0

2012-11-01, 21:25:43 - Csaba Pinter

(In r:401|slicerrt:401) Re #81: VTK patch file renamed to make more sense

2012-11-01, 21:35:41 - Csaba Pinter

(In r:402|slicerrt:402) Re #81: Fixed build error using unpatched VTK; Extend howto

2012-11-01, 21:36:40 - Csaba Pinter

(In r:403|slicerrt:403) Fixed #81: Leak in DicomRtImportSelfTest fixed. Test passes

2012-11-01, 21:36:40 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

2012-11-02, 16:30:47 - Csaba Pinter

(In r:405|slicerrt:405) Re #81: DicomRtImportSelfTest works also when installed from the SlicerRT package

2012-11-02, 18:46:33 - Csaba Pinter

(In r:406|slicerrt:406) Re #81: Added explanation to commented lines of code

#82 DICOM-RT import fails when multiple RT objects are stored in one series

The eclipse-7.3.10-test-suite-aapm-tg119 data set contains multiple RTSS objects in one series. SlicerRt fails to import and load these series.

Problem 1: After importing only the first RTSS is displayed in the patient tree (RTSTRUCT: TG119-Prostate). All the 4 RTSS (CShape, HN, Multi, Prostate) should show up separately or a composite (CShape, HN, Multi, Prostate) or generic name (RTSS: (multiple) ).

Problem 2: In the image list 5 instances are shown, all of them with the same caption (RTSTRUCT: TG119-Prostate). Instead, 4 different RTSS (CShape, HN, Multi, Prostate) should show up.

Problem 3: Regardless of which RTSS object is selected for loading, always the TG-119-Prostate structures are loaded only.

2012-04-17, 20:57:01 - Andras Lasso

Estimate: changed from “Small” to “Medium”

2012-04-17, 20:57:01 - Andras Lasso

Sum of Child Estimates: changed from “1.0” to “3.0”

2012-04-19, 21:13:18 - Andras Lasso

(In r:99) Fixed #82: Multiple RT objects can now be loaded from the same series. Created vtkDICOMImportInfo structure to pass data between Python and C++ during DICOM import.

2012-04-19, 21:13:18 - Andras Lasso

status: changed from “New” to “Fixed”

#83 Use module name as prefix for custom MRML attributes

According to the suggestion of Steve Pieper:

  1. Use the creator module name as a prefix for custom MRML attribute names e.g.,
    • DicomRtImport .DoseUnitName (or DICOM.RT.DoseUnitName?)
    • DicomRtImport .DoseUnitValue (or DICOM.RT.DoseUnitValue?)
    • DoseVolumeHistogram.Metric_List
    • DoseVolumeHistogram.Metric_Max dose (GY) …
  2. Add the description of the custom fields to the module documentation

2012-04-18, 13:24:02 - Andras Lasso

description: changed from “According to the suggestion…” to “According to the suggestion…”

2012-05-30, 16:31:52 - Andras Lasso

Prefix policy added to the Slicer developer’s page: http://www.slicer.org/slicerWiki/index.php/Documentation/4.1/Developers/MRML#MRML_node_attributes

2012-08-20, 20:15:30 - Andras Lasso

milestone: changed from “SlicerRt-0.3 release” to “SlicerRt 2012-08”

2012-08-22, 20:53:19 - Csaba Pinter

status: changed from “New” to “Accepted”

2012-08-27, 22:24:59 - Csaba Pinter

(In r:278|slicerrt:278) Test #124: SlicerRtCommon project created that contains common constants; Test #83: All custom attributes are now prefixed with the module name

2012-08-27, 22:24:59 - Csaba Pinter

status: changed from “Accepted” to “Test”

2012-09-20, 16:09:45 - Csaba Pinter

Updating tickets (#57, #65, #75, #83, #107, #119, #124, #126, #128)

2012-09-20, 16:09:45 - Csaba Pinter

status: changed from “Test” to “Fixed”

#84 Check where the DVH automatic test results are submitted

It should submit something to one of the dashboards.

2012-06-02, 14:36:21 - Andras Lasso

Updating tickets (#72, #84, #85, #92, #93, #94)

2012-06-02, 14:36:21 - Andras Lasso

milestone_id: changed from null to “NA-MIC 2012 Summer Project week”

2012-06-02, 14:41:12 - Andras Lasso

assigned_to_id: changed from null to “pinter”

2012-06-03, 00:06:15 - Csaba Pinter

status: changed from “New” to “Accepted”

2012-06-12, 17:26:47 - Csaba Pinter

(In r:ddf980ed1a46e25090d98d83f2d5fe31c3e5ebcc) Re #84: Test commit for Assembla github hook

Branch: master

2012-07-10, 16:13:16 - Csaba Pinter

(In r:4d0ea447eba7612f21adae3fba64a5ffaa4f4e4c|slicerrt:4d0ea447eba7612f21adae3fba64a5ffaa4f4e4c) Re #84: Repository updated in the dashboard driver script Note: This must not be integrated into the Slicer core

Branch: master

2012-07-10, 16:17:29 - Csaba Pinter

(In r:164|slicerrt:164) Re #84: Modified dashboard driver script added to SVN repo as Git is not supported by the download_file command

2012-07-10, 20:19:18 - Csaba Pinter

(In r:165|slicerrt:165) Re #84: Removed dashboard driver script

2012-07-23, 15:51:31 - Csaba Pinter

assigned_to_id: changed from “pinter” to “lassoan”

2012-07-23, 18:25:48 - Andras Lasso

It is submitted to the Slicer CDash server if the ExperimentalExtensionUpload project is built. Sample submission: http://slicer.cdash.org/buildSummary.php?buildid=29600

2012-07-23, 18:25:48 - Andras Lasso

status: changed from “Accepted” to “Fixed”

#85 Compare DVH computation with ground truth

Compute DVH with another software (such as CERR) and compare to our results. Add it to automatic tests as well.

2012-06-02, 14:36:21 - Andras Lasso

Updating tickets (#72, #84, #85, #92, #93, #94)

2012-06-02, 14:36:21 - Andras Lasso

milestone_id: changed from null to “NA-MIC 2012 Summer Project week”

2012-06-02, 14:41:19 - Andras Lasso

assigned_to_id: changed from null to “pinter”

2012-06-02, 17:48:46 - Csaba Pinter

Commits url:https://www.assembla.com/code/slicerrt/subversion/changesets/127|127, url:https://www.assembla.com/code/slicerrt/subversion/changesets/128|128, url:https://www.assembla.com/code/slicerrt/subversion/changesets/129|129, url:https://www.assembla.com/code/slicerrt/subversion/changesets/130|130 and url:https://www.assembla.com/code/slicerrt/subversion/changesets/136|136

2012-06-02, 17:48:46 - Csaba Pinter

status: changed from “New” to “Test”

2012-06-22, 14:37:03 - Andras Lasso

Done for the technical note

2012-06-22, 14:37:03 - Andras Lasso

status: changed from “Test” to “Fixed”

#86 SQL include is needed to build DicomRtImport module

Some places #include <QtSql/QSqlQuery> is needed instead of #include </QSqlQuery> to be able to build DicomRtImport.

Either get rid of the direct QtSql dependency (and depend only on CTK) or find a way to add the …/QtSql directory to the include paths of DicomRtImport.

2012-04-23, 20:30:26 - Andras Lasso

(In r:102) Fixed #86: Added QT_QTSQL_INCLUDE_DIR to the DicomRtImport module include directories (no need to change CTK include paths)

2012-04-23, 20:30:26 - Andras Lasso

status: changed from “New” to “Fixed”

#87 Investigate dose deposition coefficient map calculation (from CERR).

During the interview with Dionne of UoT, dose deposition coefficient map was requested as a feature useful for her group. Currently they get it from CERR, it would be nice if slicer can generate the map. However she is not familiar with CERR’s algorithm on how to compute these maps.

2012-04-24, 17:53:57 - wangk

status: changed from “New” to “Accepted”

2012-08-20, 19:58:19 - Andras Lasso

milestone: changed from “RT data analysis” to “Future”

2014-01-22, 18:59:16 - Csaba Pinter

status: changed from “Accepted” to “New”

2014-05-07, 15:15:57 - Csaba Pinter

aka. DIJ matrix

2015-09-10, 14:55:12 - Greg Sharp

milestone_id: changed from “Future” to “SlicerRt 0.18”

2015-09-10, 15:00:06 - Greg Sharp

milestone_id: changed from “SlicerRt 0.18” to “Future”

#88 Talk to RT researchers in Toronto to find a specific application

2012-05-23, 19:41:22 - wangk

status: changed from “New” to “Accepted”

2012-07-26, 15:36:48 - Andras Lasso

There were useful discussions, see details at SlicerRt_developer_meetings_2012

Highlights:

2012-07-26, 15:36:48 - Andras Lasso

status: changed from “Accepted” to “Fixed”

#89 Body contour in eclipse-7.3.10-test-suite-aapm-tg119 dataset is not visible after import

Import the eclipse-7.3.10-test-suite-aapm-tg119 dataset. The ‘BODY’ contours are not visible. It seems that the point positions are correct, but somehow they are not connected correctly.

2012-08-20, 20:31:46 - Andras Lasso

It works correctly now

2012-08-20, 20:31:46 - Andras Lasso

status: changed from “New” to “Fixed”

#90 Use ParameterSet MRML node for Dose Volume Histogram module

As it is already in the Dose Accumulation module Also get rid of the SceneChanged flag

2012-05-14, 21:04:51 - Csaba Pinter

description: changed from “As it is already in the Dos…” to “As it is already in the Dos…”

2012-05-14, 22:06:50 - Csaba Pinter

status: changed from “New” to “Accepted”

2012-05-14, 22:16:23 - Csaba Pinter

(In r:115) Re #56, Re #90: Updating CMake files to the style of the latest template in DoseVolumeHistogram; Dummy parameter set node vtkMRMLDoseVolumeHistogramNode added (now identical to the one in DoseAccumulation, but this is not in use)

2012-05-15, 20:47:38 - Csaba Pinter

(In r:119) Test #90: DoseVolumeHistogram module uses vtkMRMLDoseVolumeHistogramNode as parameter set

2012-05-15, 20:47:38 - Csaba Pinter

status: changed from “Accepted” to “Test”

2012-05-15, 21:54:59 - Csaba Pinter

(In r:122) Re #90: Fixed bug in DVH - when the parameter set node is updated according to the GUI, it should not fire Modified events (and so invoke unnecessary GUI update)

2012-05-15, 21:58:53 - Csaba Pinter

(In r:123) Re #90: Changes in DoseAccumulation according to the findings in previous commit

2012-05-28, 19:11:29 - Csaba Pinter

status: changed from “Test” to “Fixed”

#91 Allow D metric for Volumes take volume percentage as input

In the DVH module currently D Metric for Volumes can be specified only in ‘cc’. It would be necessary to be able to specify a structure volume percentage (the cc would be computed for each structure).

This could be a third line (in addition to V metric in Gy and D metric in cc): D metric for Volumes: _____ structure volume %

2012-06-02, 18:00:42 - Csaba Pinter

status: changed from “New” to “Accepted”

2012-06-02, 22:58:13 - Csaba Pinter

(In r:138) Test #91: D metric can be computed with percentage as input

2012-06-02, 22:58:13 - Csaba Pinter

status: changed from “Accepted” to “Test”

2012-06-22, 14:25:33 - Andras Lasso

status: changed from “Test” to “Fixed”

#92 Dicom browser loadable list is not updated after loading something from it

Need to check Slicer trunk, perhaps it has already been fixed there

2012-06-02, 14:36:21 - Andras Lasso

Updating tickets (#72, #84, #85, #92, #93, #94)

2012-06-02, 14:36:21 - Andras Lasso

milestone_id: changed from null to “NA-MIC 2012 Summer Project week”

2012-06-02, 14:41:28 - Andras Lasso

assigned_to_id: changed from null to “lassoan”

2012-06-22, 13:51:20 - Andras Lasso

(In r:155|slicerrt:155) Fixed #92: Need to use a different database connection name than the Slicer DICOM widget, otherwise the Slicer DICOM widget is disconnected

2012-06-22, 13:51:20 - Andras Lasso

status: changed from “New” to “Fixed”

#93 Some contour structures are not loaded

SlicerRt\data\eclipse-8.1.20-phantom-ent Structures that CERR loads and displays but SlicerRT does not: CTV, Optic Nerve - Rt, Optic Nerve-Lt, PTV1, etc.

2012-05-28, 19:33:30 - Andras Lasso

assigned_to_id: changed from null to “wangk”

2012-05-28, 19:39:07 - wangk

status: changed from “New” to “Accepted”

2012-05-29, 14:57:28 - wangk

I have fixed the code. now most of the rois can be loaded except 2 rois. these 2 rois do not contain any contour data. need to determine if or not to create them.

2012-05-29, 16:52:07 - wangk

status: changed from “Accepted” to “Test”

2012-06-02, 14:36:22 - Andras Lasso

Updating tickets (#72, #84, #85, #92, #93, #94)

2012-06-02, 14:36:22 - Andras Lasso

milestone_id: changed from null to “NA-MIC 2012 Summer Project week”

2012-07-04, 22:08:55 - Andras Lasso

status: changed from “Test” to “Fixed”

#94 Collect baselines for DVH testing from commercial TPSs

Compute and export DVH histograms using the accessible commercial treatment planning software. The input studies to use are:

2012-05-28, 19:39:20 - wangk

status: changed from “New” to “Accepted”

2012-06-02, 14:36:22 - Andras Lasso

Updating tickets (#72, #84, #85, #92, #93, #94)

2012-06-02, 14:36:22 - Andras Lasso

milestone_id: changed from null to “NA-MIC 2012 Summer Project week”

2012-07-05, 16:47:29 - Andras Lasso

milestone: changed from “Release for AAPM2012” to “SlicerRt-0.3 release”

2012-07-17, 16:36:22 - Csaba Pinter

assigned_to_id: changed from “wangk” to “pinter”

2012-07-17, 16:37:11 - Csaba Pinter

(In r:172|slicerrt:172) Re #94: Baseline CSV tables (converted from Eclipse output files) added to the test directory

2012-07-17, 19:55:56 - Csaba Pinter

(In r:173|slicerrt:173) Re #94: WIP Modified structure of input and baseline data for DVH automatic tests

2012-07-18, 19:15:52 - Csaba Pinter

(In r:174|slicerrt:174) Re #94: New tests run (still uses vtkPiecewiseFunction); Prostate Eclipse baseline fixed

2012-07-19, 20:07:54 - Csaba Pinter

(In r:176|slicerrt:176) Re #94: Gamma DVH comparison implemented from the article Elbert2010.

2012-07-23, 18:16:07 - Csaba Pinter

(In r:195|slicerrt:195) Re #94: Instead of mean agreement, agreement acceptance percentage is calculated and compared to baseline

2012-07-23, 22:00:11 - Csaba Pinter

(In r:199|slicerrt:199) Re #94: DVH metrics are compared not by file, but by actual values; All tests pass

2012-08-04, 02:55:19 - Csaba Pinter

(In r:223|slicerrt:223) Re #94: DVH tables now contain all zeros for comparison; Baselines contain all zeros; Max dose for the whole volume is used for gamma computation; Structure volumes are now saved to DVH CSV

2012-08-05, 22:32:52 - Csaba Pinter

status_updated_at: changed from null to “2012-08-05 22:32:52”

2012-08-05, 22:32:52 - Csaba Pinter

status: changed from “Accepted” to “Test”

2012-08-08, 15:21:12 - Csaba Pinter

(In r:227|slicerrt:227) Re #94: Added magnification factor parameter to DVH logic, so that the stenciled dose volume can be higher resolution than the dose volume. Default is 2, baselines changed accordingly; Added time measurement to DVH logic (can be enabled by turning a flag on); Isodose contour structure of the Ent study has been excluded from the test - it is neither an OAR nor a target volume. Baselines changed accordingly

2012-08-09, 19:25:12 - Csaba Pinter

(In r:229|slicerrt:229) Re #94: Removed unnecessary parameter from the CompareCsvDvhTables function in the DVH test program

2012-08-09, 19:28:04 - Csaba Pinter

(In r:230|slicerrt:230) Re #94: Reverted accidentally committed CMakeLists.txt file

2012-08-09, 20:27:50 - Csaba Pinter

(In r:231|slicerrt:231) Re #94: Values at the column of the optBRAIN structure were of another’s - fixed

2012-08-09, 22:57:09 - Csaba Pinter

(In r:233|slicerrt:233) Re #94: Added RasterizationMagnificationFactor parameter to the DVH test application; Structure VTK files replaced with newly saved ones (basically the same but smaller)

2012-08-10, 13:35:55 - Csaba Pinter

(In r:234|slicerrt:234) Re #94: Fixed bug: 0th bin (between 0 and StartValue) wasn’t taken into account in the voxelsBelowBin counter

2012-08-10, 18:03:49 - Csaba Pinter

status: changed from “Test” to “Fixed”

2012-08-10, 18:26:17 - Csaba Pinter

(In r:236|slicerrt:236) Re #94: Fixed bug: reference and compare tables were switched.

2012-08-21, 14:04:20 - Csaba Pinter

(In r:256|slicerrt:256) Re #94: Replaced structure volume values in baseline tables with the 3rd party computed volumes so that they can be taken into account when comparing to each other instead the volumes computed by SlicerRT

#95 Create a tutorial for the NA-MIC week tutorial contest

we were asked to enter to the tutorial contest

—–Original Message—– From: na-mic-project-week-bounces@na-mic.org [mailto:na-mic-project-week-bounces@na-mic.org] On Behalf Of Tina Kapur Sent: May 31, 2012 4:14 PM To: na-mic-project-week@na-mic.org Subject: [Na-mic-project-week] Tutorial Contest at Summer Project Week

Hello Everyone,

A reminder that there is a tutorial contest at the upcoming project week. In addition to a chance at winning material prizes (which never hurts!) for the top three tutorials, we hope that you will provide tutorials (for your or other people’s modules that you have found useful) because it will help others in our open source community to better research.

http://wiki.na-mic.org/Wiki/index.php/2012_Tutorial_Contest

Thanks. -Tina

– Tina Kapur, Ph.D. Executive Director Image Guided Therapy Program Department of Radiology Brigham and Women’s Hospital 75 Francis Street, Boston MA 02115

2012-06-04, 14:10:54 - wangk

status: changed from “New” to “Accepted”

2012-06-19, 18:08:42 - wangk

Uploaded the tutorial to namic website. uploaded dataset to assemble website.

2012-06-19, 18:08:42 - wangk

status: changed from “Accepted” to “Test”

2012-06-22, 14:15:03 - Andras Lasso

Kevin, please also

2012-07-04, 22:09:15 - Andras Lasso

status: changed from “Test” to “Fixed”

#96 Metadata is not preserved when the image is resampled

When the dose map is resampled then the additional metadata disappears. This is a problem because after a dose map is transformed it’s not recognized as a dose map anymore.

Potential DCMTK-based, Slicer4 compliant implementation:

2012-06-22, 13:12:22 - Andras Lasso

description: changed from “When the dose map is resamp…” to “When the dose map is resamp…”

2012-07-05, 16:47:49 - Andras Lasso

milestone: changed from “Release for AAPM2012” to “SlicerRt-0.3 release”

2013-09-06, 18:47:17 - Csaba Pinter

priority: changed from “Normal (3)” to “High (2)”

2015-09-10, 14:55:12 - Greg Sharp

milestone_id: changed from “Future” to “SlicerRt 0.18”

2015-09-10, 15:00:37 - Greg Sharp

milestone_id: changed from “SlicerRt 0.18” to “Future”

2017-07-23, 20:07:35 - Csaba Pinter

The resampled volume is put in the same subject hierarchy branch as the input dose volume, and so the study-related metadata is accessible for the resampled volume as well. The dose volume identifier attribute of the input dose volume is not propagated, however the RT dose subject hierarchy plugin exposes a convert action that can add this attribute to the resampled volume, preserving all the other medatada.

2017-07-23, 20:07:35 - Csaba Pinter

status: changed from “New” to “Fixed”

#97 Images from anonymized sequences cannot be loaded

SlicerRt Kevin MRI loading problem follow-up http://www.na-mic.org/Bug/view.php?id=2040

CTK\Libs\DICOM\Core\ctkDICOMDatabase.cpp Study instance UID may be empty Slice thickness is not defined => Slicer cannot load it

RT dose has a different study instance UID => changed, but after that Slicer couldn’t load the contours

2012-07-25, 12:16:19 - Andras Lasso

Fix integrated into CTK main: https://github.com/commontk/CTK/issues/215

2012-07-25, 12:16:19 - Andras Lasso

assigned_to_id: changed from null to “lassoan”

2012-07-25, 12:16:19 - Andras Lasso

status: changed from “New” to “Fixed”

#98 DVH plot names with the same name are displayed using the properties of the first one

If there are more plots (vtkMRMLDoubleArrayNode) with the same name, but different colors (defined in the MRML node attributes), then all the displayed plots have the color that is defined in the one with the alphabetically first ID

2012-07-04, 20:24:06 - Csaba Pinter

status: changed from “New” to “Accepted”

2012-07-04, 21:55:25 - Csaba Pinter

(In r:158|slicerrt:158) Fixed #98: Colors are now not propagated to the plots with the same structure name

2012-07-04, 21:55:25 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

2012-07-05, 15:10:14 - Csaba Pinter

milestone_id: changed from null to “Release for AAPM2012”

#99 Add a column with the input dose volume name for the DVH metric table

So that we can distinguish from the table which plot corresponds to which compared dose volumes

2012-07-05, 16:28:39 - Csaba Pinter

milestone_id: changed from null to “Release for AAPM2012”

2012-07-05, 16:28:39 - Csaba Pinter

status: changed from “New” to “Accepted”

2012-07-05, 16:29:22 - Csaba Pinter

(In r:159|slicerrt:159) Fixed #99: New column added after ‘Structure’, named ‘Volume name’ that shows the name of the input (dose) volume

2012-07-05, 16:29:22 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

#100 Merge the DVH metric columns where the units are the same but with different case

Compare the dose unit in a case-insensitive way

The problem is that if the unit is ‘GY’ in one dose volume, but ‘Gy’ in another, then the metrics are displayed in different columns

2012-07-09, 21:36:19 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2012-07-09, 21:36:19 - Csaba Pinter

milestone_id: changed from null to “Release for AAPM2012”

2012-07-09, 21:36:19 - Csaba Pinter

status: changed from “New” to “Accepted”

2012-07-09, 21:36:54 - Csaba Pinter

(In r:163|slicerrt:163) Fixed #100: DVH metrics added to the table in an case-insensitive way

2012-07-09, 21:36:54 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

#101 Create LabelMap when computing the DVH

Currently we use surface model (not label map) to generate DVH. Inside the logic, we actually temporarily create the label map but we do not save them. However, it would be useful to save them for future reference or operations. A checkbox needs to be added to the toolbox that preserves these labelmaps, turned off by default.

2012-07-09, 20:58:33 - Csaba Pinter

description: changed from “Currently we use surface mo…” to “Currently we use surface mo…”

2012-07-11, 21:24:10 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2012-07-11, 21:24:10 - Csaba Pinter

status: changed from “New” to “Accepted”

2012-07-13, 14:32:47 - Csaba Pinter

(In r:166|slicerrt:166) Test #101: Option added to save labelmap with a specified label value as foreground when DVH is computed.

2012-07-13, 14:32:47 - Csaba Pinter

status: changed from “Accepted” to “Test”

2012-07-13, 14:33:29 - Csaba Pinter

image:c2QJ3WZpCr4BnzacwqjQYw

2012-07-13, 14:33:29 - Csaba Pinter

Attachment added: “SavingLabelmap.jpg”

2012-07-13, 14:56:35 - Andras Lasso

It would be much better to create a colormap with the colors of the structure sets and use the correct label index for each structure - instead of having one user-defined value (which will not result in correct color anyway). This may seem to be a lot of work, but it will be necessary anyway.

Maybe we should change the label to ‘Save labelmaps that are used for DVH computation’.

If we create multiple labelmaps it would be nice to put them under a hierarchy (is it possible to put them in an annotation hierarchy?).

2012-07-16, 15:25:10 - Csaba Pinter

milestone_id: changed from null to “SlicerRt-0.3 release”

2012-07-26, 13:43:35 - Csaba Pinter

status: changed from “Test” to “New”

2012-08-20, 20:18:01 - Andras Lasso

milestone: changed from “SlicerRt-0.3 release” to “SlicerRt 2012-08”

2012-08-21, 16:47:12 - Csaba Pinter

status: changed from “New” to “Accepted”

2012-08-22, 19:58:31 - Csaba Pinter

(In r:264|slicerrt:264) Re #107: Fixed linux build warnings; Re #101: WIP Lookup table is created for structure colors, Label value field removed from DVH module UI

2012-08-23, 16:12:57 - Csaba Pinter

(In r:268|slicerrt:268) Re #101: Labelmaps saved by the DVH module use a color table node that contain all the structure set colors, so the labelmap appears in the same color as the contour

2012-08-23, 20:39:51 - Csaba Pinter

(In r:270|slicerrt:270) Test #101: Find color table according to names instead of ID’s referenced from custom MRML node attributes

2012-08-23, 20:39:51 - Csaba Pinter

status: changed from “Accepted” to “Test”

2012-08-29, 13:52:55 - Csaba Pinter

status: changed from “Test” to “Fixed”

#102 Plot shows a wider range of values by default than needed

The x and y axes start from -5

2012-06-22, 13:19:22 - Csaba Pinter

(In r:c9c89b9501c28c790580b3b913ddb8bf03ca0aba|slicerrt:c9c89b9501c28c790580b3b913ddb8bf03ca0aba) Re #102: Padding parameter added to qMRMLChartView

Branch: master

2012-06-22, 13:30:10 - Csaba Pinter

(In r:153|slicerrt:153) Fixed #102: DVH chart axes range from 0, solved by setting the padding

2012-06-22, 13:30:10 - Csaba Pinter

status: changed from “New” to “Fixed”

2012-06-22, 14:08:18 - Csaba Pinter

The corresponding Slicer mantis issue is http://www.na-mic.org/Bug/view.php?id=2219

#103 Develop an algorithm for surface generation from contours

Need to preserve the original contour points of the planar contours and produce a closed surface by closing the gap between the planar contours.

The inputs of the algorithm:

The end result should be a VTK-based C++ algorithm implementation, automatic tests for validating it on a number of data sets, integrated into the open-source SlicerRT platform (we would do this integration), published in a journal or conference proceedings.

I would suggest to study the http://www.vtk.org/doc/nightly/html/classvtkVoxelContoursToSurfaceFilter.html filter and reuse its main structure and interface and replace the internal algorithm implementation.

A promising algorithm that could be used: https://www.assembla.com/code/slicerrt/subversion/nodes/trunk/SlicerRt/doc/references/Wang2005.pdf

Sample data sets (5 data sets, each of them containing multiple contours) are available in the attached zip file. You can view the contours, images, surfaces in ParaView.


We don’t want an algorithm that changes the original contour points, so any algorithm that is based on sampling on a rectilinear grid is not usable. For example, the ContoursToSurface example in VTK (http://www.vtk.org/Wiki/VTK/Examples/Cxx/PolyData/ContoursToSurface) uses the vtkVoxelContoursToSurfaceFilter, which creates the surface points by creating an image volume and extract the surface using a contour filter. If you choose to create a high-resolution volume then you get pretty similar contours to the original, but it requires lots of memory, computation time, and the surface will have too many points. If you use a lower-resolution volume then the generated surface will not follow closely the original contours.

There are methods that use the image contents, but we would prefer to not use the image contents for now. The only additional input to the contour sets is the slice spacing, which is essentially the thickness of the contour (two contours should not be connected with a surface if they are not drawn on neighbour slices).


A problem that Kyle was trying to solve is the issue of ‘wings’ on certain cases where there are big changes between adjacent slices. The problem is not trivial, so we don’t have a fix yet. However it is needed to investigate how these wings are rasterized and what effect they have on the computed DVH (ribbon -> labelmap VS winged surface -> labelmap) For test input, see attached optLPTV56b_P_Contour_Original_Contour.vtk and optLPTV56b_P_Contour_Interpolated_Mesh.vtk


Tasks to complete:

2012-07-04, 22:06:05 - Andras Lasso

description: changed from “Need to preserve the origin…” to “Need to preserve the origin…”

2012-08-08, 15:14:48 - Andras Lasso

milestone_id: changed from null to “SlicerRt-0.3 release”

2012-08-10, 19:19:36 - Andras Lasso

(In r:237|slicerrt:237) re #103: Added paper about contour processing (Wang2005, based on Delaunay triangulation, does not modify the original contour point positions)

2012-08-10, 19:19:36 - Andras Lasso

assigned_to_id: changed from null to “lassoan”

2012-10-23, 21:09:13 - Andras Lasso

file:dLSor-hvur4QtwacwqjQYw Sample structure set contours

2012-10-23, 21:09:13 - Andras Lasso

Attachment added: “RtSampleContours.zip”

2012-10-23, 21:31:10 - Andras Lasso

description: changed from “Need to preserve the origin…” to “Need to preserve the origin…”

2013-02-09, 22:13:00 - Andras Lasso

assigned_to_id: changed from “lassoan” to “tom_yeates”

2013-02-09, 22:18:29 - Andras Lasso

It’ll be implemented as a VTK filter. First just put it in the sandbox and build and test separately from Slicer.

Example for a standalone VTK project: VTK / Examples / Build / vtkLocal / (http://vtk.org/gitweb?p=VTK.git;a=tree;f=Examples/Build/vtkLocal;h=4f4d7587c8aab5228f16414ee4209da33d757783;hb=refs/heads/master)

2013-02-09, 22:18:29 - Andras Lasso

status: changed from “New” to “Accepted”

2013-03-07, 23:27:31 - Andras Lasso

(In r:689|slicerrt:689) re #103: Added sample data for the contour interpolation project

2013-03-07, 23:39:56 - Andras Lasso

Thank for the update. A few suggestions:

2013-03-08, 00:28:55 - Gabor Fichtinger

Thanks! –Gabor

From: Andras Lasso (lassoan) [mailto:slicerrt@alerts.assembla.com] Sent: March-07-13 6:40 PM

2013-03-13, 17:24:32 - tom_yeates

(In r:691|slicerrt:691) re #103: deleting old ply files

2013-03-13, 17:25:32 - tom_yeates

(In r:692|slicerrt:692) re #103: deleted old ContourInterpolation folder

2013-03-13, 17:26:48 - tom_yeates

(In r:693|slicerrt:693) re #103: added new files testInterp and incrementalContourInt that test and perform the incremental contour triangulation

2013-03-14, 17:43:25 - tom_yeates

Hi Andras,

A problem with the interpolation now is that I cannot distinguish between contours in the same z plane (which, as you mentioned, is a problem with the .ply format). Unfortunately the read_vtk function isn’t reading the VTK files that Paraview is producing. The error I’m getting is:

Warning: Problem in reading vertices.

In read_vtk at 38

vertex =

Empty matrix: 3-by-0

face =

1
 0

Do you know of any other VTK reading functions or VTP to VTK conversion methods? Or any other way to distinguish contours in general?

Thanks, Tom.

2013-03-14, 18:15:33 - Andras Lasso

Could you please write here the list of VTK readers that you tried?

2013-03-14, 18:22:38 - tom_yeates

So far I’ve only tried:

http://www.cb.uu.se/~erik/vtk/readVTK.m and http://www.mathworks.com/matlabcentral/fileexchange/5355-toolbox-graph/content/toolbox_graph/read_vtk.m

2013-03-14, 18:35:28 - Andras Lasso

Have a look at an ascii VTK file:

vtk DataFile Version 3.0

vtk output ASCII DATASET POLYDATA POINTS 440 float -22.0215 -41.1643 134.5 -23.6013 -41.3575 134.5 -24.17 -41.4307 134.5 -26.3184 -41.4176 134.5 -28.0586 -43.5059 134.5 -27.6368 -45.6543 134.5 … -11.2793 -36.0535 164.5 -12.0182 -34.9122 164.5 -13.4278 -33.0648 164.5 -13.7 -32.7637 164.5 -14.2096 -30.6153 164.5 LINES 13 466 15 0 1 2 3 4 5 6 7 8 9 10 11 12 13 0 13 14 15 16 17 18 19 20 21 22 23 24 25 14 … 37 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 358 47 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 394

=> So, you need POINTS and LINES

2013-03-15, 20:19:10 - tom_yeates

Ok I am successfully reading in lines but am at a bit of a loss for how to use them. What do these line numbers represent? Thanks!

2013-03-15, 20:37:38 - Andras Lasso

LINES 13 466 => 13 lines, altogether 466 numbers are coming 15 0 1 2 3 4 5 6 7 8 9 10 11 12 13 0 => this line is made up of 15 points: point index 0, 1, 2, 3, … 13 14 15 16 17 18 19 20 21 22 23 24 25 14 => this line is made up of 13 points: point index 14, 15, 16, .. …

2013-03-15, 23:12:23 - tom_yeates

That’s great thanks! I’ll put on the finishing touches, have my code committed by tomorrow morning, and begin work on my write up (just about right in line with my proposed timeline.. whew).

2013-03-16, 20:37:04 - tom_yeates

(In r:695|slicerrt:695) re #103: deleted old ContourInterpolation folder

2013-03-16, 20:39:46 - tom_yeates

(In r:696|slicerrt:696) re #103: altered read_vtk module to read contour lines properly, altered incrementalContourInterp to use contour data effectively, converted new VTK example contours using Paraview

2013-03-18, 02:44:30 - Andras Lasso

Let me know if there is anything to test (and provide exact instructions how to run it). Thanks!

2013-03-18, 20:51:48 - tom_yeates

You can run the interpolation by executing the function testInterp(). The algorithm is not perfect and this can be seen most obviously in the brain contour example. The algorithm naively triangulates all contours that lie in the nearest z-plane and so when multiple contours lie in one plane some extraneous edges appear.

2013-04-01, 17:54:58 - tom_yeates

(In r:718|slicerrt:718) re #103: delete old version of ContourInterpolation folder

2013-04-01, 18:00:04 - tom_yeates

(In r:719|slicerrt:719) re #103: added comments to all m files; fixed small indexing bug; added a few new data files

2013-04-01, 21:06:49 - tom_yeates

(In r:720|slicerrt:720) re #103: delete old ContourInterpolation folder

2013-04-01, 21:12:44 - tom_yeates

(In r:721|slicerrt:721) re #103: new file plotContourTri plots triangulation separately from algorithm; made changes to other files as suggested by Dr Lasso’s comments

2013-04-02, 19:29:41 - tom_yeates

(In r:727|slicerrt:727) re #103: addressed Dr. Lasso’s comments and suggestions

2013-04-03, 00:50:21 - Andras Lasso

Thanks for the updates. The code is nice and understandable now.

2013-07-15, 16:32:00 - Csaba Pinter

assigned_to_id: changed from “tom_yeates” to null

2013-07-15, 16:32:00 - Csaba Pinter

status: changed from “Accepted” to “New”

2014-01-14, 03:36:17 - Andras Lasso

This VTK filter may be usable for us: vtkRuledSurfaceFilter It can create a surface from a set of parallel contours.

2014-01-14, 04:25:17 - Andras Lasso

assigned_to_id: changed from null to “wooboyeong”

2014-01-14, 16:59:10 - Andras Lasso

Evaluate special cases:

2014-01-14, 17:04:37 - Andras Lasso

Boyeong:

Csaba:

2014-01-14, 17:04:37 - Andras Lasso

status: changed from “New” to “Accepted”

2014-01-15, 20:27:09 - Csaba Pinter

milestone_id: changed from “Future” to “SlicerRt 0.14”

2014-01-15, 20:38:06 - Csaba Pinter

(In r:1419|slicerrt:1419) Re #103: Save the original DICOM-RT ROI points in the contour. This is a temporary solution: re-ribbonization (or ribbon model) will not be needed any more when we have the direct conversion from points to closed surface points

2014-02-15, 21:07:20 - Andras Lasso

re #103: Moved obsolete contour interpolation code into separate subdirectory Commit: r:1511|slicerrt:1511

2014-02-15, 21:08:46 - Andras Lasso

re #103: Added Boyeong Woo’s contour interpolation module to source control (in sandbox) Commit: r:1512|slicerrt:1512

2014-02-15, 21:19:35 - Andras Lasso

re #103: Renamed the contour interpolation module to Contours to Surface and moved it to the src subdirectory Commit: r:1513|slicerrt:1513

2014-02-18, 18:45:46 - wooboyeong

re #103: uses the largest number of contour points as default resolution Commit: r:1518|slicerrt:1518

2014-02-26, 15:56:14 - wooboyeong

re #103: added pointwalk option Commit: r:1542|slicerrt:1542

2014-03-02, 04:08:04 - wooboyeong

re #103: close top and bottom Commit: r:1547|slicerrt:1547

2014-03-09, 02:10:10 - wooboyeong

re #103: Added ‘manual’ pointwalk - written from scratch because vtkRuledSurfaceFilter leaves little holes at some of the edges Commit: r:1565|slicerrt:1565

2014-03-16, 19:16:42 - wooboyeong

re #103: modified pointwalk so that it can deal with more than one lines per plane. Commit: r:1571|slicerrt:1571

2014-03-17, 20:41:32 - wooboyeong

re #103: just rewrote some things - to prevent unnecessary calculations and increase efficiency Commit: r:1573|slicerrt:1573

2014-03-21, 00:28:04 - wooboyeong

re #103: improved method for deciding branches Commit: r:1577|slicerrt:1577

2014-03-21, 05:17:48 - wooboyeong

re #103: used dynamic programming instead of greedy algorithm Commit: r:1578|slicerrt:1578

2014-03-21, 18:25:41 - Andras Lasso

re #103: Added tricky contours to the image database Commit: r:1580|slicerrt:1580

2014-03-27, 01:21:37 - wooboyeong

re #103: trying to tidy up the code Commit: r:1592|slicerrt:1592

2014-03-31, 03:35:05 - Csaba Pinter

file:bYTyMYUiur44_cacwqEsg8

2014-03-31, 03:35:05 - Csaba Pinter

Attachment added: “BoyeongWoo-UndergraduateProjectReport.pdf”

2014-03-31, 03:35:17 - Csaba Pinter

file:b6IwfuUiur44pdacwqEsg8

2014-03-31, 03:35:17 - Csaba Pinter

Attachment added: “Boeyong-Woo–UndergraduateProjectPoster.pptx”

2014-04-07, 16:09:08 - Csaba Pinter

Re #271, Re #103: Added papers related to contour to surface conversion Commit: r:1615|slicerrt:1615

2014-04-07, 18:50:59 - Csaba Pinter

assigned_to_id: changed from “wooboyeong” to null

2014-04-07, 18:50:59 - Csaba Pinter

status: changed from “Accepted” to “New”

2014-04-07, 18:53:04 - Csaba Pinter

Next steps:

2014-04-17, 14:35:34 - Csaba Pinter

assigned_to_id: changed from null to “wooboyeong”

2014-05-13, 02:26:59 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.14” to “SlicerRt 0.15”

2014-05-22, 17:13:57 - Andras Lasso

Interesting, potentially relevant related work for contour interpolation: http://www.insight-journal.org/browse/publication/881

2014-05-24, 01:28:58 - wooboyeong

re #103: connect closest points; module for detecting interior contour lines Commit: r:1759|slicerrt:1759

2014-06-06, 03:19:24 - wooboyeong

re #103: added some comments; also changed some code, but there is not much difference in the implementation Commit: r:1786|slicerrt:1786

2014-07-04, 14:18:35 - Kyle Sunderland

assigned_to_id: changed from “wooboyeong” to “Sunderlandkyl”

2014-07-04, 14:54:07 - Kyle Sunderland

RE #103 My attempt to solve the issues with rapid changes on convoluted contours. Approach was largely unsuccessful. Commit: r:1842|slicerrt:1842

2014-07-04, 15:07:19 - Csaba Pinter

file:dKwXOMa4Wr5ikjacwqjQYw

2014-07-04, 15:07:19 - Csaba Pinter

Attachment added: “contour_interpolation_modification.pdf”

2014-07-04, 15:07:19 - Csaba Pinter

milestone_id: changed from “Future” to “SlicerRt 0.16”

2014-07-04, 15:09:54 - Csaba Pinter

Component: changed from null to “SlicerRt modules”

2014-07-04, 15:09:54 - Csaba Pinter

description: changed from “Need to preserve the origin…” to “Need to preserve the origin…”

2014-07-04, 15:09:54 - Csaba Pinter

status: changed from “New” to “Accepted”

2014-07-04, 15:10:20 - Csaba Pinter

description: changed from “Need to preserve the origin…” to “Need to preserve the origin…”

2014-07-04, 15:10:25 - Csaba Pinter

file:btmAA4a40r5ln-acwqjQYw

2014-07-04, 15:10:25 - Csaba Pinter

Attachment added: “optLPTV56b_P_Contour_Interpolated_Mesh.vtk”

2014-07-04, 15:10:25 - Csaba Pinter

file:btwie0a40r5ln-acwqjQYw

2014-07-04, 15:10:25 - Csaba Pinter

Attachment added: “optLPTV56b_P_Contour_Original_Contour.vtk”

2014-07-04, 18:20:08 - Kyle Sunderland

Re #103 Removed the modifications for dealing with rapid changes on convoluted contours. Updated code for sealing the the upper and lower contours. Removed all non GUI Qt usage. Commit: r:1847|slicerrt:1847

2014-07-10, 19:52:42 - Kyle Sunderland

Re #103 Initial attempt at handling the keyhole case. Added VTK6 support. Commit: r:1855|slicerrt:1855

2014-07-11, 19:01:59 - Kyle Sunderland

Re #103 Modified metric for sealing the mesh so that all relevant contours are now sealed. Commit: r:1856|slicerrt:1856

2014-07-17, 02:22:38 - Csaba Pinter

Re #103: Documents related to contour interpolation / contour to surface added Commit: r:1868|slicerrt:1868

2014-08-22, 17:40:29 - Csaba Pinter

assigned_to_id: changed from “Sunderlandkyl” to null

2014-08-22, 17:45:23 - Csaba Pinter

description: changed from “Need to preserve the origin…” to “Need to preserve the origin…”

2014-09-14, 00:32:17 - Csaba Pinter

status: changed from “Accepted” to “Test”

2014-09-16, 02:35:14 - Csaba Pinter

assigned_to_id: changed from null to “Sunderlandkyl”

2014-09-16, 02:35:17 - Csaba Pinter

status: changed from “Test” to “Fixed”

2014-09-24, 22:08:47 - Csaba Pinter

Re #103: Removed data folder from contour interpolation sandbox project, as the data was outdated, not well documented what it was exactly, and the source data is available in the SlicerRT data repository. Commit: r:1958|slicerrt:1958

2014-10-15, 17:32:31 - Csaba Pinter

Re #627: Working branch for porting and integrating the contour to surface algorithm, see #103 Commit: r:1977|slicerrt:1977

2016-06-23, 13:21:01 - Kyle Sunderland

Re #103: Add a readme to the python folder that directs users to the current C++ implementation. Commit: r:2961|slicerrt:2961

2016-08-29, 17:41:35 - Kyle Sunderland

Re #103: Fix crash in contour to surface conversion algorithm caused by errors in vtkIdLists that are returned in the lines from vtkStripper. This does not directly fix the cause of the issue (which is currently unknown). Commit: r:3077|slicerrt:3077

2017-06-21, 14:27:38 - Kyle Sunderland

Re #103: Fix keyhole contour handling so that lines are not created with < 2 points Commit: r:3190|slicerrt:3190

2017-07-13, 15:03:49 - Kyle Sunderland

Re #103: Rotate contours to align with Z-axis before triangulation Commit: r:3193|slicerrt:3193

2017-07-13, 16:01:04 - Andras Lasso

It is not nice that some methods break when contour planes normals are not aligned to Z axis, but it may be acceptable if it simplifies the implementation a lot.

However, at least it has to be documented very clearly which methods require this kind of ‘normalized’ input.

2017-07-13, 16:22:10 - Kyle Sunderland

Re #103: Document which functions require that the contour normal is aligned with the z-axis Commit: r:3194|slicerrt:3194

2017-07-13, 16:25:54 - Kyle Sunderland

Since there are only 2 functions (that I know of) that require the contour normals are aligned, it may be worthwhile to rewrite those methods to be orientation agnostic. For now though, I have left a note in the header file for each function.

2017-07-13, 18:41:15 - Andras Lasso

Thanks!

#104 Integrate fixes into CTK master

All of our changes are in a github fork of CTK: git@github.com:SlicerRt/CTK.git

Modified files: • DCMTK.cmake: no need to merge, our version it’s just contains a DCMTK version with DCMRT • ctkDICOMDatabase.cpp, h: o Added a runQuery method that allows execution of any database queries. Currently we only use it to get filename from the SOPInstanceUID (SELECT Filename FROM Images WHERE SOPInstanceUID=”…”), so we could add a QStringList ctkDICOMDatabase::filesForSOPInstanceUID(QString seriesUID) method instead, but runQuery seemed more versatile (if we add filesForSOPInstanceUID then we may need to add more methods later for different queries; if we have runQuery then most probably we won’t need any other methods later). o Fixed bug: additional check added in loadFileHeader to prevent crashes o Added modality name to the series description: modality (CT, MR, …) information is absolutely essential; it should either appear in the series description or in a separate column o Changed date/time reading for RTSTRUCT, RTPLAN, RTDOSE items: these IODs don’t use the common seriesDate and seriesTime tags o Fixed bug: patientsBirthDate formatting o Changed the study description heuristics: the old implementation just used the tags that were found in the first DICOM file; however, the tags are often empty in some files but filled in others. The modified implementation always updates the fields, which is not very good in term of performance and also not fully correct, because it basically uses the last non-empty value. I think the best would be to store the study information at the series or images level (because this information is actually specified in each file). Optionally we could compute consolidated values (e.g., merge all the modalities, institution names, physicians, descriptions from the images that are in that study) and store it at the study level. o Use contentDate if seriesDate is not defined o Fixed bug: formatting of seriesDate and seriesTime • ctkDICOMDataset.cpp: o Fixed bug: maxReadLength parameter usage in ctkDICOMDataset::InitializeFromFile • ctkDICOMModel.cpp o Fixed bug: ReferringPhysician was used as Institution name o Added display of “No description” string in case the Name column is empty (otherwise the tree looks corrupted) • ctkDICOMAppWidget.ui: small size adjustment of the widgets, probably not needed anymore • FindDCMTK.cmake: additional include and library paths are added for DCMRT

The only part I’m not sure about is the study description heuristics. Probably it would be better to completely rework that part instead of merging the current SlicerRT implementation.

2012-07-25, 12:14:20 - Andras Lasso

All fixes have been integrated (see the latest fixes in https://github.com/commontk/CTK/issues/215).

The only missing part is the customization of fields for different image types (e.g., some IODs use different fields for storing series description).

2012-07-25, 12:14:20 - Andras Lasso

status: changed from “New” to “Fixed”

#105 Integrate DICOM import fixes into Slicer trunk

We’ve modified 3 DICOM loading related files in SlicerRT (git@github.com:SlicerRt/Slicer.git).

DICOMWidgets.py • if any custom loader recognizes an item then uncheck the item provided by the default “Scalar Volume” loader plugin and move it to the end of the loadable list • have a “Reader” column in the loadable list that tells the user plugin provides the item DICOMScalarVolumePlugin.py • prevent recognizing a DICOM file without pixel data as a valid “Scalar Volume” item (because the loading would fail anyway and we would get an error message) • show the first file in the tooltip DICOMPlugin.py • there is a small bug when initializing class members

2012-07-23, 17:19:27 - Andras Lasso

(In r:194|slicerrt:194) re #105: Specify a confidence value of 0.9 for DICOM-RT objects during DICOM import. It makes RT objects always load as RT objects and not as Scalar Volumes (the Scalar Volume reader has a lower confidence value).

2012-07-23, 20:30:25 - Andras Lasso

(In r:196|slicerrt:196) re #105: Fixed directory name case error

2012-07-23, 21:12:14 - Andras Lasso

(In r:197|slicerrt:197) re #105: Fixed linux build errors (stricmp, > > without separator space)

2012-07-23, 21:49:27 - Andras Lasso

(In r:198|slicerrt:198) re #105: Removed unnecessary dynamic allocation of QString

2012-07-24, 00:08:43 - Andras Lasso

(In r:200|slicerrt:200) re #105: Fixed remaining linux build errors

2012-07-24, 13:18:26 - Andras Lasso

All fixes have been integrated into Slicer trunk.

2012-07-24, 13:18:26 - Andras Lasso

status: changed from “New” to “Fixed”

#106 Integrate chart fixes into Slicer trunk

Tickets are already added, assigned to Jim. Just need to make sure the feature is integrated in time.

http://www.na-mic.org/Bug/view.php?id=1854 http://www.na-mic.org/Bug/view.php?id=2219

2012-07-10, 20:37:08 - Csaba Pinter

status: changed from “New” to “Accepted”

2012-07-10, 21:52:29 - Csaba Pinter

(In r:004fe458069691f9404b6c8496b0c9ffd67a37ce|slicerrt:004fe458069691f9404b6c8496b0c9ffd67a37ce) Re #106: Addressed Jim Miller’s comments before integrating

Branch: master

2012-07-10, 22:03:28 - Csaba Pinter

(In r:5f78f5edc760d4f38781294e45284ae492f17f81|slicerrt:5f78f5edc760d4f38781294e45284ae492f17f81) Re #106: Addressed Jim Miller’s comments before integrating

Branch: master

2012-07-13, 15:29:19 - Csaba Pinter

Integrated in https://github.com/Slicer/Slicer/commit/bde06b560b887e3fd8b33ef84b7b04129f25505a

2012-07-13, 15:29:19 - Csaba Pinter

status: changed from “Accepted” to “Test”

2012-07-23, 15:57:00 - Csaba Pinter

status: changed from “Test” to “Fixed”

#107 Fix Jc’s code review findings

1) Could you move the Data folder outside of the Testing folder ?

2) line 59 of qSlicerDoseVolumeHistogramModuleWidget.cxx, you are using std::map and std::pair to keep track of QCheckBox and other information (see ChartCheckboxToStructureSetNameMap). You could probably use a QSignalMapper instead. Using QHash, QPair etc .. could also make manipulation easier. I would recommend not to mix style .. Qt container with Qt object. You could then leverage the ‘foreach’ macro that would simplify your code.

3) Warnings in qSlicerDoseVolumeHistogramModule.ui Generating ui_qSlicerDoseVolumeHistogramModule.h /home/jchris/Projects/DoseVolumeHistogram/Resources/UI/qSlicerDoseVolumeHistogramModule.ui: Warning: Z-order assignment: ‘’ is not a valid widget. /home/jchris/Projects/DoseVolumeHistogram/Resources/UI/qSlicerDoseVolumeHistogramModule.ui: Warning: Z-order assignment: ‘’ is not a valid widget.

Also fix signed/unsigned warnings

2012-07-24, 13:46:19 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2012-07-24, 13:46:19 - Csaba Pinter

status: changed from “New” to “Accepted”

2012-07-24, 23:53:46 - Andras Lasso

description: changed from “1) Could you move the Data …” to “1) Could you move the Data …”

2012-07-25, 15:03:25 - Csaba Pinter

(In r:209|slicerrt:209) Re #107: Switching to Qt instead of std containers when Qt objects were stored

2012-07-25, 17:05:18 - Andras Lasso

(In r:211|slicerrt:211) re #107: Made the CMake files conform to the sample that Jc recommended (http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Modules/Loadable/Cameras/?pathrev=20532)

2012-07-25, 18:16:12 - Andras Lasso

(In r:212|slicerrt:212) re #107: Fixed DicomRtImport module qSlicerDicomRtImportModuleGenericTest failure

2012-07-28, 06:02:53 - Andras Lasso

(In r:213|slicerrt:213) re #107: Fixed logic class loading into python (vtkSlicer…Logic had to be renamed to vtkSlicer…ModuleLogic; the same way as the filename was renamed)

2012-08-14, 15:54:45 - Csaba Pinter

(In r:245|slicerrt:245) Re #107: Moved the Data folder outside the Testing folder

2012-08-14, 16:46:52 - Csaba Pinter

(In r:246|slicerrt:246) Re #107: Restructured the DVH data folder

2012-08-14, 20:47:13 - Csaba Pinter

(In r:248|slicerrt:248) Re #107: Fixed some linux/mac build warnings

2012-08-20, 20:32:09 - Andras Lasso

milestone: changed from “SlicerRt-0.3 release” to “SlicerRt 2012-08”

2012-08-22, 19:58:31 - Csaba Pinter

(In r:264|slicerrt:264) Re #107: Fixed linux build warnings; Re #101: WIP Lookup table is created for structure colors, Label value field removed from DVH module UI

2012-08-23, 18:27:27 - Csaba Pinter

I fixed all the warnings I could find.

It is still needed to fix the Plastimatch warnings and see if the z-order warnings are there (I could not find that one, there is not even a z-order element in the DVH ui)

2012-08-23, 18:27:27 - Csaba Pinter

status: changed from “Accepted” to “Test”

2012-09-20, 16:09:45 - Csaba Pinter

Updating tickets (#57, #65, #75, #83, #107, #119, #124, #126, #128)

2012-09-20, 16:09:45 - Csaba Pinter

status: changed from “Test” to “Fixed”

Requires Slicer core fix: http://www.na-mic.org/Bug/view.php?id=2335

2012-08-20, 20:07:11 - Andras Lasso

milestone: changed from “SlicerRt-0.3 release” to “Future”

2013-11-06, 23:11:22 - Csaba Pinter

The Slicer core feature related to this issue is no longer available

2013-11-06, 23:11:22 - Csaba Pinter

status: changed from “New” to “Invalid”

#109 Chart lines are not visible on linux

Chart lines are (chart border and all the lines) are not visible on the linux machine ‘cayce’. The problem is not specific to SlicerRt, the same problem happens with the Label Statistics module.

Need to check on another linux computer to find out if it’s specific to ‘cayce’.

2012-07-26, 13:42:27 - Csaba Pinter

status: changed from “New” to “Accepted”

2012-08-10, 19:14:23 - Andras Lasso

milestone_id: changed from “Release for AAPM2012” to “SlicerRt-0.3 release”

2012-08-20, 20:07:16 - Andras Lasso

milestone: changed from “SlicerRt-0.3 release” to “Future”

2012-10-29, 19:55:12 - Csaba Pinter

status: changed from “Accepted” to “New”

2012-11-13, 14:39:38 - Csaba Pinter

image:dZNDMelz8r4PpgacwqjQXA

2012-11-13, 14:39:38 - Csaba Pinter

Attachment added: “SlicerRt_Charts_Linux_2012-11-13_093722.png”

2012-11-13, 14:40:35 - Csaba Pinter

I tested today and the chart lines are visible on Linux now.

2012-11-13, 14:40:35 - Csaba Pinter

status: changed from “New” to “Invalid”

#110 Last column of DVH metric table is empty

The last column in the DVH metric table is always empty. E.g., add V50, V20, V10 => V10 column is empty.

2012-07-24, 21:48:29 - Andras Lasso

image:bn1dOm1DKr4Be4acwqjQWU DVH column is empty

2012-07-24, 21:48:29 - Andras Lasso

Attachment added: “screenshot-dvhcolumnempty.png”

2012-07-25, 15:08:59 - Csaba Pinter

status: changed from “New” to “Accepted”

2012-07-25, 15:46:42 - Csaba Pinter

(In r:210|slicerrt:210) Fixed #110: The metric values were shifted by one cell after the min dose entry - fixed; Crash fixed when computing DVH after D metric was requested

2012-07-25, 15:46:42 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

#111 Dose accumulation module does not set the dose colormap to the output volume

Currently the accumulated dose map is displayed with a gray colormap. By default the dose accumulation module should set the colormap to a colored one (maybe use the same colormap as the first selected dose volume).

2012-08-20, 20:15:24 - Andras Lasso

milestone: changed from “SlicerRt-0.3 release” to “SlicerRt 2012-08”

2012-09-05, 14:38:57 - Andras Lasso

Updating tickets (#59, #33, #112, #131, #25, #129, #115, #81, #114, #113, #111, #38, #137)

2012-09-05, 14:38:57 - Andras Lasso

milestone_id: changed from “SlicerRt 2012-08” to “SlicerRt 2012-09”

2012-10-05, 14:53:54 - wangk

assigned_to_id: changed from null to “wangk”

2012-10-05, 14:53:54 - wangk

status: changed from “New” to “Accepted”

2012-10-05, 15:56:15 - wangk

(In r:339|slicerrt:339) Re #111: Fixed the colormap bug. now it is set to rainbow for output volume node.

2012-10-05, 15:56:32 - wangk

status: changed from “Accepted” to “Test”

2012-10-12, 12:36:14 - Csaba Pinter

status: changed from “Test” to “Fixed”

#112 Dose accumulation volume list is updated only when the module is activated

Uncheck ‘Show dose volumes only’ Create a new volume (it is not displayed in the list, because it’s not a dose volume yet) Click apply => the new volume should be now displayed, but it doesn’t appear in the list Go to another module and then get back to the dose accumulation module => the new volume appears

After apply the new volume should be displayed in the volume list of the dose accumulation module.

2012-08-20, 20:15:14 - Andras Lasso

milestone: changed from “SlicerRt-0.3 release” to “SlicerRt 2012-08”

2012-09-05, 14:38:57 - Andras Lasso

Updating tickets (#59, #33, #112, #131, #25, #129, #115, #81, #114, #113, #111, #38, #137)

2012-09-05, 14:38:57 - Andras Lasso

milestone_id: changed from “SlicerRt 2012-08” to “SlicerRt 2012-09”

2012-10-05, 15:57:26 - wangk

assigned_to_id: changed from null to “wangk”

2012-10-05, 15:57:26 - wangk

status: changed from “New” to “Accepted”

2012-10-05, 16:38:03 - wangk

(In r:340|slicerrt:340) Re #112: Fixed the UI updating bug.

2012-10-05, 16:38:12 - wangk

status: changed from “Accepted” to “Test”

2012-10-05, 17:32:40 - Csaba Pinter

(In r:341|slicerrt:341) Re #112: Threshold is set to the accumulated dose display node so that the background is empty (not red)

2012-10-05, 17:36:35 - Csaba Pinter

I tried it, and it works.

If you don’t mind I commited a fix to set the threshold just when loading with the DicomRtImport module. Can you make the dose volumes table wider just as you did with the Isodose module widget?

I think you can close this after doing the table thing (I know it doesn’t fit in this ticket but it is a very small issue, I wouldn’t create a ticket just for that).

2012-10-05, 19:25:10 - wangk

(In r:342|slicerrt:342) Re #112: Fixed the table size bug.

2012-10-05, 19:29:45 - Csaba Pinter

Thanks!

2012-10-12, 12:36:25 - Csaba Pinter

status: changed from “Test” to “Fixed”

#113 Add detailed SlicerRT module documentation to the Slicer wiki

http://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Extensions/SlicerRT http://www.slicer.org/slicerWiki/index.php?title=Documentation/Nightly/Extensions

2012-08-20, 20:15:05 - Andras Lasso

milestone: changed from “SlicerRt-0.3 release” to “SlicerRt 2012-08”

2012-08-27, 14:09:37 - Andras Lasso

description: changed from “http://www.slicer.org/slice…” to “http://www.slicer.org/slice…”

2012-09-05, 14:38:57 - Andras Lasso

Updating tickets (#59, #33, #112, #131, #25, #129, #115, #81, #114, #113, #111, #38, #137)

2012-09-05, 14:38:57 - Andras Lasso

milestone_id: changed from “SlicerRt 2012-08” to “SlicerRt 2012-09”

2012-10-12, 12:36:54 - Csaba Pinter

Updating tickets (#144, #25, #38, #59, #61, #81, #113, #115, #131, #134, #136, #137, #138, #140, #145, #146)

2012-10-12, 12:36:54 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.5.0 (2012-09)” to “SlicerRt 0.6.0”

2012-11-02, 20:16:19 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2012-11-02, 20:16:19 - Csaba Pinter

status: changed from “New” to “Accepted”

2012-11-02, 20:41:41 - Csaba Pinter

(In r:407|slicerrt:407) Re #113: Links added to the modules’ help section

2012-11-02, 21:00:45 - Csaba Pinter

(In r:408|slicerrt:408) Re #113: Links in PlmBspline module’s help section updated to the already existing wiki page

2012-11-08, 14:20:38 - Andras Lasso

We should describe in the vtkSlicerDoseVolumeHistogramModuleLogic.h file how exactly the DVH computation works (similarly to the 5-line description in Angel’s email), including a reference(s) to a peer-reviewed journal paper(s), e.g., the Ebert2010 paper for the method and our MedPhys paper for validation results. In the module description page on the Slicer wiki we should copy the same information as in the .h file, with additional details about how this algorithm applied in the module (e.g., oversampling with a 2.0 factor by default).

2012-11-08, 21:20:43 - Csaba Pinter

(In r:435|slicerrt:435) Re #113: Description added to DVH logic header (vtkSlicerDoseVolumeHistogramModuleLogic.h); Build warning fixed in vtkSlicerContourMorphologyModuleLogicTest1.cxx

2012-11-08, 21:55:20 - Csaba Pinter

Updated url:http://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Extensions/SlicerRT|Nightly and url:http://www.slicer.org/slicerWiki/index.php/Documentation/4.2/Extensions/SlicerRT|4.2 wiki pages and the included module pages (nightly and 4.2 pages should be identical at the moment. If they’re not, then it’s a mistake).

Please take a look at them and let me know if there is anything to change.

2012-11-08, 21:55:39 - Csaba Pinter

status: changed from “Accepted” to “Test”

2012-11-12, 21:12:47 - Csaba Pinter

status: changed from “Test” to “Fixed”

#114 Set up continous SlicerRT build on linux

In order to get immediate feedback if we commit something that doesn’t build correctly on linux.

Maybe submit results to the PerkLab CDash to not flood the Slicer cdash.

2012-08-20, 20:15:14 - Andras Lasso

milestone: changed from “SlicerRt-0.3 release” to “SlicerRt 2012-08”

2012-09-05, 14:38:57 - Andras Lasso

Updating tickets (#59, #33, #112, #131, #25, #129, #115, #81, #114, #113, #111, #38, #137)

2012-09-05, 14:38:57 - Andras Lasso

milestone_id: changed from “SlicerRt 2012-08” to “SlicerRt 2012-09”

2012-09-05, 16:26:33 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2012-09-06, 14:53:18 - Csaba Pinter

status: changed from “New” to “Accepted”

2012-09-06, 20:24:14 - Csaba Pinter

(In r:291|slicerrt:291) Re #114: Fixed build error under linux caused by the static SlicerRtCommon library linked into shared libraries

2012-09-10, 20:55:33 - Csaba Pinter

Installed VirtualBox on PROSTATE with an Ubuntu 12.04 64bit linux. Built Slicer and SlicerRT in release mode and set up a continuous build that checks SlicerRT repository every 5 minutes and builds and runs the tests of the inner-build directory when something changes.

Note: When important changes are made in Plastimatch, I think it needs to be updated manually.

2012-09-10, 20:55:33 - Csaba Pinter

status: changed from “Accepted” to “Test”

2012-09-26, 20:46:26 - Csaba Pinter

Andras,

Please check the entry in the Extensions-Continuous track on the Slicer4 url:http://slicer.cdash.org/index.php?project=Slicer4 dashboard that was submitted half an hour ago and close this issue if you think this is good enough.

Yesterday I learned about the ‘track’ parameter that can be set to CTest, and took the simplest approach to have it appear in the right one. Now the test doesn’t use CMake scripts of any sort.

2012-09-26, 23:37:20 - Andras Lasso

There are a couple of limitations:

None of these are blocking issues, so if we wait for 1-2 days and the continuous tests are run correctly then we can close this.

It would be useful if you could add the script/config file/command-line parameters that you use to the developer’s page.

2012-09-27, 00:53:03 - Csaba Pinter

According to JC’s remarks, I’ll use a simple cmake script for the test after all. Probably all of your comments can be addressed with it. I’ll set it up tomorrow.

2012-09-27, 17:45:24 - Andras Lasso

Great, thanks!

2012-10-01, 18:53:24 - Csaba Pinter

file:bg-yl0c_Kr4PVwacwqjQYw Bash script starting ctest with the CMake script

2012-10-01, 18:53:24 - Csaba Pinter

Attachment added: “SlicerRtContinousWithUpdate.sh”

2012-10-01, 18:53:38 - Csaba Pinter

file:bpAxdkc_Kr4PVwacwqjQYw CMake script driving the test

2012-10-01, 18:53:38 - Csaba Pinter

Attachment added: “Perklab-Virtualbox_Linux-64bits_SlicerRt_Release_Continuous.cmake”

2012-10-01, 18:55:47 - Csaba Pinter

I created the script and the continuous build seems to work with it (I attached the script files as attachment to the ticket).

The only issue I have now is that after restarting the virtual machine, one Plastimatch checkout has to be made so that the authentication is saved and the script can check it out without problems.

If the test works for a couple of days as intended, I’ll close the ticket.

2012-10-01, 19:15:51 - Greg Sharp

I don’t know if this suggestion is helpful, but I add the following to my ctest script:

// Use anonymous checkout SVN_UPDATE_OPTIONS:STRING=–username anonymous –password \\\’\\\’

2012-10-02, 18:13:09 - Csaba Pinter

The testing mechanism works as it is supposed to.

2012-10-02, 18:13:09 - Csaba Pinter

status: changed from “Test” to “Fixed”

#115 Fix build problems

Fix all build warnings and errors that occur, especially on linux and Mac (we don’t test them that often)

2012-08-20, 20:15:05 - Andras Lasso

milestone: changed from “SlicerRt-0.3 release” to “SlicerRt 2012-08”

2012-08-27, 20:15:04 - Csaba Pinter

The warnings have been fixed, but Plastimatch introduced new ones, that have to be fixed before closing this issue.

2012-09-05, 14:38:57 - Andras Lasso

Updating tickets (#59, #33, #112, #131, #25, #129, #115, #81, #114, #113, #111, #38, #137)

2012-09-05, 14:38:57 - Andras Lasso

milestone_id: changed from “SlicerRt 2012-08” to “SlicerRt 2012-09”

2012-10-12, 12:36:54 - Csaba Pinter

Updating tickets (#144, #25, #38, #59, #61, #81, #113, #115, #131, #134, #136, #137, #138, #140, #145, #146)

2012-10-12, 12:36:54 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.5.0 (2012-09)” to “SlicerRt 0.6.0”

2012-11-05, 21:09:02 - Andras Lasso

assigned_to_id: changed from null to “gregsharp”

2012-11-12, 21:12:52 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.6.0 (2012-10)” to “SlicerRt 0.7.0 (2012-11)”

2012-11-14, 21:58:07 - Greg Sharp

(In r:450|slicerrt:450) Re #115: Fix two compiler warnings in plastimatch plugins. There are a couple in plastimatch while building itkClampCastImageFilter.h, which are known to be benign and are not easy to fix. There are also a few remaining in DVH, isodose, contours, dose comparison. I can remove them if you want.

2012-11-15, 14:35:09 - Greg Sharp

For remaining build warnings (in SlicerRt proper), here is how I would normally address these.

(1) comparison of unsigned int with enum => change to int (2) unused variables => create a macro UNUSED_VARIABLE() which casts to void

This is a matter of taste of course, but ideally these stylistic issues are uniform across the project. If you like my choices I will proceed.

2012-11-15, 15:31:20 - Csaba Pinter

Thanks for taking care of this, Greg!

(2) seems to be good (or just not to declare the variable)

But I don’t really understand (1). Instead of

1
2
3
4
enum { one = 1, two, three };


you want to declare a bunch of static int variables? Usually I resolve this by casting the values explicitly, like

1
2
3
4
if ( representationToConvertTo == (int)vtkMRMLContourNode::RibbonModel )


but maybe it’s not the best way to do it.

2012-11-15, 16:17:25 - Greg Sharp

For (1) if you have this:

1
2
3
4
5
6

enum Foo { a, b, MAX };
for (unsigned int i = 0; i < MAX; i++)


You get warning about comparison between unsigned and signed int. So I propose using signed int instead:

1
2
3
4
5
6

enum Foo { a, b, MAX };
for (int i = 0; i < MAX; i++)


For (2), I will proceed, and create a new header file to hold the macro. The warnings in SlicerRt come from unused formal arguments, or unused Qt d pointer, where it seems stylistically better to keep the unused variable.

2012-11-15, 16:20:23 - Csaba Pinter

I understand now. Thanks!

2012-11-16, 03:25:37 - Greg Sharp

(In r:460|slicerrt:460) Re #115: fix compiler warnings in slicerrt proper

2012-11-16, 05:00:54 - Greg Sharp

Fixed or suppressed plastimatch warnings.

2012-11-16, 05:00:54 - Greg Sharp

status: changed from “New” to “Fixed”

2012-11-16, 15:35:12 - Andras Lasso

Thanks for the fixes Greg. Unfortunately, it seems that on some computers there are build errors that may be related: http://slicer.cdash.org/viewBuildError.php?buildid=47429 Could you please check? Thanks!

2012-11-16, 15:35:12 - Andras Lasso

status: changed from “Fixed” to “Accepted”

2012-11-16, 16:18:17 - Csaba Pinter

I’m building the new slicer on my Linux virtual machine to try building SlicerRT (and so Plastimatch). I’ll let you know how it went

2012-11-16, 16:23:06 - Greg Sharp

Hi, sorry about that. I didn’t notice that the ‘pop’ pragma is not supported until gcc version 4.6.

The build should be now fixed. However, a few linux build warnings will appear for gcc < 4.6.

2012-11-16, 16:23:06 - Greg Sharp

status: changed from “Accepted” to “Test”

2012-11-16, 19:09:08 - Csaba Pinter

The latest version builds on linux, but I get warnings like:

In file included from /home/perklab/Devel/SlicerRT_R64-bin/Plastimatch/src/plastimatch/base/itk_dicom_load.h:8:0, from /home/perklab/Devel/SlicerRT_R64-bin/Plastimatch/src/plastimatch/base/plmbase.h:37, from /home/perklab/Devel/SlicerRT/PlmXformwarp/plastimatch_slicer_xformwarp.cxx:11: /home/perklab/Devel/SlicerRT_R64-bin/Plastimatch/src/plastimatch/base/itk_image_type.h:12:32: warning: unknown option after ‘#pragma GCC diagnostic’ kind [-Wpragmas]

2012-11-17, 00:16:54 - Greg Sharp

Hmm, not sure what this is. Probably these pragmas are very sensitive to gcc version.

I’m going to go back to original code. There will be a few warnings in ITK included from plastimatch, but I have verified that they are all benign.

2012-12-08, 22:23:49 - Csaba Pinter

A clean build of Plastimstch rev4005 on Windows gave these build and link warnings:

3>5>..\..\..\Plastimatch\libs\lua-5.1.4\src\ltable.c(323) : warning C4334: ‘«’ : result of 32-bit shift implicitly converted to 64 bits (was 64-bit shift intended?) 3>5>..\..\..\Plastimatch\libs\lua-5.1.4\src\ltable.c(376) : warning C4334: ‘«’ : result of 32-bit shift implicitly converted to 64 bits (was 64-bit shift intended?) 3>5>..\..\..\Plastimatch\libs\lua-5.1.4\src\lgc.c(288) : warning C4334: ‘«’ : result of 32-bit shift implicitly converted to 64 bits (was 64-bit shift intended?) 3>9>..\..\..\..\Plastimatch\src\plastimatch\base\dcmtk_uid.cxx(86) : warning C4267: ‘=’ : conversion from ‘size_t’ to ‘int’, possible loss of data 3>9>..\..\..\..\Plastimatch\src\plastimatch\base\dcmtk_rtss.cxx(196) : warning C4267: ‘=’ : conversion from ‘size_t’ to ‘int’, possible loss of data 3>9>..\..\..\..\Plastimatch\src\plastimatch\base\xio_studyset.cxx(115) : warning C4267: ‘initializing’ : conversion from ‘size_t’ to ‘int’, possible loss of data 3>9>..\..\..\..\Plastimatch\src\plastimatch\base\xio_dir.cxx(188) : warning C4267: ‘return’ : conversion from ‘size_t’ to ‘int’, possible loss of data 3>9>..\..\..\..\Plastimatch\src\plastimatch\base og_io.cxx(599) : warning C4267: ‘=’ : conversion from ‘size_t’ to ‘int’, possible loss of data 3>9>..\..\..\..\Plastimatch\src\plastimatch\base og_io.cxx(711) : warning C4267: ‘=’ : conversion from ‘size_t’ to ‘int’, possible loss of data 3>9>..\..\..\..\Plastimatch\src\plastimatch\base\pl_volume.cxx(559) : warning C4267: ‘initializing’ : conversion from ‘size_t’ to ‘int’, possible loss of data 3>9>..\..\..\..\Plastimatch\src\plastimatch\base\proj_image_dir.cxx(104) : warning C4267: ‘=’ : conversion from ‘size_t’ to ‘char’, possible loss of data 3>9>..\..\..\..\Plastimatch\src\plastimatch\base\proj_image.cxx(333) : warning C4267: ‘initializing’ : conversion from ‘size_t’ to ‘int’, possible loss of data 3>10>..\..\..\..\Plastimatch\src\plastimatch\util\asterize_slice.cxx(148) : warning C4267: ‘initializing’ : conversion from ‘size_t’ to ‘int’, possible loss of data 3>10>..\..\..\..\Plastimatch\src\plastimatch\util\asterize_slice.cxx(148) : warning C4267: ‘initializing’ : conversion from ‘size_t’ to ‘int’, possible loss of data 3>10>..\..\..\..\Plastimatch\src\plastimatch\util\asterize_slice.cxx(151) : warning C4267: ‘=’ : conversion from ‘size_t’ to ‘int’, possible loss of data 3>12>..\..\..\..\Plastimatch\src\plastimatch\egister\bspline_regularize_numeric.cxx(358) : warning C4267: ‘=’ : conversion from ‘size_t’ to ‘int’, possible loss of data 3>12>..\..\..\..\Plastimatch\src\plastimatch\egister\bspline_landmarks.cxx(184) : warning C4267: ‘=’ : conversion from ‘size_t’ to ‘int’, possible loss of data 3>12>..\..\..\..\Plastimatch\src\plastimatch\egister\bspline_landmarks.cxx(186) : warning C4267: ‘=’ : conversion from ‘size_t’ to ‘int’, possible loss of data 8>6>LINK : warning LNK4044: unrecognized option ‘/openmp’; ignored

Greg, can you please try to fix these? After that if the Linux build is warning-free we can close the ticket.

2012-12-08, 22:23:49 - Csaba Pinter

status: changed from “Test” to “Accepted”

2012-12-23, 20:42:41 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.7.0 (2012-11)” to “SlicerRt 0.8.0 (2012-12)”

2013-01-24, 16:59:58 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.8.0 (2013-01)” to “SlicerRt 0.9.0 (2013-03)”

2013-03-24, 19:57:06 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.9.0 (2013-03)” to “SlicerRt 0.10.0 (2013-04)”

2013-04-21, 15:43:22 - Csaba Pinter

status: changed from “Accepted” to “New”

2013-04-21, 15:53:48 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.10.0 (2013-04)” to “SlicerRt 0.11.0 (2013-05)”

2013-05-29, 20:04:27 - Csaba Pinter

(In r:853|slicerrt:853) Re #115: Fix linux link error; Add project() call to the main CMakeLists file to follow the code changes in Slicer (http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=22038)

2013-06-19, 02:21:28 - Csaba Pinter

(In r:906|slicerrt:906) Re #115: Fixed linux warnings

2013-06-21, 19:26:28 - Greg Sharp

(In r:924|slicerrt:924) Re #115 Fix linux build problem

2013-06-21, 19:33:22 - Greg Sharp

(In r:925|slicerrt:925) Re #115 Fix a different linux build problem

2013-06-21, 19:45:12 - Greg Sharp

(In r:926|slicerrt:926) Re #115 Fix another linux build problem

2013-08-15, 14:58:35 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.11.0 (2013-07)” to “SlicerRt 1.0 (2013-09)”

2013-08-21, 18:06:47 - Csaba Pinter

Original description: http://slicer.cdash.org/viewBuildError.php?type=1&buildid=30176

2013-08-21, 18:06:47 - Csaba Pinter

assigned_to_id: changed from “gregsharp” to null

2013-08-21, 18:06:47 - Csaba Pinter

summary: changed from “Fix build warnings on linux” to “Fix build warnings”

2013-08-21, 18:06:47 - Csaba Pinter

priority: changed from “Normal (3)” to “High (2)”

2013-08-21, 18:06:47 - Csaba Pinter

description: changed from “http://slicer.cdash.org/vie…” to “Fix all build warnings that…”

2013-08-21, 18:06:47 - Csaba Pinter

milestone_id: changed from “SlicerRt 1.0 (2013-09)” to “Future”

2013-09-06, 14:15:57 - Greg Sharp

(In r:1142|slicerrt:1142) Re #115: Convert UTF-16 to ASCII

2013-09-06, 14:15:57 - Greg Sharp

assigned_to_id: changed from null to “gregsharp”

2013-09-06, 18:41:10 - Csaba Pinter

priority: changed from “High (2)” to “Highest (1)”

2013-09-09, 15:28:19 - Csaba Pinter

priority: changed from “Highest (1)” to “Normal (3)”

2013-09-09, 15:28:19 - Csaba Pinter

milestone_id: changed from “Future” to “Continuous”

2013-10-30, 22:16:29 - Greg Sharp

summary: changed from “Fix build warnings” to “Fix build problems”

2013-10-30, 22:16:29 - Greg Sharp

description: changed from “Fix all build warnings that…” to “Fix all build warnings and …”

2013-10-30, 22:17:03 - Greg Sharp

(In r:1241|slicerrt:1241) Re #115 Fix build error on gcc 4.4

2013-11-06, 16:53:50 - Csaba Pinter

(In r:1267|slicerrt:1267) Re #115: Fixed linux build warnings

2013-12-04, 20:43:01 - Greg Sharp

(In r:1321|slicerrt:1321) Re #115 Fix SlicerRT to build against Slicer HEAD

2013-12-04, 20:59:46 - Csaba Pinter

Thanks, Greg!

2013-12-05, 19:15:00 - Csaba Pinter

(In r:1324|slicerrt:1324) Re #115: Fixed GelDosimetry build error due to recent Slicer core changes; Re #437: Coefficients are not removed from the fitted polynomial now; The fitted polynomial is displayed on the UI

2013-12-05, 19:18:24 - Csaba Pinter

(In r:1325|slicerrt:1325) Re #115: Fixed GelDosimetry build error due to recent Slicer core changes (this was missing from the previous commit by mistake)

2013-12-05, 19:27:14 - Csaba Pinter

(In r:1326|slicerrt:1326) Re #115: Bumped SlicerRT version for release (because of build errors due to recent Slicer core changes)

2014-01-16, 20:09:53 - Csaba Pinter

(In r:1425|slicerrt:1425) Re #115: Attempt to fix linux build warnings

2014-01-16, 20:46:19 - Csaba Pinter

(In r:1426|slicerrt:1426) Re #115: Fixed linux build issues

2014-01-21, 02:15:19 - Greg Sharp

(In r:1451|slicerrt:1451) Re #115 Bump to build against latest plastimatch version

2014-01-31, 18:57:43 - Greg Sharp

Re #115 Fix build failure on linux Commit: r:1483|slicerrt:1483

2014-03-20, 21:15:46 - Greg Sharp

Re #115 Fix build error due to Slicer API change Commit: r:1575|slicerrt:1575

2014-03-20, 22:44:31 - Greg Sharp

Re #115 Remove useless comment Commit: r:1576|slicerrt:1576

2014-04-24, 13:50:09 - Greg Sharp

Re #115 fix linux build error Commit: r:1673|slicerrt:1673

2014-04-24, 14:04:49 - Greg Sharp

Re #115 Sorry, my bad. I set the wrong plastimatch version. Commit: r:1675|slicerrt:1675

2014-04-24, 15:29:15 - Csaba Pinter

Thanks, Greg!

2014-06-17, 22:02:53 - Greg Sharp

Re #115 Fix linux build Commit: r:1806|slicerrt:1806

2014-07-02, 20:49:24 - Csaba Pinter

Re #601, Re #115: Fixed build for GelDosimetry that failed due to switch to VTK6 Commit: r:1833|slicerrt:1833

2014-07-03, 22:03:53 - Greg Sharp

Re #115 Fix build problems related to plastimatch version Commit: r:1837|slicerrt:1837

2014-07-03, 22:55:05 - Greg Sharp

Re #115 Fix build errors on gcc Commit: r:1838|slicerrt:1838

2014-07-08, 20:49:38 - Greg Sharp

Re #115 Fix linux build problem Commit: r:1852|slicerrt:1852

2014-07-31, 15:58:08 - Greg Sharp

Re #115 Fix build problem related to use of Windows EOL in XML files Commit: r:1902|slicerrt:1902

2014-08-01, 21:59:15 - Csaba Pinter

Re #115: Fixed Linux build warnings Commit: r:1911|slicerrt:1911

2014-08-05, 00:20:31 - Greg Sharp

Re #115 Fix build problem on linux Commit: r:1918|slicerrt:1918

2014-08-06, 18:55:01 - Csaba Pinter

Re #115: Fixed Linux build warnings Commit: r:1922|slicerrt:1922

2014-08-06, 19:56:36 - Csaba Pinter

Re #115: Fixed Linux build warnings Commit: r:1923|slicerrt:1923

2014-11-09, 23:02:24 - Csaba Pinter

Re #115: Fixed Mac related build issues. OSX related CMake variables propagated to Plastimatch (automatic propagation from Slicer to SlicerRT is not yet solved) Commit: r:2018|slicerrt:2018

2014-11-17, 15:18:00 - Csaba Pinter

Re #115: Fixed Linux build issue Commit: r:2035|slicerrt:2035

2014-11-18, 17:34:30 - Csaba Pinter

Re #676, re #115: Fix DicomRtImportSelfTest (follow Slicer core changes). Fix linux build warning Commit: r:2036|slicerrt:2036

2014-11-21, 18:02:43 - Greg Sharp

Re #115 Patch my broken code in ExternalBeamPlanning Commit: r:2041|slicerrt:2041

2014-12-03, 16:32:34 - Greg Sharp

Re #115 Fix linux build problem Commit: r:2051|slicerrt:2051

2014-12-24, 14:59:15 - Greg Sharp

Re #115 Fix build problem on linux with CMake 3.X when another version of plastimatch is installed Commit: r:2085|slicerrt:2085

2015-01-26, 21:00:53 - Csaba Pinter

Re #115: Fix build issue with new CMake 3.1 (with Windows 8 and VS 2012) Commit: r:2108|slicerrt:2108

2015-01-26, 22:33:09 - Greg Sharp

Re #115 Fix API change in plastimatch Commit: r:2109|slicerrt:2109

2015-01-29, 19:22:30 - Csaba Pinter

Re #115: Fixed CMake warning about PinnacleDvfReader referencing itself Commit: r:2118|slicerrt:2118

2015-01-30, 15:59:27 - Csaba Pinter

Re #115, re #618: Fixed build error that was introduced in rev2116 by not using the latest revision Commit: r:2120|slicerrt:2120

2015-02-04, 16:02:28 - Csaba Pinter

Re #115: Fix build problem introduced by Slicer rev23942. This an easy fix to keep Contours running until Segmentations take its place. After it happens, this class will be no longer necessary so can be removed. Commit: r:2130|slicerrt:2130

2015-02-06, 17:57:37 - Andras Lasso

re #115: Fixed SlicerRT build error (vtkImageResliceMask replaced by standard VTK vtikImageReslice) Commit: r:2135|slicerrt:2135

2015-06-05, 14:53:32 - Csaba Pinter

Re #115: Fixed linux warnings

From Jean-Christophe Fillion-Robin Commit: r:2319|slicerrt:2319

2015-08-05, 15:30:06 - Greg Sharp

Re #115 Fix syntax error Commit: r:2386|slicerrt:2386

2015-08-07, 16:55:38 - Greg Sharp

Re #115 Fix build problem due to bstrlib Commit: r:2394|slicerrt:2394

2015-09-02, 19:11:51 - Csaba Pinter

Re #115: Fixed build error that was introduced by Slicer commit rev24515 Commit: r:2423|slicerrt:2423

2015-09-03, 20:46:27 - Greg Sharp

Re #115 Fix EBP build problem with plastimatch version Commit: r:2429|slicerrt:2429

2015-09-04, 15:52:07 - Csaba Pinter

Re #115: Fixed build error (that was introduced by Slicer commit rev24515) in experimental module Pinnacle DVF Reader Commit: r:2430|slicerrt:2430

2015-12-08, 19:29:49 - Csaba Pinter

Re #115: Bump Plastimatch to build with 32bit VS2008 Commit: r:2523|slicerrt:2523

2015-12-30, 14:46:11 - Greg Sharp

Re #115 Fix linux build errors Commit: r:2552|slicerrt:2552

2016-01-13, 01:10:09 - Greg Sharp

Re #115 Fix build warnings on linux Commit: r:2575|slicerrt:2575

2016-01-26, 16:46:41 - Csaba Pinter

Re #757, re #115: Fixed linux/mac build issue in abstract editor effect Commit: r:2602|slicerrt:2602

2016-01-29, 21:52:58 - Csaba Pinter

Re #757, re #115: Attempt fixing VS2013 build errors; Added button row to segment editor widget for adding/removing segments, and for creating closed surface model for segmentation that is updated on each editing step (button only visible if closed surface is not present); Added help icon showing information about the active effect; Added Qt designer plugin for segment editor widget Commit: r:2612|slicerrt:2612

2016-01-31, 15:21:26 - Csaba Pinter

Re #757, re #115: Fixed build error when doing clean build Commit: r:2615|slicerrt:2615

2016-02-11, 23:08:04 - Csaba Pinter

Re #115: Attempt to fix VS2013 build error that occurs with the factory Commit: r:2648|slicerrt:2648

2016-03-01, 14:52:25 - Csaba Pinter

Re #115: Attempt to fix linux build error Commit: r:2694|slicerrt:2694

2016-03-03, 14:13:09 - Csaba Pinter

Re #115: Collision detection still did not build on the factory linux, another attempt to fix (cannot reproduce on my Ubuntu) Commit: r:2696|slicerrt:2696

2016-03-04, 15:40:14 - Greg Sharp

Re #115 Possible fix for build problem on factory gcc 4.4 Commit: r:2700|slicerrt:2700

2016-03-25, 20:00:45 - Csaba Pinter

Re #115: Attempt to fix linux build error by outsourcing DVH node into a separate MRML project Commit: r:2761|slicerrt:2761

2016-04-08, 16:12:29 - Csaba Pinter

Re #115: Attempt to fix Plastimatch build error on Mac and Linux

SlicerRT-build/Plastimatch/src/plastimatch/base/segmentation.cxx:298: error: no match for ‘operator=’ in ‘((Segmentation*)this)->Segmentation::d_ptr->Segmentation_private::m_ss_img = 0’ Commit: r:2773|slicerrt:2773

2016-04-18, 18:12:32 - Csaba Pinter

Re #115: Fixed circular dependency build warning always using downloaded test data instead of local test data from the SVN repository. Test DICOM data removed from source Commit: r:2782|slicerrt:2782

2016-05-03, 20:23:04 - Csaba Pinter

Re #115, re #751: Attempt to fix build error on Mac and Linux Commit: r:2794|slicerrt:2794

2016-05-17, 00:21:33 - Csaba Pinter

Re #415, re #115: Fixing build errors in Room’s Eye View (somehow the build before the previous commit showed no errors) Commit: r:2839|slicerrt:2839

2016-05-27, 15:29:45 - Csaba Pinter

Re #115: Fixed linux/mac build error that happened due to use of for each Commit: r:2879|slicerrt:2879

2016-07-06, 21:59:06 - Csaba Pinter

Re #115: Fixed build error (include integrated segmentations logic from beams) Commit: r:2974|slicerrt:2974

2016-07-19, 17:24:49 - Csaba Pinter

Re #115: Updated obsolete CMake macro Commit: r:2986|slicerrt:2986

2016-07-19, 17:27:37 - jchris

+1

2016-07-26, 13:10:07 - Greg Sharp

re #115 Fix build problem due to missing include path Commit: r:3019|slicerrt:3019

2016-07-26, 13:13:37 - Greg Sharp

re #115 Fix build problem due to use of keyword ‘default’ as variable name Commit: r:3020|slicerrt:3020

2016-07-26, 13:16:02 - Greg Sharp

re #115 Fix typo causing undefined operation Commit: r:3021|slicerrt:3021

2016-07-26, 13:28:55 - Csaba Pinter

Re #115: Rename variables related to default value (that caused the linux build error) Commit: r:3022|slicerrt:3022

2016-07-27, 14:17:00 - Csaba Pinter

Re #115: Fix linux build error (last instance of using keyword default as function parameter) Commit: r:3023|slicerrt:3023

2016-08-27, 18:10:42 - Kyle Sunderland

Re #301 #115: Fix errors caused by includes in vtkFractionalImageAccumulate. Commit: r:3075|slicerrt:3075

2016-09-09, 13:33:31 - Csaba Pinter

Re #115: Fix build errors introduced by VTK changes in Slicer

(Slicer commit fixing those is http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=25333) Commit: r:3085|slicerrt:3085

2016-10-23, 00:26:25 - Greg Sharp

Re #115 Fix build problem when overriding default system compiler on linux Commit: r:3096|slicerrt:3096

2016-12-04, 01:03:10 - Csaba Pinter

Re #115: Fixed build error due to recent Slicer core changes Commit: r:3106|slicerrt:3106

2017-05-13, 12:53:51 - Csaba Pinter

Re #115, #822: Update Plastimatch in attempt to fix Mac build error Commit: r:3175|slicerrt:3175

#116 Create a module for DVH comparison

a GUI for the algorithm that we already use for DVH compare for testing

2012-08-08, 15:14:53 - Andras Lasso

milestone_id: changed from null to “SlicerRt-0.3 release”

2012-08-20, 20:08:25 - Andras Lasso

milestone: changed from “SlicerRt-0.3 release” to “Future”

2014-05-08, 17:26:19 - Csaba Pinter

Component: changed from null to “SlicerRt modules”

2014-05-08, 17:26:19 - Csaba Pinter

assigned_to_id: changed from null to “Sunderlandkyl”

2014-05-08, 17:26:19 - Csaba Pinter

milestone_id: changed from “Future” to “SlicerRt 0.15”

2014-05-08, 17:26:19 - Csaba Pinter

status: changed from “New” to “Accepted”

2014-05-08, 17:49:11 - Csaba Pinter

image:ap-Hlq1TKr47e4acwqjQYw

2014-05-08, 17:49:11 - Csaba Pinter

Attachment added: “20140508_DvhComparison_UI.png”

2014-05-09, 16:26:51 - Csaba Pinter

We decided to omit the parameter set node as no scripted modules in Slicer core uses such a node

2014-05-09, 16:58:11 - Kyle Sunderland

Re #116 Adding DvhComparison module. Commit: r:1714|slicerrt:1714

2014-05-21, 20:38:53 - Andras Lasso

Omitting the parameter node is a bad practice. We should not adopt this bad practice but instead fix the bad examples in the Slicer core. Of course having a parameter node may be lower priority than computing correct results, but it should be implemented at some point.

2014-05-21, 21:39:54 - Csaba Pinter

There is not a single python scripted module that uses parameter set node (I checked this on purpose), this is why I told Kyle not to use that. On the other hand, I’m not sure it is established how one should define and use a parameter set node from python. We can ask the guys in Boston if it’s important.

2014-05-22, 01:48:16 - Andras Lasso

if we want to rely on Python-scripted modules then we have to make sure that they have the same quality as loadable and CLI modules. It is essential to be able to save/restore settings and also to be able to use them from C++. Using a parameter node could help in both. Also, parameter nodes are needed for consistency with loadable modules and CLIs.

I agree that it’s not trivial to add a parameter node to a Python-scripted module. Probably using a vtkMRMLNode would work. String and numeric values could be stored in attributes. References to nodes could be stored in node references. An attribute could be added for filtering in the node selector.

Indeed, it could be a good idea to discuss this at the project week. For this, it would be nice to have an example, so it would be great if Kyle could give it a try.

2014-05-22, 11:52:26 - pieper

Hi Guys -

The Editor module uses a parameter node [1] so you could look at that for examples. Also you can experiment with it - you should be able to set the parameter values from mrml and the gui will update, just like other modules. So it is definitely possible.

For the Editor things are extra complicated because of the editor effects and the class hierarchy for the logic and gui parts. But if the goal is simply to serialize the parameter sets for a module and to be able to save and restore them with the scene this is fairly simple to implement, certainly no harder in python than in C++.

Probably we should look at putting a parameter node into the scripted module template and also factoring out as much of the code into a helper class of some kind.

-Steve

[1] http://slicer.org/doc/html/classvtkMRMLScriptedModuleNode.html

2014-05-22, 13:06:52 - wangk

Hi Guys,

I had one question regarding the parameter node used in CLI and loadable modules. I asked this in our hangout meeting but I think I did not make it clear. is it possible to save the parameter node as a single file so it could be loaded into slicer again later? the use case for this is that if I use brainsfit and I found a set of parameters that works for the images I wanted to register, I can save the parameter and later I can use the parameter again in my scripted module or share this parameter with other people. this parameter file could also be stored in a registration case database so people can re-use it.

I think right now the parameter node can be saved as part of the mrml scene when you save the scene. but that is probably too much info. Maybe this could be a project at the project week?

thanks,

Kevin

2014-05-22, 15:53:02 - jchris

Hi Kevin,

is it possible to save the parameter node as a single file so it could be loaded into slicer again later?

I am adding Matt McCormick to the discussion, he worked on the parameter serializer (that have been integrated into SlicerExecutionModel) and I think it is something you could either user directly or need to be extended to support this very valid use case.

For more details, see

https://github.com/Slicer/SlicerExecutionModel/pull/20

and

http://slicer-devel.65872.n3.nabble.com/SlicerExecutionModel-pull-request-Parameter-Serializer-td4029759.html

Maybe this could be a project at the project week?

Definitively. In that case, are you planning on working on this ? Would you be up to take on issue 2922 ? :)

putting a parameter node into the scripted module template [and loadable module template]

Definitively. This is tracked by http://www.na-mic.org/Bug/view.php?id=2922

Thanks

Jc

2014-05-22, 16:07:33 - wangk

Hi Jc and Steve,

Thanks for letting me know about the parameter serializer Matt has worked on. I will take a look into that and see if it meets our needs.

My request is more related to parameter serializer and how to use it in a scripted/loadable module. Issue 2922 is different as it allow scripted/loadable module to have a parameter node. I think Csaba suggested that Kyle (the student) to look into this but I certainly can help at the project week.

Thanks,

Kevin

2014-07-03, 21:10:14 - Kyle Sunderland

Re #116 Added the DVH comparison logic class. Added functionality to the DvhComparison.py widget. Updated vtkSlicerDoseVolumeHistogramModuleLogic.cxx to include reading of csv files. Changed vtkSlicerDoseVolumeHistogramModuleLogicTest1.cxx to use methods from vtkSlicerDoseVolumeHistogramModuleLogic.cxx for csv reading and vtkSlicerDoseVolumeHistogramComparisonLogic.cxx for DVH comparison. Added a missing comma to the EclipseEnt_DvhTable_CERR.csv file. Commit: r:1836|slicerrt:1836

2014-07-28, 14:16:46 - Kyle Sunderland

Re #116 Cosmetic changes to DvhComparison widget. Removed reload and test buttons. Commit: r:1889|slicerrt:1889

2014-07-28, 15:03:55 - Kyle Sunderland

Re #116 Restored reload and test buttons in DvhComparison widget, but left them commented out. Commit: r:1890|slicerrt:1890

2014-07-28, 15:14:52 - Andras Lasso

FYI, a global ‘Developer mode’ flag will be available in Slicer soon, which will allow showing/hiding the reload&test section in Slicer/Application Settings (see https://github.com/Slicer/Slicer/pull/155). Commenting out the reload&test section is a good temporary solution for now.

2014-07-28, 15:30:08 - Csaba Pinter

Thanks, this is what I suggested too.

2014-07-29, 16:20:54 - Csaba Pinter

status: changed from “Accepted” to “Test”

2014-08-18, 00:32:44 - Csaba Pinter

status: changed from “Test” to “Fixed”

#117 Add examples for data manipulation in Python

2012-08-20, 20:06:39 - Andras Lasso

milestone: changed from “SlicerRt-0.3 release” to “Future”

2013-01-23, 17:12:38 - Csaba Pinter

assigned_to_id: changed from null to “mwelch”

2013-01-23, 17:22:15 - Csaba Pinter

milestone_id: changed from “Future” to “SlicerRt 0.8.0 (2013-01)”

2013-01-24, 16:59:58 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.8.0 (2013-01)” to “SlicerRt 0.9.0 (2013-03)”

2013-03-24, 19:57:06 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.9.0 (2013-03)” to “SlicerRt 0.10.0 (2013-04)”

2013-04-03, 21:40:32 - Csaba Pinter

(In r:734|slicerrt:734) Re #117: Added comments to the center of masses python example loading script

2013-04-08, 14:18:01 - Csaba Pinter

(In r:743|slicerrt:743) Re #117: Readme description added for the getTranslationOfCentersOfMasses python example

2013-04-21, 15:53:48 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.10.0 (2013-04)” to “SlicerRt 0.11.0 (2013-05)”

2013-05-07, 13:23:44 - Csaba Pinter

Next example:

Create Patient Hierarchy nodes from regular data

  1. Create Patient and Study nodes
  2. Create CT Series from volume node (need to set UID - it can be anything)
  3. Create Structure Set Series
    • Create ColorTable node
  4. Create Contour (= ROI Subseries on the DICOM level) from labelmap volume node
    • Create Contour node containing the labelmap node
    • Set Referenced Series UID to CT)
    • Put Contour node under Structure Set Series
    • Add new color to color table
  5. Create Contour from Model node

Utility function scripts:

  1. Create labelmap volume based on scalar volume (creates vtkImageData and sets it to a vtkMRMLScalarVolumeNode)
    • Create volume with identical geometry
    • Fill a region (e.g. cube) using color table index foreground color
  2. Create model based on scalar volume (creates vtkPolyData and sets it to a vtkMRMLModelNode)
    • Determine the RAS coordinates of the center of the volume
    • Create a sphere there (use vtkSphereSource)

2013-05-07, 19:10:35 - Mattea Welch

status: changed from “New” to “Accepted”

2013-05-08, 14:30:10 - Mattea Welch

(In r:806|slicerrt:806) re #117: initial code. Creates patient and study nodes. Creates CT series from volume node. Creates structure set series with a colorTable node.

2013-05-09, 18:28:11 - Andras Lasso

(In r:812|slicerrt:812) re #117: Added slicelet example scripts

2013-05-09, 19:59:01 - Andras Lasso

(In r:813|slicerrt:813) re #117: Updated slicelet example scripts for latest Slicer trunk version

2013-05-10, 12:52:37 - Mattea Welch

(In r:834|slicerrt:834) re #117: Created ROI subseries from labelmap volume node, Created ROI subseries from model node. Utility functions still need to be implemented. Node IDs changed to more descriptive strings.

2013-05-17, 17:31:18 - Mattea Welch

(In url:http://www.example.com|slicerrt:834) re #117: fixed function calls to other classes and return values for all function calls. Changed all instances of variables named as ‘ROI_subseries’ to be named ‘contour’. Basic utility function to generate sphere model completed and utility function to generate labelmap started.

2013-05-23, 14:33:36 - Mattea Welch

(In r:846|slicerrt:846) re #117: Fixed first utility function (create labelmap volume based on scalar volume) so that the top quarter of the volume is filled in.

2013-05-28, 19:07:27 - Mattea Welch

(In r:851|slicerrt:851) re #117:

  1. Labelmap utility function now changes black to white and white to black on volume(gray values remain the same).
  2. Model sphere now displayed in associated color from color table node.
  3. CT Series’ DicomLevel now set appropriately (now ‘Series’ not ‘Patient’)
  4. Structure set series not placed in patient hierarchy correctly
  5. CT series now uses appropriate associatedNodeID (uses scene volume node ID, not DICOM ID)

2013-06-03, 20:13:38 - Mattea Welch

url:https://www.assembla.com/code/slicerrt/subversion/commit/864|slicerrt:864 Altered createSamplePatientHierarchyTree.py so that the utility function that generates labelmap now changes the centre cube to be black

Folder createPatientHierarchy contains files needed for scripted module. Module allows user to input patient name and study, as well as select volume used to generate structure sets. Still need to implement function of structure set checkbox that allows user to decide whether the structure sets are created or now.

2013-06-04, 15:33:38 - Csaba Pinter

(In r:867|slicerrt:867) Re #117: Fix issues in CreatePatientHierarchyTree

2013-06-10, 18:58:31 - Mattea Welch

(In r:879|slicerrt:879) re #117 Fixed label map so centre of volume is black and outer edges are white. Fixed naming of nodes.

2013-06-10, 19:49:22 - Csaba Pinter

status: changed from “Accepted” to “Test”

2013-06-10, 21:37:46 - Csaba Pinter

assigned_to_id: changed from “mwelch” to “pinter”

2013-07-02, 23:18:34 - Csaba Pinter

(In r:972|slicerrt:972) Re #117: Script created to automatize a user workflow

2013-07-11, 01:55:44 - Csaba Pinter

status: changed from “Test” to “New”

2013-08-16, 17:39:08 - Csaba Pinter

(In r:1100|slicerrt:1100) Re #117: Added readme to UserWorkflowScripts

2013-08-26, 16:31:55 - Csaba Pinter

(In r:1125|slicerrt:1125) Re #117: Moved all python examples under doc/samples/PythonScripts

2013-08-26, 19:45:35 - Csaba Pinter

(In r:1128|slicerrt:1128) Fixed #117: Cleaned up Mattea’s CreatePatientHierarchyTree module and edited the readme file

2013-08-26, 19:45:35 - Csaba Pinter

status: changed from “New” to “Fixed”

2013-08-26, 20:15:31 - Csaba Pinter

(In r:1129|slicerrt:1129) Re #117: Default input values and a dialog during processing time added to CreatePatientHierarchyTree python sample

#118 Expand/shrink contour by X mm

Make it a loadable module that takes a Contour node as input. Probably no need to support hierarchy nodes.

2012-08-20, 20:05:53 - Andras Lasso

milestone: changed from “SlicerRt-0.3 release” to “Future”

2012-10-22, 20:08:19 - Andras Lasso

assigned_to_id: changed from null to “wangk”

2012-10-22, 20:08:19 - Andras Lasso

component_id: changed from “None” to “SlicerRt modules”

2012-10-22, 20:08:19 - Andras Lasso

description: changed from “- Free editing in editor: n…” to “”

2012-10-22, 20:08:19 - Andras Lasso

summary: changed from “Implement structure set editing tools” to “Expand/shrink ROI by X mm”

2012-10-22, 20:08:52 - Andras Lasso

description: changed from “” to “”

2012-10-22, 20:08:52 - Andras Lasso

milestone_id: changed from “Future” to “SlicerRt 0.7.0 (2012-11)”

2012-10-22, 20:16:04 - Andras Lasso

description: changed from “” to “Make it a loadable module t…”

2012-10-22, 20:16:04 - Andras Lasso

summary: changed from “Expand/shrink ROI by X mm” to “Expand/shrink contour by X mm”

2012-10-22, 20:18:21 - wangk

status: changed from “New” to “Accepted”

2012-11-01, 18:18:57 - wangk

(In r:397|slicerrt:397) Re #118: Initial check-in. Still need to fix the output contour mechanism.

2012-11-05, 20:09:02 - wangk

(In r:415|slicerrt:415) Re #118: Small fix to add newly created labelmap node to the scene.

2012-11-07, 20:09:33 - wangk

(In r:430|slicerrt:430) Re #118: Small bug fix.

2012-11-07, 20:10:46 - wangk

(In r:431|slicerrt:431) Re #118: Small bug fix to check if color node is available in the scene.

2012-11-26, 20:50:10 - wangk

Add more contour morphology operations such as union, intersect and difference.

2012-11-27, 19:57:24 - wangk

(In r:482|slicerrt:482) Re #118: add boolean operation (union/intersect/subtract) to the module. add basic conversion between pixels and mm.

2012-12-12, 19:10:14 - wangk

status: changed from “Accepted” to “Test”

2012-12-23, 20:42:47 - Csaba Pinter

status: changed from “Test” to “Fixed”

2013-01-18, 21:33:14 - wangk

(In r:563|slicerrt:563) Re #118: Change node transformation using a new scheme. Change the labelname of input/output in UI and code. Fix some UI logics.

#119 Build Plastimatch as an external project inside SlicerRt

To allow using Plastimatch algorithms in SlicerRt build Plastimatch as an external project in the SlicerRt build system. Implementation steps:

2012-08-20, 12:46:48 - Andras Lasso

(In r:251|slicerrt:251) re #119: Updated build files according to the SuperBuildLoadableExtensionTemplate. Activated Superbuild by default.

2012-08-20, 15:06:04 - Andras Lasso

(In r:252|slicerrt:252) re #119: Fixed extension packaging and CDash test submission

2012-08-20, 15:14:54 - Andras Lasso

(In r:253|slicerrt:253) re #119: Removed —dep message (it’s in the template but the info it does not seem to be that important to be displayed like this)

2012-08-20, 20:06:21 - Andras Lasso

seems to work well on windows, need to test on linux and mac

2012-08-20, 20:06:21 - Andras Lasso

status: changed from “New” to “Test”

2012-08-22, 16:54:14 - Csaba Pinter

(In r:260|slicerrt:260) Re #119: Renamed Superbuild directory to SuperBuild for case-sensitive linux build

2012-08-22, 18:51:39 - Csaba Pinter

(In r:263|slicerrt:263) Re #119: Fix inner and Plastimatch CMake configuration issues under Linux

2012-08-22, 21:44:31 - Andras Lasso

(In r:265|slicerrt:265) re #119: Fixed build error on linux (wanted to re-build ITK instead of using Slicer’s)

2012-08-23, 15:10:50 - Andras Lasso

(In r:267|slicerrt:267) re #119: Fix Plastimatch download error caused by certificate verification failure

2012-08-27, 14:10:32 - Andras Lasso

milestone_id: changed from “SlicerRt-0.3 release” to “SlicerRt 2012-08”

2012-08-27, 14:28:41 - Andras Lasso

(In r:272|slicerrt:272) re #119: Fixed build warnings (not used Slicer_DIR and Plastimatch_DIR variables). Do not abort the build if Plastimatch is not built successfully.

2012-09-20, 16:09:45 - Csaba Pinter

Updating tickets (#57, #65, #75, #83, #107, #119, #124, #126, #128)

2012-09-20, 16:09:45 - Csaba Pinter

status: changed from “Test” to “Fixed”

#120 Make structure labelmap conversion faster

The rasterization step in DVH computation is quite slow. It may be possible to speed it up by using extents in the conversion (usually the structures are much smaller than the whole volume, so it may mean a great deal in terms of speed).

2015-05-28, 15:34:32 - Csaba Pinter

Only the effective extent is used when rasterizing in the new segmentations infrastructure. This results in speed and memory usage improvement.

2015-05-28, 15:34:32 - Csaba Pinter

milestone_id: changed from “Future” to “SlicerRt 0.17 (Segmentations)”

2015-05-28, 15:34:32 - Csaba Pinter

status: changed from “New” to “Fixed”

2015-05-28, 15:34:32 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

#121 Display scalar bar for dose map

Need to create a ‘fixed’ colormap for this to prevent accidental remapping of colors (see http://www.na-mic.org/Bug/view.php?id=2425). It would be nice to also able to display the colormap in the slice viewers.

2012-08-22, 17:21:10 - wangk

I have talked with Young-Bin Cho and he has given me some ideas and a screen capture. I think we need to coordinate the effort for colormap and isodose line module as they are interconnected. basically they want to show isodose at 100%, 95%, 90%, 50% and a couple more in between 90 and 50. they also want to show hot spots (over 100%) at maybe 2 levels. this isodose line scheme will basically dictate how the colormap looks like.

2013-02-08, 18:06:36 - wangk

This could be partialy achieved now using the current isodose module with scalarbar display. when you import a dose map, go to isodose module, turn on the scalarbar widgets then you have the scalar bar for dose map too. Ideally this should be managed in the colors module but for now it should give you the ability to show scalarbar.

2013-09-06, 18:52:28 - Csaba Pinter

The fixed colormap is used (see ticket #134).

As the color table of each loaded dose volume is created from the default isodose color table, the colors associated to each dose value are the same. We can display scalar bar for the isodose levels (which by default is identical to what can be seen for the dose volume). The only problem is when someone changes the default isodose color table or does window/leveling then the scalar bar will be invalid. Any ideas for this?

2013-09-09, 17:44:02 - Andras Lasso

See http://www.na-mic.org/Bug/view.php?id=2425

2013-09-09, 17:48:14 - Csaba Pinter

Thanks! I made a note of this for myself

2015-01-16, 05:18:14 - Csaba Pinter

Fixed by adding Slice View Annotations http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=23612

2015-01-16, 05:18:14 - Csaba Pinter

status: changed from “New” to “Fixed”

#122 Compute NTCP and TCP metrics

Normal tissue complication probability (NTCP), tumour control probability (TCP)

2013-03-05, 15:29:09 - Csaba Pinter

2013-03-05, 15:29:09 - Csaba Pinter

assigned_to_id: changed from null to “mwelch”

2013-03-05, 15:40:01 - Csaba Pinter

milestone_id: changed from “Future” to “SlicerRt 0.9.0 (2013-03)”

2013-03-24, 19:57:06 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.9.0 (2013-03)” to “SlicerRt 0.10.0 (2013-04)”

2013-04-01, 12:36:20 - Csaba Pinter

(In r:717|slicerrt:717) Re #122: Warkentin2004 article added (describes TCP/NTCP calculations)

2013-04-01, 12:38:37 - Csaba Pinter

It seems that this task is bigger than just applying some formulas on our data. My opinion is that a Radiobiological Modeling module is needed that can compute all the proven TCP and NTCP models from the Warkentin2004 article, and contains the default parameter sets. This module would also compute EUD, so that wouldn’t be a separate module.

2013-04-01, 22:27:59 - Csaba Pinter

(In r:723|slicerrt:723) Re #122: Added references to papers Gay2007 (Simpler version of Warkentin2004 including Matlab source code) and Emami1991 (Basic paper in the field of radiobiological modeling. Contains organ-specific parameters for computations.)

2013-04-04, 16:35:03 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.10.0 (2013-04)” to “SlicerRt 0.11.0 (2013-05)”

2013-04-08, 14:13:40 - Csaba Pinter

assigned_to_id: changed from “mwelch” to null

2013-04-08, 14:13:58 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.11.0 (2013-05)” to “Future”

#123 Compute EUD values for structures

Equivalent uniform dose (EUD)

2012-10-26, 16:36:17 - Csaba Pinter

priority: changed from “Normal (3)” to “High (2)”

2012-10-26, 16:36:31 - Csaba Pinter

priority: changed from “High (2)” to “Normal (3)”

2013-04-01, 12:39:13 - Csaba Pinter

description: changed from “Equivalent normalised dose …” to “Equivalent uniform dose (EUD)”

2013-04-01, 12:41:43 - Csaba Pinter

The Warkentin2004 article contains information about computing this metric. It is used for NTCP computation there, so it may be part of the Radiobiological Modeling module for the time being.

2015-09-10, 14:55:12 - Greg Sharp

milestone_id: changed from “Future” to “SlicerRt 0.18”

2015-09-10, 15:00:52 - Greg Sharp

milestone_id: changed from “SlicerRt 0.18” to “Future”

#124 Create SlicerRtCommon project and move common defines and functions there

Now the DVH module links the DicomRtImport module in order to use its attribute name definitions. It is quite risky so it would be better to have a SlicerRtCommon project, which would contain these attribute name definitions and other functions that are common.

2012-08-27, 14:10:42 - Andras Lasso

milestone_id: changed from “SlicerRt-0.3 release” to “SlicerRt 2012-08”

2012-08-27, 20:15:48 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2012-08-27, 20:15:48 - Csaba Pinter

status: changed from “New” to “Accepted”

2012-08-27, 22:07:50 - Andras Lasso

(In r:277|slicerrt:277) re #124: Fixed linux build problem (undefined reference to ROOT_MODEL_HIERARCHY_NODE_NAME_POSTFIX etc.)

2012-08-27, 22:24:59 - Csaba Pinter

(In r:278|slicerrt:278) Test #124: SlicerRtCommon project created that contains common constants; Test #83: All custom attributes are now prefixed with the module name

2012-08-27, 22:24:59 - Csaba Pinter

status: changed from “Accepted” to “Test”

2012-08-27, 22:54:51 - Andras Lasso

(In r:279|slicerrt:279) re #124: Fixed build error (SlicerRtCommon.h not found)

2012-09-20, 16:09:45 - Csaba Pinter

Updating tickets (#57, #65, #75, #83, #107, #119, #124, #126, #128)

2012-09-20, 16:09:45 - Csaba Pinter

status: changed from “Test” to “Fixed”

#125 Implement PatientHierarchy MRML tree

A PatientHierarchy tree (similar to the ModelHierarchy) is needed, so that the loaded DICOM data can be organized into patient/study/series structure.

This tree implicitly stores connections between certain data objects, such as:

Needed actions:

2012-08-23, 15:24:04 - Csaba Pinter

summary: changed from “Implement PatientHierarchy MRML structure” to “Implement PatientHierarchy MRML tree”

2012-10-26, 16:36:33 - Csaba Pinter

priority: changed from “Normal (3)” to “High (2)”

2012-11-12, 20:56:21 - Csaba Pinter

milestone_id: changed from “Future” to “SlicerRt 0.7.0 (2012-11)”

2012-11-17, 00:01:34 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2012-11-19, 21:39:16 - Csaba Pinter

Idea: vtkMRMLPatientHierarchyNode is a child of vtkMRMLDisplayableHierarchyNode, and vtkMRMLContourHierarchyNode is child of vtkMRMLPatientHierarchyNode. This way the Contour node (and all the DICOM-related data, for example if we create vtkMRMLDICOMImageHierarchyNode or similar, which also is a child of the patient hierarchy node) can be displayed in the Data module in Patient hierarchy node. At the same time, the sub-node type objects can be referenced individually by the modules, that need a Contour or DICOM image type as input/output

Talk about this with Steve and the Slicer gurus at the hangout on Nov 20 4PM. Ask Steve what would be the best approach to arrange the meta data and object connections (e.g. to retrieve all the DICOM tags for a certain node)

2012-11-20, 21:59:11 - Csaba Pinter

Notes from the Slicer hangout:

2012-12-05, 20:30:07 - Csaba Pinter

status: changed from “New” to “Accepted”

2012-12-06, 18:05:56 - Csaba Pinter

(In r:489|slicerrt:489) Re #125: Changed ContourHierarchy class tag to fit the convention

2012-12-08, 21:46:41 - Csaba Pinter

(In r:492|slicerrt:492) Re #125: PatientHierarchy branch directory created

2012-12-08, 21:50:58 - Csaba Pinter

(In r:494|slicerrt:494) Re #125: Patient Hierarchy branch created

2012-12-08, 23:13:32 - Csaba Pinter

(In r:495|slicerrt:495) Re #125: ContourHierarchy node is subclass of the PatientHierarchy node

2012-12-10, 21:20:13 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.7.0 (2012-11)” to “SlicerRt 0.8.0 (2012-12)”

2012-12-20, 22:53:17 - Csaba Pinter

(In r:516|slicerrt:516) Re #125: Clean up vtkSlicerDicomRtReader (make the naming convention consistent (the convention may change but at least now it is consistent), improve readability and clearness)

2012-12-22, 23:09:28 - Csaba Pinter

(In r:519|slicerrt:519) Re #125: RT Dose added to patient hierarchy; Convenience function SlicerRtCommon::IsStringNullOrEmpty created and replaced in all appropriate places

2012-12-24, 21:41:37 - Csaba Pinter

(In r:524|slicerrt:524) Re #125: Add PH nodes for RT objects (missing UIDs need to be handled); Merge from trunk

2012-12-31, 00:15:57 - Csaba Pinter

(In r:532|slicerrt:532) Re #125: Fixed bug: only the first isocenter was added to the PH

2012-12-31, 01:06:05 - Csaba Pinter

(In r:534|slicerrt:534) Re #125: Get and store patient, study and series information for all types of RT objects (and so they are correctly inserted in the PH tree)

2013-01-04, 21:53:11 - Csaba Pinter

(In r:535|slicerrt:535) Re #125: Changes related to making Patient hierarchy non-displayable

2013-01-06, 16:23:24 - Csaba Pinter

(In r:536|slicerrt:536) Re #125: Added missing file

2013-01-06, 17:38:33 - Csaba Pinter

(In r:537|slicerrt:537) Re #125: Structure set color table added to PH

2013-01-21, 00:30:04 - Csaba Pinter

(In r:572|slicerrt:572) Re #125: Moved PatientHierarchy related code from Slicer core (cpinter fork / PH branch) to SlicerRT repository (PH branch). Created PatientHierarchy module skeleton

2013-01-22, 19:29:13 - Csaba Pinter

(In r:575|slicerrt:575) Re #125: Handling the PatientHierarchy insertion in DICOM scalar volume import in a function (addSeriesInHierarchy) that is injected in DICOMScalarVolumePlugin from DicomRtImportPlugin; Re #210: BTX/ETX added to classes that fail to wrap (python errors on startup)

2013-01-23, 22:20:08 - Csaba Pinter

(In r:576|slicerrt:576) Re #125: PatientHierarchy module shows the PatientHierarchy tree in a tree view

2013-01-24, 16:57:39 - Csaba Pinter

With the latest changes in the PatientHierarchy SlicerRT branch and the integration of some minor changes in Slicer trunk, it is no longer needed to build the cpinter/PatientHierarchy Slicer branch.

2013-01-24, 16:59:58 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.8.0 (2013-01)” to “SlicerRt 0.9.0 (2013-03)”

2013-01-24, 17:36:44 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.9.0 (2013-03)” to “SlicerRt 0.8.0 (2013-01)”

2013-01-24, 17:39:11 - Csaba Pinter

I’m closing this ticket, as the basics have been implemented, and the future steps are tracked in separate ticket. There is no need to drag this ticket along for many more months

2013-01-24, 17:39:11 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

2013-02-15, 18:12:48 - Csaba Pinter

(In r:614|slicerrt:614) Re #125: Beam models added to PatientHierarchy tree; RT loading refactored to smaller functions

2013-11-04, 16:35:03 - Csaba Pinter

(In r:1252|slicerrt:1252) Re #125: Patient Hierarchy has been successfully integrated into the trunk

#126 DoseComparison Reference dose is zero by default

The ‘Reference dose (Gy)’ value is set to 0 by default. It is clearly an invalid value but it is not described anywhere what happens if an invalid value is specified (maybe the maximum dose in the dose map is used as reference)? It would be better to have a radiobutton/checkbox to choose what to use as reference dose: maximum dose or custom value. If custom value is selected then the ‘Reference dose (Gy)’ editbox should be shown/enabled.

2012-08-28, 20:54:20 - Csaba Pinter

(In r:280|slicerrt:280) Test #126: Radio button added for selecting custom reference dose value or maximum dose

2012-08-28, 20:54:20 - Csaba Pinter

status: changed from “New” to “Test”

2012-08-28, 20:55:37 - Csaba Pinter

image:c3E7ys8vir4A3tacwqjQWU

2012-08-28, 20:55:37 - Csaba Pinter

Attachment added: “GammaReferenceDoseValueRadioButton.jpg”

2012-09-20, 16:09:45 - Csaba Pinter

Updating tickets (#57, #65, #75, #83, #107, #119, #124, #126, #128)

2012-09-20, 16:09:45 - Csaba Pinter

status: changed from “Test” to “Fixed”

#127 DoseComparison Analysis threshold is disabled

DoseComparison Analysis threshold is disabled. If it’s not implemented yet then hide it and enter a ticket to implement it later. If it’s just a bug then fix it.

2012-08-28, 21:00:24 - Csaba Pinter

It is not implemented in Plastimatch yet (ticket #135 added)

2012-08-28, 21:01:18 - Csaba Pinter

(In r:281|slicerrt:281) Fixed #127: Analysis threshold parameter setting widgets hidden until feature is implemented in Plastimatch (#135)

2012-08-28, 21:01:18 - Csaba Pinter

status: changed from “New” to “Fixed”

#128 DoseComparison transforms are ignored

Transforms that are applied to the input volumes are ignored in the DoseComparison module. At least it should be checked that there are transforms defined between the reference and compare volumes and display a warning/error if there are transforms. A better solution would be to apply the transform.

The resulting volume should be placed under the same transform node as the reference volume.

2012-08-27, 14:40:38 - Csaba Pinter

This module has not been touched since the NA-MIC week, so it’s in a really early phase of development. You would probably find many more bugs. Please wait with reporting all the bugs until I resume working on the original task (#57)

2012-08-27, 14:47:11 - Andras Lasso

OK. I’ve reported the bugs because the module worked quite well already.

2012-08-27, 14:50:52 - Csaba Pinter

So it was better than I expected :) I’ll fix these soon. Thanks for trying!

2012-08-29, 13:54:29 - Csaba Pinter

status: changed from “New” to “Accepted”

2012-08-31, 19:34:28 - Csaba Pinter

(In r:285|slicerrt:285) Re #128: Gamma computation takes the parent transforms into account. There are still issues with certain translation values!; Fixed bug: when there was no selected input node in the dose comparison parameter set but there were volumes in the scene and the combobox selected them automatically on itself, that change was not propagated to the parameter set node

2012-08-31, 20:09:29 - Csaba Pinter

Plastimatch commits:

2012-08-31, 21:21:59 - Csaba Pinter

status: changed from “Accepted” to “Test”

2012-09-20, 16:09:45 - Csaba Pinter

Updating tickets (#57, #65, #75, #83, #107, #119, #124, #126, #128)

2012-09-20, 16:09:45 - Csaba Pinter

status: changed from “Test” to “Fixed”

#129 Hide imported isocenter fiducials by default

Usually multiple isocenter fiducials are placed into the same position, which doesn’t look nice (multiple labels are displayed overlapped). Solve this by setting the visibility of these isocenter fiducials by default.

2012-09-05, 14:38:57 - Andras Lasso

Updating tickets (#59, #33, #112, #131, #25, #129, #115, #81, #114, #113, #111, #38, #137)

2012-09-05, 14:38:57 - Andras Lasso

milestone_id: changed from “SlicerRt 2012-08” to “SlicerRt 2012-09”

2012-09-21, 14:11:01 - Csaba Pinter

assigned_to_id: changed from “lassoan” to “pinter”

2012-09-21, 14:11:47 - Csaba Pinter

(In r:305|slicerrt:305) Fixed #129: RtPlan fiducials are not visible by default

2012-09-21, 14:11:47 - Csaba Pinter

status: changed from “New” to “Fixed”

2012-10-14, 15:25:21 - Csaba Pinter

After the recent changes in the Annotations module, the fiducialNode->SetDisplayVisibility(0); (vtkSlicerDicomRtImportModuleLogic.cxx:511) call doesn’t make the fiducials disappear.

2012-10-14, 15:25:21 - Csaba Pinter

status: changed from “Fixed” to “New”

2012-10-14, 15:25:31 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.5.0 (2012-09)” to “SlicerRt 0.6.0 (2012-10)”

2012-10-14, 20:45:11 - Andras Lasso

Please let Nicole or the slicer-devel mailing list know about this issue.

2012-10-14, 21:32:41 - Csaba Pinter

I updated Slicer (to revision 21181) and the problem was gone. Probably Nicole noticed and fixed it herself.

2012-10-14, 21:32:41 - Csaba Pinter

status: changed from “New” to “Fixed”

2012-11-26, 21:44:33 - Csaba Pinter

The isocenters show up again by default.

2012-11-26, 21:44:33 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.6.0 (2012-10)” to “SlicerRt 0.7.0 (2012-11)”

2012-11-26, 21:44:33 - Csaba Pinter

status: changed from “Fixed” to “New”

2012-12-04, 15:04:33 - Csaba Pinter

status: changed from “New” to “Accepted”

2012-12-04, 16:20:30 - Csaba Pinter

(In r:486|slicerrt:486) Fixed #129: Isocenter fiducials are hidden again after loading

2012-12-04, 16:20:30 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

#130 DVH tests fail due to color table not found

http://slicer.cdash.org/viewTest.php?onlyfailed&buildid=36501

Error: No color table found for structure set ‘All structures’

2012-08-27, 16:58:43 - Csaba Pinter

status: changed from “New” to “Accepted”

2012-08-30, 17:49:53 - Csaba Pinter

Fixed in revision 273

2012-08-30, 17:49:53 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

#131 Migrate Plastimatch Slicer modules to SlicerRt

Migrate Plastimatch Slicer modules to SlicerRt

2012-09-05, 14:38:58 - Andras Lasso

Updating tickets (#59, #33, #112, #131, #25, #129, #115, #81, #114, #113, #111, #38, #137)

2012-09-05, 14:38:58 - Andras Lasso

milestone_id: changed from “SlicerRt 2012-08” to “SlicerRt 2012-09”

2012-09-19, 21:10:08 - Greg Sharp

Hi I’d like to start working on this. Here is my proposal for first stage of development.

1) The first effort considers b-spline registration module only 2a) It should be developed in a separate directory of trunk https://subversion.assembla.com/svn/slicerrt/trunk/Plastimatch 2b) I think this means that plastimatch library gets compiled twice, once for SlicerRt, once for Plastimatch. But I guess that can’t be helped. 3) Separate extension in slicer. 4) This one is already loadable, but I do need revise to match Slicer indentation style.

Thank you -Greg

2012-09-19, 22:17:20 - Andras Lasso

Would you prefer to A. create a separate extension for Plastimatch modules (so that the user can download ‘SlicerRT’ and ‘Plastimatch’) B. have all the modules in one extension ?

Option A. would offer somewhat bigger footprint of RT in the Slicer app store and more separation between SlicerRT and Plastimatch. Option B. has the advantage of being able to share some common infrastructure classes between all the modules, having to maintain only one extension, and building Plastimatch only once (this last one one is really a minor thing).

I tend to prefer B, as I would rather see more integration between SlicerRT and Plastimatch rather than separation, and B has some additional advantages.

2012-09-19, 23:00:14 - Greg Sharp

Yes, I think B is good. Sharing infrastructure classes will be convenient, especially structure set processing.

Therefore, I propose instead this directory.

https://subversion.assembla.com/svn/slicerrt/trunk/SlicerRt/src/PlastimatchBSpline

2012-09-19, 23:25:58 - Andras Lasso

(In r:296|slicerrt:296) re #131: Added all Plastimatch Slicer modules to SlicerRT (they may be moved to a separate repository if that’s preferred). Disabled modules for now: PlmBspline, PlmLandwarp (requires Plastimatch registration), PlmMabs (requires Plastimatch segmentation), PlmSlicerBspline (need to complete the CMake files update to latest Slicer standard)

2012-09-19, 23:29:48 - Andras Lasso

I’ve added all the existing Plastimatch Slicer modules to SlicerRT. We can change this if we decide to distribute them in a separate extension.

Most of them already work, the remaining needs some attention (need to check how to export the registration and segmentation classes from Plastimatch; the loadable module makefiles don’t follow the latest template yet).

2012-09-20, 01:41:30 - Greg Sharp

Excellent thank you Andras. I will work on these over the next week or two.

2012-09-20, 19:29:05 - Greg Sharp

(In r:300|slicerrt:300) Re #131: Disable modules which don’t build due to missing OpenMP linker flags

2012-09-20, 19:49:01 - Andras Lasso

The modules that you disabled (PlmDicomRtExport, PlmDicomRtImport, PlmSynth, PlmXfromwarp) compile and work OK on Windows, with VS2008 compiler. So, you may keep the build enabled for Windows.

2012-09-20, 19:49:45 - Andras Lasso

Greg, I’ve changed the status to ‘Accepted’ that indicates that you actively work on this task (so that nobody else start to working on this).

2012-09-20, 19:49:45 - Andras Lasso

assigned_to_id: changed from “lassoan” to “gregsharp”

2012-09-20, 19:49:45 - Andras Lasso

status: changed from “New” to “Accepted”

2012-09-20, 20:01:50 - Greg Sharp

Ah ok. Thanks! I got mixed up between ‘assigned to’ and ‘accepted’.

Yes, MSVC is fine, this is only gcc issue. I will re-enable windows if a fix is not immediate.

2012-09-20, 20:01:50 - Greg Sharp

assigned_to_id: changed from “gregsharp” to “lassoan”

2012-09-20, 20:26:11 - Greg Sharp

(In r:301|slicerrt:301) Re #131: Add appropriate LDFLAGS to modules which require them to link with OpenMP on gcc

2012-09-20, 20:28:21 - Greg Sharp

(In r:302|slicerrt:302) Re #131: Fix misspelling

2012-09-21, 00:52:21 - Greg Sharp

(In r:303|slicerrt:303) Re #131: Convert DOS EOL to UNIX EOL

2012-09-21, 00:56:13 - Greg Sharp

(In r:304|slicerrt:304) Re #131: First attempt at linking against plmregister

2012-09-25, 14:29:18 - Greg Sharp

(In r:313|slicerrt:313) Re #131: Enable plastimatch bspline clm

2012-09-28, 23:44:13 - Greg Sharp

(In r:321|slicerrt:321) Re #131: Fix header files to match reduced plmsys header file

2012-10-01, 15:53:04 - Greg Sharp

assigned_to_id: changed from “lassoan” to “gregsharp”

2012-10-12, 12:36:54 - Csaba Pinter

Updating tickets (#144, #25, #38, #59, #61, #81, #113, #115, #131, #134, #136, #137, #138, #140, #145, #146)

2012-10-12, 12:36:54 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.5.0 (2012-09)” to “SlicerRt 0.6.0”

2012-10-29, 19:49:00 - Andras Lasso

Move the stable enough experimental modules to the list of regular modules before closing 0.6.0.

2012-10-29, 23:11:30 - Greg Sharp

(In r:386|slicerrt:386) Re #131: Build plastimatch registration library by default; build most important plastimatch modules by default

2012-10-30, 02:12:40 - Greg Sharp

(In r:387|slicerrt:387) Test #131: Fix CLI modules so they don’t build into Slicer build tree any more

2012-10-30, 02:12:40 - Greg Sharp

status: changed from “Accepted” to “Test”

2012-11-12, 21:12:58 - Csaba Pinter

status: changed from “Test” to “Fixed”

#132 Create a skeleton for the ProtonDose module

Loadable module Module name: ProtonDose (Proton Dose) Uses Plastimatch

2012-08-27, 19:07:42 - Csaba Pinter

status: changed from “New” to “Accepted”

2012-08-27, 19:56:32 - Csaba Pinter

(In r:274|slicerrt:274) Fixed #132: Skeleton for ProtonDose module added (it is an experimental module for now)

2012-08-27, 19:56:32 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

2012-08-27, 20:03:05 - Csaba Pinter

(In r:275|slicerrt:275) Fixed #132: Added Plastimatch usage to Proton Dose module; Removed unnecessary target libraries from other modules

#133 Labelmaps created from the same structures have the same name - scene save issue

When labelmaps created from the same structure have the same name (e.g. from different dose maps), and the scene is saved, then the second labelmap overwrites the first one because Slicer saves them with the same name.

A possible solution would be to use the plot name as the labelmap name (e.g. ‘Bladder (2)’ and ‘Bladder (7) [- -]’ instead of ‘Bladder’).

2012-08-31, 21:29:08 - Csaba Pinter

status: changed from “New” to “Accepted”

2012-08-31, 22:08:22 - Csaba Pinter

(In r:286|slicerrt:286) Fixed #133: Labelmaps (and DVH table nodes) are given unique names

2012-08-31, 22:08:22 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

2014-02-24, 13:53:40 - Greg Sharp

Re #133 Fix build problems on linux Commit: r:1536|slicerrt:1536

#134 Load default colormap from file

For dose and gamma volumes load default labelmap from file. The file can be packaged with the extension. The Slicer.ini file can define the file path.

[SlicerRt] DefaultDoseCompareGammaColorTable=SlicerRtGamma01.ctb DefaultDoseColorTable=SlicerRtDose01.ctb

2012-10-12, 12:36:54 - Csaba Pinter

Updating tickets (#144, #25, #38, #59, #61, #81, #113, #115, #131, #134, #136, #137, #138, #140, #145, #146)

2012-10-12, 12:36:54 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.5.0 (2012-09)” to “SlicerRt 0.6.0”

2012-11-05, 21:09:33 - Andras Lasso

milestone_id: changed from “SlicerRt 0.6.0 (2012-10)” to “SlicerRt 0.7.0 (2012-11)”

2012-12-10, 21:26:22 - Csaba Pinter

Updating tickets (#38, #61, #134, #136, #144, #191)

2012-12-10, 21:26:22 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.7.0 (2012-11)” to “SlicerRt 0.8.0 (2012-12)”

2013-01-24, 16:59:58 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.8.0 (2013-01)” to “SlicerRt 0.9.0 (2013-03)”

2013-03-24, 19:57:06 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.9.0 (2013-03)” to “SlicerRt 0.10.0 (2013-04)”

2013-04-04, 16:35:03 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.10.0 (2013-04)” to “SlicerRt 0.11.0 (2013-05)”

2013-06-05, 19:02:30 - Csaba Pinter

status: changed from “New” to “Accepted”

2013-06-07, 14:00:22 - Csaba Pinter

(In r:873|slicerrt:873) Re #134: Default gamma color table created, is deployed correctly, read on startup and set to the created gamma volumes; Switching to new qMRMLNodeComboBox::currentNodeID function (not to use deprecated currentNodeId); All color tables added under ‘SlicerRT’ category; Margins set to thinner in DeformationFieldVisualizer module UI; SlicerRT self tests added under ‘SlicerRT Tests’ category in Testing

2013-06-07, 16:46:48 - Csaba Pinter

The files are now discovered automatically, there is no need to use the settings ini file to store the path. @lassoan: Do you agree? This way it’s not needed to have the QSettings object wrapped for the logic vtk classes.

2013-06-08, 23:48:53 - Csaba Pinter

(In r:875|slicerrt:875) Test #134: Default color table for isodose loaded from file. Dose volumes use a color table generated from the isodose one so that colors belonging to dose levels match; Isodose models added in patient hierarchy (no separate icon yet); Simplifications in isodose logic and widget

2013-06-08, 23:48:53 - Csaba Pinter

status: changed from “Accepted” to “Test”

2013-06-09, 00:21:25 - Csaba Pinter

(In r:876|slicerrt:876) Re #134: Functions that load/create default objects (color nodes or the structure set) moved to more suitable SetMRMLSceneInternal method. This way the functions are called only when a new scene is set, not after every batch process etc.

2013-06-11, 00:48:44 - Csaba Pinter

(In r:882|slicerrt:882) Re #134: Fixed minor bugs related to isodose and dose color tables

2013-06-11, 00:54:24 - Csaba Pinter

There is a build error on Linux in SlicerRtCommon.cxx related to vtkDiscretizableColorTransferFunction, that needs to be fixed. The linker cannot find libvtkFiltering.so file.

@gregsharp: As you use linux, please don’t update until I have fixed it. Or if you already know what is exactly wrong, then you can go ahead and fix this. Anyway, I’m doing it tomorrow for sure.

2013-06-11, 00:54:24 - Csaba Pinter

status: changed from “Test” to “Accepted”

2013-06-11, 16:13:33 - Csaba Pinter

(In r:883|slicerrt:883) Test #134: Fixed Linux build error due to vtkDiscretizableColorTransferFunction (also fixed a linux build warning)

2013-06-11, 16:13:33 - Csaba Pinter

status: changed from “Accepted” to “Test”

2013-06-11, 16:31:45 - Csaba Pinter

@gregsharp: The linux build is good now.

2013-06-11, 19:38:58 - Csaba Pinter

(In r:885|slicerrt:885) Re #134: Fixed bug when dose color map was not saved with scene, thus not loaded back either

2013-06-13, 00:33:55 - Csaba Pinter

(In r:891|slicerrt:891) Re #134: Fixed crash when closing scene

2013-06-13, 19:37:24 - Csaba Pinter

(In r:893|slicerrt:893) Re #283: Evaluate isocenter shifting workflow works; Re #134: Accumulated dose volume is also displayed with the dose color table

2013-07-03, 19:48:35 - Csaba Pinter

(In r:973|slicerrt:973) Re #134: Extension logo replaced with one that shows the new default dose colormap

2013-07-03, 19:49:29 - Csaba Pinter

(In r:974|slicerrt:974) Re #134: Version number removed from extension logo file names

2013-07-04, 19:14:25 - Csaba Pinter

status: changed from “Test” to “Fixed”

#135 Re-enable analysis threshold setting in Dose comparison when it is implemented in Plastimatch

Analysis threshold (a parameter for gamma dose comparison) is not yet implemted in Plastimatch (see http://plastimatch.org/doxygen/classGamma__dose__comparison.html). Make the widget visible when they implement it.

2012-10-26, 16:40:30 - Csaba Pinter

priority: changed from “Normal (3)” to “Low (4)”

2013-11-03, 15:38:32 - Csaba Pinter

Fixed in revision 907

2013-11-03, 15:38:32 - Csaba Pinter

status: changed from “New” to “Fixed”

2013-11-03, 15:38:44 - Csaba Pinter

milestone_id: changed from “Future” to “SlicerRt 0.12”

#136 Add proton dose computation module

The algorithm is in Plastimatch. We should just add a GUI here.

2012-09-23, 01:51:58 - Csaba Pinter

(In r:309|slicerrt:309) Re #137: DVH module uses contour node (it still does the labelmap conversion because it uses an intermediate step - the stenciled dose volume - and it is much simpler and somewhat faster and more memory effient this way); Re #136: Proton dose module widget test failed due to too large minimum width (size policy issue); DicomRtImport python test passes (still does nothing)

2012-10-01, 15:51:59 - Greg Sharp

status: changed from “New” to “Accepted”

2012-10-12, 12:36:54 - Csaba Pinter

Updating tickets (#144, #25, #38, #59, #61, #81, #113, #115, #131, #134, #136, #137, #138, #140, #145, #146)

2012-10-12, 12:36:54 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.5.0 (2012-09)” to “SlicerRt 0.6.0”

2012-11-12, 21:13:04 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.6.0 (2012-10)” to “SlicerRt 0.7.0 (2012-11)”

2012-12-10, 21:26:22 - Csaba Pinter

Updating tickets (#38, #61, #134, #136, #144, #191)

2012-12-10, 21:26:22 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.7.0 (2012-11)” to “SlicerRt 0.8.0 (2012-12)”

2013-01-24, 16:59:58 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.8.0 (2013-01)” to “SlicerRt 0.9.0 (2013-03)”

2013-02-21, 09:39:02 - maxime.desplanques

(In r:637|slicerrt:637) Re #136: Improve user interface for proton dose calculation module

2013-03-24, 19:57:06 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.9.0 (2013-03)” to “SlicerRt 0.10.0 (2013-04)”

2013-03-28, 22:35:56 - Greg Sharp

milestone_id: changed from “SlicerRt 0.10.0 (2013-04)” to “Future”

2013-05-01, 13:16:39 - Greg Sharp

(In r:796|slicerrt:796) Re #136: Convert file from UTF-16 to ASCII

2013-05-10, 00:16:20 - maxime.desplanques

(In r:814|slicerrt:814) Re #136: Improve user interface for proton dose calculation module

2013-05-11, 22:31:52 - Greg Sharp

(In r:817|slicerrt:817) Re #136: Make ProtonBeams module compile

2013-05-11, 23:37:00 - Greg Sharp

(In r:818|slicerrt:818) Re #136: Make ProtonDose module compile

2013-05-15, 23:45:13 - Greg Sharp

(In r:830|slicerrt:830) Re #136: Modify ExternalBeamPlanning to use stackedWidget for display of proton-specific parameters.

2013-05-17, 22:31:36 - Greg Sharp

(In r:835|slicerrt:835) Re #136: Add target contour selection ExternalBeamPlanning module

2013-05-18, 18:25:36 - Greg Sharp

(In r:838|slicerrt:838) Re #136: Add code to prepare reference volume and target contour for use by plastimatch

2013-05-18, 18:25:36 - Greg Sharp

Story Level: changed from null to “Story”

2013-05-21, 03:32:30 - Greg Sharp

(In r:840|slicerrt:840) Re #136: Add skeleton code for computing aperture and range compensator, and adding them to the mrml scene

2013-05-21, 03:32:30 - Greg Sharp

Story Level: changed from null to “Story”

2013-05-21, 03:34:16 - Greg Sharp

(In r:841|slicerrt:841) Re #136: Bump required plastimatch version

2013-05-21, 03:34:16 - Greg Sharp

Story Level: changed from null to “Story”

2013-06-10, 03:15:01 - Greg Sharp

(In r:878|slicerrt:878) Re #136 Aperture and range compensator images are now correctly returned to Slicer

2013-07-14, 22:36:43 - Greg Sharp

(In r:1011|slicerrt:1011) Re #136 Update plastimatch version to allow automatic proton SOBP optimization

2013-07-14, 22:39:26 - Greg Sharp

(In r:1012|slicerrt:1012) Re #136 Oops, off-by-one on the version

2013-07-15, 00:09:55 - Greg Sharp

(In r:1013|slicerrt:1013) Re #136 First semi-working version of proton dose calculation

2013-07-16, 21:58:29 - Greg Sharp

(In r:1020|slicerrt:1020) Re #136 probable fix for plastimatch build error on windows

2013-07-25, 23:47:09 - Greg Sharp

(In r:1036|slicerrt:1036) Re #136 Update user interface for ExternalBeamPlanning

2013-07-26, 23:26:24 - Greg Sharp

(In r:1037|slicerrt:1037) Re #136 Proton dose calculation now respects gantry angle slider

2013-07-26, 23:30:37 - Greg Sharp

(In r:1038|slicerrt:1038) Re #136 Add new widgets for smearing, proximal margin, and distal margin

2013-07-27, 18:17:09 - Greg Sharp

(In r:1039|slicerrt:1039) Re #136 Implement aperture smearing for proton dose calculation

2013-07-27, 19:07:45 - Greg Sharp

(In r:1040|slicerrt:1040) Re #136 Implement proximal and distal margins for proton dose calculation

2013-07-28, 18:37:15 - Greg Sharp

(In r:1041|slicerrt:1041) Re #136 Add skeleton widgets for beam modeling UI

2013-09-06, 15:29:54 - jdphllps

(In r:1143|slicerrt:1143) Re #136: Implemented WED calculation into External Beam Planning module.

2013-09-06, 16:51:39 - Csaba Pinter

(In r:1144|slicerrt:1144) Re #136: Fix build error

2013-09-06, 18:52:54 - Csaba Pinter

priority: changed from “Normal (3)” to “High (2)”

2013-09-06, 21:16:09 - Greg Sharp

@jdphllps Justin, can you look why Csaba got a build error? I wonder if you might have tested using a different version of plastimatch.

2013-10-30, 22:49:24 - Greg Sharp

(In r:1243|slicerrt:1243) Re #136 Add missing error message to ExternalBeamPlanning

2013-12-21, 17:54:33 - Csaba Pinter

Is this really high priority? If it is, then it shouldn’t be in the Future (=’someday, maybe’) milestone.

2014-02-24, 20:51:10 - Greg Sharp

Re #136 Update ExternalBeamPlanning to use Plm_image instead of ITK image Commit: r:1538|slicerrt:1538

2014-07-02, 18:21:13 - wangk

milestone_id: changed from “Future” to “SlicerRt 1.0”

2014-07-04, 13:11:29 - wangk

Re #136: Updated EBP module interface to better suit both photon and proton beam models as well as rearranging some other GUI interface items. Connected dose calculation part so it is now functioning. Commit: r:1840|slicerrt:1840

2014-07-04, 13:16:20 - wangk

Component: changed from null to “SlicerRt modules”

2014-07-04, 13:16:37 - wangk

Estimate: changed from “Small” to “Large”

2014-07-04, 13:16:37 - wangk

Sum of Child Estimates: changed from “2.0” to “8.0”

2014-07-08, 20:42:34 - maxime.desplanques

Re #136 External Beam Proton dose calculation has flavors and updates about the isocenter calculation Commit: r:1851|slicerrt:1851

2014-07-08, 22:03:45 - Greg Sharp

Re #136 Improve interpretation of itk image returned from plastimatch dose calculation Commit: r:1853|slicerrt:1853

2014-07-11, 22:48:40 - Greg Sharp

Re #136 Add function to rescale dose Commit: r:1857|slicerrt:1857

2014-07-14, 23:39:21 - maxime.desplanques

Re #136 hooking up the dose calculation interface to plastimatch algorithms Commit: r:1862|slicerrt:1862

2014-07-15, 18:23:12 - wangk

Re #136: Bump plastimatch version number to fix the compilation error. Commit: r:1863|slicerrt:1863

2014-07-15, 18:25:22 - wangk

Re #136: Made MLC optional for beam creation. This simplifies the proton dose calculation. Also made style changes to some files according to SlicerRT style guide.

Commit: r:1864 slicerrt:1864

2014-07-16, 14:53:43 - wangk

Re #136: Make tab pages visible/invisible according to radiationType(machine type).

Commit: r:1866 slicerrt:1866

2014-07-16, 18:06:58 - wangk

Re #136: Fixed the tablewidget UI bug for beam selection. now only one beam is select all the time. Also fixed small bug that gantry angle change does not affect the beam visualization.

Commit: r:1867 slicerrt:1867

2014-07-18, 01:58:33 - Greg Sharp

Re #136 Elimitate redundant conversions of reference image; clean up code a bit Commit: r:1869|slicerrt:1869

2014-07-18, 02:10:25 - Greg Sharp

Re #136 Fix accidental code deletion Commit: r:1870|slicerrt:1870

2014-07-18, 02:11:31 - Greg Sharp

Re #136 Another dumb error. Commit: r:1871|slicerrt:1871

2014-07-18, 02:22:27 - Greg Sharp

Re #136 Make the composite dose automatically appear as the foreground image Commit: r:1872|slicerrt:1872

2014-07-18, 18:55:08 - Greg Sharp

Re #136 Make composit dose look pretty on the screen Commit: r:1873|slicerrt:1873

2014-07-23, 17:36:46 - Greg Sharp

Re #136 Let proton beam use the full geometry tab Commit: r:1885|slicerrt:1885

2014-08-05, 00:12:36 - Greg Sharp

Re #136 Weekend update, including several UI bug fixes Commit: r:1917|slicerrt:1917

2014-12-04, 21:16:03 - Greg Sharp

Re #136 Bump plastimatch version and re-stub dose calculation Commit: r:2053|slicerrt:2053

2015-07-27, 14:49:48 - Csaba Pinter

milestone_id: changed from “SlicerRt 1.0” to “SlicerRt 0.19”

2015-08-05, 15:46:03 - Greg Sharp

Re #136 Update to new plastimatch version Commit: r:2387|slicerrt:2387

2015-11-04, 17:52:31 - Greg Sharp

Re #136 Bump plastimatch version and harmonize code Commit: r:2485|slicerrt:2485

2015-12-16, 23:11:59 - Greg Sharp

milestone_id: changed from “SlicerRt 0.19” to “SlicerRt 0.18”

2015-12-17, 00:16:29 - Greg Sharp

Fixed #136 newly created beams copy attributes from current beam Commit: r:2545|slicerrt:2545

2015-12-17, 00:16:29 - Greg Sharp

status: changed from “Accepted” to “Fixed”

2015-12-23, 18:24:37 - maxime.desplanques

Re #136 Fixed Windows bugs Commit: r:2546|slicerrt:2546

2015-12-23, 22:52:48 - Greg Sharp

Re #136 Several bug fixes for beam table in UI Commit: r:2547|slicerrt:2547

#137 Create MRML node that bundles the different contour representations

1. Create vtkMRMLContourNode that is a sub-class of vtkMRMLDisplayableNode, thus can be grouped under a vtkMRMLDisplayableHierarchyNode.

It contains references to MRML nodes representing the different data types a contour can have:

When a certain representation is requested, then it automatically converts the existing representation into the requested one. If a representation changes (e.g. labelmap is edited manually), then all the other representations are deleted (and re-converted automatically later when needed)

This node should be in the SlicerRtCommon project. The conversion algorithms should be moved there too. The proper way to reference to a MRML node from another MRML node is described on the BMC wiki

2. Create Contours module that allows handling and editing properties of contour nodes

Properties: default representation (that we want to edit and keep in the scene)

2012-09-04, 21:20:46 - Csaba Pinter

description: changed from “Create vtkMRMLContourNode t…” to “1. Create vtkMRMLContourNod…”

2012-09-04, 21:21:25 - Csaba Pinter

description: changed from “1. Create vtkMRMLContourNod…” to “*1. Create vtkMRMLContourNo…”

2012-09-05, 14:38:58 - Andras Lasso

Updating tickets (#59, #33, #112, #131, #25, #129, #115, #81, #114, #113, #111, #38, #137)

2012-09-05, 14:38:58 - Andras Lasso

milestone_id: changed from “SlicerRt 2012-08” to “SlicerRt 2012-09”

2012-09-05, 23:02:07 - Csaba Pinter

(In r:290|slicerrt:290) Re #137: Skeleton of the contour node created; vtkPolyDataToLabelmapFilter moved to SlicerRtCommon; SlicerRtCommon is built as a static library

2012-09-21, 19:28:41 - Csaba Pinter

(In r:307|slicerrt:307) Re #137: Contour node is created when structure set is loaded

2012-09-21, 21:49:13 - Andras Lasso

Use cases:

Questions:

Decisions:

2012-09-21, 21:49:13 - Andras Lasso

status: changed from “New” to “Accepted”

2012-09-23, 01:51:58 - Csaba Pinter

(In r:309|slicerrt:309) Re #137: DVH module uses contour node (it still does the labelmap conversion because it uses an intermediate step - the stenciled dose volume - and it is much simpler and somewhat faster and more memory effient this way); Re #136: Proton dose module widget test failed due to too large minimum width (size policy issue); DicomRtImport python test passes (still does nothing)

2012-09-23, 21:32:30 - Csaba Pinter

(In r:310|slicerrt:310) Re #137: WIP Contours module added

2012-09-24, 13:50:37 - Csaba Pinter

(In r:311|slicerrt:311) Re #137: Added missing files

2012-09-25, 14:14:41 - Csaba Pinter

(In r:312|slicerrt:312) Re #137: Fixed representation type setting

2012-09-26, 18:06:39 - Csaba Pinter

(In r:314|slicerrt:314) Re #137: WIP Representation selector combobox behavior added; Downsampling factor added on GUI

2012-09-26, 20:12:21 - Csaba Pinter

(In r:315|slicerrt:315) Re #137: Handle parameter changes in Contours module widget; Add series name as attribute to the contour hierarchy node

2012-09-26, 22:21:27 - Csaba Pinter

(In r:316|slicerrt:316) Re #137: WIP Conversion from model representations to indexed labelmap works (there are small bugs)

2012-09-27, 20:37:49 - Csaba Pinter

(In r:318|slicerrt:318) Re #137: Ribbon->IndexedLabelmap conversion works as intended (fixed some bugs related to visibility); Scene save/load bugs fixed

2012-10-02, 20:31:20 - Csaba Pinter

(In r:332|slicerrt:332) Re #137: Fixed node selection and warning display bugs in Contour module; Changed color of warning message to be mode readable (to a darker orange than it was)

2012-10-05, 20:59:08 - Csaba Pinter

(In r:343|slicerrt:343) Re #137: Fix GUI and conversion bugs in Contours module

2012-10-09, 19:45:41 - Csaba Pinter

(In r:349|slicerrt:349) Re #137: Volumes are displayed in cc, T+ etc in percents; Conversions from string to numbers use streams

2012-10-12, 12:36:54 - Csaba Pinter

Updating tickets (#144, #25, #38, #59, #61, #81, #113, #115, #131, #134, #136, #137, #138, #140, #145, #146)

2012-10-12, 12:36:54 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.5.0 (2012-09)” to “SlicerRt 0.6.0”

2012-10-16, 17:03:11 - Csaba Pinter

(In r:358|slicerrt:358) Re #137: WIP Labelmap to closed surface model conversion

2012-10-17, 21:13:22 - Csaba Pinter

(In r:362|slicerrt:362) Re #137: WIP Labelmap to closed surface model conversion

2012-10-17, 22:34:06 - Csaba Pinter

(In r:363|slicerrt:363) Re #137: Labelmap is converted to closed surface model (need to fix color and position issues)

2012-10-18, 15:25:03 - Csaba Pinter

(In r:364|slicerrt:364) Re #137: Labelmap is converted correctly to closed surface model

2012-10-18, 17:24:16 - Csaba Pinter

(In r:365|slicerrt:365) Re #137: Labelmap color index bug fixed (it was always 1)

2012-10-19, 18:04:54 - Csaba Pinter

(In r:369|slicerrt:369) Re #137: DVH computation uses the representation conversion in the Contour node

2012-10-19, 21:02:29 - Csaba Pinter

(In r:371|slicerrt:371) Re #137: Completely hide the representations other than the active one (Note: the labelmaps still show up in the ‘background’ drop-down of the slice viewers, but not in the labelmap dropdown)

2012-10-19, 21:56:04 - Csaba Pinter

(In r:372|slicerrt:372) Re #137: Conversion directly from ribbon model to closed surface model is supported

2012-10-23, 21:20:37 - Csaba Pinter

status: changed from “Accepted” to “Test”

2012-10-23, 22:15:12 - Csaba Pinter

(In r:376|slicerrt:376) Re #137: Active representation is indicated on the Contours module UI

2012-10-24, 14:08:56 - Andras Lasso

Minor things about the GUI controls in the ‘Change active representation’ section, I didn’t want to enter a new ticket for these:

2012-10-24, 14:08:56 - Andras Lasso

status: changed from “Test” to “Accepted”

2012-10-24, 22:49:48 - Csaba Pinter

(In r:379|slicerrt:379) Test #137: Minor GUI changes according to Andras’ suggestions

2012-10-24, 22:49:48 - Csaba Pinter

status: changed from “Accepted” to “Test”

2012-11-02, 22:16:05 - Csaba Pinter

(In r:409|slicerrt:409) Test #137: Contour node and ContourHierarchy node moved from SlicerRtCommon to Contours/MRML

2012-11-12, 21:13:00 - Csaba Pinter

status: changed from “Test” to “Fixed”

#138 Automatic test for Dose Accumulation module

Regression test for Dose Accumulation that computes accumulated doses using different inputs and checks the output.

2012-09-28, 14:08:38 - wangk

assigned_to_id: changed from null to “wangk”

2012-09-28, 14:08:38 - wangk

status: changed from “New” to “Accepted”

2012-10-01, 15:10:01 - wangk

(In r:322|slicerrt:322) Re #138: Added test code for Dose Accumulation module. Clean up the code in vtkSlicerDoseAccumulationLogic.

2012-10-01, 15:11:05 - wangk

(In r:323|slicerrt:323) Re #138: Added test data for Dose Accumulation module. The test passes now but is not complete.

2012-10-02, 15:52:31 - wangk

(In r:328|slicerrt:328) Re #138: Updated the testing code. Now it compares the accumulated dose with the baseline dose.

2012-10-04, 17:19:19 - wangk

status: changed from “Accepted” to “Test”

2012-10-12, 12:36:54 - Csaba Pinter

Updating tickets (#144, #25, #38, #59, #61, #81, #113, #115, #131, #134, #136, #137, #138, #140, #145, #146)

2012-10-12, 12:36:54 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.5.0 (2012-09)” to “SlicerRt 0.6.0”

2012-11-12, 21:13:16 - Csaba Pinter

status: changed from “Test” to “Fixed”

#139 Scalar bar show-hide method is not exposed by the Color module

The Color module in the Slicer core does not expose the scalar bar show-hide method. Need to add it there (and maybe some more functions that allow the selection of a color table as the current table). Some more improvements would be needed in the color module as well:

2012-09-19, 21:58:10 - Andras Lasso

description: changed from “The Color module in the Sli…” to “The Color module in the Sli…”

2013-02-08, 17:55:53 - wangk

Andras,

first of all, there is scalarbar show/hide checkbox in the color module.

to address some issues you listed above, i.e.

I have created a slicer ticket http://na-mic.org/Mantis/view.php?id=2919

I have pushed the topic to github and hopefully Nicole will integrate that into slicer soon.

2013-02-08, 17:57:35 - wangk

I have also update the isodose module to address the issue:

Now scalar bar is shown in both 3D and slice viewers.

2015-09-10, 14:55:12 - Greg Sharp

milestone_id: changed from “Future” to “SlicerRt 0.18”

2015-09-10, 15:01:06 - Greg Sharp

milestone_id: changed from “SlicerRt 0.18” to “Future”

#140 Automatic test for Isodose module

Create the automatic test for isodose module. add test data.

2012-09-28, 13:55:24 - wangk

assigned_to_id: changed from null to “wangk”

2012-09-28, 13:56:24 - wangk

milestone_id: changed from null to “SlicerRt 0.5.0 (2012-09)”

2012-09-28, 13:56:49 - wangk

status: changed from “New” to “Accepted”

2012-09-28, 13:58:57 - wangk

(In r:319|slicerrt:319) Re #140: Add the isodose module test code. it passes the test for now. it is only partially functioning. need to find a way to compare the resulting isosurface with baseline. also fixed some problems in vtkMRMLIsodoseNode

2012-09-28, 14:00:20 - wangk

(In r:320|slicerrt:320) Re #140: Add the isodose module test data. Maybe we should have a common data directory to hold all the test data just like VTK.

2012-09-28, 17:50:27 - Csaba Pinter

I was thinking about the same thing. It would probably be a good idea to create a common Data directory. If you plan do it yourself, please remember to use the SVN move command instead of just deleting it from the repo and adding them back another place. But you can just add a ticket for this and either of us can do it later.

2012-09-28, 17:54:46 - wangk

Thanks Csaba. I have created a new ticket #141.

2012-10-01, 15:11:57 - wangk

(In r:324|slicerrt:324) Re #140: Fixed a bug in vtkSlicerIsodoseLogic code.

2012-10-01, 17:07:12 - wangk

(In r:325|slicerrt:325) Re #140: Remove all the debugging code.

2012-10-02, 19:32:58 - wangk

(In r:330|slicerrt:330) Re #140: Added baseline isosurface vtkpolydata file.

2012-10-02, 19:34:43 - wangk

(In r:331|slicerrt:331) Re #140: Added comparison with baseline vtkpolydata surface model. Only computes one isodose level for now. the test passes.

2012-10-04, 17:19:34 - wangk

status: changed from “Accepted” to “Test”

2012-10-12, 12:36:54 - Csaba Pinter

Updating tickets (#144, #25, #38, #59, #61, #81, #113, #115, #131, #134, #136, #137, #138, #140, #145, #146)

2012-10-12, 12:36:54 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.5.0 (2012-09)” to “SlicerRt 0.6.0”

2012-10-17, 14:53:35 - wangk

(In r:361|slicerrt:361) Re #140: Fixed failed isodose autotest by updating the new isodose vtkpolydata file. Also changed the ‘VolumeDifferenceCriterion’ to ‘VolumeDifferenceToleranceCc’.

2012-10-29, 15:47:13 - Csaba Pinter

(In r:384|slicerrt:384) Re #140: Small cleanup in attempt to fix the test that sometimes fails with ‘vtkMRMLScene (0x10c3cd8d0): RemoveReferencedNodeID: either id is null or the reference node is null.’

2012-11-07, 20:06:36 - wangk

(In r:428|slicerrt:428) Re #140: Small bug fix for setting incorrect output model id.

2012-11-07, 20:08:20 - wangk

(In r:429|slicerrt:429) Re #140: Small bug fix for setting correct VolumeDifferenceToleranceCc in the cmakelist.txt.

2012-11-12, 21:14:36 - Csaba Pinter

status: changed from “Test” to “Fixed”

#141 Create a common test data directory for all the modules test data.

New location: SlicerRt\src\ esting\Data

Adjust relative paths to point to new location in scene

Remove EclipseBreast test in DoseVolumeHistogram

2013-09-11, 15:55:34 - Adam Rankin

Component: changed from null to “SlicerRt modules”

2013-09-11, 15:55:34 - Adam Rankin

assigned_to_id: changed from null to “rankin”

2013-09-11, 15:55:34 - Adam Rankin

summary: changed from “Create a comon test data directory for all the modules test data.” to “Create a common test data directory for all the modules test data.”

2013-09-11, 15:55:34 - Adam Rankin

description: changed from “remember to use svn move co…” to “New location: SlicerRt\src\…”

2013-09-11, 15:55:34 - Adam Rankin

milestone_id: changed from “Future” to “SlicerRt 0.12”

2013-09-12, 14:28:28 - Adam Rankin

(In r:1148|slicerrt:1148) test #141 Refactoring all test data into a common directory

re #161 created the skeleton for the dose comparison test

@pinter can you verify that you are happy with the file naming?

2013-09-12, 14:28:28 - Adam Rankin

status: changed from “New” to “Test”

2013-09-12, 14:31:17 - Adam Rankin

assigned_to_id: changed from “rankin” to “pinter”

2013-09-12, 15:32:17 - Csaba Pinter

The data files look good, except that there are two files which might be the same: EclipseProstate_Dose.nrrd and EclipseProstate_RTDOSE.nrrd. If they are the same, then keep only one, if they are different, then indicate the purpose of the second one in the filename. One little thing is the color table file names where the dataset name appears both at the beginning and at the end of them (e.g. EclipseEnt_ColorTable_EclipseEnt.ctbl), but it’s not a big deal. Also please make the baseline files’ names the same style (basically EclipseProstate_IsodoseBaseline.vtk -> EclipseProstate_Isodose_Baseline.vtk).

However I’d name the scene files like this [FullModuleName]_[DatasetName]_Scene.mrml

Thanks!

2013-09-12, 15:37:45 - Adam Rankin

The diff between RTDOSE and Dose is:

line 12: space origin: (-162.82601869999996,-105.01686339999996,-122.49999999999997) space origin: (-162.82601928710937,-105.01686096191405,-122.49999999999999)

Is this close enough to consider them the same?

2013-09-12, 18:10:33 - Adam Rankin

The test that used RTDOSE volume still passes with Dose volume. I will consider it safe.

2013-09-12, 19:04:58 - Adam Rankin

(In r:1149|slicerrt:1149) re #141 renaming files to match pattern, removing duplicate dose volume

re #238 completing automatic test for dose comparison, compare result against a baseline

stripping dose comparison scene of all extraneous nodes

2013-09-12, 19:48:17 - Csaba Pinter

I answered to your question in email and apparently it didn’t appear here, sorry!

So a difference in the origin in the magnitude of 10^-5 mm is negligible. Please remove the file EclipseProstate_RTDOSE.nrrd

2013-09-12, 19:58:07 - Adam Rankin

(In r:1151|slicerrt:1151) re #141 removing extraneous file

2013-09-12, 19:59:38 - Csaba Pinter

status: changed from “Test” to “Fixed”

#142 Isodose colors in 2d view do not match 3d view

The colors seen in 3d view match user’s specification, but colors in 2d view do not. They are shown in the reverse order.

This was tested on linux 64-bit. Screenshot attached.

2012-10-01, 15:47:28 - Greg Sharp

image:bn45kKc98r4PwWacwqEsg8

2012-10-01, 15:47:28 - Greg Sharp

Attachment added: “Screenshot-4.png”

2012-10-01, 15:50:04 - Csaba Pinter

It’s good that you added this ticket, because I tried to fix it but I couldn’t. I have no idea why they don’t match but it would be important that they do.

2012-10-01, 17:10:12 - wangk

Yes. I tried to find the problem once but could not. I will come back to this bug once I am done with isodose and dose accumulation testing code.

2012-10-03, 19:54:10 - wangk

I think I have figured out the problem. If the surface model contains any normal data, it will be used to display in the 2D viewer no matter if the scalars visible checkbox is on or off. That is why when import structure set using dicom-rt import, it is always correct since no normal data will be computed. but in the isodose module, normals are computed and it is used for coloring the isolines. This is more like a slicer core issue and should be reported to slicer bug tracker.

2012-10-03, 19:54:10 - wangk

component_id: changed from “None” to “SlicerRt modules”

2012-10-03, 19:54:10 - wangk

milestone_id: changed from null to “Future”

2012-10-04, 16:12:19 - wangk

assigned_to_id: changed from null to “wangk”

2012-10-04, 16:12:19 - wangk

milestone_id: changed from “Future” to “SlicerRt 0.5.0 (2012-09)”

2012-10-04, 16:12:19 - wangk

status: changed from “New” to “Accepted”

2012-10-04, 16:15:17 - wangk

(In r:336|slicerrt:336) Re #142: Fixed the isodose color in 2d viewer. It probably has something to do with the scalar and normals computation. Once I modified the pipeline to generate the polydata, it works fine now. I guess slicer requires certain properties to be properly computed for vtkpolydata in order for the 2D viewer to display the intersection correctly.

2012-10-04, 16:16:11 - wangk

status: changed from “Accepted” to “Test”

2012-10-04, 17:01:34 - Csaba Pinter

It works well. Thanks, Kevin!

2012-10-04, 17:01:34 - Csaba Pinter

status: changed from “Test” to “Fixed”

#143 Multiple isodose sets: one for each dose volume

It would be nice to support multiple isodoses, one for each dose volume. The isodose should be a child node of a dose image. Then, when you display a dose image, the isodose associated with that dose image gets displayed. Switching between different doses would show different isodoses.

2012-10-03, 19:54:52 - wangk

component_id: changed from “None” to “SlicerRt modules”

2012-10-03, 19:54:52 - wangk

milestone_id: changed from null to “Future”

2012-10-26, 16:40:13 - Csaba Pinter

This could be a feature of the PatientHierarchy (see #125)

#144 Linux generic tests fail

Generic tests fail randomly under Linux (e.g. http://slicer.cdash.org/viewTest.php?buildid=41461)

Update: generic tests fail due to X server availability on our virtual machines

2012-10-02, 18:15:13 - Csaba Pinter

priority: changed from “Normal (3)” to “High (2)”

2012-10-02, 18:15:13 - Csaba Pinter

status: changed from “New” to “Accepted”

2012-10-03, 18:12:42 - Csaba Pinter

(In r:334|slicerrt:334) Re #144: DVH tests fixed under linux

2012-10-03, 20:17:15 - Csaba Pinter

The tests that still fail are the generic tests.

2012-10-09, 15:09:52 - Csaba Pinter

(In r:347|slicerrt:347) Re #144: Fixed DVH tests

2012-10-12, 12:36:54 - Csaba Pinter

Updating tickets (#144, #25, #38, #59, #61, #81, #113, #115, #131, #134, #136, #137, #138, #140, #145, #146)

2012-10-12, 12:36:54 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.5.0 (2012-09)” to “SlicerRt 0.6.0”

2012-10-22, 23:37:22 - Csaba Pinter

The generic tests fail on Ubuntu 12.04 because of changes in gcc. The crash is in DCMTK. See url:http://www.na-mic.org/Bug/view.php?id=1537|#1537 and url:ctk-developers/2012-February/000939.html|ctk-developers/2012-February/000939.html

We can either revert gcc (ldd (Ubuntu EGLIBC 2.11.1-0ubuntu7.11) 2.11.1 and gcc (Ubuntu 4.4.3-4ubuntu5.1) 4.4.3) or wait for the DCMTK people to fix the issue

2012-10-23, 15:28:22 - Csaba Pinter

priority: changed from “High (2)” to “Normal (3)”

2012-11-12, 21:14:58 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.6.0 (2012-10)” to “SlicerRt 0.7.0 (2012-11)”

2012-12-10, 21:26:22 - Csaba Pinter

Updating tickets (#38, #61, #134, #136, #144, #191)

2012-12-10, 21:26:22 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.7.0 (2012-11)” to “SlicerRt 0.8.0 (2012-12)”

2013-01-24, 16:59:58 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.8.0 (2013-01)” to “SlicerRt 0.9.0 (2013-03)”

2013-03-24, 19:57:07 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.9.0 (2013-03)” to “SlicerRt 0.10.0 (2013-04)”

2013-04-02, 20:20:03 - Csaba Pinter

description: changed from “Almost all tests fail under…” to “Almost all tests fail under…”

2013-04-02, 20:20:03 - Csaba Pinter

summary: changed from “Linux tests fail” to “Linux generic tests fail”

2013-04-21, 15:43:36 - Csaba Pinter

status: changed from “Accepted” to “New”

2013-04-21, 15:53:48 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.10.0 (2013-04)” to “SlicerRt 0.11.0 (2013-05)”

2013-04-23, 13:12:50 - Csaba Pinter

Adding xvfb-run before the command resolves the X-server connection issue (e.g. ‘xvfb-run make Nightly | tee -a $logFileName’), but some tests (mostly generic ones) crash now (see http://slicer.cdash.org/viewTest.php?onlyfailed&buildid=89720)

2013-05-28, 18:12:00 - Csaba Pinter

Mantis issue added: http://www.na-mic.org/Bug/view.php?id=3131

2013-06-18, 20:24:15 - Csaba Pinter

The tests fail because they crash with a message like this: ‘** glibc detected ** /[long path]/qSlicer…CxxTests: corrupted double-linked list: 0x[address]

Looking further into it, the crash actually happens in qSlicerLoadableModule::importModulePtyhonExtensions which is called from qSlicerLoadableModule::setup which is called from qSlicerAbstractCoreModule::initialize

2013-06-19, 15:06:09 - Csaba Pinter

Further facts:

2013-07-11, 01:28:25 - Csaba Pinter

description: changed from “Almost all tests fail under…” to “Generic tests fail randomly…”

2013-07-11, 01:28:25 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.11.0 (2013-05)” to “SlicerRt 1.0 (2013-06)”

2014-01-09, 00:36:48 - Csaba Pinter

milestone_id: changed from “SlicerRt 1.0” to “SlicerRt 0.13”

2014-01-09, 00:37:04 - Csaba Pinter

status: changed from “New” to “Test”

2014-01-09, 00:37:40 - Csaba Pinter

Linux tests seem to pass now that SlicerRtCommon is dynamically linked.

2014-01-10, 00:06:49 - Csaba Pinter

Linux tests now pass (except for the Contours and the DicomRtExport ones, see #452 and #495). http://slicer.cdash.org/viewTest.php?onlypassed&buildid=185576 http://slicer.cdash.org/viewTest.php?onlypassed&buildid=185238

2014-01-10, 00:06:49 - Csaba Pinter

status: changed from “Test” to “Fixed”

#145 Test DVH D metric computation

I’ve tested the DVH metric computation and I’ve found some potential issues in computation of the D metric. As I understant the D metric should return the dose value corresponding to the specified volume (http://ars.els-cdn.com/content/image/1-s2.0-S0360301603023204-gr5.jpg), however, it does not seem to be the case. Check the DVH of the femoral head in the RANDO^PROSTATE data set. I think for D50% we should get about 25Gy, while 8.4Gy appears in the table.

I’ve checked a code and didn’t find any obvious errors, but I have a few comments:

1
2
3
4
5

char attributeName[64];
sprintf(attributeName, '%s%s', SlicerRtCommon::DVH_METRIC_ATTRIBUTE_NAME_PREFIX.c_str(), SlicerRtCommon::DVH_METRIC_TOTAL_VOLUME_CC_ATTRIBUTE_NAME.c_str());

2012-10-03, 08:07:45 - Andras Lasso

description: changed from “I’ve tested the DVH metric …” to “I’ve tested the DVH metric …”

2012-10-03, 18:37:28 - Csaba Pinter

You’re right, the values were strange, I have to check the computation.

I also agree with the other remarks you made.

2012-10-03, 23:58:15 - Andras Lasso

The computed metric value is metric = maximumDose - doseForVolume = 33.4Gy - 24.7Gy = 8.4Gy. It may be correct, but from http://www.jacmp.org/index.php/jacmp/article/view/3068/1740 it seems that the simply metric = doseForVolume.

We should find a reliable definition of the D metric and describe the definition in the tooltip and include a reference to that definition (a paper or book) in the user documentation of the module (we should also describe how we compute the maximum dose value, if we use that value).

2012-10-12, 12:36:54 - Csaba Pinter

Updating tickets (#144, #25, #38, #59, #61, #81, #113, #115, #131, #134, #136, #137, #138, #140, #145, #146)

2012-10-12, 12:36:54 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.5.0 (2012-09)” to “SlicerRt 0.6.0”

2012-11-07, 22:28:35 - Csaba Pinter

@gregsharp, @wangk: Do you have a good and reliable definition of this D metric?

2012-11-07, 23:06:28 - Greg Sharp

The main idea is like this:

D95 = Dose to 95% of a structure

This means 5% of the structure receives less than D95, and 95% receives more than D95. (We can assume 0% receives exactly D95.) I don’t know any original reference for this, since it is an old idea. But maybe this one?

Holmes T, Das R, Low D, Yin FF, Balter J, Palta J, Eifel P: American Society of Radiation Oncology recommendations for documenting intensity-modulated radiation therapy treatments. Int J Radiat Oncol Biol Phys 2009, 74:1311-1318.

2012-11-07, 23:28:31 - Csaba Pinter

status: changed from “New” to “Accepted”

2012-11-07, 23:31:40 - Csaba Pinter

Thanks, Greg!

2012-11-07, 23:48:47 - Csaba Pinter

(In r:434|slicerrt:434) Test #145: D metric modified to fit the description

2012-11-07, 23:48:47 - Csaba Pinter

status: changed from “Accepted” to “Test”

2012-11-12, 21:14:18 - Csaba Pinter

status: changed from “Test” to “Fixed”

#146 Add RUNTIME_OUTPUT_DIRECTORY property to tests

See https://github.com/jcfr/Slicer/compare/4bcb511…jcfr:2348-fix-windows-assert-in-extension-test and http://na-mic.org/Mantis/view.php?id=2348

2012-10-12, 12:36:54 - Csaba Pinter

Updating tickets (#144, #25, #38, #59, #61, #81, #113, #115, #131, #134, #136, #137, #138, #140, #145, #146)

2012-10-12, 12:36:54 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.5.0 (2012-09)” to “SlicerRt 0.6.0”

2012-11-05, 21:08:05 - Andras Lasso

assigned_to_id: changed from null to “lassoan”

2012-11-13, 17:36:51 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.6.0 (2012-10)” to “SlicerRt 0.7.0 (2012-11)”

2012-11-26, 20:50:43 - Andras Lasso

assigned_to_id: changed from “lassoan” to “pinter”

2012-12-02, 02:35:18 - Csaba Pinter

(In r:484|slicerrt:484) Test #146: RUNTIME_OUTPUT_DIRECTORY property added to test CMakeLists

2012-12-02, 02:35:18 - Csaba Pinter

status: changed from “New” to “Test”

2012-12-03, 20:47:43 - Csaba Pinter

status: changed from “Test” to “Fixed”

#147 SlicerRt build error due to Slicer fiducial node API change

/…/SlicerRT/DicomRtImport/Logic/vtkSlicerDicomRtImportModuleLogic.cxx:506: error: ‘class vtkMRMLAnnotationFiducialNode’ has no member named ‘SetVisible’

2012-10-12, 12:17:38 - Andras Lasso

(In r:351|slicerrt:351) Fixed #147: Fixed build error due to Slicer core change

2012-10-12, 12:17:38 - Andras Lasso

status: changed from “New” to “Fixed”

2012-10-12, 12:35:42 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.5.0 (2012-09)” to “SlicerRt 0.5.1”

#148 Disable dose distribution thresholding

Andras: we should disable dose thresholding for display, because it’s important to differentiate between unknown dose (out of the volume) or 0 dose (the dose is computed and known to be 0). If we enable thresholding with a very low value then the unknown dose and 0 dose appear exactly the same way (they do not appear)

2012-10-12, 12:40:01 - Csaba Pinter

status: changed from “New” to “Accepted”

2012-10-12, 12:40:22 - Csaba Pinter

(In r:352|slicerrt:352) Fixed #148: Dose distribution threshold disabled

2012-10-12, 12:40:22 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

#149 Make the conversion algorithms proper vtkAlgorithms

Now the conversion algorithms (vtkPolyDataToLabelmapFilter and vtkLabelmapToModelFilter) don’t support the VTK pipeline mechanism, as the core functions are simply executed in the Update methods.

It would be nice if they were proper vtkAlgorithms with RequestData functions and everything that comes with it

2012-10-22, 17:24:58 - Csaba Pinter

milestone_id: changed from null to “Future”

2014-07-13, 06:09:56 - Csaba Pinter

priority: changed from “Normal (3)” to “Low (4)”

2015-01-16, 04:56:14 - Csaba Pinter

milestone_id: changed from “Future” to “SlicerRt 0.17 (Segmentations)”

2015-03-25, 21:07:16 - Csaba Pinter

No need for pipeline-enabled conversion algorithms any more, as the segmentation converter infrastructure (that uses the graph and the rule classes) does not use pipelines. Closing as invalid

2015-03-25, 21:07:16 - Csaba Pinter

status: changed from “New” to “Invalid”

#150 Make vtkPolyDataToLabelmapFilter be called more easily

There are two places where vtkPolyDataToLabelmapFilter is used (DVH and Contours modules), and the calling function is very long in both cases, and also very similar.

It would be good to have a wrapper class that performs that calling, OR the vtkPolyDataToLabelmapFilter itself augmented so that it handles those issues (downsampling and parent transform handling).

2012-10-15, 21:57:31 - Csaba Pinter

description: changed from “There are two places where …” to “There are two places where …”

2012-10-22, 17:47:36 - Csaba Pinter

With the convenience function SlicerRtCommon::GetTransformFromModelToVolumeIjk and the decision that we only use the conversion in vtkMRMLContourNode, there is no need tor such an improvement

2012-10-22, 17:47:36 - Csaba Pinter

status: changed from “New” to “Invalid”

#151 Remove bitfield labelmap representation from the Contour node

Bitfield labelmap belongs to a set of contours and not just one, so it definitely should not be in the vtkMRMLContourNode.

We made the decision to remove that representation, because

2012-10-22, 16:17:33 - Csaba Pinter

(In r:374|slicerrt:374) Fixed #151: Bitfield labelmap representation removed from the vtkMRMLContourNode node, because 1: it did not belong there logically (a bitfield labelmap represents more than one contour), and 2: we do not plan to make effort in having a compressed representation for now (and if the need arises then the RLE compression seems to be an easier choice, because it does a better compression and we do not need to introduce a quite new philosophy, namely one node object belonging to multiple contours)

2012-10-22, 16:17:33 - Csaba Pinter

status: changed from “New” to “Fixed”

#152 Conflict of MRML objects with the same name when saving the scene

When loading the same structure set twice, the name of the structure models and color tables are the same. And because the files get the names of the nodes instead of their IDs, there is a conflict, and overwrite is prompted.

This may cause other issues as well.

2012-10-22, 17:25:22 - Csaba Pinter

milestone_id: changed from null to “SlicerRt 0.6.0 (2012-10)”

2012-10-25, 15:15:44 - Csaba Pinter

I created a Slicer Mantis issue for this: http://www.na-mic.org/Bug/view.php?id=2687

I think it would be also good to generate unique names for the loaded objects (structure ribbon models, dose volumes, fiducials) when loading the RT data.

2012-10-26, 16:27:44 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2012-10-26, 16:27:52 - Csaba Pinter

status: changed from “New” to “Accepted”

2012-10-26, 19:22:37 - Csaba Pinter

(In r:382|slicerrt:382) Test #152: All created nodes that contain data have unique names in the scene

2012-10-26, 19:22:37 - Csaba Pinter

status: changed from “Accepted” to “Test”

2012-11-12, 21:14:25 - Csaba Pinter

status: changed from “Test” to “Fixed”

#153 Crash when entering DICOM module on Mac

When SlicerRT is installed.

2012-10-17, 20:00:32 - pieper

I sat down with Ron and he showed me the issue. Basically the DICOM plugin dies with the stack below and so the load process never completes (the progress dialog remains).

On the slicer DICOM side, I think we should use a try/exception on the plugins in order to be robust.

On the slicer extensions side I think this looks a lot like the previous issue that I had understood was resolved (packaging C++ libraries in mac extensions).

Traceback (most recent call last): File ‘/Users/rkikinis/Downloads/Slicer-4.1.0-2012-10-13-macosx-amd64.app/Contents/lib/Slicer-4.1/qt-scripted-modules/DICOM.py’, line 378, in onTreeClicked self.detailsPopup.offerLoadables(uid, role) File ‘/Users/rkikinis/Downloads/Slicer-4.1.0-2012-10-13-macosx-amd64.app/Contents/bin/Python/DICOMLib/DICOMWidgets.py’, line 263, in offerLoadables self.loadablesByPlugin[plugin] = plugin.examine(fileLists) File ‘/Users/rkikinis/Downloads/Slicer-4.1.0-2012-10-13-macosx-amd64.app/Contents/Extensions/SlicerRT/lib/Slicer-4.1/qt-scripted-modules/DicomRtImportPlugin.py’, line 25, in examine import vtkSlicerDicomRtImportModuleLogic File ‘/Users/rkikinis/Downloads/Slicer-4.1.0-2012-10-13-macosx-amd64.app/Contents/Extensions/SlicerRT/lib/Slicer-4.1/qt-loadable-modules/Python/vtkSlicerDicomRtImportModuleLogic.py’, line 5, in from vtkSlicerDicomRtImportModuleLogicPython import * ImportError: No module named vtkSlicerDicomRtImportModuleLogicPython

2012-10-18, 15:09:45 - Csaba Pinter

Thanks for the details, Steve! The try/catch is definitely a good idea. I have no clue however how the logic is not visible to Python.

2012-10-31, 16:52:15 - pieper

I checked in the exception handling to slicer. Let me know if there are any issues.

2012-11-05, 21:22:38 - Andras Lasso

Add the SlicerRtDemo_RSNA2012_SelfTest.py to the nightly dashboard and see if it the test passes on Mac. If it does then the problem is resolved.

2012-11-05, 21:22:38 - Andras Lasso

assigned_to_id: changed from null to “pinter”

2012-11-12, 21:15:07 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.6.0 (2012-10)” to “SlicerRt 0.7.0 (2012-11)”

2012-11-19, 21:40:52 - Csaba Pinter

assigned_to_id: changed from “pinter” to null

2012-12-07, 22:22:05 - pieper

I added the try/except code to slicer’s DICOM code so the issue should no longer cause a hang when using a plugin that fails while trying to evaluate files:

http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=21293

Did the underlying problem get solved? (i.e. the inability to import vtkSlicerDicomRtImportModuleLogicPython on mac extensions)

2012-12-08, 15:59:15 - Csaba Pinter

I have not yet started to fix that. There is a macbook in the lab, I’ll try to get it running Slicer and look into it. Probably there is nothing for you guys to do about this issue at the CTK hackfest.

2012-12-23, 20:42:51 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.7.0 (2012-11)” to “SlicerRt 0.8.0 (2012-12)”

2013-01-24, 17:49:48 - Csaba Pinter

I tried today and vtkSlicerDicomRtImportModuleLogicPython is imported. Also the DICOM browser ooens without problems and RT datasets can be loaded. I’m closing this issue if there are no objections.

2013-01-24, 17:49:48 - Csaba Pinter

assigned_to_id: changed from null to “pieper”

2013-01-24, 17:49:48 - Csaba Pinter

status: changed from “New” to “Fixed”

#154 Decrease opacity of structures that contain other structures

If a bounding box of a structure includes another structure’s bounding box, make it somewhat transparent

2012-10-22, 17:25:29 - Csaba Pinter

milestone_id: changed from null to “Future”

2012-12-29, 02:28:41 - Csaba Pinter

milestone_id: changed from “Future” to “SlicerRt 0.8.0 (2012-12)”

2012-12-29, 02:28:45 - Csaba Pinter

status: changed from “New” to “Accepted”

2012-12-29, 02:40:17 - Csaba Pinter

(In r:528|slicerrt:528) Test #154: Opacity of loaded structures are automatically determined from assigned level values. These values indicate the level in the topological hierarchy computed using the structure bounding boxes.

2012-12-29, 02:40:17 - Csaba Pinter

status: changed from “Accepted” to “Test”

2012-12-29, 04:08:04 - Csaba Pinter

(In r:529|slicerrt:529) Test #154: Addressing small issues regarding the topological hierarchy (comments, variable names, etc.)

2013-02-02, 23:18:26 - Csaba Pinter

status: changed from “Test” to “Fixed”

#155 When a ribbon model is rotated along RL or AP axis then the created labelmap has holes

See attached screenshot

2012-10-19, 19:40:41 - Csaba Pinter

image:dDxsf8gIqr4PX9acwqjQWU

2012-10-19, 19:40:41 - Csaba Pinter

Attachment added: “Screenshot_RotatedRibbonBug.png”

2012-10-19, 19:49:58 - wangk

That is a major limitation of our current vtkImageStencil based technique to convert 2D contours (ribbons) to 3D labelmaps. I suggest we should explain this in the help section of the module so that people know about this. and one way to work around this is to always convert to labelmap first then transform later.

2012-10-22, 17:25:39 - Csaba Pinter

milestone_id: changed from null to “Future”

2013-04-21, 17:13:46 - Csaba Pinter

This issue will be tracked in #230. Closing as invalid.

2013-04-21, 17:13:46 - Csaba Pinter

status: changed from “New” to “Invalid”

#156 Allow recreation of closed surface model with different parameters

I’ve tried to convert from ribbon to closed surface model. The resolution was too bad, but I couldn’t find any way to recreate the contour with a finer resolution or with a different reference volume.

2012-10-23, 22:22:23 - Csaba Pinter

Proposed solution: the parameters used to generate the selected representation are set on the GUI (reference volume, downsampling, decimation), and if one of them is changed, then a message appears that conversion is necessary and the current one will be lost.

2012-11-09, 13:54:57 - Csaba Pinter

status: changed from “New” to “Accepted”

2012-11-13, 17:28:00 - Csaba Pinter

(In r:438|slicerrt:438) Test #156: Conversion parameters can be changed in Contours module when the active representation is selected. When they are changed, the representation is re-converted

2012-11-13, 17:28:00 - Csaba Pinter

status: changed from “Accepted” to “Test”

2012-11-13, 18:41:10 - Csaba Pinter

(In r:439|slicerrt:439) Fixed #156: Warning message is fixed: when converting a hierarchy to indexed labelmap and a contained contour contains labelmap but the parameters are not changed, the new conversion warning is not displayed

2012-11-13, 18:41:10 - Csaba Pinter

status: changed from “Test” to “Fixed”

2012-11-13, 20:51:55 - Csaba Pinter

status: changed from “Fixed” to “Accepted”

2012-11-14, 17:44:37 - Csaba Pinter

(In r:443|slicerrt:443) Test #156: When converting to closed surface, changing of the labelmap parameters is possible now; Unavailable conversion parameters are hidden instead of disabling; Ticks added to the oversampling factor slider to let the user know that there are few options (so they need to pull it a lot to change the value)

2012-11-14, 17:44:37 - Csaba Pinter

status: changed from “Accepted” to “Test”

2012-11-14, 20:54:35 - Csaba Pinter

(In r:444|slicerrt:444) Re #156: Fix small UI bug in Contours module; Re #184: Backface culling disabled

2012-11-15, 22:25:42 - Csaba Pinter

status: changed from “Test” to “Fixed”

#157 After editing a labelmap contour the changes should show up in other representations

Switched contour representation to labelmap. Edited the labelmap in the editor. Switched representation to closed surface. The closed surface did not reflect the changes done during editing.

2012-10-23, 21:20:31 - Csaba Pinter

status: changed from “New” to “Accepted”

2012-10-23, 22:17:17 - Csaba Pinter

(In r:377|slicerrt:377) Test #157: If the active representation is edited, then the other representations are deleted from the contour and the scene. If another type of representation is requested after this, then it is converted from the only one present (what we just edited)

2012-10-23, 22:17:17 - Csaba Pinter

status: changed from “Accepted” to “Test”

2012-11-12, 21:14:30 - Csaba Pinter

status: changed from “Test” to “Fixed”

#158 Add CLI for union and intersection of ROIs

2012-12-08, 22:53:54 - Csaba Pinter

milestone_id: changed from “Future” to “SlicerRt 0.7.0 (2012-11)”

2012-12-10, 16:13:56 - wangk

Hi Csaba,

I think this ticket was created a while ago when we decided to make ROI morphology 2 separate modules. Now that I can add union and intersection and subtraction into the contour morphology module, maybe we do not need this CLI module any more. you can update your code to see the new union and intersection functionality.

2012-12-10, 16:16:37 - Csaba Pinter

Absolutely. I moved this ticket to this milestone so that we can mark it as duplicate and invalidate it if everything is included in the contour morphology ticket, If you feel that this one is completely covered, please create the ticket relation then you can close this. Thanks!

2012-12-10, 16:16:37 - Csaba Pinter

assigned_to_id: changed from null to “wangk”

2012-12-10, 16:24:23 - wangk

The boolean operations are nowcovered in contour morphology module now.

2012-12-10, 16:24:23 - wangk

status: changed from “New” to “Invalid”

2012-12-10, 16:27:25 - Csaba Pinter

You write the boolean operators are NOT covered in contour morphology. I’m confused now :)

2012-12-10, 16:28:41 - wangk

Sorry. I meant now.

#159 Improve contour comparison module: handle images with different geometry

Has to be done in Plastimatch. The issue in the Plastimatch issue tracker: http://forge.abcd.harvard.edu/gf/project/plastimatch/tracker/?action=TrackerItemEdit&tracker_item_id=3542&start=0

2012-10-23, 23:22:54 - Greg Sharp

I’ve implemented this in a simple way by resampling the compare image to match the reference image.

Still thinking about expanding the compare image. Probably a good idea.

2012-10-24, 17:08:21 - Csaba Pinter

Greg,

I’m testing the changes. For some reason it crashes, but it’s not in your code (I get the call stack showing only event loop stuff). I’ll let you know if it works.

Thanks for the quick action!

2012-10-24, 17:08:21 - Csaba Pinter

status: changed from “New” to “Accepted”

2012-10-24, 18:30:14 - Csaba Pinter

It turns out that Dice_statistics::run function throws an exception before having the chance to resample the image (line 79 in the cxx). I removed it and I commit if you agree with removing that.

Now it seems to work well, except for the case when both the images are transformed (then the coefficient is 0), I’ll investigate it further.

2012-10-24, 22:40:04 - Csaba Pinter

(In r:378|slicerrt:378) Test #159: Removed check for matching geometry for the input volumes for contour comparison (dice), because plastimatch now handles images with different geometries

2012-10-24, 22:40:04 - Csaba Pinter

status: changed from “Accepted” to “Test”

2012-11-02, 21:54:32 - Csaba Pinter

I’ve tested it and now it seems to be working fine. It would be nice if somebody else tested it too.

2012-12-23, 20:43:03 - Csaba Pinter

status: changed from “Test” to “Fixed”

#160 Improve contour comparison module: compute 95% Hausdorff distance

Compute Hausdorff distance (distance to the closest point on the other surface) for each surface point. The result is a distribution of distances. To make a single number from this distribution that characterizes the segmentation error people usually compute the 95th percentile (the value that is larger than 95% of the computed distance values) of the distance distribution.

2012-11-22, 19:50:32 - Csaba Pinter

description: changed from “” to “Compute Hausdorff distance …”

2012-11-23, 16:23:45 - Csaba Pinter

Greg is creating a hausdorff_distance class that can be used to retrieve the computed output.

It is also needed to modify the current Plastimatch algorithm so that they can compute the 95% Hausdorff distance

2012-11-23, 16:23:45 - Csaba Pinter

assigned_to_id: changed from “pinter” to “gregsharp”

2012-11-23, 16:23:45 - Csaba Pinter

status: changed from “New” to “Accepted”

2012-12-23, 20:43:08 - Csaba Pinter

status: changed from “Accepted” to “New”

2012-12-23, 20:43:11 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.7.0 (2012-11)” to “SlicerRt 0.8.0 (2012-12)”

2013-01-24, 16:59:58 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.8.0 (2013-01)” to “SlicerRt 0.9.0 (2013-03)”

2013-02-15, 13:47:44 - Andras Lasso

Port the HD algorithm from the old RegistrationMetrics module (http://svn.na-mic.org/NAMICSandBox/trunk/IGTLoadableModules/RegistrationMetrics/) to Plastimatch. In the sandbox version the input volumes to have the same origin/spacing/orientation, this should be fixed in the new version in SlicerRt.

2013-02-15, 13:58:37 - Andras Lasso

There is a HD implementation in ITK as well (itkHausdorffDistanceImageFilter), but it can only compute the maximum and average HD and it’s not capable of computing the 95th percentile of the HD, which is the usual metric used for registration evaluation.

2013-02-15, 14:07:09 - Andras Lasso

There is a HD implementation in Plastimatch, which is a slightly modified clone of the ITK implementation (it uses the image spacing). The best would be to use this Plastimatch version to compute the max and average HD. Later this class should be further enhanced to compute the 95th percentile of the HD.

2013-02-15, 16:55:35 - Csaba Pinter

Add GUI elements for Hausdorff Distance to the Contour Comparison module to expose the basic HD functionality. The percentile function will be added and enabled later.

2013-02-15, 16:55:35 - Csaba Pinter

assigned_to_id: changed from “gregsharp” to “pinter”

2013-02-15, 16:55:35 - Csaba Pinter

priority: changed from “Normal (3)” to “High (2)”

2013-02-17, 01:26:25 - Csaba Pinter

(In r:618|slicerrt:618) Re #160: Basic Hausdorff distance metrics added to ContourMorphology module. Note: testing is necessary as there are some strange things on the configuration I tried (itk_image.h can be included form the logic .cxx but not .h, the module doesn’t show up in Slicer)

2013-02-17, 17:03:34 - Csaba Pinter

(In r:619|slicerrt:619) Re #160: Created private implementation class for vtkSlicerContourComparisonModuleLogic to be able to use GetInputContoursAsItkVolumes function

2013-02-17, 23:16:29 - Csaba Pinter

(In r:620|slicerrt:620) Re #160: Contour Comparison is now loaded by Slicer successfully, however, Dice similarity doesn’t work (when it is uncommented, loading fails); Removing some unnecessary libraries from link list, and header includes

2013-02-18, 14:34:20 - Csaba Pinter

(In r:623|slicerrt:623) Test #160: Bumped up Plastimatch version to have 95% Hausdorff distance; The 95% distance is displayed on the GUI

2013-02-18, 14:34:20 - Csaba Pinter

status: changed from “New” to “Test”

2013-02-19, 22:05:57 - Csaba Pinter

95% computation needs to be changed so that it calls the function that uses only the boundary voxels for the computation.

2013-02-19, 22:05:57 - Csaba Pinter

status: changed from “Test” to “Accepted”

2013-02-28, 21:28:28 - Csaba Pinter

(In r:662|slicerrt:662) Re #160: Added boundary based Hausdorff results in the Contour Comparison module UI; Put checkboxes in the Isodose module in a vertical layout because the minimum width of the module was very wide

2013-03-01, 19:50:33 - Csaba Pinter

(In r:671|slicerrt:671) Test #160: Bump Plastimatch version to contain the boundary Hausdorff fix

2013-03-01, 19:50:33 - Csaba Pinter

status: changed from “Accepted” to “Test”

2013-03-01, 23:33:13 - Andras Lasso

See how HD is used in the literature for medical image segmentation evaluation: https://subversion.assembla.com/svn/slicerrt/trunk/SlicerRt/doc/references/ Compute HD for set consisting of surface points: Huttenlocher1993, Chalana1997, Klingensmith2000, Gerig2001, Archip2007 (and many many others) Compute HD for set consisting of all labelmap: Crum2006 (this was the only one that I could find) So, essentially all papers compute HD for surface points only.

I would recommend to:

2013-03-01, 23:33:13 - Andras Lasso

status: changed from “Test” to “Accepted”

2013-03-02, 01:49:17 - Gabor Fichtinger

Andras,

Archip’07 could be OK, but Archip did not explain why he used the 95% HD, he just used it.

–Gabor

From: Andras Lasso (lassoan) [mailto:slicerrt@alerts.assembla.com] Sent: March-01-13 6:33 PM

2013-03-03, 21:40:48 - Csaba Pinter

assigned_to_id: changed from “pinter” to “gregsharp”

2013-03-04, 00:24:38 - Greg Sharp

OK. My plan is therefore to add capability of boundary-to-boundary maximum. Since boundary-to-boundary maximum is not the same as set-to-set maximum, it will be an additional function call to retrieve it.

2013-03-05, 15:33:17 - Greg Sharp

Implemented (maximum) Hausdorff distance for boundary voxels in plastimatch rev 4129. Here is the appropriate method:

/*! \brief Return the boundary Hausdorff distance */ float get_boundary_hausdorff ();

2013-03-05, 15:33:17 - Greg Sharp

assigned_to_id: changed from “gregsharp” to “pinter”

2013-03-05, 21:38:28 - Csaba Pinter

(In r:681|slicerrt:681) Test #160: Hausdorff distances are shown only for boundary voxels on the ContourComparison module UI; Re #211: Switched node type and show/hide columns

2013-03-05, 21:38:28 - Csaba Pinter

status: changed from “Accepted” to “Test”

2013-03-27, 20:34:12 - Csaba Pinter

status: changed from “Test” to “Fixed”

#161 Contour module does not always generate closed surfaces

If the reference volume is not larger that the contour (e.g., prostate dataset, body contour, using the CT reference volume) then the generated contour is not closed. To make the generated contour closed we need to increase the reference volume extent along each dimension to have at least a one-pixel margin around the contour in the labelmap.

2012-10-24, 03:30:28 - Andras Lasso

assigned_to_id: changed from null to “pinter”

2012-10-24, 03:30:28 - Andras Lasso

description: changed from “If the reference volume is …” to “If the reference volume is …”

2012-11-05, 21:35:59 - Csaba Pinter

priority: changed from “Normal (3)” to “Low (4)”

2012-11-09, 13:51:45 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.6.0 (2012-10)” to “SlicerRt 0.7.0 (2012-11)”

2012-12-10, 21:20:48 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.7.0 (2012-11)” to “SlicerRt 0.8.0 (2012-12)”

2013-01-24, 16:59:59 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.8.0 (2013-01)” to “SlicerRt 0.9.0 (2013-03)”

2013-03-24, 19:57:07 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.9.0 (2013-03)” to “SlicerRt 0.10.0 (2013-04)”

2013-04-04, 16:35:03 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.10.0 (2013-04)” to “SlicerRt 0.11.0 (2013-05)”

2013-08-15, 14:58:36 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.11.0 (2013-07)” to “SlicerRt 1.0 (2013-09)”

2013-08-26, 02:43:42 - Csaba Pinter

priority: changed from “Low (4)” to “Normal (3)”

2013-08-30, 15:21:29 - Csaba Pinter

assigned_to_id: changed from “pinter” to “rankin”

2013-09-05, 14:36:21 - Csaba Pinter

working_hours: changed from “0.0” to “2.0”

2013-09-05, 14:36:21 - Csaba Pinter

total_working_hours: changed from “0.0” to “2.0”

2013-09-05, 14:38:36 - Csaba Pinter

milestone_id: changed from “SlicerRt 1.0” to “SlicerRt 0.12”

2013-09-12, 14:28:28 - Adam Rankin

(In r:1148|slicerrt:1148) test #141 Refactoring all test data into a common directory

re #161 created the skeleton for the dose comparison test

@pinter can you verify that you are happy with the file naming?

2013-09-12, 15:25:29 - Adam Rankin

Ugh, wrong ticket number. Sorry

2013-09-13, 16:25:11 - Adam Rankin

status: changed from “New” to “Accepted”

2013-10-01, 16:44:29 - Adam Rankin

Repro successful.

Repro did not occur if the surface was generated with a valid reference volume, then attempting to repro steps in the same run of Slicer.

2013-10-01, 18:55:42 - Adam Rankin

I believe the problem is actually when converting to a label map representation.

2013-10-03, 16:04:40 - Adam Rankin

(In r:1203|slicerrt:1203) test #161 expanding the workable extent in polydata to labelmap filter so that it does not cut off polygons before rasterizing them

2013-10-03, 16:04:40 - Adam Rankin

status: changed from “Accepted” to “Test”

2013-10-03, 16:05:05 - Adam Rankin

assigned_to_id: changed from “rankin” to “lassoan”

2013-10-03, 21:38:34 - Csaba Pinter

I’m wondering if we should let the user know that the new labelmap volume has different geometry than the reference volume. It is indeed a special case when the reference volume needs to be expanded to include the contour, but then it can lead to unexpected results, for example when the user wants to use the volume for an operation where matching geometries are expected (such as dice contour comparison). Maybe a simple warning logging in the vtkPolyDataToLabelmapFilter would be enough.

2013-10-03, 21:44:17 - Csaba Pinter

Another thing is that the body contours (that span every slice in the volume) are always converted with expanded reference volumes, so that their superior and inferior ends could be closed. Just something to think about…

2013-10-09, 19:54:35 - Adam Rankin

assigned_to_id: changed from “lassoan” to “rankin”

2013-10-09, 19:54:40 - Adam Rankin

status: changed from “Test” to “Accepted”

2013-10-15, 18:49:13 - Adam Rankin

(In r:1223|slicerrt:1223) re #161 correcting contour conversion approach by only expanding the marching cubes area if the label map extents are equal to or larger than the reference volume extents

re #237 correcting logic test to use new contour conversion approach

2013-10-15, 20:29:26 - Adam Rankin

assigned_to_id: changed from “rankin” to “lassoan”

2013-10-15, 20:29:26 - Adam Rankin

status: changed from “Accepted” to “Test”

2013-10-16, 16:23:40 - Adam Rankin

Labelmap back to not complete, completing solution for all types of contours.

2013-10-16, 16:23:40 - Adam Rankin

assigned_to_id: changed from “lassoan” to “rankin”

2013-10-16, 16:23:40 - Adam Rankin

status: changed from “Test” to “Accepted”

2013-10-17, 17:00:51 - Adam Rankin

Having an oversampling factor != 1 produces cut off labelmaps.

2013-10-17, 19:57:21 - Adam Rankin

(In r:1224|slicerrt:1224) re #161 enabling correct conversion between representations by adjusting for rounding issues

2013-10-17, 20:01:10 - Adam Rankin

assigned_to_id: changed from “rankin” to “lassoan”

2013-10-17, 20:01:10 - Adam Rankin

status: changed from “Accepted” to “Test”

2013-11-04, 16:29:11 - Csaba Pinter

I’m closing this issue for the release and continue tracking the outstanding bug in #452

2013-11-04, 16:29:11 - Csaba Pinter

working_hours: changed from “2.0” to “0.0”

2013-11-04, 16:29:11 - Csaba Pinter

status: changed from “Test” to “Fixed”

2013-11-04, 16:29:11 - Csaba Pinter

total_working_hours: changed from “2.0” to “0.0”

2015-05-23, 18:19:34 - Csaba Pinter

Re #626, re #161: Apply padding on labelmap during labelmap to closed surface conversion if the labelmap has non-zero border voxels, because otherwise the surface will not be closed at those parts (same fix as in rev1223) Commit: r:2267|slicerrt:2267

#162 Slice viewers are not updated when contour representation is changed

Change from ribbon to closed surface representation => the model is updated correctly in the 3D view, but not in the slice viewers. Probably should be fixed in the Slicer core, so report the error on the Slicer bugtracker and implement a temporary workaround in SlicerRT to force the update.

2012-11-07, 20:10:53 - Csaba Pinter

status: changed from “New” to “Accepted”

2012-11-07, 21:07:28 - Csaba Pinter

I re-opened Mantis issue http://www.na-mic.org/Bug/view.php?id=1536

2012-11-07, 22:24:39 - Csaba Pinter

(In r:433|slicerrt:433) Re #162: Workaround added to display the slice intersections immediately after converting to closed surface model

2012-11-07, 22:26:10 - Csaba Pinter

When Slicer Mantis issue 1536 is resolved

2012-11-07, 22:26:21 - Csaba Pinter

assigned_to_id: changed from “pinter” to null

2012-11-07, 22:26:21 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.6.0 (2012-10)” to “Future”

2012-11-07, 22:26:21 - Csaba Pinter

status: changed from “Accepted” to “New”

2012-12-05, 16:14:56 - Csaba Pinter

milestone_id: changed from “Future” to “SlicerRt 0.7.0 (2012-11)”

2012-12-05, 16:15:03 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2012-12-05, 16:15:03 - Csaba Pinter

status: changed from “New” to “Accepted”

2012-12-05, 16:16:19 - Csaba Pinter

(In r:488|slicerrt:488) Fixed #162: Surface models and slice intersections are now updated when contour representation is changed (Slicer issue #1536 has been fixed, workaround from SlicerRT removed)

2012-12-05, 16:16:19 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

#163 Imported RT dose volumes are attempted to save into the DICOM directory by default

Imported RT dose volumes are attempted to save into the DICOM directory by default, while the save directory should be the default output directory, as for all other volumes.

Import a DICOM study, click save, Directory is ‘c:/users/lasso/appdata/roaming/na-mic’ for all data, except the RT dose volume, where the Directory is ‘f:/medicalimages/slicerrt/data/eclipse-8.1.20/…’.

2012-10-30, 12:36:09 - Csaba Pinter

(In r:388|slicerrt:388) Re #81, Test #163: Load dose volume similarly as the scalar volume plugin does

2012-10-30, 12:36:09 - Csaba Pinter

status: changed from “New” to “Test”

2012-11-13, 17:35:51 - Csaba Pinter

status: changed from “Test” to “Fixed”

2012-11-13, 17:35:57 - Csaba Pinter

assigned_to_id: changed from “lassoan” to “pinter”

#164 Create ContourNode from scratch

Right now one can only get contours by importing a dicom-rt structure set. How about people create the models from scratch in slicer (e.g. manual segmentation) then there is no way to convert them to contours. Maybe we can modify the contour module so that people can specify a closed surface model or labelmap to create a new contour. Once we have DicomRT export, then this can be saved as DICOM.

To be developed:

Question: what should happen if a model is drag&dropped there? We don’t know if it’s a ribbon or a closed surface.

2012-10-26, 16:40:56 - Csaba Pinter

priority: changed from “Low (4)” to “Normal (3)”

2013-03-13, 16:43:00 - Andras Lasso

milestone_id: changed from “Future” to “SlicerRt 0.9.0 (2013-03)”

2013-03-13, 16:48:59 - Andras Lasso

Federica Izzi at BWH requested this feature, too.

2013-03-22, 17:00:07 - Csaba Pinter

priority: changed from “Normal (3)” to “High (2)”

2013-03-22, 17:14:40 - Csaba Pinter

summary: changed from “create ContourNode from scratch” to “Create ContourNode from scratch”

2013-03-24, 19:57:07 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.9.0 (2013-03)” to “SlicerRt 0.10.0 (2013-04)”

2013-04-03, 17:11:16 - Csaba Pinter

status: changed from “New” to “Accepted”

2013-04-03, 17:15:01 - wangk

thanks for taking this task. this is much needed by many people including me.

2013-04-03, 22:31:47 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2013-04-03, 22:31:47 - Csaba Pinter

component_id: changed from “None” to “SlicerRt modules”

2013-04-03, 22:31:47 - Csaba Pinter

description: changed from “Right now one can only get …” to “Right now one can only get …”

2013-04-04, 15:24:19 - Csaba Pinter

description: changed from “Right now one can only get …” to “Right now one can only get …”

2013-04-04, 16:39:50 - Csaba Pinter

description: changed from “Right now one can only get …” to “Right now one can only get …”

2013-04-08, 18:15:33 - Csaba Pinter

(In r:744|slicerrt:744) Re #164: List widget for nodes outside patient hierarchy works in Patient Hierarchy module; Rename enabled for contour nodes in Contours module; String conversion made consistent (added constData() or removed toLatin1() where applicable)

2013-04-08, 22:36:45 - Csaba Pinter

(In r:745|slicerrt:745) Re #164: Added logic class to Contours module that registers the node types to the scene; Added icon for color table in Patient Hierarchy; Cleanup in isodose module code

2013-04-08, 23:37:31 - Csaba Pinter

(In r:746|slicerrt:746) Re #164: Moved contour conversion related code into new vtkConvertContourRepresentations class in Contours MRML

2013-04-09, 13:45:35 - Csaba Pinter

(In r:747|slicerrt:747) Re #164: Fixed Contour module creation; Fixed crash when showing/hiding isocenters from the Annotations module (in turn now the isocenter fiducials are not visible in the list there, only in PH)

2013-04-09, 17:42:57 - Csaba Pinter

(In r:748|slicerrt:748) Re #164: When adding a new contour, an empty ribbon model is created that can be converted to labelmap and edited. This is the first way to create a contour from scratch. Note: when the name of a contour is changed, the representations get renamed too.

2013-04-09, 21:45:47 - Csaba Pinter

(In r:749|slicerrt:749) Re #164: Moving candidates node detection completely in PatientHierarchyModuleLogic

2013-04-09, 23:25:25 - Csaba Pinter

(In r:750|slicerrt:750) Re #164: Added new widget to display a list of potential patient hierarchy nodes (replaced the regular list widget that had to be updated manually through awkward signal-slotting)

2013-04-10, 19:45:21 - Csaba Pinter

(In r:754|slicerrt:754) Re #164: Work towards node patient hierarchy drag&drop

2013-04-11, 15:45:46 - Csaba Pinter

(In r:756|slicerrt:756) Re #164: Drag&drop is enabled properly in the patient hierarchy widgets

2013-04-17, 15:56:15 - Csaba Pinter

(In r:762|slicerrt:762) Re #164: Contour creation works on drad&drop from potential nodes list to patient hierarchy tree; Changed Contour node behavior so when a new representation is set then it becomes active and all others invalidated

2013-04-18, 01:08:05 - Csaba Pinter

Will need creation of PH contour hierarchy so that the representations can be dropped under that even without loaded DICOM-RT.

2013-04-19, 04:42:33 - Csaba Pinter

(In r:768|slicerrt:768) Re #164: WIP Refector Contours module widget state handling in order to handle IndexedLabelmap only Contours and to be simpler; Leak fixed in qMRMLScenePatientHierarchyModel

2013-04-19, 22:45:58 - Csaba Pinter

(In r:770|slicerrt:770) Re #164: WIP Refector Contours module widget state handling in order to handle IndexedLabelmap only Contours and to be simpler

2013-04-20, 17:29:05 - Csaba Pinter

(In r:771|slicerrt:771) Re #164: WIP Refector Contours module widget state handling in order to handle IndexedLabelmap only Contours and to be simpler

2013-04-20, 20:51:53 - Csaba Pinter

(In r:773|slicerrt:773) Re #164: Fix qMRMLSceneModel related crash when converting indexed labelmap only contour to closed surface model

2013-04-20, 22:30:54 - Csaba Pinter

(In r:774|slicerrt:774) Re #164: Applied workaround bug (when dropping an item from outside patient hierarchy to inside, the tree collapsed)

2013-04-20, 22:39:51 - Csaba Pinter

(In r:775|slicerrt:775) Re #164: Applied workaround for potential patient hierarchy list display bug

2013-04-21, 19:17:09 - Csaba Pinter

(In r:776|slicerrt:776) Test #164: Default structure set is created in PatientHierarchy so labelmaps and models can be dropped under that (and so Contour node created) if no RT data is loaded

2013-04-21, 19:17:09 - Csaba Pinter

status: changed from “Accepted” to “Test”

2013-04-23, 17:34:52 - Csaba Pinter

status: changed from “Test” to “Fixed”

2013-04-24, 15:09:18 - Csaba Pinter

(In r:789|slicerrt:789) Re #164: Progress bar added for Contour conversion; Small cleanup in DeformationFieldVisualizer

#165 Allow Slicer to pass Segmentation nodes to CLI modules

CLI modules are simpler to implement but the CLI interface does not support all node types. The Slicer core should be enhanced to allow passing of Segmentation nodes.

It could be achieved by supporting hierarchy nodes (or displayable hierarchy nodes) as CLI module input/output in general. Model hierarchy nodes are already supported, so maybe that could be generalized.

2013-09-06, 18:53:18 - Csaba Pinter

priority: changed from “Normal (3)” to “High (2)”

2014-11-11, 20:39:20 - Csaba Pinter

Component: changed from “Slicer Core” to “”

2014-11-11, 20:39:20 - Csaba Pinter

summary: changed from “Allow Slicer to pass Contour nodes to CLI modules” to “Allow Slicer to pass Segmentation nodes to CLI modules”

2014-11-11, 20:39:20 - Csaba Pinter

description: changed from “CLI modules are simpler to …” to “CLI modules are simpler to …”

2014-11-11, 20:39:20 - Csaba Pinter

milestone_id: changed from “Future” to “SlicerRt 0.16”

2014-11-11, 20:43:44 - jchris

+1 Generalizing the mechanism would be great.

2015-10-15, 18:21:44 - Csaba Pinter

Pushing to next milestone, as integrating Segmentations to Slicer core is a requirement for this ticket.

2015-10-15, 18:21:44 - Csaba Pinter

Component: changed from null to “Slicer core”

2015-10-15, 18:21:44 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.18” to “SlicerRt 0.19”

2016-09-01, 20:48:46 - Csaba Pinter

Andras’ description on Slicer mailing list:

‘Segmentations can provide both labelmap or geometry output. So, the idea would be to allow selecting segmentation node for (in addition to vtkMRMLLabelMapVolumeNode) and for (in addition to vtkMRMLModelNode). This would allow using CLI modules with segmentations without any changes.

We would add a new type for overlapping labels (), which would pass a 4D NRRD file. '

2017-07-25, 18:27:22 - Csaba Pinter

Moved to Slicer Mantis because Segmentations is now in Slicer core https://issues.slicer.org/view.php?id=4400

2017-07-25, 18:27:22 - Csaba Pinter

status: changed from “New” to “Invalid”

#166 Dose accumulation fails if the input images have different geometry

When the origin, direction or scaling is different in the input images, the accumulation fails with the message ‘Dose accumulation: image information does not match!’

2012-11-06, 16:53:34 - Csaba Pinter

milestone_id: changed from null to “SlicerRt 0.7.0 (2012-11)”

2012-12-10, 19:33:49 - wangk

Maybe we need to be able to set a reference dose then we can resample all the other doses according to the reference dose and then it will make sure they are all in same size, origin etc.

2012-12-10, 19:45:11 - Csaba Pinter

This issue is identical to the one Greg solved in #159. If you intend to fix this, please read the comments on that ticket and look at the commits and do it similarly. Thanks!

2012-12-10, 20:58:14 - Csaba Pinter

Add a Reference volume combobox to be able to set a reference for the resampling.

2012-12-10, 21:24:54 - wangk

assigned_to_id: changed from null to “wangk”

2012-12-10, 21:24:54 - wangk

status: changed from “New” to “Accepted”

2012-12-12, 18:34:11 - wangk

(In r:501|slicerrt:501) Re #166: Add code to handle parent transform node. Add code to set reference dose volume node so all input volume node will be resampled according to the reference.

2012-12-12, 18:34:36 - wangk

status: changed from “Accepted” to “Test”

2012-12-23, 20:43:17 - Csaba Pinter

status: changed from “Test” to “Fixed”

#167 Structure colors in the DVH legend are all gray

Instead of showing the real structure color

2012-11-06, 16:53:23 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2012-11-06, 16:53:25 - Csaba Pinter

milestone_id: changed from null to “SlicerRt 0.6.0 (2012-10)”

2012-11-07, 19:22:03 - Csaba Pinter

http://www.na-mic.org/Bug/view.php?id=2736 added

2012-11-12, 21:14:36 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.6.0 (2012-10)” to “SlicerRt 0.7.0 (2012-11)”

2012-11-19, 18:55:06 - Csaba Pinter

(In r:467|slicerrt:467) Fixed #167: Adding # to the beginning of the color strings made them appear correctly in the legend

2012-11-19, 18:55:06 - Csaba Pinter

status: changed from “New” to “Fixed”

#168 Create tutorial and demo for RSNA

Tasks for the RSNA convention in Chicago (Nov 25-30):

The Slicer mantis issue: http://na-mic.org/Mantis/view.php?id=2509\

2012-10-29, 14:40:12 - Csaba Pinter

milestone_id: changed from null to “SlicerRt 0.6.0 (2012-10)”

2012-11-02, 22:38:28 - Csaba Pinter

status: changed from “New” to “Accepted”

2012-11-02, 22:39:53 - Csaba Pinter

(In r:410|slicerrt:410) Re #168: Directory structure and skeleton added for SlicerRtDemo_RSNA2012_SelfTest (does exactly the same as DicomRtImportSelfTest)

2012-11-05, 02:00:25 - Csaba Pinter

(In r:412|slicerrt:412) Re #168: WIP Downloading and unzipping data and importing and loading DICOM works

2012-11-05, 18:55:55 - Csaba Pinter

(In r:413|slicerrt:413) Re #168: Download and load all data and set visualization options

2012-11-05, 19:45:29 - Csaba Pinter

(In r:414|slicerrt:414) Re #168: Register Day 2 CT to Day 1 CT using rigid and BSpline registrations

2012-11-05, 21:35:20 - Csaba Pinter

priority: changed from “High (2)” to “Highest (1)”

2012-11-05, 22:49:14 - Csaba Pinter

(In r:416|slicerrt:416) Re #168: Resample Day 2 CT to Day 1 CT using rigid and BSpline transforms and set dose attributes to the new volumes

2012-11-05, 23:06:27 - Csaba Pinter

(In r:417|slicerrt:417) Re #168: Fix module paths for RSNA self test

2012-11-05, 23:44:41 - Csaba Pinter

(In r:418|slicerrt:418) Re #168: Skeleton functions added for dose accumulation and DVH computation

2012-11-06, 02:13:28 - Csaba Pinter

(In r:419|slicerrt:419) Re #168: Dose accumulation added to SlicerRtDemo_RSNA2012_SelfTest

2012-11-06, 02:41:01 - Csaba Pinter

(In r:420|slicerrt:420) Test #168: DVH is computed and plotted in SlicerRtDemo_RSNA2012_SelfTest

2012-11-06, 02:41:01 - Csaba Pinter

status: changed from “Accepted” to “Test”

2012-11-06, 15:22:01 - Csaba Pinter

(In r:421|slicerrt:421) Fixed #175: DVH computation does not crash when using input volume that lacks dose attributes; Re #168: Buttons added to run certain parts of the test, which is useful for testing

2012-11-06, 16:39:38 - Csaba Pinter

(In r:422|slicerrt:422) Re #168: Fix SlicerRtDemo_RSNA2012_SelfTest automatic test

2012-11-12, 21:12:40 - Csaba Pinter

status: changed from “Test” to “Fixed”

#169 Convert Plastimatch B-spline registration to loadable module

Currently plastimatch b-spline is only available as command line module. The goal of this ticket is to create a loadable module for plastimatch b-spline registration.

2012-10-31, 15:35:48 - Greg Sharp

(In r:392|slicerrt:392) Re #169: Rename slicer components of PlmSlicerBspline to conform to SlicerRt naming convention; fix PlmSlicerBspline build

2012-12-29, 00:18:20 - Greg Sharp

status: changed from “New” to “Accepted”

2012-12-29, 00:19:21 - Greg Sharp

(In r:526|slicerrt:526) Re #169: Bump plastimatch svn version for experimental builds

2012-12-29, 00:20:17 - Greg Sharp

(In r:527|slicerrt:527) Re #169: Plm Bspline loadable module can now run a registration

2013-08-26, 15:08:06 - Greg Sharp

This effort is abandoned in favor of python wrapper.

2013-08-26, 15:08:06 - Greg Sharp

status: changed from “Accepted” to “Invalid”

#170 Improve leak finder

There are some ideas to improve LeakFinder. Further ideas are to be discussed under this ticket.

2012-11-01, 20:50:09 - Csaba Pinter

description: changed from “There are some ideas to imp…” to “There are some ideas to imp…”

2012-11-01, 20:57:12 - Csaba Pinter

description: changed from “There are some ideas to imp…” to “There are some ideas to imp…”

#171 Create Slicer 4.2 branch for the SlicerRt extension

See Jc’s email:

From: slicer-devel-bounces@bwh.harvard.edu [mailto:slicer-devel-bounces@bwh.harvard.edu] On Behalf Of Jean-Christophe Fillion-Robin Sent: Thursday, November 01, 2012 3:47 PM To: Slicer devel Subject: [slicer-devel] Important - Extensions and Slicer 4.2

Dear Extensions developer,

Last week, when 4.2rc1 was made, I created a branch 4.2.0 (based on master) on the extensions index repository.

See https://github.com/Slicer/ExtensionsIndex/tree/4.2.0

Starting today and continuing tomorrow, the plan is to:

(1) Review list of extensions, check dashboard and documentation. I will then contact each extension developer.

(2) Reset 4.2.0 branch so that it corresponds to today’s master.

(3) Build the set of extensions that will be associated with 4.2 release using the 4.2.0 branch.

(4) Setup build scripts that will build 4.2.0 extensions on both a nightly and continuous basis.

What are the implication for extension developers ?

These past few months, you’all have been submitting topics with your updated description file. Then, these ones have been integrated either (a) with manual merge or (b) using pull request by extension index gate keepers.

Moving forward, the Slicer Core will evolve and backward compatibility will be broken, API will be refined and/or refactored, library version will be updated … just to name few: ITKv4, Qt 4.8, …

If you plan on developing your extension against both Slicer 4.2 release and Slicer Nightly, I would recommend you to create a branch named ‘4.2’ where you would backport bug fixes and improvement specific to 4.2 release.

Practically, I would also recommend to have two build trees on your developer workstation:

1) Slicer-Superbuild-Release - build against a source tree following slicer trunk

2) Slicer-Superbuild-420-Release - build against Slicer r21298 corresponding to Slicer 4.2 release.

Note that if you check out tag v4.2.0 using git, you will have to make sure to sync with svn so your build of Slicer is associated with svn r21298.

Having these two build tree would allow you to build and test your extension in the 4.2 and Nightly scenario.

Consider also reading extensions manual build instructions.

Let me know if you have any questions, Thanks Jc

2012-11-05, 21:09:57 - Andras Lasso

assigned_to_id: changed from null to “pinter”

2012-11-05, 21:15:43 - Andras Lasso

Create a ticket in each trunk release ‘Merge changes to 4.2 branch and test’.

2012-11-05, 21:36:26 - Csaba Pinter

priority: changed from “Normal (3)” to “High (2)”

2012-11-07, 16:53:55 - Csaba Pinter

status: changed from “New” to “Accepted”

2012-11-07, 16:57:34 - Csaba Pinter

(In r:424|slicerrt:424) Re #171: SlicerRt source 4.2 branch created

2012-11-07, 16:59:46 - Csaba Pinter

(In r:425|slicerrt:425) Re #171: SlicerRt source 4.2 branch directory deleted

2012-11-07, 17:00:19 - Csaba Pinter

(In r:426|slicerrt:426) Re #171: SlicerRt source 4.2 branching made

2012-11-13, 17:28:51 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

#172 When the user deletes the active representation of a Contour node, it doesn’t handle it well

It should detect it and automatically switch to another one (preferably one that can be used as input for all others)

2012-11-20, 15:51:22 - Csaba Pinter

status: changed from “New” to “Accepted”

2012-11-20, 16:40:04 - Csaba Pinter

(In r:468|slicerrt:468) Test #172: If the active representation of a contour is deleted, then the first available active representation is set (order: Ribbon, Labelmap, Closed surface)

2012-11-20, 16:40:04 - Csaba Pinter

status: changed from “Accepted” to “Test”

2012-12-10, 21:21:27 - Csaba Pinter

status: changed from “Test” to “Fixed”

#173 Edited contour cannot be converted to closed surface

Kevin noticed this when tested the contour expansion

2012-11-05, 21:36:52 - Csaba Pinter

priority: changed from “Normal (3)” to “High (2)”

2012-11-07, 19:50:25 - Csaba Pinter

status: changed from “New” to “Accepted”

2012-11-07, 20:04:37 - Csaba Pinter

It works for me.

Kevin: Can you reproduce it now? If you can, would you please describe exactly what you did?

2012-11-07, 20:04:37 - Csaba Pinter

status: changed from “Accepted” to “Test”

2012-11-07, 20:25:33 - wangk

image:binz4IkrKr4RInacwqjQWU

2012-11-07, 20:25:33 - wangk

Attachment added: “screenshot-1352319923604.jpg”

2012-11-07, 20:27:10 - wangk

it works now.

just a side note. when converting from ribbon/labelmap to surface model, the model looks very rough just like ribbon model. maybe some kind of smoothing can be applied to smooth the surface model. see attachment for converted surface model.

2012-11-07, 20:35:13 - Csaba Pinter

I created a ticket #178 for the smoothing

2012-11-07, 20:35:13 - Csaba Pinter

status: changed from “Test” to “Invalid”

#174 Automatic test for Contour Morphology module

Regression test for Contour Morphology module.

2012-11-05, 21:33:22 - wangk

status: changed from “New” to “Accepted”

2012-11-07, 20:12:51 - wangk

(In r:432|slicerrt:432) Re #174: Initial check in of the testing code.

2012-12-23, 20:43:24 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.7.0 (2012-11)” to “SlicerRt 0.8.0 (2012-12)”

2013-01-24, 16:59:59 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.8.0 (2013-01)” to “SlicerRt 0.9.0 (2013-03)”

2013-03-18, 19:06:42 - wangk

(In r:697|slicerrt:697) Re #174: Improved the test to examine more morphological operations and fixed failing test.

2013-03-18, 19:07:37 - wangk

(In r:698|slicerrt:698) Re #174: Check in the baseline image for shrinking operation.

2013-03-19, 14:56:45 - wangk

status: changed from “Accepted” to “Test”

2013-03-26, 19:12:42 - Csaba Pinter

status: changed from “Test” to “Accepted”

2013-03-26, 19:13:43 - Csaba Pinter

(In r:703|slicerrt:703) Re #174: Fixed wrong comments in vtkSlicerContourMorphologyModuleLogicTest1

2013-03-27, 21:28:32 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

#175 DVH module crash when the input dose volume misses the needed attributes

2012-11-06, 15:20:21 - Csaba Pinter

status: changed from “New” to “Accepted”

2012-11-06, 15:22:01 - Csaba Pinter

(In r:421|slicerrt:421) Fixed #175: DVH computation does not crash when using input volume that lacks dose attributes; Re #168: Buttons added to run certain parts of the test, which is useful for testing

2012-11-06, 15:22:01 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

#176 Merge 0.6.0 changes to 4.2 branch and test

2012-11-13, 17:36:48 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2012-11-13, 20:51:40 - Csaba Pinter

status: changed from “New” to “Accepted”

2012-11-15, 22:24:15 - Csaba Pinter

(In r:459|slicerrt:459) Re #176: Trunk changes merged to 4.2

2012-11-15, 22:37:31 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

#177 Merge 0.7.0 changes to 4.2 branch and test

2012-11-13, 18:52:13 - Csaba Pinter

priority: changed from “Normal (3)” to “Lowest (5)”

2012-12-23, 23:54:01 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2012-12-23, 23:54:08 - Csaba Pinter

status: changed from “New” to “Accepted”

2012-12-23, 23:54:37 - Csaba Pinter

See why the 4.2 nightly has these (http://slicer.cdash.org/viewTest.php?onlyfailed&buildid=53502) errors on chiasma

2012-12-24, 20:27:01 - Csaba Pinter

It seems it’s something with my build directory. I’m making the release as it’s not a real error.

2012-12-24, 20:28:36 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

#178 Add smoothing option to conversion to closed surface model representation

2015-01-16, 05:10:17 - Csaba Pinter

milestone_id: changed from “Future” to “SlicerRt 0.17 (Segmentations)”

2015-02-23, 02:43:50 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.17 (Segmentations)” to “Future”

2015-11-05, 19:52:36 - Csaba Pinter

milestone_id: changed from “Future” to “SlicerRt 0.18”

2015-11-05, 19:53:49 - Csaba Pinter

Fixed #178: Added smoothing option to binary labelmap to closed surface conversion Commit: r:2489|slicerrt:2489

2015-11-05, 19:53:49 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2015-11-05, 19:53:49 - Csaba Pinter

status: changed from “New” to “Fixed”

#179 Colors are sometimes not passed after loading a scene

If I convert a contour to closed surface representation after loading from DICOM module, it works fine, but if I do the same after saving a scene, it cannot find the color table entry.

The problem is that when saving a scene, the spaces in the color table entry names are replaced with underscores (eg. ‘Femoral Head Lt’ -> ‘Femoral_Head_Lt’), so the original structure name cannot be found in the color table any more.

Possible solutions:

  1. Save them in the color table with underscores in the first place (workaround)
  2. When looking for the color, try to find it both with spaces both with underscores (workaround)
  3. Change vtkMRMLColorTableNode WriteXML so that it can handle color names that include spaces (takes longer as we have to bug the Slicer guys and have their approval)

2012-11-21, 17:00:57 - Csaba Pinter

(In r:470|slicerrt:470) Re #179: Workaround implemented for the colors whose name contains spaces until the issue http://www.na-mic.org/Bug/view.php?id=2783 is fixed in Slicer core

2012-11-21, 17:00:57 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2012-11-21, 17:01:24 - Csaba Pinter

Remove workaround when http://www.na-mic.org/Bug/view.php?id=2783 is fixed in Slicer core

2012-11-21, 17:01:30 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.7.0 (2012-11)” to “Future”

2013-06-04, 22:56:01 - Csaba Pinter

milestone_id: changed from “Future” to “SlicerRt 0.11.0 (2013-05)”

2013-06-04, 22:56:03 - Csaba Pinter

status: changed from “New” to “Fixed”

#180 DVH computation fails on non-dose volumes

Tested on Slicer 4.2.0-2012-11-05 (Win64).

How to reproduce:

If I compute some DVH using the real dose volume and then select the CT as dose volume then there is no crash, but no DVH results appear.

2012-11-08, 17:51:36 - Csaba Pinter

status: changed from “New” to “Accepted”

2012-11-08, 17:54:35 - Csaba Pinter

Works for me both with Slicer versions on 2012-11-01 and 2012-11-07.

2012-11-08, 19:01:40 - Andras Lasso

Does it work for you with the official nightly release (Slicer 4.2.0-2012-11-05 (Win64))?

2012-11-08, 19:05:29 - Csaba Pinter

This bug was fixed in revision url:https://www.assembla.com/code/slicerrt/subversion/changesets/421|421. It fixed #175 which was a ticket for the very same issue.

2012-11-08, 19:09:30 - Andras Lasso

OK, great, then the ticket can be closed now.

2012-11-08, 19:10:55 - Csaba Pinter

status: changed from “Accepted” to “Invalid”

#181 RSNA demo self test leaks

There is a stuck observer

Also BRAINS Registration crashes sometimes (maybe due to executable CLIs)

2012-11-15, 22:40:02 - Csaba Pinter

description: changed from “There is a stuck observer” to “There is a stuck observer

…”

2012-12-10, 21:20:55 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.7.0 (2012-11)” to “SlicerRt 0.8.0 (2012-12)”

2013-01-24, 16:59:59 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.8.0 (2013-01)” to “SlicerRt 0.9.0 (2013-03)”

2013-03-24, 19:57:07 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.9.0 (2013-03)” to “SlicerRt 0.10.0 (2013-04)”

2013-03-28, 19:24:51 - Csaba Pinter

The output is: 36: Class ‘vtkObserverManager’ has 2 instances still around. 36: Class ‘vtkMRMLHierarchyNode’ has 2 instances still around. 36: Class ‘vtkCommand or subclass’ has 4 instances still around.

2013-03-28, 19:26:47 - Csaba Pinter

(In r:709|slicerrt:709) Re #181: Added variable that can be used to omit the BSpline registration in the RSNA2012 self test, to make it much quicker to run (and performing the very same SlicerRT steps at the same time). This variable turns it off by default

2013-03-28, 19:26:47 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2013-03-28, 19:51:02 - Csaba Pinter

DicomRtImportSelfTest leaks the same way

2013-03-28, 20:14:47 - Csaba Pinter

(In r:711|slicerrt:711) Re #181: DicomRtImportSelfTest fixed (but leaks)

2013-03-28, 21:11:44 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.10.0 (2013-04)” to “SlicerRt 0.9.0 (2013-03)”

2013-03-28, 21:12:03 - Csaba Pinter

status: changed from “New” to “Accepted”

2013-03-28, 21:12:06 - Csaba Pinter

component_id: changed from “None” to “SlicerRt modules”

2013-03-28, 21:15:56 - Csaba Pinter

(In r:713|slicerrt:713) Fixed #181: Fixed data loading leak, all tests pass now without leaks

2013-03-28, 21:15:56 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

#182 Isodose automatic tests fails on Kitware factory machines

But on our computers it passes

2012-11-19, 20:50:50 - Csaba Pinter

After the factory machine reinstall, the tests pass

2012-11-19, 20:50:50 - Csaba Pinter

status: changed from “New” to “Invalid”

#183 ContourMorphology module issues and enhancements

I’ve done some testing today on the most recent version of the experimental ContourMorphology module (SVN rev 440) and found the followings:

2012-11-14, 21:34:30 - wangk

I have tested the following issues and here is my comments:

2012-11-14, 21:34:30 - wangk

status: changed from “New” to “Accepted”

2012-11-14, 21:47:30 - wangk

(In r:446|slicerrt:446) Re #183: Check if the contour representation is labelmap before operation.

2012-11-14, 21:54:46 - Andras Lasso

‘change the code so it will check the representation of the contour and will not perform morphology if it is not labelmap’ => this should not be the final solution. Regardless of what is the current representation, the module should work on any contour. You can choose between the following options:

‘contour are not under hierarchy’ => There is a contour hierarchy (similar to models, annotations, and transforms). They are completely independent from the model hierarchies. Unfortunately, currently you can’t see or edit the contour hierarchy in the Data module, but we plan to implement that, too. See ‘vtkMRMLContourHierarchyNode’ and/or ask Csaba about the details.

Default output contour name: it’s planned to be implemented for other modules as well, so check with Csaba about how he does it.

2012-11-14, 22:02:00 - wangk

I already do the option 2 by display a warning text once user select a contour that does not contain labelmap. just like in DVH module if user pick a none dose volume.

Yes. you are right. the contour hierarchy is not displayed correctly in the data module. that is what I mean. I will add the new contour into the hierarchy.

I will check with Csaba about the default output name.

2012-12-10, 21:26:40 - wangk

Need to take care of the transform node when it is associated with a dose volume.

2012-12-12, 19:08:00 - wangk

(In r:502|slicerrt:502) Re #183: Add code to handle parent transform node.

2012-12-23, 20:43:28 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.7.0 (2012-11)” to “SlicerRt 0.8.0 (2012-12)”

2013-01-24, 16:59:59 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.8.0 (2013-01)” to “SlicerRt 0.9.0 (2013-03)”

2013-01-24, 17:35:51 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.9.0 (2013-03)” to “SlicerRt 0.8.0 (2013-01)”

2013-01-25, 19:19:48 - wangk

(In r:579|slicerrt:579) Re #183: Fixed some UI logic problems.

2013-01-25, 19:20:30 - wangk

status: changed from “Accepted” to “Test”

2013-02-02, 23:55:12 - Csaba Pinter

status: changed from “Test” to “Fixed”

#184 Fix small outstanding issues before the 0.6.0 release

SlicerRT issues:

SlicerRT enhancements:

Slicer core issues:

2012-11-14, 01:08:54 - Greg Sharp

Hi Csaba, Thank you for the detailed report. I will fix plastimatch plugins.

I tested plastimatch B-spline here (linux), and it is working fine.
This is windows? Is it release version of slicer, or you built it? Is it downloaded extension or you built it?

2012-11-14, 13:39:34 - Csaba Pinter

Hi Greg, Andras discovered these bugs, I should have mentioned it in the ticket description. I’m pretty sure he tested on Windows 7, with Slicer and SlicerRT manually built in 64 bit.

2012-11-14, 14:10:21 - Greg Sharp

OK, thanks. I did test 32-bit build on windows 7, and B-spline is working well there too.

LANDWARP is a different issue. Slicer changed the fiducials to annotations, and now I can’t even create fiducial lists which are required for input.

2012-11-14, 14:24:01 - pieper

Hi Greg - let me know if you need any help with the new fiducials API. -Steve

2012-11-14, 20:54:35 - Csaba Pinter

(In r:444|slicerrt:444) Re #156: Fix small UI bug in Contours module; Re #184: Backface culling disabled

2012-11-14, 20:55:06 - Csaba Pinter

status: changed from “New” to “Accepted”

2012-11-14, 21:50:37 - Greg Sharp

(In r:449|slicerrt:449) Re #184: Fix problem where LANDWARP crashes Slicer

2012-11-14, 22:10:26 - Csaba Pinter

(In r:451|slicerrt:451) Re #184: Dose comparison module also warns of non-dose volumes when just entering the module.

2012-11-14, 22:14:36 - Csaba Pinter

description: changed from “SlicerRT issues:

2012-11-15, 01:45:11 - Greg Sharp

description: changed from “SlicerRT issues:

2012-11-15, 17:17:50 - Csaba Pinter

(In r:452|slicerrt:452) Re #184: Error message is displayed on the module UI when the accumulation fails; Warning message brought to life (it never appeared)

2012-11-15, 17:18:02 - Csaba Pinter

description: changed from “SlicerRT issues:

2012-11-15, 17:22:26 - Csaba Pinter

Re: ‘Isodose: when increasing the number of iso levels with the spinbox then for every 2nd item the color is black and the opacity is 0’

For me every color after the 6th one (7,8,9,…) is gray with opacity 0.8. What is the desired behavior?

2012-11-15, 17:26:25 - Csaba Pinter

Re: ‘Isodose: when editing the number of isolevels in the editbox from the default 6 to 10 then all the level values are replaced by ‘(none)’ (except the first). The colors and opacity values are correctly preserved.’

It is because when you start typing 10, the first character is 1 so it decreases the number so forgetting the labels when deleting the colors. I don’t know if it is an issue to take care of. I think the only thing we can do is to keep track of the level names in the module, and restore them if the number is decreased then increased again. Thoughts?

2012-11-15, 18:26:23 - Csaba Pinter

(In r:453|slicerrt:453) Re #184: DVH metrics table show ‘Max intensity’ instead of ‘Max dose (N/A)’ in absence of dose unit (similarly with mean and min)

2012-11-15, 18:28:18 - Csaba Pinter

description: changed from “SlicerRT issues:

2012-11-15, 18:58:30 - Csaba Pinter

description: changed from “SlicerRT issues:

2012-11-15, 18:58:45 - Csaba Pinter

(In r:454|slicerrt:454) Re #184: Dose Accumulation and Dose Comparison modules set the output volume base name from the selected input volume names

2012-11-15, 20:07:07 - Csaba Pinter

(In r:455|slicerrt:455) Re #184: Reference volume MRML combobox in Contour Comparison module is replaced with a message saying ‘Both input contours have indexed labelmap representations, no reference volume is needed’ when both input contours have labelmaps

2012-11-15, 20:07:28 - Csaba Pinter

description: changed from “SlicerRT issues:

2012-11-15, 20:14:21 - Csaba Pinter

(In r:456|slicerrt:456) Test #184: RT dose volume names are forced to be unique

2012-11-15, 20:14:21 - Csaba Pinter

status: changed from “Accepted” to “Test”

2012-11-15, 20:14:32 - Csaba Pinter

description: changed from “SlicerRT issues:

2012-11-15, 21:46:18 - Csaba Pinter

(In r:457|slicerrt:457) Re #184: Conversion section of the Contours module doesn’t change the ‘convert to’ representation for easier successive conversions, and the parameters only if they haven’t been set before (no conversion was performed to that representation)

2012-11-15, 21:46:21 - Csaba Pinter

description: changed from “SlicerRT issues:

2012-11-15, 22:12:39 - Csaba Pinter

(In r:458|slicerrt:458) Re #184: LANDWARP crash fixed: returns with error if any of the input fiducial lists are empty

2012-11-15, 22:14:04 - Csaba Pinter

@gregsharp: please review my latest commit about the LANDWARP inputs and tell me if my assumption (that the input fiducial lists need to contain real fiducials) is wrong. Thanks!

2012-11-15, 22:14:04 - Csaba Pinter

description: changed from “SlicerRT issues:

2012-11-15, 22:20:23 - Greg Sharp

Yes, that is a reasonable suggestion. Thanks! We can think about a more robust solution, such as error message to user, after converting to loadable module.

2012-11-15, 22:25:48 - Csaba Pinter

status: changed from “Test” to “Fixed”

#185 Crash when importing DICOM RT after closing scene

It doesn’t happen all the time so it is needed to find out what causes the crash exactly

2012-11-14, 22:08:40 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.6.0 (2012-10)” to “SlicerRt 0.7.0 (2012-11)”

2012-11-14, 22:09:09 - Csaba Pinter

description: changed from “” to “It doesn’t happen all the t…”

2012-11-19, 17:45:52 - Csaba Pinter

status: changed from “New” to “Accepted”

2012-11-19, 21:07:46 - Csaba Pinter

I tried to reproduce this in many ways, but I could not. It happened on my computer a couple of times and it seemed to be consistent but now it’s gone.

Andras, Kevin, have you encountered this crash? Can you try to reproduce it and let me know if you can?

2012-11-20, 15:50:34 - Csaba Pinter

status: changed from “Accepted” to “Test”

2012-11-21, 17:03:50 - Csaba Pinter

I identified the crash. It happens when the scene is closed and then importing SlicerRT while Contour node is active.

2012-11-21, 17:03:50 - Csaba Pinter

status: changed from “Test” to “Accepted”

2012-11-21, 17:06:17 - Csaba Pinter

(In r:471|slicerrt:471) Fixed #185: Crash fixed when closing the scene and loading RT data when the Contours module was active

2012-11-21, 17:06:17 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

#186 DVH computation fails when using the same structure with dose and then CT

If I compute a DVH for the Rando prostate Bladder structure on its dose volume and then its CT volume, the intensity histogram is not created (DVHLogic::461 no voxels in structure). The order doesn’t matter, it fails when I first compute with the CT. I think part of the structure is out of the second volume and the contour is not re-converted

There are two problems with this:

2012-11-16, 16:04:40 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2012-11-16, 18:28:42 - Csaba Pinter

status: changed from “New” to “Accepted”

2012-11-16, 18:31:01 - Csaba Pinter

(In r:461|slicerrt:461) Re #186: DVH module displays error message on module UI when computing fails; Important fix of DVH module: it could not convert to indexed labelmap without explicitly specifying conversion parameter

2012-11-16, 20:01:17 - Csaba Pinter

(In r:462|slicerrt:462) Re #186: Fix small UI layout issue in DVH module

2012-11-17, 00:01:00 - Csaba Pinter

(In r:466|slicerrt:466) Test #186: Indexed labelmap is reconverted before DVH computation if the dose volume is changed

2012-11-17, 00:01:00 - Csaba Pinter

status: changed from “Accepted” to “Test”

2012-12-03, 20:47:30 - Csaba Pinter

status: changed from “Test” to “Fixed”

#187 Undesired deletion of isodose levels when entering two-digit number

When editing the number of isolevels in the editbox from the default 6 to 10 then all the level values are replaced by ‘(none)’ (except the first). The colors and opacity values are correctly preserved

It is because when you start typing 10, the first character is 1 so it decreases the number so forgetting the labels when deleting the colors. I don’t know if it is an issue to take care of. I think the only thing we can do is to keep track of the level names in the module, and restore them if the number is decreased then increased again.

2012-11-19, 21:41:33 - Csaba Pinter

priority: changed from “Normal (3)” to “Low (4)”

2012-12-10, 19:27:15 - wangk

assigned_to_id: changed from null to “wangk”

2012-12-10, 19:27:15 - wangk

status: changed from “New” to “Accepted”

2012-12-10, 19:31:21 - wangk

(In r:498|slicerrt:498) Re #187: Fixed the code so the colortable is reinitialized every time the user modifies the number of levels.

2012-12-10, 19:31:29 - wangk

status: changed from “Accepted” to “Test”

2012-12-23, 18:48:50 - Mattea Welch

When the number of isolevels is increased using the arrows the initial 6 labels stay correct but the new isolevel labels are set as ‘(none)’. The initial problem of typing in 10 to the editbox and having the isolevel labels replaced by ‘(none)’ (except the first one) still occurs.

2012-12-23, 20:43:44 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.7.0 (2012-11)” to “SlicerRt 0.8.0 (2012-12)”

2013-01-23, 18:54:52 - Csaba Pinter

@wangk: Can you try it again based on Mattea’s comment?

2013-01-23, 18:54:52 - Csaba Pinter

status: changed from “Test” to “New”

2013-01-23, 19:11:57 - wangk

The initial 6 labels are our predefined isodose levels. If you need more levels, then you need to define it or we can set the predefined levels to 10 or 20. this way it will cover a large range.

The initial problem should be fixed already. @mwelch, can you check if you are building the latest slicerRT please?

Thanks.

2013-01-24, 17:06:41 - Csaba Pinter

status: changed from “New” to “Fixed”

#188 Handle putting the active contour representation under a transform

Detect it and put all other existing representations under the same transform. Probably we should also move the Contour node under the same parent transform.

Created from https://www.assembla.com/spaces/slicerrt/messages/2452583

2012-11-20, 16:49:05 - Csaba Pinter

status: changed from “New” to “Accepted”

2012-11-20, 20:32:01 - Csaba Pinter

(In r:469|slicerrt:469) Re #188: When the parent transform of a representation changes, the contour and the other representations are put under the same transform (not reflected in the Data module for some reason)

2012-11-20, 20:32:01 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2012-11-20, 20:43:29 - Csaba Pinter

There are two problems in Slicer core related to this feature:

  1. The Contour nodes do not appear in the transformable tree view in the Transforms module, and also cannot be drag&dropped in the Data module (when in Transform mode), so it is impossible to put a Contour under a transform. Maybe it is not important, but definitely strange, as the Contour nodes are transformable.
  2. When changing the parent node of a Contour node programatically, it does not appear under the transform node in the Data module. Probably the source of these two problems are the same, investigating now.

Note: Fixed by changing vtkTypeMacro ( vtkTypeMacro(vtkMRMLContourNode,vtkMRMLNode); => vtkTypeMacro(vtkMRMLContourNode,vtkMRMLDisplayableNode); )

2012-11-21, 20:37:11 - Csaba Pinter

(In r:472|slicerrt:472) Test #188: If a contour node or one of its representation is moved under a transform then the rest of the bundle is moved there as well. The newly created representations are put under the same transform too.

2012-11-21, 20:37:11 - Csaba Pinter

status: changed from “Accepted” to “Test”

2012-11-22, 15:54:38 - Csaba Pinter

(In r:474|slicerrt:474) Re #188: Fixed vtkObserverManager warning

2012-12-03, 20:47:38 - Csaba Pinter

status: changed from “Test” to “Fixed”

#189 Determine DVH labelmap conversion oversampling factor based on structure size

Ratio of boundary voxels is higher in case of structures with small volume, so the DVH is much more sensitive for the selection of the inlcuded voxels. A small difference in the way of determining the included voxels may result in a big difference in the DVH values. To reduce this effect, a solution can be simply to increase the resolution of the labelmaps created from these structures.

Proposed solution:

This approach is also suggested in the following paper: R. E. Drzymala, R. Mohan, L. Brewster, J. Chu, M. Goitein, W. Harms, and M. Urie. ‘Dose-volume histograms’. International Journal of Radiation Oncology* Biology* Physics, 21(1), 71-78 (1991).

2014-04-06, 15:30:28 - Csaba Pinter

description: changed from “Ratio of boundary voxels is…” to “Ratio of boundary voxels is…”

2014-04-06, 15:30:34 - Csaba Pinter

priority: changed from “Low (4)” to “Normal (3)”

2015-01-30, 14:24:12 - Csaba Pinter

I chose this as my CISC870 (Fuzzy Logics) course project.

2015-01-30, 14:24:12 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2015-01-30, 14:24:12 - Csaba Pinter

milestone_id: changed from “Future” to “SlicerRt 0.16”

2015-01-30, 14:25:17 - Csaba Pinter

The oversampling parameter will be determined based on relative structure size and structure ‘complexity’ via fuzzy rules.

2015-02-07, 02:16:04 - Csaba Pinter

status: changed from “New” to “Accepted”

2015-02-16, 19:39:47 - Csaba Pinter

Re #189: Added skeleton for oversampling factor calculator class Commit: r:2148|slicerrt:2148

2015-02-16, 22:57:42 - Csaba Pinter

Re #189: User interface for automatic oversampling factor calculation Commit: r:2149|slicerrt:2149

2015-02-17, 22:12:19 - Csaba Pinter

Re #189: Added automatic oversampling logic to all places that uses oversampling; Contour has an explicit flag for automatic oversampling, which allowed getting rid of the magic number. Commit: r:2151|slicerrt:2151

2015-02-18, 15:58:41 - Csaba Pinter

Re #189: Fixed DVH computation with new automatic oversampling possibility (algorithm is not implemented yet, it always returns 1); ‘Consolidated’ temporary contour nodes are not added to the scene now, adding unexpected nodes at every DVH computation.

Commit: r:2152 slicerrt:2152

2015-02-18, 21:12:10 - Csaba Pinter

Re #189: Implemented relative structure size and structure complexity measures for automatic oversampling calculation Commit: r:2156|slicerrt:2156

2015-02-19, 23:31:11 - Csaba Pinter

image:bzADACUi8r5kGMdmr6bg7m

2015-02-19, 23:52:00 - Csaba Pinter

file:bl-Kw2Ujir5iGodmr6bg7m

2015-02-19, 23:52:00 - Csaba Pinter

Attachment added: “Oversampling_Measures.xlsx”

2015-02-19, 23:53:48 - Csaba Pinter

Re #189: Fuzzy memberships and rules defined for automatic oversampling calculation Commit: r:2160|slicerrt:2160

2015-02-20, 19:44:33 - Csaba Pinter

Re #189: Implement clipping of membership functions; Add concept of experimental complexity measurement scaling (experimentally, NSI of ribbons is 85% of that for closed surfaces of the same structures) Commit: r:2161|slicerrt:2161

2015-02-20, 23:04:02 - Csaba Pinter

Re #189: Implemented fuzzy decision making for automatic oversampling calculation. Sensible oversampling factors are calculated for the used test data, although the membership functions could use some adjustment. Commit: r:2164|slicerrt:2164

2015-02-22, 02:23:39 - Csaba Pinter

Re #189: Output fuzzy sets changed to more natural distribution (4 sets for 4 possible output values instead of 3 sets); Bug fixed for center of mass sub-area calculation; Test log code left in place for possible later use Commit: r:2166|slicerrt:2166

2015-02-22, 17:32:12 - Csaba Pinter

Test #189: Removed test code from automatic oversampling calculation Commit: r:2168|slicerrt:2168

2015-02-22, 17:32:12 - Csaba Pinter

status: changed from “Accepted” to “Test”

2015-02-23, 01:27:51 - Csaba Pinter

file:bl-Kw2Ujir5iGodmr6bg7m

2015-02-23, 01:27:51 - Csaba Pinter

attachment_updated:filesize: changed from “27733” to “27437”

2015-02-23, 01:28:03 - Csaba Pinter

file:a18FRMUVSr5jZdacwqjQWU

2015-02-23, 01:28:03 - Csaba Pinter

Attachment added: “TimeMeasurements.xlsx”

2015-02-23, 02:38:01 - Csaba Pinter

See test results in attached tables.

2015-02-23, 02:38:01 - Csaba Pinter

status: changed from “Test” to “Fixed”

2015-02-25, 20:22:26 - Csaba Pinter

file:adXxCyVsWr5lBdacwqEsg8

2015-02-25, 20:22:26 - Csaba Pinter

Attachment added: “AtomaticDvhTestResultsComparison.xlsx”

2015-02-25, 20:23:14 - Csaba Pinter

Re #189: Automatic nightly test added for DVH using automatic oversampling calculation Commit: r:2170|slicerrt:2170

#190 Build fails on linux and mac due to Plastimatch changes

2012-11-26, 20:59:24 - Greg Sharp

I couldn’t reproduce here. What is the problem?

2012-11-26, 21:19:13 - Csaba Pinter

All the nightly (both trunk and 4.2) builds on linux and mac fail. The error message is about including plmbase.h (http://slicer.cdash.org/viewBuildError.php?buildid=49206). The problem is, that their nightlies use the latest version from the ExtensionIndex, which still uses plmbase.

I’ll update the ExtensionIndex files, hopefully it will fix that.

2012-11-26, 21:33:35 - Greg Sharp

Well, this is odd. I updated the SlicerRt code at the same time I updated the plastimatch code on Nov 22 (see https://www.assembla.com/code/slicerrt/subversion/changesets/477), but this build is from Nov 24.

For the CDash tests, is the SlicerRt version frozen? If so, plastimatch version should be frozen too.

2012-11-26, 21:40:23 - Csaba Pinter

Yes, this is a dilemma.

(The link I sent you is for the 24th indeed, but the same is the case with today’s dashboard.)

2012-11-26, 21:40:23 - Csaba Pinter

status: changed from “New” to “Accepted”

2012-11-26, 22:18:29 - Csaba Pinter

(In r:480|slicerrt:480) Re #190: Fix Plastimatch SVN revision to the one SlicerRT was tested with

2012-11-26, 23:18:32 - Andras Lasso

‘SlicerRt version frozen? If so, plastimatch version should be frozen too’

For the Slicer 4.2 branch the freeze of SlicerRT is intentional. For the Slicer trunk there is some lag of the SlicerRT version update due to a limitation in the extension submission process (we are forced to specify a revision number for the extension, cannot just specify the latest trunk).

For the Slicer 4.2 branch we should just specify all the revisions of SlicerRT and Plastimatch.

For Slicer trunk we should request a change in the extension update procedure: we should be allowed to specify a latest trunk version of a repository. Otherwise the process is just too complicated (need to commit a revision to Plastimatch, update the Plastimatch revision and related code in SlicerRT, commit that revision, then push an ExtensionIndex update, create a pull request, wait for the completion, wait for the dashboard results, fix the problems reported on the dashboards and start again).

2012-12-03, 17:58:49 - Csaba Pinter

I am thinking about the advantages and disadvantages of freezing Plastimatch revision in the SlicerRT trunk.

My personal opinion is that we should freeze Plastimatch version in the trunk too. Then if we find that it doesn’t work after all, we can request this change in the Slicer extension update procedure.

2012-12-07, 17:50:20 - Greg Sharp

I feel this is a good solution.

2012-12-07, 17:57:26 - Csaba Pinter

Greg, Do you have ‘releases’ or revisions that are tagged as stable? Or should I just test SlicerRT and if it works well then consider the actual revision stable?

2012-12-07, 18:26:59 - Greg Sharp

All revisions which pass regression tests are considered stable. However, I do also sometimes make tarball releases.

I propose running both SlicerRT & plastimatch regression tests. If both suites pass, then the revision is stable.

2012-12-07, 19:18:02 - Csaba Pinter

I tried to run the Plastimatch tests, but all of them fail. I’m doing something wrong. Here is an example how I try to run one test and what I get.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
> C:\\devel\\SlicerRT_R64-bin\\Plastimatch-build>ctest -C Release -R donut-1 -V

2: Test command: 'C:\\Program Files (x86)\\CMake 2.8\\bin\\cmake.exe' '-DTESTNAME=donut-1' '-DITK_LIBRARY_PATH=C:/devel/Slicer_Trunk_R64-bin/ITKv3-build/bin/Release' '-DPLM_
PLASTIMATCH_PATH=C:/devel/SlicerRT_R64-bin/Plastimatch-build/Release' '-DPLM_FFTW_PATH=FFTW_DIR-NOTFOUND' '-DPLM_TEST_COMMAND=C:/devel/SlicerRT_R64-bin/Plastimatch-build
/Release/plastimatch' '-DPLM_TESTING_SOURCE_DIR=C:/devel/SlicerRT_R64-bin/Plastimatch/Testing' '-DPLM_BUILD_TESTING_DIR=C:/devel/SlicerRT_R64-bin/Plastimatch-build/Testi
ng' '-DPARMS=synth;--output;C:/devel/SlicerRT_R64-bin/Plastimatch-build/Testing/donut-1.mha;--output-ss-img;C:/devel/SlicerRT_R64-bin/Plastimatch-build/Testing/donut-ss-
1.mha;--output-type;float;--pattern;donut;--origin;-25 -25 -25;--dim;38 38 38;--volume-size;50 50 50;--donut-radius;10 10 10;--background;-1000;--foreground;0;--output-d
icom;C:/devel/SlicerRT_R64-bin/Plastimatch-build/Testing/donut-1-dicom' '-P' 'C:/devel/SlicerRT_R64-bin/Plastimatch/cmake/RUN_CTEST.cmake'
2: Test timeout computed to be: 9.99988e+006
2: PLM_TEST_COMMAND is C:/devel/SlicerRT_R64-bin/Plastimatch-build/Release/plastimatch
2: PARMS is synth;--output;C:/devel/SlicerRT_R64-bin/Plastimatch-build/Testing/donut-1.mha;--output-ss-img;C:/devel/SlicerRT_R64-bin/Plastimatch-build/Testing/donut-ss-1
.mha;--output-type;float;--pattern;donut;--origin;-25 -25 -25;--dim;38 38 38;--volume-size;50 50 50;--donut-radius;10 10 10;--background;-1000;--foreground;0;--output-di
com;C:/devel/SlicerRT_R64-bin/Plastimatch-build/Testing/donut-1-dicom
2: EXPECTED_ERRNO is
2: RETVAL: The system cannot find the file specified
2: STDOUT:
2: STDERR:
2: CMake Error at C:/devel/SlicerRT_R64-bin/Plastimatch/cmake/RUN_CTEST.cmake:64 (message):
2:   An error
2:
2:
1/1 Test #2: donut-1 ..........................***Failed    0.04 sec


Do you have a dashboard?

2012-12-07, 20:27:00 - Greg Sharp

The tests only works with a full build. SlicerRt uses a mini-build. We do have a dashboard.

http://cdash.tshack.net/index.php?project=Plastimatch

But it’s currently not straightforward to understand which builds are relevant, nor which version is being tested.

Maybe we can just use SlicerRt test set?

2012-12-07, 20:27:18 - Csaba Pinter

(In r:490|slicerrt:490) Fixed #190: Plastimatch revision fixed for SlicerRT

2012-12-07, 20:27:18 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

#191 Contour representations are not refreshed after conversion

Some interaction (zoom, change slice, etc.) is needed in the viewers so that the new representation shows up.

This may have been caused by the changes in rev 21461.

2012-12-10, 21:26:22 - Csaba Pinter

Updating tickets (#38, #61, #134, #136, #144, #191)

2012-12-10, 21:26:22 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.7.0 (2012-11)” to “SlicerRt 0.8.0 (2012-12)”

2013-01-14, 17:53:34 - Csaba Pinter

(In r:553|slicerrt:553) Test #191: Added workaround for the refresh issue (batch processing seems to fix these)

2013-01-14, 17:53:34 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2013-01-14, 17:53:34 - Csaba Pinter

status: changed from “New” to “Test”

2013-02-02, 23:18:38 - Csaba Pinter

status: changed from “Test” to “Fixed”

#192 Compute contour conversion error metrics

They could be useful to see the measure of data loss

We could display them on the GUI or just as a vtk message.

2013-01-15, 21:07:09 - Csaba Pinter

milestone_id: changed from null to “Future”

2015-06-02, 20:42:03 - Csaba Pinter

milestone_id: changed from “Future” to “SlicerRt 0.18”

2015-06-02, 20:42:07 - Csaba Pinter

assigned_to_id: changed from null to “Sunderlandkyl”

2015-06-26, 15:18:10 - Csaba Pinter

status: changed from “New” to “Accepted”

2015-09-18, 19:36:03 - Csaba Pinter

status: changed from “Accepted” to “New”

2016-01-12, 17:12:05 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.18” to “Student projects”

2016-05-20, 15:31:47 - Kyle Sunderland

Re #192: Add a python module that calculates the difference in volume between the closed surface and the binary/fractional labelmap representations as a percent of the closed surface volume. This could method could potentially be used as a contour conversion error metric (provided that a closed surface representation has been constructed. Commit: r:2859|slicerrt:2859

2016-06-13, 17:48:55 - Kyle Sunderland

Re #192: Remove the binary/fractional labelmap calculation method from the python module and reimplement it in the C++ helper function. This also included some bug fixes, as the python version contained a mistake. Implemented inheritance for the VolumeCalculator class and widget from the scripted module parents, and removed redundant methods. Fixed the import statements for the util class to fit with the wrapped function name. Added comments and improved style. Commit: r:2946|slicerrt:2946

2017-04-21, 16:49:50 - Csaba Pinter

Closing as fixed, because we cannot calculate and display error metrics in a practical way during regular use without significantly increased computation time, and the developed modules are adequate for manual calculation.

2017-04-21, 16:49:50 - Csaba Pinter

status: changed from “New” to “Fixed”

#193 Create a tool that can convert tracked ultrasound sequences to CT volumes

Create a tool that can convert tracked ultrasound sequences to CT volumes, for prostate HDR brachytherapy planning.

Sample script is available here: https://subversion.assembla.com/svn/slicerrt/trunk/SlicerRt/sandbox/UsToCtConverterSample

The final solution should be something like this:

Optional:

2012-12-05, 03:17:44 - Gabor Fichtinger

We also need to get the US pixel size ; TRUS stepping is hard coded at 5mm.

Soon enough, we will have to calibrate the stepper and provide coordinate transformation from 3D TRUS space to Template Space. Not forgetting that the face of the template is not encoded – the bastards; we will have to put the calibrated grid onto the Ultrasonix display to guide the insertion.

From: Andras Lasso (lassoan) [mailto:slicerrt@alerts.assembla.com] Sent: December-04-12 9:54 PM

2013-06-26, 15:18:21 - Csaba Pinter

assigned_to_id: changed from null to “rankin”

2013-06-26, 15:20:52 - Adam Rankin

Ah cool, didn’t know there was a real ticket.

2013-06-26, 15:27:30 - Csaba Pinter

No worries, I just bumped into it myself.

2013-09-06, 18:57:17 - Csaba Pinter

priority: changed from “Normal (3)” to “High (2)”

2013-09-06, 20:09:21 - Gabor Fichtinger

Is this a proper CT simulator or the fake generator for Chandra?

From: Csaba Pinter (pinter) [mailto:slicerrt@alerts.assembla.com] Sent: September-06-13 2:57 PM

2013-09-06, 20:16:56 - Csaba Pinter

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
          It's the one Adam has been working on.      Should be the fake one for Chandra.
  
  csaba
  
  
  On 9/6/2013 16:08, Gabor Fichtinger wrote:

                                Is              this a proper CT simulator or the fake generator for              Chandra? 
     
     
     
    From: Csaba Pinter (pinter)              [mailto:slicerrt@alerts.assembla.com] 
          Sent:              September-06-13 2:57 PM
          To: Gabor              Fichtinger (gfichti1)
          Subject:              [Assembla] [Slicerrt] #193: Create a tool that can convert              tracked ultrasound sequences to CT volumes

2013-09-10, 16:44:11 - Adam Rankin

Link to work in progress:

url:https://www.assembla.com/spaces/perklabsandbox/tickets/8#/activity/ticket: https://www.assembla.com/spaces/perklabsandbox/tickets/8#/activity/ticket:

2013-09-30, 17:41:50 - Adam Rankin

Tool is created and produces DICOM volumes. Testing is needed in Oncentra system.

2013-09-30, 17:41:50 - Adam Rankin

status: changed from “New” to “Test”

2014-01-22, 18:57:47 - Csaba Pinter

Has testing taken place?

2014-01-22, 19:21:51 - Adam Rankin

No, this was going to be a project with Dr. Joshi. Probably someone else will have to coordinate with him to validate it. A student perhaps?

2014-01-22, 22:05:08 - Andras Lasso

We had a meeting about this and related projects. We have to make it work soon. I’ll check it when I’m back from vacation.

2015-01-16, 05:10:46 - Csaba Pinter

priority: changed from “High (2)” to “Low (4)”

2015-06-15, 19:42:45 - Adam Rankin

assigned_to_id: changed from “rankin” to null

#194 Add module that computes DRR

Plastimatch contains an algorithm for DRR reconstruction

2012-12-07, 17:26:23 - wangk

This is a much needed feature for SlicerRT and glad to see it is coming.

2012-12-07, 17:49:29 - Greg Sharp

It will require some discussion. Should we plan for Utah meeting?

2012-12-07, 17:56:06 - Csaba Pinter

Yes, we can schedule a discussion at the project week, however I’m pretty sure we can’t start working on it until March or so.

2013-09-06, 18:54:12 - Csaba Pinter

Michi from Vienna AKH has created a DRR module. I tried it and it looks promising. Hopefully it will be published soon.

2015-01-27, 20:10:57 - Csaba Pinter

@wangk Kevin, is this feature covered in the EBP module?

2015-01-27, 20:51:58 - wangk

@pinter, yes, we have a crude version of DRR in EBP module. it is far from ideal but at least we have something working.

2015-01-27, 20:55:51 - Csaba Pinter

Thanks! So what should happen with this ticket? Whose implementation do we use in the current crude version you mention?

2015-01-28, 14:24:13 - wangk

It is my version. I think I will refactor the code and make DRR generation a separate class so the logic can basically switch between different implementations.

2015-01-28, 14:24:50 - wangk

is there any news from Michi from Vienna AKH?

2015-01-28, 16:17:48 - Csaba Pinter

No I haven’t heard from them since then.

Separating the DRR computation to its own class is a really good idea, I fully support it!

Thanks!

#195 can’t find omp.h on mac build

With SlicerRT revision 491 and slicer master f8cbe1f20bbf72fc7bbd63324714f2dc3cee78b8 (Dec 8, 2012) on mac 10.8 with Xcode 4.5.2 I get the following build error:

/Users/pieper/slicer4/latest/SlicerRT/latest/SlicerRT-build/Plastimatch/src/plastimatch/base/bspline_interpolate.cxx:10:10: fatal error: ‘omp.h’ file not found #include ^ /Users/pieper/slicer4/latest/SlicerRT/latest/SlicerRT-build/Plastimatch/src/plastimatch/base/bspline_xform.cxx:11:10: fatal error: 'omp.h' file not found #include ^ 1 error generated. 1 error generated. make[5]: *** [src/plastimatch/base/CMakeFiles/plmbase.dir/bspline_interpolate.cxx.o] Error 1 make[5]: *** Waiting for unfinished jobs.... make[5]: *** [src/plastimatch/base/CMakeFiles/plmbase.dir/bspline_xform.cxx.o] Error 1 make[4]: *** [src/plastimatch/base/CMakeFiles/plmbase.dir/all] Error 2 make[3]: *** [all] Error 2 make[2]: *** [Plastimatch-prefix/src/Plastimatch-stamp/Plastimatch-build] Error 2 make[1]: *** [CMakeFiles/Plastimatch.dir/all] Error 2 make: *** [all] Error 2

omp.h does exist on this machine, but the path must need to be set:

#5 Xcode.app $ find . -iname omp.h ./Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/llvm-gcc-4.2/lib/gcc/i686-apple-darwin10/4.2.1/include/omp.h ./Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk/Developer/usr/llvm-gcc-4.2/lib/gcc/i686-apple-darwin11/4.2.1/include/omp.h ./Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk/usr/lib/gcc/i686-apple-darwin11/4.2.1/include/omp.h ./Contents/Developer/usr/llvm-gcc-4.2/lib/gcc/i686-apple-darwin11/4.2.1/include/omp.h

2012-12-10, 14:36:42 - Greg Sharp

Awesome, thank you. I can’t reproduce this on my mac. Do you have any theory why the compiler doesn’t setting its include path correctly?

2012-12-10, 23:39:47 - pieper

Unfortunately, no, nothing concrete anyway. My guess is that it depends on the Xcode version, since they did move things from /Developer into a subdirectory of Xcode.

Maybe it’s related to this:

http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=20162

(just a guess - I didn’t try)

2013-02-20, 00:05:03 - Greg Sharp

assigned_to_id: changed from null to “gregsharp”

2013-02-20, 00:05:03 - Greg Sharp

status: changed from “New” to “Accepted”

2013-02-20, 02:07:07 - Csaba Pinter

milestone_id: changed from null to “SlicerRt 0.9.0 (2013-03)”

2013-03-28, 22:36:42 - Greg Sharp

milestone_id: changed from “SlicerRt 0.9.0 (2013-03)” to “SlicerRt 0.10.0 (2013-04)”

2013-04-21, 15:43:40 - Csaba Pinter

status: changed from “Accepted” to “New”

2013-04-21, 15:53:48 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.10.0 (2013-04)” to “SlicerRt 0.11.0 (2013-05)”

2013-08-21, 18:14:17 - Greg Sharp

@pieper Steve, is this still a problem for you?

2013-08-21, 18:16:28 - Csaba Pinter

Proposed action:

2013-08-21, 19:13:15 - pieper

Trying again in a fresh build with SlicerRT r1105 and current slicer build r22304. All cmake defaults left unchanged. Build succeeded!

2013-08-21, 19:13:15 - pieper

status: changed from “New” to “Fixed”

2013-08-21, 19:36:52 - Csaba Pinter

Great, thanks!

#196 Improve isodose module to handle transform node applied to dose volume node

add code to handle transform node.

2012-12-10, 21:29:29 - wangk

status: changed from “New” to “Accepted”

2012-12-11, 19:15:31 - wangk

description: changed from “add code to handle transfor…” to “add code to handle transfor…”

2012-12-11, 19:15:31 - wangk

summary: changed from “Improve isodose module to handle different geometry” to “Improve isodose module to handle transform node applied to dose volume node”

2012-12-11, 19:16:13 - wangk

(In r:499|slicerrt:499) Re #196: Add code to handle parent transform node.

2012-12-11, 19:16:34 - wangk

status: changed from “Accepted” to “Test”

2012-12-11, 19:19:18 - Csaba Pinter

Can you add a test before doing the resampling? The best would be to check if the transform is identity, but it can be enough if you do the resampling if there is a parent transform.

2012-12-11, 19:28:26 - wangk

(In r:500|slicerrt:500) Re #196: Add check for parent transform.

2012-12-23, 22:41:08 - Csaba Pinter

status: changed from “Test” to “Fixed”

2013-01-18, 21:38:43 - wangk

(In r:564|slicerrt:564) Re #196: Change the transformation of volume node to a new scheme.

#197 Import beam geometry

It could be interesting to learn how to develop custom interactive widgets, but we could consider doing the following (much easier approach) instead:

Models are good, because all the infrastructure is there for show/hide, edit properties, show in 2D and 3D views, and we would need to develop all these for a custom widget.

2012-12-11, 16:07:55 - Csaba Pinter

description: changed from “It could be interesting to …” to “It could be interesting to …”

2013-01-08, 16:17:12 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2013-01-08, 16:17:18 - Csaba Pinter

status: changed from “New” to “Accepted”

2013-01-08, 16:47:21 - Csaba Pinter

(In r:539|slicerrt:539) Re #197: Added test DICOM datasets of prostate phantoms with basic beam geometries. The dataset was provided by Greg Sharp, MGH

2013-01-09, 22:45:57 - Csaba Pinter

(In r:540|slicerrt:540) Re #197: Read beam geometry related DICOM tags

2013-01-10, 14:48:11 - Csaba Pinter

(In r:541|slicerrt:541) Re #197: Added skeleton and module GUI for BeamVisualizer

2013-01-10, 16:15:38 - Csaba Pinter

(In r:542|slicerrt:542) Re #197: BeamVisualizer module GUI, logic and parameter set node done; Fixes in DoseAccumulation module widget

2013-01-10, 16:57:31 - Csaba Pinter

(In r:543|slicerrt:543) Re #197: Add beam-related attributes to the isocenter fiducial at loading time

2013-01-10, 17:22:05 - Csaba Pinter

(In r:544|slicerrt:544) Re #197: Source fiducial is an output instead of input (the DicomRtImport step only imports the isocenter, which comes from the DICOM file, and the BeamVisualizer computes the source according to the beam-related tags that the importer read)

2013-01-10, 17:29:27 - Csaba Pinter

(In r:545|slicerrt:545) Re #197: Fixed possible build error

2013-01-10, 18:57:59 - Csaba Pinter

(In r:547|slicerrt:547) Re #197: Compute source position from isocenter and beam-related parameters

2013-01-10, 20:04:50 - Csaba Pinter

(In r:548|slicerrt:548) Re #197: Create beam geometry model spanning between the source and the isocenter (t is only a cone so far and does not take the collimator angle in account)

2013-01-11, 00:18:42 - Csaba Pinter

(In r:550|slicerrt:550) Re #197: Fixed readme for beams test dataset

2013-01-11, 16:12:15 - Csaba Pinter

(In r:551|slicerrt:551) Re #197: Fixed isocenterToSource transform; Temporarily changed cone source to really be a cone (just to be able to evaluate the orientation better)

2013-01-14, 17:26:53 - Csaba Pinter

(In r:552|slicerrt:552) Re #197: Beam geometry model now has a ‘pyramid’ shape, and is placed in the right location and orientation. Non-uniform jaw positions are not taken into account yet

2013-01-16, 22:33:11 - Csaba Pinter

(In r:556|slicerrt:556) Re #197: Renamed BeamVisualizer module to Beams

2013-01-16, 23:22:58 - Csaba Pinter

(In r:557|slicerrt:557) Re #197: Error messages are displayed in Beams module GUI

2013-01-16, 23:38:07 - Csaba Pinter

(In r:558|slicerrt:558) Re #197: Fixed issue of initial combobox selections (when starting up, the automatic combobox selections have to be explicitly propagated)

2013-01-17, 23:03:58 - Csaba Pinter

(In r:560|slicerrt:560) Re #197: Beam models are constructed on loading (bug fixed that prevented constructing but the first beam); Changes from PatientHierarchy merged for checking char array validity (SlicerRtCommon::IsStringNullOrEmpty)

2013-01-18, 21:16:59 - Csaba Pinter

(In r:562|slicerrt:562) Re #197: Source fiducial is locked and display properties are set to match the isocenter

2013-01-19, 18:16:32 - Csaba Pinter

status: changed from “Accepted” to “Test”

2013-01-20, 03:03:17 - Csaba Pinter

(In r:566|slicerrt:566) Re #197: Add beam geometry models in model hierarchy

2013-01-20, 03:51:50 - Csaba Pinter

(In r:567|slicerrt:567) Re #197: Beam opacity parameter added to parameter set node

2013-02-02, 23:18:42 - Csaba Pinter

status: changed from “Test” to “Fixed”

#198 Image information not set correctly when importing dicom-rt object

for example, when importing ‘rando prostate’ data from the our sample repository, it reports image origin (162,105,-122) and spacing (2.5,2.5,2.5) where the actually spacing is (-2.5,-2.5,2.5). there are two options, when importing dicom objects, we can either keep the actual spacing or modify the origin. but if we choose to modify origin, we will have to resample the image. so I prefer to keep the actual spacing. It seems that slicer does not allow negative spacing. so we might need to talk to Steve about this.

2012-12-12, 18:33:15 - Greg Sharp

I prefer to keep original spacing as well, but ITK engineers disagree. They specifically do not support negative spacing.

http://www.itk.org/Doxygen/html/classitk_1_1ImageBase.html#acefbb1f360d1a1fdf3598726d84f4652

2012-12-12, 19:02:39 - wangk

Thanks Greg. if that is the case, then the only option is to re-sample the image so that everything is consistent. I am not sure how slicer developers think about this. if they do allow negative spacing, then we can do re-sampling only if the module involves any ITK operations.

2012-12-12, 20:14:08 - Andras Lasso

There are many things that the DICOM standard permits, but ITK does not (such as missing slices, non-uniform spacing, sparse volume, non-parallel slices), so some reinterpretation/conversion of the DICOM data is unavoidable. Also, it seems that the pixel spacing must be positive according to the latest DICOM standard (there was an error in the specification previously, see ftp://medical.nema.org/medical/dicom/cp/CPack-52_PDF/cp956_lb.pdf).

So, I think it’s a good idea to convert from negative spacing to positive by reordering slices/flipping pixel data. No resampling should be needed, so no information is lost.

2012-12-12, 20:41:42 - wangk

Yes. It is re-ordering not re-sampling.

2013-01-10, 18:58:13 - wangk

As discussed on the message board, the information we see in the volume module is actually correct but incompletely displayed. (direction cosine is not displayed so that is why it is a bit confusing just looking at origin and spacing). and the solution to this after discussion with andras and Greg seems to be adding an option to display direction cosine in the volume module. I will ask Steve to see what he thinks, if he agrees, I will create a slicer ticket for this.

2013-01-12, 20:15:31 - pieper

Yes, I agree that adding the direction vectors to the volume information widget would be great. The info is easily available from the MRML Node for each direction i, j, k with for, example:

void vtkMRMLVolumeNode::GetIToRASDirection ( double dirs[3] )

And it could be added to this code:

http://slicer.org/doc/html/classqMRMLVolumeInfoWidget.html

Does someone want to create a patch? Could you create a feature request in slicer mantis for this?

2013-01-14, 18:10:46 - wangk

assigned_to_id: changed from null to “wangk”

2013-01-14, 18:10:52 - wangk

milestone_id: changed from null to “Future”

2013-01-14, 18:19:58 - wangk

I have created a ticket in mantis: http://na-mic.org/Mantis/view.php?id=2869. I could create a patch as well.

2013-02-08, 17:17:06 - wangk

I have pushed the topic to github for review and integration into slicer trunk.

2013-02-08, 17:17:06 - wangk

status: changed from “New” to “Accepted”

2013-03-07, 20:35:23 - wangk

Fixed in slicer truck.

2013-03-07, 20:35:23 - wangk

status: changed from “Accepted” to “Fixed”

2013-03-08, 07:40:25 - Csaba Pinter

milestone_id: changed from “Future” to “SlicerRt 0.9.0 (2013-03)”

2013-03-08, 07:42:44 - Csaba Pinter

Great, thanks!

When closing a ticket, please make sure the milestone is the current, so that if someone queries the completed tasks, they can see that this particular issue was fixed then.

#199 DICOM browser column headings are not accurate

In the DICOM browser tree the ‘age’ field is filled with imaging modality information.

The issue is that the column headings are the same for patient, study, series level, while the information is clearly different. The proper implementation would be to have separate column heading for each level (or have multiple lists instead of a tree).

2012-12-14, 17:48:40 - Csaba Pinter

Slicer Mantis issue http://www.na-mic.org/Bug/view.php?id=2828

2013-09-06, 18:54:24 - Csaba Pinter

priority: changed from “Normal (3)” to “High (2)”

2013-09-06, 18:54:40 - Csaba Pinter

Should be solved by the new list-view based CTK DICOM browser

2014-01-21, 20:18:06 - Csaba Pinter

The specific problem of the inaccurate hedings is solved by the new list-view DICOM browser, so this ticket can be closed.

However, the browser can still show only values of raw DICOM tags, which is not satisfactory (e.g. the series description text can be found in different tags for different modalities). This work is tracked in #535

2014-01-21, 20:18:06 - Csaba Pinter

status: changed from “New” to “Fixed”

2014-01-21, 20:18:25 - Csaba Pinter

milestone_id: changed from “Future” to “SlicerRt 0.14”

#200 Create volume data reader and writer functions for Matlab

Create volume data reader and writer functions for Matlab for metaIO (mhd, mha) files. As Slicer can read/write metaIO files these functions can be used for data exchange between Slicer and Matlab.

2012-12-17, 03:36:53 - Andras Lasso

Work-in-progress implementation by Simrin is available at: https://www.assembla.com/code/slicerrt/subversion/nodes/trunk/SlicerRt/sandbox/SlicerMatlabBridge/MetaImageIO?rev=512

A few comments:

2012-12-17, 03:36:53 - Andras Lasso

status: changed from “New” to “Accepted”

2012-12-17, 12:43:50 - pieper

You could look at this code for ideas and maybe re-use some piece:

http://www.na-mic.org/Wiki/index.php/Projects:MATLABSlicerExampleModule

A lot of people would be interested in having a good solid matlab interface library.

2012-12-19, 23:36:48 - Simrin Nagpal

(In r:514|slicerrt:514) Re #200: Wrote automatic testScript.m that reads, writes then reads the written data to compare header and pixel data for both compressed and uncompressed mha and mhd files. Test data can be found in testData folder. Changes made to mha_read_volume.m and mha_write_volume.m while writing test script. Removed mha_read_header.m since now private function in mha_read_volume.m. TO DO: change structure to be independent from metaIO to allow its use for future readers/writers.

2013-02-25, 21:08:05 - Csaba Pinter

status: changed from “Accepted” to “New”

2013-04-02, 14:33:39 - Simrin Nagpal

(In r:725|slicerrt:725) Re #200: Added how to interpret the TransformMatrix. Gave more descriptive names to fields in the metadata. Made the volume structure that holds pixel data and header data more independent from the metaIO format. Added some description to what is contained in volume structure.

2013-05-28, 21:31:04 - Simrin Nagpal

(In r:852|slicerrt:852) Re #200: Added example to mha_write_volume.m for how to write out a volume from scratch. Added more documentation to mha_read_volume.m for the parameter descriptions in the header. Deleted the mha_read_header.m since the function is now within mha_read_volume.m

2013-05-29, 20:31:02 - Andras Lasso

(In r:854|slicerrt:854) re #200: Reformatted mha read/write script help text, simplified test script

2013-07-11, 01:36:01 - Csaba Pinter

@lassoan: Can this be closed?

2013-07-11, 01:49:24 - Andras Lasso

status: changed from “New” to “Fixed”

2013-07-11, 02:00:55 - Csaba Pinter

milestone_id: changed from “Future” to “MatlabBridge 0.5.0”

#201 SlicerRT extension screenshots

Currently for me no SlicerRT screenshots appear in the extension manager for the latest stable Slicer. It seems that the URL is not OK (probably it should have been http://www.slicer.org/slicerWiki/images/7/75/SlicerRT0.6_Montage.png).

Also, I think for this purpose it would be better to provide multiple real, normal-sized screenshots, as one big montage.

2012-12-23, 20:44:27 - Csaba Pinter

status: changed from “New” to “Accepted”

2012-12-23, 22:31:39 - Csaba Pinter

(In r:521|slicerrt:521) Fixed #201: Fixed screenshot URL, replaced the montage with real screenshots; Updated version to 0.7.0

2012-12-23, 22:31:39 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

#202 Make it more difficult to select a non-dose volume in the Dose Volume Histogram volume

I still often accidentally click on computing DVH on the CT. What could help to avoid this issue:

2012-12-19, 22:03:19 - pieper

You could assign an attribute to dose volumes and have the mrml node combo box only show nodes with that attribute (this feature is already supported for label maps)

2012-12-19, 23:18:15 - Csaba Pinter

Thanks, Steve, good to know! We already have attributes in the dose volumes, so it should be easy to do the filtering with this feature.

2013-01-15, 01:30:08 - Csaba Pinter

milestone_id: changed from null to “SlicerRt 0.8.0 (2012-12)”

2013-01-15, 01:31:44 - Csaba Pinter

(In r:554|slicerrt:554) Test #202: Checkbox added to dose volume histogram module that filters volumes in input volume combobox to show only dose volumes when checked.

2013-01-15, 01:31:44 - Csaba Pinter

status: changed from “New” to “Test”

2013-01-15, 01:33:16 - Csaba Pinter

@lassoan: The label next to the combobox is ‘Dose volume: ‘. Do you think I sould rename it to ‘Input volume: ‘? Or the intensity volume histogram is only a bonus feature and we don’t want to confuse the user with such a label?

2013-01-16, 20:58:09 - Andras Lasso

As the module’s name is Dose Volume Histogram, I think it’s better to keep the Dose volume. I would consider the intensity volume histogram computation to be a fallback mechanism, to be able to handle dose volumes that were not converted to real dose volumes. Once processed dose volumes will be dose volumes and the user can easily convert a regular volume to a dose volume then probably this intensity volume histogram feature can be removed.

2013-02-02, 23:55:25 - Csaba Pinter

status: changed from “Test” to “Fixed”

#203 Add one-up quantitative layout for full-screen DVH display

2013-01-24, 16:59:59 - Csaba Pinter

milestone_id: changed from null to “SlicerRt 0.9.0 (2013-03)”

2013-02-19, 22:43:43 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2013-02-19, 22:43:43 - Csaba Pinter

status: changed from “New” to “Accepted”

2013-02-20, 18:27:11 - Csaba Pinter

(In r:634|slicerrt:634) Re #203: Added icons and buttons for changing layouts in the DoseVolumeHistogram module. The buttons are disabled for now, until the layouts are added to Slicer

2013-02-28, 01:13:36 - Csaba Pinter

(In r:661|slicerrt:661) Test #203: Connected and enabled the two layout selector buttons in the DVH module. The one-up quantitative layout has been added to Slicer in revision 21781.

2013-02-28, 01:13:36 - Csaba Pinter

status: changed from “Accepted” to “Test”

2013-03-03, 21:41:37 - Csaba Pinter

status: changed from “Test” to “Fixed”

#204 Show progress bars for time consuming algorithms

Running some algorithms takes a long time, especially in debug mode. It would be useful to show progress bars on the module GUIs. Such algorithms are:

2013-08-25, 19:56:29 - Csaba Pinter

Contour conversion progress bar added

2013-08-25, 19:56:43 - Csaba Pinter

DVH progress bar added in #398

2013-08-25, 20:01:19 - Csaba Pinter

(In r:1115|slicerrt:1115) Fixed #398, Re #204: Progress bar added to DVH calculation (it can take a long time when selecting a whole structure set as input)

2013-08-25, 20:01:19 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2013-09-06, 18:54:55 - Csaba Pinter

priority: changed from “Normal (3)” to “High (2)”

2017-03-24, 20:08:18 - Csaba Pinter

description: changed from “Running some algorithms tak…” to “Running some algorithms tak…”

2017-03-24, 20:08:18 - Csaba Pinter

milestone_id: changed from “Future” to “SlicerRt 0.19”

2017-05-01, 13:59:20 - Csaba Pinter

Contour conversion is in Slicer core now, and it is done automatically, without user interaction (as opposed to when this ticket was created). Showing a progress bar would be thus confusing. It is more desirable to try to speed up the conversion, which has happened (planar to surface) and is happening.now (fractional labelmap). Closing this ticket as fixed.

2017-05-01, 13:59:20 - Csaba Pinter

status: changed from “New” to “Fixed”

#205 Dose volumes exported by Xio cannot be loaded

One example dataset can be found in the SVN repository: SlicerRT\data\xio-4.64-phantom-prostate-beams-ap10

The problem occurs in vtkMRMLVolumeArchetypeStorageNode::ReadDataInternal line 350 (reader->Update() , type of reader is vtkITKArchetypeImageSeriesScalarReader) Everything seems to be good.until this point.

2013-01-12, 20:53:03 - pieper

Hi Csaba -

If you don’t see a way to sort this out, post a bug on the slicer mantis page and attache a single slice that demonstrates the issue.

-Steve

2013-01-13, 00:59:57 - Csaba Pinter

Thanks Steve! Before I do that I’d like to do another run when we get back from the skiing.

2013-01-21, 22:25:50 - Csaba Pinter

milestone_id: changed from null to “SlicerRt 0.8.0 (2013-01)”

2013-01-21, 23:18:41 - Csaba Pinter

I debugged into the DICOM volume loading of Plastimatch (because it can load these dose volumes), but I didn’t find anything special. Plastimatch ultimately uses itk::ImageSeriesReader for loading these volumes, and it works. Slicer uses vtkITKArchetypeImageSeriesScalarReader, but it doesn’t read these volumes.

I created http://www.na-mic.org/Bug/view.php?id=2879 in Slicer Mantis for this issue.

2013-01-24, 16:55:31 - Csaba Pinter

The upcoming switch to ITK4 will most probably solve the problem. Testing is needed once the switch is done

2013-01-24, 16:55:31 - Csaba Pinter

status: changed from “New” to “Test”

2013-01-24, 17:07:11 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.8.0 (2013-01)” to “SlicerRt 0.9.0 (2013-03)”

2013-02-13, 19:24:51 - Csaba Pinter

I tried to load our Xio data using the new Slicer version that builds with ITKv4 and it loaded it successfully.

2013-02-13, 19:24:51 - Csaba Pinter

assigned_to_id: changed from null to “pieper”

2013-02-13, 19:24:51 - Csaba Pinter

status: changed from “Test” to “Fixed”

#206 Slice intersections do not appear for isodose surfaces

This error seems to keep coming back. The strange thing is that the structures have the slice intersections and the isodose surfaces seem to be OK.

2013-01-10, 18:48:21 - wangk

assigned_to_id: changed from null to “wangk”

2013-01-10, 18:48:21 - wangk

status: changed from “New” to “Accepted”

2013-01-10, 18:49:26 - wangk

(In r:546|slicerrt:546) Re #206: Fixed the intersection visibility problem.

2013-01-10, 18:50:01 - wangk

status: changed from “Accepted” to “Test”

2013-01-10, 18:50:41 - wangk

milestone_id: changed from null to “SlicerRt 0.8.0 (2012-12)”

2013-02-02, 23:56:06 - Csaba Pinter

status: changed from “Test” to “Fixed”

#207 Load CERR PlanC files

This format ( http://www.cerr.info ) comes up a lot in RT dose research. It is a bunch of nested MATLAB structures in a cell array in a .MAT container. It’s an adaptive format with a built-in index, and can contain almost anything- comments, 3D volumes, structure lists, DVH, etc.

CERR in particular is pretty common in RT research and the ability to read its files would make Slicer a lot more accessible to this community.

2013-01-24, 17:07:38 - Csaba Pinter

milestone_id: changed from null to “Future”

2013-04-10, 15:50:03 - Csaba Pinter

May be a good sample: http://dirart.googlecode.com/svn/trunk/dirart_programs/LoadCERRPlanC.m

2013-06-10, 20:46:48 - Csaba Pinter

assigned_to_id: changed from null to “j.andrea”

2013-06-10, 20:46:48 - Csaba Pinter

milestone_id: changed from “Future” to “SlicerRt 0.11.0 (2013-05)”

2013-06-10, 20:46:48 - Csaba Pinter

status: changed from “New” to “Accepted”

2013-06-11, 18:37:50 - Csaba Pinter

assigned_to_id: changed from “j.andrea” to null

2013-06-11, 18:37:50 - Csaba Pinter

status: changed from “Accepted” to “New”

2013-06-11, 18:40:00 - Csaba Pinter

Proposed plan (first round): Write exporter function in Matlab that

2013-08-15, 14:47:51 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.11.0 (2013-07)” to “Future”

2014-05-07, 15:19:09 - Csaba Pinter

Use Matlab bridge? Have it communicate SlicerRT with CERR?

2015-01-27, 20:06:59 - Csaba Pinter

Set to low priority due to the lack of interest in this feature over the lsat two years.

2015-01-27, 20:06:59 - Csaba Pinter

priority: changed from “Normal (3)” to “Low (4)”

2015-09-10, 14:55:12 - Greg Sharp

milestone_id: changed from “Future” to “SlicerRt 0.18”

2015-09-10, 15:01:13 - Greg Sharp

milestone_id: changed from “SlicerRt 0.18” to “Future”

#208 Handle MLC beams

Add handling of multi-leaf collimator beams in ExternalBeamPlanning module.

2013-01-24, 16:58:47 - Csaba Pinter

milestone_id: changed from null to “Future”

2014-01-22, 16:20:34 - Csaba Pinter

milestone_id: changed from “Future” to “SlicerRt 0.14”

2014-01-22, 16:20:38 - Csaba Pinter

assigned_to_id: changed from null to “wangk”

2014-01-22, 16:21:06 - Csaba Pinter

summary: changed from “Impove Beams module to handle MLC beams” to “Handle MLC beams”

2014-01-22, 16:21:06 - Csaba Pinter

description: changed from “Add handling of multi-leaf …” to “Add handling of multi-leaf …”

2014-01-29, 18:57:49 - wangk

status: changed from “New” to “Accepted”

2014-01-29, 19:00:05 - wangk

(In r:1474|slicerrt:1474) Re #208: Add code for handling MLC visualization in external beam planning module. Todo: store all beam parameters in beam node. update mlc position double array node from mrmlscene update.

2014-01-29, 20:37:35 - wangk

(In r:1475|slicerrt:1475) Re #208: Revert back changes.

2014-02-21, 18:34:50 - wangk

Test #208: Major changes to EBP module to allow:

  1. MLC/Jaw visualization.
  2. keep all parameters in vtkMRMLRTBeamNode to allow multiple beams manipulation.

change status to test as other features should be tracked using seperate tickets. Commit: r:1530|slicerrt:1530

2014-02-21, 18:34:50 - wangk

status: changed from “Accepted” to “Test”

2014-02-21, 21:00:39 - Csaba Pinter

@wangk Do you plan to use this logic from DicomRtImport? It would be great if both could use the same and we could get rid of the Beams module.

2014-02-24, 15:02:08 - wangk

yes, i would like to refactor the beams and external beam planning module so they use the same logic. but it will take some time.

2014-02-24, 15:27:00 - Csaba Pinter

Maybe we should create a ticket for that. Do you agree?

2014-02-24, 15:36:21 - wangk

Yes, a ticket to track this task would be good.

2014-05-14, 15:02:24 - Csaba Pinter

status: changed from “Test” to “Fixed”

2014-10-03, 13:19:22 - wangk

Component: changed from null to “SlicerRt modules”

#209 Show and modify beam parameters in Beams module

Greg: ‘I would wait until we have time to add the DRR computation and dose computation. This gives us a good reason for modifying parameters. Until then, there is no real reason to do so.’

2013-01-19, 18:16:50 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.8.0 (2013-01)” to null

2013-01-24, 16:58:48 - Csaba Pinter

milestone_id: changed from null to “Future”

2013-09-06, 18:57:46 - Csaba Pinter

priority: changed from “Normal (3)” to “Low (4)”

2014-01-22, 16:35:23 - Csaba Pinter

milestone_id: changed from “Future” to “SlicerRt 0.14”

2014-01-22, 16:35:53 - Csaba Pinter

Implemented in External Beam Planning

2014-01-22, 16:35:53 - Csaba Pinter

status: changed from “New” to “Fixed”

#210 Python wrapping error when starting up Slicer with SlicerRT

The error below appears in the python window:

1
2
3
4
5
6
7
8
9
10
11
12
13
Traceback (most recent call last):
  File '<string>', line 1, in <module>
  File 'C:\\devel\\Slicer_Trunk_R64-bin\\Slicer-build\\bin\\Python\\slicer\\util.py', line 27, in importVTKClassesFromDirectory
    importClassesFromDirectory(directory, dest_module_name, 'vtkclass', filematch)
  File 'C:\\devel\\Slicer_Trunk_R64-bin\\Slicer-build\\bin\\Python\\slicer\\util.py', line 39, in importClassesFromDirectory
    importModuleObjects(from_module_name, dest_module_name, type_name)
  File 'C:\\devel\\Slicer_Trunk_R64-bin\\Slicer-build\\bin\\Python\\slicer\\util.py', line 61, in importModuleObjects
    item = eval('%s.%s' % (from_module_name, item_name))
  File '<string>', line 1, in <module>
AttributeError: vtkSlicerDicomRtReader


Ideas:

Sources:

2013-01-22, 18:23:21 - Csaba Pinter

The stable 4.2.2 doesn’t have this error (Slicer rev21561 + SlicerRT rev523)

2013-01-22, 18:31:37 - Csaba Pinter

(In r:574|slicerrt:574) Re #210: Re-adding BTX/ETX in vtkSlicerDicomRtReader.h to prevent python wrapping, which fails on this class

2013-01-22, 18:31:37 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2013-01-22, 19:29:13 - Csaba Pinter

(In r:575|slicerrt:575) Re #125: Handling the PatientHierarchy insertion in DICOM scalar volume import in a function (addSeriesInHierarchy) that is injected in DICOMScalarVolumePlugin from DicomRtImportPlugin; Re #210: BTX/ETX added to classes that fail to wrap (python errors on startup)

2013-01-24, 17:07:42 - Csaba Pinter

milestone_id: changed from null to “SlicerRt 0.9.0 (2013-03)”

2013-02-08, 15:00:37 - Csaba Pinter

description: changed from “The error below appears in …” to “The error below appears in …”

2013-02-08, 15:00:37 - Csaba Pinter

summary: changed from “Python error when starting up Slicer with SlicerRT” to “Python wrapping error when starting up Slicer with SlicerRT”

2013-02-13, 22:55:12 - Csaba Pinter

(In r:611|slicerrt:611) Re #210: Moved vtkSlicerRTScalarBarActor from Isodose/Logic to Isodose/Widgets and change from using std::vector<std::string> to vtkStringArray thus fixing python wrapping

2013-02-13, 22:58:26 - Csaba Pinter

Steve’s comment: ‘ SystemError: ..\Objects\classobject.c:508: bad argument to internal function has in the past indicated that some python class is inheriting from the wrong base class (the unittest classes all need to derive from the right things or this is generated internally). This may not be related to the other message, but I would guess it’s somewhere in the SlicerRT code.’

2013-02-13, 23:28:30 - Csaba Pinter

Note: I stripped vtkTopologicalHierarchy this point and it still failed to wrap:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#ifndef __vtkTopologicalHierarchy_h
#define __vtkTopologicalHierarchy_h

#include <vtkObject.h>

#include 'vtkSlicerDicomRtImportModuleLogicExport.h'

class VTK_SLICER_DICOMRTIMPORT_LOGIC_EXPORT vtkTopologicalHierarchy : public vtkObject
{
public:
  static vtkTopologicalHierarchy *New();
  vtkTypeMacro(vtkTopologicalHierarchy, vtkObject );

protected:
  vtkTopologicalHierarchy();
  ~vtkTopologicalHierarchy();
};

#endif


Thinking of this along with the fact that vtkSlicerDicomRtReader fails to wrap too, there may be something about the DicomRtImport/Logic project

2013-02-14, 00:31:29 - Csaba Pinter

It turns out that if I change the name of the vtkTopologicalHierarchy class, the python wrapping error doesn’t show up.

2013-02-19, 20:56:22 - Csaba Pinter

I found that if dir(module) in importModuleObjects (Slicer-build/bin/Python/slicer/util.py) is the following list [‘builtins’, ‘doc’, ‘file’, ‘name’, ‘package’, ‘vtkDICOMImportInfo’, ‘vtkTopologicalHierarchy’, ‘vtkSlicerDicomRtImportModuleLogic’] instead of this (vtkTopologicalHierarchy comes before and not after vtkSlicerDicomRtImportModuleLogic) [‘builtins’, ‘doc’, ‘file’, ‘name’, ‘package’, ‘vtkDICOMImportInfo’, ‘vtkSlicerDicomRtImportModuleLogic’, ‘vtkTopologicalHierarchy’] then there is no wrapping error.

I think the cause is that vtkDICOMImportInfo and vtkTopologicalHierarchy are not in the namespace vtkSlicerDicomRtImportModuleLogic, and when vtkSlicerDicomRtImportModuleLogic is wrapped, then vtkTopologicalHierarchy is not found in it. What the solution should be?

  1. Should I try to include these classes in the namespace?
  2. Should I somehow change the order they appear? Is there a way? It looks alphabetical.
  3. Should util.py check the availability of the symbol (= from_module_name.item_name) and try to add the class to the destination module without the from_module_name if it doesn’t exist?

2013-02-19, 20:56:25 - Csaba Pinter

status: changed from “New” to “Accepted”

2013-02-19, 20:59:13 - Csaba Pinter

Changing the class prevented the error, because that way vtkTopologicalHierarchy wasn’t in the item list, because the class name didn’t match the file name.

2013-02-22, 21:08:36 - Csaba Pinter

The error ‘SystemError: ..\Objects\classobject.c:508: bad argument to internal function’ was fixed by the DicomRtImportSelfTestPaths fix (#214)

2013-02-22, 22:11:00 - Csaba Pinter

The VTK classes that are next to a logic class should be wrapper properly. A Mantis issue has been created: http://www.na-mic.org/Bug/view.php?id=2977

2013-03-26, 15:15:33 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

2015-11-16, 17:00:02 - Csaba Pinter

The vtkTopologicalHierarchy issue is different from the vtkSlicerDicomRtReader. The alphabetical order related error (see Mantis issue above) is fixed by the new wrapper, however the following classes still fail to wrap: vtkSlicerDicomRtReader vtkSlicerDicomRtWriter vtkSlicerDicomSroReader

2015-11-16, 17:19:17 - Csaba Pinter

Re #210: Removed BTX/ETX from classes they not needed any more due to the overhaul in VTK python wrapping. Three classes still fail to wrap: vtkSlicerDicomRtReader/Writer and vtkSlicerDicomSroReader Commit: r:2497|slicerrt:2497

#211 Improve PatientHierarchy tree view

2013-01-24, 16:59:59 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.8.0 (2013-01)” to “SlicerRt 0.9.0 (2013-03)”

2013-01-24, 21:11:41 - Csaba Pinter

description: changed from “* Show only PatientHierarch…” to “* Show only PatientHierarch…”

2013-02-22, 14:44:01 - Csaba Pinter

description: changed from “* Show only PatientHierarch…” to “* Show only PatientHierarch…”

2013-02-23, 19:02:44 - Csaba Pinter

status: changed from “New” to “Accepted”

2013-02-23, 19:02:54 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2013-02-25, 20:33:58 - Csaba Pinter

(In r:649|slicerrt:649) Re #211: Show only PatientHierarchy, Model and Volume nodes in the PH tree view

2013-02-28, 22:46:37 - Csaba Pinter

(In r:665|slicerrt:665) Re #211: Fixed bug in function vtkSlicerPatientHierarchyModuleLogic::GetPatientHierarchyNodeByUid

2013-03-01, 00:21:35 - Csaba Pinter

(In r:666|slicerrt:666) Re #211: All the loaded nodes appear in the PatientHierarchy module except for the leaf PatientHierarchy nodes

2013-03-01, 01:11:55 - pieper

Hi -

Smallish point - can you use UID rather than Uid for slicer code? It’s more consistent with common usage. Thanks!

http://www.slicer.org/slicerWiki/index.php/Documentation/4.2/Developers/Style_Guide#Naming

2013-03-01, 16:08:02 - Csaba Pinter

Our convention (in Plus and in SlicerRt too) is to keep the camel case so that we can easily tell where the words end and begin, but in case of the classes that will potentially go in the Slicer core I’ll try to stick to the Slicer convention. I’ll have to go through the files before integrating anyway, as sticking to the the Slicer brackets (in line with the block instead of the keyword before the block) are a pain in the neck using Visual Studio, so we don’t do that either (and of course the line length restrictions etc :) ).

2013-03-01, 16:28:53 - Csaba Pinter

(In r:668|slicerrt:668) Fixing build error due to circular CMake dependency Re #211: Renaming Uid to UID to stick to the Slicer naming convention

2013-03-01, 16:32:54 - pieper

Yes, I agree with the CamelCase convention, it’s only for acronyms that we keep all the letters in caps.

2013-03-01, 16:39:28 - Csaba Pinter

(In r:669|slicerrt:669) Re #211: Using ContourHierarchy nodes only as parent nodes for the structures at the series level, so that the leaf ContourHierarchy nodes do not clog the MRML node combo box in the Contours module

2013-03-01, 23:27:13 - Csaba Pinter

(In r:673|slicerrt:673) Re #211: Remove duplicate hierarchies (e.g. ex-PatientHierarchy and ModelHierarchy for the structures or beams); Checkable, show/hide columns added to PatientHierarchy tree view

2013-03-03, 02:56:15 - Csaba Pinter

(In r:675|slicerrt:675) Re #211: Add toggle visibility function to PatientHierarchy

2013-03-03, 21:00:58 - Csaba Pinter

(In r:676|slicerrt:676) Re #211: Custom qMRMLPatientHierarchyTreeView widget and Qt designer plugin added

2013-03-04, 14:20:52 - Csaba Pinter

(In r:677|slicerrt:677) Re #211: Improvements on PatientHierarchy tree view show/hide function

2013-03-04, 16:43:59 - Csaba Pinter

(In r:678|slicerrt:678) Re #211: Fixed most problems of PatientHierarchy tree view show/hide function

2013-03-05, 01:50:00 - Csaba Pinter

(In r:679|slicerrt:679) Re #211: Name and visibility columns merged in PatientHierarchy tree view; Fixed contour color when converting

2013-03-05, 03:33:25 - Csaba Pinter

(In r:680|slicerrt:680) Re #211: Node type column added. Icons indicate the type of the identified rows. Only patient icon is added for now.

2013-03-05, 21:38:28 - Csaba Pinter

(In r:681|slicerrt:681) Test #160: Hausdorff distances are shown only for boundary voxels on the ContourComparison module UI; Re #211: Switched node type and show/hide columns

2013-04-02, 18:53:54 - Csaba Pinter

description: changed from “* Show only PatientHierarch…” to “* Show only PatientHierarch…”

2013-04-02, 21:22:26 - Csaba Pinter

(In r:728|slicerrt:728) Test #211: Add icons to represent patient hierarchy tree items; Implemented show volume in Patient Hierarchy module

2013-04-02, 21:22:26 - Csaba Pinter

status: changed from “Accepted” to “Test”

2013-04-03, 16:09:26 - Csaba Pinter

status: changed from “Test” to “Fixed”

2013-04-23, 22:05:35 - Csaba Pinter

(In r:788|slicerrt:788) Re #211: More advanced tooltip for the patient hierarchy nodes

#212 Isodose nightly test is broken

2013-01-24, 17:28:48 - Csaba Pinter

assigned_to_id: changed from “wangk” to “pinter”

2013-01-24, 17:30:10 - Csaba Pinter

(In r:578|slicerrt:578) Fixed #212: Isodose baseline renamed and changed to latest (models checked and they are basically the same)

2013-01-24, 17:30:10 - Csaba Pinter

status: changed from “New” to “Fixed”

#213 Generalize PatientHierarchy levels

Make the node more general (see NA-MIC PH breakout session meeting minutes). The basic idea is to use a more flexible string-based tag-like system for the levels instead of the rigid enumeration that is present now.

2013-01-24, 17:40:07 - Csaba Pinter

priority: changed from “Normal (3)” to “High (2)”

2013-02-22, 22:56:32 - Csaba Pinter

(In r:643|slicerrt:643) Re #213: Replaced vtkMRMLPatientHierarchyNode::Level with Tags vector. Testing is needed

2013-02-23, 18:55:43 - Csaba Pinter

(In r:645|slicerrt:645) Fixed #213: Fixes in generalized PatientHierarchy tags

2013-02-23, 18:55:43 - Csaba Pinter

status: changed from “New” to “Fixed”

2013-02-25, 22:35:07 - Csaba Pinter

description: changed from “Make the node more general …” to “Make the node more general …”

2013-02-25, 22:35:07 - Csaba Pinter

status: changed from “Fixed” to “New”

2013-02-25, 23:28:54 - Csaba Pinter

Idea 1: Tags are only strings (not name,level pairs), and the Logic stores the hierarchies (name, ordered list of tags). The advantage is that this way the same PH node can indicate multiple ‘hierarchies’, i.e. tags that can be ordered, and by which they can be grouped, such as time, registration type, etc. Actions needed:

2013-02-25, 23:28:54 - Csaba Pinter

description: changed from “Make the node more general …” to “Make the node more general …”

2013-02-25, 23:33:08 - Csaba Pinter

Idea 2: Store every PH-specific information in attributes of ordinary vtkMRMLHierarchyNodes with the attributes as ‘tags’. One attribute could be (DicomLevel:[Patient/Study/…]), another could be (DicomDatabaseFileName:XY), and (Uid:Z). All the PH-specific utility functions would be in the PatientHierarchyLogic, and the vtkMRMLPatientHierarchyNode would not be necessary any more. The tree view and the proxy model would still be needed to decide whether the hierarchy node is a PH node (has all mandatory attributes).

2013-02-27, 22:38:06 - Csaba Pinter

(In r:659|slicerrt:659) Test #213: vtkMRMLPatientHierarchyNode deleted. Instead, ordinary vtkMRMLHierarchyNode instences are used with special sttributes.

2013-02-27, 22:38:06 - Csaba Pinter

status: changed from “New” to “Test”

2013-03-03, 21:41:26 - Csaba Pinter

status: changed from “Test” to “Fixed”

#214 DicomRtImportSelfTestPaths instantiation error

The error message is:

1
2
3
4
5
6
qSlicerScriptedLoadableModuleWidget::setPythonSource 'C:/Users/nirich/AppData/Roaming/NA-MIC/Extensions-21513/SlicerRT/lib/Slicer-4.2/qt-scripted-modules/DicomRtImportSelfTestPaths.py' - Failed to instantiate scripted pythonqt class 'DicomRtImportSelfTestPaths' 0x73f56a8

Fail to instantiate module 'DicomRtImportSelfTestPaths'


2013-02-22, 20:41:29 - Csaba Pinter

(In r:642|slicerrt:642) Fixed #214: Moved DicomRtImportSelfTestPaths to qt-scripted-modules/util so that Slicer does not attempt to instantiate it as a module (init.py is needed so that it can be imported in DicomRtImportSelfTest); vtkTopologicalHierarchy.h BTX’d so that all python errors disappear (BTX’ing is only a workaround, it still needs to be solved in #210).

2013-02-22, 20:41:29 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2013-02-22, 20:41:29 - Csaba Pinter

status: changed from “New” to “Fixed”

#215 Multiple RT objects with same type not distinguishable in DICOM module

When using DICOM module to import dose, plan and structure set, if there are multiple objects with same type. e.g. two rt dose files, there are no description to distinguish one from another. try pinnacle3-0.0-phantom data in SlicerRT data directory. Need to fix this as this is often encountered in adaptive RT.

I have also created a slicer mantis issue http://na-mic.org/Mantis/view.php?id=2936

2013-02-25, 22:40:07 - Andras Lasso

The information in the tree is generated by CTK, only from fields that are read from the database. These fields probably don’t contain enough information to distinguish the dose files.

However, the names listed below the tree (when making a selection in the tree) are constructed by the DICOM importers. So, we should be able to generate more meaningful names in the list by tuning the DicomRtImport module logic.

2013-03-07, 20:44:18 - wangk

(In r:688|slicerrt:688) Test #215: Right now this problem only applies to RTDose objects. The names for RTPlan and RTStruct are properly created in C++ DicomRtImportPlugin code. I just modified DicomRtImportPlugin.py slightly to make RTDose name available based on the referenced RTPlan’s name.

2013-03-07, 20:44:18 - wangk

assigned_to_id: changed from null to “wangk”

2013-03-07, 20:44:18 - wangk

status: changed from “New” to “Test”

2013-03-18, 14:28:01 - wangk

milestone_id: changed from “Future” to “SlicerRt 0.9.0 (2013-03)”

2013-03-27, 20:34:24 - Csaba Pinter

status: changed from “Test” to “Fixed”

#216 Create Plastimatch interface functions for SlicerRT DicomRT export module

SlicerRT DicomRT will use plastimatch for actual dicom rt export functionality. a set of interface functions need to be developed to interface between Dicom export module and plastimatch lib.

2013-02-27, 19:04:46 - Csaba Pinter

milestone_id: changed from “Future” to “SlicerRt 0.9.0 (2013-03)”

2013-03-24, 19:57:07 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.9.0 (2013-03)” to “SlicerRt 0.10.0 (2013-04)”

2013-04-24, 18:24:00 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.10.0 (2013-04)” to “SlicerRt 0.11.0 (2013-05)”

2013-04-24, 19:28:48 - Csaba Pinter

priority: changed from “Normal (3)” to “High (2)”

2013-04-24, 19:29:15 - Csaba Pinter

I set it to high as its parent task was already at high priority

2013-05-02, 12:49:39 - Greg Sharp

The interface is ready for use.

2013-05-02, 12:49:39 - Greg Sharp

status: changed from “New” to “Test”

2013-05-06, 14:29:06 - Csaba Pinter

Greg’s notes: https://forge.abcd.harvard.edu/gf/project/plastimatch/scmsvn/?action=browse&path=%2Fplastimatch%2Ftrunk%2Fdoc%2FNOTES.TXT&view=markup

Test script: https://forge.abcd.harvard.edu/gf/project/plastimatch/scmsvn/?action=browse&path=%2Fplastimatch%2Ftrunk%2Fsrc%2Fplastimatch%2Ftest%2Fapi_test.cxx&view=markup

2013-05-17, 22:34:05 - Greg Sharp

status: changed from “Test” to “Fixed”

#217 Export DVH to file crashes in case of Intensity Volume Histogram

2013-02-19, 21:44:27 - Csaba Pinter

I cannot reproduce this crash

2013-02-19, 21:44:27 - Csaba Pinter

status: changed from “New” to “Test”

2013-02-19, 22:04:03 - Csaba Pinter

(In r:627|slicerrt:627) Re #217: Bug fixed in DoseVolumeHistogram module: DVH export button was not correctly enabled when selecting DVHs; Removed some unnecessary includes and variables

2013-02-23, 19:01:36 - Csaba Pinter

status: changed from “Test” to “Invalid”

#218 Plastimatch dependency on libwrap

Summary from email:

Plastimatch (sometimes) links against libwrap, and this library is not available on all system. Problem arises on system where it is missing.

Options: 1) If this library is not needed anymore, don’t link against it. 2) If this library is needed, it will have to either be distributed with Slicer or made clear that some Mac user would have to install this library

2013-02-16, 00:18:43 - Greg Sharp

assigned_to_id: changed from null to “gregsharp”

2013-02-16, 00:18:54 - Greg Sharp

status: changed from “New” to “Accepted”

2013-02-16, 00:20:12 - Greg Sharp

(In r:617|slicerrt:617) Test #218: Probable fix for libwrap dependency upstream; bumped plastimatch version

2013-02-16, 00:20:12 - Greg Sharp

status: changed from “Accepted” to “Test”

2013-02-19, 02:26:49 - Csaba Pinter

milestone_id: changed from null to “SlicerRt 0.9.0 (2013-03)”

2013-03-28, 22:37:09 - Greg Sharp

status: changed from “Test” to “Fixed”

#219 Improve Contour Morphology module input handling

2013-03-24, 19:57:07 - Csaba Pinter

milestone_id: changed from null to “SlicerRt 0.10.0 (2013-04)”

2013-04-09, 14:58:32 - wangk

status: changed from “New” to “Accepted”

2013-04-09, 14:58:35 - wangk

assigned_to_id: changed from null to “wangk”

2013-04-17, 19:08:36 - wangk

(In r:764|slicerrt:764) Test #219: Added support for reference volume node so no need to convert contour in contour module. Changed the UI to reflect the inputs better. changed line edit to spin box. Modified the test accordingly.

2013-04-17, 19:08:36 - wangk

status: changed from “Accepted” to “Test”

2013-04-17, 19:49:51 - wangk

(In r:765|slicerrt:765) Re #219: Modified GUI so when one operand operation is select, the second contour input is disabled.

2013-04-21, 17:49:51 - Csaba Pinter

I cannot close this until the module is fixed: See in #272

2013-04-21, 17:49:51 - Csaba Pinter

status: changed from “Test” to “Accepted”

2013-04-22, 21:12:57 - Csaba Pinter

status: changed from “Accepted” to “Test”

2013-04-22, 23:26:07 - Csaba Pinter

assigned_to_id: changed from “wangk” to “pinter”

2013-04-22, 23:26:13 - Csaba Pinter

status: changed from “Test” to “Accepted”

2013-04-22, 23:56:21 - Csaba Pinter

(In r:786|slicerrt:786) Fixed #219: Added missing feature to Contour Morphology; Clean up Contour Morphology code

2013-04-22, 23:56:21 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

#220 Dice similarity class causes conflict

Instantiating and using the Dice_statistics class prevents the containing module to be successfully loaded by Slicer.

The Contour Comparison module thus cannot compute Dice similarity metrics, because the related code had to be commented in the logic so that the module appears in Slicer. When the code that instantiates and uses the Dice_statistics class is uncommented (see revision 620), then the module disappears from Slicer.

2013-02-18, 05:11:27 - Andras Lasso

(In r:622|slicerrt:622) re #220: Added missing #include to allow loading of ContourComparison module. Without this include depends.exe showed missing VCOMP90.DLL for vtkSlicerContourComparisonModuleLogic.dll (see http://social.msdn.microsoft.com/Forums/en-US/vsx/thread/acb1a0c8-a6b4-40f0-bf2e-009217b35d5e/). Now both Hausdorff distance and Dice similarity metrics can be computed.

2013-02-18, 05:11:27 - Andras Lasso

assigned_to_id: changed from null to “lassoan”

2013-02-19, 18:22:00 - Csaba Pinter

status: changed from “New” to “Test”

2013-02-20, 01:45:23 - Greg Sharp

If this is reasonably working, we can close. I’ve opened #227 to track the effort to remove include.

2013-02-20, 02:06:55 - Csaba Pinter

Including omp.h made the module usable, but it may not be needed. This issue is tracked in #227

2013-02-20, 02:06:55 - Csaba Pinter

status: changed from “Test” to “Fixed”

#221 Automatic test for Contour Comparison

Check both Dice and Hausdorff metrics.

2013-03-26, 15:19:08 - Csaba Pinter

status: changed from “New” to “Accepted”

2013-03-27, 22:35:32 - Csaba Pinter

(In r:705|slicerrt:705) Re #221: Automatic test added for Contour Comparison. The test with the transform doesn’t work yet and the test leaks, these need to be fixed

2013-03-28, 13:33:36 - Csaba Pinter

(In r:707|slicerrt:707) Re #221: Fixed Contour Comparison. test with the transform

2013-03-28, 19:14:24 - Csaba Pinter

(In r:708|slicerrt:708) Fixed #221: Leak fixed in ContourComparison tests; Leak fixed in Isodose test; Small fixes and clean-up in ContourComparison module classes

2013-03-28, 19:14:24 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

#222 build error on Ubuntu

Latest version of SlicerRT fails to build on Ubuntu:

Linking CXX shared library ../../lib/Slicer-4.2/qt-loadable-modules/libvtkSlicerContoursModuleMRML.so CMakeFiles/vtkSlicerContoursModuleMRML.dir/vtkMRMLContourNode.cxx.o: In function

1
2
vtkMRMLContourNode::PrintSelf(std::basic_ostream<char, std::char_traits<char> >&, vtkIndent)':
vtkMRMLContourNode.cxx:(.text+0x89): undefined reference to 
vtkMRMLNode::PrintSelf(std::basic_ostream<char, std::char_traits >&, vtkIndent)' CMakeFiles/vtkSlicerContoursModuleMRML.dir/vtkMRMLContourNode.cxx.o: In function `vtkMRMLContourNode::WriteXML(std::basic_ostream<char, std::char_traits >&, int)': vtkMRMLContourNode.cxx:(.text+0x3c4): undefined reference to `vtkMRMLDisplayableNode::WriteXML(std::basic_ostream<char, std::char_traits >&, int)' CMakeFiles/vtkSlicerContoursModuleMRML.dir/vtkMRMLContourNode.cxx.o: In function `vtkMRMLContourNode::vtkMRMLContourNode()': vtkMRMLContourNode.cxx:(.text+0x6b9): undefined reference to `vtkMRMLDisplayableNode::vtkMRMLDisplayableNode()' vtkMRMLContourNode.cxx:(.text+0x791): undefined reference to `vtkObserverManager::AddObjectEvents(vtkObject*, vtkIntArray*, vtkFloatArray*)' vtkMRMLContourNode.cxx:(.text+0x7d7): undefined reference to `vtkMRMLDisplayableNode::~vtkMRMLDisplayableNode()' CMakeFiles/vtkSlicerContoursModuleMRML.dir/vtkMRMLContourNode.cxx.o: In function `vtkMRMLContourNode::GetRibbonModelNode()': vtkMRMLContourNode.cxx:(.text+0x921): undefined reference to `vtkMRMLScene::GetNodeByID(char const*)' CMakeFiles/vtkSlicerContoursModuleMRML.dir/vtkMRMLContourNode.cxx.o: In function `vtkMRMLContourNode::SetAndObserveRibbonModelNodeId(char const*)': vtkMRMLContourNode.cxx:(.text+0x9a5): undefined reference to `vtkObserverManager::SetAndObserveObject(vtkObject**, vtkObject*, float)' vtkMRMLContourNode.cxx:(.text+0xa28): undefined reference to `vtkObserverManager::SetAndObserveObjectEvents(vtkObject**, vtkObject*, vtkIntArray*, vtkFloatArray*)' CMakeFiles/vtkSlicerContoursModuleMRML.dir/vtkMRMLContourNode.cxx.o: In function `vtkMRMLContourNode::SetAndObserveRasterizationReferenceVolumeNodeId(char const*)': vtkMRMLContourNode.cxx:(.text+0xbc5): undefined reference to `vtkMRMLScene::RemoveReferencedNodeID(char const*, vtkMRMLNode*)' CMakeFiles/vtkSlicerContoursModuleMRML.dir/vtkMRMLContourNode.cxx.o: In function `vtkMRMLContourNode::ShowRepresentation(vtkMRMLDisplayableNode*, bool)': vtkMRMLContourNode.cxx:(.text+0xd3a): undefined reference to `vtkMRMLDisplayableNode::GetNthDisplayNode(int)' CMakeFiles/vtkSlicerContoursModuleMRML.dir/vtkMRMLContourNode.cxx.o: In function `vtkMRMLContourNode::GetColorIndex(int&, vtkMRMLColorTableNode*&, vtkMRMLModelNode*)': vtkMRMLContourNode.cxx:(.text+0x163f): undefined reference to `vtkMRMLDisplayableHierarchyNode::GetDisplayableHierarchyNode(vtkMRMLScene*, char const*)' vtkMRMLContourNode.cxx:(.text+0x16f7): undefined reference to `vtkMRMLHierarchyNode::GetParentNode()' vtkMRMLContourNode.cxx:(.text+0x172d): undefined reference to `vtkMRMLNode::GetAttribute(char const*)' vtkMRMLContourNode.cxx:(.text+0x1769): undefined reference to `vtkMRMLScene::GetNodesByName(char const*)' vtkMRMLContourNode.cxx:(.text+0x1864): undefined reference to `vtkMRMLColorTableNode::GetColorIndexByName(char const*)' vtkMRMLContourNode.cxx:(.text+0x1882): undefined reference to `vtkMRMLDisplayableNode::GetNthDisplayNode(int)' vtkMRMLContourNode.cxx:(.text+0x19aa): undefined reference to `vtkMRMLColorTableNode::GetColorIndexByName(char const*)' CMakeFiles/vtkSlicerContoursModuleMRML.dir/vtkMRMLContourNode.cxx.o: In function `vtkMRMLContourNode::GetTransformFromModelToVolumeIjk(vtkMRMLModelNode*, vtkMRMLScalarVolumeNode*, vtkGeneralTransform*)': vtkMRMLContourNode.cxx:(.text+0x1f53): undefined reference to `vtkMRMLScene::GetNodeByID(char const*)' vtkMRMLContourNode.cxx:(.text+0x20ed): undefined reference to `vtkMRMLScene::GetNodeByID(char const*)' vtkMRMLContourNode.cxx:(.text+0x213f): undefined reference to `vtkMRMLVolumeNode::GetRASToIJKMatrix(vtkMatrix4x4*)' CMakeFiles/vtkSlicerContoursModuleMRML.dir/vtkMRMLContourNode.cxx.o: In function `vtkMRMLContourNode::ConvertFromIndexedLabelmapToClosedSurfaceModel(vtkMRMLScalarVolumeNode*)': vtkMRMLContourNode.cxx:(.text+0x231b): undefined reference to `vtkMRMLScene::StartState(unsigned long, int)' vtkMRMLContourNode.cxx:(.text+0x23ab): undefined reference to `vtkMRMLModelDisplayNode::New()' vtkMRMLContourNode.cxx:(.text+0x23cd): undefined reference to `vtkMRMLScene::AddNode(vtkMRMLNode*)' vtkMRMLContourNode.cxx:(.text+0x243b): undefined reference to `vtkMRMLModelNode::GetModelDisplayNode()' vtkMRMLContourNode.cxx:(.text+0x245c): undefined reference to `vtkMRMLModelNode::GetModelDisplayNode()' vtkMRMLContourNode.cxx:(.text+0x248c): undefined reference to `vtkMRMLModelNode::GetModelDisplayNode()' vtkMRMLContourNode.cxx:(.text+0x24da): undefined reference to `vtkMRMLModelNode::New()' vtkMRMLContourNode.cxx:(.text+0x24fc): undefined reference to `vtkMRMLScene::AddNode(vtkMRMLNode*)' vtkMRMLContourNode.cxx:(.text+0x258e): undefined reference to `vtkMRMLScene::GenerateUniqueName(std::basic_string<char, std::char_traits, std::allocator > const&)' vtkMRMLContourNode.cxx:(.text+0x25df): undefined reference to `vtkMRMLDisplayableNode::SetAndObserveNthDisplayNodeID(int, char const*)' vtkMRMLContourNode.cxx:(.text+0x25f8): undefined reference to `vtkMRMLTransformableNode::SetAndObserveTransformNodeID(char const*)' vtkMRMLContourNode.cxx:(.text+0x266c): undefined reference to `vtkTransformPolyDataFilter::New()' vtkMRMLContourNode.cxx:(.text+0x26a2): undefined reference to `vtkPolyDataAlgorithm::SetInput(vtkDataObject*)' vtkMRMLContourNode.cxx:(.text+0x26e8): undefined reference to `vtkPolyDataAlgorithm::GetOutput()' vtkMRMLContourNode.cxx:(.text+0x271d): undefined reference to `vtkMRMLTransformableNode::SetAndObserveTransformNodeID(char const*)' vtkMRMLContourNode.cxx:(.text+0x2744): undefined reference to `vtkMRMLDisplayableHierarchyNode::GetDisplayableHierarchyNode(vtkMRMLScene*, char const*)' vtkMRMLContourNode.cxx:(.text+0x2770): undefined reference to `vtkMRMLHierarchyNode::GetParentNode()' vtkMRMLContourNode.cxx:(.text+0x2799): undefined reference to `vtkMRMLModelHierarchyNode::New()' vtkMRMLContourNode.cxx:(.text+0x27c2): undefined reference to `vtkMRMLScene::AddNode(vtkMRMLNode*)' vtkMRMLContourNode.cxx:(.text+0x283f): undefined reference to `vtkMRMLScene::EndState(unsigned long)' CMakeFiles/vtkSlicerContoursModuleMRML.dir/vtkMRMLContourNode.cxx.o: In function `vtkMRMLContourNode::GetClosedSurfaceModelNode()': vtkMRMLContourNode.cxx:(.text+0x3143): undefined reference to `vtkMRMLScene::GetNodeByID(char const*)' CMakeFiles/vtkSlicerContoursModuleMRML.dir/vtkMRMLContourNode.cxx.o: In function `vtkMRMLContourNode::SetAndObserveClosedSurfaceModelNodeId(char const*)': vtkMRMLContourNode.cxx:(.text+0x32f5): undefined reference to `vtkObserverManager::SetAndObserveObject(vtkObject**, vtkObject*, float)' vtkMRMLContourNode.cxx:(.text+0x3378): undefined reference to `vtkObserverManager::SetAndObserveObjectEvents(vtkObject**, vtkObject*, vtkIntArray*, vtkFloatArray*)' CMakeFiles/vtkSlicerContoursModuleMRML.dir/vtkMRMLContourNode.cxx.o: In function `vtkMRMLContourNode::GetIndexedLabelmapVolumeNode()': vtkMRMLContourNode.cxx:(.text+0x3520): undefined reference to `vtkMRMLScene::GetNodeByID(char const*)' CMakeFiles/vtkSlicerContoursModuleMRML.dir/vtkMRMLContourNode.cxx.o: In function `vtkMRMLContourNode::SetAndObserveIndexedLabelmapVolumeNodeId(char const*)': vtkMRMLContourNode.cxx:(.text+0x37f5): undefined reference to `vtkObserverManager::SetAndObserveObject(vtkObject**, vtkObject*, float)' vtkMRMLContourNode.cxx:(.text+0x3878): undefined reference to `vtkObserverManager::SetAndObserveObjectEvents(vtkObject**, vtkObject*, vtkIntArray*, vtkFloatArray*)' CMakeFiles/vtkSlicerContoursModuleMRML.dir/vtkMRMLContourNode.cxx.o: In function `vtkMRMLContourNode::ConvertFromModelToIndexedLabelmap(vtkMRMLModelNode*)': vtkMRMLContourNode.cxx:(.text+0x3b93): undefined reference to `vtkMRMLScene::GetNodeByID(char const*)' vtkMRMLContourNode.cxx:(.text+0x3c15): undefined reference to `vtkTransformPolyDataFilter::New()' vtkMRMLContourNode.cxx:(.text+0x3c44): undefined reference to `vtkPolyDataAlgorithm::SetInput(vtkDataObject*)' vtkMRMLContourNode.cxx:(.text+0x3ccf): undefined reference to `vtkPolyDataAlgorithm::GetOutput()' vtkMRMLContourNode.cxx:(.text+0x3cf5): undefined reference to `vtkImageResample::New()' vtkMRMLContourNode.cxx:(.text+0x3d24): undefined reference to `vtkImageAlgorithm::SetInput(vtkDataObject*)' vtkMRMLContourNode.cxx:(.text+0x3d38): undefined reference to `vtkImageResample::SetAxisMagnificationFactor(int, double)' vtkMRMLContourNode.cxx:(.text+0x3d4f): undefined reference to `vtkImageResample::SetAxisMagnificationFactor(int, double)' vtkMRMLContourNode.cxx:(.text+0x3d66): undefined reference to `vtkImageResample::SetAxisMagnificationFactor(int, double)' vtkMRMLContourNode.cxx:(.text+0x3d8e): undefined reference to `vtkImageAlgorithm::GetOutput()' vtkMRMLContourNode.cxx:(.text+0x3de5): undefined reference to `vtkMRMLScalarVolumeNode::New()' vtkMRMLContourNode.cxx:(.text+0x3e0d): undefined reference to `vtkMRMLVolumeNode::CopyOrientation(vtkMRMLVolumeNode*)' vtkMRMLContourNode.cxx:(.text+0x3e9f): undefined reference to `vtkMRMLScene::GenerateUniqueName(std::basic_string<char, std::char_traits, std::allocator > const&)' vtkMRMLContourNode.cxx:(.text+0x3eea): undefined reference to `vtkMRMLTransformableNode::SetAndObserveTransformNodeID(char const*)' vtkMRMLContourNode.cxx:(.text+0x3f21): undefined reference to `vtkMRMLVolumeNode::SetAndObserveImageData(vtkImageData*)' vtkMRMLContourNode.cxx:(.text+0x3f2e): undefined reference to `vtkMRMLScalarVolumeNode::LabelMapOn()' vtkMRMLContourNode.cxx:(.text+0x3f3e): undefined reference to `vtkMRMLScene::AddNode(vtkMRMLNode*)' vtkMRMLContourNode.cxx:(.text+0x3f43): undefined reference to `vtkMRMLLabelMapVolumeDisplayNode::New()' vtkMRMLContourNode.cxx:(.text+0x3f6b): undefined reference to `vtkMRMLScene::AddNode(vtkMRMLNode*)' vtkMRMLContourNode.cxx:(.text+0x3ff5): undefined reference to `vtkMRMLDisplayableNode::SetAndObserveNthDisplayNodeID(int, char const*)' vtkMRMLContourNode.cxx:(.text+0x4022): undefined reference to `vtkMRMLTransformableNode::SetAndObserveTransformNodeID(char const*)' CMakeFiles/vtkSlicerContoursModuleMRML.dir/vtkMRMLContourNode.cxx.o: In function `vtkMRMLContourNode::UpdateReferenceID(char const*, char const*)': vtkMRMLContourNode.cxx:(.text+0x43e2): undefined reference to `vtkMRMLDisplayableNode::UpdateReferenceID(char const*, char const*)' CMakeFiles/vtkSlicerContoursModuleMRML.dir/vtkMRMLContourNode.cxx.o: In function `vtkMRMLContourNode::Copy(vtkMRMLNode*)': vtkMRMLContourNode.cxx:(.text+0x44ff): undefined reference to `vtkMRMLDisplayableNode::Copy(vtkMRMLNode*)' CMakeFiles/vtkSlicerContoursModuleMRML.dir/vtkMRMLContourNode.cxx.o: In function `vtkMRMLContourNode::~vtkMRMLContourNode()': vtkMRMLContourNode.cxx:(.text+0x4694): undefined reference to `vtkMRMLDisplayableNode::~vtkMRMLDisplayableNode()' CMakeFiles/vtkSlicerContoursModuleMRML.dir/vtkMRMLContourNode.cxx.o: In function `vtkMRMLContourNode::UpdateScene(vtkMRMLScene*)': vtkMRMLContourNode.cxx:(.text+0x4709): undefined reference to `vtkMRMLDisplayableNode::UpdateScene(vtkMRMLScene*)' CMakeFiles/vtkSlicerContoursModuleMRML.dir/vtkMRMLContourNode.cxx.o: In function `vtkMRMLContourNode::ProcessMRMLEvents(vtkObject*, unsigned long, void*)': vtkMRMLContourNode.cxx:(.text+0x47b7): undefined reference to `vtkMRMLDisplayableNode::ProcessMRMLEvents(vtkObject*, unsigned long, void*)' vtkMRMLContourNode.cxx:(.text+0x4886): undefined reference to `vtkMRMLScene::RemoveNode(vtkMRMLNode*)' vtkMRMLContourNode.cxx:(.text+0x48b3): undefined reference to `vtkMRMLScene::RemoveNode(vtkMRMLNode*)' vtkMRMLContourNode.cxx:(.text+0x48e0): undefined reference to `vtkMRMLScene::RemoveNode(vtkMRMLNode*)' vtkMRMLContourNode.cxx:(.text+0x49a0): undefined reference to `vtkMRMLTransformableNode::SetAndObserveTransformNodeID(char const*)' vtkMRMLContourNode.cxx:(.text+0x49f9): undefined reference to `vtkMRMLTransformableNode::SetAndObserveTransformNodeID(char const*)' vtkMRMLContourNode.cxx:(.text+0x4a4b): undefined reference to `vtkMRMLTransformableNode::SetAndObserveTransformNodeID(char const*)' vtkMRMLContourNode.cxx:(.text+0x4a9b): undefined reference to `vtkMRMLTransformableNode::SetAndObserveTransformNodeID(char const*)' CMakeFiles/vtkSlicerContoursModuleMRML.dir/vtkMRMLContourNode.cxx.o: In function `vtkMRMLContourNode::UpdateReferences()': vtkMRMLContourNode.cxx:(.text+0x4f79): undefined reference to `vtkMRMLDisplayableNode::UpdateReferences()' vtkMRMLContourNode.cxx:(.text+0x4f8e): undefined reference to `vtkMRMLScene::GetNodeByID(char const*)' vtkMRMLContourNode.cxx:(.text+0x4fac): undefined reference to `vtkMRMLScene::GetNodeByID(char const*)' vtkMRMLContourNode.cxx:(.text+0x4fca): undefined reference to `vtkMRMLScene::GetNodeByID(char const*)' vtkMRMLContourNode.cxx:(.text+0x4fe8): undefined reference to `vtkMRMLScene::GetNodeByID(char const*)' CMakeFiles/vtkSlicerContoursModuleMRML.dir/vtkMRMLContourNode.cxx.o: In function `vtkMRMLContourNode::ReconvertRepresentation(vtkMRMLContourNode::ContourRepresentationType)': vtkMRMLContourNode.cxx:(.text+0x5179): undefined reference to `vtkMRMLScene::RemoveNode(vtkMRMLNode*)' CMakeFiles/vtkSlicerContoursModuleMRML.dir/vtkMRMLContourNode.cxx.o: In function `vtkMRMLContourNode::ReadXMLAttributes(char const**)': vtkMRMLContourNode.cxx:(.text+0x55eb): undefined reference to `vtkMRMLNode::ReadXMLAttributes(char const**)' CMakeFiles/vtkSlicerContoursModuleMRML.dir/vtkMRMLContourNode.cxx.o: In function `vtkMRMLContourNode::SetAndObserveRasterizationReferenceVolumeNodeId(char const*)': vtkMRMLContourNode.cxx:(.text+0xc07): undefined reference to `vtkMRMLScene::AddReferencedNodeID(char const*, vtkMRMLNode*)' CMakeFiles/vtkSlicerContoursModuleMRML.dir/vtkMRMLContourNode.cxx.o: In function `vtkMRMLContourNode::~vtkMRMLContourNode()': vtkMRMLContourNode.cxx:(.text+0x4682): undefined reference to `vtkMRMLDisplayableNode::~vtkMRMLDisplayableNode()' CMakeFiles/vtkSlicerContoursModuleMRML.dir/vtkMRMLContourNode.cxx.o: In function `vtkMRMLContourNode::SetClosedSurfaceModelNodeId(char const*)': vtkMRMLContourNode.cxx:(.text._ZN18vtkMRMLContourNode27SetClosedSurfaceModelNodeIdEPKc[vtkMRMLContourNode::SetClosedSurfaceModelNodeId(char const*)]+0x178): undefined reference to `vtkMRMLScene::AddReferencedNodeID(char const*, vtkMRMLNode*)' vtkMRMLContourNode.cxx:(.text._ZN18vtkMRMLContourNode27SetClosedSurfaceModelNodeIdEPKc[vtkMRMLContourNode::SetClosedSurfaceModelNodeId(char const*)]+0x1ff): undefined reference to `vtkMRMLScene::RemoveReferencedNodeID(char const*, vtkMRMLNode*)' CMakeFiles/vtkSlicerContoursModuleMRML.dir/vtkMRMLContourNode.cxx.o: In function `vtkMRMLContourNode::SetIndexedLabelmapVolumeNodeId(char const*)': vtkMRMLContourNode.cxx:(.text._ZN18vtkMRMLContourNode30SetIndexedLabelmapVolumeNodeIdEPKc[vtkMRMLContourNode::SetIndexedLabelmapVolumeNodeId(char const*)]+0x178): undefined reference to `vtkMRMLScene::AddReferencedNodeID(char const*, vtkMRMLNode*)' vtkMRMLContourNode.cxx:(.text._ZN18vtkMRMLContourNode30SetIndexedLabelmapVolumeNodeIdEPKc[vtkMRMLContourNode::SetIndexedLabelmapVolumeNodeId(char const*)]+0x1ff): undefined reference to `vtkMRMLScene::RemoveReferencedNodeID(char const*, vtkMRMLNode*)' CMakeFiles/vtkSlicerContoursModuleMRML.dir/vtkMRMLContourNode.cxx.o: In function `vtkMRMLContourNode::SetRibbonModelNodeId(char const*)': vtkMRMLContourNode.cxx:(.text._ZN18vtkMRMLContourNode20SetRibbonModelNodeIdEPKc[vtkMRMLContourNode::SetRibbonModelNodeId(char const*)]+0x178): undefined reference to `vtkMRMLScene::AddReferencedNodeID(char const*, vtkMRMLNode*)' vtkMRMLContourNode.cxx:(.text._ZN18vtkMRMLContourNode20SetRibbonModelNodeIdEPKc[vtkMRMLContourNode::SetRibbonModelNodeId(char const*)]+0x1ff): undefined reference to `vtkMRMLScene::RemoveReferencedNodeID(char const*, vtkMRMLNode*)' CMakeFiles/vtkSlicerContoursModuleMRML.dir/vtkMRMLContourNode.cxx.o:(.data.rel.ro._ZTI18vtkMRMLContourNode[typeinfo for vtkMRMLContourNode]+0x10): undefined reference to `typeinfo for vtkMRMLDisplayableNode' CMakeFiles/vtkSlicerContoursModuleMRML.dir/vtkMRMLContourNode.cxx.o:(.data.rel.ro._ZTV18vtkMRMLContourNode[vtable for vtkMRMLContourNode]+0xe0): undefined reference to `vtkMRMLNode::WriteNodeBodyXML(std::basic_ostream<char, std::char_traits >&, int)' CMakeFiles/vtkSlicerContoursModuleMRML.dir/vtkMRMLContourNode.cxx.o:(.data.rel.ro._ZTV18vtkMRMLContourNode[vtable for vtkMRMLContourNode]+0xf0): undefined reference to `vtkMRMLNode::Reset()' CMakeFiles/vtkSlicerContoursModuleMRML.dir/vtkMRMLContourNode.cxx.o:(.data.rel.ro._ZTV18vtkMRMLContourNode[vtable for vtkMRMLContourNode]+0x210): undefined reference to `vtkMRMLNode::SetScene(vtkMRMLScene*)' CMakeFiles/vtkSlicerContoursModuleMRML.dir/vtkMRMLContourNode.cxx.o:(.data.rel.ro._ZTV18vtkMRMLContourNode[vtable for vtkMRMLContourNode]+0x218): undefined reference to `vtkMRMLDisplayableNode::SetSceneReferences()' CMakeFiles/vtkSlicerContoursModuleMRML.dir/vtkMRMLContourNode.cxx.o:(.data.rel.ro._ZTV18vtkMRMLContourNode[vtable for vtkMRMLContourNode]+0x268): undefined reference to `vtkMRMLTransformableNode::CanApplyNonLinearTransforms() const' CMakeFiles/vtkSlicerContoursModuleMRML.dir/vtkMRMLContourNode.cxx.o:(.data.rel.ro._ZTV18vtkMRMLContourNode[vtable for vtkMRMLContourNode]+0x270): undefined reference to `vtkMRMLTransformableNode::ApplyTransformMatrix(vtkMatrix4x4*)' CMakeFiles/vtkSlicerContoursModuleMRML.dir/vtkMRMLContourNode.cxx.o:(.data.rel.ro._ZTV18vtkMRMLContourNode[vtable for vtkMRMLContourNode]+0x278): undefined reference to `vtkMRMLTransformableNode::ApplyTransform(vtkAbstractTransform*)' CMakeFiles/vtkSlicerContoursModuleMRML.dir/vtkMRMLContourNode.cxx.o:(.data.rel.ro._ZTV18vtkMRMLContourNode[vtable for vtkMRMLContourNode]+0x280): undefined reference to `vtkMRMLTransformableNode::TransformPointToWorld(double const*, double*)' CMakeFiles/vtkSlicerContoursModuleMRML.dir/vtkMRMLContourNode.cxx.o:(.data.rel.ro._ZTV18vtkMRMLContourNode[vtable for vtkMRMLContourNode]+0x288): undefined reference to `vtkMRMLTransformableNode::TransformPointFromWorld(double const*, double*)' CMakeFiles/vtkSlicerContoursModuleMRML.dir/vtkMRMLContourNode.cxx.o:(.data.rel.ro._ZTV18vtkMRMLContourNode[vtable for vtkMRMLContourNode]+0x298): undefined reference to `vtkMRMLStorableNode::CreateDefaultStorageNode()' CMakeFiles/vtkSlicerContoursModuleMRML.dir/vtkMRMLContourNode.cxx.o:(.data.rel.ro._ZTV18vtkMRMLContourNode[vtable for vtkMRMLContourNode]+0x2a0): undefined reference to `vtkMRMLStorableNode::GetModifiedSinceRead()' CMakeFiles/vtkSlicerContoursModuleMRML.dir/vtkMRMLContourNode.cxx.o:(.data.rel.ro._ZTV18vtkMRMLContourNode[vtable for vtkMRMLContourNode]+0x2a8): undefined reference to `vtkMRMLStorableNode::GetStoredTime()' CMakeFiles/vtkSlicerContoursModuleMRML.dir/vtkMRMLContourNode.cxx.o:(.data.rel.ro._ZTV18vtkMRMLContourNode[vtable for vtkMRMLContourNode]+0x2b8): undefined reference to `vtkMRMLDisplayableNode::CreateDefaultDisplayNodes()' CMakeFiles/vtkSlicerContoursModuleMRML.dir/vtkMRMLContourNode.cxx.o:(.data.rel.ro._ZTV18vtkMRMLContourNode[vtable for vtkMRMLContourNode]+0x2c0): undefined reference to `vtkMRMLDisplayableNode::GetDisplayVisibility()' CMakeFiles/vtkSlicerContoursModuleMRML.dir/vtkMRMLContourNode.cxx.o:(.data.rel.ro._ZTV18vtkMRMLContourNode[vtable for vtkMRMLContourNode]+0x2c8): undefined reference to `vtkMRMLDisplayableNode::SetDisplayVisibility(int)' CMakeFiles/vtkSlicerContoursModuleMRML.dir/vtkMRMLContourNode.cxx.o:(.data.rel.ro._ZTV18vtkMRMLContourNode[vtable for vtkMRMLContourNode]+0x2d0): undefined reference to `vtkMRMLDisplayableNode::GetRASBounds(double*)' CMakeFiles/vtkSlicerContoursModuleMRML.dir/vtkMRMLContourNode.cxx.o:(.data.rel.ro._ZTV18vtkMRMLContourNode[vtable for vtkMRMLContourNode]+0x2d8): undefined reference to `vtkMRMLDisplayableNode::OnDisplayNodeAdded(vtkMRMLDisplayNode*)' CMakeFiles/vtkSlicerContoursModuleMRML.dir/vtkMRMLContourHierarchyNode.cxx.o: In function `vtkMRMLContourHierarchyNode::GetChildrenContourNodes(vtkCollection*)': vtkMRMLContourHierarchyNode.cxx:(.text+0xbf): undefined reference to `vtkMRMLScene::GetNumberOfNodes()' vtkMRMLContourHierarchyNode.cxx:(.text+0xcd): undefined reference to `vtkMRMLScene::GetNthNode(int)' vtkMRMLContourHierarchyNode.cxx:(.text+0xfc): undefined reference to `vtkMRMLDisplayableHierarchyNode::GetDisplayableHierarchyNode(vtkMRMLScene*, char const*)' vtkMRMLContourHierarchyNode.cxx:(.text+0x119): undefined reference to `vtkMRMLHierarchyNode::GetParentNode()' CMakeFiles/vtkSlicerContoursModuleMRML.dir/vtkMRMLContourHierarchyNode.cxx.o: In function `vtkMRMLContourHierarchyNode::vtkMRMLContourHierarchyNode()': vtkMRMLContourHierarchyNode.cxx:(.text+0x2a9): undefined reference to `vtkMRMLDisplayableHierarchyNode::vtkMRMLDisplayableHierarchyNode()' CMakeFiles/vtkSlicerContoursModuleMRML.dir/vtkMRMLContourHierarchyNode.cxx.o: In function `vtkMRMLContourHierarchyNode::WriteXML(std::basic_ostream<char, std::char_traits >&, int)': vtkMRMLContourHierarchyNode.cxx:(.text+0x179): undefined reference to `vtkMRMLDisplayableHierarchyNode::WriteXML(std::basic_ostream<char, std::char_traits >&, int)' CMakeFiles/vtkSlicerContoursModuleMRML.dir/vtkMRMLContourHierarchyNode.cxx.o: In function `vtkMRMLContourHierarchyNode::ReadXMLAttributes(char const**)': vtkMRMLContourHierarchyNode.cxx:(.text+0x1b9): undefined reference to `vtkMRMLDisplayableHierarchyNode::ReadXMLAttributes(char const**)' CMakeFiles/vtkSlicerContoursModuleMRML.dir/vtkMRMLContourHierarchyNode.cxx.o: In function `vtkMRMLContourHierarchyNode::PrintSelf(std::basic_ostream<char, std::char_traits >&, vtkIndent)': vtkMRMLContourHierarchyNode.cxx:(.text+0x1f9): undefined reference to `vtkMRMLDisplayableHierarchyNode::PrintSelf(std::basic_ostream<char, std::char_traits >&, vtkIndent)' CMakeFiles/vtkSlicerContoursModuleMRML.dir/vtkMRMLContourHierarchyNode.cxx.o: In function `vtkMRMLContourHierarchyNode::~vtkMRMLContourHierarchyNode()': vtkMRMLContourHierarchyNode.cxx:(.text+0x247): undefined reference to `vtkMRMLDisplayableHierarchyNode::~vtkMRMLDisplayableHierarchyNode()' CMakeFiles/vtkSlicerContoursModuleMRML.dir/vtkMRMLContourHierarchyNode.cxx.o:(.data.rel.ro._ZTI27vtkMRMLContourHierarchyNode[typeinfo for vtkMRMLContourHierarchyNode]+0x10): undefined reference to `typeinfo for vtkMRMLDisplayableHierarchyNode' CMakeFiles/vtkSlicerContoursModuleMRML.dir/vtkMRMLContourHierarchyNode.cxx.o:(.data.rel.ro._ZTV27vtkMRMLContourHierarchyNode[vtable for vtkMRMLContourHierarchyNode]+0xc0): undefined reference to `vtkMRMLDisplayableHierarchyNode::UpdateReferences()' CMakeFiles/vtkSlicerContoursModuleMRML.dir/vtkMRMLContourHierarchyNode.cxx.o:(.data.rel.ro._ZTV27vtkMRMLContourHierarchyNode[vtable for vtkMRMLContourHierarchyNode]+0xd0): undefined reference to `vtkMRMLDisplayableHierarchyNode::UpdateScene(vtkMRMLScene*)' CMakeFiles/vtkSlicerContoursModuleMRML.dir/vtkMRMLContourHierarchyNode.cxx.o:(.data.rel.ro._ZTV27vtkMRMLContourHierarchyNode[vtable for vtkMRMLContourHierarchyNode]+0xe0): undefined reference to `vtkMRMLNode::WriteNodeBodyXML(std::basic_ostream<char, std::char_traits >&, int)' CMakeFiles/vtkSlicerContoursModuleMRML.dir/vtkMRMLContourHierarchyNode.cxx.o:(.data.rel.ro._ZTV27vtkMRMLContourHierarchyNode[vtable for vtkMRMLContourHierarchyNode]+0xe8): undefined reference to `vtkMRMLDisplayableHierarchyNode::Copy(vtkMRMLNode*)' CMakeFiles/vtkSlicerContoursModuleMRML.dir/vtkMRMLContourHierarchyNode.cxx.o:(.data.rel.ro._ZTV27vtkMRMLContourHierarchyNode[vtable for vtkMRMLContourHierarchyNode]+0xf0): undefined reference to `vtkMRMLNode::Reset()' CMakeFiles/vtkSlicerContoursModuleMRML.dir/vtkMRMLContourHierarchyNode.cxx.o:(.data.rel.ro._ZTV27vtkMRMLContourHierarchyNode[vtable for vtkMRMLContourHierarchyNode]+0x150): undefined reference to `vtkMRMLDisplayableHierarchyNode::ProcessMRMLEvents(vtkObject*, unsigned long, void*)' CMakeFiles/vtkSlicerContoursModuleMRML.dir/vtkMRMLContourHierarchyNode.cxx.o:(.data.rel.ro._ZTV27vtkMRMLContourHierarchyNode[vtable for vtkMRMLContourHierarchyNode]+0x210): undefined reference to `vtkMRMLNode::SetScene(vtkMRMLScene*)' CMakeFiles/vtkSlicerContoursModuleMRML.dir/vtkMRMLContourHierarchyNode.cxx.o:(.data.rel.ro._ZTV27vtkMRMLContourHierarchyNode[vtable for vtkMRMLContourHierarchyNode]+0x218): undefined reference to `vtkMRMLDisplayableHierarchyNode::SetSceneReferences()' CMakeFiles/vtkSlicerContoursModuleMRML.dir/vtkMRMLContourHierarchyNode.cxx.o:(.data.rel.ro._ZTV27vtkMRMLContourHierarchyNode[vtable for vtkMRMLContourHierarchyNode]+0x220): undefined reference to `vtkMRMLDisplayableHierarchyNode::UpdateReferenceID(char const*, char const*)' CMakeFiles/vtkSlicerContoursModuleMRML.dir/vtkMRMLContourHierarchyNode.cxx.o:(.data.rel.ro._ZTV27vtkMRMLContourHierarchyNode[vtable for vtkMRMLContourHierarchyNode]+0x268): undefined reference to `vtkMRMLHierarchyNode::SetParentNodeID(char const*)' CMakeFiles/vtkSlicerContoursModuleMRML.dir/vtkMRMLContourHierarchyNode.cxx.o:(.data.rel.ro._ZTV27vtkMRMLContourHierarchyNode[vtable for vtkMRMLContourHierarchyNode]+0x278): undefined reference to `vtkMRMLHierarchyNode::SetAssociatedNodeID(char const*)' ../../SlicerRtCommon/libvtkSlicerRtCommon.a(SlicerRtCommon.cxx.o): In function `SlicerRtCommon::GetTransformBetweenTransformables(vtkMRMLTransformableNode*, vtkMRMLTransformableNode*, vtkGeneralTransform*)': SlicerRtCommon.cxx:(.text+0x7e): undefined reference to `vtkMRMLTransformableNode::GetParentTransformNode()' SlicerRtCommon.cxx:(.text+0x89): undefined reference to `vtkMRMLTransformableNode::GetParentTransformNode()' SlicerRtCommon.cxx:(.text+0x9d): undefined reference to `vtkMRMLTransformNode::GetTransformToWorld(vtkGeneralTransform*)' SlicerRtCommon.cxx:(.text+0xbe): undefined reference to `vtkMRMLTransformNode::GetTransformToNode(vtkMRMLTransformNode*, vtkGeneralTransform*)' SlicerRtCommon.cxx:(.text+0xf4): undefined reference to `vtkMRMLTransformNode::GetTransformToWorld(vtkGeneralTransform*)' SlicerRtCommon.cxx:(.text+0x107): undefined reference to `vtkMRMLTransformNode::GetTransformToWorld(vtkGeneralTransform*)' ../../SlicerRtCommon/libvtkSlicerRtCommon.a(vtkPolyDataToLabelmapFilter.cxx.o): In function `vtkPolyDataToLabelmapFilter::Update()': vtkPolyDataToLabelmapFilter.cxx:(.text+0xc3): undefined reference to `vtkPolyDataNormals::New()' vtkPolyDataToLabelmapFilter.cxx:(.text+0xd2): undefined reference to `vtkPolyDataAlgorithm::SetInput(vtkDataObject*)' vtkPolyDataToLabelmapFilter.cxx:(.text+0xe4): undefined reference to `vtkTriangleFilter::New()' vtkPolyDataToLabelmapFilter.cxx:(.text+0xfb): undefined reference to `vtkAlgorithm::GetOutputPort(int)' vtkPolyDataToLabelmapFilter.cxx:(.text+0x108): undefined reference to `vtkStripper::New()' vtkPolyDataToLabelmapFilter.cxx:(.text+0x134): undefined reference to `vtkAlgorithm::GetOutputPort(int)' vtkPolyDataToLabelmapFilter.cxx:(.text+0x142): undefined reference to `vtkImageData::New()' vtkPolyDataToLabelmapFilter.cxx:(.text+0x1df): undefined reference to `vtkImageData::SetScalarType(int)' vtkPolyDataToLabelmapFilter.cxx:(.text+0x1ee): undefined reference to `vtkImageData::SetNumberOfScalarComponents(int)' vtkPolyDataToLabelmapFilter.cxx:(.text+0x27a): undefined reference to `vtkImageData::GetNumberOfScalarComponents()' vtkPolyDataToLabelmapFilter.cxx:(.text+0x2bb): undefined reference to `vtkPolyDataToImageStencil::New()' vtkPolyDataToLabelmapFilter.cxx:(.text+0x2d4): undefined reference to `vtkAlgorithm::GetOutputPort(int)' vtkPolyDataToLabelmapFilter.cxx:(.text+0x352): undefined reference to `vtkImageStencil::New()' vtkPolyDataToLabelmapFilter.cxx:(.text+0x362): undefined reference to `vtkImageAlgorithm::SetInput(vtkDataObject*)' vtkPolyDataToLabelmapFilter.cxx:(.text+0x375): undefined reference to `vtkImageStencilAlgorithm::GetOutput()' vtkPolyDataToLabelmapFilter.cxx:(.text+0x3d6): undefined reference to `vtkImageAlgorithm::GetOutput()' vtkPolyDataToLabelmapFilter.cxx:(.text+0x585): undefined reference to `vtkImageCast::New()' vtkPolyDataToLabelmapFilter.cxx:(.text+0x5a1): undefined reference to `vtkAlgorithm::GetOutputPort(int)' vtkPolyDataToLabelmapFilter.cxx:(.text+0x5e3): undefined reference to `vtkImageAlgorithm::GetOutput()' ../../SlicerRtCommon/libvtkSlicerRtCommon.a(vtkPolyDataToLabelmapFilter.cxx.o): In function `vtkPolyDataToLabelmapFilter::vtkPolyDataToLabelmapFilter()': vtkPolyDataToLabelmapFilter.cxx:(.text+0x865): undefined reference to `vtkPolyData::New()' vtkPolyDataToLabelmapFilter.cxx:(.text+0x8bf): undefined reference to `vtkImageData::New()' vtkPolyDataToLabelmapFilter.cxx:(.text+0x91c): undefined reference to `vtkImageData::New()' ../../SlicerRtCommon/libvtkSlicerRtCommon.a(vtkLabelmapToModelFilter.cxx.o): In function `vtkLabelmapToModelFilter::Update()': vtkLabelmapToModelFilter.cxx:(.text+0x72): undefined reference to `vtkMarchingCubes::New()' vtkLabelmapToModelFilter.cxx:(.text+0x92): undefined reference to `vtkPolyDataAlgorithm::SetInput(vtkDataObject*)' vtkLabelmapToModelFilter.cxx:(.text+0xff): undefined reference to `vtkPolyDataAlgorithm::GetOutput()' vtkLabelmapToModelFilter.cxx:(.text+0x107): undefined reference to `vtkPolyData::GetNumberOfPolys()' vtkLabelmapToModelFilter.cxx:(.text+0x115): undefined reference to `vtkDecimatePro::New()' vtkLabelmapToModelFilter.cxx:(.text+0x131): undefined reference to `vtkPolyDataAlgorithm::GetOutput()' vtkLabelmapToModelFilter.cxx:(.text+0x13e): undefined reference to `vtkPolyDataAlgorithm::SetInput(vtkDataObject*)' vtkLabelmapToModelFilter.cxx:(.text+0x1bf): undefined reference to `vtkPolyDataAlgorithm::GetOutput()' ../../SlicerRtCommon/libvtkSlicerRtCommon.a(vtkLabelmapToModelFilter.cxx.o): In function `vtkLabelmapToModelFilter::vtkLabelmapToModelFilter()': vtkLabelmapToModelFilter.cxx:(.text+0x7d5): undefined reference to `vtkImageData::New()' vtkLabelmapToModelFilter.cxx:(.text+0x82f): undefined reference to `vtkPolyData::New()' collect2: ld returned 1 exit status make[5]: *** [lib/Slicer-4.2/qt-loadable-modules/libvtkSlicerContoursModuleMRML.so] Error 1 make[4]: *** [Contours/MRML/CMakeFiles/vtkSlicerContoursModuleMRML.dir/all] Error 2 make[3]: *** [all] Error 2 make[2]: *** [inner-prefix/src/inner-stamp/inner-build] Error 2 make[1]: *** [CMakeFiles/inner.dir/all] Error 2 make: *** [all] Error 2

2013-02-19, 02:41:55 - Csaba Pinter

status: changed from “New” to “Accepted”

2013-02-19, 02:42:00 - Csaba Pinter

milestone_id: changed from null to “SlicerRt 0.9.0 (2013-03)”

2013-02-19, 03:00:31 - Csaba Pinter

(In r:624|slicerrt:624) Fixed #222: Fixed linker error on clean build

2013-02-19, 03:00:31 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

2013-02-19, 03:00:57 - Csaba Pinter

Thanks for reporting this!

2013-02-19, 03:19:14 - Csaba Pinter

@nsh: This change fixed the build error on Windows, however, when I wanted to confirm for Ubuntu, there was another build error (#223). It is about OpenMP linking for the Dice algorithm.

Apparently it cannot link OpenMP libs for Dice similarity:

Linking CXX shared library ../../lib/Slicer-4.2/qt-loadable-modules/libvtkSlicerContourComparisonModuleLogic.so /home/perklab/Devel/SlicerRT_R64-bin/Plastimatch-build/libplmutil.a(dice_statistics.cxx.o): In function

1
2
Dice_statistics::run() [clone ._omp_fn.0]':
dice_statistics.cxx:(.text+0x18): undefined reference to 
omp_get_num_threads’ dice_statistics.cxx:(.text+0x24): undefined reference to
1
2
omp_get_thread_num'
dice_statistics.cxx:(.text+0x2ab): undefined reference to 
GOMP_atomic_start’ /home/perklab/Devel/SlicerRT_R64-bin/Plastimatch-build/libplmutil.a(dice_statistics.cxx.o): In function
1
2
Dice_statistics::run()':
dice_statistics.cxx:(.text+0xa24): undefined reference to 
GOMP_parallel_start’ dice_statistics.cxx:(.text+0xa36): undefined reference to
1
2
GOMP_parallel_end'
/home/perklab/Devel/SlicerRT_R64-bin/Plastimatch-build/libplmutil.a(dice_statistics.cxx.o): In function 
Dice_statistics::run() [clone ._omp_fn.0]’: dice_statistics.cxx:(.text+0x33c): undefined reference to
1
2
GOMP_atomic_end'
/home/perklab/Devel/SlicerRT_R64-bin/Plastimatch-build/libplmutil.a(hausdorff_distance.cxx.o): In function 
Hausdorff_distance::run_internal(itk::SmartPointer<itk::Image<unsigned char, 3u> >, itk::SmartPointer<itk::Image<float, 3u> >)’: hausdorff_distance.cxx:(.text+0xa56): undefined reference to `kth_smallest(float*, int, int)’ collect2: ld returned 1 exit status

2013-02-19, 18:22:12 - Csaba Pinter

assigned_to_id: changed from null to “gregsharp”

2013-02-19, 18:22:48 - Csaba Pinter

@gregsharp: I’m assigning this one to you as it is also related to OpenMP

2013-02-19, 18:48:59 - Greg Sharp

status: changed from “New” to “Accepted”

2013-02-19, 22:52:26 - Greg Sharp

(In r:629|slicerrt:629) Re #223: Bump plastimatch version number to fix link error for kth_smallest

2013-02-19, 23:03:19 - Greg Sharp

(In r:630|slicerrt:630) Test #223: Add linker flags vtkSlicerContourComparisonLogic to prevent link error

2013-02-19, 23:03:19 - Greg Sharp

status: changed from “Accepted” to “Test”

2013-02-20, 17:32:14 - Csaba Pinter

Build is OK now, I’m closing the issue. Thanks, Greg!

2013-02-20, 17:32:14 - Csaba Pinter

status: changed from “Test” to “Fixed”

#224 build error on Ubuntu

There is another error.

[ 17%] Building CXX object DicomRtImport/Logic/CMakeFiles/vtkSlicerDicomRtImportModuleLogic.dir/vtkSlicerDicomRtReader.cxx.o /home/nadya/SlicerRT/src/DicomRtImport/Logic/vtkSlicerDicomRtReader.cxx:45:34: fatal error: dcmtk/dcmrt/drtstrct.h: No such file or directory compilation terminated. make[5]: ** [DicomRtImport/Logic/CMakeFiles/vtkSlicerDicomRtImportModuleLogic.dir/vtkSlicerDicomRtReader.cxx.o] Error 1 make[4]: ** [DicomRtImport/Logic/CMakeFiles/vtkSlicerDicomRtImportModuleLogic.dir/all] Error 2 make[3]: ** [all] Error 2 make[2]: ** [inner-prefix/src/inner-stamp/inner-build] Error 2 make[1]: ** [CMakeFiles/inner.dir/all] Error 2 make: ** [all] Error 2

2013-02-19, 03:32:46 - Csaba Pinter

@nsh: This error was due to some file renamings in DCMTK a couple of weeks ago. Can you please update your Slicer working copy and try again?

2013-02-19, 03:32:46 - Csaba Pinter

status: changed from “New” to “Test”

2013-02-19, 04:00:04 - Csaba Pinter

assigned_to_id: changed from “pinter” to “nsh”

2013-02-19, 19:03:49 - Csaba Pinter

@nsh: Did my suggestion solved this particular build error? Can we close this issue?

2013-02-19, 19:07:11 - nsh

Have to wait untll tomorrow (I work on Ubuntu at home).

2013-02-19, 21:10:18 - Csaba Pinter

milestone_id: changed from null to “SlicerRt 0.9.0 (2013-03)”

2013-02-20, 03:34:43 - nsh

After Slicer update compilation is successful on Ubuntu.

2013-02-20, 13:15:38 - Csaba Pinter

status: changed from “Test” to “Invalid”

#225 build error on Windows 7 with Visual Studio Express

The latest version does not compile on Windows 7:

8>8>Compiling… 8>8>vtkMRMLContourMorphologyNode.cxx 8>7>vtkSlicerContourComparisonModuleLogic.cxx 8>7>..\..\..\..\SlicerRT\src\ContourComparison\Logic\vtkSlicerContourComparisonModuleLogic.cxx(22) : fatal error C1083: Cannot open include file: ‘omp.h’: No such file or directory 8>7>Generating Code… 8>7>Build log was saved at ‘file://c:\cygwin\home
adya\SlicerRT-build\inner-build\ContourComparison\Logic\vtkSlicerContourComparisonModuleLogic.dir\elease\BuildLog.htm’ 8>7>vtkSlicerContourComparisonModuleLogic - 1 error(s), 0 warning(s)

2013-02-19, 16:31:41 - Greg Sharp

Please assign openmp problems to me.

Meanwhile, Nadya, if you delete the line #include from that file, it will compile.

2013-02-19, 16:31:41 - Greg Sharp

assigned_to_id: changed from “pinter” to “gregsharp”

2013-02-19, 16:50:03 - nsh

Compilation successful after deleting #include omp.h

2013-02-19, 17:04:24 - Greg Sharp

(In r:626|slicerrt:626) Re #225: Possible workaround for build failure on MSVC express

2013-02-19, 18:06:43 - Csaba Pinter

This looks good. Unfortunately if OpenMP is missing, then the whole module is missing too from Slicer.

2013-02-19, 18:17:08 - Greg Sharp

Really? Does this change cause module not to show up? Can you give details?

2013-02-19, 18:20:05 - Csaba Pinter

If omp.h is not included, but the Dice class is in use (i.e. instantiated), then the DLL loading fails under windows, and the module does not appear in the module list, accompanied by an error message in the Error log, that qSlicerContourComparisonModuleWidget class could not be loaded by Slicer. See ticket #220

2013-02-19, 18:20:59 - Csaba Pinter

summary: changed from “build error on Windows 7” to “build error on Windows 7 with Visual Studio Express”

2013-02-19, 18:49:04 - Greg Sharp

status: changed from “New” to “Accepted”

2013-02-19, 21:10:22 - Csaba Pinter

milestone_id: changed from null to “SlicerRt 0.9.0 (2013-03)”

2013-02-20, 01:40:02 - Greg Sharp

I consider this issue to be solved with conditional inclusion of , but opened a separate ticket #227 to track the effort to remove the need for .

2013-02-20, 01:40:02 - Greg Sharp

status: changed from “Accepted” to “Test”

2013-02-21, 23:26:38 - Csaba Pinter

Is this ticket considered fixed? Is the build successful using VS Express on the latest revision?

2013-02-23, 19:00:50 - Csaba Pinter

status: changed from “Test” to “Fixed”

#226 Plastimatch CUDA acceleration is disabled

There are two issues building plastimatch when CUDA is installed.

(1) On linux & mac, if gcc 4.3 is not installed, the build fails (2) On windows, the nvcc call fails because command line is too long

CUDA build will be disabled until these are fixed

2013-02-19, 22:47:45 - Greg Sharp

(In r:628|slicerrt:628) Re #226: Tell plastimatch to build without CUDA

2013-02-19, 22:47:45 - Greg Sharp

assigned_to_id: changed from null to “gregsharp”

2013-02-20, 01:55:15 - Greg Sharp

status: changed from “New” to “Accepted”

2013-02-20, 02:07:24 - Csaba Pinter

milestone_id: changed from null to “SlicerRt 0.9.0 (2013-03)”

2013-03-28, 22:39:53 - Greg Sharp

milestone_id: changed from “SlicerRt 0.9.0 (2013-03)” to “Future”

2013-03-28, 22:40:33 - Greg Sharp

summary: changed from “Build issues when cuda is installed” to “Plastimatch CUDA acceleration is disabled”

2014-01-22, 18:59:21 - Csaba Pinter

status: changed from “Accepted” to “New”

2015-09-10, 14:55:12 - Greg Sharp

milestone_id: changed from “Future” to “SlicerRt 0.18”

2015-09-10, 15:01:12 - Greg Sharp

milestone_id: changed from “SlicerRt 0.18” to “Future”

#227 Remove need for #include

It should not be necessary to include in the ContourComparison module. This ticket will track the effort to remove this.

2013-02-20, 01:38:13 - Greg Sharp

assigned_to_id: changed from null to “gregsharp”

2013-02-20, 01:38:13 - Greg Sharp

status: changed from “New” to “Accepted”

2013-02-20, 01:50:07 - Greg Sharp

I did some testing on this, using MSVC 2010 compiler.

(1) SlicerRT builds plastimatch as shared lib

(2) plmutil.lib correctly includes dependency on VCOMP.LIB, as evidenced by:

1
2
3
dumpbin /all plmutil.lib

Which shows

1
2
3
/DEFAULTLIB:'VCOMP'

(3) A test executable which does not include and does not use '/openmp' option was created and linked against plmutil.h.

1
2
3
4
cl /MD main.cxx plmutil.lib plmbase.lib plmsys.lib


This executable was found to correctly depend on VCOMP100.DLL

2013-02-20, 02:07:10 - Csaba Pinter

milestone_id: changed from null to “SlicerRt 0.9.0 (2013-03)”

2013-03-28, 22:41:05 - Greg Sharp

milestone_id: changed from “SlicerRt 0.9.0 (2013-03)” to “SlicerRt 0.10.0 (2013-04)”

2013-04-21, 15:43:53 - Csaba Pinter

status: changed from “Accepted” to “New”

2013-04-21, 15:53:48 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.10.0 (2013-04)” to “SlicerRt 0.11.0 (2013-05)”

2013-05-18, 18:31:35 - Greg Sharp

milestone_id: changed from “SlicerRt 0.11.0 (2013-05)” to “Future”

2013-05-18, 18:31:40 - Greg Sharp

I think this bug is not critical for release. So I move to future.

2013-05-18, 23:01:37 - Csaba Pinter

Agreed.

2015-05-24, 22:16:57 - Csaba Pinter

OpenMP dll is now included in the release. We could try enabling it. (Sorry, I think it’s ticket #664, not this)

2015-05-24, 22:16:57 - Csaba Pinter

Component: changed from null to “SlicerRt modules”

2015-05-24, 22:16:57 - Csaba Pinter

milestone_id: changed from “Future” to “SlicerRt 0.16”

2015-05-24, 22:16:57 - Csaba Pinter

CommentContent: changed from “OpenMP dll is now included in the release. We could try enabling it.” to “OpenMP dll is now included in the release. We could try enabling it. (Sorry, I think it’s ticket #664, not this)”

2015-05-28, 14:41:33 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.16” to “SlicerRt 0.18”

2015-06-04, 22:09:42 - Csaba Pinter

Moved to 0.19

2015-06-04, 22:09:42 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.18” to “SlicerRt 0.19”

2017-05-01, 13:46:52 - Csaba Pinter

Moved to EBP milestone

2017-05-01, 13:46:52 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.19” to “SlicerRt 0.20 - External Beam Planning”

2017-05-01, 23:01:11 - Greg Sharp

milestone_id: changed from “SlicerRt 0.20 - External Beam Planning” to “SlicerRt 1.0”

2017-07-23, 19:30:57 - Csaba Pinter

@gregsharp I moved this ticket to EBP so that most Plastimatch-related tickets are in the same place. Also this looks like an outlier in the 1,0 release milestone, as it doesn’t belong to the ‘product release’ tasks. Apparently you didn’t like this in the EBP milestone, but I don’t like it in the 1.0 one, so I’m moving this to Future.

2017-07-23, 19:31:01 - Csaba Pinter

milestone_id: changed from “SlicerRt 1.0” to “Future”

#228 Check dimensions when oversampling labelmap

In case of oversampling factor 2.0, the dimensions of the result is not exactly doubled (512->1023). Origin also changes slightly. Investigate why and fix.

2013-02-21, 23:27:56 - Csaba Pinter

vtkImageResample filter works as follows: If the original image has the size 512x512x512, then the extents are ([0,511],[0,511],[0,511]). The filter doubles the max extent value, so it becomes ([0,1022],[0,1022],[0,1022]). So the output has the image size 102310231023

This issue is tracked in #229

2013-02-21, 23:27:56 - Csaba Pinter

status: changed from “New” to “Fixed”

#229 Labelmap resampling does not exactly work according to the magnification factor

vtkImageResample filter works as follows: If the original image has the size 512x512x512, then the extents are ([0,511],[0,511],[0,511]). The filter doubles the max extent value, so it becomes ([0,1022],[0,1022],[0,1022]). So the output has the image size 102310231023

This is not acceptable so it is needed to replace vtkImageResample with vtkImageReslice filter. Maybe also adding a convenience function for it (due to the increased number of parameters to set) to SlicerRtCommon

2013-02-21, 23:28:11 - Csaba Pinter

status: changed from “New” to “Accepted”

2013-02-22, 00:07:33 - Csaba Pinter

(In r:640|slicerrt:640) Re #229: Use vtkImageReslice instead of vthImageResample to accurately apply oversampling factor to the volumes. DVH values slightly changed so replacing the baselines are necessary; Improving one-up quantitative layout icon

2013-02-22, 00:40:12 - Csaba Pinter

(In r:641|slicerrt:641) Test #229: DVH test baselines and tolerances adjusted to the new oversampling method

2013-02-22, 00:40:12 - Csaba Pinter

status: changed from “Accepted” to “Test”

2013-03-27, 20:34:32 - Csaba Pinter

status: changed from “Test” to “Fixed”

#230 PolyDataToLabelmap conversion gives bad result if the reference volume is oriented differently than the ribbons

See screenshot

2013-02-21, 22:11:09 - Csaba Pinter

image:cyhKTsFhmr4Om0acwqEsg8 Incorrect labelmap representation of a mandible (concave structure)

2013-02-21, 22:11:09 - Csaba Pinter

Attachment added: “MandibleLabelmap.PNG”

2013-02-21, 23:09:42 - Andras Lasso

Most likely the problem is not due to concavity but due to converting the contours from ribbon to labelmap on a modified volume. Doing it in two steps should work correctly: convert from ribbon to closed surface using the original CT as reference, then convert the closed surface to labelmap on the transformed CT.

We plan to implement a more advanced planar contour to closed surface converter (see #103), that will resolve this.

2013-02-21, 23:34:21 - Csaba Pinter

Answer to the reporter: ‘The problem is that the transformed ribbon models are not aligned with the volume you’re using as a reference. If you convert the ribbon models from the original study using the planning CT, and then transform those closed surface models using your transform, then you can convert to labelmap properly for comparison.’

2013-02-21, 23:34:36 - Csaba Pinter

assigned_to_id: changed from null to “lassoan”

2013-02-21, 23:34:36 - Csaba Pinter

milestone_id: changed from null to “SlicerRt 0.9.0 (2013-03)”

2013-02-21, 23:34:36 - Csaba Pinter

status: changed from “New” to “Invalid”

2013-02-24, 21:51:44 - Andras Lasso

It seems that the workaround doesn’t always help. Check if it’s possible to modify the workflow to avoid ribbon->labelmap and closed surface->labelmap conversion on a modified reference volume (e.g., apply the deformation on the labelmap).

2013-02-24, 21:51:44 - Andras Lasso

assigned_to_id: changed from “lassoan” to “pinter”

2013-02-24, 21:51:44 - Andras Lasso

status: changed from “Invalid” to “Test”

2013-02-25, 15:49:49 - wangk

I think Csaba’s workaround should work most of the time. One thing that would make this more robust and convenient is to have the patient hierarchy ready so the ribbon model know where to look for the referenced CT volume and the ribbon model is converted to labelmap when it is imported into slicer (we can keep both ribbon model and labelmap). then you can use labelmap for the actual transformation and then get updated the ribbon model from the transformed labelmap.

2013-02-25, 15:54:32 - Csaba Pinter

Great idea, Kevin! One more reason to finally finish the patient hierarchy.

2013-02-27, 12:55:01 - Andras Lasso

Actually, we could just save the referenced volume’s origin, spacing, and direction as a MRML node custom attribute. Then, when a conversion to labelmap is needed, it could be done it two steps:

Convert to labelmap in referenced volume space (probably oversampled 2x or 4x)

Resample the generated labelmap in the requested space

This two-step conversion takes more time and there could be some minor differences in the end result, but it’s quite simple to do and seems to be robust (see http://www.insight-journal.org/browse/publication/887). I think we should implement this to have a robust solution until the direct contour->closed surface implementation and a reliable closed surface->image algorithms are ready.

2013-02-27, 12:55:01 - Andras Lasso

status: changed from “Test” to “New”

2013-02-27, 13:49:02 - Csaba Pinter

summary: changed from “PolyDataToLabelmap conversion cannot handle concave structures properly” to “PolyDataToLabelmap conversion gives bad result if the reference volume is oriented differently than the ribbons”

2013-03-24, 19:57:07 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.9.0 (2013-03)” to “SlicerRt 0.10.0 (2013-04)”

2013-04-04, 16:35:03 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.10.0 (2013-04)” to “SlicerRt 0.11.0 (2013-05)”

2013-04-26, 17:59:44 - Csaba Pinter

status: changed from “New” to “Accepted”

2013-05-08, 20:33:01 - Csaba Pinter

(In r:811|slicerrt:811) Re #230, re #280: PatientHierarchy plugin mechanism added that facilitates using special node types (e.g. Contour) in the PatientHierarchy tree. For now, the potential nodes list and the dropping from that is handled by the plugins; Improvements on using the referenced series for contour conversion from ribbon

2013-05-13, 21:21:06 - Csaba Pinter

(In r:820|slicerrt:820) Re #230: Implemented two-step model to labelmap conversion (it uses the referenced series (the anatomical volume) to convert to volume first, then resamples to selected reference volume grid); Deleted unnecessary function from SlicerRtCommon; Excluded vtkSlicerContoursPatientHierarchyPlugin from python wrapping, because it fails to wrap (see 210)

2013-05-14, 17:17:51 - Csaba Pinter

image:a1horgVlOr4OogacwqjQXA Slicer scene screenshot about conversion with transformed reference

2013-05-14, 17:17:51 - Csaba Pinter

Attachment added: “230_ContourConversionWithTransformedReference.png”

2013-05-14, 17:22:50 - Csaba Pinter

(In r:821|slicerrt:821) Test #230: Contour conversion form ribbon to labelmap works with all kinds of reference volumes. The parent transforms are also taken into account.

2013-05-14, 17:22:50 - Csaba Pinter

status: changed from “Accepted” to “Test”

2013-05-14, 19:16:00 - Csaba Pinter

(In r:822|slicerrt:822) Re #230: Fixed automatic DVH tests that failed due to change in contour conversion

2013-05-14, 22:58:00 - Csaba Pinter

(In r:824|slicerrt:824) Re #230: Referenced anatomical volume is not resampled now (as it had been used for contouring as is), and instead of using nearest neighbors when resampling, now linear interpolation is used, followed by a thresholding (threshold value can be set)

2013-05-15, 13:59:58 - Csaba Pinter

(In r:825|slicerrt:825) Re #230: Do not use the referenced anatomy volume when its geometry matches that of the selected reference (the additional resampling does not prevent any faults in this case). Comparing the geometries happen in a very simple way, just by comparing the matrix elements.

2013-05-16, 23:04:57 - Csaba Pinter

(In r:831|slicerrt:831) Re #230: Message is displayed in Contours module UI if the selected modules have been created from labelmap (to let the user know that is why the reference combobox is empty although the active representation is labelmap)

2013-07-04, 19:14:40 - Csaba Pinter

status: changed from “Test” to “Fixed”

#231 Change resampling to consider the origins meaning voxel centers

Because the coordinates mean the center of the voxels, the origins are not the same when oversampling a volume.

Check the change of DVH tables correspondence change (SlicerRT-CERR-Eclipse)

2013-02-26, 17:10:42 - Csaba Pinter

status: changed from “New” to “Accepted”

2013-02-26, 18:45:55 - Csaba Pinter

image:daU8fAGeqr4Rp8acwqEsg8 Screenshot showing the matching of the reference and oversampled voxels (#231)

2013-02-26, 18:45:55 - Csaba Pinter

Attachment added: “OversamplingFixed.png”

2013-02-26, 18:57:39 - Csaba Pinter

(In r:651|slicerrt:651) Re #231: Origin of the volumes changed when oversampling to consider voxel-centre grid points

2013-02-26, 18:58:35 - Csaba Pinter

The poly data to labelmap conversion is still shifting the labelmap towards the positive direction of the axes. Needs to be fixed

2013-02-26, 23:36:04 - Csaba Pinter

image:bjgi4QGg0r4PCOacwqjQYw Screenshot showing that setting the approtriate origin after resampling is fixed

2013-02-26, 23:36:04 - Csaba Pinter

Attachment added: “OriginAfterOversamplingFixed.png”

2013-02-26, 23:45:14 - Csaba Pinter

(In r:652|slicerrt:652) Re #231: Fix moving origin of volumes when oversampling considering IJK2RAS axis differences

2013-02-27, 17:04:35 - Csaba Pinter

(In r:657|slicerrt:657) Re #231: Origin of resampled volumes is computed using the whole matrix

2013-02-27, 17:06:51 - Csaba Pinter

status: changed from “Accepted” to “Test”

2013-02-27, 18:32:04 - Csaba Pinter

(In r:658|slicerrt:658) Re #231: Compute and set the IJK2RAS matrix to the resampled volume instead of the origin and spacing; Initialize all declared arrays

2013-03-03, 21:41:35 - Csaba Pinter

status: changed from “Test” to “Fixed”

#232 Investigate DVH differences due to change in resampling

Resampling has been recently (rev640) changed, which affected the DVH computation. Although in case of most structures the change is insignificant, there are some that needs to be investigated. These structures are

2013-02-27, 16:53:26 - Csaba Pinter

file:a0LrkoGp4r4QNgacwqjQWU DVH differences between revision before and after resampling change

2013-02-27, 16:53:26 - Csaba Pinter

Attachment added: “DVH_test_revs578and651.txt”

2013-03-24, 19:57:07 - Csaba Pinter

milestone_id: changed from null to “SlicerRt 0.10.0 (2013-04)”

2013-04-04, 16:35:03 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.10.0 (2013-04)” to “SlicerRt 0.11.0 (2013-05)”

2013-04-25, 00:58:22 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2013-07-11, 01:27:31 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.11.0 (2013-05)” to “SlicerRt 1.0 (2013-06)”

2013-09-05, 14:36:21 - Csaba Pinter

working_hours: changed from “0.0” to “2.0”

2013-09-05, 14:36:21 - Csaba Pinter

total_working_hours: changed from “0.0” to “2.0”

2013-09-05, 14:38:36 - Csaba Pinter

milestone_id: changed from “SlicerRt 1.0” to “SlicerRt 0.12”

2013-09-24, 21:05:09 - Csaba Pinter

Apparently the rasterization algorithm performes much worse in some certain cases. Probably we should postpone taking actions about this until after Jen has finished the rasterization study. Then we will know more about the best ways to rasterize contours.

2013-09-24, 21:05:59 - Csaba Pinter

Apparently the rasterization algorithm performes much worse in some certain cases. Probably we should postpone taking actions about this until after Jen has finished the rasterization study. Then we will know more about the best ways to rasterize contours.

2013-09-24, 21:24:51 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.12” to “Future”

2014-07-13, 06:09:43 - Csaba Pinter

priority: changed from “Normal (3)” to “Low (4)”

2015-09-10, 14:55:12 - Greg Sharp

milestone_id: changed from “Future” to “SlicerRt 0.18”

2015-09-10, 15:01:25 - Greg Sharp

milestone_id: changed from “SlicerRt 0.18” to “Future”

2015-09-17, 19:18:40 - Csaba Pinter

DVH changed too many times since the creation of this ticket that it can be done in the manner it was intended. Kyle is working on rasterization evaluation and its effect on DVH, so this is being addressed. Closing as invalid (duplicate of #521)

2015-09-17, 19:18:40 - Csaba Pinter

working_hours: changed from “2.0” to “0.0”

2015-09-17, 19:18:40 - Csaba Pinter

status: changed from “New” to “Invalid”

2015-09-17, 19:18:40 - Csaba Pinter

total_working_hours: changed from “2.0” to “0.0”

#233 Plastimatch updates only the second time when build is started

Plastimatch does not update for the first time when build is started and the external Plastimatch revision does not match the local repository. Maybe the first run sets something that causes the build recognize the mismatch the second time and makes it to update.

2013-03-24, 19:55:30 - Csaba Pinter

priority: changed from “Normal (3)” to “High (2)”

2013-03-24, 19:57:07 - Csaba Pinter

milestone_id: changed from null to “SlicerRt 0.10.0 (2013-04)”

2013-04-22, 14:57:23 - Csaba Pinter

On Windows the working copy gets updated to the revision that can be found in the Plastimatch.vcproj file (in the root bin directory), but it gets updated from External_Plastimatch.cmake later than the update step is performed.

2013-04-22, 15:00:16 - Csaba Pinter

I checked on Linux and it turns out that I remembered wrong, it works well actually.

2013-04-22, 20:39:13 - Csaba Pinter

(In r:783|slicerrt:783) Test #233: Use a generated cmake file as custom update command instead of the svn command with the hard-coded revision number. This way no matter when the Plastimatch.vcproj file is generated, it will always update to the right revision provided that cmake file is generated first (which is). This is the same approach Slicer uses for SVN sub-projects (like EMSegment)

2013-04-22, 20:39:13 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2013-04-22, 20:39:13 - Csaba Pinter

status: changed from “New” to “Test”

2013-04-23, 17:34:46 - Csaba Pinter

status: changed from “Test” to “Fixed”

#234 Showing DVH plots crashes under linux

When showing DVH plots under linux, it crashes. Steps: compute DVH, create chart node, check show/hide checkbox I don’t know if it’s a SlicerRT issue, or a more profound one.

2013-03-25, 23:32:43 - Csaba Pinter

priority: changed from “Normal (3)” to “High (2)”

2013-03-25, 23:32:48 - Csaba Pinter

milestone_id: changed from null to “SlicerRt 0.9.0 (2013-03)”

2013-03-26, 15:26:19 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2013-03-26, 15:26:23 - Csaba Pinter

status: changed from “New” to “Accepted”

2013-03-26, 18:36:41 - Csaba Pinter

If I start Slicer with gdb on Linux, then

2013-03-26, 18:39:36 - Csaba Pinter

Moreover, my latest test shows that the chart is displayed without errors. I’ll do some more tests and hope that it will continue to work fine.

2013-03-27, 13:39:06 - Csaba Pinter

I built the latest Slicer in Release mode, and the charting works fine with that. It seems that it has been fixed in the meantime. I’m closing this crash as invalid then.

2013-03-27, 13:39:06 - Csaba Pinter

status: changed from “Accepted” to “Invalid”

2013-03-27, 13:41:10 - Csaba Pinter

It crashed again in Debug mode, but I can’t debug it (see above), and the point is that it works in Release. I’m leaving it as closed.

#235 RSNA self test cannot load RTDOSE

The error is due to the latest change in DicomRtImport (to include the plan name in the dose volume name)

2013-03-25, 19:42:31 - Csaba Pinter

status: changed from “New” to “Accepted”

2013-03-25, 21:44:19 - Csaba Pinter

(In r:701|slicerrt:701) Test #235: DicomRtImport bug fixed: if there is no plan present for the dose distribution, it handles the exception gracefully

2013-03-25, 21:44:19 - Csaba Pinter

status: changed from “Accepted” to “Test”

2013-03-27, 20:34:19 - Csaba Pinter

status: changed from “Test” to “Fixed”

#236 Qt designer plugins get built every time

Even if it has not been changed

osm_… files are re-generated

Affected Qt designer plugins are in Contours and SubjectHierarchy

2013-03-27, 22:24:22 - Csaba Pinter

summary: changed from “qSlicerPatientHierarchyModuleWidgets gets build every time” to “qSlicerPatientHierarchyModuleWidgets gets built every time”

2013-04-21, 15:53:48 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.10.0 (2013-04)” to “SlicerRt 0.11.0 (2013-05)”

2013-04-25, 15:27:10 - Csaba Pinter

From Slicer-devel mailing list: ‘From what I remember from Jc, the problem is due to some CMake macros (mostly the ones doing python wrapping) that write into files (or are simply executed) regardless of the time stamps (-> calls in CTK/Slicer cmake files such as FILE(WRITE…. ) or FILE(GLOB ..) . Julien.’

2013-05-13, 20:21:09 - Csaba Pinter

The issue seems to have been resolved in certain cases. The rebuild issue is gone in debug mode, but it is still rebuilt every time in release mode on my and Andras’ computers, but strangely not on Kevin’s. I’d wait a bit longer to see what is going on,

2013-05-13, 20:21:09 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2013-05-13, 20:21:09 - Csaba Pinter

status: changed from “New” to “Test”

2013-08-15, 14:58:36 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.11.0 (2013-07)” to “SlicerRt 1.0 (2013-09)”

2013-12-30, 00:48:05 - Csaba Pinter

milestone_id: changed from “SlicerRt 1.0” to “SlicerRt 0.14”

2014-01-08, 21:05:41 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.14” to “SlicerRt 0.13”

2014-01-08, 21:06:20 - Csaba Pinter

(In r:1388|slicerrt:1388) Test #236: SlicerRtCommon made dynamic library. The Qt designer plugins do not rebuild now if not changed

2014-01-09, 23:48:47 - Csaba Pinter

summary: changed from “qSlicerPatientHierarchyModuleWidgets gets built every time” to “Qt designer plugins gets built every time”

2014-01-09, 23:48:47 - Csaba Pinter

description: changed from “Even if it has not been cha…” to “Even if it has not been cha…”

2014-01-09, 23:49:30 - Csaba Pinter

Apparently the problem didn’t go away completely, it came back on my laptop

2014-01-09, 23:49:30 - Csaba Pinter

status: changed from “Test” to “New”

2014-01-10, 00:46:00 - Csaba Pinter

summary: changed from “Qt designer plugins gets built every time” to “Qt designer plugins get built every time”

2014-01-11, 00:44:16 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.13” to “SlicerRt 0.14”

2014-04-03, 18:14:52 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.14” to “SlicerRt 0.15”

2014-08-22, 16:37:44 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.15” to “Future”

2015-01-27, 20:08:34 - Csaba Pinter

After moving subject hierarchy to Slicer core, this issue is not relevant any more (it is not part of SlicerRT so its designer plugins are not re-built)

2015-01-27, 20:08:34 - Csaba Pinter

status: changed from “New” to “Invalid”

#237 Automatic tests for Contours module

2013-03-26, 15:22:13 - Csaba Pinter

summary: changed from “Add automatic tests for Contours module” to “Automatic tests for Contours module”

2013-09-05, 14:36:21 - Csaba Pinter

working_hours: changed from “0.0” to “2.0”

2013-09-05, 14:36:21 - Csaba Pinter

total_working_hours: changed from “0.0” to “2.0”

2013-09-05, 14:38:36 - Csaba Pinter

milestone_id: changed from “SlicerRt 1.0” to “SlicerRt 0.12”

2013-10-03, 18:49:46 - Adam Rankin

assigned_to_id: changed from null to “rankin”

2013-10-03, 18:49:55 - Adam Rankin

status: changed from “New” to “Accepted”

2013-10-08, 19:28:10 - Adam Rankin

(In r:1213|slicerrt:1213) re #237 added framework for QT and Logic test for contours module

2013-10-09, 15:14:13 - Adam Rankin

(In r:1214|slicerrt:1214) re #237 correctly populated scene file

2013-10-09, 15:54:16 - Adam Rankin

(In r:1215|slicerrt:1215) re #237 enabling working logic test for contours module

2013-10-09, 17:15:44 - Adam Rankin

(In r:1216|slicerrt:1216) re #237 actual analysis of label map conversion process added

metrics for non-zero voxel and extent analysis added

2013-10-09, 19:38:39 - Adam Rankin

(In r:1217|slicerrt:1217) re #237 fixed crash when running test, modelheirarchy node needed a parent

also adding in metrics for closed surface analysis bounds, number of points, number of cells, number of polys

2013-10-10, 15:38:42 - Adam Rankin

(In r:1218|slicerrt:1218) re #237 removing unnecessary linkages

2013-10-15, 18:49:13 - Adam Rankin

(In r:1223|slicerrt:1223) re #161 correcting contour conversion approach by only expanding the marching cubes area if the label map extents are equal to or larger than the reference volume extents

re #237 correcting logic test to use new contour conversion approach

2013-10-29, 18:53:44 - Adam Rankin

(In r:1235|slicerrt:1235) re #237 partial and stable GUI test for qSlicerContoursModuleWidget

2013-10-29, 18:54:58 - Adam Rankin

@lassoan @pinter Can you guys review the commit I made? Specifically the public functions I added to the widget.

I’m not sure if it’s an acceptable solution, but I couldn’t think of another way short of subclassing the widget to give me access to the protected and private items I needed to perform tests.

2013-10-29, 19:44:59 - Csaba Pinter

Unfortunately I don’t know enough about QtTesting and the related best practices to answer this question. It might be worth asking Julien about this. I’ll also skim through other QtTesting examples I find.

2013-10-29, 19:45:24 - Csaba Pinter

The logic test fails on my computer. Is it normal? I mean is it still work in progress or it should pass?

2013-10-29, 19:51:54 - Adam Rankin

No it should pass.

2013-10-29, 20:22:19 - Csaba Pinter

The output: 5: Test MRML scene file name: C:/devel/SlicerRT/Contours/Testing/Cxx/../../../Testing/Data/Scenes/EclipseProstate_Contours_Scene.mrml 5: Temporary scene file name: C:/devel/SlicerRT_R64-bin/inner-build/Testing/Temporary/TestScene_Contours_EclipseProstate.mrml 5: Expected non-zero voxel count: 5448764 5: Expected LabelMapXMinExtent: 0 5: Expected LabelMapXMaxExtent: 271 5: Expected LabelMapYMinExtent: 0 5: Expected LabelMapYMaxExtent: 171 5: Expected LabelMapZMinExtent: 0 5: Expected LabelMapZMaxExtent: 183 5: Expected number of points: 171701 5: Expected number of cells: 341666 5: Expected number of cells: 341666 5: Expected ClosedSurfaceXMinExtent: -172.799 5: Expected ClosedSurfaceXMaxExtent: 162.201 5: Expected ClosedSurfaceYMinExtent: -106.858 5: Expected ClosedSurfaceYMaxExtent: 105.017 5: Expected ClosedSurfaceZMinExtent: -122.5 5: Expected ClosedSurfaceZMaxExtent: 106.25 5: Extents don’t match. 5: extents[0]: -1 5: extents[1]: 271 5: extents[2]: -1 5: extents[3]: 171 5: extents[4]: -1 5: extents[5]: 183

Apparently the extent minimums are -1 instead of 0

2013-10-30, 15:11:57 - Adam Rankin

(In r:1240|slicerrt:1240) re #237 correcting expected values to match actual values

correcting output to match actual information tested

2013-10-30, 16:29:51 - Csaba Pinter

I don’t think this is the good solution. The extent should start at 0. Edit: Nevermind, I realize now it is due to the expansion and it’s normal

2013-11-04, 17:13:51 - Csaba Pinter

(In r:1259|slicerrt:1259) Re #237: Fixed baseline for Contour logic test to make it pass

2013-11-04, 18:19:19 - Csaba Pinter

@rankin What do you think makes more sense: setting this ticket to fixed and create another for the widget test, or moving this to 0.13?

2013-11-06, 16:41:33 - Adam Rankin

Yes, the widget test exists and tests some basic functionality.

There could be a second ticket to complete the test to cover all use cases.

2013-11-06, 17:05:36 - Csaba Pinter

Great, thanks! I found the test, e.g. here: http://slicer.cdash.org/testDetails.php?test=4632241&build=165553

I’ll take a closer look at the widget test then.

2013-11-06, 17:05:36 - Csaba Pinter

working_hours: changed from “2.0” to “0.0”

2013-11-06, 17:05:36 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

2013-11-06, 17:05:36 - Csaba Pinter

total_working_hours: changed from “2.0” to “0.0”

#238 Automatic test for Dose Comparison

2013-03-26, 15:22:26 - Csaba Pinter

summary: changed from “Create automatic test for DoseComparison” to “Automatic test for Dose Comparison”

2013-08-30, 15:21:26 - Csaba Pinter

assigned_to_id: changed from null to “rankin”

2013-08-30, 15:35:07 - Csaba Pinter

description: changed from “” to “* Perform recommended tutor…”

2013-08-30, 15:35:07 - Csaba Pinter

status: changed from “New” to “Accepted”

2013-08-30, 19:10:56 - Adam Rankin

New screenshot uploaded.

2013-09-05, 14:36:21 - Csaba Pinter

working_hours: changed from “0.0” to “2.0”

2013-09-05, 14:36:21 - Csaba Pinter

total_working_hours: changed from “0.0” to “2.0”

2013-09-05, 14:38:36 - Csaba Pinter

milestone_id: changed from “SlicerRt 1.0” to “SlicerRt 0.12”

2013-09-12, 19:04:58 - Adam Rankin

(In r:1149|slicerrt:1149) re #141 renaming files to match pattern, removing duplicate dose volume

re #238 completing automatic test for dose comparison, compare result against a baseline

stripping dose comparison scene of all extraneous nodes

2013-09-12, 19:06:59 - Adam Rankin

@pinter I think I’ve done everything right, feel free to review at your leisure

2013-09-12, 19:06:59 - Adam Rankin

assigned_to_id: changed from “rankin” to “pinter”

2013-09-12, 19:06:59 - Adam Rankin

status: changed from “Accepted” to “Test”

2013-09-12, 19:46:31 - Csaba Pinter

Works well, thanks!

2013-09-12, 19:46:31 - Csaba Pinter

working_hours: changed from “2.0” to “0.0”

2013-09-12, 19:46:31 - Csaba Pinter

status: changed from “Test” to “Fixed”

2013-09-12, 19:46:31 - Csaba Pinter

total_working_hours: changed from “2.0” to “0.0”

#239 Create SlicerRT webpage

A neat and informative front-end for the SlicerRT project that does not scare away people for the first time as this Assembla page does.

2013-04-04, 16:53:51 - Csaba Pinter

milestone_id: changed from “SlicerRt 1.0 (2013-06)” to “SlicerRt 0.11.0 (2013-05)”

2013-04-08, 14:27:37 - Csaba Pinter

Use Tamas’ SlicerIGT as example: https://github.com/SlicerIGT/slicerigt.github.com

Documentation on the service: http://pages.github.com/

2013-04-22, 03:06:56 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2013-04-25, 18:36:09 - Csaba Pinter

status: changed from “New” to “Accepted”

2013-04-25, 19:23:55 - Csaba Pinter

(In url:https://github.com/SlicerRt/slicerrt.github.com/commit/966c165e5ca05bdf93744a0a23cf78ea0fd81e66|slicerrt:966c165e5ca05bdf93744a0a23cf78ea0fd81e66) Re #239: Changed SlicerIGT webpage to have SlicerRT contents

Branch: master

2013-04-25, 19:31:47 - Csaba Pinter

(In url:https://github.com/SlicerRt/slicerrt.github.com/commit/540e22c394a31508d37e9be1c00e47949200985a|slicerrt:540e22c394a31508d37e9be1c00e47949200985a) Re #239: Changed main title and screenshots image

Branch: master

2013-04-25, 19:37:46 - Csaba Pinter

slicerrt.org now redirects to http://slicerrt.github.io which is a page very similar to slicerigt.org, but with SlicerRT content

2013-04-25, 19:37:46 - Csaba Pinter

status: changed from “Accepted” to “Test”

2013-04-25, 19:39:19 - Csaba Pinter

The website is ready, but related articles need to be added to the Publications sub-page

2013-05-02, 15:16:13 - Csaba Pinter

I’m closing this as fixed, as there are no remarks.

2013-05-02, 15:16:13 - Csaba Pinter

status: changed from “Test” to “Fixed”

#240 Import volumes in VFF format to Slicer

VFF format is heavily used in dosimetry evaluation in KGH and other sites, and it would be very useful to load them in Slicer.

The ideal solution would be a plugin that registers itself as a standard reader to Slicer. Need to investigate the mechanism. Sample VFF files will be obtained from the KGH folks.

2013-04-02, 22:45:53 - Csaba Pinter

(In r:730|slicerrt:730) Re #240: Added sample VFF images. Courtesy of the KGH MedPhys department

2013-04-02, 22:45:53 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2013-04-03, 00:53:14 - Andras Lasso

Thanks Csaba. Could you please add a readme.txt file to the directory with all the info that we know about this data set (who gave it to you, when; what device created it; what’s in the images; etc.)?

2013-04-03, 18:56:54 - Csaba Pinter

Java source code for VFF reading available in this ImageJ I/O plugin: http://rsb.info.nih.gov/ij/plugins/multi-opener.html

Note: Apparently the ImageJ plugin cannot handle 32bit VFF images (like the sample images we have), so it loads them incorrectly.

2013-04-03, 18:57:16 - Csaba Pinter

file:bnAH2iNjar4PFdacwqjQYw Java source code for VFF import to ImageJ

2013-04-03, 18:57:16 - Csaba Pinter

Attachment added: “Multi_VFF_Opener.java”

2013-04-03, 19:02:28 - Csaba Pinter

file:ahzxlMNjer4QG7acwqjQWU Matlab file that does the VFF writing in KGH

2013-04-03, 19:02:28 - Csaba Pinter

Attachment added: “writeVFF3D.m”

2013-04-03, 19:26:37 - Csaba Pinter

(In r:731|slicerrt:731) Re #240: Added readme.txt for the sample VFF images. The content of the images are unknown, I’m trying to find out what exactly were imaged.

2013-04-04, 14:53:22 - Csaba Pinter

GEHC Microview can be used as reference (to see what to expect after loading the sample VFF files): http://microview.sourceforge.net/

2013-04-04, 14:54:14 - Csaba Pinter

(In r:737|slicerrt:737) Re #240: Information about the file contents added to readme.txt for the VFF sample images

2013-04-04, 16:35:03 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.10.0 (2013-04)” to “SlicerRt 0.11.0 (2013-05)”

2013-04-21, 15:44:26 - Csaba Pinter

assigned_to_id: changed from “pinter” to null

2013-05-02, 16:02:21 - Csaba Pinter

assigned_to_id: changed from null to “j.andrea”

2013-05-06, 21:31:35 - Csaba Pinter

As we discussed, here are the very first steps to have the module skeleton:

2013-05-06, 21:31:35 - Csaba Pinter

assigned_to_id: changed from “j.andrea” to null

2013-05-06, 21:31:35 - Csaba Pinter

status: changed from “New” to “Accepted”

2013-05-06, 21:31:56 - Csaba Pinter

assigned_to_id: changed from null to “j.andrea”

2013-05-07, 15:02:45 - Jennifer Andrea

(In r:800|slicerrt:800) Re #240: Created folder for Vff plugin in sandbox.

2013-05-07, 15:23:55 - Csaba Pinter

A note for future reference: The file IO plugins are sub-classes of the qSlicerFileReader class. After overriding the necessary functions and registering the reader to qSlicerCoreIOManager, the plugin will take care of loading the files with the specified file extensions. The plugin in the Volumes module (qSlicerVolumesIO.cxx/h, qSlicerVolumesIOOptionsWidget.cxx/h, qSlicerVolumesIOOptionsWidget.ui and registering in qSlicerVolumesModule::setup) is a good example for the new plugin.

2013-05-07, 18:01:40 - Jennifer Andrea

(In r:801|slicerrt:801) Re #240: Sample files added to VffFileReader

2013-05-07, 18:05:36 - Csaba Pinter

You will need to rename these files later. Please make sure that you use SVN rename instead of a simple rename in windows. I usually do that using TortoiseSVN. Just right-click on the file, find TortoiseSVN / Rename and enter the new name. If it’s a cxx or an h file, it will offer you to rename the other one too.

2013-05-07, 18:35:55 - Jennifer Andrea

(In r:802|slicerrt:802) Re #240: Modified qSlicerVolumesIOOptionsWidget.ui to be empty. Removed qSlicerVolumesModuleWidget.ui as it is not needed.

2013-05-07, 19:38:53 - Jennifer Andrea

(In r:803|slicerrt:803) Re #240: Modified qSlicerVolumesIOOptionsWidget.cxx to match the empty UI

2013-05-07, 20:31:59 - Jennifer Andrea

(In r:804|slicerrt:804) Re #240: Renamed qSlicerVolumeIOOptionsWidget to qSlicerVffFileReaderPluginWidget, including internally within the code.

2013-05-08, 13:45:39 - Jennifer Andrea

(In r:805|slicerrt:805) Re #240: Copied sample Logic class from the Volumes module into the Logic directory.

2013-05-08, 18:08:00 - Jennifer Andrea

(In r:807|slicerrt:807) Re #240: Modified qSlicerVolumesIO to accept VFF files only.

2013-05-08, 18:09:10 - Jennifer Andrea

(In r:808|slicerrt:808) Re #240: Renamed qSlicerVolumesIO to qSlicerVffFileReaderPlugin

2013-05-08, 18:21:58 - Jennifer Andrea

(In r:809|slicerrt:809) Re #240: Renamed vtkSlicerVolumesLogic to vtkVffFileReaderLogic

2013-05-08, 18:28:21 - Jennifer Andrea

(In r:810|slicerrt:810) Re #240: Renamed qSlicerVolumesModule to qSlicerVffFileReaderModule.

2013-05-10, 20:17:10 - Jennifer Andrea

(In r:816|slicerrt:816) Re #240: Fixed UI so that it is empty, and corrected qSlicerVffFileReaderPluginWidget. Created logic class vtkVffFileReaderLogic. Modified the CMakeLists.txt files. Modified qSlicerVffFileReaderModule so that the module is hidden and the plugin is added to the IO manager.

2013-05-15, 20:01:27 - Jennifer Andrea

(In r:828|slicerrt:828) Re #240: Errors corrected, skeleton of the Vff file reader module completed.

2013-05-16, 14:40:23 - Csaba Pinter

2013-05-22, 18:32:41 - Jennifer Andrea

(In r:845|slicerrt:845) Re #240: Renaming the logic class to follow convention and correcting run-time errors.

2013-06-05, 17:33:48 - Jennifer Andrea

(In r:870|slicerrt:870) Re #240: The VffFileReader module produces an image that looks like the image produced by the GEHC MicroView for the same file, and has grayscale values that match those from MicroView.

2013-06-07, 21:35:33 - Jennifer Andrea

(In r:874|slicerrt:874) Re #240: Bug fixes and clean-up of code, also VffFileReader now applies scaling and offset to the image data.

2013-06-10, 19:50:02 - Jennifer Andrea

(In r:880|slicerrt:880) Re #240: Fixed bug in displaying image, further code clean-up

2013-06-10, 20:21:58 - Csaba Pinter

(In r:881|slicerrt:881) Re #240: Moved VFF file reader IO plugin from sandbox to SlicerRT source and made it an experimental module

2013-06-10, 20:34:18 - Csaba Pinter

2013-06-11, 19:12:54 - Jennifer Andrea

(In r:884|slicerrt:884) Re #240: Loaded volume propagates itself across the viewers and fits the slice to the correct size.

2013-06-12, 18:11:51 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

2013-06-12, 18:15:38 - Csaba Pinter

(In r:887|slicerrt:887) Fixed #240: Final touches on the VFF import code; Made VFF import plugin part of the SlicerRT release

2013-06-13, 21:28:59 - Jennifer Andrea

(In r:895|slicerrt:895) Re #240: Fixed bug with not having a displayable node.

2013-06-13, 22:38:17 - Csaba Pinter

(In r:898|slicerrt:898) Re #240: Fixed Vff reader generic test

2013-07-30, 17:26:24 - Jennifer Andrea

(In r:1050|slicerrt:1050) Re #240: Corrected the orientation to match the sample data, which involved a flip in the right axis and a flip in the superior axis.

#241 Clean up Contour Morphology automatic test

2013-03-27, 21:29:33 - Csaba Pinter

description: changed from “* Every sub-test (morpholog…” to “* Every sub-test (morpholog…”

2013-03-27, 21:29:54 - Csaba Pinter

description: changed from “* Every sub-test (morpholog…” to “* Every sub-test (morpholog…”

2013-03-27, 21:30:00 - Csaba Pinter

description: changed from “* Every sub-test (morpholog…” to “* Every sub-test (morpholog…”

2013-03-27, 21:51:11 - Csaba Pinter

description: changed from “* Every sub-test (morpholog…” to “* Every sub-test (morpholog…”

2013-04-02, 15:11:27 - wangk

status: changed from “New” to “Accepted”

2013-04-02, 18:30:56 - wangk

(In r:726|slicerrt:726) Re #241: Improve Contour Morphology unit test. Add new baseline data for all morphology operation. Clean up the code. Add new test for apply transform to input labelmap.

2013-04-02, 18:35:30 - wangk

The result of morphology operation is checked against the corresponding baseline data as volume difference in number of voxels. this might not be the optimum way. any suggestion?

The apply transform is not hardcoded in the program but can be changed to something like reading in the vtkMRMLTransformNode. is that neccesary?

2013-04-02, 18:41:37 - Csaba Pinter

It all looks good! I’ll do the release once I committed my task too. Thanks, Kevin!

2013-04-02, 22:33:29 - Csaba Pinter

@wangk I don’t know if you have tried it, but the test with the transform fails (http://slicer.cdash.org/testDetails.php?test=3668232&build=81245). Please fix.

2013-04-02, 22:35:52 - Csaba Pinter

(In r:729|slicerrt:729) Re #241: Change variable name and transform creation in vtkSlicerContourMorphologyModuleLogicTest1 to match best practices

2013-04-03, 17:00:42 - wangk

Thanks Csaba for changing the names. I found it today and was going to update them but you already got it.

Quick question regarding applying the transform. seems they have changed the code in vtkMRMLtransformableNode.cxx. now GetParentTransformNode returns something different. are you familiar with this? what is the difference between parenetTransformNode and the TransformNode in the class. it seems that if you create a transformNode in transform module and put a contourNode under this transformNode, it will use setAndObserveTransformNodeID method which will set the transformNode not the parentTransformNode.

2013-04-03, 17:20:12 - Csaba Pinter

Yes, you get it right. Now the ParentTransformNode function is deprecated (I guess), and I think they only kept the GetParentTransformNode function for backwards compatibility. The right usage is to set the TransformNodeID.

2013-04-03, 19:46:49 - wangk

(In r:732|slicerrt:732) Re #241: Change to GetTransformNodeID method as GetParentTransformNode is depreciated now in slicer.

2013-04-03, 22:19:27 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

#242 Add pre-commit hook that prevents commits without referencing a ticket

2013-03-28, 19:38:15 - Csaba Pinter

(In r:710|slicerrt:710) Test #242: Test pre-commit hook

2013-03-28, 19:38:15 - Csaba Pinter

status: changed from “New” to “Test”

2013-03-28, 19:38:30 - Csaba Pinter

status: changed from “Test” to “Fixed”

#243 Move RTPlan module into SlicerRT repository

Move RTPlan module into SlicerRT repository. make it experimental. RTPlan modules serves as a template/example module for further development of a comprehensive treatment planning module.

2013-03-28, 20:46:48 - wangk

status: changed from “New” to “Accepted”

2013-03-28, 21:03:56 - Csaba Pinter

@wangk: Can you please do this after I have released 0.9? Fixing the test is the priority now so that I can finally let go of the March release (in early April).

Also do you consider moving the other modules to SlicerRT too? I think we agreed on that instead of just moving this one.

2013-03-28, 21:10:06 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.9.0 (2013-03)” to “SlicerRt 0.10.0 (2013-04)”

2013-04-04, 15:10:53 - wangk

(In r:738|slicerrt:738) Re #243: Move RTPlan module into SlicerRT repo. It is set to be an experimental module for now.

2013-04-04, 15:11:32 - wangk

status: changed from “Accepted” to “Test”

2013-04-04, 15:15:25 - Csaba Pinter

Do you consider moving the other modules to SlicerRT too?

2013-04-04, 15:20:02 - wangk

for now I will not move. Since it is right now an internal project which requires less work to maintain. Plus it is kind of someone’s thesis work which has not been published. Once they feel it is ok then I will migrate them into SlicerRT.

2013-04-04, 15:22:32 - Csaba Pinter

All right, sounds good to me! Thanks for moving this module to SlicerRT!

2013-04-04, 18:20:54 - Csaba Pinter

The RTPlan module is in a separate AdaptiveRT module category by itself. Is it intentional?

Also I would rename the module to be more human readable and to more reflect the actual usage of the module.

2013-04-04, 18:27:05 - wangk

(In r:739|slicerrt:739) Re #243: Change module category to ‘Radiotherapy’.

2013-04-21, 19:17:48 - Csaba Pinter

status: changed from “Test” to “Fixed”

#244 DCMTK_DIR vs. DCMTKConfig.cmake

A fresh build against Slicer HEAD (2013-03-30) fails to configure with the following error:

CMake Error: The following variables are used in this project, but they are set to NOTFOUND. Please set them or make sure they are set and tested correctly in the CMake files: DCMTK_dcmrt_LIBRARY linked by target ‘vtkSlicerDicomRtImportModuleLogic’ in directory /home/gsharp/build/slicer-4/SlicerRT/DicomRtImport/Logic

It seems Slicer is not setting CTK_DCMTK_DIR and/or DCMTK_DIR correctly. On my machine, here is how they are set:

/home/gsharp/build/slicer-4/Slicer-build/DCMTK-install/lib/cmake/dcmtk

This is the new location for DCMTKConfig.cmake, and no longer the location of DCMTK install directory.

2013-03-30, 15:33:47 - Greg Sharp

(In r:715|slicerrt:715) Re #244: Workaround for change in Slicer DCMTK_DIR usage

2013-03-30, 15:33:47 - Greg Sharp

assigned_to_id: changed from null to “gregsharp”

2013-03-30, 15:36:35 - jchris

Hi Greg,

The path to DCMTK_DIR should now be: /home/gsharp/build/slicer-4/Slicer-build/DCMTK-build/lib/cmake/dcmtk The different is explained by

(1) the fact, a previous build of DCMTK exported its tree to the user package registry (~/.cmake/package/DCMTK/..)

(2) a problem with the Generation of SlicerConfig.cmake, in a clean build tree, DCMTK_DIR is set to an empty string.

I am looking in that problem and will submit a patch.

Thanks for you detailed report, Jc

2013-04-01, 12:58:48 - Greg Sharp

Thanks Jc. SlicerRT doesn’t currently source DCMTKConfig.cmake i.e. no find_package() call. Instead, it assumes a relative path based on ${CTK_DCMTK_DIR}. This is to find dcmrt library not normally included in ${DCMTK_LIBRARIES}. I wonder is this approach obsolete? Should we instead call find_package()?

2013-04-01, 21:10:28 - Csaba Pinter

It still does not compile on Windows. I’ll try to apply a quick workaround for myself, but it would be important that it works the proper way on the long run.

2013-04-01, 21:10:28 - Csaba Pinter

milestone_id: changed from null to “SlicerRt 0.9.0 (2013-03)”

2013-04-01, 21:10:28 - Csaba Pinter

priority: changed from “Normal (3)” to “High (2)”

2013-04-01, 22:11:04 - Csaba Pinter

assigned_to_id: changed from “gregsharp” to “pinter”

2013-04-01, 22:12:12 - Csaba Pinter

(In r:722|slicerrt:722) Test #244: Use DCMTK’s own cmake directory path variable for finding it (it used to be inside CTK)

2013-04-01, 22:12:12 - Csaba Pinter

status: changed from “New” to “Test”

2013-04-01, 22:39:35 - jchris

Hi Folks,

Extensions should now be able to use variables DCMTK_LIBRARIES and DCMTK_INCLUDE_DIRS directly after doing: find_package(Slicer)

See http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=21854

Hth Jc

2013-04-01, 22:55:59 - Csaba Pinter

(In r:724|slicerrt:724) Re #244: Remove DCMRT-specific cmake line, as it is part of DCMTK by default.

2013-04-01, 22:57:11 - Csaba Pinter

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
          Thanks, JC!
  
  I realized that we don't need those DCMRT-specific stuff anymore,      so I removed those and only left DCMTK_LIBRARIES in there.
  
  csaba
  
  
  On 4/1/2013 18:39, Jean-Christophe Fillion-Robin wrote:

      Hi Folks,         
    
              Extensions should now be able to use variables            DCMTK_LIBRARIES
      and DCMTK_INCLUDE_DIRS directly after doing:            find_package(Slicer)
    
    
    
    See http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=21854
    
    
              Hth
    Jc

2013-04-01, 23:01:15 - jchris

Indeed.

As a side note, windows packaging should be available tomorrow morning. See http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=21855

On Mon, Apr 1, 2013 at 6:56 PM, Csaba Pintér pinter@cs.queensu.ca wrote: Thanks, JC!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
  I realized that we don't need those DCMRT-specific stuff anymore,      so I removed those and only left DCMTK_LIBRARIES in there.
  
  csaba
  
  
  On 4/1/2013 18:39, Jean-Christophe Fillion-Robin wrote:



      Hi Folks,         
    
              Extensions should now be able to use variables            DCMTK_LIBRARIES
      and DCMTK_INCLUDE_DIRS directly after doing:            find_package(Slicer)
    
    
    
    See http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=21854
    
    
              Hth
    Jc

2013-04-03, 16:09:29 - Csaba Pinter

status: changed from “Test” to “Fixed”

#245 Implement node drag&drop in Patient Hierarchy

Handle drag&drop (to fix incorrect data)

2013-04-04, 19:10:17 - Csaba Pinter

(In r:740|slicerrt:740) Re #245: Updated ContourHierarchy (StructureSet) icon for PatientHierarchy

2013-04-04, 19:14:18 - Csaba Pinter

(In r:741|slicerrt:741) Re #245: Updated ContourHierarchy (StructureSet) icon for PatientHierarchy (the last commit was a mistake, and the message misleading, but it does not cause any issue, so I’m leaving it there)

2013-04-14, 23:05:58 - Csaba Pinter

status: changed from “New” to “Accepted”

2013-04-15, 21:06:55 - Csaba Pinter

(In r:761|slicerrt:761) Test #245: Drag&drop works in patient hierarchy both internally and from the potential patient hierarchy nodes list

2013-04-15, 21:06:55 - Csaba Pinter

status: changed from “Accepted” to “Test”

2013-04-23, 17:34:58 - Csaba Pinter

status: changed from “Test” to “Fixed”

#246 Enable creating new Patient Hierarchy node

It is needed to insert derived data into the patient hierarchy tree

2013-04-25, 17:43:22 - Csaba Pinter

With the drag&drop feature implemented, it is now possible to create new patient hierarchy nodes by dropping data from outside the tree (Potential patient hierarchy nodes list) into the tree.

2013-04-25, 17:43:47 - Csaba Pinter

description: changed from “” to “It is needed to insert deri…”

2013-05-15, 20:33:43 - Csaba Pinter

I’m closing it as invalid, as it is basically a duplicate of #245

2013-05-15, 20:33:43 - Csaba Pinter

status: changed from “New” to “Invalid”

#247 Add transform whole study feature to Subject Hierarchy

When applying a transform to a SH node, all children nodes should be put under the same transform too.

Based on a discussion with Andras, the best course of action seeme like this:

2013-04-21, 15:52:19 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.10.0 (2013-04)” to “SlicerRt 0.11.0 (2013-05)”

2013-05-28, 18:13:57 - Csaba Pinter

Moving tickets to 1.0, as 0.11 will be released before the NA-MIC week and the tasks in question will be tackled at the project week.

2013-05-28, 18:13:57 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.11.0 (2013-05)” to “SlicerRt 1.0 (2013-06)”

2013-08-28, 02:46:28 - Csaba Pinter

priority: changed from “Normal (3)” to “High (2)”

2013-08-28, 02:46:28 - Csaba Pinter

component_id: changed from “None” to null

2013-12-18, 15:42:11 - Csaba Pinter

Component: changed from “Slicer Core” to “”

2013-12-18, 15:42:11 - Csaba Pinter

summary: changed from “Add transform whole study feature to Patient Hierarchy” to “Add transform whole study feature to Subject Hierarchy”

2013-12-18, 15:42:11 - Csaba Pinter

description: changed from “When applying a transform t…” to “When applying a transform t…”

2014-01-21, 19:38:21 - Csaba Pinter

milestone_id: changed from “SlicerRt 1.0” to “SlicerRt 0.14”

2014-01-21, 20:47:38 - Csaba Pinter

priority: changed from “High (2)” to “Highest (1)”

2014-02-14, 19:27:38 - Csaba Pinter

description: changed from “When applying a transform t…” to “When applying a transform t…”

2014-02-14, 19:36:40 - Csaba Pinter

description: changed from “When applying a transform t…” to “When applying a transform t…”

2014-02-14, 19:36:54 - Csaba Pinter

description: changed from “When applying a transform t…” to “When applying a transform t…”

2014-02-14, 19:46:51 - Csaba Pinter

description: changed from “When applying a transform t…” to “When applying a transform t…”

2014-02-14, 19:47:08 - Csaba Pinter

description: changed from “When applying a transform t…” to “When applying a transform t…”

2014-02-14, 19:48:30 - Csaba Pinter

description: changed from “When applying a transform t…” to “When applying a transform t…”

2014-02-24, 19:33:44 - Csaba Pinter

status: changed from “New” to “Accepted”

2014-03-31, 20:47:45 - Csaba Pinter

description: changed from “When applying a transform t…” to “When applying a transform t…”

2014-03-31, 20:58:07 - Csaba Pinter

Re #247: Column added to subject hierarchy tree to expose parent transforms of the transformable data nodes WIP Commit: r:1600|slicerrt:1600

2014-04-01, 03:50:11 - Csaba Pinter

Re #247: Implemented utility functions in subject hierarchy node for transforming branches WIP Commit: r:1601|slicerrt:1601

2014-04-02, 20:05:59 - Csaba Pinter

Re #247: Changed second option from append to replace transforms when a child is already transformed; Added new enumeration for scene model item data containing transform node ID Commit: r:1602|slicerrt:1602

2014-04-03, 18:09:09 - Csaba Pinter

Test #247: Transform branch feature in subject hierarchy seems to work well now Commit: r:1604|slicerrt:1604

2014-04-03, 18:09:09 - Csaba Pinter

status: changed from “Accepted” to “Test”

2014-04-04, 19:50:01 - Csaba Pinter

Re #247: Added two custom actions in the subject hierarchy transform selector combobox for hardening and removing all transforms in the branch of the current node Commit: r:1607|slicerrt:1607

2014-04-23, 18:19:31 - Csaba Pinter

status: changed from “Test” to “Fixed”

#248 Update SlicerRT extension pages on Slicer wiki

Update this page: http://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Extensions/SlicerRT Also synchronize with the pages for the stable release.

2013-04-11, 13:26:23 - Csaba Pinter

(In r:755|slicerrt:755) Re #248: Add Ananth Ravi presentation (Oncology rounds, Kingston)

2013-04-11, 13:26:23 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2013-04-21, 19:12:28 - Csaba Pinter

Updated existing pages on the nightly wiki.

To do:

2013-04-21, 19:12:28 - Csaba Pinter

status: changed from “New” to “Accepted”

2013-04-24, 18:23:53 - Csaba Pinter

priority: changed from “Normal (3)” to “High (2)”

2013-04-24, 18:33:44 - Csaba Pinter

Documentation updated at both places: http://www.slicer.org/slicerWiki/index.php?title=Documentation/Nightly#Cat_2 http://www.slicer.org/slicerWiki/index.php?title=Documentation/4.2#Cat_2

2013-04-24, 18:33:44 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

#249 Release SlicerRT 0.9

2013-04-03, 20:34:05 - Csaba Pinter

(In r:733|slicerrt:733) Re #249: Updated version number, webpage url, and screenshots

2013-04-03, 21:45:22 - Csaba Pinter

(In r:735|slicerrt:735) Re #249: Merged trunk into 4.2 branch. Build errors fixed. Patient Hierarchy module is hidden as it cannot work well without the Slicer improvements made since the release of 4.2

2013-04-03, 22:13:33 - Csaba Pinter

(In r:736|slicerrt:736) Re #249: Change ContourComparison baselines for branch 4.2. The reason the results are slightly different is the change of ITK version (upgrade from 3.2 to 4) in Slicer, where they fixed some bugs that also affect the Hausdorff computation in SlicerRT

2013-04-03, 22:19:51 - Csaba Pinter

ExtensionIndex updated, pull requests made.

2013-04-03, 22:19:51 - Csaba Pinter

status: changed from “New” to “Fixed”

#250 Validate dose accumulation against CERR

Lee Chin asked for this

2013-04-04, 14:08:47 - wangk

can he provide some dataset for this?

2013-04-04, 14:10:22 - Csaba Pinter

I had a note lying around about this, and I put it on record so that it would not be forgotten. So I don’t really know the details, but we can ask him when we get here.

2013-04-22, 03:54:24 - Csaba Pinter

milestone_id: changed from “Future” to “SlicerRt 1.0 (2013-06)”

2016-06-01, 21:59:52 - Csaba Pinter

milestone_id: changed from “SlicerRt 1.0” to “Future”

#251 Compensate for voxel volume change after resampling using deformation field

When we resample a dose distribution image using a deformation field, the physical volume represented by each voxel changes. As the dose volume voxel values are based on the voxel volumes, we should compensate for this change.

2013-04-04, 15:39:15 - Greg Sharp

No change in dose is necessary. Dose is J/kg. Even if voxels become less dense, dose is the same.

2013-04-04, 15:56:40 - Csaba Pinter

Good to know, thanks! I talked with a MeVis person in Vienna and he told me that the distortion introduced by a derofmable resampling changes the dose values.

2013-04-04, 16:00:43 - Greg Sharp

Probably worth getting more details. Maybe he means something other than density change by expansion/contraction.

2013-04-04, 16:50:14 - wangk

The dose value and the volume size can be changed due to image resampling. This is just the nature of image resampling.

2015-09-17, 19:08:28 - Csaba Pinter

I have not encountered this issue since I heard about it first, and everybody who heard about it thought it was a non-issue. Closing as invalid

2015-09-17, 19:08:28 - Csaba Pinter

status: changed from “New” to “Invalid”

#252 Revise PatientHierarchy tree structure

The current structure of the tree reflects more the internal object structure than a logical grouping of DICOM data.

It is needed that we discuss the best possible way to organize the objects in the Patient Hierarchy tree.

2013-04-04, 18:30:06 - Csaba Pinter

image:cSwVvkNvur4QRdacwqEsg8

2013-04-04, 18:30:06 - Csaba Pinter

Attachment added: “SlicerRT0.9_PatientHierarchy_ProstateEntLoaded.png”

2013-04-04, 18:32:18 - Csaba Pinter

I added the screenshot above so that you can see how the Patient Hierarchy looks like right after the prostate phantom dataset is loaded.

Please share your ideas how to make it more logical and more conform to the DICOM standard. What I already suspect is that separating the isocenters and the beam models are not very smart, but this is how it was convenient to implement until there is a better suggestion.

2013-04-15, 22:08:56 - Csaba Pinter

We should talk about this at this week’s hangout

2013-04-17, 18:26:09 - Csaba Pinter

Make it similar to this one: https://subversion.assembla.com/svn/slicerrt/trunk/SlicerRt/data/eclipse-8.1.20-phantom-prostate/Prostate%20Screen%20Shot.jpg

2013-04-17, 18:32:40 - Csaba Pinter

2013-04-17, 22:37:52 - Csaba Pinter

(In r:766|slicerrt:766) Re #252: Renaming reference article to stick to the PerkLab convention (the article I wanted to add was already there: Law2009)

2013-04-21, 15:52:36 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.10.0 (2013-04)” to “SlicerRt 0.11.0 (2013-05)”

2013-04-23, 17:31:40 - Csaba Pinter

Also need to handle the case when an RT Structure Set contains both points and contours (in case of the beam examples, this is the case, an Isocenter is listed in the Structure set), because then two PH nodes are created for the same series.

2013-05-31, 22:24:20 - Csaba Pinter

It is needed to consolidate loaded data after all series (loadables) have been loaded. For example if the structure set is loaded before the CT, then the patient hierarchy connection between the two cannot be set, as there is no PH node for the CT yet. This has to be done after loading of all data is done.

As a first approach, I added a new function to the DICOMPlugin class (loadFinished), overriding which these steps can be performed. This function is called in DICOMWidgets::loadCheckedLoadables after the loadables have been handled by each plugin. If the method is not overridden, then it does nothing.

2013-05-31, 22:24:23 - Csaba Pinter

status: changed from “New” to “Accepted”

2013-06-01, 00:01:39 - Csaba Pinter

(In r:856|slicerrt:856) Re #252, re #280: Added skeleton of vtkSlicerDicomRtImportModuleLogic::PerformPostLoadSteps function that gets called after all loadables are loaded by every plugin. This is done by the new DICOMPlugin method onLoadFinished

2013-06-02, 20:01:13 - Csaba Pinter

(In r:859|slicerrt:859) Re #252: Structure set appears under the anatomical volume now; Patient hierarchy tree model modified to show the patient hierarchy nodes only, to enable a node having an associated data node also have children (so far the leaf nodes were the actual displayable leaf nodes, now they are the associated hierarchy nodes)

2013-06-02, 21:11:45 - Csaba Pinter

(In r:860|slicerrt:860) Re #252: Re-paint labelmaps when moved in the patient hierarchy, so that they appear in the right color

2013-06-03, 21:27:32 - Csaba Pinter

image:bMvJS2Zjqr4PTAacwqjQYw

2013-06-03, 21:27:32 - Csaba Pinter

Attachment added: “SlicerRT0.10.2_PatientHierarchy_ProstateEntLoaded.png”

2013-06-03, 21:32:21 - Csaba Pinter

The above picture shows how it looks like now. The difference between this and the Eclipse screenshot are:

What should I implement from the above differences? If we all agree then I’ll do it and then we can close this.

2013-06-04, 15:52:06 - Csaba Pinter

(In r:868|slicerrt:868) Re #252: Fix tooltips for patient hierarchy leaf nodes

2013-06-19, 17:26:09 - Csaba Pinter

(In r:912|slicerrt:912) Re #252: Fixed isodose icon in Patient Hierarchy

2013-07-05, 21:29:06 - Csaba Pinter

(In r:980|slicerrt:980) Re #252: Removing post load hook and connect CT and RTSTRUCT on inserting to the patient hierarchy tree. The structure set without a CT inserts itself under a dummy anatomical volume node that gets occupied when loading the CT

2013-07-05, 22:10:59 - Csaba Pinter

(In r:981|slicerrt:981) Test #252: Fixed crash when loading data in a certain order. Now the Patient Hierarchy tree does not observe the scene when the module is not active.

2013-07-05, 22:10:59 - Csaba Pinter

status: changed from “Accepted” to “Test”

2013-07-08, 21:39:57 - Csaba Pinter

(In r:987|slicerrt:987) Fixed #329: Disallow contour nodes to be reparented to a branch that is not a contour hierarchy; Re #252: Dummy anatomical volume now gets a more informative name

2013-07-11, 14:38:45 - Csaba Pinter

(In r:1003|slicerrt:1003) Re #252: Added option to add beam models under their corresponding isocenters instead of having a separate branch. The default is the separate branch (we basically never show the isocenter fiducials so toggling visualization of the beam models is much easier this way)

2013-08-15, 18:30:48 - Csaba Pinter

status: changed from “Test” to “Fixed”

#253 Add smoothing option to closed surface model conversion in Contours module

Smoothing would be useful for demonstration purposes.

Also it is questionable whether the target reduction factor is useful at all.

2013-04-25, 00:57:19 - Csaba Pinter

Duplicate

2013-04-25, 00:57:19 - Csaba Pinter

status: changed from “New” to “Invalid”

#254 Release SlicerRT 0.10

2013-04-10, 15:50:59 - Csaba Pinter

(In r:753|slicerrt:753) Re #254: SlicerRT logo updated

2013-04-21, 19:14:29 - Csaba Pinter

status: changed from “New” to “Accepted”

2013-04-21, 19:24:31 - Csaba Pinter

(In r:777|slicerrt:777) Re #254: Updated version number, DeformationFieldVisualizer moved out from experimental modules

2013-04-22, 22:13:14 - Csaba Pinter

(In r:784|slicerrt:784) Re #254: Fixed most linux warnings

2013-04-23, 16:56:44 - Csaba Pinter

(In r:787|slicerrt:787) Re #254: Fix small issues discovered

2013-04-24, 19:10:33 - Csaba Pinter

(In r:790|slicerrt:790) Re #254: Merged from trunk

2013-04-24, 19:16:05 - Csaba Pinter

(In r:791|slicerrt:791) Re #254: Bump up version number

2013-04-24, 19:16:19 - Csaba Pinter

(In r:792|slicerrt:792) Re #254: Bump up version number

2013-04-24, 19:28:09 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

#255 Stable Mac release cannot load modules because of libITKIOReview.3.20

The Mac release 0.9 for stable Slicer 4.2.2-1 cannot load plastimatch modules and the plastimatch-based SlicerRT modules.

The log says libITKIOReview.3.20 cannot be found.

We should either fix this, or wait for 4.3 that contains ITK4.

2013-04-13, 14:04:57 - Csaba Pinter

@gregsharp: What do you think? We had some issues with this lib, but it seems to be coming back.

2013-04-15, 12:46:14 - Greg Sharp

Hm, not sure. How did we fix last time?

2013-04-15, 12:48:26 - Csaba Pinter

I think it was this Slicer fix: http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Applications/SlicerApp/CMakeLists.txt?r1=21671&r2=21670&pathrev=21671

2013-04-15, 12:51:32 - Csaba Pinter

Oh, I see. This fix has been committed after releasing 4.2, so most probably we never had plastimatch-related modules in the stable Mac release. Oops… I think there is only one thing we can do: wait for 4.3 and apologize to the Mac users in the meantime.

2013-04-15, 12:54:01 - Greg Sharp

Sounds good.

2013-04-15, 13:16:56 - Andras Lasso

If it is not possible (or not worth the trouble) to disable the non-compiling Plastimatch parts for Slicer 4.2 then please update the Slicer 4.2 documentation on the Slicer wiki to clarify this.

2013-04-15, 13:31:20 - Csaba Pinter

I added notes on the SlicerRT page for Slicer 4.2 (http://www.slicer.org/slicerWiki/index.php/Documentation/4.2/Extensions/SlicerRT), the Plastimatch page (for 4.2) and the affected modules’ pages.

2013-04-15, 17:04:11 - Csaba Pinter

Plastimatch-related modules will not appear in SlicerRT for Slicer 4.2 or older on Mac. This issue will be fixed with Slicer 4.3

2013-04-15, 17:04:11 - Csaba Pinter

assigned_to_id: changed from “gregsharp” to “pinter”

2013-04-15, 17:04:11 - Csaba Pinter

status: changed from “New” to “Invalid”

#256 Update displayed name of the DeformationFieldVisualizer

The display name of the module should include spaces: ‘Deformation Field Visualizer’

2013-04-18, 14:43:20 - Franklin King

(In r:767|slicerrt:767) re #256: Module name now correctly displays as ‘Deformation Field Visualizer’ re #258: Slice intersections now show in slice viewers; re #259: ‘None’ option removed from slice options; Grid Slice node selector options limited; re #267: Added early version of progress dialog to act as feedback during computation

2013-04-18, 14:43:52 - Franklin King

status: changed from “New” to “Fixed”

#257 Deformation field visualizer Contour visualization mode is slow

Deformation field visualizer in Contour visualization mode generates too detailed model and it makes the rendering very slow.

Tested on a linear transformation (with translation and rotation components) using the MRHead sample as reference image.

2013-04-18, 14:44:23 - Franklin King

status: changed from “New” to “Accepted”

2013-04-19, 16:06:26 - Andras Lasso

Grid visualization is also similarly slow. The problem is that even for a simple 5x5x5 grid, over 8.5 million points are generated!!! (using the linear transform and MRHead volume). It should be enough to have a point in each grid point (if visualization of sparse grids is not nice then maybe you can subdivide each line to 5-10 segments at most).

2013-04-19, 17:21:00 - Franklin King

Would it make any sense to have two subsample settings? One for the number of points generated (and ‘smoothness’ of the grid) with 5-10 as the default or max and one for the number of actual grid lines shown? One of the earlier versions had only 1 point for each grid point and it ended up looking a little jagged and lost quite a bit of the information.

2013-04-19, 17:25:13 - Andras Lasso

A few points for each grid section should be enough. Make the subsampling a configurable parameter in the code (a named constant), so that we can easily change it, but I don’t think it has to be editable on the GUI.

2013-04-24, 18:24:22 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.10.0 (2013-04)” to “SlicerRt 0.11.0 (2013-05)”

2013-05-31, 18:33:41 - Franklin King

(In r:855|slicerrt:855) re #257: Added decimate option to contour visualization mode re #262: Added tests and baseline model data for deformation field visualizer module re #276: Grid visualization mode now has uniform spacing; Grid Slice visualization mode now has uniform 2D spacing re #257: Resampling fix for uniform spacing creates less detailed models for grid visualization mode re #277: Default parameters for glyphs and contours resulted in differing thresholds. Issue is not completely resolved, but the colors are more consistent than before. re #264: Partially implemented changes discussed in code review Removed cancel button from all progress bar windows. Modified parameter generation of glyph, contour, and glyph slice visualization modes to be more accurate to the data and prevent issues regarding precision.

2013-05-31, 18:34:00 - Franklin King

status: changed from “Accepted” to “Test”

2013-07-04, 20:00:56 - Franklin King

status: changed from “Test” to “Fixed”

#258 Deformation field visualizer does not show slice intersections in the slice viewers

Slice intersections should be visible for the Glyph/Grid Slice visualization modes. The option is enabled in the Models module, but the intersections are still not visible. This is a Slicer core issue, which happened in the past (e.g., http://www.na-mic.org/Bug/view.php?id=1536 and maybe there are also open tickets for this), so ask about this on the mailing list before entering a ticket in the Slicer bugtracker.

2013-04-16, 15:08:57 - Andras Lasso

There is a workaround for this problem: check mrmlScene->StartState(vtkMRMLScene::BatchProcessState); in vtkConvertContourRepresentations.cxx. You can implement this workaround to get this working now, but also make sure that there is an open Slicer bugtracker item to track the resolution (if you don’t find any open Slicer bug report about this then ask about it on the slicer-devel mailing list).

2013-04-16, 16:02:37 - Franklin King

The workaround caused a few instability issues resulting in periodical crashes when I last implemented it a while ago. I’ll have another go at it now and see if I can pin down the problem.

2013-04-16, 16:43:43 - Andras Lasso

OK. If you find any scenario that causes Slicer to crash (preferably in a reproducible way) then please report it on the Slicer bugtracker.

2013-04-18, 14:43:20 - Franklin King

(In r:767|slicerrt:767) re #256: Module name now correctly displays as ‘Deformation Field Visualizer’ re #258: Slice intersections now show in slice viewers; re #259: ‘None’ option removed from slice options; Grid Slice node selector options limited; re #267: Added early version of progress dialog to act as feedback during computation

2013-04-18, 14:45:56 - Franklin King

status: changed from “New” to “Fixed”

2013-04-19, 21:28:39 - Franklin King

status: changed from “Fixed” to “Test”

2013-04-23, 21:15:14 - Andras Lasso

Tested on the latest nightly Slicer build and it works OK (it still requires a slice change the first time the model is added, but it’s acceptable).

2013-04-23, 21:15:14 - Andras Lasso

status: changed from “Test” to “Fixed”

2013-05-02, 18:41:59 - Greg Sharp

(In r:799|slicerrt:799) Test #285: Possible fix for error with plastimatch finding DCMTK

2013-05-02, 18:41:59 - Greg Sharp

status: changed from “Fixed” to “Test”

2013-05-02, 18:43:54 - Greg Sharp

Sorry, typo in svn comment sent this to the wrong ticket. Re-closing….

2013-05-02, 18:43:54 - Greg Sharp

status: changed from “Test” to “Fixed”

#259 Deformation field visualizer module should not show ‘None’ option in the the slice selector

Currently if ‘None’ slice is selected and you click on the visualize button then nothing happens. The model is not updated, no message is displayed on the module GUI, no error or warning is logged, no popup is displayed.

The simplest would be to not show ‘None’ option in the the slice selector at all.

2013-04-18, 14:43:20 - Franklin King

(In r:767|slicerrt:767) re #256: Module name now correctly displays as ‘Deformation Field Visualizer’ re #258: Slice intersections now show in slice viewers; re #259: ‘None’ option removed from slice options; Grid Slice node selector options limited; re #267: Added early version of progress dialog to act as feedback during computation

2013-04-18, 14:44:11 - Franklin King

status: changed from “New” to “Fixed”

#260 Deformation field visualizer slice glyphs are not organized into slices

When visualizing a deformation field that contains rotation component, the generated planes no longer parallel with the planes of the reference image. If there is out-of-plane translation then the translation should be projected to the image plane (the out-of-plane translation component that is orthogonal to the image plane shall be set to zero).

Tested on a linear transformation (with translation and rotation components) using the MRHead sample as reference image.

2013-04-15, 16:54:11 - Andras Lasso

image:ayB33oPE0r4QpdacwqjQWU Plane misalignment in deformation field visualization module

2013-04-15, 16:54:11 - Andras Lasso

Attachment added: “DefFieldVisuPlaneMisalignment.png”

2013-04-18, 04:43:20 - Franklin King

Attachment added: “SliceRotation2.png”

2013-04-18, 04:43:20 - Franklin King

Attachment added: “SliceRotation3.png”

2013-04-18, 04:43:20 - Franklin King

Attachment added: “SliceRotation4.png”

2013-04-18, 04:43:20 - Franklin King

Attachment added: “SliceRotation1.png”

2013-04-18, 04:43:27 - Franklin King

Attachment added: “SliceRotation4.png”

2013-04-18, 04:43:29 - Franklin King

Attachment added: “SliceRotation1.png”

2013-04-18, 04:43:30 - Franklin King

Attachment added: “SliceRotation2.png”

2013-04-18, 04:43:32 - Franklin King

Attachment added: “SliceRotation3.png”

2013-04-18, 04:44:26 - Franklin King

image:cLWg3wP-ir4OoaacwqjQWU

2013-04-18, 04:44:26 - Franklin King

Attachment added: “DefFieldSliceRotation1.png”

2013-04-18, 04:44:26 - Franklin King

image:cLZJNkP-ir4OoaacwqjQWU

2013-04-18, 04:44:26 - Franklin King

Attachment added: “DefFieldSliceRotation2.png”

2013-04-18, 04:44:26 - Franklin King

image:cL2mfGP-ir4OoaacwqjQWU

2013-04-18, 04:44:26 - Franklin King

Attachment added: “DefFieldSliceRotation3.png”

2013-04-18, 04:44:26 - Franklin King

image:cL5c5cP-ir4OoaacwqjQWU

2013-04-18, 04:44:26 - Franklin King

Attachment added: “DefFieldSliceRotation4.png”

2013-04-18, 05:26:03 - Franklin King

I may not be understanding the issue correctly, but I’m having trouble reproducing the problem.

Images 2 to 4 are the result of a visualization of the same rotation. Both glyph slice and grid slice seem to project the vectors it to the selected plane. Image 1 is the result of three rotations.

2013-04-18, 14:53:43 - Franklin King

status: changed from “New” to “Accepted”

2013-04-18, 15:47:16 - Andras Lasso

If you apply rotation in an arbitrary angle and choose a slice visualization option then the arrows or grid should be shown in the selected slice plane. However, this is not the case: arrows are not parallel with the selected slice plane, as you can see on this video: http://screencast.com/t/9hlKbsGdA.

2013-04-19, 17:33:01 - Franklin King

(In r:769|slicerrt:769) re #260: Glyph slice and grid slice options now correctly project vectors to the plane of the input image and not an incorrectly arbitrary one

2013-04-19, 17:40:00 - Franklin King

There is still a seemingly unrelated bug where glyphs projected to a slice with a normal of [1,0,0] are not oriented consistently in terms of their rotation. The end result is that the lines in the slice view are correct, but the arrow tips are warped. It’s mainly only noticeable with a very high magnitude of deformation (such as rotation transformation). Creating own ticket for issue.

2013-04-19, 21:24:41 - Franklin King

status: changed from “Accepted” to “Fixed”

2013-04-19, 21:25:55 - Franklin King

status: changed from “Fixed” to “Test”

2013-04-20, 16:14:45 - Andras Lasso

Thanks for the fixes. Glyph Slice visualization is OK now.

The slice grid visualization may be OK, but couldn’t really test it because it was so slow (see #257).

2013-04-23, 21:17:27 - Andras Lasso

Tested on the latest nightly Slicer build and it works well now.

2013-04-23, 21:17:31 - Andras Lasso

status: changed from “Test” to “Fixed”

2013-06-05, 21:57:58 - Franklin King

Attachment added: “DefFieldSliceRotation3.png”

2013-06-05, 21:58:03 - Franklin King

Attachment added: “DefFieldSliceRotation4.png”

2013-06-05, 21:58:07 - Franklin King

Attachment added: “DefFieldSliceRotation2.png”

2013-06-05, 21:58:12 - Franklin King

Attachment added: “DefFieldSliceRotation1.png”

#261 Deformation field visualizer module logs a warning about failing to set attribute vectors

This warning is logged when selecting a linear transform and a reference image:

Warning: In ..\..\VTK\Filtering\vtkDataSetAttributes.cxx, line 1054 vtkPointData (000000000ECAF460): Can not set attribute Vectors. Incorrect number of components.

Tested on a linear transformation (with translation and rotation components) using the MRHead sample as reference image.

2013-04-18, 14:46:25 - Franklin King

status: changed from “New” to “Accepted”

2013-04-24, 18:24:22 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.10.0 (2013-04)” to “SlicerRt 0.11.0 (2013-05)”

2013-04-29, 17:06:17 - Franklin King

(In r:795|slicerrt:795) re #261: Bug causing warning about failing to set attribute vectors fixed re #262: Grid visualization mode testing partially implemented

2013-04-29, 17:07:04 - Franklin King

status: changed from “Accepted” to “Test”

2013-05-21, 14:39:30 - Franklin King

status: changed from “Test” to “Fixed”

#262 Deformation field visualizer module needs tests

Add at least one tests for each visualization mode of the Deformation field visualizer module.

2013-04-17, 16:03:04 - Csaba Pinter

(In r:763|slicerrt:763) Re #262: Moved Deformation Field Visualizer module to the experimental modules until all issues are fixed.

2013-04-18, 14:46:31 - Franklin King

status: changed from “New” to “Accepted”

2013-04-21, 23:03:11 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.10.0 (2013-04)” to “SlicerRt 0.11.0 (2013-05)”

2013-04-29, 17:06:17 - Franklin King

(In r:795|slicerrt:795) re #261: Bug causing warning about failing to set attribute vectors fixed re #262: Grid visualization mode testing partially implemented

2013-05-31, 18:33:41 - Franklin King

(In r:855|slicerrt:855) re #257: Added decimate option to contour visualization mode re #262: Added tests and baseline model data for deformation field visualizer module re #276: Grid visualization mode now has uniform spacing; Grid Slice visualization mode now has uniform 2D spacing re #257: Resampling fix for uniform spacing creates less detailed models for grid visualization mode re #277: Default parameters for glyphs and contours resulted in differing thresholds. Issue is not completely resolved, but the colors are more consistent than before. re #264: Partially implemented changes discussed in code review Removed cancel button from all progress bar windows. Modified parameter generation of glyph, contour, and glyph slice visualization modes to be more accurate to the data and prevent issues regarding precision.

2013-05-31, 18:34:09 - Franklin King

status: changed from “Accepted” to “Test”

2013-07-04, 20:01:23 - Franklin King

status: changed from “Test” to “Fixed”

#263 Add documentation of Deformation field visualizer module to the Slicer wiki

Need to be added here: http://www.slicer.org/slicerWiki/index.php?title=Documentation/Nightly#Cat_2

Some instructions: http://www.slicer.org/slicerWiki/index.php/Documentation/4.2/Developers/Tutorials/DocumentModule

You have to apply for an account to edit the Slicer wiki (if you haven’t done it already).

2013-04-18, 14:48:29 - Franklin King

status: changed from “New” to “Accepted”

2013-04-24, 18:24:22 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.10.0 (2013-04)” to “SlicerRt 0.11.0 (2013-05)”

2013-06-06, 19:49:16 - Franklin King

status: changed from “Accepted” to “Fixed”

2013-06-06, 19:56:27 - Csaba Pinter

Great, thanks!

2013-06-06, 20:03:37 - Andras Lasso

http://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Modules/DeformationFieldVisualizer

#264 Review Deformation field visualization module code

Do a code review with Andras and/or Csaba

2013-05-31, 18:33:41 - Franklin King

(In r:855|slicerrt:855) re #257: Added decimate option to contour visualization mode re #262: Added tests and baseline model data for deformation field visualizer module re #276: Grid visualization mode now has uniform spacing; Grid Slice visualization mode now has uniform 2D spacing re #257: Resampling fix for uniform spacing creates less detailed models for grid visualization mode re #277: Default parameters for glyphs and contours resulted in differing thresholds. Issue is not completely resolved, but the colors are more consistent than before. re #264: Partially implemented changes discussed in code review Removed cancel button from all progress bar windows. Modified parameter generation of glyph, contour, and glyph slice visualization modes to be more accurate to the data and prevent issues regarding precision.

2013-09-13, 10:50:30 - Franklin King

(In r:1153|slicerrt:1153) Re #379: ‘Deformation’ input label renamed to ‘Transform’ Re #396: Moved ‘apply’ button to directly under the IO box; Removed initial step of generating deformation field; Replaced automatic ranges for glyph thresholds and contour ranges with user control of ranges Re #264: Reorganization and partial cleanup of code; Glyph source options given individual isotropic/directional scaling options

2013-09-23, 09:44:14 - Franklin King

(In r:1175|slicerrt:1175) re #264: Reorganization and cleanup

2013-10-02, 14:29:24 - Franklin King

(In r:1200|slicerrt:1200) re #397 re #378: Glyph visualization based on transformation reworked to only sample needed points. re #264: General reworking of logic. Only glyph visualization with input transform is currently enabled.

2013-10-11, 14:14:22 - Franklin King

(In r:1221|slicerrt:1221) re #264: More restructuring of logic

2013-10-28, 11:01:09 - Franklin King

(In r:1233|slicerrt:1233) re #264: Continuing changes to overall structure of logic

2013-10-30, 14:51:31 - Franklin King

(In r:1239|slicerrt:1239) re #264: Glyph mode now interpolates vectors when data is anisotropic; Contour, Grid, Grid Slice, Glyph Slice modes adapted for new input format New MRML node references implemented

2013-11-08, 15:28:19 - Franklin King

(In r:1271|slicerrt:1271) re #264: Glyph mode redone using simpler randomization; Grid mode redone

2013-11-08, 15:37:45 - Csaba Pinter

milestone_id: changed from null to “TransformVisualizer 0.1.0”

2013-11-15, 15:42:13 - Franklin King

(In r:1282|slicerrt:1282) re #264: Removed batch processing; Renamed functions and variables; Separated sampling functions into transform sampling and vector volume sampling; Added a sampling function for grids; Other small changes

2013-12-09, 11:40:05 - Franklin King

(In r:1335|slicerrt:1335) re #477: Block visualization should now generate at the correct location re #479: 2D grid now generated when requested re #476: 3D grid visualization with transform input should now correctly distort grid re #264: General renaming and cleanup in progress

2013-12-15, 14:02:46 - Andras Lasso

Component: changed from “SlicerRt modules” to “TransformVisualizer”

2013-12-15, 15:23:55 - Andras Lasso

There are many important fixes in TransformVisualizer 0.2.0 already, so submit it to the extension index and move all unresolved tickets to 0.3.0

2013-12-15, 15:23:55 - Andras Lasso

milestone_id: changed from “TransformVisualizer 0.2.0” to “TransformVisualizer 0.3.0”

2014-04-17, 16:52:34 - Andras Lasso

Fixed all known transform visualization issues and moved the functionality to the Slicer core (2014-04-17).

2014-04-17, 16:52:34 - Andras Lasso

status: changed from “New” to “Fixed”

#265 RTPlan module build fails

7>5>..\..\..\..\SlicerRtExtension Plan\MRML\vtkMRMLRTPlanHierarchyNode.cxx(27) : fatal error C1083: Cannot open include file: ‘vtkMRMLContourNode.h’: No such file or directory

2013-04-15, 20:10:58 - Csaba Pinter

status: changed from “New” to “Accepted”

2013-04-15, 20:50:31 - Csaba Pinter

(In r:760|slicerrt:760) Fixed #265: Removed unnecessary includes and linked libraries from the RTPlan module

2013-04-15, 20:50:31 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

2013-04-15, 20:51:33 - Csaba Pinter

The issue was caused by unnecessary includes.

@wangk: I have removed a lot of unnecessary include and link dependencies. It is important not to include or link to files and libraries that the library in question does not need. Please review commit 760. Also it is a good idea to stick to the coding conventions in order to have high-quality, readable code. Thanks!

2013-04-15, 20:59:40 - wangk

Thanks. Like I said before, this is the work in progress which needs many improvements. that is why I kept it in the ART repository and did not want to put it in SlicerRT. I moved it over without much work simply because I hope Greg and Maxim could start to work on it as soon as possible. I could fix all these but again this will delay their work if they want to start soon.

2013-04-15, 21:03:59 - Csaba Pinter

I understand, but quality code is not created from spaghetti code just before release. It is a continuous process to keep it good. If you don’t do that, it won’t be possible to make it good without unacceptably large workload.

#266 Rename RTPlan module to External Beam Planning

  1. The module name does not tell much. RTPlan is a DICOM modality.
  2. There are no Slicer modules with names like this (one word, capital letters, etc.). They all have human readable nice names
  3. It just doesn’t look good in the list

2013-04-21, 15:53:48 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.10.0 (2013-04)” to “SlicerRt 0.11.0 (2013-05)”

2013-04-25, 00:58:39 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2013-04-25, 19:49:17 - Csaba Pinter

(In r:793|slicerrt:793) Re #266: Files and classes renamed from RTPlan to ExternalBeamPlanning

2013-04-25, 20:20:54 - Csaba Pinter

(In r:794|slicerrt:794) Re #266: Finished renaming RTPlan to ExternalBeamPlanning

2013-05-13, 14:58:25 - wangk

(In r:819|slicerrt:819) Re #266: fixed a compilation error (missing vtkIntArray.h) and added a missing signal/slot for RTPlan combobox widget.

2013-05-13, 21:19:26 - Csaba Pinter

status: changed from “New” to “Fixed”

#267 Deformation field visualizer should give some feedback during computation

After pressing the ‘Visualize’ button the user often has to wait for several seconds and it’s not clear if anything is happening or when the result is ready.

It would be useful to give some feedback to the user that a computation is in progress, e.g., change the ‘Visualize’ button text to ‘Processing…’ and make it grayed until the model generation is complete.

2013-04-18, 14:43:20 - Franklin King

(In r:767|slicerrt:767) re #256: Module name now correctly displays as ‘Deformation Field Visualizer’ re #258: Slice intersections now show in slice viewers; re #259: ‘None’ option removed from slice options; Grid Slice node selector options limited; re #267: Added early version of progress dialog to act as feedback during computation

2013-04-18, 14:48:09 - Franklin King

status: changed from “New” to “Accepted”

2013-04-18, 14:48:13 - Franklin King

Changing the button text wasn’t very noticeable so I opted to try using a progress dialog.

2013-04-19, 21:11:15 - Franklin King

status: changed from “Accepted” to “Fixed”

2013-04-19, 21:13:26 - Csaba Pinter

Please put the tickets in Test instead of Fixed. They will be all tested and put into Fixed (or other) in course of the release procedure

2013-04-19, 21:13:26 - Csaba Pinter

status: changed from “Fixed” to “Test”

2013-04-23, 21:16:55 - Andras Lasso

Tested on the latest nightly Slicer build and it works well now.

2013-04-23, 21:16:55 - Andras Lasso

status: changed from “Test” to “Fixed”

#268 Empty model hierarchy nodes are added when contours are converted

When I switch between contour representations (maybe regenerating the contours with different reduction factors) then I switch to the Models module there are many ModelHierarchy_NN nodes without any child nodes. If I do some additional switches then even more such empty child nodes are generated.

The number of empty hierarchy nodes are constantly growing: if I re-generate closed surfaces 10 times with different reduction factors then I end up having more than a hundred empty hierarchy nodes.

2013-04-17, 13:43:05 - Gabor Fichtinger

I am very glad this is getting cleaned up for the release. Thanks–Gabor

From: Andras Lasso (lassoan) [mailto:slicerrt@alerts.assembla.com] Sent: April-17-13 9:29 AM

2013-04-21, 15:53:49 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.10.0 (2013-04)” to “SlicerRt 0.11.0 (2013-05)”

2013-05-14, 17:24:22 - Csaba Pinter

status: changed from “New” to “Accepted”

2013-05-14, 22:44:39 - Csaba Pinter

(In r:823|slicerrt:823) Test #268: Hierarchy nodes are re-used if contour representation is re-converted due to changed conversion parameters; Fixed bug in Contours module UI;

2013-05-14, 22:44:39 - Csaba Pinter

status: changed from “Accepted” to “Test”

2013-07-04, 19:14:56 - Csaba Pinter

status: changed from “Test” to “Fixed”

#269 Deformation Field Visualizer generic tests fail

See http://slicer.cdash.org/viewTest.php?onlyfailed&buildid=87115

2013-04-21, 19:27:09 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2013-04-21, 19:27:14 - Csaba Pinter

status: changed from “New” to “Accepted”

2013-04-21, 19:55:30 - Csaba Pinter

The problem is that in case of the DeformationFieldVisualizer generic tests, the additional directories are not set. The command line is this:

C:\devel\Slicer_Trunk_D64-bin\Slicer-build\Slicer.exe ‘–launcher-no-splash’ ‘–launch’ ‘C:/devel/SlicerRT_D64-bin/inner-build/bin/Debug/qSlicerDeformationFieldVisualizerModuleCxxTests.exe’ ‘qSlicerDeformationFieldVisualizerTest’

but should be like this:

C:\devel\Slicer_Trunk_D64-bin\Slicer-build\Slicer.exe ‘–launcher-no-splash’ ‘–launcher-additional-settings’ ‘C:/devel/SlicerRT_D64-bin/inner-build/AdditionalLauncherSettings.ini’ ‘–launch’ ‘C:/devel/SlicerRT_D64-bin/inner-build/bin/Debug/qSlicerDoseAccumulationModuleCxxTests.exe’ ‘qSlicerDoseAccumulationModuleGenericTest’

Investigating why the argument is missing

2013-04-21, 20:03:42 - Csaba Pinter

(In r:778|slicerrt:778) Re #269: Small cleanup in the Deformation Field Visualizer module

2013-04-21, 20:35:08 - Csaba Pinter

Clean build didn’t help, so it must be some small difference in the CMake files. I compared them to ones in other modules, but found nothing.

2013-04-21, 21:01:25 - Franklin King

Came across the issue this morning and I’ve tried outright copying the CMake files from other modules also to no avail.

2013-04-21, 21:04:52 - Csaba Pinter

(In r:779|slicerrt:779) Re #269: Renamed qSlicerDeformationFieldVisualizerTest.cxx to vtk* to reflect that it’s a logic test and to be conform with the other modules. Also removed the test from the CMake file as it does not work now

2013-04-21, 21:07:34 - Csaba Pinter

The problem is at the generation of the CTestTestfile.cmake file (it’s in SlicerRT_D64-bin\inner-build\DeformationFieldVisualizer\ esting\Cxx). The problem is obvious if compared to for example SlicerRT_D64-bin\inner-build\DoseComparison\ esting\Cxx\CTestTestfile.cmake.

Investigating how it is generated.

2013-04-21, 21:16:45 - Franklin King

Changed CMake file in src\DeformationFieldVisualizer:

#—————————————————————————– if(NOT Slicer_SOURCE_DIR) find_package(Slicer REQUIRED) include(${Slicer_USE_FILE}) endif()

#—————————————————————————– add_subdirectory(Logic)

#—————————————————————————– set(MODULE_EXPORT_DIRECTIVE ‘Q_SLICER_QTMODULES_${MODULE_NAME_UPPER}_EXPORT’)

set(MODULE_INCLUDE_DIRECTORIES ${CMAKE_CURRENT_SOURCE_DIR}/Logic ${CMAKE_CURRENT_BINARY_DIR}/Logic )

to

#—————————————————————————– add_subdirectory(Logic)

#—————————————————————————– set(MODULE_EXPORT_DIRECTIVE ‘Q_SLICER_QTMODULES_${MODULE_NAME_UPPER}_EXPORT’)

set(MODULE_INCLUDE_DIRECTORIES ${SlicerRtCommon_INCLUDE_DIRS} )

Additional Launcher Settings are now added at least on my end

2013-04-21, 21:30:29 - Franklin King

Still fails 1 test though :

48: Test command: C:\Slicer-SuperBuild64\Slicer-build\Slicer.exe ‘–launcher-no- splash’ ‘–launcher-additional-settings’ ‘C:/SlicerRT-SuperBuild64/inner-build/A dditionalLauncherSettings.ini’ ‘–launch’ ‘C:/SlicerRT-SuperBuild64/inner-build/ DeformationFieldVisualizer/Testing/Cxx/Release/qSlicerDeformationFieldVisualizer ModuleCxxTests.exe’ ‘qSlicerDeformationFieldVisualizerModuleWidgetGenericTest’ 48: Test timeout computed to be: 1500 48: Qt: Untested Windows version 6.2 detected! 48: Qt: Untested Windows version 6.2 detected! 48: error: [C:/SlicerRT-SuperBuild64/inner-build/DeformationFieldVisualizer/Test ing/Cxx/Release/qSlicerDeformationFieldVisualizerModuleCxxTests.exe] exit abnorm ally - Report the problem. 2/2 Test #48: qSlicerDeformationFieldVisualizerModuleWidgetGenericTest …***Fai led 3.72 sec

The following tests passed: qSlicerDeformationFieldVisualizerModuleGenericTest

50% tests passed, 1 tests failed out of 2

Module still runs correctly in Slicer.

2013-04-21, 21:37:21 - Csaba Pinter

Sounds good! Thanks! Where did you copy the main CMakeLists.txt file when creating the module? I didn’t try deleting those lines because I supposed that it came from a recent template. It’s strange that it causes problems like this.

2013-04-21, 22:09:08 - Csaba Pinter

(In r:780|slicerrt:780) Re #269: Deleted CMake code that prevented adding the additional directories for DeformationFieldVisualizer. One test crashes now, the other passes

2013-04-21, 22:12:44 - Franklin King

As far as I can tell I must’ve copied

if(NOT Slicer_SOURCE_DIR) find_package(Slicer REQUIRED) include(${Slicer_USE_FILE}) endif()

from here: http://www.slicer.org/slicerWiki/index.php/Documentation/4.2/Developers/Build_Module

At the time I figured it was needed to be able to build it and I never ended up removing it.

2013-04-22, 14:11:20 - Csaba Pinter

(In r:781|slicerrt:781) Fixed #269: Fixed crash in DeformationFieldVisualizer generic widget test

2013-04-22, 14:11:20 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

2013-04-22, 14:18:46 - Csaba Pinter

@FranklinK There was a crash in the widget. I fixed that, so the tests are now passing. Thanks for your help!

#270 Deformation field visualizer slice glyph arrow tips sometimes oriented incorrectly

Vectors are projected to the selected image plane correctly, and the ribbon width is in the correct direction, but the arrow tips are rotated incorrectly and are not flush with the arrow shaft. Issue occurs due to the way the initial 2D glyphs are inconsistently oriented.

Mainly noticeable when magnitude of deformation is high. Generally occurs for whichever image plane has a normal of [1,0,0] (Green when testing with MRHead sample data).

2013-04-19, 21:24:48 - Franklin King

status: changed from “New” to “Accepted”

2013-04-19, 21:25:09 - Franklin King

milestone_id: changed from null to “SlicerRt 0.10.0 (2013-04)”

2013-04-24, 18:24:22 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.10.0 (2013-04)” to “SlicerRt 0.11.0 (2013-05)”

2013-08-06, 20:11:41 - Franklin King

milestone_id: changed from “SlicerRt 0.11.0 (2013-07)” to “TransformVisualizer 0.1.0”

2013-12-15, 14:02:46 - Andras Lasso

Component: changed from null to “TransformVisualizer”

2013-12-15, 15:23:55 - Andras Lasso

There are many important fixes in TransformVisualizer 0.2.0 already, so submit it to the extension index and move all unresolved tickets to 0.3.0

2013-12-15, 15:23:55 - Andras Lasso

milestone_id: changed from “TransformVisualizer 0.2.0” to “TransformVisualizer 0.3.0”

2014-01-20, 22:00:25 - Csaba Pinter

Status set to New due to lack of activity

2014-01-20, 22:00:25 - Csaba Pinter

status: changed from “Accepted” to “New”

2014-04-17, 16:52:34 - Andras Lasso

Fixed all known transform visualization issues and moved the functionality to the Slicer core (2014-04-17).

2014-04-17, 16:52:34 - Andras Lasso

status: changed from “New” to “Fixed”

#271 Add relevant papers to references when found

2013-04-20, 19:13:41 - Csaba Pinter

(In r:772|slicerrt:772) Re #271: ASTRO’s IGRT guidelines paper added (D. Jaffray et al. - Safety considerations for IGRT: Executive summary)

2013-04-20, 19:13:41 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2013-05-27, 22:04:45 - Andras Lasso

(In r:847|slicerrt:847) re #271: Added Zhang2013 (MITK’s RT toolbox paper): Software for quantitative analysis of radiotherapy: Overview, requirement analysis and design solutions

2013-05-27, 22:12:07 - Andras Lasso

(In r:848|slicerrt:848) re #271: Added Zhang2013 to radiobiology and technical notes paper groups

2013-05-28, 01:18:52 - Andras Lasso

(In r:849|slicerrt:849) re #271: Added review comments for the Zhang2013 paper

2013-07-10, 19:05:02 - Csaba Pinter

(In r:994|slicerrt:994) Re #271: Added MITK CARS paper

2013-08-09, 18:23:50 - Csaba Pinter

(In r:1078|slicerrt:1078) Re #271: Added paper ‘Advances in Modern Radiation Therapy’ by Van Dyk, 2005

2013-08-21, 18:05:53 - Csaba Pinter

assigned_to_id: changed from “pinter” to null

2013-09-03, 13:06:31 - Csaba Pinter

(In r:1136|slicerrt:1136) Re #271: Added Kazhdan MICCAI (2009) paper about Overlap Volume Histograms (similarity metric between RT plans)

2013-09-03, 13:06:31 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2013-09-06, 18:41:13 - Csaba Pinter

priority: changed from “High (2)” to “Highest (1)”

2013-09-09, 15:28:19 - Csaba Pinter

priority: changed from “Highest (1)” to “Normal (3)”

2013-09-09, 15:28:19 - Csaba Pinter

milestone_id: changed from “Future” to “Continuous”

2013-09-09, 15:28:53 - Csaba Pinter

assigned_to_id: changed from “pinter” to null

2014-02-03, 15:48:18 - Csaba Pinter

Re #271: Added papers referencing SlicerRT (new group added in the reference list for these) Commit: r:1484|slicerrt:1484

2014-02-03, 15:48:18 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2014-04-06, 16:07:15 - Csaba Pinter

Re #271, Re #521: Added literature related to rasterization Commit: r:1613|slicerrt:1613

2014-04-07, 16:09:08 - Csaba Pinter

Re #271, Re #103: Added papers related to contour to surface conversion Commit: r:1615|slicerrt:1615

2014-05-14, 13:48:56 - Csaba Pinter

Re #271: Added gamma dose comparison paper Commit: r:1722|slicerrt:1722

2014-05-14, 18:53:59 - Csaba Pinter

Re #271, re #584: Added dose comparison paper Commit: r:1724|slicerrt:1724

2014-05-21, 14:22:48 - Csaba Pinter

Re #271: Added SlicerRT citation paper Commit: r:1744|slicerrt:1744

2014-07-21, 15:56:27 - Csaba Pinter

Re #271: Added SlicerRT AAPM paper Commit: r:1880|slicerrt:1880

2014-07-24, 15:47:35 - Csaba Pinter

Re #271: Added papers related to contour to surface generation Commit: r:1888|slicerrt:1888

2014-09-24, 18:25:46 - Csaba Pinter

Re #271: Minor reorganization of folders in SlicerRT references Commit: r:1955|slicerrt:1955

2014-09-24, 19:37:55 - Csaba Pinter

Re #271: RT related papers added Commit: r:1956|slicerrt:1956

2014-09-24, 20:08:20 - Csaba Pinter

Re #271: Minor reorganization in SlicerRT references Commit: r:1957|slicerrt:1957

2015-01-15, 19:03:40 - Csaba Pinter

Re #271: Added papers Commit: r:2094|slicerrt:2094

2015-02-03, 20:58:04 - Csaba Pinter

Re #271: Added Kevin Alexander’s IC3DDose Gel Dosimetry paper referencing SlicerRT Commit: r:2127|slicerrt:2127

2015-02-06, 21:27:55 - Csaba Pinter

Re #271: Added John’s paper about gamma and chi evaluations Commit: r:2139|slicerrt:2139

2015-02-17, 18:55:41 - Csaba Pinter

Re #271: Added paper about interpolation-free gamma calculation (–interp-search switch in the new Plastimatch gamma) Commit: r:2150|slicerrt:2150

2015-04-14, 14:33:33 - Csaba Pinter

Re #271: Added gel dosimetry papers (basic papers: general description of method, Fricke and polymer gels, reliability) Commit: r:2219|slicerrt:2219

2015-06-16, 20:00:05 - Kyle Sunderland

Re #271, Re #521, Added papers relevant to rasterization. Commit: r:2323|slicerrt:2323

2015-08-14, 00:11:31 - Csaba Pinter

Re #271: Added three papers, one about contour voxelization evaluation for DVH, and two DVH-based adaptive technique Commit: r:2403|slicerrt:2403

2016-01-21, 01:47:45 - Kyle Sunderland

Re #271: Add papers relevant to the effects of contour rasterization and DVH accuracy. Commit: r:2589|slicerrt:2589

2016-01-22, 21:13:03 - Jennifer Andrea

Re #271: Added papers relating to similarity analysis on the cloud Commit: r:2596|slicerrt:2596

2017-07-20, 15:03:59 - Kyle Sunderland

Re #271: Added papers related to voxelization, structure representation, fractional labelmaps, etc Commit: r:3195|slicerrt:3195

#272 Contour Morphology module does not work

@wangk: I tried the module and it seems to do nothing at all. I set the inputs just like before, and the output volume is the same as the input. Have you tried it? Also the parameters always jump back to the default value if any other parameter is set, they should be kept in the parameter set node and be set by the widget.

2013-04-21, 17:48:57 - Csaba Pinter

We also agreed that you will create a ticket for the uniform operation feature, please do so.

2013-04-21, 17:49:59 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.11.0 (2013-05)” to “SlicerRt 0.10.0 (2013-04)”

2013-04-22, 19:57:39 - wangk

status: changed from “New” to “Accepted”

2013-04-22, 19:58:54 - wangk

(In r:782|slicerrt:782) Test #272: Fixed a gui problem to update the spinbox widget value. Also updated the test data since before the results are not correctly generated.

2013-04-22, 19:58:54 - wangk

status: changed from “Accepted” to “Test”

2013-04-22, 20:03:48 - wangk

New ticket created #275 for Uniform parameter setting.

2013-04-22, 20:46:18 - Csaba Pinter

Thanks! I’ll try it soon and close this. Can you please do some testing around? Maybe one or two bugs show up.

2013-04-22, 21:01:30 - wangk

Yes, I have tested all the operations this time and they seem to be fine. Last time I forgot to test the expand and shrink since it was working before. But unfortunately they stopped working so this time I tested all operations.

2013-04-22, 21:12:05 - Csaba Pinter

Works well. Thanks for the quick fix!

2013-04-22, 21:12:05 - Csaba Pinter

status: changed from “Test” to “Fixed”

#273 Imported data appears incorrectly in patient hierarchy tree if the module was active before

2013-04-22, 22:33:26 - Csaba Pinter

status: changed from “New” to “Accepted”

2013-04-22, 23:54:38 - Csaba Pinter

(In r:785|slicerrt:785) Fixed #273: Force update whole scene when entering module

2013-04-22, 23:54:38 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

#274 Create ohloh.net site for SlicerRT

ohloh.net is a relevant collector site of open source projects (all major related projects are there, e.g. Slicer, plastimatch, ITK, VTK, CTK, CMake).

2013-04-22, 04:11:59 - Csaba Pinter

https://www.ohloh.net/p/slicerrt site created

2013-04-22, 04:11:59 - Csaba Pinter

status: changed from “New” to “Fixed”

#275 Add uniform expand and shrink option to contour morphology module

Right now one needs to set expand and shrink parameters in all 3 directions. would be nice to add an option to allow uniform expand and shrink to avoid setting parameters multiple times

2013-04-22, 20:02:54 - wangk

milestone_id: changed from “SlicerRt 0.10.0 (2013-04)” to “SlicerRt 0.11.0 (2013-05)”

2013-08-15, 14:58:36 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.11.0 (2013-07)” to “SlicerRt 1.0 (2013-09)”

2013-09-05, 14:36:21 - Csaba Pinter

working_hours: changed from “0.0” to “2.0”

2013-09-05, 14:36:21 - Csaba Pinter

total_working_hours: changed from “0.0” to “2.0”

2013-09-05, 14:38:36 - Csaba Pinter

milestone_id: changed from “SlicerRt 1.0” to “SlicerRt 0.12”

2013-09-21, 03:51:12 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.12” to “SlicerRt 1.0”

2013-09-21, 03:51:12 - Csaba Pinter

component_id: changed from “None” to null

2015-08-14, 18:32:28 - Csaba Pinter

milestone_id: changed from “SlicerRt 1.0” to “SlicerRt 0.18”

2015-08-14, 18:32:28 - Csaba Pinter

status: changed from “New” to “Accepted”

2015-08-14, 18:32:28 - Csaba Pinter

assigned_to_id: changed from “wangk” to “pinter”

2015-08-14, 18:32:52 - Csaba Pinter

I was working on this module and thought I’d do this so that it’s easier to use even for testing.

2015-08-14, 18:38:05 - Csaba Pinter

Fixed #275: Added option to segment morphology to uniformly expand/shrink, thus saving user interaction. Also re-arranged module UI. Commit: r:2405|slicerrt:2405

2015-08-14, 18:38:05 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

2015-08-14, 18:38:05 - Csaba Pinter

working_hours: changed from “2.0” to “0.0”

2015-08-14, 18:38:05 - Csaba Pinter

total_working_hours: changed from “2.0” to “0.0”

2015-08-14, 22:40:27 - Csaba Pinter

image:b1NFTwqTur5ANddmr6CpXy

2015-08-14, 22:40:27 - Csaba Pinter

Attachment added: “20150814_SegmentMorphology.png”

#276 Deformation field visualization grid spacing should be uniform

The grid spacing currently is defined as the number of grid points along each axis of the deformation field volume. This is not ideal, because if the deformation field has anisotropic scaling and/or non-cubic shape then the grid will have non-cubic (non-square) cells.

The grid spacing should be equal (cells should be cubic/square), because then it anisotropic scaling caused by a transform could be very well visualized. Also, currently the grid spacing is quite random, sometimes the grid is much more dense along one axis compared to the other, and there is no way to change that.

The user should be able to specify the grid spacing in millimeters.

In general the def field size will not be a multiple of the grid spacing. I would suggest to include only as many cells as it fits in the deformation field and center them in the field.

2013-04-24, 01:26:13 - Franklin King

status: changed from “New” to “Accepted”

2013-05-31, 18:33:41 - Franklin King

(In r:855|slicerrt:855) re #257: Added decimate option to contour visualization mode re #262: Added tests and baseline model data for deformation field visualizer module re #276: Grid visualization mode now has uniform spacing; Grid Slice visualization mode now has uniform 2D spacing re #257: Resampling fix for uniform spacing creates less detailed models for grid visualization mode re #277: Default parameters for glyphs and contours resulted in differing thresholds. Issue is not completely resolved, but the colors are more consistent than before. re #264: Partially implemented changes discussed in code review Removed cancel button from all progress bar windows. Modified parameter generation of glyph, contour, and glyph slice visualization modes to be more accurate to the data and prevent issues regarding precision.

2013-05-31, 18:34:18 - Franklin King

status: changed from “Accepted” to “Test”

2013-07-04, 20:01:52 - Franklin King

status: changed from “Test” to “Fixed”

#277 Deformation field visualizer color of contours and glyphs are not consistent

Generate a contour model. Generate a new model with glyphs. I would expect that glpyh colors are different on the two sides of the iso-magnitude surfaces/lines. However, it seems that the glyph colors don’t change exactly along the contour lines (see the attached images)

2013-04-23, 21:40:51 - Andras Lasso

image:b35soURf4r4RWMacwqjQWU Contours and glyphs colors are not consistent (3D)

2013-04-23, 21:40:51 - Andras Lasso

Attachment added: “ContourVsGlyphColor.png”

2013-04-23, 21:41:06 - Andras Lasso

image:ca299sRf4r4PGiacwqjQWU Contours and glyphs colors are not consistent (2D)

2013-04-23, 21:41:06 - Andras Lasso

Attachment added: “ContourVsSliceGlyphColor.png”

2013-04-23, 21:42:10 - Andras Lasso

Tested with this deformation field: https://dl.dropboxusercontent.com/u/1528749/DeformationFields/ComputedDefField_Roi3sPRPB_pt.mha

2013-04-23, 21:42:25 - Andras Lasso

assigned_to_id: changed from null to “FranklinK”

2013-04-23, 21:42:25 - Andras Lasso

component_id: changed from “None” to “SlicerRt modules”

2013-04-23, 21:42:25 - Andras Lasso

milestone_id: changed from null to “SlicerRt 0.11.0 (2013-05)”

2013-04-24, 01:23:08 - Franklin King

status: changed from “New” to “Accepted”

2013-05-31, 18:33:41 - Franklin King

(In r:855|slicerrt:855) re #257: Added decimate option to contour visualization mode re #262: Added tests and baseline model data for deformation field visualizer module re #276: Grid visualization mode now has uniform spacing; Grid Slice visualization mode now has uniform 2D spacing re #257: Resampling fix for uniform spacing creates less detailed models for grid visualization mode re #277: Default parameters for glyphs and contours resulted in differing thresholds. Issue is not completely resolved, but the colors are more consistent than before. re #264: Partially implemented changes discussed in code review Removed cancel button from all progress bar windows. Modified parameter generation of glyph, contour, and glyph slice visualization modes to be more accurate to the data and prevent issues regarding precision.

2013-08-06, 20:11:36 - Franklin King

milestone_id: changed from “SlicerRt 0.11.0 (2013-07)” to “TransformVisualizer 0.1.0”

2013-12-15, 14:02:46 - Andras Lasso

Component: changed from “SlicerRt modules” to “TransformVisualizer”

2013-12-15, 15:23:55 - Andras Lasso

There are many important fixes in TransformVisualizer 0.2.0 already, so submit it to the extension index and move all unresolved tickets to 0.3.0

2013-12-15, 15:23:55 - Andras Lasso

milestone_id: changed from “TransformVisualizer 0.2.0” to “TransformVisualizer 0.3.0”

2014-01-20, 22:00:25 - Csaba Pinter

Status set to New due to lack of activity

2014-01-20, 22:00:25 - Csaba Pinter

status: changed from “Accepted” to “New”

2014-04-17, 16:52:35 - Andras Lasso

Fixed all known transform visualization issues and moved the functionality to the Slicer core (2014-04-17).

2014-04-17, 16:52:35 - Andras Lasso

status: changed from “New” to “Fixed”

#278 Consolidate reference volume handling across modules

Contour conversion from model to labelmap needs a reference volume. In our modules that use contours, the reference volume is only needed when it is not already given. But in the case of modules where we use more than one contours, this is more complicated. The labelmaps in this case should have the same lattice in the same coordinate system. So it is sometimes necessary to temporarily re-convert one of the contours for the operation in question.

Proposed solution: If the second input has a different lattice than the first one, then display a warning message saying that the second contour will be re-converted temporarily to match the geometry of the first one. On apply, the second contour is re-converted, that labelmap is used.

Question: Does it make sense to overwrite the original labelmap with the new one? Or should we just discard the new one keeping the original one in the second labelmap.

2013-04-24, 15:16:52 - wangk

This also applies to situation when the contours are transformed. e.g. under a transform node.

I think it is probably better to discard the newly resampled labelmaps.

2013-04-24, 15:18:29 - Csaba Pinter

Yes, applying a transform changes the coordinate system.

2013-05-14, 19:18:25 - Csaba Pinter

description: changed from “Contour conversion from mod…” to “Contour conversion from mod…”

2013-05-14, 19:18:25 - Csaba Pinter

summary: changed from “Consolidate reference volume handling through modules” to “Consolidate reference volume handling across modules”

2013-07-11, 14:39:01 - Csaba Pinter

status: changed from “New” to “Accepted”

2013-07-11, 21:34:56 - Csaba Pinter

(In r:1006|slicerrt:1006) Re #278: Preliminary ContourSelectorWidget and related designer plugin classes added

2013-07-14, 22:33:47 - Greg Sharp

(In r:1010|slicerrt:1010) Re #278: Fix linux compile error

2013-07-20, 14:18:59 - Csaba Pinter

(In r:1024|slicerrt:1024) Re #278: WIP Continued to implement the contour selector widget; Moved several utility functions from ContoursModuleWidget to Logic in order to be used both in the module widget and the new selector widget

2013-07-20, 14:54:25 - Csaba Pinter

(In r:1025|slicerrt:1025) Re #278: For some reason there was no build performed before the testing, and some errors were left in. Fixing these.

2013-07-24, 09:21:08 - Csaba Pinter

(In r:1027|slicerrt:1027) Re #278: Fixed same linux build error that Greg fixed some time ago

2013-08-13, 21:03:05 - Csaba Pinter

(In r:1085|slicerrt:1085) Re #278: Added description to contour selector widget

2013-08-14, 14:05:59 - Csaba Pinter

(In r:1086|slicerrt:1086) Re #278: Contours module oversampling factor default restored to 2; Display message and disable controls on empty structure set selection

2013-08-14, 17:33:16 - Csaba Pinter

(In r:1087|slicerrt:1087) Re #278: Continued implementation of the ContourSelectorWidget

2013-08-14, 21:07:34 - Csaba Pinter

(In r:1091|slicerrt:1091) Re #278: Continued implementation of the ContourSelectorWidget

2013-08-15, 14:29:21 - Csaba Pinter

(In r:1092|slicerrt:1092) Re #278: ContourSelectorWidget is now used instead of the structure set MRMLNodeComboBox in Dose Volume Histogram module

2013-08-19, 20:39:00 - Csaba Pinter

(In r:1102|slicerrt:1102) Re #278: Invalidate contour representation if a relevant parameter is changed (e.g. oversampling factor); Added utility function GetRasterizationReferenceVolumeOfContours to Contours logic; Fixed PrintSelf methods in many classes

2013-08-22, 17:04:08 - Csaba Pinter

(In r:1109|slicerrt:1109) Re #278: Added grouping option to ContourSelectorWidget. When there are multiple contours to define, then more instances of this widget can be added and then grouped. The bottom one should be the master, the others slaves. The slaves display critical messages only, and the master has the reference selector and other messages (for all the instances)

2013-08-22, 21:40:06 - Csaba Pinter

(In r:1110|slicerrt:1110) Test #278: ContourSelectorWidget seems to be working well now, even with grouping; Small selection-related bug fixed in Contours module widget; Scene close crash fixed in ContourSelectorWidget

2013-08-22, 21:40:06 - Csaba Pinter

status: changed from “Accepted” to “Test”

2013-08-25, 17:53:09 - Csaba Pinter

(In r:1113|slicerrt:1113) Re #278: Fixed Contour Morphology module contour selection bug that happened due to unary/binary operation changes; Fixed bug that caused two indexed labelmap representations stay in the scene after re-converting with different conversion parameters

2013-08-26, 19:04:31 - Csaba Pinter

status: changed from “Test” to “Fixed”

2014-06-09, 19:30:15 - Adam Rankin

re #278 cleaning up expired comments Commit: r:1793|slicerrt:1793

#279 Edit DICOM tags in Subject Hierarchy module

Derived data need DICOM tags to be specified for export

2013-09-06, 18:55:12 - Csaba Pinter

priority: changed from “Normal (3)” to “High (2)”

2013-12-18, 15:35:43 - Csaba Pinter

milestone_id: changed from “Future” to “SlicerRt 1.0”

2013-12-18, 15:35:56 - Csaba Pinter

summary: changed from “Edit DICOM tags in Patient Hierarchy module” to “Edit DICOM tags in Subject Hierarchy module”

2013-12-30, 00:35:09 - Csaba Pinter

milestone_id: changed from “SlicerRt 1.0” to “SlicerRt 0.14”

2014-04-03, 18:14:52 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.14” to “SlicerRt 0.15”

2014-08-13, 15:02:44 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2014-08-13, 15:02:50 - Csaba Pinter

status: changed from “New” to “Accepted”

2014-10-29, 14:14:18 - Csaba Pinter

DICOM tag editor widget added and works properly in Slicer branch https://github.com/cpinter/Slicer/tree/srt55-dicom-export Will be integrated to Slicer core once DICOM export is feature ready and tested

2014-10-29, 14:14:18 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

#280 Utilize patient hierarchy tree to store metadata and relationships

2013-04-30, 17:01:05 - Csaba Pinter

status: changed from “New” to “Accepted”

2013-05-02, 16:00:48 - Greg Sharp

Needed for RTSTRUCT: Identity of reference image Size & geometry of reference image Image modality (e.g. CT, MR) List of CT slice UIDs (sorted associated with index) Frame of Reference UID Patient name, sex, id, birth date

2013-05-02, 16:01:14 - Greg Sharp

Study date & study time

2013-05-08, 20:33:01 - Csaba Pinter

(In r:811|slicerrt:811) Re #230, re #280: PatientHierarchy plugin mechanism added that facilitates using special node types (e.g. Contour) in the PatientHierarchy tree. For now, the potential nodes list and the dropping from that is handled by the plugins; Improvements on using the referenced series for contour conversion from ribbon

2013-05-17, 00:31:47 - Csaba Pinter

(In r:832|slicerrt:832) Re #280: Structure set name and color node discovery moved to Patient Hierarchy

2013-05-18, 03:10:21 - Csaba Pinter

(In r:836|slicerrt:836) Re #280: Color is transferred for contours when moved in patient hierarchy (needs fixes); Beams module made hidden (lost its function when integrating beam loading to DicomRtImport)

2013-05-28, 17:33:11 - Csaba Pinter

(In r:850|slicerrt:850) Re #280: Separating features of the patient hierarchy plugin (to Add and Reparent)

2013-06-01, 00:01:39 - Csaba Pinter

(In r:856|slicerrt:856) Re #252, re #280: Added skeleton of vtkSlicerDicomRtImportModuleLogic::PerformPostLoadSteps function that gets called after all loadables are loaded by every plugin. This is done by the new DICOMPlugin method onLoadFinished

2013-06-01, 00:48:42 - Csaba Pinter

(In r:857|slicerrt:857) Re #280: Additional DICOM tags loaded and stored: PatientName, PatientBirthDate, StudyDate, StudyTime, Modality

2013-06-01, 21:01:05 - Csaba Pinter

(In r:858|slicerrt:858) Re #280: Patient sex and birth date, study date and time, and modality are added to the new series patient hierarchy nodes as attributes

2013-07-10, 21:45:49 - Csaba Pinter

(In r:996|slicerrt:996) Re #280: Dose volume attributes removed (dose unit name and value are now attributes of the study node). Tests modified to use MRML scenes instead of text files for the scene attributes (became much shorter this way). Tests now fail if a VTK warning or error happens. PatientHierarchyLogic utility functions added for getting ancestors and attributes in ancestors.

2013-08-14, 19:55:31 - Csaba Pinter

(In r:1089|slicerrt:1089) Re #280: Select referenced anatomical volume (found from DICOM and then in Patient Hierarchy) as reference volume for conversion in Contours module if available. Note that the oversampling factor is by default set to 1 in this case (no over or undersampling)

2013-08-15, 13:29:42 - Csaba Pinter

status: changed from “Accepted” to “Test”

2013-08-25, 22:14:01 - Csaba Pinter

(In r:1116|slicerrt:1116) Re #280: Added attribute to connect contour node with a DVH array created from it

2013-08-26, 19:04:31 - Csaba Pinter

status: changed from “Test” to “Fixed”

#281 Change self test to use CLI modules without the wait cycles

Make use of the 2 new states in the CLI node status (‘Cancelling’ and ‘Completing’). This gives the ability to scripted python modules to run CLIs without having to wait on them, option to cancel the cli, and most importantly, to be notified when the CLI is completed AND the outputs are loaded back into the scene. The example below automatically assigns a color node to the generated output: 486 def runMergeLabels(self, run): 487 if run: 488 cliNode = self.getCLINode(slicer.modules.changelabel) 489 parameters = self.mergeLabelsParameters() 490 self.get(‘MergeLabelsApplyPushButton’).setChecked(True) 491 self.addObserver(cliNode, self.StatusModifiedEvent, self.onMergeLabelsCLIModified) 492 cliNode = slicer.cli.run(slicer.modules.changelabel, cliNode, parameters, wait_for_completion = False) 493 else: 494 cliNode = self.observer(self.StatusModifiedEvent, self.onMergeLabelsCLIModified) 495 self.get(‘MergeLabelsApplyPushButton’).setEnabled(False) 496 cliNode.Cancel() 497 498 def onMergeLabelsCLIModified(self, cliNode, event): 499 if cliNode.GetStatusString() == ‘Completed’: 500 # apply label map 501 newNode = self.get(‘MergeLabelsOutputNodeComboBox’).currentNode() 502 colorNode = self.get(‘LabelmapColorNodeComboBox’).currentNode() 503 if newNode != None and colorNode != None: 504 newNode.GetDisplayNode().SetAndObserveColorNodeID(colorNode.GetID()) 505 506 if not cliNode.IsBusy(): 507 self.get(‘MergeLabelsApplyPushButton’).setChecked(False) 508 self.get(‘MergeLabelsApplyPushButton’).setEnabled(True) 509 print ‘MergeLabels %s’ % cliNode.GetStatusString() 510 self.removeObservers(self.onMergeLabelsCLIModified)

2013-07-11, 01:28:53 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.11.0 (2013-05)” to “SlicerRt 1.0 (2013-06)”

2013-08-30, 15:19:05 - Csaba Pinter

priority: changed from “Low (4)” to “Lowest (5)”

2015-02-23, 02:46:22 - Csaba Pinter

milestone_id: changed from “SlicerRt 1.0” to “Future”

#282 Push a SlicerRT article in AuntMinnie

Just an idea

2013-05-07, 18:52:20 - Csaba Pinter

priority: changed from “Normal (3)” to “Low (4)”

2017-07-23, 19:14:43 - Csaba Pinter

Target audience is well aware of SlicerRT. It would be much better to promote actual use cases when they happen, such as proton EBP, MRI-US fusion, etc

2017-07-23, 19:14:43 - Csaba Pinter

status: changed from “New” to “Invalid”

#283 Create new SlicerRT tutorial for the NA-MIC tutorial contest

Well illustrated, nice-looking, well detailed, straightforward, easily followable

2013-05-07, 18:52:26 - Csaba Pinter

priority: changed from “Normal (3)” to “High (2)”

2013-06-12, 16:11:14 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2013-06-12, 16:11:14 - Csaba Pinter

milestone_id: changed from “SlicerRt 1.0 (2013-06)” to “SlicerRt 0.11.0 (2013-05)”

2013-06-12, 16:11:14 - Csaba Pinter

status: changed from “New” to “Accepted”

2013-06-12, 16:11:45 - Csaba Pinter

(In r:886|slicerrt:886) Re #283: Added NA-MIC tutorial skeleton

2013-06-12, 20:35:51 - Csaba Pinter

(In r:888|slicerrt:888) Re #283: WIP Defined all workflows and functions involved in the NA-MIC tutorial self test

2013-06-12, 20:41:47 - Csaba Pinter

(In r:889|slicerrt:889) Re #283: Renamed NA-MIC tutorial to not have the dash because it causes a python syntax error and the file name has to match the classes within

2013-06-13, 16:01:11 - Csaba Pinter

(In r:892|slicerrt:892) Re #283: NA-MIC tutorial loading and isodose step done

2013-06-13, 19:37:24 - Csaba Pinter

(In r:893|slicerrt:893) Re #283: Evaluate isocenter shifting workflow works; Re #134: Accumulated dose volume is also displayed with the dose color table

2013-06-13, 20:28:57 - Csaba Pinter

(In r:894|slicerrt:894) Re #283: Tutorial self test passes

2013-06-14, 01:53:22 - Csaba Pinter

(In r:899|slicerrt:899) Test #283: Presentation added for NA-MIC tutorial contest

2013-06-14, 01:53:22 - Csaba Pinter

status: changed from “Accepted” to “Test”

2013-06-14, 02:15:46 - Csaba Pinter

(In r:900|slicerrt:900) Re #283: Fixed crash in the NA-MIC week tutorial self test that happened when Register was called after Load (skipped Isodose)

2013-06-24, 16:14:39 - Csaba Pinter

status: changed from “Test” to “Fixed”

#284 Add dicom export functionality based on plastimatch lib in Dicom-RT export module

The first step is to add function to export a new study. this is like Greg’s example 1 for exporting.

This is simpler as it does not need all the uids.

2013-05-02, 16:15:36 - wangk

file:cfSVLWS0mr4OJdacwqjQXA

2013-05-02, 16:15:36 - wangk

Attachment added: “Notes.txt”

2013-05-17, 22:33:48 - Greg Sharp

(Copying notes from #216, because I will close that one)

Greg’s notes: https://forge.abcd.harvard.edu/gf/project/plastimatch/scmsvn/?action=browse&path=%2Fplastimatch%2Ftrunk%2Fdoc%2FNOTES.TXT&view=markup

Test script: https://forge.abcd.harvard.edu/gf/project/plastimatch/scmsvn/?action=browse&path=%2Fplastimatch%2Ftrunk%2Fsrc%2Fplastimatch%2Ftest%2Fapi_test.cxx&view=markup

2013-06-19, 16:04:16 - wangk

(In r:910|slicerrt:910) Re #284: this commit implements the option to export to a new study. limitation: output path not working. need to fix in the code. contours cannot be saved correctly sometimes. need to investigate.

2013-06-19, 16:04:16 - wangk

assigned_to_id: changed from null to “wangk”

2013-06-19, 16:16:44 - wangk

(In r:911|slicerrt:911) Re #284: Fixed dicom import plugin for rtdose import. if there is no referenced rtplan then just skip.

2013-06-19, 17:52:15 - wangk

(In r:913|slicerrt:913) Re #284: check in the missing changes in SlicerRtCommon.

2013-06-19, 18:13:18 - Csaba Pinter

(In r:914|slicerrt:914) Re #284: Reviewed code in DicomRtExport

2013-07-05, 17:38:58 - wangk

status: changed from “New” to “Accepted”

2013-07-05, 17:42:16 - wangk

(In r:978|slicerrt:978) Re #284: Small fixes (1. connect pushbutton to a function. 2. add image cast to deal with integer CT volume. 3. add auto conversion from contour to labelmap.)

2013-07-22, 15:34:23 - wangk

(In r:1026|slicerrt:1026) Re #284: Disable python wrapping for vtkSlicerDicomRtWriter.h file. It is causing some errors in python importing.

2013-07-31, 16:22:23 - wangk

(In r:1051|slicerrt:1051) Re #284: Added the filtering code so only contour hierarchy nodes are shown in the combobox.

2013-09-04, 19:13:30 - Greg Sharp

Basic interface is complete. Closing the ticket.

2013-09-04, 19:13:30 - Greg Sharp

status: changed from “Accepted” to “Fixed”

2013-09-09, 16:53:34 - wangk

(In r:1147|slicerrt:1147) Re #284: Un-comment the direction cosines calculation code in dicom rt export.

2013-11-01, 13:18:37 - wangk

(In r:1245|slicerrt:1245) Re #284: small fixes for GUI to filter various nodes based on types. use the label colortable node for contour colors if no color is assigned (this is a temp fix).

#285 DCMTK_DIR not correctly sent to plastimatch

I just learned that recent versions of Slicer no longer have a DCMTK-install subdirectory.

But SlicerRT passes the DCMTK-install to plastimatch as DCMTK_DIR.

This means that plastimatch can’t find DCMTK.

2013-05-02, 18:14:54 - Greg Sharp

The directory structure within DCMTK-build is not consistent with existing versions of FindDCMTK.cmake. This will require additional fixes within plastimatch to address that.

2013-05-02, 18:44:34 - Greg Sharp

Probably fixed in revision 799.

2013-05-02, 18:44:34 - Greg Sharp

assigned_to_id: changed from null to “gregsharp”

2013-05-02, 18:44:34 - Greg Sharp

status: changed from “New” to “Test”

2013-05-17, 22:32:02 - Greg Sharp

status: changed from “Test” to “Fixed”

#286 Create wiki page for naming conventions

Add a “definition of terms” or “naming convention” on the SliceRT wiki where we would take note of all the terms that we use (and their mapping to DICOM and relationship to other Slicer terms)

This means mainly Contour-related objects for now, but others will come in later (plans, beams, fields, etc.)

2013-07-11, 01:54:02 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2013-08-23, 00:01:31 - Csaba Pinter

status: changed from “New” to “Accepted”

2013-08-23, 00:01:43 - Csaba Pinter

Page created: https://www.assembla.com/spaces/slicerrt/wiki/SlicerRt_naming_conventions

2013-08-25, 21:33:50 - Csaba Pinter

status: changed from “Accepted” to “Test”

2013-08-26, 19:04:31 - Csaba Pinter

status: changed from “Test” to “Fixed”

#287 Release SlicerRT 0.11

2013-05-15, 15:56:06 - Csaba Pinter

(In r:826|slicerrt:826) Re #287: Added checkbox to RSNA test to make enabling deformable registration possible

2013-05-21, 18:48:32 - Csaba Pinter

(In r:843|slicerrt:843) Re #287: RSNA test individual steps buttons fixed; Deformable checkbox moved to next to the Register button

2013-05-21, 20:42:41 - Csaba Pinter

(In r:844|slicerrt:844) Re #287: SlicerRT logo GIMP and PNG files added in doc/logo

2013-06-02, 23:46:21 - Csaba Pinter

(In r:861|slicerrt:861) Re #287: Fixing build error due to recent signature changes in class qMRMLNodeCombobox

2013-06-03, 00:10:50 - Csaba Pinter

(In r:862|slicerrt:862) Re #287: Bumped version number to 10.0.2

2013-06-13, 22:27:03 - Csaba Pinter

(In r:897|slicerrt:897) Re #287: Bump version number to 0.10.3

2013-07-03, 20:13:07 - Csaba Pinter

priority: changed from “Normal (3)” to “Low (4)”

2013-07-03, 20:13:30 - Csaba Pinter

priority: changed from “Low (4)” to “Lowest (5)”

2013-07-03, 20:16:41 - Csaba Pinter

(In r:975|slicerrt:975) Re #287: Do not process MRML events when batch processing is in place (Nicole’s advice); Output node combobox selection is None by default (it was easy to miss setting the output node and thus overwriting useful data before)

2013-07-17, 14:49:50 - Csaba Pinter

(In r:1021|slicerrt:1021) Re #287: Updated version number to 0.10.4 before release

2013-08-09, 20:25:50 - Csaba Pinter

(In r:1080|slicerrt:1080) Re #287: Fix Subversion_SVN_EXECUTABLE not found error on the factory builds

2013-08-09, 21:56:58 - Csaba Pinter

(In r:1081|slicerrt:1081) Re #287: Removed debug message from CMakeLists file

2013-08-12, 16:28:10 - Franklin King

Re #287: Fix Subversion_SVN_EXECUTABLE not found error on the factory builds

I’ve noticed that the error is still occurring. I think SlicerRT.s4ext might still be the old version on Slicer/ExtensionsIndex.

2013-08-12, 16:34:55 - Csaba Pinter

I haven’t released a version yet, because it has a huge overhead and I’d like to do fixes and some actual work on the code for a change.

2013-08-12, 16:44:24 - Csaba Pinter

I see why you let me know this, but based on last months’ unreliable nightly builds, I decided to have our users use certain releases, see http://slicerrt.github.io/Download.html

2013-08-12, 16:55:30 - Franklin King

I understand. Just wanted to make sure it wasn’t an oversight.

2013-08-14, 19:17:59 - Csaba Pinter

(In r:1088|slicerrt:1088) Re #287: Added image about funding sources (David Jaffray’s request) instead of the gamma one

2013-08-16, 17:43:38 - Csaba Pinter

(In r:1101|slicerrt:1101) Re #287: Attempt to fix the Mac GIT_EXECUTABLE-NOTFOUND issue the same way the SVN issue has been recently fixed

2013-08-26, 17:33:11 - Csaba Pinter

(In r:1127|slicerrt:1127) Re #287: The modules that do not have custom icons yet use the default icon (accommodates Slicer commit 22288); Deleted icon and the resource file from hidden modules

2013-08-26, 20:16:46 - Csaba Pinter

(In r:1130|slicerrt:1130) Re #287: Minor bug in Contours module fixed (when selecting a contour that was created from labelmap but still has a reference to the anatomical volume by DICOM, the conversion widgets misbehaved)

2013-08-26, 21:15:47 - Csaba Pinter

status: changed from “New” to “Fixed”

2013-08-27, 14:31:41 - Csaba Pinter

(In r:1132|slicerrt:1132) Re #287: Fix Mac build error due to friend classes

#288 Do not use special types of hierarchies

Remove vtkMRMLContourHierarchyNode and change the code so that everything works the same without using that.

2013-05-15, 16:37:57 - Csaba Pinter

(In r:827|slicerrt:827) Fixed #288: Removed vtkMRMLContourHierarchyNode. Replaced it with vtkMRMLDisplayableHierarchyNode with a special attribute (DicomRtImport.ContourHierarchy with any value)

2013-05-15, 16:37:57 - Csaba Pinter

status: changed from “New” to “Fixed”

2013-05-17, 00:39:30 - Csaba Pinter

(In r:833|slicerrt:833) Re #288: Removed last occurrences of vtkMRMLContourHierarchyNode (from .ui and python files)

#289 Create icons for the modules

2015-08-15, 18:35:53 - Csaba Pinter

Re #289: Added icons to Segment Morphology, Segment Comparison, and Dose Comparison Commit: r:2408|slicerrt:2408

2015-08-15, 18:35:53 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2015-08-15, 19:04:20 - Csaba Pinter

Re #289: Updated icon for Segment Morphology Commit: r:2410|slicerrt:2410

#290 Study is loaded incorrectly if there are both point and contour ROIs in the structure set

For example SlicerRt\data\xio-4.64-phantom-prostate-beams-iao10

2013-05-15, 20:25:18 - Csaba Pinter

(In r:829|slicerrt:829) Fixed #290: One series hierarchy node is created for both point and contour ROIs in the same structure set

2013-05-15, 20:25:18 - Csaba Pinter

status: changed from “New” to “Fixed”

#291 Write a brief manual for using the Patient Hierarchy

Some things are not self-explanatory, so they need explanation

2013-07-11, 02:00:20 - Csaba Pinter

status: changed from “New” to “Invalid”

#292 Dragging contour into patient in PatientHeirarchyNode causes crash

Steps to reproduce

(1) Load Dicom Data set (2) Create contour node using Contour module (3) Switch to Patient Heirarchy module (4) Drag contour node from ‘Potential Heirarchy’ onto patient node (5) Slicer will crash

This was tested on linux.

2013-05-17, 16:38:43 - Csaba Pinter

Can you please elaborate on (1) and (2)? Also can you tell me what version are you using?

2013-05-17, 17:59:40 - Greg Sharp

Step (1) is just to create some hierarchy elements. To be more concrete, please load ‘Plastimatch random noise’.

You can skip (2). Instead, on step (4), drag ‘DefaultStructureSet’ onto ‘No description’ underneath ‘NOISE_PHANTOM’.

This is version 834 (svn HEAD).

2013-05-17, 18:02:51 - Csaba Pinter

OK, so this crash does not occur when creating the contour (I presume it works well. Does it?), but when doing something ‘unexpected’. I’ll test and fix those. Thanks for reporting!

2013-05-17, 18:02:57 - Csaba Pinter

component_id: changed from “None” to “SlicerRt modules”

2013-05-17, 18:03:00 - Csaba Pinter

milestone_id: changed from null to “SlicerRt 0.11.0 (2013-05)”

2013-05-17, 18:03:05 - Csaba Pinter

priority: changed from “Normal (3)” to “High (2)”

2013-05-17, 18:04:57 - Greg Sharp

Confirmed. No crash when creating the contour.

2013-05-17, 18:57:29 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2013-05-20, 15:10:11 - Csaba Pinter

(In r:839|slicerrt:839) Test #292: Drag&drop node under study node in patient hierarchy fixed. Testing needed on linux too; Color node entry bug when contours are moved to other structure set fixed

2013-05-20, 15:10:11 - Csaba Pinter

status: changed from “New” to “Test”

2013-05-20, 15:10:56 - Csaba Pinter

Greg, can you please try this on linux? Thanks!

2013-05-20, 15:10:56 - Csaba Pinter

assigned_to_id: changed from “pinter” to “gregsharp”

2013-06-11, 19:40:18 - Csaba Pinter

status: changed from “Test” to “Fixed”

2013-06-11, 19:40:23 - Csaba Pinter

assigned_to_id: changed from “gregsharp” to “pinter”

#293 Perform thorough manual testing on all modules

null

2013-08-26, 23:12:34 - Csaba Pinter

priority: changed from “Normal (3)” to “Low (4)”

#294 Synthetic image generation improvements

The plastimatch synthetic image generation is a bit old. Needs the following work:

(1) Eliminate unused options (2) Fix bugs where structures are not created (3) Create Contour object instead of labelmap (4) Make GUI more efficient to use

2013-05-18, 15:40:49 - Greg Sharp

(In r:837|slicerrt:837) Re #294: Fix bug where synthetic labelmap wasn’t getting created

#295 Slicer crashes when saving RTPlan node

Steps to reproduce

(1) Load scene with image (2) Go to ExternalBeamPlanning (3) ReferenceVolume is already set (4) Create a new RTPlan node (5) Save scene (6) Slicer crashes

This is reproduced on linux, SlicerRT version 837 (svn HEAD).

@Kevin, I assign to you, but if I can figure out myself I will fix.

2013-05-21, 19:53:19 - wangk

Hi Greg,

Thanks for reporting the bug. I took a quick look and found the problem which causes the crash. however, after I fixed this I found another issue. I think I will spend a bit more time to fix it. if you need a quick fix, you can just remove the RTPlanName variable in RTPlan class, that will get rid of the crash.

Thanks.

2013-05-21, 20:46:12 - Greg Sharp

Hi Kevin, No problem. It isn’t critical for me so I’ll wait for the permanent fix. Greg

From: Kevin Wang (wangk) [mailto:slicerrt@alerts.assembla.com] Sent: Tuesday, May 21, 2013 3:53 PM

2013-05-21, 20:46:12 - Greg Sharp

Story Level: changed from null to “Subtask”

2013-09-06, 18:55:49 - Csaba Pinter

Is this still an issue?

2013-09-06, 18:55:58 - Csaba Pinter

priority: changed from “Normal (3)” to “High (2)”

2013-11-06, 23:03:54 - Csaba Pinter

Is this still an issue? Crashes shouldn’t be pushed to the Future milestone

2013-12-21, 17:51:36 - Csaba Pinter

Crashes are not supposed to be in Future, moving to current milestone

2013-12-21, 17:52:43 - Csaba Pinter

milestone_id: changed from “Future” to “SlicerRt 0.13”

2014-01-09, 05:55:14 - Csaba Pinter

Can someone please answer?

2014-01-09, 15:48:15 - wangk

I will look at it today.

2014-01-09, 15:48:15 - wangk

status: changed from “New” to “Accepted”

2014-01-09, 16:27:14 - Csaba Pinter

Thanks!

2014-01-09, 22:04:28 - wangk

(In r:1397|slicerrt:1397) Test #295: Fixed the crash when saving rtplan node.

2014-01-09, 22:04:28 - wangk

status: changed from “Accepted” to “Test”

2014-01-09, 22:10:40 - Csaba Pinter

assigned_to_id: changed from “wangk” to “gregsharp”

2014-01-09, 22:10:59 - Csaba Pinter

Great, thanks! @gregsharp Can you please test and close?

2014-01-10, 20:55:29 - Greg Sharp

Fix confirmed. Thanks Kevin!

2014-01-10, 20:55:29 - Greg Sharp

status: changed from “Test” to “Fixed”

#296 Plastimatch doesn’t build

Plastimatch fails to build on Windows in release mode with the new revision number (4280)

Error message: 10>—— Build started: Project: plmbase, Configuration: Release x64 —— 10>Compiling… 10>aperture.cxx 10>..\..\..\..\Plastimatch\src\plastimatch\base\aperture.cxx(4) : fatal error C1083: Cannot open include file: ‘plmdose_config.h’: No such file or directory

2013-05-21, 16:13:52 - wangk

I had same problem. I looked at the code and I think the problem is that in CMakeList.txt ‘PLM_CONFIG_LIBRARY_BUILD’ is not defined properly. if you add an option ‘PLM_CONFIG_LIBRARY_BUILD’ and set it to off, then everything should work. Greg, maybe you have some better idea.

##—————————————————————————–

PLASTIMATCH MODULES

##—————————————————————————– if (PLM_CONFIG_LIBRARY_BUILD) else () set (PLMLIB_CONFIG_ENABLE_CLI true) set (PLMLIB_CONFIG_ENABLE_CLP true) set (PLMLIB_CONFIG_ENABLE_DOSE true) set (PLMLIB_CONFIG_ENABLE_QT true) set (PLMLIB_CONFIG_ENABLE_RECONSTRUCT true) set (PLMLIB_CONFIG_ENABLE_REGISTER true) set (PLMLIB_CONFIG_ENABLE_SCRIPT true) set (PLMLIB_CONFIG_ENABLE_SEGMENT true) set (PLMLIB_CONFIG_ENABLE_STANDALONE true) set (PLMLIB_CONFIG_ENABLE_TEST true) endif ()

2013-05-21, 16:47:18 - Greg Sharp

Sorry, my bad… I will fix

2013-05-21, 17:06:55 - Greg Sharp

(In r:842|slicerrt:842) Test #296: Bump plastimatch version to fix build problem

2013-05-21, 17:06:55 - Greg Sharp

status: changed from “New” to “Test”

2013-05-21, 19:38:07 - Csaba Pinter

Thanks for the quick fix!

2013-05-21, 19:38:07 - Csaba Pinter

status: changed from “Test” to “Fixed”

#297 Provide gamma summary information

Usually software provide a summary of gamma statistics, such as pass rate, based on voxels that have dose higher than a given threshold. For example, pass rate based on voxels with dose greater than 10% of max dose.

2013-05-28, 17:51:19 - Andras Lasso

From: Raj Varadhan [mailto:Rvaradhan@mropa.com] Sent: Wednesday, May 22, 2013 11:09 AM To: Andras Lasso Cc: Csaba Pintér; Sharp, Gregory C. Subject: RE: Slicer 4.2 Dose comparison Module

Andras & Greg I have been thinking about this some more. I do think there is some merit in reporting a statistic from Gamma calculation. If Slicer already calculates Gamma per Voxel, I would think it should not be a major hindrance to report some quantitative value. For example one could report Gamma (avg) and percentage of voxels with Gamma < 1 ( pass) or Gamma > 1 (Fail) at a user defined threshold. Of course there are several papers out there which report such use. It’s easy for me to say but I suspect it is much harder to implement it. But I do think the dose comparison module is missing a quantitative value which a clinical user tends to look at first rather than just looking at a color wash map Regards Raj

2013-06-12, 19:36:14 - Csaba Pinter

priority: changed from “Normal (3)” to “High (2)”

2013-06-18, 16:12:05 - Greg Sharp

(In r:904|slicerrt:904) Re #297 Remove obsolete modules in preparation for plastimatch revision upgrade

2013-06-18, 22:28:31 - Greg Sharp

Plastimatch was updated to achieve this specification. However, doxygen will not be updated until I get to my work computer.

Meanwhile, here is the usage:

1
2
3
4
5
6
7
8
9
Gamma_dose_comparison gc;
// set images, etc...
gc.set_reference_dose (rx_dose);  // optional.  call this to set a prescription dose instead of using reference max dose
gc.set_analysis_threshold (0.1);   // optional.  call this to only include voxels with dose greater than 10% of reference dose (only relevant to pass fraction)
gc.run ();
float pass_percent = gc.get_pass_fraction ();   // Get the % of voxels that passed


2013-06-19, 03:34:42 - Csaba Pinter

assigned_to_id: changed from “gregsharp” to “pinter”

2013-06-19, 03:34:42 - Csaba Pinter

milestone_id: changed from “SlicerRt 1.0 (2013-06)” to “SlicerRt 0.11.0 (2013-05)”

2013-06-19, 03:34:42 - Csaba Pinter

status: changed from “New” to “Accepted”

2013-06-19, 13:14:04 - Csaba Pinter

(In r:907|slicerrt:907) Re #297: UI changes to accommodate gamma improvements. This breaks the Dose Comparison for now, a bug probably needs to be fixed in Plastimatch (and this commit helps testing that)

2013-06-19, 15:22:15 - Greg Sharp

(In r:909|slicerrt:909) Re #297 Bump plastimatch version to fix gamma calculation bug

2013-06-19, 18:40:40 - Csaba Pinter

(In r:915|slicerrt:915) Re #297: Changed percentage values to be actually percent (0-100)

2013-06-19, 23:34:11 - Greg Sharp

(In r:916|slicerrt:916) Re #297 Bump plastimatch version again to fix another gamma calculation bug

2013-06-19, 23:36:51 - Greg Sharp

I found a new bug in plastimatch gamma calculation. The search region was too small, resulting in incorrect output image. This problem was corrected, but the routine runs slower now. We should consider some workarounds, to improve user experience. For example:

(1) Improve algorithms to make faster (2) Make multithreaded (3) Run at lower resolution

2013-07-01, 14:50:37 - Greg Sharp

(In r:963|slicerrt:963) Re #297 Fix percent bug in gamma calculation

2013-07-01, 14:58:52 - Greg Sharp

Csaba, I did some very basic testing with synthetic phantoms, and found that the pass fraction always shows up as an integer value, such as 86.00% or 90.00%. Do you mind taking a quick look?

2013-07-01, 15:03:09 - Greg Sharp

Sorry for the noise. I was able to get fractional values using a different phantom. The synthetic one was ‘too perfect’. Moving this ticket to test status.

2013-07-01, 15:03:09 - Greg Sharp

status: changed from “Accepted” to “Test”

2013-07-02, 15:17:33 - Csaba Pinter

Thanks for the fix, Greg! I suggest we wait for Raj’s report on how it works and then close it if there are no problems.

2013-08-20, 21:45:20 - Csaba Pinter

status: changed from “Test” to “Fixed”

#298 Change importing to accommodate DICOM import changes in CTK

2013-05-28, 18:13:57 - Csaba Pinter

Moving tickets to 1.0, as 0.11 will be released before the NA-MIC week and the tasks in question will be tackled at the project week.

2013-05-28, 18:13:57 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.11.0 (2013-05)” to “SlicerRt 1.0 (2013-06)”

2013-11-01, 18:00:10 - Csaba Pinter

milestone_id: changed from “SlicerRt 1.0” to “SlicerRt 0.13”

2013-12-24, 05:00:19 - Csaba Pinter

status: changed from “New” to “Test”

2013-12-30, 01:00:51 - Csaba Pinter

Importing and related tests work

2013-12-30, 01:00:51 - Csaba Pinter

status: changed from “Test” to “Fixed”

#299 Make sure the DICOM fields appear the same way for the new DICOM browser

See tickets #25 and #215

CTK branch containing partial implementation for DICOM display tables: https://github.com/cpinter/CTK/tree/276-dicom-database-display-tables

2013-05-28, 18:13:57 - Csaba Pinter

Moving tickets to 1.0, as 0.11 will be released before the NA-MIC week and the tasks in question will be tackled at the project week.

2013-05-28, 18:13:57 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.11.0 (2013-05)” to “SlicerRt 1.0 (2013-06)”

2013-11-01, 18:00:10 - Csaba Pinter

milestone_id: changed from “SlicerRt 1.0” to “SlicerRt 0.13”

2013-12-30, 00:30:04 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.13” to “SlicerRt 0.14”

2014-04-25, 19:58:29 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.14” to “SlicerRt 0.15”

2014-07-13, 05:57:57 - Csaba Pinter

description: changed from “See tickets #25 and #215” to “See tickets #25 and #215

C…”

2014-11-07, 15:11:54 - Csaba Pinter

Moved to SlicerRT 0.16

2014-11-07, 15:11:54 - Csaba Pinter

tag: changed from “” to “”

2014-11-07, 15:11:54 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.15” to “SlicerRt 0.16”

2015-01-14, 17:17:27 - Csaba Pinter

Same as #535, closing and invalid

2015-01-14, 17:17:27 - Csaba Pinter

status: changed from “New” to “Invalid”

#300 Contour node is not pulled under the same transform as the representations

The MRML node reference changes introduced this bug in SlicerRT

A Mantis issue has been added: http://www.na-mic.org/Bug/view.php?id=3133

2013-06-07, 23:47:56 - Csaba Pinter

Fixed in Slicer revision 22088

2013-06-07, 23:47:56 - Csaba Pinter

status: changed from “New” to “Fixed”

#301 Add fractional labelmap support in segmentations

PolyDataToLabelmap

This way the resampled volume will not be jagged. Then do a threshold just as now.

2013-10-15, 20:20:41 - Csaba Pinter

assigned_to_id: changed from null to “j.andrea”

2014-02-19, 20:23:21 - Csaba Pinter

Could be achieved by non-binary line drawing on the raster image (e.g. in vtkPolyDataToImageStencil.cxx::501)

2014-04-02, 15:35:59 - Csaba Pinter

assigned_to_id: changed from “j.andrea” to null

2014-04-02, 15:48:07 - Csaba Pinter

The tolerance threshold investigated in #521 has a similar effect to this fuzzy approach. It cannot be applied for inter-plane interpolation, and the in-plane ‘fuzzification’ does not seem to be worth the effort, so I close this as invalid.

2014-04-02, 15:48:07 - Csaba Pinter

status: changed from “New” to “Invalid”

2014-04-02, 15:47:50 - Csaba Pinter

milestone_id: changed from “Future” to “SlicerRt 0.14”

2014-04-28, 17:26:52 - Csaba Pinter

Could be worth trying to use this existing implementation: http://www.vtkjournal.org/browse/publication/792

2014-04-28, 17:26:52 - Csaba Pinter

status: changed from “Invalid” to “New”

2014-04-28, 17:26:40 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.14” to “Future”

2014-12-22, 19:15:56 - Csaba Pinter

This will be implemented as the fractional labelmap support in Segmentations

2015-09-10, 14:55:11 - Greg Sharp

milestone_id: changed from “Future” to “SlicerRt 0.18”

2015-09-10, 15:01:38 - Greg Sharp

milestone_id: changed from “SlicerRt 0.18” to “Future”

2015-11-04, 23:26:49 - Csaba Pinter

summary: changed from “Improve PolyDataToLabelmap algorithm to work in a ‘fuzzy’ way” to “Add fractional labelmap support in segmentations”

2015-11-04, 23:26:49 - Csaba Pinter

milestone_id: changed from “Future” to “SlicerRt 0.18”

2015-11-04, 23:26:49 - Csaba Pinter

assigned_to_id: changed from null to “Sunderlandkyl”

2016-01-12, 17:12:05 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.18” to “Student projects”

2016-04-15, 20:48:23 - Csaba Pinter

status: changed from “New” to “Accepted”

2016-04-19, 20:21:23 - Csaba Pinter

Re #301: Add option in vtkClosedSurfaceToBinaryLabelmapConversionRule to specify the exact output image geometry instead of automatically calculating it based on the reference image geometry conversion parameter; Add another SerializeImageGeometry function that takes a matrix and an extent (instead of an image providing only the extent) Commit: r:2784|slicerrt:2784

2016-08-12, 17:52:25 - Kyle Sunderland

Re #301: Create branch for fractional labelmap integration. Commit: r:3053|slicerrt:3053

2016-08-12, 18:00:07 - Kyle Sunderland

Re #301: Implemented fractional labelmap representation and visualization. Also implemented tests for closed surface to fractional labelmap conversion, as well as planar contour to closed surface conversion. Commit: r:3054|slicerrt:3054

2016-08-15, 18:07:41 - Kyle Sunderland

Re #301: Add fractional labelmap to closed surface conversion rule. Move the displayable manager instantiation to qSlicerDicomRtImportExportModule.cxx from vtkSlicerDicomRtImportExportModuleLogic.cxx. Remove unnecessary TODO comments and extra spaces. Commit: r:3055|slicerrt:3055

2016-08-16, 19:01:12 - Kyle Sunderland

Re #301: Remove the fractional displayable manager. Minor style changes. Commit: r:3058|slicerrt:3058

2016-08-17, 16:49:40 - Kyle Sunderland

Re #301: Allow fractional labelmap display information to be passed as field data. Current fields are: ‘Min value’, ‘Max value’, ‘Interpolation mode’, and ‘Outline visible’. Commit: r:3059|slicerrt:3059

2016-08-17, 17:02:06 - Andras Lasso

Why do you have ‘outline visible’? For fractional labelmaps the outline is the isosurface created at the threshold value (threshold value is 0 by default but we may make it adjustable by using another field data). The outline would be nicer than with binary labelmap but if it’s not nice enough then maybe we could just add a hint that by default outline should be hidden.

I would suggest to put min/max values in one field, as it does not make sense to define only one and we also less fields is better. Making them double instead of string would allow us to get rid of a few conversions.

So, overall I would recommend these: ScalarRange - vtkDoubleArray [2] = { minimumValue, maximumValue } ImageInterpolationMethod - vtkStringArray [1], potential values ‘NEAREST_NEIGHBOR’, ‘LINEAR’, ‘CUBIC’, … (or ‘NearestNeighbor’, ‘Linear’, ‘Cubic’)

2016-08-17, 17:20:54 - Kyle Sunderland

@lassoan In my previous implementation, I disabled the outline since the fractional outline isn’t correctly rendered (it seems to be rendering many outlines around every value between 1-216). I’ll change it so that the outline is only created at the threshold value.

So this means that the fields will be: ‘ScalarRange’ - vtkDoubleArray [2] = { minimumValue, maximumValue } ‘ThresholdValue’ - vtkDoubleArray [1] = {thresholdValue} ‘ImageInterpolationMethod’ - vtkIntArray [1] = VTK_CUBIC_INTERPOLATION, VTK_LINEAR_INTERPOLATION, VTK_NEAREST_INTERPOLATION

Does this seem acceptable?

2016-08-17, 17:34:27 - Andras Lasso

Yes! Using VTK_…_INTERPOLATION constants is a very good idea. As these constants are called ‘InterpolationType’ in VTK, let’s call the field ‘InterpolationType’, too.

‘ScalarRange’ - vtkDoubleArray [2] = { minimumValue, maximumValue } ‘ThresholdValue’ - vtkDoubleArray [1] = {thresholdValue} ‘InterpolationType’ - vtkIntArray [1] = VTK_CUBIC_INTERPOLATION, VTK_LINEAR_INTERPOLATION, VTK_NEAREST_INTERPOLATION

2016-08-17, 18:01:42 - Kyle Sunderland

Re #301: Change fields to: ‘ScalarRange’ (vtkDoubleArray[2]), ‘ThresholdValue’ (vtkDoubleArray[1]), ‘InterpolationType’ (vtkIntArray[1]). Commit: r:3060|slicerrt:3060

2016-08-18, 18:29:24 - Kyle Sunderland

Re #301: Change fractional labelmap display field names to be constants from vtkMRMLSegmentationsDisplayableManager2D. Commit: r:3061|slicerrt:3061

2016-08-24, 18:41:02 - Kyle Sunderland

Re #301: Modify vtkPolyDataToImageStencil as vtkFractionalPolyDataToImageStencil to increase conversion speed. The speed of the updated algorithm is as fast or faster than the multithreaded method. The improvement is a result of caching clipped polydata slices at each z value, which is preserved between each closed surface to binary labelmap conversion step. Commit: r:3068|slicerrt:3068

2016-08-26, 20:09:17 - Kyle Sunderland

Re #301: Add padding to fractional labelmap extent. Rename the ‘magnification’ parameter in fractional labelmap to closed surface conversion to ‘fractional labelmap oversampling factor’ Commit: r:3071|slicerrt:3071

2016-08-26, 20:16:11 - Kyle Sunderland

Re #301: Merge changes from trunk into fractional labelmap branch. Commit: r:3072|slicerrt:3072

2016-08-26, 22:50:28 - Kyle Sunderland

Re #301: Fix fractional labelmap conversion test. Commit: r:3073|slicerrt:3073

2016-08-27, 01:11:39 - Kyle Sunderland

Re #301: Integrate fractional labelmap into trunk. Commit: r:3074|slicerrt:3074

2016-08-27, 01:35:09 - Andras Lasso

@Sunderlandkyl I’ve just realized that for 2D fill probably we should use the thresholding filter output. That way the displayed contour would be filled - the same way as it is done for binary labelmaps. The segment would have clear, smooth, but non-blocky boundaries. What do you think?

2016-08-27, 01:51:42 - Kyle Sunderland

@lassoan That sounds like an good idea. I’ll implement it and see how it looks.

2016-08-27, 02:00:12 - Csaba Pinter

I also think it’s a good idea. We could add an option to switch between the two. And even if the slice views show thresholded fill, the Data Probe can show the fractional values.

2016-08-27, 18:10:42 - Kyle Sunderland

Re #301 #115: Fix errors caused by includes in vtkFractionalImageAccumulate. Commit: r:3075|slicerrt:3075

2016-08-29, 15:47:56 - Kyle Sunderland

Re #301: Move fractional labelmap constants to SlicerRtCommon.h. Remove unnecessary include statements. Commit: r:3076|slicerrt:3076

2016-09-12, 22:08:35 - Kyle Sunderland

Re #301: Migrate polydata to fractional labelmap conversion logic from vtkClosedSurfaceToFractionalLabelmapConversionRule to vtkPolyDataToFractionalLabelMap. vtkPolyDataToFractionalLabelMap is a renamed version of vtkFractionalPolyDataToImageStencil that returns a vtkOrientedImageData rather than a vtkImageStencilData. Commit: r:3086|slicerrt:3086

2016-09-22, 17:42:20 - Kyle Sunderland

Re #301: Improve speed of fractional labelmap conversion by modifying the PolyDataCutter function to utilize a cell locator, rather than iterating over all of the triangles in the surface. Execution time decreased from ~17s to ~13s for RANDO^ENT. Commit: r:3089|slicerrt:3089

2016-09-22, 17:55:55 - Csaba Pinter

Nice!

2016-09-27, 20:30:52 - Kyle Sunderland

Re #301: Miscellaneous changes to fractional labelmap conversion that reduces the execution time from ~12s to ~9.7s for RANDO^ENT. Commit: r:3091|slicerrt:3091

2016-12-05, 19:05:44 - Kyle Sunderland

Re #301: Remove the fractional labelmap conversion rules from SlicerRT, since they’ve been integrated into Slicer. Commit: r:3107|slicerrt:3107

2017-07-19, 18:57:15 - Kyle Sunderland

Note: multi-threading the current approach may still be possible. It would require mutex locks in at least two areas:

2017-08-07, 14:47:43 - Csaba Pinter

Re #301: Moved UseFractionalLabelmap option from DVH module logic to parameter set node, as algorithm parameters should all be in the parameter set node. Commit: r:3197|slicerrt:3197

#302 Add download instructions to the SlicerRT webpage

2013-05-29, 17:34:18 - Csaba Pinter

(In url:https://github.com/SlicerRt/slicerrt.github.com/commit/380bd259b41eaa5a55e6afff1d0ce07733f6a6af|slicerrt:380bd259b41eaa5a55e6afff1d0ce07733f6a6af) Re #302: Download page added; Funding information moved to the Contributors page

Branch: master

2013-05-29, 17:37:45 - Csaba Pinter

(In url:https://github.com/SlicerRt/slicerrt.github.com/commit/50ca7f37937307f23e26970ab9dc5acd4f3d8174|slicerrt:50ca7f37937307f23e26970ab9dc5acd4f3d8174) Re #302: Content layout fixes

Branch: master

2013-05-29, 17:41:16 - Csaba Pinter

(In url:https://github.com/SlicerRt/slicerrt.github.com/commit/a657b9112428ac3a9a074e9608378bc887791a9f|slicerrt:a657b9112428ac3a9a074e9608378bc887791a9f) Re #302: Content layout fixes

Branch: master

2013-05-29, 17:47:58 - Csaba Pinter

(In url:https://github.com/SlicerRt/slicerrt.github.com/commit/62c25c976255d44f573770ce1d97c6df60067cbf|slicerrt:62c25c976255d44f573770ce1d97c6df60067cbf) Re #302: Content layout fixes

Branch: master

2013-05-29, 17:55:10 - Csaba Pinter

(In url:https://github.com/SlicerRt/slicerrt.github.com/commit/6e2dc78f7f333771f4af1456c8ea3a0b186b7071|slicerrt:6e2dc78f7f333771f4af1456c8ea3a0b186b7071) Re #302: Favicon added

Branch: master

2013-05-29, 18:44:51 - Csaba Pinter

(In url:https://github.com/SlicerRt/slicerrt.github.com/commit/2aaa63976944d4eba4d8cfdc9b72cb7ddb667111|slicerrt:2aaa63976944d4eba4d8cfdc9b72cb7ddb667111) Re #302: Fixed links

Branch: master

2013-05-29, 18:44:51 - Csaba Pinter

(In url:https://github.com/SlicerRt/slicerrt.github.com/commit/c2f5c6d671a0df7569b0d6408af943d9219ace4b|slicerrt:c2f5c6d671a0df7569b0d6408af943d9219ace4b) Re #302: Content layout fixes

Branch: master

2013-05-29, 18:45:52 - Csaba Pinter

(In url:https://github.com/SlicerRt/slicerrt.github.com/commit/d14f612a1c1bfe91294e5b07145382e0b4ea5022|slicerrt:d14f612a1c1bfe91294e5b07145382e0b4ea5022) Re #302: Content layout fixes

Branch: master

2013-05-29, 18:47:32 - Csaba Pinter

(In url:https://github.com/SlicerRt/slicerrt.github.com/commit/d4d53d1a1ad230a515332cfe15c118cff8ed9970|slicerrt:d4d53d1a1ad230a515332cfe15c118cff8ed9970) Re #302: Updated favicon

Branch: master

2013-05-29, 18:49:39 - Csaba Pinter

(In url:https://github.com/SlicerRt/slicerrt.github.com/commit/cc41400741912234c090d281c612f46ef5baecf3|slicerrt:cc41400741912234c090d281c612f46ef5baecf3) Re #302: Added favicon to images

Branch: master

2013-05-29, 18:57:18 - Csaba Pinter

status: changed from “New” to “Fixed”

#303 Create ITK<->MRMLVolumeNode conversion and resampling utility functions in SlicerRtCommon

Also make SlicerRtCommon::ConvertVolumeNodeToItkImage handle any scalar types on both sides

2013-05-29, 18:30:24 - pieper

If you have general utilities like this it might make sense to put them in slicer itself.

2013-05-29, 18:35:52 - Csaba Pinter

description: changed from “” to “Also make SlicerRtCommon::C…”

2013-06-10, 16:02:23 - Csaba Pinter

Address issue mentioned in https://www.assembla.com/spaces/slicerrt/messages/3044163

2013-07-03, 17:32:40 - Csaba Pinter

assigned_to_id: changed from “pinter” to “wangk”

2013-07-05, 16:08:23 - wangk

status: changed from “New” to “Accepted”

2013-07-05, 16:10:37 - wangk

(In r:977|slicerrt:977) Re #303: Add vtkVolumesOrientedResampleUtility class. Modified CMakeLists.txt to enable python wrapping. Checked in python interactor that it works.

2013-07-05, 16:32:33 - wangk

I have only added the vtk image resample code. you can add the itk image resample code later. Plus I have not added the code to allow transform applied to reference volume node. I am wondering if that is necessary.

2013-07-05, 17:13:29 - Csaba Pinter

I do not understand the second part ‘allow transform applied to reference volume node’

2013-08-15, 14:58:36 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.11.0 (2013-07)” to “SlicerRt 1.0 (2013-09)”

2013-09-04, 19:17:10 - Csaba Pinter

summary: changed from “Make ITK->MRMLVolumeNode conversion a utility function in SlicerRtCommon” to “Create ITK<->MRMLVolumeNode conversion and resampling utility functions in SlicerRtCommon”

2013-09-05, 14:36:21 - Csaba Pinter

working_hours: changed from “0.0” to “2.0”

2013-09-05, 14:36:21 - Csaba Pinter

total_working_hours: changed from “0.0” to “2.0”

2013-09-05, 14:38:36 - Csaba Pinter

milestone_id: changed from “SlicerRt 1.0” to “SlicerRt 0.12”

2013-09-05, 18:58:00 - wangk

(In r:1138|slicerrt:1138) Re #303: Code clean up.

2013-09-05, 19:10:05 - wangk

(In r:1141|slicerrt:1141) Re #303: Changed contour morphology logic to use the new resample utility function.

2013-09-09, 16:48:40 - wangk

(In r:1146|slicerrt:1146) Re #303: coding style fixes.

2013-09-26, 17:11:10 - Csaba Pinter

@wangk Is there something with this ticket that you need to do? If not, I assign it to me to indicate that I have to create the MRML->ITK conversion utilities

2013-09-26, 17:29:36 - wangk

@pinter I think the resampling utility is done so you can assign it to you.

2013-09-26, 20:39:05 - Csaba Pinter

assigned_to_id: changed from “wangk” to “pinter”

2013-09-26, 20:39:05 - Csaba Pinter

status: changed from “Accepted” to “New”

2013-11-01, 18:00:10 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.12” to “SlicerRt 0.13”

2014-01-08, 05:43:42 - Greg Sharp

(In r:1382|slicerrt:1382) Re #303 Add function to convert MRML Volume Node to Plm_image for any image type

2014-01-08, 23:00:24 - Csaba Pinter

(In r:1389|slicerrt:1389) Re #303: PlmCommon is now dynamic linked

2014-01-09, 01:29:26 - Csaba Pinter

(In r:1392|slicerrt:1392) Re #303 Test #496: PlmCommon dynamic link fixed; SlicerRtCommon and PlmCommon dynamic libraries installed to the right folder

2014-01-15, 22:53:48 - Csaba Pinter

Guys,

I am thinking about what to do with this ticket, and I think I’ll commit the small clean-up I made. here’s why:

We need

  1. MRML to ITK conversion - done in SlicerRtCommon
  2. MRML to Plm conversion - done in PlmCommon
  3. ITK to MRML conversion - no utility function for it
  4. Resampling utility for MRML - done in vtkVolumesOrientedResampleUtility
  5. ITK resampling utility - done in Plastimatch

The missing item is the ITK to MRML conversion. The problem with that is several modules do the same conversion internally (DoseComparison, ContourComparison, ExternalBeamPlanning, etc.), and they need different scalar types, which I don’t know how to get from a templated pointer. Probably this is why Greg created the Plm_image class. I see two options here:

  1. Don’t create this utility (the conversion is about 10 lines of code anyway)
  2. Create a Plm -> MRML conversion utility

Thoughts?

2014-01-15, 22:54:47 - Csaba Pinter

(In r:1420|slicerrt:1420) Re #303: Rename CreatePlmImage method to match the naming of the existing conversion functions

2014-01-16, 13:56:22 - wangk

from what I understand, MRML to Plm conversion is just a quick way to get things working before we can do MRML to ITK conversion. although it is only 10 lines of code, I still think it is good idea and practice to have a utility function. Plm -> MRML conversion utility function option would be a bit sub-optimal as it means the code would be dependent on Plm library. I think we can probably push the ticket to 0.14 milestone to give us some more time to tackle the problem.

2014-01-16, 14:47:11 - Greg Sharp

The MRML to Plm has advantage over MRML to ITK, because Plm_image handles different types (short, float, etc.). Therefore, when using plastimatch, we can use this method.

If ITK is only used for calling plastimatch functions, maybe we don’t need MRML to ITK conversion.

Regarding Plm -> MRML, I agree this is valuable.

This should be agenda item on next meeting.

2014-01-16, 16:22:03 - Csaba Pinter

Thanks for the quick answers!

I gave it some more thought last night and I came to the same conclusion as Greg. I think I’ll implement a basic Plm->MRML utility function in two steps:

  1. ITK->vtkImageData utility in this ticket (basically move it from external beam logic to a SlicerRtCommon and using it in the all the modules)
  2. Create another ticket for the Plm->MRML conversion (the extra work is handling the volume geometry, for which I don’t want to spend time before the release) How does this sound?

@wangk: We already have a good MRML to ITK. ITK to MRML would be nice, but we (in SlicerRT) don’t need that because we have Plastimatch (and I don’t see parting from Plastimatch in the foreseeable future) that conceals the template complexity from us.

It would be nice to migrate these conversion utilities to Slicer, but consideing the difficulty of implementing an elegant ITK to MRML converter, and the sheer volume of the other integration work to the Slicer core I’m about to do, I would postpone this for now.

2014-01-16, 16:22:03 - Csaba Pinter

status: changed from “New” to “Accepted”

2014-01-16, 16:40:17 - wangk

@pinter, your two step approach sounds good to me.

for now we use plastimatch exclusively, so MRML <-> Plm conversion would be enough for us at this point.. A more generic MRML <-> ITK would be nice in the future which can be migrated into slicer. I understand it will take a while to make it happen though.

2014-01-16, 16:41:17 - Csaba Pinter

Thanks, agreed!

2014-01-16, 17:26:01 - Greg Sharp

Yes, I also agree. Thanks!

2014-01-16, 17:43:06 - Csaba Pinter

(In r:1422|slicerrt:1422) Re #303: Created ConvertItkImageToVtkImageData template function in SlicerRtCommon

2014-01-16, 17:45:06 - Csaba Pinter

@gregsharp I created the conversion function (see rev 1422), and all the tests pass. However, ExternalBeamPlanning and PlastimatchPyLogic don’t have automatic tests, so I cannot guarantee they work the same way. You can either test them, or hope for the best, or teach me about the usage of those modules at the next hangout so that I can try them until tests are created for those modules. Thanks!

2014-01-16, 17:45:06 - Csaba Pinter

status: changed from “Accepted” to “Test”

2014-01-16, 23:29:57 - Csaba Pinter

working_hours: changed from “2.0” to “0.0”

2014-01-16, 23:29:57 - Csaba Pinter

status: changed from “Test” to “Fixed”

2014-01-16, 23:29:57 - Csaba Pinter

total_working_hours: changed from “2.0” to “0.0”

#304 Contour representations are not observed after loading a scene

2013-06-04, 23:05:10 - Csaba Pinter

(In r:869|slicerrt:869) Fixed #304: Contour representations are set properly when loading a scene (conversion of imported contours was not possible because of this bug)

2013-06-04, 23:05:10 - Csaba Pinter

status: changed from “New” to “Fixed”

#305 Configuring inner with Plastimatch fails with certain CMake versions

I got this error with 2.8.10.2 when configuring SlicerRT: ‘CMake Error: An attempt was made to access a variable: PLASTIMATCH_DIR that has not been defined. This variable is created by the FIND_PACKAGE command. CMake version 1.6 always converted the variable name to upper-case, but this behavior is no longer the case. To fix this you might need to set the cache value of CMAKE_BACKWARDS_COMPATIBILITY to 1.6 or less. If you are writing a CMake listfile, you should change the variable reference to use the case of the argument to FIND_PACKAGE’

Apparently this error doesn’t come up using 2.8.11, not did I see it before. What is strange is that apparently no relevant code has been changed, and I didn’t update my CMake for a while, and the builds have been fine until today. Maybe my CMake was somehow corrupted.

So fixing the issue is not absolutely necessary, but reading this message, it looks that using the variable name Plastimatch_DIR everywhere would be more consistent.

2013-06-06, 15:47:48 - Csaba Pinter

(In r:871|slicerrt:871) Fixed #305: Renaming instances of PLASTIMATCH_DIR variables to Plastimatch_DIR to stick to newer CMake conventions (upper case variable has only worked because of CMake ensured backwards compatibility)

2013-06-06, 15:47:48 - Csaba Pinter

status: changed from “New” to “Fixed”

#306 Deformation Field Visualizer: Arrow glyph source options cannot be edited

Tip and base radius unable to be modified.

2013-06-06, 21:07:55 - Franklin King

(In r:872|slicerrt:872) Fixed #306: bug preventing modification of arrow source options Disabled ‘Add Displacement Array’ option from Block visualization mode

2013-06-06, 21:07:55 - Franklin King

status: changed from “New” to “Fixed”

2013-06-06, 21:08:23 - Franklin King

milestone_id: changed from null to “SlicerRt 0.11.0 (2013-05)”

#307 Rename ‘visualize’ button to ‘apply’ in Deformation Field Visualizer module

2013-06-09, 02:08:11 - Franklin King

status: changed from “New” to “Accepted”

2013-06-09, 02:09:47 - Franklin King

(In r:877|slicerrt:877) fixed #307: Renamed ‘Visualize’ button to ‘Apply’; fixed #309: Default colors are now all opaque

2013-06-09, 02:09:47 - Franklin King

status: changed from “Accepted” to “Fixed”

#308 Deformation Field Visualizer should create contours as separate models

Separate contour models should be within a hierarchy allowing for the ability to hide and show individual surfaces.

2013-07-02, 14:40:09 - Csaba Pinter

milestone_id: changed from null to “SlicerRt 0.11.0 (2013-05)”

2013-08-06, 21:00:01 - Franklin King

milestone_id: changed from “SlicerRt 0.11.0 (2013-07)” to “TransformVisualizer 0.1.0”

2013-12-15, 13:59:54 - Andras Lasso

current behavior (one model for all contours) is convenient, no need to generate several models

2013-12-15, 13:59:54 - Andras Lasso

status: changed from “New” to “Invalid”

#309 Deformation Field Visualizer colors should by default all be opaque

Currently the default color representing negligible deformation is transparent. The transparency causes issues when viewed from certain angles and doesn’t add much to the visualization.

2013-06-09, 02:08:08 - Franklin King

status: changed from “New” to “Accepted”

2013-06-09, 02:09:47 - Franklin King

(In r:877|slicerrt:877) fixed #307: Renamed ‘Visualize’ button to ‘Apply’; fixed #309: Default colors are now all opaque

2013-06-09, 02:09:47 - Franklin King

status: changed from “Accepted” to “Fixed”

#310 Patient Hierarchy crash (linux)

Steps to reproduce:

(1) Open Slicer (2) Select PatientHierarchy

No messages in the console, just this:

Show module (name): ‘Welcome’ Show module (name): ‘PatientHierarchy’ error: [/home/gsharp/build/slicer-4/Slicer-build/Slicer-build/bin/./SlicerApp-real] exit abnormally - Report the problem.

Reproduced on a fresh checkout and fresh build of Slicer + SlicerRT @ Jun 9, 2013.

Debian testing (gcc 4.7.4). Did not test on windows.

2013-06-09, 20:09:09 - Csaba Pinter

I tried to reproduce on the linux I have (Ubuntu 12.04 64bit) when you first reported, with no luck. I’m updating and building, and I’ll try again.

2013-06-09, 20:28:08 - Greg Sharp

The problem might not be localized to PatientHierarchy. For example:

(1) rm -rf ~/.config/NA-MIC // reset module path (2) Open Slicer (3) Choose ‘Close scene’ from menu (4) Repeat (3) a few times (5) Exit normally

Everything seems fine.

(1) Set module path to SlicerRT paths (cli-modules, qt-loadable, qt-scripted) (2) Restart Slicer (3) Choose ‘Close scene’ from menu // Maybe do it 2 or 3 times (4) Slicer crashes

2013-06-09, 20:29:44 - Greg Sharp

I think if I disable modules selectively, I can find the one which causes the crash. Is there an easy way to do this?

2013-06-09, 20:36:00 - Csaba Pinter

Yes, you can uncheck modules in Edit Application Settings / Modules / Modules.

I’ll try this Close scene crash, but it sounds like a separate issue.

2013-06-09, 20:51:59 - Greg Sharp

I think it’s related. If I do this:

1
2
3
4
cd SlicerRT-build/inner-build/lib/Slicer-4.2/qt-loadable-modules
rm -rf *PatientH* Python/*PatientH* *Dose* Python/*Dose*

then the ‘Close scene’ crash goes away.

Thanks for the hint on disabling modules. I will try that next.

This behavior is consistent with a memory access error during module startup.

2013-06-09, 22:28:58 - Csaba Pinter

Thanks for investigating! Apparently the close scene crash right after startup is reproducible on Windows, so I can debug that tomorrow.

2013-06-09, 22:28:58 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2013-06-09, 22:28:58 - Csaba Pinter

status: changed from “New” to “Accepted”

2013-06-09, 22:29:04 - Csaba Pinter

milestone_id: changed from null to “SlicerRt 0.11.0 (2013-05)”

2013-06-09, 23:07:51 - Greg Sharp

I think it could be a slicer bug. With some effort I could find this:

(1) rm -rf ~/.config/NA-MIC // reset module path (2) Open Slicer (3) Choose ‘Close scene’ from menu a few times (4) Choose ‘Application settings’ then cancel (5) Repeat (3) and (4) until Slicer crashes.

2013-06-09, 23:07:51 - Greg Sharp

assigned_to_id: changed from “pinter” to null

2013-06-09, 23:07:51 - Greg Sharp

status: changed from “Accepted” to “New”

2013-06-09, 23:13:10 - Greg Sharp

I got a stack trace and posted to Slicer Mantis.

http://www.na-mic.org/Bug/view.php?id=3152

2013-06-11, 19:42:07 - Csaba Pinter

I tested on Ubuntu 12.04 64 bit in debug mode and there is no crash, not when entering Patient Hierarchy without data, neither when Closing scene 10 times

2013-06-11, 19:43:42 - Csaba Pinter

Apparently the Units module caused the issue. I’m closing this one as invalid.

2013-06-11, 19:43:42 - Csaba Pinter

status: changed from “New” to “Invalid”

2013-06-11, 19:45:37 - Csaba Pinter

I realized that I used revision 22091 on Linux when the Units module was still enabled. Strange. Anyway, I’m updating on Windows and test without the Units module disabled.

2013-06-17, 14:25:59 - Csaba Pinter

I did a clean build of Slicer rev22100 and SlicerRT rev900 and there is a crash when loading RT data and switching to Patient Hierarchy. It also crashes when switching to the PH module with no data loaded

2013-06-17, 14:25:59 - Csaba Pinter

status: changed from “Invalid” to “New”

2013-07-09, 18:01:00 - Csaba Pinter

image:cdcprA6mer4PbVacwqjQYw

2013-07-09, 18:01:00 - Csaba Pinter

Attachment added: “PatientHierarchyCrashGdb.png”

2013-07-09, 18:01:59 - Csaba Pinter

@gregsharp I tried to debug the crash on Linux, and got no call stack. I just opened Slicer and switched to the Patient Hierarchy module. Do you have any idea how to investigate this?

2013-07-09, 18:02:03 - Csaba Pinter

status: changed from “New” to “Accepted”

2013-07-11, 01:53:36 - Csaba Pinter

priority: changed from “Normal (3)” to “High (2)”

2013-08-12, 18:26:14 - Greg Sharp

(Sorry for the bad formatting, I’m pasting from linux into windows, and there is some end-of-line corruption.)

Program received signal SIGSEGV, Segmentation fault. 0x00007f8a02067803 in std::string::size() const () from /usr/lib/libstdc++.so.6 (gdb) bt #0 0x00007f8a02067803 in std::string::size() const () from /usr/lib/libstdc++.
so.6 #1 0x00007f89ba773efe in qMRMLScenePatientHierarchyModel::updateItemDataFromNo
de (this=0x49d6d80, item=0x4a35d10, node=0x3c933b0, column=0) at /PHShome/gcs6/
build/slicer-4/SlicerRT/PatientHierarchy/Widgets/qMRMLScenePatientHierarchyMode
l.cxx:194 #2 0x00007f8a2607361a in qMRMLSceneModel::updateItemFromNode (this=0x49d6d80,
item=0x4a35d10, node=0x3c933b0, column=0) at /PHShome/gcs6/build/slicer-4/Slice
r/Libs/MRML/Widgets/qMRMLSceneModel.cxx:821 #3 0x00007f8a260731d4 in qMRMLSceneModel::insertNode (this=0x49d6d80, node=0x3
c933b0, parent=0x49bd460, row=100) at /PHShome/gcs6/build/slicer-4/Slicer/Libs/
MRML/Widgets/qMRMLSceneModel.cxx:779 #4 0x00007f8a2607308f in qMRMLSceneModel::insertNode (this=0x49d6d80, node=0x3
c933b0) at /PHShome/gcs6/build/slicer-4/Slicer/Libs/MRML/Widgets/qMRMLSceneMode
l.cxx:764 #5 0x00007f8a26072d0f in qMRMLSceneModel::populateScene (this=0x49d6d80) at /P
HShome/gcs6/build/slicer-4/Slicer/Libs/MRML/Widgets/qMRMLSceneModel.cxx:728 #6 0x00007f8a26072bf3 in qMRMLSceneModel::updateScene (this=0x49d6d80) at /PHS
home/gcs6/build/slicer-4/Slicer/Libs/MRML/Widgets/qMRMLSceneModel.cxx:713 #7 0x00007f8a26070ecd in qMRMLSceneModel::setMRMLScene (this=0x49d6d80, scene=
0x15d84d0) at /PHShome/gcs6/build/slicer-4/Slicer/Libs/MRML/Widgets/qMRMLSceneM
odel.cxx:347 #8 0x00007f8a260bd603 in qMRMLTreeView::setMRMLScene (this=0x383c800, scene=0x
15d84d0) at /PHShome/gcs6/build/slicer-4/Slicer/Libs/MRML/Widgets/qMRMLTreeView
.cxx:315 #9 0x00007f8a260e7cd2 in qMRMLTreeView::qt_metacall (this=0x383c800, _c=QMetaO
bject::InvokeMetaMethod, _id=5, _a=0x7fffa48baa90) at /PHShome/gcs6/build/slice
r-4/Slicer-debug/Slicer-build/Libs/MRML/Widgets/moc_qMRMLTreeView.cxx:137 #10 0x00007f89ba77d5fa in qMRMLPatientHierarchyTreeView::qt_metacall (this=0x38
3c800, _c=QMetaObject::InvokeMetaMethod, _id=93, _a=0x7fffa48baa90) at /PHShome
/gcs6/build/slicer-4/SlicerRT-debug/inner-build/PatientHierarchy/Widgets/moc_qM
RMLPatientHierarchyTreeView.cxx:68 #11 0x00007f8a1bc6df67 in QMetaObject::activate(QObject, QMetaObject const, i
nt, void) () from /PHShome/gcs6/build/install/qt-4.7.4/lib/libQtCore.so.4 #12 0x00007f8a2652d218 in qSlicerWidget::mrmlSceneChanged (this=0x49dab30, _t1=
0x15d84d0) at /PHShome/gcs6/build/slicer-4/Slicer-debug/Slicer-build/Base/QTGUI
/moc_qSlicerWidget.cxx:91 #13 0x00007f8a26505e9a in qSlicerWidget::setMRMLScene (this=0x49dab30, scene=0x
15d84d0) at /PHShome/gcs6/build/slicer-4/Slicer/Base/QTGUI/qSlicerWidget.cxx:58 #14 0x00007f8a24ab4ba2 in qSlicerAbstractCoreModule::createNewWidgetRepresentat
ion (this=0x21487e0) at /PHShome/gcs6/build/slicer-4/Slicer/Base/QTCore/qSlicer
AbstractCoreModule.cxx:247 #15 0x00007f8a24ab49c6 in qSlicerAbstractCoreModule::widgetRepresentation (this
=0x21487e0) at /PHShome/gcs6/build/slicer-4/Slicer/Base/QTCore/qSlicerAbstractC
oreModule.cxx:217 #16 0x00007f8a264cf06f in qSlicerModulePanel::addModule (this=0x30d1570, module
=0x21487e0) at /PHShome/gcs6/build/slicer-4/Slicer/Base/QTGUI/qSlicerModulePane
l.cxx:137 #17 0x00007f8a264cefea in qSlicerModulePanel::setModule (this=0x30d1570, module
=0x21487e0) at /PHShome/gcs6/build/slicer-4/Slicer/Base/QTGUI/qSlicerModulePane
l.cxx:123 #18 0x00007f8a264cee9e in qSlicerModulePanel::setModule (this=0x30d1570, module
Name=…) at /PHShome/gcs6/build/slicer-4/Slicer/Base/QTGUI/qSlicerModulePanel.
cxx:100 #19 0x00007f8a2652a4b2 in qSlicerModulePanel::qt_metacall (this=0x30d1570, _c=Q
MetaObject::InvokeMetaMethod, _id=0, _a=0x7fffa48baf80) at /PHShome/gcs6/build/
slicer-4/Slicer-debug/Slicer-build/Base/QTGUI/moc_qSlicerModulePanel.cxx:73 #20 0x00007f8a1bc6df67 in QMetaObject::activate(QObject, QMetaObject const, i
nt, void
) () from /PHShome/gcs6/build/install/qt-4.7.4/lib/libQtCore.so.4 #21 0x00007f8a2652a85e in qSlicerModuleSelectorToolBar::moduleSelected (this=0x
310ac00, _t1=…) at /PHShome/gcs6/build/slicer-4/Slicer-debug/Slicer-build/Bas
e/QTGUI/moc_qSlicerModuleSelectorToolBar.cxx:106 #22 0x00007f8a264d3b4f in qSlicerModuleSelectorToolBar::actionSelected (this=0x
310ac00, action=0x3f7d800) at /PHShome/gcs6/build/slicer-4/Slicer/Base/QTGUI/qS
licerModuleSelectorToolBar.cxx:320 #23 0x00007f8a264d35b2 in qSlicerModuleSelectorToolBar::onModuleSelected (this=
0x310ac00, name=…) at /PHShome/gcs6/build/slicer-4/Slicer/Base/QTGUI/qSlicerM
oduleSelectorToolBar.cxx:254 #24 0x00007f8a2652a7c3 in qSlicerModuleSelectorToolBar::qt_metacall (this=0x310
ac00, _c=QMetaObject::InvokeMetaMethod, _id=6, _a=0x7fffa48bb240) at /PHShome/g
cs6/build/slicer-4/Slicer-debug/Slicer-build/Base/QTGUI/moc_qSlicerModuleSelect
orToolBar.cxx:93 #25 0x00007f8a1bc6df67 in QMetaObject::activate(QObject, QMetaObject const, i
nt, void) () from /PHShome/gcs6/build/install/qt-4.7.4/lib/libQtCore.so.4 #26 0x00007f8a2652a344 in qSlicerModulesMenu::currentModuleChanged (this=0x3117
840, _t1=…) at /PHShome/gcs6/build/slicer-4/Slicer-debug/Slicer-build/Base/QT
GUI/moc_qSlicerModulesMenu.cxx:146 #27 0x00007f8a264cd5b6 in qSlicerModulesMenu::actionSelected (this=0x3117840, a
ction=0x3f7d800) at /PHShome/gcs6/build/slicer-4/Slicer/Base/QTGUI/qSlicerModul
esMenu.cxx:484 #28 0x00007f8a264cd465 in qSlicerModulesMenu::onActionTriggered (this=0x3117840
) at /PHShome/gcs6/build/slicer-4/Slicer/Base/QTGUI/qSlicerModulesMenu.cxx:471 #29 0x00007f8a2652a143 in qSlicerModulesMenu::qt_metacall (this=0x3117840, _c=Q
MetaObject::InvokeMetaMethod, _id=5, _a=0x7fffa48bb480) at /PHShome/gcs6/build/
slicer-4/Slicer-debug/Slicer-build/Base/QTGUI/moc_qSlicerModulesMenu.cxx:102 #30 0x00007f8a1bc6df67 in QMetaObject::activate(QObject, QMetaObject const, i
nt, void
) () from /PHShome/gcs6/build/install/qt-4.7.4/lib/libQtCore.so.4 #31 0x00007f8a1c6d8d92 in QAction::triggered(bool) () from /PHShome/gcs6/build/
install/qt-4.7.4/lib/libQtGui.so.4 #32 0x00007f8a1c6daaef in QAction::activate(QAction::ActionEvent) () from /PHSh
ome/gcs6/build/install/qt-4.7.4/lib/libQtGui.so.4 #33 0x00007f8a1cb275e8 in ?? () from /PHShome/gcs6/build/install/qt-4.7.4/lib/l
ibQtGui.so.4 #34 0x00007f8a1cb2cefa in ?? () from /PHShome/gcs6/build/install/qt-4.7.4/lib/l
ibQtGui.so.4 #35 0x00007f8a1c730e0c in QWidget::event(QEvent) () from /PHShome/gcs6/build/i
nstall/qt-4.7.4/lib/libQtGui.so.4 #36 0x00007f8a1cb2f07b in QMenu::event(QEvent
) () from /PHShome/gcs6/build/ins
tall/qt-4.7.4/lib/libQtGui.so.4 #37 0x00007f8a1c6df92c in QApplicationPrivate::notify_helper(QObject, QEvent)
() from /PHShome/gcs6/build/install/qt-4.7.4/lib/libQtGui.so.4 #38 0x00007f8a1c6e6a2a in QApplication::notify(QObject, QEvent) () from /PHSh
ome/gcs6/build/install/qt-4.7.4/lib/libQtGui.so.4 #39 0x00007f8a264a12ea in qSlicerApplication::notify (this=0x7fffa48bcc90, rece
iver=0x22f5f10, event=0x7fffa48bc160) at /PHShome/gcs6/build/slicer-4/Slicer/Ba
se/QTGUI/qSlicerApplication.cxx:299 #40 0x00007f8a1bc56d3c in QCoreApplication::notifyInternal(QObject, QEvent) (
) from /PHShome/gcs6/build/install/qt-4.7.4/lib/libQtCore.so.4 #41 0x00007f8a1c6e40de in QApplicationPrivate::sendMouseEvent(QWidget, QMouseE
vent
, QWidget, QWidget, QWidget**, QPointer&, bool) () from /PHShom\\ e/gcs6/build/install/qt-4.7.4/lib/libQtGui.so.4 #42 0x00007f8a1c762c3d in ?? () from /PHShome/gcs6/build/install/qt-4.7.4/lib/l\\ ibQtGui.so.4 #43 0x00007f8a1c76142d in QApplication::x11ProcessEvent(_XEvent*) () from /PHSh\\ ome/gcs6/build/install/qt-4.7.4/lib/libQtGui.so.4 #44 0x00007f8a1c78ab72 in ?? () from /PHShome/gcs6/build/install/qt-4.7.4/lib/l\\ ibQtGui.so.4 #45 0x00007f8a00a2a6f2 in g_main_context_dispatch () from /lib/libglib-2.0.so.0 #46 0x00007f8a00a2e568 in ?? () from /lib/libglib-2.0.so.0 #47 0x00007f8a00a2e71c in g_main_context_iteration () from /lib/libglib-2.0.so.\\ 0 #48 0x00007f8a1bc81a43 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop\\ ::ProcessEventsFlag>) () from /PHShome/gcs6/build/install/qt-4.7.4/lib/libQtCor\\ e.so.4 #49 0x00007f8a1c78a4ee in ?? () from /PHShome/gcs6/build/install/qt-4.7.4/lib/l\\ ibQtGui.so.4 #50 0x00007f8a1bc55c72 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessE\\ ventsFlag>) () from /PHShome/gcs6/build/install/qt-4.7.4/lib/libQtCore.so.4 #51 0x00007f8a1bc5605c in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag\\

) () from /PHShome/gcs6/build/install/qt-4.7.4/lib/libQtCore.so.4 #52 0x00007f8a1bc59eab in QCoreApplication::exec() () from /PHShome/gcs6/build/
install/qt-4.7.4/lib/libQtCore.so.4 #53 0x00000000004064d9 in SlicerAppMain (argc=2, argv=0x7fffa48bcff8) at /PHSho
me/gcs6/build/slicer-4/Slicer/Applications/SlicerApp/Main.cxx:193 #54 0x00000000004065e0 in main (argc=2, argv=0x7fffa48bcff8) at /PHShome/gcs6/b
uild/slicer-4/Slicer/Applications/SlicerApp/Main.cxx:225

2013-08-12, 18:27:14 - Greg Sharp

I still keep the debugger open, in case you want me to check value of any variable. ;)

2013-08-12, 18:52:52 - Csaba Pinter

Thanks, Greg! Please wait 10 more minutes if you can, I quickly take a look at the stack.

We should match our debugging method at the Wednesday hangout to see if I did something wrong when debugging that caused my empty stack. I successfully debugged Slicer on linux before doing it the same way, but one can never know.

2013-08-12, 19:10:10 - Csaba Pinter

Could you please print these for me?

SlicerRtCommon::PATIENTHIERARCHY_NODE_NAME_POSTFIX nodeText.data

Thanks!

2013-08-12, 21:06:57 - Greg Sharp

(gdb) print SlicerRtCommon::PATIENTHIERARCHY_NODE_NAME_POSTFIX $1 = {static npos = 18446744073709551615, _M_dataplus = {<std::allocator>\\ = {<__gnu_cxx::new_allocator> = {}, }, _\\ M_p = 0x24479c8 '_PatientHierarchy'}}

(gdb) print nodeText.data cannot resolve overloaded method `data’: no arguments supplied

(gdb) print nodeText $2 = {static null = {}, static shared_null = {ref = {_q_value =\\ 13712}, alloc = 0, size = 0, data = 0x60af5a, clean = 0, simpletext = 0, right\\ toleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, static sh\\ ared_empty = {ref = {_q_value = 94}, alloc = 0, size = 0, data = 0x7f8a1bf87f1a\\ , clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, res\\ erved = 0, array = {0}}, d = 0x4a35f40, static codecForCStrings = 0x0}

2013-08-13, 14:44:25 - Greg Sharp

The crash is in the call to SlicerRtCommon::PATIENTHIERARCHY_NODE_NAME_POSTFIX.size().

At first I thought it could be issue of static initialization in dynamically loaded library. But the object value is exactly same as automatic variable. So it seems fully initialized.

Still investigating…

2013-08-13, 15:50:45 - Greg Sharp

Not sure I made much progress, but I’m done for today. Here’s what I learned.

(1) The crash seems to occur for calling size() on other SlicerRtCommon std::string’s. For example, the following line of code crashes:

1
2
3
int t = SlicerRtCommon::CONTOUR_CLOSED_SURFACE_MODEL_NODE_NAME_POSTFIX.size();  // crashes

(2) If I create a class in the same translation unit (i.e. the same file), then equivalent code doesn’t crash. For example:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
const std::string qkkk = '_KKKKK';
class XXX {
public:
  static const std::string YYY;
};
const std::string XXX::YYY = '_XXXYYY';

...

// None of these cause a crash
const std::string q = '_PatientHierarchy';
int r = q.size();
int rkkk = qkkk.size();
int rxxx = XXX::YYY.size();

(3) But when I move XXX::YYY to a different translation unit (such as SlicerRtCommon.cxx), then it crashes.

2013-08-13, 16:15:33 - Csaba Pinter

Thank you so much, Greg! We are much closer now. I can’t understand the reason right now, but I’ll keep thinking.

2013-08-15, 17:51:51 - Csaba Pinter

(In r:1095|slicerrt:1095) Test #310: Fixed PatientHierarchy crash on linux; Linux build warning fixed

2013-08-15, 17:51:51 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2013-08-15, 17:51:51 - Csaba Pinter

status: changed from “Accepted” to “Test”

2013-08-15, 17:52:55 - Csaba Pinter

@gregsharp : Apparently the fix was easier than I originally thought. The problem was that the vtkSlicerRtCommon library was not explicitly added to the target libraries. Can you please try it and close if it works? Thanks!

2013-08-15, 17:57:31 - Gabor Fichtinger

Wow!

From: Csaba Pinter (pinter) [mailto:slicerrt@alerts.assembla.com] Sent: August-15-13 1:53 PM

2013-08-15, 22:18:21 - Greg Sharp

Nice find!

Your fix is confirmed on my linux box. Closing the ticket.

2013-08-15, 22:18:21 - Greg Sharp

status: changed from “Test” to “Fixed”

#311 Create gel dosimetry evaluation slicelet

Replicate the current Matlab+CERR+in-house code based workflow using SlicerRT.

2013-06-10, 20:10:23 - Andras Lasso

description: changed from “Workflow:

  1. Start by loadi…” to “Replicate the current Matla…”

2013-07-02, 14:39:38 - Csaba Pinter

milestone_id: changed from null to “SlicerRt 0.11.0 (2013-05)”

2013-07-03, 17:33:40 - Csaba Pinter

status: changed from “New” to “Accepted”

2013-07-03, 17:35:07 - Csaba Pinter

Closed as invalid (duplicate of #313)

2013-07-03, 17:35:07 - Csaba Pinter

status: changed from “Accepted” to “Invalid”

#312 Create Slicelet howto wiki page

Fill wiki page url:https://www.assembla.com/spaces/perklabsandbox/wiki/Slicelet_development_how-to|https://www.assembla.com/spaces/perklabsandbox/wiki/Slicelet_development_how-toi/Slicelet_development_how-to with useful information:

Mention common pitfalls and best practices.

2013-06-11, 14:55:20 - Mattea Welch

Hi Csaba! Are you able to give me access to this space? I can’t seem to find it.

Thanks! Mattea

2013-06-11, 14:57:33 - Csaba Pinter

I sent you an invitation just now. Sorry about that!

2013-08-16, 00:09:13 - Csaba Pinter

status: changed from “New” to “Test”

2013-08-26, 19:04:31 - Csaba Pinter

status: changed from “Test” to “Fixed”

#313 Implement slicelet covering the gel dosimetry workflow

Workflow:

  1. Start by loading a planning image (PLANCT) and a planned dose distribution (PLANDOSE), both 3D scalar dicom volumes. They share a common co-ordinate frame and are already registered.
  2. Load an on-board imager cone beam CT scan (OBI) as a 3D scalar dicom volume, and register it to PLANCT.
  3. Load a 3D optical CT scan of the gel, or a 2D scan of the film. (MEASURED). Format is 3D vff or a 2D picture format (eg. tiff, could be grayscale or RGB). Register MEASURED to OBI using fiducial marks.
  4. Apply dose calibration curves (arbitrary scalar math operations) to MEASURED, yielding MEASUREDDOSE.
  5. Perform a gamma, chi, etc. test between MEASUREDDOSE and PLANDOSE, yielding another 3D volume COMPARISON.
  6. Extract statistics from COMPARISON. /Matthew Marsh, KGH/

Tasks

2013-06-10, 20:13:50 - Csaba Pinter

description: changed from “1. Start by loading a plann…” to “Workflow:

  1. Start by loa…”

2013-06-21, 15:04:56 - Mattea Welch

(In r:923|slicerrt:923) re #313 : Framework has been added for GelDosimetryAnalysis workflow

2013-06-24, 16:14:55 - Csaba Pinter

status: changed from “New” to “Accepted”

2013-06-25, 18:15:43 - Jennifer Andrea

(In r:944|slicerrt:944) Re #313: Added functionality to the slicelet for registration and for bringing up the dicom file importer.

2013-06-25, 18:41:45 - Mattea Welch

(In r:945|slicerrt:945) re #313 : Initial GUI made for first three steps of work flow. Connections for registrations still needed and fiducial collection GUI has bugs.

2013-06-26, 16:01:20 - Mattea Welch

(In r:946|slicerrt:946) re #313 : connections added for registration steps. Fiducial collection GUI still contains bugs.

2013-06-28, 14:29:20 - Jennifer Andrea

(In r:950|slicerrt:950) Re #313: Fixed the register Obi to PlanCt using brainsfit step.

2013-06-28, 14:36:06 - Mattea Welch

(In r:951|slicerrt:951) re #313 :Annotations widget now appears in appropriate panel but still has issues, being committed for logic testing. View selector added and stand alone Slicelet code started but not yet tested

2013-06-28, 17:55:59 - Mattea Welch

(In r:952|slicerrt:952) re #313: Module changed so it now only has reload and launch Slicelet buttons. Slicelet can now be launched from module and command line. Layout issues fixed.

2013-07-02, 21:09:15 - Mattea Welch

(In r:971|slicerrt:971) re #313: Steps 1, 2 and 3 are now fully implemented in a Slicelet

2013-07-09, 13:19:22 - Mattea Welch

(In r:989|slicerrt:989) re #313 Added combobox and button to allow for MEASUREd volume and fiducial transformation after registration is complete

2013-07-09, 14:49:00 - Mattea Welch

(In r:990|slicerrt:990) re #313 combo box to select transform needed for measured volume transformation added

2013-07-10, 14:42:33 - Jennifer Andrea

(In r:993|slicerrt:993) Re #313: Added the step for registering the Measured volume to the Obi volume using fiducial registration, and a step for transforming the Measured volume and its fiducials using the computed transform.

2013-07-11, 18:58:03 - Mattea Welch

(In r:1005|slicerrt:1005) re #313 Added button so fiducials can be added in Slicelet and no interaction with main window is needed. Fixed naming of functions and variables, fixed layout in step three.

2013-07-16, 19:01:56 - Mattea Welch

(In r:1018|slicerrt:1018) re #313 : Automatic selection of annotation root node when selecting fiducials for different volumes. Changed layout of step three. Added proper spacing and margins to whole module. Basic GUI outline for step four implemented, little functionality.

2013-07-16, 21:23:16 - Jennifer Andrea

(In r:1019|slicerrt:1019) Re #313: Added function to compute the mean and standard deviation of the optical densities in a small circle on each slice.

2013-07-20, 12:45:22 - Mattea Welch

(In r:1023|slicerrt:1023) re #313 : Fixed ordering of steps for curve calibration and added substeps. Added connections and functions calls for curve calibration (logic still needs to be added). Fixed QLineEdits so input is converted to appropriate type(float from str) before being passed to logic functions.

2013-07-25, 15:03:38 - Mattea Welch

(In r:1031|slicerrt:1031) re #313: File parsing button added for easier testing. Some UI changed to allow for more automation

2013-07-25, 15:19:56 - Jennifer Andrea

(In r:1032|slicerrt:1032) Re #313: Added function that parses .csv file containing the Wellhofer data

2013-07-25, 15:30:24 - Mattea Welch

(In r:1033|slicerrt:1033) re #313: Fixed incorrect function call and layout issue

2013-07-25, 22:32:03 - Jennifer Andrea

(In r:1035|slicerrt:1035) Re #313: Fixed the function that parses the .csv file containing the Wellhofer data so that it now has its own file dialog rather than using Slicer’s IO Manager.

2013-07-29, 13:14:32 - Mattea Welch

(In r:1042|slicerrt:1042) re #313 Made requested changes to UI

2013-07-29, 16:58:05 - Mattea Welch

(In r:1044|slicerrt:1044) re #313 : added labels to all buttons for a more uniform looking UI. Automated Measured to OBI registration (fiducial lists no longer need to be selected from a drop down menu). Automated transform selection for MEASURED volume and fiducial transformation (logic needs to be altered for a more flexible UI)

2013-08-09, 19:05:07 - Mattea Welch

(In r:1079|slicerrt:1079) re: #313 – added TODO and other comments to make it easier to follow. Added code for final analysis UI step (visibility is set to False). Changed naming and labels to be more consistent.

2013-08-13, 15:38:29 - Csaba Pinter

(In r:1082|slicerrt:1082) Re #313: WIP Gel dosimetry slicelet widget code review

2013-08-13, 18:33:00 - Csaba Pinter

(In r:1083|slicerrt:1083) Re #313: Removed spaces from the end of the lines

2013-08-13, 18:38:21 - Mattea Welch

(In r:1084|slicerrt:1084) re #313 : comments were moved to same indentation as its corresponding block. Naming in Step 3: ‘Selection OBI…’ ect. was changed to ‘A) Selection OBI….’ ect.. First annotations selection widget opens automatically when on that step of algorithm. Fiducial selector is now inside of individual fiducial selection widgets. Averaging radius input field changed to be the same length as the above widgets.

2013-08-15, 14:48:10 - Jennifer Andrea

(In r:1093|slicerrt:1093) Re #313: Rewrote function that finds the mean optical density values for each slice of the image so that it more closely matches the original Matlab function.

2013-08-15, 18:23:16 - Csaba Pinter

assigned_to_id: changed from “mwelch” to “j.andrea”

2013-08-23, 19:50:43 - Jennifer Andrea

(In r:1111|slicerrt:1111) Re #313: Implemented function to display the curve created by finding the mean optical density for each slice of the image.

2013-08-26, 21:15:59 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.11.0 (2013-08)” to “SlicerRt 1.0 (2013-09)”

2013-09-05, 14:36:21 - Csaba Pinter

working_hours: changed from “0.0” to “2.0”

2013-09-05, 14:36:21 - Csaba Pinter

total_working_hours: changed from “0.0” to “2.0”

2013-09-05, 14:38:36 - Csaba Pinter

milestone_id: changed from “SlicerRt 1.0” to “SlicerRt 0.12”

2013-09-27, 17:55:50 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.12” to null

2013-10-06, 20:37:58 - Jennifer Andrea

(In r:1207|slicerrt:1207) Re #313: Implemented function to perform the horizontal shift and vertical scale on the mean optical density data so that it matches the gold standard data.

2013-10-08, 14:06:56 - Csaba Pinter

file:dJ-mMUmcir457dacwqjQYw Mattea’s detailed description for step 4

2013-10-08, 14:06:56 - Csaba Pinter

Attachment added: “GelDosimetryAnalysisWorkflowDocument.txt”

2013-10-08, 14:07:51 - Csaba Pinter

milestone_id: changed from null to “GelDosimetry 0.1”

2013-10-08, 14:08:00 - Csaba Pinter

working_hours: changed from “2.0” to “0.0”

2013-10-08, 14:08:00 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

2013-10-08, 14:08:00 - Csaba Pinter

total_working_hours: changed from “2.0” to “0.0”

2013-10-08, 14:41:45 - Csaba Pinter

(In r:1210|slicerrt:1210) Re #313: Added workflow overview document for Gel dosimetry slicelet. Moved Mattea’s description to the doc directory

2013-10-08, 15:20:47 - Csaba Pinter

(In r:1211|slicerrt:1211) Re #313: Fixed typos in the Gel dosimetry workflow detailed description for step 4

#314 Slice intersection display doesn’t get refreshed when visibility is changed

2013-06-10, 21:48:00 - Csaba Pinter

It might be just a SlicerRT bug, as the following code works:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
sphere = vtk.vtkSphereSource()
sphere.SetCenter( 0,0,0 )
sphere.SetRadius( 50 )
sphere.GetOutput().Update()
displayNode = slicer.vtkMRMLModelDisplayNode()
displayNode = slicer.mrmlScene.AddNode(displayNode) 
displayNode.SliceIntersectionVisibilityOn()
displayNode.VisibilityOn()
displayNode.SetBackfaceCulling(0)
modelNode = slicer.vtkMRMLModelNode()
modelNode=slicer.mrmlScene.AddNode(modelNode)
modelNode.SetName('modelInteresectionTest')
modelNode.SetAndObservePolyData(sphere.GetOutput())
modelNode.SetModifiedSinceRead(1)
modelNode.SetAndObserveDisplayNodeID(displayNode.GetID())
modelNode.SetHideFromEditors(0)
modelNode.SetSelectable(1)


Then making these calls manually correctly hide and show the intersections:

1
2
3
4
5
displayNode.SetSliceIntersectionVisibility(0)
displayNode.SetSliceIntersectionVisibility(1)


2013-06-21, 13:53:58 - Csaba Pinter

Checking the slice intersection checkbox does the trick in the Models module, see how it is done there.

2013-09-05, 14:36:21 - Csaba Pinter

working_hours: changed from “0.0” to “2.0”

2013-09-05, 14:36:21 - Csaba Pinter

total_working_hours: changed from “0.0” to “2.0”

2013-09-05, 14:38:36 - Csaba Pinter

milestone_id: changed from “SlicerRt 1.0” to “SlicerRt 0.12”

2013-09-24, 22:20:57 - Csaba Pinter

(In r:1182|slicerrt:1182) Fixed #314: Slice intersection change is applied now when showing/hiding structures in Patient Hierarchy Re #410: Added TODO comment

2013-09-24, 22:20:57 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2013-09-24, 22:20:57 - Csaba Pinter

working_hours: changed from “2.0” to “0.0”

2013-09-24, 22:20:57 - Csaba Pinter

status: changed from “New” to “Fixed”

2013-09-24, 22:20:57 - Csaba Pinter

total_working_hours: changed from “2.0” to “0.0”

#315 Update dose color table when the isodose one is changed

Right now the color tables for the isodose and the dose distribution are tied in the sense that the default isodose color table is read from disk, and the dose one is generated from that automatically. It would be useful to have the dose color table follow it.

Tasks:

2013-06-10, 22:37:48 - Gabor Fichtinger

Is there some “standard isodose coloring” ?

From: Csaba Pinter (pinter) [mailto:slicerrt@alerts.assembla.com] Sent: June-10-13 6:00 PM

2013-06-10, 22:48:11 - Csaba Pinter

I sent an email to Kevin asking this question. What we saw in KGH in the Eclipse planning system was that the isodose lines were defined as percentages of the prescribed doses, and the colors were something like this: 80% deep blue 90% lighter warmer blue 100% yellow 105% orange 110% red

2013-06-11, 16:30:34 - Csaba Pinter

description: changed from “Right now the color tables …” to “Right now the color tables …”

2013-09-06, 18:56:11 - Csaba Pinter

priority: changed from “Normal (3)” to “High (2)”

2015-11-06, 18:28:26 - Csaba Pinter

description: changed from “Right now the color tables …” to “Right now the color tables …”

#316 Fix failing qSlicerDeformationFieldVisualizerModuleWidgetGenericTest

Test output: Line 176 qSlicerDeformationFieldVisualizerModule widget has a minimum size hint width of 511px. It is wider than the max width of 500px.

http://slicer.cdash.org/testDetails.php?test=3884367&build=108637

2013-06-12, 23:04:05 - Franklin King

(In r:890|slicerrt:890) re #316: Adjusted size policies for Deformation Field Visualizer module

2013-06-14, 15:25:00 - Franklin King

status: changed from “New” to “Accepted”

2013-06-17, 15:38:13 - Franklin King

status: changed from “Accepted” to “Fixed”

#317 Update documentation - tutorials, wikis, promo

2014-07-13, 06:28:33 - Csaba Pinter

Component: changed from “infrastructure” to “”

2014-07-13, 06:28:33 - Csaba Pinter

summary: changed from “Create a new demo video” to “Create a tutorial videos for each use case”

2014-07-13, 06:28:33 - Csaba Pinter

description: changed from “” to “* Handling fractions ** Tra…”

2014-10-08, 18:28:09 - Csaba Pinter

Component: changed from null to “Infrastructure”

2014-10-08, 18:28:09 - Csaba Pinter

summary: changed from “Create a tutorial videos for each use case” to “Create a tutorial for each use case and major feature”

2014-10-08, 18:28:09 - Csaba Pinter

priority: changed from “Normal (3)” to “High (2)”

2014-10-08, 18:28:09 - Csaba Pinter

description: changed from “* Handling fractions ** Tra…” to “* Tutorials ** Handling fra…”

2014-10-08, 18:52:28 - Csaba Pinter

summary: changed from “Create a tutorial for each use case and major feature” to “Update documentation - tutorials, wikis, promo”

2014-10-08, 18:52:28 - Csaba Pinter

description: changed from “* Tutorials ** Handling fra…” to “* Tutorials (presentation…”

#318 Replace assert with proper error handling

For example:

Instead of

1
2
3
4
assert(this->GetMRMLScene() != 0);


Use

1
2
3
4
5
6
7
8
if (!this->GetMRMLScene())
{
  vtkErrorMacro('FunctionName: Invalid MRML scene!');
  return;
}


2013-06-13, 01:12:41 - Csaba Pinter

description: changed from “For example:

Instead of <p…” to “For example:

Instead of <p…”

2013-09-05, 14:36:21 - Csaba Pinter

working_hours: changed from “0.0” to “2.0”

2013-09-05, 14:36:21 - Csaba Pinter

total_working_hours: changed from “0.0” to “2.0”

2013-09-05, 14:38:37 - Csaba Pinter

milestone_id: changed from “SlicerRt 1.0” to “SlicerRt 0.12”

2013-09-26, 17:13:53 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2013-09-26, 17:13:53 - Csaba Pinter

status: changed from “New” to “Accepted”

2013-09-27, 20:11:04 - Csaba Pinter

(In r:1196|slicerrt:1196) Fixed #318: Reviewed error handling in all classes, and replaced the incorrect usages (assert->vtkErrorMacro, std::cerr to the suitable error logging)

2013-09-27, 20:11:04 - Csaba Pinter

working_hours: changed from “2.0” to “0.0”

2013-09-27, 20:11:04 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

2013-09-27, 20:11:04 - Csaba Pinter

total_working_hours: changed from “2.0” to “0.0”

#319 Make one general Dice module from the various implementations

One is in our Contour Comparison, another is in Laurent Chauvin’s url:http://wiki.slicer.org/slicerWiki/index.php/Documentation/Nightly/Modules/DiceComputation|DiceComputation module

Steps:

2013-06-13, 17:24:59 - Csaba Pinter

description: changed from “One is in our Contour Compa…” to “One is in our Contour Compa…”

2014-07-13, 06:08:38 - Csaba Pinter

priority: changed from “Normal (3)” to “Low (4)”

2015-01-27, 20:07:45 - Csaba Pinter

status: changed from “New” to “Invalid”

#320 Add functionality to create new patient hierarchy nodes

2013-06-13, 21:51:14 - Csaba Pinter

(In r:896|slicerrt:896) Re #320: Simple way of creating new patient hierarchy node added (right-click a node -> Create child node); Fixed build error in ExternalBeamPlanning

2013-09-05, 14:17:00 - Csaba Pinter

description: changed from “” to “* Patient should be created…”

2013-09-05, 14:36:21 - Csaba Pinter

working_hours: changed from “0.0” to “2.0”

2013-09-05, 14:36:21 - Csaba Pinter

total_working_hours: changed from “0.0” to “2.0”

2013-09-05, 14:38:37 - Csaba Pinter

milestone_id: changed from “SlicerRt 1.0” to “SlicerRt 0.12”

2013-10-02, 16:45:43 - Csaba Pinter

(In r:1202|slicerrt:1202) Test #320: Scene made visible in the patient hierarchy tree to enable creating new patient from its context menu; ‘Create child structure set’ item added to the context menu of the Study level nodes to enable the user creating new structure sets (contour hierarchies). Default structure set node thus has been removed; Help icon and extensive help text in its tooltip added to the Patient Hierarchy module widget.

2013-10-02, 16:45:43 - Csaba Pinter

status: changed from “New” to “Test”

2013-10-02, 18:07:11 - Csaba Pinter

working_hours: changed from “2.0” to “0.0”

2013-10-02, 18:07:11 - Csaba Pinter

status: changed from “Test” to “Fixed”

2013-10-02, 18:07:11 - Csaba Pinter

total_working_hours: changed from “2.0” to “0.0”

#321 All displayable hierarchy nodes show up in DVH structure combobox

Need to filter them like in the Contours module

2013-06-17, 14:10:38 - Csaba Pinter

(In r:901|slicerrt:901) Fixed #321: DVH StructureSet combobox filtered to show only contour hierarchies

2013-06-17, 14:10:38 - Csaba Pinter

status: changed from “New” to “Fixed”

#322 Crash when loading a scene with isodose

2013-06-19, 13:46:26 - Csaba Pinter

(In r:908|slicerrt:908) Fixed #322: Fixed crash when loading scene with isodose

2013-06-19, 13:46:26 - Csaba Pinter

status: changed from “New” to “Fixed”

#323 Typos and stylistic changes

Everything that doesn’t deserve a ticket can go here: Typos, intentation, extra spaces, comments, other coding convention related changes

2013-09-06, 18:41:16 - Csaba Pinter

priority: changed from “High (2)” to “Highest (1)”

2013-09-09, 15:28:19 - Csaba Pinter

priority: changed from “Highest (1)” to “Normal (3)”

2013-09-09, 15:28:19 - Csaba Pinter

milestone_id: changed from “Future” to “Continuous”

2013-11-22, 19:31:17 - Csaba Pinter

(In r:1301|slicerrt:1301) Re #450 #323: Removed unnecessary lines from main CMakeLists.txt file

2013-11-22, 19:31:17 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2013-11-25, 21:05:41 - Csaba Pinter

(In r:1307|slicerrt:1307) Re #323: Removed unnecessary include

2013-12-05, 04:49:46 - Csaba Pinter

(In r:1322|slicerrt:1322) Re #406: WIP Implemented context menu and get/set visibility features in plugins; Added owner plugin name to subject hierarchy nodes. The owner plugin is searched for and set when a subject hierarchy node is added to the scene; Added concept of plugin dependencies (for now it is for showing context menu items for only the owner plugin and its dependencies); Added active node pointer to the plugins (when context menu is requested then the plugin needs to know the active node to perform the operation chosen by the user); Re #323: Changed equals sign to be at the end of rows when a statement is broken into lines there

2014-01-24, 18:37:14 - Csaba Pinter

(In r:1459|slicerrt:1459) Re #323: Use new utility function for reloading python modules

2014-01-30, 20:47:04 - jchris

(In r:1477|slicerrt:1477) Re #323: Contours - Fix error message when Plastimatch is not found

2014-01-30, 20:48:26 - jchris

(In r:1478|slicerrt:1478) Re #323: DoseVolumeHistogram - Include correct export header in logic

2014-03-06, 17:03:08 - Greg Sharp

Re #323 Fix code indentation to match Slicer style Commit: r:1554|slicerrt:1554

2014-03-06, 22:16:32 - Greg Sharp

Re #323 Remove unnecessary debug statements Commit: r:1557|slicerrt:1557

2014-04-07, 20:55:03 - Csaba Pinter

Re #323: Removed unused string constant Commit: r:1620|slicerrt:1620

2014-04-07, 21:09:42 - Csaba Pinter

Re #323: Changed reference string to stick to convention Commit: r:1622|slicerrt:1622

2014-07-29, 15:27:23 - Csaba Pinter

Re #323: Updated copyright text in source files; Changed line endings to Windows-style Commit: r:1892|slicerrt:1892

2014-07-29, 15:42:48 - Csaba Pinter

Re #323: Reverted binary files that were corrupted during automatic line ending conversion Commit: r:1893|slicerrt:1893

2015-01-29, 15:24:44 - Csaba Pinter

Re #323: Make it clear that setting the dose unit scaling does not trigger applying the scaling value on the volume voxels Commit: r:2117|slicerrt:2117

2015-10-08, 18:38:33 - Csaba Pinter

Re #323: Change importing libraries to python modules based on Slicer commit http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=24622 Commit: r:2475|slicerrt:2475

2015-11-03, 17:13:00 - Csaba Pinter

Re #323: Changed importing of libraries according to changes in Slicer core Commit: r:2482|slicerrt:2482

2017-03-24, 17:13:05 - Csaba Pinter

Re #323: Removed unnecessary indentation from XML output

Related to Slicer core change rev25870 Commit: r:3131|slicerrt:3131

#324 Plastimatch Dice requires values to be 1

The platimatch dice function doesn’t work correctly if the label images have values other than one. It should consider a voxel to be inside the structure for non-zero values.

For Csaba: remove paintForegroundTo1 workaround from SlicerRtCommon

2013-06-19, 15:43:41 - Csaba Pinter

description: changed from “The platimatch dice functio…” to “The platimatch dice functio…”

2013-07-02, 14:39:44 - Csaba Pinter

milestone_id: changed from null to “SlicerRt 0.11.0 (2013-05)”

2013-08-26, 15:13:29 - Greg Sharp

@pinter I couldn’t find anything obvious in plastimatch which would cause this. How can I reproduce the problem?

2013-08-26, 15:27:37 - Csaba Pinter

Looking at dice_statistics.cxx, it indeed looks like there is no bug at first glance.

You can reproduce the issue (if there still is one) by changing the last argument from true to false (or removing it) in the SlicerRtCommon::ConvertVolumeNodeToItkImage calls in the function vtkSlicerContourComparisonModuleLogicPrivate::GetInputContoursAsItkVolumes. At least this was the workaround that solved it back then.

I hope this helps.

2013-08-26, 21:16:40 - Csaba Pinter

As I have released 0.11 and this issue is not critical (it works with the workaround), I’m moving this to the next milestone

2013-08-26, 21:16:40 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.11.0 (2013-08)” to “SlicerRt 1.0 (2013-09)”

2013-09-05, 14:36:21 - Csaba Pinter

working_hours: changed from “0.0” to “2.0”

2013-09-05, 14:36:21 - Csaba Pinter

total_working_hours: changed from “0.0” to “2.0”

2013-09-05, 14:38:37 - Csaba Pinter

milestone_id: changed from “SlicerRt 1.0” to “SlicerRt 0.12”

2013-11-01, 18:00:10 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.12” to “SlicerRt 0.13”

2013-12-11, 20:30:47 - Greg Sharp

I have confirmed that this is fixed. -Greg

2013-12-11, 20:30:47 - Greg Sharp

working_hours: changed from “2.0” to “0.0”

2013-12-11, 20:30:47 - Greg Sharp

status: changed from “New” to “Fixed”

2013-12-11, 20:30:47 - Greg Sharp

total_working_hours: changed from “2.0” to “0.0”

2013-12-11, 21:03:21 - Csaba Pinter

Thanks, Greg! Then I’ll remove the repainting workaround possibility.

2013-12-11, 21:03:37 - Csaba Pinter

assigned_to_id: changed from “gregsharp” to “pinter”

2013-12-11, 21:03:37 - Csaba Pinter

status: changed from “Fixed” to “New”

2014-01-03, 18:56:16 - Csaba Pinter

(In r:1377|slicerrt:1377) Fixed #324: Removed foreground re-paint workaround; Unified to almost identical VTK-ITK conversion methods in SlicerRtCommon

2014-01-03, 18:56:16 - Csaba Pinter

status: changed from “New” to “Fixed”

#325 Windows build problems DCMTK_DIR

Rebuilding SlicerRT after initial build causes build failure on windows.

Below is the error:

1>—— Skipped Build: Project: RUN_TESTS, Configuration: Release Win32 —— 1>Project not selected to build for this solution configuration 2>—— Skipped Build: Project: NightlyUpload, Configuration: Release Win32 —— 2>Project not selected to build for this solution configuration 3>—— Skipped Build: Project: Nightly, Configuration: Release Win32 —— 3>Project not selected to build for this solution configuration 4>—— Skipped Build: Project: ExperimentalUpload, Configuration: Release Win32 —— 4>Project not selected to build for this solution configuration 5>—— Skipped Build: Project: Experimental, Configuration: Release Win32 —— 5>Project not selected to build for this solution configuration 6>—— Build started: Project: Plastimatch, Configuration: Release Win32 —— 6>Performing update step (SVN update) for ‘Plastimatch’ 6>– Plastimatch update command succeeded. See also C:/gcs6/build/slicer-4/SlicerRt-build/Plastimatch-prefix/src/Plastimatch-stamp/Plastimatch-update-*.log 6>Performing configure step for ‘Plastimatch’ 6>– Machine is 32-bit 6>– Checking host processor: x86 6>– Checking target processor: x86 6>– Checking epsilon: 2.22045E-016 2.22045E-016 2.22045E-016 6>– Checking sign of char: char is signed 6>– DCMTK version 3.6.1 6>– Could NOT find DLIB (missing: DLIB_LIBRARY DLIB_INCLUDE_DIR) 6>– Could NOT find LIBLBFGS (missing: LIBLBFGS_LIBRARY LIBLBFGS_INCLUDE_DIR) 6>– Could NOT find NLOPT (missing: NLOPT_LIBRARY NLOPT_INCLUDE_DIR) 6>– Could NOT find OpenCL (missing: OPENCL_LIBRARIES OPENCL_INCLUDE_DIRS) 6>– Check for compiler OpenMP support… 6>– Given compiler does not support OpenMP. 6>– Could NOT find SQLITE (missing: SQLITE_LIBRARY SQLITE_INCLUDE_DIR) 6>– CPU does not support SSE2. 6>– Could NOT find wxWidgets (missing: wxWidgets_FOUND) 6>– Could NOT find Readline (missing: READLINE_INCLUDE_DIR READLINE_LIBRARY) 6>– Could NOT find THRUST (missing: THRUST_INCLUDE_DIR) 6>– Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE) 6>– Looking for wxWidgets - not found. 6>– Looking for Matlab - not found. 6>– Looking for Octave - not found. 6>– Looking for version in svn - found 4308 6>– GDCM version 2.0.17 found 6>– VTK version 5.10.1 6>– Looking for Qt4 - found 6>– Configuring done 6>– Generating done 6>– Build files have been written to: C:/gcs6/build/slicer-4/SlicerRt-build/Plastimatch-build 6>Performing build step for ‘Plastimatch’ 6>Microsoft (R) Visual C++ Express Edition Version 9.0.30729.1. 6>Copyright (C) Microsoft Corp 2007. All rights reserved. 6>========== Build: 0 succeeded, 0 failed, 15 up-to-date, 0 skipped ========== 6>No install step for ‘Plastimatch’ 6>Completed ‘Plastimatch’ 6>Build log was saved at ‘file://c:\gcs6\build\slicer-4\SlicerRt-build\Plastimatch.dir\elease\BuildLog.htm’ 6>Plastimatch - 0 error(s), 0 warning(s) 7>—— Build started: Project: inner, Configuration: Release Win32 —— 7>Performing configure step for ‘inner’ 7>CMake Error at C:/gcs6/build/slicer-4/Slicer-build/Slicer-build/SlicerConfig.cmake:314 (message): 7> Variable DCMTK_DIR defined prior calling ‘find_package(Slicer)’ does NOT 7> match value used to configure Slicer. It probably means that a different 7> DCMTK_DIR has been used to configure this project and Slicer. 7> DCMTK_DIR=/usr/include/dcmtk 7> Slicer_DCMTK_DIR=C:/gcs6/build/slicer-4/Slicer-build/DCMTK-build 7>Call Stack (most recent call first): 7> C:/gcs6/build/slicer-4/Slicer-build/Slicer-build/SlicerConfig.cmake:338 (slicer_config_set_ep) 7> CMakeLists.txt:25 (find_package) 7>– Configuring incomplete, errors occurred! 7>Project : error PRJ0019: A tool returned an error code from ‘Performing configure step for ‘inner’’ 7>Build log was saved at ‘file://c:\gcs6\build\slicer-4\SlicerRt-build\inner.dir\elease\BuildLog.htm’ 7>inner - 1 error(s), 0 warning(s) 8>—— Skipped Build: Project: ALL_BUILD, Configuration: Release Win32 —— 8>Project not selected to build for this solution configuration ========== Build: 1 succeeded, 1 failed, 2 up-to-date, 6 skipped ==========

2013-07-02, 14:39:47 - Csaba Pinter

milestone_id: changed from null to “SlicerRt 0.11.0 (2013-05)”

2013-08-15, 14:58:36 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.11.0 (2013-07)” to “SlicerRt 1.0 (2013-09)”

2013-08-30, 15:21:33 - Csaba Pinter

assigned_to_id: changed from null to “rankin”

2013-09-05, 14:36:21 - Csaba Pinter

working_hours: changed from “0.0” to “2.0”

2013-09-05, 14:36:21 - Csaba Pinter

total_working_hours: changed from “0.0” to “2.0”

2013-09-05, 14:38:37 - Csaba Pinter

milestone_id: changed from “SlicerRt 1.0” to “SlicerRt 0.12”

2013-10-02, 17:18:59 - Csaba Pinter

Probably the same thing happens here: http://public.kitware.com/pipermail/ctk-developers/2013-October/001219.html

2013-10-07, 21:04:19 - Csaba Pinter

Jc wrote (http://public.kitware.com/pipermail/ctk-developers/2013-October/001226.html): ‘ As illustrated in the enclosed screenshot, build tree can be exported into the CMake package registry. As some point, the DCMTK build tree has probably been exported [1][2][3].

Since when building CTK, it is expected that there are no DCMTKConfig.cmake available, the first should be failing. In your case, it seems not to be failing because it resolves to that previous build added to the registery. I would suggest to try adding the parameter ‘NO_DEFAULT_PATH’ to the FindDCMTK.cmake module available in CTK. See [4]

Hth Jc

[1] http://www.cmake.org/cmake/help/v2.8.11/cmake.html#command:export [2] http://slicer-devel.65872.n3.nabble.com/Packaging-seems-to-work-again-tp4028121p4028134.html [3] https://www.assembla.com/spaces/slicerrt/tickets/244-dcmtk_dir-vs–dcmtkconfig-cmake?comment=267984263#comment:267984263 [4] https://github.com/commontk/CTK/blob/f64b68acd717dab060db41e8bee3f0f30df1a58f/Utilities/CMake/FindDCMTK.cmake#L42 ‘

2013-10-07, 21:04:49 - Csaba Pinter

Indeed, adding NO_DEFAULT_PATH seems to fix the problem (when building CTK separately)

2013-10-07, 21:06:36 - Csaba Pinter

assigned_to_id: changed from “rankin” to “pinter”

2013-10-07, 21:06:36 - Csaba Pinter

status: changed from “New” to “Accepted”

2013-11-01, 18:00:10 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.12” to “SlicerRt 0.13”

2013-11-06, 22:22:30 - Csaba Pinter

CTK Github issue: https://github.com/commontk/CTK/issues/382

This issue is considered to be fixed, if the problem is still there, then we should re-open

2013-11-22, 18:31:42 - Csaba Pinter

status: changed from “Accepted” to “Test”

2014-01-10, 20:58:13 - Greg Sharp

I confirm fix. Setting status to ‘Fixed.’

2014-01-10, 20:58:13 - Greg Sharp

working_hours: changed from “2.0” to “0.0”

2014-01-10, 20:58:13 - Greg Sharp

status: changed from “Test” to “Fixed”

2014-01-10, 20:58:13 - Greg Sharp

total_working_hours: changed from “2.0” to “0.0”

#326 Move Matlab bridge to a separate extension

2013-06-21, 14:00:08 - Andras Lasso

Component: changed from null to “Matlab bridge”

2013-06-24, 14:03:53 - Andras Lasso

(In r:928|slicerrt:928) re #326: Added new root directory for the MatlabBridge extension

2013-06-24, 14:05:16 - Andras Lasso

(In r:929|slicerrt:929) re #326: Added MatlabBridge source directory

2013-06-24, 14:18:56 - Andras Lasso

(In r:930|slicerrt:930) re #326: Removed MatlabBridge source directories from the makefile

2013-06-24, 14:19:54 - Andras Lasso

(In r:931|slicerrt:931) re #326: Moved MatlabCommander and MatlabModuleGenerator directories from SlicerRt to MatlabBridge extension

2013-06-24, 16:13:20 - Andras Lasso

(In r:932|slicerrt:932) re #326: Created MatlabBridge extension and fixed a few small bugs

2013-06-24, 16:18:27 - Andras Lasso

(In r:933|slicerrt:933) re #326: Added MatlabBride extension logo

2013-06-24, 16:19:45 - Andras Lasso

(In r:934|slicerrt:934) re #326: Moved MatlabModule generator logo editable file to doc/logo subdirectory

2013-06-24, 16:28:21 - Csaba Pinter

milestone_id: changed from null to “SlicerRt 0.11.0 (2013-05)”

2013-06-24, 16:34:00 - Andras Lasso

(In r:935|slicerrt:935) re #326: Updated MatlabModuleGenerator icon to indicate that it can be used for configuring Matlab settings

2013-06-24, 16:34:44 - Andras Lasso

(In r:936|slicerrt:936) re #326: Moved MatlabCommander and MatlabModuleGenerator to the Developer Tools / Matlab in the module list. Updated MatlabModuleGenerator icon to indicate that it can be used for configuring Matlab settings.

2013-06-24, 17:01:29 - Andras Lasso

(In r:937|slicerrt:937) re #326: Simplified MatlabModuleTemplate.m

2013-06-24, 20:01:31 - Andras Lasso

(In r:938|slicerrt:938) re #326: Updated MatlabBridge documentation

2013-06-24, 21:52:19 - Andras Lasso

milestone_id: changed from “SlicerRt 0.11.0 (2013-05)” to “MatlabBridge 0.1.0”

2013-06-24, 21:54:16 - Andras Lasso

status: changed from “New” to “Test”

2013-06-28, 21:28:32 - Andras Lasso

status: changed from “Test” to “Fixed”

#327 Prevent overwriting of existing files in Matlab module generator

2013-06-21, 14:00:16 - Andras Lasso

Component: changed from null to “Matlab bridge”

2013-06-24, 20:38:29 - Andras Lasso

milestone_id: changed from null to “SlicerRt 1.0 (2013-06)”

2013-06-24, 20:44:56 - Andras Lasso

milestone_id: changed from “SlicerRt 1.0 (2013-06)” to “Future”

2013-06-28, 18:21:10 - Andras Lasso

milestone_id: changed from “Future” to “MatlabBridge 0.2.0”

2013-06-28, 18:27:46 - Andras Lasso

(In r:953|slicerrt:953) test #327: Add a check to prevent MatlabModuleGenerator overwrite any existing file (to avoid accidental overwriting of valuable files) test #330: User-generated Matlab modules (.m, .bat, .xml files) can now be placed into any directory (as long as the directory is added to the additional module paths in the Slicer application settings). Default location is Extensions-NNN/MatlabModules, to avoid the risk of deleting the module files when the MatlabBridge extension is uninstalled.

2013-06-28, 18:27:46 - Andras Lasso

assigned_to_id: changed from null to “lassoan”

2013-06-28, 18:27:46 - Andras Lasso

status: changed from “New” to “Test”

2013-06-29, 01:10:19 - Andras Lasso

status: changed from “Test” to “Fixed”

#328 Remove spaces from module name in Matlab module generator

remove the spaces from the user-defined module name to obtain module file name

2013-06-21, 14:00:23 - Andras Lasso

Component: changed from null to “Matlab bridge”

2013-06-24, 20:38:23 - Andras Lasso

milestone_id: changed from null to “SlicerRt 0.11.0 (2013-05)”

2013-06-24, 21:52:12 - Andras Lasso

milestone_id: changed from “SlicerRt 0.11.0 (2013-05)” to “MatlabBridge 0.2.0”

2013-06-25, 14:37:08 - Andras Lasso

(In r:940|slicerrt:940) test #328: Create matlab function name and script file names by removing spaces from the user-defined module name

2013-06-25, 14:37:08 - Andras Lasso

assigned_to_id: changed from null to “lassoan”

2013-06-25, 14:37:08 - Andras Lasso

status: changed from “New” to “Test”

2013-06-29, 01:10:19 - Andras Lasso

status: changed from “Test” to “Fixed”

#329 Dragging contour out of structure set and back causes crash

Patient Hierarchy module

2013-07-08, 21:39:57 - Csaba Pinter

(In r:987|slicerrt:987) Fixed #329: Disallow contour nodes to be reparented to a branch that is not a contour hierarchy; Re #252: Dummy anatomical volume now gets a more informative name

2013-07-08, 21:39:57 - Csaba Pinter

status: changed from “New” to “Fixed”

#330 Pass additional module paths to Matlab command server

Pass additional module paths to Matlab command server to allow running Matlab script from any directory (not just from the commandserver.m directory)

2013-06-21, 14:00:34 - Andras Lasso

Component: changed from null to “Matlab bridge”

2013-06-24, 20:38:15 - Andras Lasso

milestone_id: changed from null to “Future”

2013-06-28, 18:16:33 - Andras Lasso

milestone_id: changed from “Future” to “MatlabBridge 0.2.0”

2013-06-28, 18:27:46 - Andras Lasso

(In r:953|slicerrt:953) test #327: Add a check to prevent MatlabModuleGenerator overwrite any existing file (to avoid accidental overwriting of valuable files) test #330: User-generated Matlab modules (.m, .bat, .xml files) can now be placed into any directory (as long as the directory is added to the additional module paths in the Slicer application settings). Default location is Extensions-NNN/MatlabModules, to avoid the risk of deleting the module files when the MatlabBridge extension is uninstalled.

2013-06-28, 18:27:46 - Andras Lasso

assigned_to_id: changed from null to “lassoan”

2013-06-28, 18:27:46 - Andras Lasso

status: changed from “New” to “Test”

2013-06-28, 21:26:16 - Andras Lasso

(In r:956|slicerrt:956) re #330: Made module template .bat more robust (works well with either ‘–xml’ and –xml as first parameter)

2013-06-29, 00:58:54 - Andras Lasso

(In r:957|slicerrt:957) re #330: Fixed matlabcommander script directory in the extension package. Updated version number to 0.2.0.

2013-06-29, 01:10:19 - Andras Lasso

status: changed from “Test” to “Fixed”

#331 Create tutorial for Matlab bridge

Move into separate extension first

2013-06-24, 20:38:02 - Andras Lasso

milestone_id: changed from null to “SlicerRt 0.11.0 (2013-05)”

2013-06-24, 21:52:07 - Andras Lasso

milestone_id: changed from “SlicerRt 0.11.0 (2013-05)” to “MatlabBridge 0.2.0”

2013-06-28, 18:49:49 - Andras Lasso

(In r:954|slicerrt:954) re #331: Added some help into the skeleton .m file about how to read/write various parameter types

2013-06-28, 18:49:49 - Andras Lasso

assigned_to_id: changed from null to “lassoan”

2013-06-28, 21:28:58 - Andras Lasso

milestone_id: changed from “MatlabBridge 0.2.0” to “Future”

2013-06-29, 12:39:22 - Andras Lasso

(In r:958|slicerrt:958) re #331: Added example Matlab module with all possible input and output parameter types

2013-06-29, 14:04:15 - Andras Lasso

(In r:959|slicerrt:959) re #331: Add more MatlabBridge examples

2013-06-29, 14:06:55 - Andras Lasso

(In r:960|slicerrt:960) re #331: Moved MatlabBridge examples to correct subdirectories

2013-06-29, 14:47:46 - Andras Lasso

(In r:961|slicerrt:961) re #331: Made XML examples of MatlabBridge more uniform (parameter name definition, order, etc.)

2013-06-29, 17:44:02 - Andras Lasso

(In r:962|slicerrt:962) re #331: Changed cli_pointvectordecode.m to return points in columns to allow transformation by multiplying with a matrix from the left. Fixed examples of MatlabBridge.

2013-07-09, 04:34:42 - Andras Lasso

(In r:988|slicerrt:988) test #331: Created MatlabBridge tutorial

2013-07-09, 04:34:42 - Andras Lasso

status: changed from “New” to “Test”

2013-07-09, 15:47:36 - Andras Lasso

milestone_id: changed from “Future” to “MatlabBridge 0.4.0”

2013-07-09, 16:24:40 - Andras Lasso

(In r:992|slicerrt:992) re #331: Moved MatlabBridge design doc to MatlabDir subdirectory

2013-07-10, 20:33:50 - Andras Lasso

status: changed from “Test” to “Fixed”

2013-07-15, 13:56:52 - Andras Lasso

(In r:1014|slicerrt:1014) re #331: Added more details to MatlabBridgeDesign.pptx

2013-07-15, 13:59:49 - Andras Lasso

(In r:1015|slicerrt:1015) re #331: Fixed corrupted slide in MatlabBridgeDesign.pptx

#332 Document Patient Hierarchy features

Document current usages of Patient Hierarchy on Slicer modules wiki:

2013-07-31, 09:48:50 - Csaba Pinter

description: changed from “Document current usages of …” to “Document current usages of …”

2013-07-31, 17:32:39 - Csaba Pinter

description: changed from “Document current usages of …” to “Document current usages of …”

2013-08-25, 21:51:08 - Csaba Pinter

status: changed from “New” to “Accepted”

2013-08-26, 20:20:42 - Csaba Pinter

(In r:1131|slicerrt:1131) Re #332: Patient hierarchy technical overview presentation added

2013-08-26, 20:44:06 - Csaba Pinter

Page http://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Modules/PatientHierarchy edited

2013-08-26, 20:44:06 - Csaba Pinter

status: changed from “Accepted” to “Test”

2013-08-26, 21:15:38 - Csaba Pinter

status: changed from “Test” to “Fixed”

#333 Add auto-detect mechanism for finding the Matlab.exe path

Currently users have to specify the path to Matlab.exe manually in the MatlabModuleGenerator module. Try to replace this step with an automatic search mechanism that tries to find matlab at some reasonable locations:

2013-11-06, 23:15:10 - Csaba Pinter

This seems to have been fixed in #342. Can this one be closed?

2013-11-07, 00:10:13 - Andras Lasso

Yes, it’s been implemented already.

2013-11-07, 00:10:13 - Andras Lasso

status: changed from “New” to “Fixed”

2013-11-07, 00:10:23 - Andras Lasso

Component: changed from “SlicerRt modules” to “Matlab bridge”

#334 Add Matlab support for more CLI parameters

Add support for passing to Matlab modules:

2013-06-26, 22:53:22 - Andras Lasso

Transforms are now handled (see #340)

2013-06-26, 22:53:22 - Andras Lasso

description: changed from “Add support for passing to …” to “Add support for passing to …”

2013-06-27, 22:19:45 - Andras Lasso

milestone_id: changed from “Future” to “MatlabBridge 0.2.0”

2013-06-27, 22:23:23 - Andras Lasso

(In r:949|slicerrt:949) test #334: Added support for all parameter types of the Execution Model Tour example

2013-06-27, 22:23:23 - Andras Lasso

assigned_to_id: changed from null to “lassoan”

2013-06-27, 22:23:23 - Andras Lasso

status: changed from “New” to “Test”

2013-06-29, 01:10:19 - Andras Lasso

status: changed from “Test” to “Fixed”

#335 Add support for passing fiducial positions to Matlab scripts

Fiducial points are passed in a strange way to the CLI modules, which causes failures when trying to parse the arguments (reproducible with the Execution Model Tour XML): ‘–seed 20.4775,16.6545,-10.2143’,’–seed -28.8889,44.8639,-10.2143’

Normally argument names and values are in separate arguments: ‘–seed’,’20.4775,16.6545,-10.2143’,’–seed’,’-28.8889,44.8639,-10.2143’

Report this issue to the Slicer bugtracker and also implement a temporary workaround (e.g., in MatlabCommander split arguments that contain spaces)

2013-06-24, 21:51:59 - Andras Lasso

milestone_id: changed from “SlicerRt 0.11.0 (2013-05)” to “MatlabBridge 0.2.0”

2013-06-27, 20:20:15 - Andras Lasso

(In r:948|slicerrt:948) re #335: Added support for reading fiducial lists (can be accessed as inputParams.fiducials{1}, inputParams.fiducials{2}, etc.)

2013-06-27, 20:20:15 - Andras Lasso

assigned_to_id: changed from null to “lassoan”

2013-06-27, 22:22:46 - Andras Lasso

status: changed from “New” to “Test”

2013-06-28, 21:24:35 - Andras Lasso

(In r:955|slicerrt:955) re #335: Do not permute image axes to be more consistent with fiducial coordinate system axis order. Add ijkToRasTransform to img data to allow easy transformation between pixel and physical space. Pixel space origin is (1,1,1)

2013-06-29, 01:10:19 - Andras Lasso

status: changed from “Test” to “Fixed”

#336 Negative number argument values cannot be passed to Matlab modules

If a negative number is passed to the CLI then it is interpreted as an argument name (as it starts with ‘-‘). Make the argument detection mechanism in cli_argsread.m more intelligent (e.g., use a regular expression and only recognize an argument as a parameter name if the - is followed by a letter)

2013-06-24, 21:49:18 - Andras Lasso

(In r:939|slicerrt:939) test #336: Fixed negative argument passing by using regular expression to distinguish argument name from value

2013-06-24, 21:49:18 - Andras Lasso

assigned_to_id: changed from null to “lassoan”

2013-06-24, 21:49:18 - Andras Lasso

status: changed from “New” to “Test”

2013-06-24, 21:51:05 - Andras Lasso

milestone_id: changed from “SlicerRt 0.11.0 (2013-05)” to “MatlabBridge 0.1.0”

2013-06-24, 21:53:51 - Andras Lasso

milestone_id: changed from “MatlabBridge 0.1.0” to “MatlabBridge 0.2.0”

2013-06-29, 01:10:19 - Andras Lasso

status: changed from “Test” to “Fixed”

#337 Add Matlab support for Linux and Mac

Only if users request it

2013-06-25, 14:38:44 - Andras Lasso

(In r:941|slicerrt:941) test #337: Added Matlab launcher proxy for linux/mac. Not tested yet.

2013-06-25, 14:38:44 - Andras Lasso

assigned_to_id: changed from null to “lassoan”

2013-06-25, 14:38:44 - Andras Lasso

status: changed from “New” to “Test”

2013-06-25, 14:39:03 - Andras Lasso

milestone_id: changed from “Future” to “MatlabBridge 0.2.0”

2013-06-29, 01:10:19 - Andras Lasso

status: changed from “Test” to “Fixed”

#338 Return with error code from the CLI if error occurred in the Matlab script

Return with status ‘Completed with errors’ if an exception occurred in the Matlab script

2013-06-25, 17:17:23 - Andras Lasso

(In r:943|slicerrt:943) re #338: Return with error code from the CLI in case of Matlab exception

2013-06-25, 17:18:54 - Andras Lasso

status: changed from “New” to “Test”

2013-06-29, 01:10:19 - Andras Lasso

status: changed from “Test” to “Fixed”

#339 surface model generated from isodose module cannot be converted to contour in patient hierarchy

how to reproduce:

  1. load rt dose from prostate dataset.
  2. go to isodose module and change number of level to 1, change level value to 20. click apply.
  3. go to patient hierarchy module, drag the newly created isodose_model and drop onto default structure set node to create new contour.
  4. go to contours module, click on the input contour combobox and the new contour does not show up.

2013-06-25, 20:11:47 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2013-06-25, 20:11:54 - Csaba Pinter

milestone_id: changed from “SlicerRt 1.0 (2013-06)” to “SlicerRt 0.11.0 (2013-05)”

2013-07-09, 15:07:19 - Csaba Pinter

@wangk, @lassoan : This operation is not supported now. When you move model or labelmap objects inside the patient hierarchy tree, they are not converted into contours. Is this a needed feature?

@wangk : I cannot edit colors in the Isodose module (so I cannot change level value either). Can you?

2013-07-09, 15:07:19 - Csaba Pinter

status: changed from “New” to “Accepted”

2013-07-09, 17:59:43 - Andras Lasso

I would prefer to have the same behavior for nodes that are inside and outside the subject hierarchy.

2013-08-25, 19:40:15 - Csaba Pinter

(In r:1114|slicerrt:1114) Test #339: Contours now can be created from representation from within the Patient Hierarchy tree (e.g. from Isodose models)

2013-08-25, 19:40:15 - Csaba Pinter

status: changed from “Accepted” to “Test”

2013-08-26, 19:04:32 - Csaba Pinter

status: changed from “Test” to “Fixed”

#340 Add support for reading and writing transforms

Make it easier to read/write transforms

2013-06-26, 22:52:17 - Andras Lasso

(In r:947|slicerrt:947) test #340: Generic transforms can now be read/written by cli_transformread/cli_transformwrite, linear transforms can be read/written by cli_lineartransformread/cli_lineartransformwrite

2013-06-26, 22:52:17 - Andras Lasso

status: changed from “New” to “Test”

2013-06-29, 01:11:33 - Andras Lasso

status: changed from “Test” to “Fixed”

#341 Support MatlabBridge on Linux

So far MatlabBridge has been only tested on Windows, make sure it works on Linux as well.

2013-07-02, 01:29:24 - Andras Lasso

(In r:964|slicerrt:964) re #341: Fixed glob pattern for commanderver script files

2013-07-02, 01:30:52 - Andras Lasso

(In r:965|slicerrt:965) re #341: Removed custom widget from MatlabModuleGenerator (it was just a sample in the template, but not needed)

2013-07-02, 17:21:58 - Andras Lasso

status: changed from “New” to “Test”

2013-07-04, 21:48:57 - Andras Lasso

Somehow the generated .sh file is not recognized as a module, even if executable attribute is set. No error message is printed.

2013-07-04, 21:48:57 - Andras Lasso

status: changed from “Test” to “New”

2013-07-04, 21:49:52 - Andras Lasso

milestone_id: changed from “MatlabBridge 0.3.0” to “MatlabBridge 0.4.0”

2013-07-05, 18:47:58 - Andras Lasso

(In r:979|slicerrt:979) re #341: Change the current directory in the Matlab script launcher proxy to the MatlabCommander directory, otherwise the MatlabCommander.so file is not found

2013-07-05, 18:50:05 - Andras Lasso

Remaining issue: CLI modules have to be executables and with a filename that doesn’t contain ‘.’ => module generator should set the executable attribute + maybe the .sh extension should be removed from the proxy script

2013-07-05, 18:50:05 - Andras Lasso

status: changed from “New” to “Accepted”

2013-07-08, 12:42:27 - Andras Lasso

(In r:983|slicerrt:983) re #341: Removed .sh extension from proxy files (only those files are recognized as CLIs that don’t have an extension). Set permission of generated proxy as executable.

2013-07-08, 12:56:22 - Adam Rankin

(In r:984|slicerrt:984) test #341: Fixed linux build errors. CLIs are now correctly generated and found by Slicer.

2013-07-08, 12:56:22 - Adam Rankin

status: changed from “Accepted” to “Test”

2013-07-10, 20:33:59 - Andras Lasso

status: changed from “Test” to “Fixed”

#342 Set default matlab process path automatically

Try to get Matlab executable path automatically

Slicer.ini application settings

SLICER_MATLAB_EXECUTABLE_PATH environment variable

Windows App Paths

Default: matlab.exe or /usr/local/bin/matlab

2013-07-02, 16:51:15 - Andras Lasso

(In r:968|slicerrt:968) test #342: Use the Windows app path value if Matlab process path is not defined explicitly

2013-07-02, 16:51:15 - Andras Lasso

status: changed from “New” to “Test”

2013-07-04, 21:50:13 - Andras Lasso

status: changed from “Test” to “Fixed”

#343 Matlab launching sometimes fails

Launching a matlab module gives this error on some computers:

ERROR: In ..\..\..\..\Slicer-1\Base\QTCLI\vtkSlicerCLIModuleLogic.cxx, line 1642 vtkSlicerCLIModuleLogic (00000000163F6870): new module standard error:

‘C:/Program’ is not recognized as an internal or external command, operable program or batch file.

2013-07-02, 16:26:18 - Andras Lasso

(In r:966|slicerrt:966) test #343: Added quotation mark to allow launching matlab.exe even if it’s in a path that contains a space

2013-07-02, 16:26:18 - Andras Lasso

status: changed from “New” to “Test”

2013-07-02, 16:29:27 - Andras Lasso

(In r:967|slicerrt:967) re #343: Adding quotation mark to all the proxy .bat files

2013-07-04, 21:50:21 - Andras Lasso

status: changed from “Test” to “Fixed”

#344 Update MatlabBridge version id to 0.3.0

2013-07-02, 17:20:04 - Andras Lasso

(In r:969|slicerrt:969) fixed #344: Updated MatlabBridge version to 0.3.0

2013-07-02, 17:20:04 - Andras Lasso

status: changed from “New” to “Fixed”

#345 MatlabBridge cli_pointvectordecode fails if fiducial list contain only one point

2013-07-02, 17:55:09 - Andras Lasso

(In r:970|slicerrt:970) test #345: Fix cli_pointvectordecode for single-point input (it’s not a cell, so should be used as is instead of calling cell2mat)

2013-07-02, 17:55:09 - Andras Lasso

status: changed from “New” to “Test”

2013-07-04, 21:50:25 - Andras Lasso

status: changed from “Test” to “Fixed”

#346 Error messages are logged about number collimator entries when loading RT plans

2013-07-04, 18:50:58 - Csaba Pinter

(In r:976|slicerrt:976) Fixed #346: Re-arranged logging in collimator reading code to prevent invalid errors; Eliminating hierarchy index in parent error message (DICOM beam indices start at 1, hierarchy indices start at 0, and the node has to be added to the scene first)

2013-07-04, 18:50:58 - Csaba Pinter

status: changed from “New” to “Fixed”

#347 Replace Patient Hierarchy finger icon for showing volumes

The finger pointing to the right is not indicative enough, and may be misleading (some people have the module on the right).

2013-08-01, 19:13:38 - pzaffino

(In r:1055|slicerrt:1055) Re #347: change implementation and document the code

2013-08-01, 19:13:38 - pzaffino

assigned_to_id: changed from null to “pzaffino”

2013-08-09, 23:32:54 - pzaffino

What are you meaning? I didn’t understand sorry.

2013-08-12, 00:29:01 - Csaba Pinter

Meaning by what? You accidentally entered the wrong ticket number (this one) when committing to something else and the system assigned it to you. I’m removing you then.

2013-08-12, 00:29:01 - Csaba Pinter

assigned_to_id: changed from “pzaffino” to null

2013-08-26, 23:12:02 - Csaba Pinter

priority: changed from “Normal (3)” to “Low (4)”

2013-09-19, 17:39:58 - Csaba Pinter

Painting roll added to replace the finger icon for volumes in revision 1166

2013-09-19, 17:39:58 - Csaba Pinter

status: changed from “New” to “Test”

2013-09-19, 18:06:19 - Csaba Pinter

status: changed from “Test” to “Accepted”

2013-09-20, 20:28:44 - Csaba Pinter

(In r:1170|slicerrt:1170) Re #29: PlanarImage hidden module created. Its logic is used by DicomRtImport when RT images are loaded. Every planar image (for now they are all RT images) has a PlanarImage parameter set, with the image itself, the displayed model and the texture volume. Re #414: vtkSlicerPlanarImageModuleLogic can be used as an example for logic and parameter set node relations Re #411: vtkMRMLPlanarImageNode can be used as an example for the new reference mechanism Fixed #347: New icon for showing volumes in the Patient Hierarchy tree

2013-09-20, 20:28:44 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2013-09-20, 20:28:44 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

2013-09-20, 20:28:54 - Csaba Pinter

milestone_id: changed from “SlicerRt 1.0” to “SlicerRt 0.12”

#348 Undo/redo support for subject hierarchy reparenting

Need to undo any operation that changes the Subject Hierarchy tree structure

2014-01-22, 19:00:51 - Csaba Pinter

summary: changed from “Undo/redo support for patient hierarchy reparenting” to “Undo/redo support for subject hierarchy reparenting”

2014-01-22, 19:00:51 - Csaba Pinter

description: changed from “Need to undo any operation …” to “Need to undo any operation …”

2015-05-28, 15:38:07 - Csaba Pinter

Is this really necessary? I don’t remember who suggested it and why.

2015-05-28, 15:40:25 - Greg Sharp

Add to wishlist?

2015-05-28, 15:43:02 - Csaba Pinter

Well this is already the wishlist :) I just don’t see the utility of this. One can do the inverse of the drag&drop if wants to undo.

2015-05-28, 15:49:21 - Greg Sharp

I don’t have any information about this ticket either. Seems ok to close.

2015-09-17, 19:10:14 - Csaba Pinter

status: changed from “New” to “Invalid”

#349 Generalize patient hierarchy to subject hierarchy

Meeting page: http://www.na-mic.org/Wiki/index.php/2013_Summer_Project_Week_Breakout_Session:RT#Patient_Hierarchy

2013-11-03, 15:25:41 - Csaba Pinter

This is a duplicate of #406

2013-11-03, 15:25:41 - Csaba Pinter

status: changed from “New” to “Invalid”

#350 Split SlicerRtCommon into utility and constants

There are a lot of constants in SlicerRtCommon, while it also contains utility functions. It would be good to have a SlicerRtConstants class that contains these constants, and provides python wrapping for them.

Also probably move constants from common to their class of usage where no other class uses those

Change static members into static function so that they can be called from python (to avoid copy-paste errors and regressions when the constants are changed). Do it similarly to what was done in vtkMRMLSubjectHierarchyConstants: static const std::string GetSubjectHierarchyNodeNamePostfix() { return ‘_SubjectHierarchy’; };

2013-09-05, 14:36:21 - Csaba Pinter

working_hours: changed from “0.0” to “2.0”

2013-09-05, 14:36:21 - Csaba Pinter

total_working_hours: changed from “0.0” to “2.0”

2013-09-05, 14:38:37 - Csaba Pinter

milestone_id: changed from “SlicerRt 1.0” to “SlicerRt 0.12”

2013-09-27, 20:12:10 - Csaba Pinter

description: changed from “There are a lot of constant…” to “There are a lot of constant…”

2013-11-01, 18:00:10 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.12” to “SlicerRt 0.13”

2013-12-30, 00:30:04 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.13” to “SlicerRt 0.14”

2013-12-30, 02:22:13 - Csaba Pinter

priority: changed from “Normal (3)” to “Low (4)”

2014-01-21, 04:27:55 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.14” to “SlicerRt 1.0”

2014-10-23, 21:17:32 - Csaba Pinter

description: changed from “There are a lot of constant…” to “There are a lot of constant…”

2014-11-07, 15:37:43 - Csaba Pinter

milestone_id: changed from “SlicerRt 1.0” to “SlicerRt 0.16”

2015-06-04, 22:09:42 - Csaba Pinter

Moved to 0.19

2015-06-04, 22:09:42 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.18” to “SlicerRt 0.19”

2016-04-18, 04:20:54 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.19” to “SlicerRt 1.1”

2016-12-23, 21:51:55 - Csaba Pinter

milestone_id: changed from “SlicerRt 1.1” to “Future”

#351 Deformation Field Visualizer documentation should include guide for colors

Contour mode currently assigns color based on vector magnitude.

2013-07-04, 20:11:56 - Franklin King

summary: changed from “Deformation Field VIsualizer documentation should include guide for colors” to “Deformation Field Visualizer documentation should include guide for colors”

2013-08-26, 21:19:23 - Csaba Pinter

milestone_id: changed from “SlicerRt 1.0 (2013-09)” to “TransformVisualizer 0.1.0”

2013-12-15, 14:02:46 - Andras Lasso

Component: changed from “SlicerRt modules” to “TransformVisualizer”

2013-12-15, 15:23:55 - Andras Lasso

There are many important fixes in TransformVisualizer 0.2.0 already, so submit it to the extension index and move all unresolved tickets to 0.3.0

2013-12-15, 15:23:55 - Andras Lasso

milestone_id: changed from “TransformVisualizer 0.2.0” to “TransformVisualizer 0.3.0”

2014-04-17, 16:52:35 - Andras Lasso

Fixed all known transform visualization issues and moved the functionality to the Slicer core (2014-04-17).

2014-04-17, 16:52:35 - Andras Lasso

status: changed from “New” to “Fixed”

#352 Deformation Field Visualizer should allow for easier changing of colors

Colors can currently be changed from the color module, but it would be more convenient to introduce a way to modify the color table from within the DefFieldVisu module.

Colors tables also doesn’t assign colors based on exact values and color assignments can change when the number of colors in the color table is changed.

2013-08-06, 20:11:26 - Franklin King

milestone_id: changed from “SlicerRt 0.11.0 (2013-07)” to “TransformVisualizer 0.1.0”

2013-12-15, 14:02:46 - Andras Lasso

Component: changed from “SlicerRt modules” to “TransformVisualizer”

2013-12-15, 15:23:55 - Andras Lasso

There are many important fixes in TransformVisualizer 0.2.0 already, so submit it to the extension index and move all unresolved tickets to 0.3.0

2013-12-15, 15:23:55 - Andras Lasso

milestone_id: changed from “TransformVisualizer 0.2.0” to “TransformVisualizer 0.3.0”

2014-04-17, 16:52:35 - Andras Lasso

Fixed all known transform visualization issues and moved the functionality to the Slicer core (2014-04-17).

2014-04-17, 16:52:35 - Andras Lasso

status: changed from “New” to “Fixed”

#353 Deformation Field Visualizer’s default color for ‘negligible’ deformation should be changed to something other than gray

Current color for negligible can appear to be a bug even though it is intentionally gray. Color should be changed to something else.

2013-07-12, 17:31:20 - Franklin King

status: changed from “New” to “Accepted”

2013-07-15, 22:09:07 - Franklin King

(In r:1016|slicerrt:1016) re #353: Changed negligible color from gray to blue

2013-07-15, 22:09:15 - Franklin King

status: changed from “Accepted” to “Test”

2013-08-06, 20:11:30 - Franklin King

milestone_id: changed from “SlicerRt 0.11.0 (2013-07)” to “TransformVisualizer 0.1.0”

2013-08-08, 03:36:12 - Franklin King

status: changed from “Test” to “Fixed”

#354 Deformation Field Visualizer should be in a separate extension

Could still be hosted on SlicerRT space, but in a separate directory similarly to MatlabBridge.

2013-07-11, 01:29:53 - Csaba Pinter

milestone_id: changed from null to “SlicerRt 1.0 (2013-06)”

2013-08-26, 21:19:30 - Csaba Pinter

milestone_id: changed from “SlicerRt 1.0 (2013-09)” to “TransformVisualizer 0.1.0”

2013-08-27, 13:25:32 - Csaba Pinter

status: changed from “New” to “Fixed”

#355 Support MatlabBridge on Mac

MatlabBridge should work an MacOS, but it has not been tested yet.

2013-07-08, 12:40:20 - Andras Lasso

Component: changed from “SlicerRt modules” to “Matlab bridge”

2013-07-08, 12:59:21 - Andras Lasso

The module generation and execution seems to work on linux (need still some testing), so there is a good chance that it’ll work on Mac as well.

2013-07-08, 12:59:21 - Andras Lasso

status: changed from “New” to “Test”

2013-07-10, 20:34:04 - Andras Lasso

status: changed from “Test” to “Fixed”

2014-09-26, 21:45:03 - Andrey Fedorov

@lassoan I tested on mac with Matlab R2013b, and the tutorial example works.

FYI, I got the following warnings on the console:

Warning: BITCMP(A,N) will not accept integer valued input N in a future release. Use BITCMP(A,ASSUMEDTYPE) instead.

In cli_commandserver>ReadWithTimeout at 222 In cli_commandserver>ReadOpenIGTLinkMessage at 140 In cli_commandserver>ReadOpenIGTLinkStringMessage at 124 In cli_commandserver at 73 In run at 63 Warning: BITCMP(A,N) will not accept integer valued input N in a future release. Use BITCMP(A,ASSUMEDTYPE) instead. In cli_commandserver>ReadWithTimeout at 222 In cli_commandserver>ReadOpenIGTLinkMessage at 140 In cli_commandserver>ReadOpenIGTLinkStringMessage at 124 In cli_commandserver at 73 In run at 63 Warning: BITCMP(A,N) will not accept integer valued input N in a future release. Use BITCMP(A,ASSUMEDTYPE) instead. In cli_commandserver>ReadWithTimeout at 222 In cli_commandserver>ReadOpenIGTLinkMessage at 140 In cli_commandserver>ReadOpenIGTLinkStringMessage at 124 In cli_commandserver at 73 In run at 63 Warning: BITCMP(A,N) will not accept integer valued input N in a future release. Use BITCMP(A,ASSUMEDTYPE) instead. In cli_commandserver>ReadWithTimeout at 222 In cli_commandserver>ReadOpenIGTLinkMessage at 143 In cli_commandserver>ReadOpenIGTLinkStringMessage at 124 In cli_commandserver at 73 In run at 63

2014-09-27, 19:26:02 - Andras Lasso

Thanks for testing this. Added #655 to remember to remove the deprecated method call.

#356 MatlabCommander crashes if long reply is received

Send the following command to MatlabCommander: dbstop in DebugStop The commander crashes.

2013-07-07, 20:16:04 - Andras Lasso

(In r:982|slicerrt:982) re #356: Fixed MatlabCommander crash. Fixed return string size computation. Added filtering of the return string: newline characters are replaced by ‘|’ character.

2013-07-07, 20:16:16 - Andras Lasso

status: changed from “New” to “Test”

2013-07-08, 13:00:42 - Andras Lasso

(In r:985|slicerrt:985) re #356: Incremented MatlabBridge revision

2013-07-10, 20:34:08 - Andras Lasso

status: changed from “Test” to “Fixed”

#357 Add Plastimatch wrapper

Add the Plastimatch wrapper implemented at the Slicer summer project week 2013. It allows to call Plastimatch as a Python module (in the shell embedded in Slicer), passing-getting images as Slicer node

2013-07-09, 15:11:31 - Csaba Pinter

@pzaffino: When exiting Slicer, there is a crash when uninstantiating the Plastimatch module. Can you please take a look at it?

This is the call stack: vtkSlicerPlastimatchModuleLogic.dll!vtkSlicerPlastimatchLogic::~vtkSlicerPlastimatchLogic() Line 66 C++ vtkSlicerPlastimatchModuleLogic.dll!vtkSlicerPlastimatchLogic::

1
2
3
4
5
6
7
8
vector deleting destructor'()  + 0x7f bytes  C++
   vtkCommon.dll!vtkObjectBase::UnRegisterInternal(vtkObjectBase * __formal=0x0000000000000000, int check=0)  Line 286 + 0x31 bytes  C++
   vtkCommon.dll!vtkObject::UnRegisterInternal(vtkObjectBase * o=0x0000000000000000, int check=0)  Line 905  C++
   vtkCommon.dll!vtkObjectBase::UnRegister(vtkObjectBase * o=0x0000000000000000)  Line 190  C++
   vtkCommon.dll!vtkSmartPointerBase::~vtkSmartPointerBase()  Line 64  C++
   qSlicerBaseQTCore.dll!vtkSmartPointer<vtkMRMLAbstractLogic>::~vtkSmartPointer<vtkMRMLAbstractLogic>()  + 0x2e bytes  C++
   qSlicerBaseQTCore.dll!qSlicerAbstractCoreModulePrivate::~qSlicerAbstractCoreModulePrivate()  Line 73 + 0xe bytes  C++
   qSlicerBaseQTCore.dll!qSlicerAbstractCoreModulePrivate::
scalar deleting destructor’() + 0x31 bytes C++ qSlicerBaseQTCore.dll!QScopedPointerDeleter::cleanup(qSlicerAbstractCoreModulePrivate * pointer=0x0000000015f74da0) Line 62 + 0x30 bytes C++ qSlicerBaseQTCore.dll!QScopedPointer<qSlicerAbstractCoreModulePrivate,QScopedPointerDeleter >::~QScopedPointer<qSlicerAbstractCoreModulePrivate,QScopedPointerDeleter >() Line 101 C++ qSlicerBaseQTCore.dll!qSlicerAbstractCoreModule::~qSlicerAbstractCoreModule() Line 88 + 0xe bytes C++ qSlicerBaseQTGUI.dll!qSlicerAbstractModule::~qSlicerAbstractModule() Line 50 + 0x1a bytes C++ qSlicerBaseQTGUI.dll!qSlicerLoadableModule::~qSlicerLoadableModule() Line 58 + 0x19 bytes C++ qSlicerPlastimatchModule.dll!qSlicerPlastimatchModule::~qSlicerPlastimatchModule() Line 62 + 0x1a bytes C++ qSlicerPlastimatchModule.dll!qSlicerPlastimatchModule::`vector deleting destructor'() + 0x7f bytes C++ qSlicerBaseQTCore.dll!ctkAbstractFactoryItem::uninstantiate() Line 163 + 0x35 bytes C++ qSlicerBaseQTCore.dll!ctkAbstractFactory::uninstantiate(const QString & itemKey={...}) Line 265 C++ qSlicerBaseQTCore.dll!qSlicerAbstractModuleFactoryManager::uninstantiateModule(const QString & moduleName={...}) Line 436 C++

qSlicerBaseQTCore.dll!qSlicerModuleFactoryManager::uninstantiateModule(const QString & name={…}) Line 238 C++ qSlicerBaseQTCore.dll!qSlicerModuleFactoryManager::unloadModule(const QString & name={…}) Line 225 C++ qSlicerBaseQTCore.dll!qSlicerModuleFactoryManager::unloadModules() Line 196 + 0x12 bytes C++ qSlicerBaseQTCore.dll!qSlicerModuleFactoryManager::~qSlicerModuleFactoryManager() Line 64 + 0xa bytes C++ qSlicerBaseQTCore.dll!qSlicerModuleFactoryManager::`vector deleting destructor’() + 0x7f bytes C++ QtCored4.dll!QObjectPrivate::deleteChildren() Line 1955 + 0x35 bytes C++ QtCored4.dll!QObject::~QObject() Line 948 C++ qSlicerBaseQTCore.dll!qSlicerModuleManager::~qSlicerModuleManager() Line 54 + 0x1a bytes C++

2013-07-09, 15:15:29 - Csaba Pinter

(In r:991|slicerrt:991) Re #357: Moving Plastimatch wrapper module to experimental

2013-07-09, 15:56:30 - pzaffino

@pinter I’m not able to reproduce the problem. Which environment are you using (OS, Slicer revision, ecc ecc)?

2013-07-09, 16:01:39 - Csaba Pinter

I’m using Slicer rev. 22128 and the latest SlicerRT on Windows 7 64 bit. The crash occurs both in release and debug modes. I’ll build the latest Slicer tonight and try with that too.

If you cannot reproduce this problem, then I’ll try to investigate.

2013-07-09, 20:34:37 - Csaba Pinter

The crash is caused by the non-conventional use of the string members. Please change that according to the comments in the commit and see if the crash disappears. Thanks!

2013-07-10, 21:15:37 - Csaba Pinter

(In r:995|slicerrt:995) Re #357: Disable building Plastimatch wrapper until it makes Slicer crash on exit

2013-07-15, 15:59:17 - Csaba Pinter

status: changed from “New” to “Accepted”

2013-07-16, 15:14:05 - pzaffino

(In r:1017|slicerrt:1017) Re #357: enable plastimatch wrapper build as experimental module

2013-08-02, 14:44:15 - Greg Sharp

(In r:1058|slicerrt:1058) Re #357 Add itk rectify hack for AAPM demo

2013-08-15, 14:59:27 - Csaba Pinter

milestone_id: changed from null to “SlicerRt 0.11.0 (2013-07)”

2013-08-15, 18:59:05 - pzaffino

(In r:1096|slicerrt:1096) Re #357: Make warp landmarks an optional command

2013-08-21, 12:36:00 - Csaba Pinter

summary: changed from “Add Plastimatch warpper” to “Add Plastimatch wrapper”

2013-08-26, 15:29:24 - Csaba Pinter

(In r:1120|slicerrt:1120) Re #357: First round of code review in the Plastimatch wrapper module

2013-08-26, 15:55:56 - Csaba Pinter

(In r:1121|slicerrt:1121) Re #357: Second round of code review in the Plastimatch wrapper module

2013-08-26, 15:56:36 - Csaba Pinter

@pzaffino @gregsharp I reviewed the code of the Plastimatch wrapper and did two commits (1120, 1121). As Greg requested, here are my comments about the code for future reference, and also a short list of things to do:

Also I deleted some member variables that seemed to be used locally only (InputTransformation, WarpedImage, OutputTransformation). Please confirm that this was the case.

2013-08-26, 16:12:27 - Csaba Pinter

(In r:1122|slicerrt:1122) Re #357: Renaming Plastimatch (wrapper) module to PlastimatchPy. This has to be done in separate steps due to SVN limitations

2013-08-26, 16:13:08 - Csaba Pinter

(In r:1123|slicerrt:1123) Re #357: Renaming Plastimatch (wrapper) module to PlastimatchPy. This has to be done in separate steps due to SVN limitations

2013-08-26, 16:21:15 - Csaba Pinter

(In r:1124|slicerrt:1124) Test #357: Renaming Plastimatch (wrapper) module to PlastimatchPy. This has to be done in separate steps due to SVN limitations. Last step.

2013-08-26, 16:21:15 - Csaba Pinter

status: changed from “Accepted” to “Test”

2013-08-26, 16:31:23 - Csaba Pinter

Further changes to this module should be done in a different ticket.

2013-08-26, 16:31:23 - Csaba Pinter

status: changed from “Test” to “Fixed”

2013-08-26, 16:59:25 - Csaba Pinter

(In r:1126|slicerrt:1126) Re #357: Fixed error in PlastimatchPy logic constructor

2013-08-28, 13:21:01 - pzaffino

(In r:1133|slicerrt:1133) Re #357: Fixed bad names as suggested by Csaba

2013-08-28, 13:22:54 - pzaffino

Bad names changed. Further changes will be done in a different ticket.

#358 Offer module editing and Slicer restart after MatlabBridge module generation

Currently the user has to manually open the generated module in an editor and manually restart Slicer. It could be a nice convenience feature to allow performing these operations with a single click.

2013-07-09, 15:49:21 - Andras Lasso

QSlicerApplication::restart can be used for performing a Slice restart

2015-09-30, 01:58:45 - Andras Lasso

milestone_id: changed from “Future” to “MatlabBridge 0.14.0”

2015-09-30, 02:00:17 - Andras Lasso

test #358: Added buttons for module file editing and slicer restart Commit: r:2466|slicerrt:2466

2015-09-30, 02:00:17 - Andras Lasso

assigned_to_id: changed from null to “lassoan”

2015-09-30, 02:00:17 - Andras Lasso

status: changed from “New” to “Test”

2015-10-01, 18:55:26 - Andras Lasso

status: changed from “Test” to “Fixed”

#359 Add automatic tests for MatlabBridge

Module generation Module execution Parameter reading/writing

#360 Matlab module execution fails if the user directory name contains a space

—–Original Message—– From: slicer-users-bounces@bwh.harvard.edu [mailto:slicer-users-bounces@bwh.harvard.edu] On Behalf Of Andrew Wheatley Sent: Wednesday, July 10, 2013 2:56 PM To: slicer-users@bwh.harvard.edu Subject: [slicer-users] Matlab access: Qt: Untested Windows version 6.2 detected!

I’m walking through this tutorial (http://www.slicer.org/slicerWiki/images/a/a7/MatlabBridgeTutorial.pdf) and I get an error at section 3.7. The error reads:

Qt: Untested Windows version 6.2 detected! Error: Application does NOT exists [C:/Users/Admin]

I think the problem is that the username is ‘Admin Andrew’ and Qt is choking on the space in between Admin and Andrew. Is there a workaround for this? I tried renaming the user account so that it didn’t have any spaces, including editing the registry, but it broke some programs, so I reverted back to the original username. I am running Windows 8 64 bit pro.

Thanks,

Andrew Wheatley, BSc Research Technologist Robarts Research Institute, Rm 2254 www.imaging.robarts.ca\~gep p +1.519.931.5777 ext. 24044

2013-07-10, 20:35:57 - Gabor Fichtinger

I am very glad to see this traffic!!

From: Andras Lasso (lassoan) [mailto:slicerrt@alerts.assembla.com] Sent: July-10-13 4:34 PM

2013-07-10, 22:23:59 - Andras Lasso

(In r:999|slicerrt:999) test #360: Added missin quotation mark to proxy bat file template

2013-07-10, 22:23:59 - Andras Lasso

status: changed from “New” to “Test”

2013-07-10, 22:26:11 - Andras Lasso

(In r:1000|slicerrt:1000) re #360: Increased MatlabBridge version to 0.5.0

2013-07-11, 20:13:18 - Andras Lasso

status: changed from “Test” to “Fixed”

#361 Avoid double module execution to find out if there is output parameter or not

Currently the way to figure out if the custom Matlab function returns any value or not, we try with and without an output. Find an alternative way, as this trial may have side effects (e.g., when additional user input is needed).

2013-07-10, 22:13:02 - Andras Lasso

(In r:998|slicerrt:998) test #361: Use evalc to avoid the need to run eval twice (with and without expecting an output)

2013-07-10, 22:13:02 - Andras Lasso

status: changed from “New” to “Test”

2013-07-11, 20:13:22 - Andras Lasso

status: changed from “Test” to “Fixed”

#362 Create Parameter Hierarchy

Create a parameter hierarchy extension for Slicer that allows importing and browsing of 4D data.

2013-07-10, 21:54:45 - Matthew Holden

(In r:997|slicerrt:997) Re #362: Initial import of ParameterHierarchy extension. Created using the LoadableExtensionTemplate.

2013-07-10, 21:54:45 - Matthew Holden

assigned_to_id: changed from null to “mholden8”

2013-08-21, 21:18:37 - Csaba Pinter

Is this ticket still relevant? It should be moved to the MultiDimension 0.1 milestone, and set to fixed if it’s done

2013-08-26, 21:15:11 - Csaba Pinter

milestone_id: changed from null to “MultiDimension 0.1.0”

2013-09-03, 17:29:59 - Matthew Holden

This ticket has been replaced by #368.

2013-09-03, 17:29:59 - Matthew Holden

status: changed from “New” to “Invalid”

#363 Common resampling and conversion utility functions

http://www.na-mic.org/Wiki/index.php/Common_resampling_and_conversion_utility_functions_in_Slicer

Two classes: SlicerRtCommon/vtkVolumesOrientedResampleUtility SlicerRtCommon/vtkVolumesConvertUtility

2013-09-04, 19:16:35 - Csaba Pinter

This ticket lives on under #303

2013-09-04, 19:16:35 - Csaba Pinter

status: changed from “New” to “Invalid”

#364 Sequence metafile import into MultiDimension hierarchy

Importer module for sequence metafiles (with oriented US frames and multiple transforms per timepoint)

2013-07-11, 12:46:39 - Andras Lasso

Component: changed from null to “MultiDimension”

2013-07-24, 18:42:24 - Matthew Holden

status: changed from “New” to “Accepted”

2013-07-24, 19:13:21 - Matthew Holden

(In r:1028|slicerrt:1028) Re #364: Initial import of metafile importer module.

2013-07-24, 21:59:54 - Andras Lasso

Let me know when there is something to test.

2013-07-25, 16:52:10 - Matthew Holden

(In r:1034|slicerrt:1034) Re #364: Transforms from sequences metafile can be imported into a MultiDimension hierarchy.

2013-07-29, 15:00:06 - Matthew Holden

(In r:1043|slicerrt:1043) Re #364: Added reading of ultrasound images from metafile into a collection of volumes.

2013-07-29, 20:45:26 - Andras Lasso

Nice progress. Some things to do:

2013-07-30, 15:07:54 - Matthew Holden

(In r:1048|slicerrt:1048) Re #364: Fixing various Slicer aesthetics in MetafileImporter module (ie category/help/contributors).

2013-07-30, 16:33:40 - Matthew Holden

(In r:1049|slicerrt:1049) Re #364: Added MetafileImporter to the Slice data importer. Sequence metafiles can be loaded using ‘drag-and-drop’.

2013-08-07, 15:49:26 - Matthew Holden

(In r:1066|slicerrt:1066) Re #364: Fixed offset in image slices when read from sequence metafile.

2013-08-08, 18:07:56 - Matthew Holden

(In r:1075|slicerrt:1075) Re #364: Ensure ultrasound image slice nodes have an ID before adding to hierarchy.

2013-09-16, 19:09:31 - Andras Lasso

Tested and it works correctly.

2013-09-16, 19:09:31 - Andras Lasso

status: changed from “Accepted” to “Fixed”

2013-09-24, 16:30:04 - Andras Lasso

(In r:1179|slicerrt:1179) re #364: Made the seq metafile importer module hidden from the UI (available through the standard data load) and removed unused foobar widget. Disabled ‘none’ selection in MultiDimensionModuleWidget to select a node by default when switching to the module.

2013-11-04, 16:54:22 - Andras Lasso

Renamed MultiDimension extension to MultidimData

2013-11-04, 16:54:22 - Andras Lasso

Component: changed from “MultiDimension” to “MultidimData”

#365 MultiDimension browser module

Uses a slider to browse along a selected dimension; similar to multi-volume browser module

2013-07-31, 16:35:53 - wangk

(In r:1054|slicerrt:1054) Re #365: Check in the WIP multidimension explorer module. with this module user can go through all nodes inside the multidimension hierarchy.

2013-08-07, 16:04:38 - Matthew Holden

status: changed from “New” to “Accepted”

2013-08-08, 18:31:43 - Matthew Holden

(In r:1076|slicerrt:1076) Re #365: Added browsing of generic nodes in the MultiDimension hierarchy. Can browse nodes with the same name using ‘virtual’ nodes.

2013-09-12, 19:55:37 - Andras Lasso

(In r:1150|slicerrt:1150) re #365: Added Multi-dimension browser loadable module. It will replace the MultiDimensionExplorer scripted module. Functional but not cleaned up yet. Renamed MultiDimension category to Multi-dimension.

2013-09-12, 21:24:11 - pieper

Just a stylistic comment: I think the word is typically multidimensional (no hyphen). Can we use that everywhere?

2013-09-12, 22:14:13 - Andras Lasso

Yes, the word ‘multidimensional’ is one word. I’m not sure about the word ‘multi-dimension’ (maybe this word doesn’t even exist).

Should the extension be called ‘Multidimensional’ or ‘Multidimensional data’ or …?

2013-09-12, 22:24:32 - pieper

I guess I’d just say ‘Dimension Browser’ (this already implies ‘multi’). The data being browsed would be ‘Multidimensional Data’. by analogy I think a ‘Dimension Hierarchy’ would create a ‘Multidimensional Data Structure’.

2013-09-13, 15:46:15 - Andras Lasso

(In r:1154|slicerrt:1154) re #365: Optimized sequence metafile imprt performance, somewhat cleaned up code

2013-09-13, 17:23:09 - Andras Lasso

(In r:1155|slicerrt:1155) re #365: Create browser node when entering the module

2013-09-13, 19:54:25 - Andras Lasso

(In r:1157|slicerrt:1157) re #365: Fixed memory leaks in multidimensional data importer

2013-09-16, 19:09:54 - Andras Lasso

assigned_to_id: changed from “mholden8” to “lassoan”

2013-09-17, 21:46:08 - Andras Lasso

(In r:1161|slicerrt:1161) re #365: Made the multidimensional data node names nicer. Now the node name is: hierarchy/node (dimension=valuewithunit). For example: MySequence1/Image (time=123.45s)

2013-09-19, 13:30:38 - Andras Lasso

(In r:1165|slicerrt:1165) re #365: Removed redundant modules and small fixes.

Removed redundant python modules: MultiDimensionComposer is replaced by MultiDimension, MultiDimensionExplorer is replaced by MultiDimensionBrowser (it would have been difficult to implement all the needed functionalities in Python, but part of the Python modules will be revisited later, they may be reusable as examples for manipulating multi-dimensional data in Python).

Made GetDataNodesAtValue and GetNonDataNodesAtValue methods safer (vtkCollection is now created and deleted by the same class, thus there is less chance for memory leaks).

Removed < and > characters from attributes, as they break the XML parsing of the MRML scene file.

2013-09-20, 20:54:16 - Andras Lasso

(In r:1171|slicerrt:1171) re #365: Added MultiDimension.NodeType attribute (Root, Sequence, DataConnector, VirtualOutput) to be able to distinguish between MultiDimension node types. Removed asserts (replaced by handling of the error and logging).

2013-09-25, 19:32:04 - Andras Lasso

(In r:1187|slicerrt:1187) re #365: Implemented removing of orphan virtual output data nodes (those nodes that are not available for the currently selected parameter value) from the scene

2013-09-26, 22:29:16 - Andras Lasso

(In r:1192|slicerrt:1192) re #365: Fixed removal of orphan nodes (even some non-orphan nodes were removed, which caused disappearing virtual output nodes)

2013-09-26, 22:43:05 - Andras Lasso

(In r:1193|slicerrt:1193) re #365: Renamed MultiDimension.SourceDataName to MultiDimension.DataRole (to better reflect the actual meaning of the role, ‘source’ is meaningful only if the data is imported from some external source)

2013-09-27, 21:02:09 - Andras Lasso

(In r:1197|slicerrt:1197) re #365: Added playback controls (play/pause/prev/next/etc.) to the MultiDimension browser

2013-09-30, 15:46:56 - Andras Lasso

(In r:1198|slicerrt:1198) re #365: Added some code for testing with Slicer core that supports dynamic change of MRML node HideFromEditors property changes

2013-09-30, 20:21:36 - Andras Lasso

(In r:1199|slicerrt:1199) re #365: Added back accidentally removed node copy

2013-10-02, 14:38:20 - Andras Lasso

(In r:1201|slicerrt:1201) re #365: Do only shallow copy of volumes for node browsing (WIP)

2013-11-04, 16:54:22 - Andras Lasso

Renamed MultiDimension extension to MultidimData

2013-11-04, 16:54:22 - Andras Lasso

Component: changed from “MultiDimension” to “MultidimData”

2013-11-06, 01:17:14 - Andras Lasso

(In r:1263|slicerrt:1263) re #365: Use vtkMRMLMultidimDataNode (instead of a generic vtkMRMLHierarchyNode with custom attributes) for storing multidimensional data. There is no need for a connector node for each data node, and a sequence node for each parameter value; and there is no need for node filtering based on node attribute - all allowing better performance and simpler implementation.

2013-11-06, 13:18:05 - Andras Lasso

(In r:1264|slicerrt:1264) re #365: Fixed multiple small issues in MultidimData (register node class, revert accidental find&replace of cell/bundle).

2013-11-06, 22:18:23 - Andras Lasso

(In r:1269|slicerrt:1269) re #365: Implemented saving of vtkMRMLMultidimDataNode. Multiple smaller fixes.

2014-01-02, 21:43:37 - Andras Lasso

(In r:1373|slicerrt:1373) re #365: Fixed build error after Slicer core changes. Multiple small code enhancements.

2014-01-02, 23:14:06 - Andrey Fedorov

(In r:1374|slicerrt:1374) re #365: fix compile error due to missing space in templated class definition

2014-01-16, 15:14:27 - Andras Lasso

Basic implementation is done. Further improvements will be tracked in other tickets.

2014-01-16, 15:14:27 - Andras Lasso

status: changed from “Accepted” to “Fixed”

#366 Generic multi-node importer module

Similar/based on multi-volume importer module, allowing adding multiple existing nodes into a hierarchy

2013-09-16, 19:11:32 - Andras Lasso

Should be part of the MultiDimension (Multidimensional data) module

2013-09-17, 20:21:33 - Matthew Holden

status: changed from “New” to “Accepted”

2013-09-17, 20:22:36 - Matthew Holden

(In r:1160|slicerrt:1160) Re #366: Added display of multi-dimension hierarchies.

2013-09-18, 18:03:04 - Matthew Holden

(In r:1162|slicerrt:1162) Re #366: Data nodes can be added and removed from the hierarchy for a given sequence node.

2013-09-18, 23:23:12 - Matthew Holden

(In r:1164|slicerrt:1164) Re #366: Added functionality to add/remove sequence nodes from the scene and hide data nodes associated with a particular sequence node.

2013-09-19, 02:32:41 - Andras Lasso

Very well done, Matthew. A few comments:

Note that node ids are for internal use only, as Slicer may change them when a scene is loaded/imported (to guarantee uniqueness).

2013-09-19, 14:30:08 - Andras Lasso

Two more things:

2013-09-19, 20:01:44 - Matthew Holden

(In r:1167|slicerrt:1167) Re #366: Modified interface as per Andras’ first set of comments; still need to make editing functional (ie editing the values appearing in the interface does not change the true values currently). Fixed error when removing sequence or data nodes from the scene.

2013-09-20, 16:55:06 - Matthew Holden

(In r:1168|slicerrt:1168) Re #366: Root node, sequence node, and data node properties are editable via the multi-dimension module interface.

2013-09-20, 19:15:03 - Matthew Holden

(In r:1169|slicerrt:1169) Re #366: Added ‘eye’ icon next to data nodes to hide/unhide the data nodes from the scene.

2013-09-20, 20:43:21 - Matthew Holden

Regarding the volume nodes not appearing in the slice viewers after unhide, it seems like this behaviour is consistent with other volume nodes. If a node is added to the scene as hidden, it never appears in the slice viewers. If a node is added to the scene as unhidden, it always appears in the slice viewers. I haven’t been able to find a way to ‘update/refresh’ the slice viewers to check if the hiddenness of the volume nodes has changed. I tried changing the MetafileImporter so it adds the volume nodes for the multi-dimension hierarchy to the scene as unhidden, and indeed, the volume nodes always appear in the slice viewer, even if they are hidden later.

2013-09-20, 20:45:42 - Andras Lasso

I’ve found that if you change the name of the node then it triggers a refresh of the slice viewers’ volume selector.

2013-09-20, 21:10:29 - Andras Lasso

Minor comments:

2013-09-20, 21:35:55 - Andras Lasso

I’m not sure about if the rename hack should work or not (in some cases it worked). Due to some optimization HideFromEditors property is not really changeable (http://www.na-mic.org/Bug/view.php?id=2906). We may request to change this behavior, if it’s a blocking issue for us.

2013-09-20, 21:44:39 - Andras Lasso

A solution that we might consider could be to create an internal scene, which a MultiDimension node would use internally to store all the nodes. When we want to show something in the primary scene then the node could be moved over from the internal scene to the primary scene. It would solve the HideFromEditors issue, the saving issue (now scene saving works only in .mrb format, due to hidden nodes not being saved), and performance optimization could be easier. Let’s talk about this next week.

2013-09-23, 15:38:12 - Matthew Holden

Thanks for the comments Andras. For the eye icon beside the sequence nodes, is this to show/hide the sequence node itself or to show/hide all the data nodes associated with that sequence node?

2013-09-23, 16:43:27 - Andras Lasso

Clicking on the eye icon at the sequence should show/hide all the associated data nodes

2013-09-23, 19:00:38 - Matthew Holden

(In r:1177|slicerrt:1177) Re #366: Made changes according to Andras’ comments: added eye icon to sequence nodes, fixed interface.

2013-09-25, 17:14:41 - Matthew Holden

(In r:1183|slicerrt:1183) Re #366: Fixed crash when loading a new hierarchy node without the required attributes.

2013-09-25, 17:28:26 - Matthew Holden

(In r:1185|slicerrt:1185) Re #366: Require ‘HierarchyType’ and ‘MultiDimension.NodeType’ attributes in the multi-dimension module root node combo box.

2013-09-25, 19:29:40 - Andras Lasso

Could you please expose the ‘SourceDataName’ attribute values in the data nodes list? The SourceDataName value is used for finding corresponding data nodes between different timestamps, so it’s kind of a ‘role’ that the node fulfills. The column should be displayed right after the Name column.

2013-09-25, 19:35:59 - Andras Lasso

The name of the SourceDataName column should be probably something like ‘Role’

2013-09-26, 21:07:21 - Matthew Holden

(In r:1191|slicerrt:1191) Re #366: Added functionality to edit the data node roles.

2013-09-27, 01:33:22 - Andras Lasso

Thanks, it works perfectly! The data node table has become quite wide, so it’s not very convenient to edit. Some layout change could be useful, such as:

2013-09-27, 02:31:47 - Andras Lasso

(In r:1194|slicerrt:1194) re #366: Added null-pointer checks for const char pointers to avoid crashes (e.g., before the fixes the module crashed when parameter unit was not defined)

2013-09-27, 17:28:09 - Matthew Holden

(In r:1195|slicerrt:1195) Re #366: Made changes to the multi-dimension module interface according to Andras’ comments.

2013-11-04, 16:54:22 - Andras Lasso

Renamed MultiDimension extension to MultidimData

2013-11-04, 16:54:22 - Andras Lasso

Component: changed from “MultiDimension” to “MultidimData”

2014-01-21, 02:03:27 - Andras Lasso

milestone_id: changed from “MultidimData 0.1.0” to “MultidimData 0.2.0”

2014-07-19, 13:41:18 - Andras Lasso

milestone_id: changed from “MultidimData 0.2.0” to “MultidimData 0.2.1”

2015-09-30, 16:02:06 - Andras Lasso

status: changed from “Accepted” to “Fixed”

#367 Add common helper functions to the MultiDimension module

Basic functions implemented in the module logic, which helps creating and manipulating MultiDimension hierarchies

2013-07-11, 18:56:19 - wangk

@lassoan: do we need to develop a vtkMRMLMultiDimensionHierarchyNode or we just use vtkMRMLDisplayableHierarchyNode as in PatientHierarchy?

2013-07-11, 18:56:19 - wangk

status: changed from “New” to “Accepted”

2013-07-11, 20:18:00 - Andras Lasso

Just use a vtkMRMLHierarchyNode.

2013-07-11, 20:22:12 - Csaba Pinter

PatientHierarchy uses regular vtkMRMLHierarchyNode objects in most cases (when there is no need to use the same nodes in other modules like Models or Annotations)

2013-07-12, 20:03:46 - wangk

(In r:1007|slicerrt:1007) Re #367: Added in the prototype helper functions for the module and also the composer module.

2013-07-12, 20:05:04 - wangk

next is to develop a very simple prototype multidimension explorer and I will commit it next Monday. Matthew can start to work on these prototype then.

2013-07-31, 16:28:05 - wangk

(In r:1052|slicerrt:1052) Re #367: Changed (add/modify) the public interface to allow easy access to the hierarchy for MultiDimension Explorer module.

2013-10-08, 18:45:59 - wangk

I am changing this ticket to test unless more functions are needed.

2013-10-08, 18:45:59 - wangk

status: changed from “Accepted” to “Test”

2013-11-04, 16:54:22 - Andras Lasso

Renamed MultiDimension extension to MultidimData

2013-11-04, 16:54:22 - Andras Lasso

Component: changed from “MultiDimension” to “MultidimData”

2014-01-21, 02:03:27 - Andras Lasso

milestone_id: changed from “MultidimData 0.1.0” to “MultidimData 0.2.0”

2014-05-06, 15:17:24 - wangk

status: changed from “Test” to “Fixed”

#368 Create MultiDimension extension

The ParameterHierarchy was a name inspired by the implementation (we flatten the multi-dimensional space into a hierarchical tree), so it’s not user-friendly and also confusing for the developers (it focuses on how the functionality is implemented instead of what the intention is).

So, the created extension skeleton and the loadable module inside should be renamed to MultiDimension.

2013-07-11, 14:25:17 - Matthew Holden

(In r:1001|slicerrt:1001) Re #368: Renaming ParameterHierarchy to MultiDimension.

2013-07-11, 14:27:26 - Matthew Holden

(In r:1002|slicerrt:1002) Re #368: Deleting references to ParameterHierarchy.

2013-07-11, 14:33:35 - Andras Lasso

Thanks! Please also:

When you start working on a ticket set its state to Accepted.

2013-07-11, 14:38:30 - Matthew Holden

status: changed from “New” to “Accepted”

2013-07-11, 15:17:51 - Matthew Holden

(In r:1004|slicerrt:1004) Re #368: Renamed LoadableModuleTemplate to MultiDimension, and moved all source code into src directory.

2013-07-25, 14:53:05 - Matthew Holden

(In r:1029|slicerrt:1029) Re #368: Added functionality to store multiple nodes at the same time stamp within the MultiDimension hierarchy.

2013-07-25, 14:55:05 - Matthew Holden

(In r:1030|slicerrt:1030) Re #368: Modified MultiDimension Composer for compatibility with generalization of MultiDimension logic.

2013-07-29, 16:27:27 - Matthew Holden

I would like to change the parameter type from char* to std::string because it is both easier to work with and safer. The overhead should be negligible. Is there a reason why we were using char* as the parameter type in the first place? I will go ahead and make this change unless there are any objections.

2013-07-29, 16:50:29 - Andras Lasso

In general, STL containers cannot be used on public class interfaces because they cannot be Python wrapped. You can try to use std::string and see if Python wrapping works or not. If it works then you can use std::string instead of char* in public interfaces. If not, then you can still use it for private members You may also try to use vtkStdString class, maybe that can be wrapped.

Would be interesting also to ask this on the slicer-devel mailing list.

2013-07-29, 17:07:54 - wangk

I used char* as it is easier to implement. as Andras suggested, if std:string can be wrapped then I think we can switch to it.

2013-07-29, 17:34:12 - Matthew Holden

Python wrapping of std::string seems to work, but may be it would be best to use const char*. This would be more consistent with other vtk classes, including the vtkMRMLNode interface for attributes. Also, I re-read the VTK coding guidelines and my interpretation is that STL containers should be avoided in public class interfaces whenever possible.

2013-07-29, 21:46:36 - Matthew Holden

(In r:1045|slicerrt:1045) Re #368: Added methods to update the hierarchy node values using a map.

2013-07-29, 21:47:44 - Matthew Holden

(In r:1046|slicerrt:1046) Re #368: Hierarchy node values use timestamps from the sequence metafile, rather than frame number.

2013-07-30, 02:32:35 - Matthew Holden

(In r:1047|slicerrt:1047) Re #368: Fixed naming conventions for hierarchy nodes and nodes imported from sequences metafiles.

2013-08-08, 18:03:45 - Matthew Holden

(In r:1074|slicerrt:1074) Re #368: Fixed finding child nodes at a particular timestamp when there are multiple nodes at the timestamp.

2013-08-08, 20:54:12 - Matthew Holden

I would like to standardize the language that we use to refer to various parts of the MultiDimension hierarchy. Much of the language we use at the moment refers to a time series of volumes. To generalize, I propose something like the following (see diagram https://www.assembla.com/spaces/slicerrt/wiki/Multi-dimensonal_data_support):

[MyTimeSequence] -> Call it a RootNode [MyTimeSequence_25.4] -> Call it a SequenceNode [MultiDimensionDataConnector_1] -> Call it a DataConnectorNode [VolumeNode25] -> Call it a DataNode 25.4 -> Call it a Value

I think this would make the interface for the MultiDimension module logic easier to use and the module itself easier to maintain. Terms like ‘ChildNode’ are ambiguous since there are several levels of hierarchy. So this would cause changes in the interface like: AddChildNodeAtTimePoint(…) becomes AddDataNodeAtValue(…), RemoveChildNodeAtTimePoint(…) becomes RemoveSequenceNodeAtValue(…), etc.. I think these function names are more clear.

Of course, if you have better ideas for the naming convention, I’m happy to use those. What do you think?

2013-08-09, 05:51:34 - Andras Lasso

This is an excellent proposition. Please also update the wiki page accordingly.

2013-08-09, 13:48:17 - wangk

I think it makes sense.

2013-08-09, 16:32:33 - Matthew Holden

(In r:1077|slicerrt:1077) Re #368: Changing MultiDimension module logic to use new multi-dimension hierarchy node naming conventions. Updating other modules accordingly.

2013-09-16, 19:12:30 - Andras Lasso

The extension has been created.

2013-09-16, 19:12:30 - Andras Lasso

status: changed from “Accepted” to “Fixed”

2013-11-04, 16:54:22 - Andras Lasso

Renamed MultiDimension extension to MultidimData

2013-11-04, 16:54:22 - Andras Lasso

Component: changed from “MultiDimension” to “MultidimData”

#369 Plastimatch wrapper: introduce macros to get parameters from python shell

2013-07-12, 20:31:25 - pzaffino

(In r:1008|slicerrt:1008) Re #369: Plastimatch wrapper: introduce macros to get parameters from python shell

2013-07-15, 15:57:47 - Csaba Pinter

Component: changed from “infrastructure” to “SlicerRt modules”

2013-07-15, 15:57:53 - Csaba Pinter

status: changed from “New” to “Test”

2013-07-15, 15:57:59 - Csaba Pinter

milestone_id: changed from null to “SlicerRt 0.11.0 (2013-07)”

2013-07-15, 15:59:23 - Csaba Pinter

status: changed from “Test” to “Invalid”

#370 Plastimatch wrapper: more work on macros

2013-07-13, 16:18:21 - pzaffino

(In r:1009|slicerrt:1009) Re #370: Plastimatch wrapper, more work on macros

2013-07-15, 15:58:50 - Csaba Pinter

Please don’t create tickets for every commit. The tickets are for different tasks. This, and also #369 still belong to #357

2013-07-15, 15:58:50 - Csaba Pinter

status: changed from “New” to “Invalid”

#371 Matlab script directory might be set incorrectly on linux

Error message when trying to launch a Matlab module:

Execute command: cd(‘/image/home/usr/staff/lasso/.config/NA-MIC/Extensions-22162/MatlabBridge/lib/Slicer-4.2/cli-modules’); cli_argswrite(‘/tmp/Slicer/32069_MkeVjF7lZe.params’,mytest(cli_argsread({‘–returnparameterfile’,’/tmp/Slicer/32069_MkeVjF7lZe.params’,’–threshold’,’50’,’–inputvolume’,’/tmp/Slicer/DCAGJ_vtkMRMLScalarVolumeNodeC.nrrd’,’–outputvolume’,’/tmp/Slicer/DCAGJ_vtkMRMLScalarVolumeNodeD.nrrd’}))); Response (sent to device ACK): ERROR: Command execution failed. Error using ==> eval Undefined function or method ‘mytest’ for input arguments of type ‘struct’.

The argument for the cd command seems to be wrong, as it should change directory to the MatlabModule directory (such as /image/home/usr/staff/lasso/.config/NA-MIC/Extensions-22162/MatlabModules).

2013-08-05, 19:54:27 - Andras Lasso

milestone_id: changed from “MatlabBridge 0.6.0” to “Future”

2013-08-05, 19:55:08 - Andras Lasso

Deal with this as soon as a linux user reports to have a problem with this.

2013-08-05, 19:55:08 - Andras Lasso

Deal with this as soon as a linux user reports to have a problem with this.

2013-10-24, 05:25:37 - Andras Lasso

Commit https://www.assembla.com/code/dG15GuCs4r4l4UeJe5cbCb/ctGUxGF88r4yH5acwqjQXA/commit/1230 should fix the problem

2013-10-24, 05:25:37 - Andras Lasso

status: changed from “New” to “Test”

2013-10-24, 05:25:51 - Andras Lasso

milestone_id: changed from “Future” to “MatlabBridge 0.8.0”

2013-10-29, 14:16:51 - Andras Lasso

status: changed from “Test” to “Fixed”

#372 Plastimatch wrapper: add capability to get landmarks and linear transformation directly from Slicer environment

2013-07-19, 15:17:11 - pzaffino

(In r:1022|slicerrt:1022) Re #372: Plastimatch wrapper, add capability to get landmarks and linear transformation directly from Slicer environment

2013-08-02, 01:02:46 - Greg Sharp

(In r:1056|slicerrt:1056) Re #372 Fix LPS/RAS conversion bug when using Slicer vtkPoints

2013-08-02, 13:04:25 - pzaffino

(In r:1057|slicerrt:1057) Re #372: first working version of landmark warp (check LPS/RAS conversion)

2013-08-02, 16:43:36 - Greg Sharp

(In r:1059|slicerrt:1059) Re #372 bump plastimatch version

2013-08-02, 18:40:31 - Greg Sharp

(In r:1060|slicerrt:1060) Re #372 Make wrapper use LPS orientation

2013-08-15, 18:24:10 - pzaffino

status: changed from “New” to “Fixed”

2013-08-15, 18:24:20 - pzaffino

milestone_id: changed from null to “SlicerRt 0.11.0 (2013-07)”

2013-08-15, 18:26:40 - Csaba Pinter

This could have been a valid ticket:

  1. It has a well-defined and meaningful name
  2. You already made several commits under this However if you consider this part of the main wrapper development task, then you can leave it closed.

#373 MultiDimension constructor module

this might be a temp module for now to allow easy creation of a multidimension data

2013-07-31, 16:29:56 - wangk

status: changed from “New” to “Accepted”

2013-07-31, 16:31:53 - wangk

(In r:1053|slicerrt:1053) Re #373: Clean up the unnecessary code and small changes to filter the MultiDimension node in the output node.

2013-09-25, 17:19:33 - wangk

set to invalid as the module has been replaced by multidimension module.

2013-09-25, 17:19:33 - wangk

status: changed from “Accepted” to “Invalid”

2013-11-04, 16:54:23 - Andras Lasso

Renamed MultiDimension extension to MultidimData

2013-11-04, 16:54:23 - Andras Lasso

Component: changed from “MultiDimension” to “MultidimData”

#374 Plastimatch wrapper: change implementation and document the code

2013-08-05, 10:00:51 - Csaba Pinter

In slicerrt:1055 Re #347: change implementation and document the code (commit message from: https://www.assembla.com/spaces/slicerrt/tickets/347-replace-patient-hierarchy-finger-icon-for-showing-volumes?comment=338122263#comment:338122263)

2013-08-15, 15:00:04 - Csaba Pinter

Hi Paolo, What is this ticket for?

2013-08-15, 18:11:11 - pzaffino

I did deep changes into the code in order to make it more consistent with your guidelines and I added the documentation in doxygen style.

2013-08-15, 18:14:57 - Csaba Pinter

Two comments here:

  1. In the future please name the ticket in a more precise manner. I could easily give this name to all my tickets with the ‘Plastimatch wrapper: ‘ part replaced with my module name.
  2. In this case the correct way of doing it would have been to just do a commit under the ticket #357. We add tickets for different tasks, not for each commit!

If you’re done with this ticket then please move it to 0.11 and close it as fixed. Thanks!

2013-08-15, 18:21:13 - pzaffino

milestone_id: changed from null to “SlicerRt 0.11.0 (2013-07)”

2013-08-15, 18:21:24 - pzaffino

status: changed from “New” to “Fixed”

2013-08-15, 18:23:36 - pzaffino

Ok, understood. Sorry for that!

#375 Add experimental code to the Sandbox

Continuous activity to track changes in the Sandbox

2013-08-02, 22:10:58 - Andras Lasso

(In r:1061|slicerrt:1061) re #375: Added code snippet that records video of a rotation of the 3D view

2013-08-02, 22:10:58 - Andras Lasso

assigned_to_id: changed from null to “lassoan”

2013-08-02, 22:39:52 - Andras Lasso

(In r:1062|slicerrt:1062) re #375: Simplified CaptureRotationVideo.py code snippet

2013-09-06, 18:58:18 - Csaba Pinter

priority: changed from “Normal (3)” to “Highest (1)”

2013-09-06, 21:08:49 - Andras Lasso

This is a continuous activity (placeholder for all commits into the sandbox). Is the ‘Highest’ priority intentional? Maybe it should be put into a ‘Continuous’ milestone or remove it if you don’t like collector/placeholder tickets.

2013-09-06, 21:13:15 - Csaba Pinter

Yes, the continuous tickets can be identified as the ones with highest priority in the Future milestone. This way those are the uppermost ones. We can create a Continuous milestone if you think that’s better.

2013-09-07, 11:41:09 - Andras Lasso

I think the Continuous milestone would be the cleanest solution.

2013-09-09, 15:28:19 - Csaba Pinter

priority: changed from “Highest (1)” to “Normal (3)”

2013-09-09, 15:28:19 - Csaba Pinter

milestone_id: changed from “Future” to “Continuous”

2013-10-08, 00:57:23 - Andras Lasso

(In r:1209|slicerrt:1209) re #375: Added sample module for computing total distance between all the points of markup list

2013-12-03, 00:25:01 - Andras Lasso

(In r:1317|slicerrt:1317) re #375: Renamed SlicerMatlabBridge directory to MatlabScripts to avoid confusing it with the MatlabBridge project directories

2014-02-12, 03:49:40 - Andras Lasso

re #375: Added experimental module for line profile computation Commit: r:1502|slicerrt:1502

2014-02-12, 13:37:22 - Andras Lasso

re #375: LineProfile: added support transformed volumes. Made chart update more robust. Commit: r:1503|slicerrt:1503

2014-02-12, 13:57:03 - Andras Lasso

re #375: LineProfile: added support transformed rulers. Commit: r:1504|slicerrt:1504

2014-02-13, 18:51:43 - Andras Lasso

re #375: LineProfile: select the created double array by default Commit: r:1506|slicerrt:1506

2014-02-28, 23:50:55 - Andras Lasso

re #375: Added a small module for convenient connection to the remote python debugger Commit: r:1546|slicerrt:1546

2014-03-03, 06:02:07 - Andras Lasso

re #375: Added images and updated module description texts Commit: r:1548|slicerrt:1548

2014-03-03, 06:08:40 - Andras Lasso

re #375: Moved PyDevRemoteDebug source code into src subdirectory Commit: r:1549|slicerrt:1549

2014-03-03, 14:38:37 - Andras Lasso

re #375: Fixed PyDevRemoteDebug icon and help URLs Commit: r:1550|slicerrt:1550

2014-09-08, 16:42:36 - Andras Lasso

re #375: Made LineProfile compatible with VTK6

Fix suggested by Ricardo A. CORREDOR. Commit: r:1952|slicerrt:1952

2014-09-26, 17:23:53 - Andras Lasso

re #375: Moved FillRoi module to SegmentationUtils extension Commit: r:1960|slicerrt:1960

2014-09-26, 17:34:06 - Andras Lasso

re #375: Fixed FillRoi module data refresh and min/max thresholds Commit: r:1961|slicerrt:1961

2014-09-26, 17:59:52 - Andras Lasso

re #375: Moved FillRoi module to SegmentationUtils extension Commit: r:1962|slicerrt:1962

2014-10-14, 16:00:34 - Andras Lasso

re #375: Added parameter node to FillRoi module Commit: r:1974|slicerrt:1974

2014-10-14, 17:29:47 - Andras Lasso

re #375: Added logic class instantiation to widget Commit: r:1975|slicerrt:1975

2014-10-17, 17:23:46 - Andras Lasso

re #375: Added crop volume with model module to sandbox Commit: r:1984|slicerrt:1984

2014-10-17, 17:25:27 - Andras Lasso

re #375: Removed debugging code from CropVolumeWithModel Commit: r:1985|slicerrt:1985

2014-10-17, 18:40:26 - Andras Lasso

re #375: Show cropped volume in slice viewer Commit: r:1986|slicerrt:1986

2014-10-18, 12:34:10 - Andras Lasso

re #375: Moved volume clipping modules from sandbox to a proper extension Commit: r:1987|slicerrt:1987

2014-10-18, 12:38:08 - Andras Lasso

re #375: Updated extension homepage URL Commit: r:1988|slicerrt:1988

2014-10-18, 12:42:52 - Andras Lasso

re #375: Simplified VolumeClip extension path Commit: r:1989|slicerrt:1989

2014-10-19, 19:59:39 - Andras Lasso

re #375: Made VolumeClipWithModel module reloading more robust. Also added experimental non-convex surface reconstruction option. Commit: r:1990|slicerrt:1990

2014-12-05, 22:31:52 - Andras Lasso

re #375: Added read-write functions for NRRD files Commit: r:2055|slicerrt:2055

2014-12-11, 14:00:58 - Andras Lasso

re #375: Improved tooltips in VolumeClipWithModel Commit: r:2057|slicerrt:2057

2014-12-15, 14:20:29 - Andras Lasso

re #375: Cleaned up comments in nrrdread and nrrdwrite Commit: r:2070|slicerrt:2070

2015-09-16, 21:50:06 - Andras Lasso

re #375: Moved PyDevRemoteDebug to DebuggingTools extension

Merged NodeModifiedStatistics and PyDevRemoteDebug to a new extension: https://github.com/SlicerRt/SlicerDebuggingTools Commit: r:2445|slicerrt:2445

2016-07-22, 19:40:06 - Csaba Pinter

Re #375: Moved the obsolete sandbox modules in a separate folder to indicate that they should not be used. This is necessary as users sometimes try to use these algorithms but these are not maintained anymore. The ReadMe.txt file points to the maintained locations of these developments. Commit: r:3000|slicerrt:3000

2016-09-07, 17:44:17 - Csaba Pinter

Re #375: added MRI to pseudo-CT converter Matlab bridge module created by Marie Aguirre Commit: r:3083|slicerrt:3083

2017-02-07, 20:42:22 - Andras Lasso

re #375: Added example of performing grow-cut filter on segments without using GUI Commit: r:3115|slicerrt:3115

2017-02-07, 20:44:11 - Andras Lasso

re #375: Moved grow-cut filter to samples directory Commit: r:3116|slicerrt:3116

2017-04-07, 15:48:59 - Andras Lasso

re #375: Simplified grow-cut example using new Segmentation node convenience functions Commit: r:3141|slicerrt:3141

2017-04-07, 16:02:40 - Andras Lasso

re #375: Added example for using a segment editor widget effect without GUI Commit: r:3142|slicerrt:3142

#376 Timeout when starting the Matlab process

It seems that on a certain computer Matlab startup exceeds the maximum allowed time - see details below.

From: Roya Jalali Sent: 2013-08-05 16:18 To: Andras Lasso Subject: Re: [slicer-users] (no subject) We’re not sure about it being related to startup time as we can connect via putty fairly soon after matlab is started.

However, you above suggestion does work. It we start Matlab manually, Slicer works ok. It’s only when Slicer start Matlab that the problem occurs. As a workaround for now we can start it Matlab by hand

On Mon, Aug 5, 2013 at 2:25 PM, Andras Lasso lasso@cs.queensu.ca wrote: Maybe Matlab starts too slowly on your computer (startup takes longer than 30sec).

Please start Matlab and run the cli_commandserver.m script. Then start Slicer, go to the MatlabCommander module and run a Matlab command (e.g., 5*5). => Does the Matlab server report a client connection when the Matlab command is issued in Slicer? => Is the command executed successfully?

Andras

From: Roya Jalali Sent: August 5, 2013 3:20 PM To: Andras Lasso

Subject: Re: [slicer-users] (no subject)

We’ve tried connecting via putty and we do get ‘Client Connected’ message in the Matlab console, however, 3dSlicer still reports:

ERROR: In ..\..\..\..\Slicer-1\Base\QTCLI\vtkSlicerCLIModuleLogic.cxx, line 1642 vtkSlicerCLIModuleLogic (000000000DB54300): Test1 standard error: Debug: In ..\..\OpenIGTLink\Source\igtlClientSocket.cxx, line 65 igtl::ClientSocket (0000000002B96920): Failed to connect to server 127.0.0.1:4100 ERROR: Timeout (execution time>30sec) while trying to execute the Matlab process. Kill the process. ERROR: Matlab process killed ERROR: Failed to execute Matlab Failed to start Matlab process ERROR: ERROR: Cannot connect to the server ERROR: In ..\..\..\..\Slicer-1\Base\QTCLI\vtkSlicerCLIModuleLogic.cxx, line 1673 vtkSlicerCLIModuleLogic (000000000DB54300): Test1 completed with errors

2013-08-05, 19:54:04 - Andras Lasso

(In r:1063|slicerrt:1063) test #376: Increased MAX_MATLAB_LAUNCHER_STARTUP_TIME_SEC from 30sec to 60sec to reduce the chance of timeout on slower systems (it should return immediately, but maybe on some older Matlab versions it takes more time). Do not kill the process if startup is not finished within the allowed time - this way even if the first execution attempt fails, the next conection attempt may be successful (as Matlab is already running). Improved error logging.

2013-08-05, 19:54:04 - Andras Lasso

status: changed from “New” to “Test”

2013-08-05, 19:56:17 - Andras Lasso

(In r:1064|slicerrt:1064) re #376: Increased MatlabBridge version to 0.6.0

2013-08-07, 00:50:29 - Andras Lasso

Actually, most probably the issue was that wrong Matlab.exe was used.

…\MATLAB\2013a\bin\matlab.exe: Matlab launcher, returns almost immediately after it starts Matlab, this should be used with the MatlabBridge …\MATLAB\2013a\bin\win64\MATLAB.exe: Matlab executable that keeps blocking the caller process, this must not be used with the MatlabBridge if the ‘Prefer Executable CLIs’ Slicer option is enabled

If the Prefer Executable CLIs option is enabled: Even if the Matlab process is started as a detached process, it’s still a child process and Slicer waits for the child process to terminate before the CLI module execution is considered to be complete. Therefore, if we wanted to make the MatlabBridge work even with …\bin\win64\MATLAB.exe then probably we would need to create an intermediate launcher process. That can be cmd.exe or another instance of the MatlabCommander, Slicer.exe, etc. (the intermediate process should exit as soon as it’s launched Matlab).

2013-08-07, 00:55:44 - Andras Lasso

(In r:1065|slicerrt:1065) re #376: Simplified Matlab launching (launching it as a detached process, as there is no need to get any feedback from the launched process)

2013-08-16, 09:03:48 - Andras Lasso

No more complaints, so probably it works well.

2013-08-16, 09:03:48 - Andras Lasso

status: changed from “Test” to “Fixed”

#377 Move DeformationFieldVisualizer module to separate extension

Move DeformationFieldVisualizer module to separate extension and at the same time rename the module to ‘Transform visualizer’ to better reflect its actual capabilities

2013-08-06, 06:46:15 - Andras Lasso

milestone_id: changed from null to “TransformVisualizer 0.1.0”

2013-08-07, 21:29:52 - Franklin King

(In r:1067|slicerrt:1067) Re #377: Added TransformVisualizer folder

2013-08-07, 21:30:49 - Franklin King

(In r:1068|slicerrt:1068) Re #377: Moved DeformationFieldVisualizer to TransformVisualizer folder

2013-08-07, 23:21:38 - Franklin King

(In r:1069|slicerrt:1069) Re #377: Renaming to TransformVisualizer in progress

2013-08-07, 23:26:28 - Franklin King

(In r:1070|slicerrt:1070) Re #377: Renaming TransformVisualizer files (committing in steps in order to avoid renaming issues)

2013-08-08, 00:03:44 - Franklin King

(In r:1071|slicerrt:1071) Re #377: Finished renaming Deformation Field Visualizer to Transform Visualizer

2013-08-08, 01:15:40 - Franklin King

(In r:1072|slicerrt:1072) Re #377: Added initial temporary logo for Transform Visualizer extension

2013-08-08, 03:36:32 - Franklin King

status: changed from “New” to “Accepted”

2013-08-08, 03:39:05 - Franklin King

(In r:1073|slicerrt:1073) Re #377: Removing Deformation Field Visualizer from SlicerRT build

2013-08-10, 18:50:17 - Andras Lasso

Very good, now it shows up in the nightly build extension manager. It might be better to change the extension icon to show a 2D or 3D deformed grid, as the deformation field may be more recognizable (the icon is too small to see the glyphs).

2013-08-26, 21:23:27 - Csaba Pinter

@FranklinK: This ticket is clearly done, as its original instance (see related duplicate). Please use Assembla!

2013-08-27, 02:48:13 - Franklin King

status: changed from “Accepted” to “Fixed”

#378 3D glyph visualization crashes

When trying to visualize a simple linear transformation, the deformation field visualization module crashes

2013-08-06, 07:58:01 - Franklin King

status: changed from “New” to “Accepted”

2013-08-06, 08:05:54 - Franklin King

The crash occurs when reference volumes are large enough. Reducing the number of glyphs doesn’t resolve the issue.

2013-08-06, 21:53:41 - Andras Lasso

The crash is due to the failed allocation in vtkDeformationFieldVisualizerGlyph3D::RequestData(…):

1
2
output->Allocate(this->GetSource(0, inputVector[1]),
                 3*numPts*numSourceCells, numPts*numSourceCells);

For me it seems that there is a terrible inefficiency in the vtkDeformationFieldVisualizerGlyph3D.cxx: even if the max number of glyphs is set to 2000, most of the pipeline is performed for all the points of the image!!! The correct solution should be: generate 2000 random points and only process those points, never do any operation that processes all the points in the image.

2013-08-07, 01:08:07 - Franklin King

I’ll be reworking vtkDeformationFieldVisualizerGlyph3D/vtkTransformVisualizerGlyph3D (possibly in its entirety) since it’s also the cause of issue #270. It’s currently implemented as vtkGlyph3D with a couple additions haphazardly tacked on which is leading to a few issues.

2013-08-07, 08:35:01 - Andras Lasso

That’ll be great. Thanks!

From: Franklin King (FranklinK) Sent: ‎2013-‎08-‎07 03:08

2013-10-02, 14:29:24 - Franklin King

(In r:1200|slicerrt:1200) re #397 re #378: Glyph visualization based on transformation reworked to only sample needed points. re #264: General reworking of logic. Only glyph visualization with input transform is currently enabled.

2013-12-15, 14:01:05 - Andras Lasso

Does not crash anymore. Any other potential errors will be recorded in separate tickets.

2013-12-15, 14:01:05 - Andras Lasso

status: changed from “Accepted” to “Fixed”

#379 Rename deformation input field to transform

In the input section of the GUI ‘Transform’ would be more appropriate than ‘Deformation’. Also, Rename/Edit/Delete current VectorVolume is a bit misleading (Transform would be more appropriate).

2013-09-13, 10:50:30 - Franklin King

(In r:1153|slicerrt:1153) Re #379: ‘Deformation’ input label renamed to ‘Transform’ Re #396: Moved ‘apply’ button to directly under the IO box; Removed initial step of generating deformation field; Replaced automatic ranges for glyph thresholds and contour ranges with user control of ranges Re #264: Reorganization and partial cleanup of code; Glyph source options given individual isotropic/directional scaling options

2013-09-13, 22:35:36 - Franklin King

status: changed from “New” to “Accepted”

2013-09-13, 22:35:41 - Franklin King

status: changed from “Accepted” to “Fixed”

#380 Implement plastimatch B-spline masks

Plastimatch B-spline masking capabilities are not implemented in the user interface (nor is it functional for all combinations of transforms/metrics). This effort is to make sure the user can specify a mask, and that masked registration is working.

#381 Add option to ignore voxel spacing and offset in Vff reader

2013-08-19, 21:39:20 - Jennifer Andrea

(In r:1103|slicerrt:1103) Re #381: Added an options widget to the Vff File Reader to enable choosing to use or ignore voxel spacing and offset when loading the image.

2013-08-20, 15:05:53 - Jennifer Andrea

status: changed from “New” to “Accepted”

2013-08-21, 22:57:26 - Jennifer Andrea

(In r:1107|slicerrt:1107) Re #381: Code clean-up, fixed the orientation of the image. Renamed the Data Scale and Offset parameter to Image Intensity Scale and Offset for clarity.

2013-08-23, 19:51:32 - Jennifer Andrea

(In r:1112|slicerrt:1112) Re #381: Further code cleanup.

2013-08-25, 21:06:43 - Csaba Pinter

status: changed from “Accepted” to “Test”

2013-08-26, 19:04:32 - Csaba Pinter

status: changed from “Test” to “Fixed”

#382 Address comments about the gel dosimetry slicelet given at the code review

2013-08-13, 20:54:16 - Csaba Pinter

description: changed from “- Consistent comments

2013-08-13, 20:54:44 - Csaba Pinter

description: changed from “* Consistent comments ** Sa…” to “* Consistent comments ** Sa…”

2013-08-15, 15:00:25 - Csaba Pinter

milestone_id: changed from null to “SlicerRt 0.11.0 (2013-07)”

2013-08-26, 13:51:46 - Mattea Welch

(In r:1117|slicerrt:1117) re #382 rough human readable description of incomplete workflow. More detail than in comments.

2013-08-26, 21:16:47 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.11.0 (2013-08)” to “SlicerRt 1.0 (2013-09)”

2013-09-05, 14:36:21 - Csaba Pinter

working_hours: changed from “0.0” to “2.0”

2013-09-05, 14:36:21 - Csaba Pinter

total_working_hours: changed from “0.0” to “2.0”

2013-09-05, 14:38:37 - Csaba Pinter

milestone_id: changed from “SlicerRt 1.0” to “SlicerRt 0.12”

2013-09-27, 17:56:01 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.12” to null

2013-10-08, 14:09:27 - Csaba Pinter

milestone_id: changed from null to “GelDosimetry 0.1”

2013-10-08, 17:20:30 - Csaba Pinter

Component: changed from null to “GelDosimetry”

2013-11-08, 16:55:40 - Csaba Pinter

description: changed from “* Consistent comments ** Sa…” to “* Consistent comments ** Sa…”

2013-11-08, 16:56:53 - Csaba Pinter

(In r:1272|slicerrt:1272) Re #382: Re-organize gel dosimetry slicelet GUI file and address style and naming issues

2013-11-08, 17:10:53 - Csaba Pinter

assigned_to_id: changed from “mwelch” to “pinter”

2013-11-08, 17:10:53 - Csaba Pinter

status: changed from “New” to “Accepted”

2013-11-08, 17:24:15 - Csaba Pinter

(In r:1273|slicerrt:1273) Re #382: Rename gel dosimetry slicelet classes that had bad names; Removed unnecessary class and code

2013-11-13, 19:52:21 - Csaba Pinter

(In r:1280|slicerrt:1280) Fixed #382: Finished reviewing code up to step 4 in the gel dosimetry slicelet; Features added to automatically display relevant data at each step

2013-11-13, 19:52:21 - Csaba Pinter

working_hours: changed from “2.0” to “0.0”

2013-11-13, 19:52:21 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

2013-11-13, 19:52:21 - Csaba Pinter

total_working_hours: changed from “2.0” to “0.0”

2013-11-13, 20:35:55 - Csaba Pinter

(In r:1281|slicerrt:1281) Re #382: Cleaning up UI code for gel dosimetry steps 4 and 5; Display fiducial registration error on the UI

#383 Create separate Plastimatch extension

Needed features:

An example to follow when creating the Plastimatch extension is the OpenCV extension: https://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Extensions/SlicerOpenCV (code: https://github.com/SBU-BMI/SlicerOpenCV) and the example module that uses it: https://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Extensions/OpenCVExample

2015-10-01, 15:11:59 - Csaba Pinter

description: changed from “Needed features:

2016-05-26, 18:03:59 - Csaba Pinter

description: changed from “Needed features:

2016-05-26, 18:10:39 - Csaba Pinter

@gregsharp FYI I updated the description with some information. Creating the Plastimatch extension does not seem to be hard with this example.

#384 Add support for Matlab R2009b

From: Alvaro Gomez Sent: August 14, 2013 6:54 PM To: Andras Lasso Cc: Guillermo Carbajal Subject: Re: MatlabBridge extension

Hi Andras,

When trying to use MatlabBridge with earlier versions of Matlab (2009a in Windows) we ran into some problems. We could find a workaround that maybe could be useful for other people. With this workaround we could run the Commander and the basic module created with the Module Generator.

  1. Int64 arithmetics

??? Undefined function or method ‘times’ for input arguments of type ‘int64’.

Error in ==> cli_commandserver>convertFromUint8VectorToInt64 at 248 result = sum(int64(uint8Vector).*int64(multipliers));

Error in ==> cli_commandserver>ParseOpenIGTLinkMessageHeader at 237 parsedMsg.timestamp=convertFromUint8VectorToInt64(rawMsg(35:42));

Error in ==> cli_commandserver>ReadOpenIGTLinkMessage at 142 msg=ParseOpenIGTLinkMessageHeader(headerData);

Error in ==> cli_commandserver>ReadOpenIGTLinkStringMessage at 124 msg=ReadOpenIGTLinkMessage(clientSocket);

Error in ==> cli_commandserver at 73 receivedMsg=ReadOpenIGTLinkStringMessage(clientSocketInfo); can be used with earlier versions of —————————————————————————————

Int64 arithmetics is supported since (I think) MATLAB 2011b

For earlier versions this package from File Exchange can be used with minor changes http://www.mathworks.com/matlabcentral/fileexchange/24725-int64-arithmetic-in-matlab Changes: a) (Only when compiling with gcc, no problem with visual studio) It has some problems with the use of pasting in some #define declarations when compiling the mex files with gcc. It can be fixed with this changes.

In int64arithmetic/@int64/int64operation.c change line 38 c[i] = a[i] OPERATOR b[i]; //—-original line—->// c[i] OPERATOR_EQ b[i];

In int64arithmetic/@uint64/uint64operation.c change line 46 c[i] = a[i] OPERATOR b[i]; //—-original line—->// c[i] OPERATOR_EQ b[i];

b) It lacks a .m file In int64arithmetic/@int64/ add a copy of the file colon.m with the name _colonobj.m In int64arithmetic/@uint64/ add a copy of the file colon.m with the name _colonobj.m


  1. Another problem was:

Line 183 of cli_imageread.m [~,~,endian] = computer(); Ignoring output with ‘~’ was introduced in (I think) MATLAB R2009b We used instead something like: [dummy1,dummy2,endian] = computer();

2013-08-14, 20:05:11 - Andras Lasso

(In r:1090|slicerrt:1090) test #384: Tuned MatlabBridge scripts to be compatible with earlier Matlab releases (R2009b). Don’t use ~ as ignored parameter, don’t use int64 arithmetics if not available (use double arithmetics instead).

2013-08-14, 20:05:11 - Andras Lasso

status: changed from “New” to “Test”

2013-08-15, 22:01:38 - Andras Lasso

(In r:1098|slicerrt:1098) test #384: Further tuned MatlabBridge scripts to be compatible with earlier Matlab releases (R2009b), don’t use int64 arithmetics if not available (use double arithmetics instead)

2013-08-15, 22:17:02 - Andras Lasso

(In r:1099|slicerrt:1099) re #384: Updated MatlabBridge extension revision to 0.7.0

2013-09-05, 15:06:30 - Andras Lasso

status: changed from “Test” to “Fixed”

#385 Add support for the new Markups module in Patient Hierarchy

2013-08-26, 23:11:51 - Csaba Pinter

priority: changed from “Normal (3)” to “High (2)”

2013-09-05, 14:36:21 - Csaba Pinter

working_hours: changed from “0.0” to “2.0”

2013-09-05, 14:36:21 - Csaba Pinter

total_working_hours: changed from “0.0” to “2.0”

2013-09-05, 14:38:37 - Csaba Pinter

milestone_id: changed from “SlicerRt 1.0” to “SlicerRt 0.12”

2013-09-24, 16:11:21 - Csaba Pinter

working_hours: changed from “2.0” to “0.0”

2013-09-24, 16:11:21 - Csaba Pinter

status: changed from “New” to “Accepted”

2013-09-24, 16:11:21 - Csaba Pinter

total_working_hours: changed from “2.0” to “0.0”

2013-09-24, 18:22:55 - Csaba Pinter

(In r:1180|slicerrt:1180) Test #385: Markups is used in every class instead of Annotations

2013-09-24, 18:22:55 - Csaba Pinter

status: changed from “Accepted” to “Test”

2013-10-03, 21:29:33 - Csaba Pinter

status: changed from “Test” to “Fixed”

#386 Patient Hierarchy crashes when labelmap is dropped under a structure set

2013-08-15, 16:12:44 - Csaba Pinter

It turns out that the crash is due to some changes in the slice viewers’ update mechanism.

2013-08-15, 16:12:44 - Csaba Pinter

status: changed from “New” to “Accepted”

2013-08-15, 16:13:09 - Csaba Pinter

(In r:1094|slicerrt:1094) Fixed #386: Fix crash when creating contour from labelmap in PH

2013-08-15, 16:13:09 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

#387 Use new test driver macro that makes tests fail when VTK warning or error is logged

Also prevents the VTK error GUI window from popping up when automatic tests are run. Those errors are logged on std::cerr instead. This is how the tests fail, the same way they do in Plus, by using regular expressions.

Mantis issue: http://www.na-mic.org/Bug/view.php?id=3221

2013-08-15, 20:34:53 - Csaba Pinter

description: changed from “Mantis issue: http://www.na…” to “Also prevents the VTK error…”

2013-08-15, 20:36:26 - Csaba Pinter

(In r:1097|slicerrt:1097) Test #387: Use new test driver macro to make VTK warnings or errors logged on standard error instead of the VTK error GUI window; Updated CMakeLists files to match current templates (generic tests are generated in a simpler manner); Removed unused Testing directories, as they are no longer needed for the generic tests

2013-08-15, 20:36:26 - Csaba Pinter

status: changed from “New” to “Test”

2013-08-16, 00:14:57 - Csaba Pinter

status: changed from “Test” to “Fixed”

#388 Linux: Cannot drag&drop node inside Patient Hierarchy

Apparently the issue is present in other modules using qMRMLTreeView, such as in the Data module (drop a node under a transform)

2013-08-26, 23:11:44 - Csaba Pinter

priority: changed from “Normal (3)” to “High (2)”

2013-08-27, 17:23:42 - Csaba Pinter

description: changed from “” to “Apparently the issue is pre…”

2013-08-28, 15:38:51 - Csaba Pinter

Several people have tried it and this issue does not come up for any of them: Jc: ‘works on Ubuntu 10.04 - Slicer r22345’ ‘Also just tried on Parallel Ubuntu 19.04 VM using last night build and it works.’ Greg: ‘Debian stable, gcc 4.4.5, Qt release-mode 4.7.4’ Isaiah: ‘Drag and drop in data module works fine for me on ubuntu 12.04 (bare, no VM), qt 4.7.4’ Paolo: ‘I tried on the last nightly (Slicer-4.2.2-2013-08-27-linux-amd64) with SlicerRT from extension manager. I ran it on arch linux 64bit and Qt 4.8.5. For me it is all ok.’

2013-08-30, 17:09:58 - Csaba Pinter

I tried it on a native (non-VM) Ubuntu 12.04 and it works as well. The problem is either with the dropbox VM or the way I build Slicer on these machines. I should try building Slicer on a clean natively installed Ubuntu

2013-09-05, 14:36:21 - Csaba Pinter

working_hours: changed from “0.0” to “2.0”

2013-09-05, 14:36:21 - Csaba Pinter

total_working_hours: changed from “0.0” to “2.0”

2013-09-05, 14:38:37 - Csaba Pinter

milestone_id: changed from “SlicerRt 1.0” to “SlicerRt 0.12”

2013-09-13, 16:59:04 - Csaba Pinter

I installed Ubuntu on a laptop and there is no drag&drop issue. It is most probable that the issue appears only on VMs (maybe only on VirtualBox VMs). @lassoan: Can I close this with invalid? Is there anything we can do such as collect VM-specific issues somewhere?

2013-09-21, 03:50:13 - Csaba Pinter

priority: changed from “High (2)” to “Low (4)”

2013-09-22, 22:35:45 - Andras Lasso

Yes, it’s a good idea to move all the VM-specific issues into one (future) ticket

2013-09-22, 22:53:47 - Csaba Pinter

All VM-related issues are now tracked in #417

2013-09-22, 22:53:47 - Csaba Pinter

working_hours: changed from “2.0” to “0.0”

2013-09-22, 22:53:47 - Csaba Pinter

status: changed from “New” to “Invalid”

2013-09-22, 22:53:47 - Csaba Pinter

total_working_hours: changed from “2.0” to “0.0”

I believe all of SlicerRT is licensed under the slicer license [1] but I don’t see that stated on the download page.

[1] http://www.slicer.org/pages/LicenseText

2013-08-19, 19:08:14 - Csaba Pinter

(In url:https://github.com/SlicerRt/slicerrt.github.com/commit/7dd0f942638948045b513ff75cebe45f0c308fba|slicerrt:7dd0f942638948045b513ff75cebe45f0c308fba) Test #389: Slicer license link added to the SlicerRT webpage (in the text under Open-source)

Branch: master

2013-08-19, 19:08:14 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2013-08-19, 19:08:14 - Csaba Pinter

status: changed from “New” to “Test”

2013-08-19, 19:08:33 - Csaba Pinter

milestone_id: changed from null to “SlicerRt 0.11.0 (2013-07)”

2013-08-19, 19:09:40 - Csaba Pinter

(In url:https://github.com/SlicerRt/slicerrt.github.com/commit/f44a3cf5c4d194fefa6153f2637ef3a5ea1543de|slicerrt:f44a3cf5c4d194fefa6153f2637ef3a5ea1543de) Re #389: Minor change in the text

Branch: master

2013-08-21, 12:35:46 - Csaba Pinter

@pieper: Is this satisfactory?

2013-08-21, 15:44:35 - pieper

Yes, perfect!

2013-08-21, 15:44:35 - pieper

status: changed from “Test” to “Fixed”

#390 DVH computation does not work on contours that have been created from volumes

2013-08-20, 21:34:13 - Csaba Pinter

(In r:1104|slicerrt:1104) Re #390: Fixed ‘gray box’ bug (a labelmap becomes all gray when creating a contour from it); Added utility functions vtkSlicerContoursModuleLogic::GetIndexedLabelmapWithGivenGeometry and SlicerRtCommon::DoVolumeLatticesMatch to support easy (temporary) resampling of the contour labelmap to match the resampled dose volume

2013-08-20, 21:45:09 - Csaba Pinter

status: changed from “New” to “Accepted”

2013-08-21, 17:26:20 - Csaba Pinter

(In r:1105|slicerrt:1105) Test #390: Contours created from labelmaps are handled accordingly in the DVH logic (they temporarily get resampled to match the lattice of the resampled dose volume so that the stenciling works); Crash fixed in vtkVolumesOrientedResampleUtility::ResampleInputVolumeNodeToReferenceVolumeNode that occurred when the reference volume was not in the scene; Order of classes and functions changed in MA-MIC tutorial self test so that the mostly used code is on top

2013-08-21, 17:26:20 - Csaba Pinter

status: changed from “Accepted” to “Test”

2013-08-21, 22:04:06 - Csaba Pinter

(In r:1106|slicerrt:1106) Re #390: Fixed DVH automatic tests (no change in the baseline was necessary, just in the test MRML scenes)

2013-08-22, 00:06:33 - Csaba Pinter

(In r:1108|slicerrt:1108) Re #390: Eric’s user workflow self test updated to work on the latest dataset (to test this bug)

2013-08-22, 23:24:09 - Csaba Pinter

According to Eric Vorauer from Sunnybrook, this works fine now

2013-08-22, 23:24:09 - Csaba Pinter

status: changed from “Test” to “Fixed”

#391 Create common python module for utility functions

2013-09-05, 14:36:21 - Csaba Pinter

working_hours: changed from “0.0” to “2.0”

2013-09-05, 14:36:21 - Csaba Pinter

total_working_hours: changed from “0.0” to “2.0”

2013-09-05, 14:38:37 - Csaba Pinter

milestone_id: changed from “SlicerRt 1.0” to “SlicerRt 0.12”

2013-10-02, 18:08:05 - Csaba Pinter

assigned_to_id: changed from “pinter” to null

2013-10-02, 18:08:05 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.12” to “Future”

2015-09-10, 14:55:12 - Greg Sharp

milestone_id: changed from “Future” to “SlicerRt 0.18”

2015-09-10, 15:01:27 - Greg Sharp

milestone_id: changed from “SlicerRt 0.18” to “Future”

2017-07-23, 19:18:09 - Csaba Pinter

priority: changed from “Normal (3)” to “Low (4)”

#392 DICOM-RT Export should handle types other than short

Currently the RT Export module can only export CT images of short type. We should have capability to export float or other types.

2013-12-30, 00:48:05 - Csaba Pinter

milestone_id: changed from “SlicerRt 1.0” to “SlicerRt 0.14”

2014-01-22, 16:23:10 - Csaba Pinter

assigned_to_id: changed from null to “gregsharp”

#393 DICOM-RT Export should pass polyline format to plastimatch

Even when SlicerRT has ribbon format, it rasterizes structures to image, then plastimatch converts back to contour. This is slow.

2013-12-30, 00:48:05 - Csaba Pinter

milestone_id: changed from “SlicerRt 1.0” to “SlicerRt 0.14”

2014-01-22, 16:23:15 - Csaba Pinter

assigned_to_id: changed from null to “gregsharp”

#394 Delete obsolete directories

There are at least two obsolete directories in SVN. This ticket is for deleting them.

2013-08-21, 18:56:36 - Greg Sharp

assigned_to_id: changed from null to “gregsharp”

2013-08-21, 18:56:36 - Greg Sharp

status: changed from “New” to “Accepted”

2013-08-26, 14:22:01 - Greg Sharp

(In r:1118|slicerrt:1118) Test #394 Removed several obsolete directories

2013-08-26, 14:22:01 - Greg Sharp

status: changed from “Accepted” to “Test”

2013-08-26, 19:04:32 - Csaba Pinter

status: changed from “Test” to “Fixed”

#395 Move users guide pages from Assembla wiki to Slicer wiki

So that every user documentation is at one place. Make sure the links to these pages are well exposed (move the big picture on the SlicerRT main wiki page downwards or make it smaller, these links should be above that).

The developer pages remain on Assembla.

For linking to the Assmebla pages while not improving their search ranking, we could use this service: http://www.donotlink.com/

2013-09-05, 14:36:21 - Csaba Pinter

working_hours: changed from “0.0” to “2.0”

2013-09-05, 14:36:21 - Csaba Pinter

total_working_hours: changed from “0.0” to “2.0”

2013-09-05, 14:38:37 - Csaba Pinter

milestone_id: changed from “SlicerRt 1.0” to “SlicerRt 0.12”

2013-09-12, 15:34:40 - Csaba Pinter

description: changed from “So that every user document…” to “So that every user document…”

2013-10-08, 15:31:06 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2013-10-08, 15:31:06 - Csaba Pinter

status: changed from “New” to “Accepted”

2013-10-08, 16:17:07 - Csaba Pinter

See http://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Extensions/SlicerRT

2013-10-08, 16:17:07 - Csaba Pinter

working_hours: changed from “2.0” to “0.0”

2013-10-08, 16:17:07 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

2013-10-08, 16:17:07 - Csaba Pinter

total_working_hours: changed from “2.0” to “0.0”

#396 Change layout to make required actions to generate model more clear

The module currently requires users to select input which results in a popup that may mislead users into believing that the module failed to produce a model. The ‘apply’ button currently needs to be clicked before the model is generated.

2013-08-23, 22:56:02 - Franklin King

milestone_id: changed from null to “TransformVisualizer 0.1.0”

2013-08-24, 00:12:32 - Franklin King

assigned_to_id: changed from null to “FranklinK”

2013-09-13, 10:42:22 - Franklin King

status: changed from “New” to “Accepted”

2013-09-13, 10:50:30 - Franklin King

(In r:1153|slicerrt:1153) Re #379: ‘Deformation’ input label renamed to ‘Transform’ Re #396: Moved ‘apply’ button to directly under the IO box; Removed initial step of generating deformation field; Replaced automatic ranges for glyph thresholds and contour ranges with user control of ranges Re #264: Reorganization and partial cleanup of code; Glyph source options given individual isotropic/directional scaling options

2013-09-20, 11:39:07 - Franklin King

status: changed from “Accepted” to “Test”

2013-12-09, 11:39:03 - Franklin King

status: changed from “Test” to “Fixed”

#397 Vector field generation uneccessary for most cases

Current operation is that a vector field is generated after input is selected. This step is separated from the generation of the visualization.

The initial separate step for vector field generation can be avoided for all modes but the contour mode. Magnitude threshold for the glyph modes can be set by the user without knowledge of the min/max values. Generation of the entire vector field can also be avoided for glyph visualization relying instead on sampling only what’s needed.

2013-10-02, 14:24:24 - Franklin King

status: changed from “New” to “Accepted”

2013-10-02, 14:29:24 - Franklin King

(In r:1200|slicerrt:1200) re #397 re #378: Glyph visualization based on transformation reworked to only sample needed points. re #264: General reworking of logic. Only glyph visualization with input transform is currently enabled.

2013-12-09, 11:38:35 - Franklin King

status: changed from “Accepted” to “Fixed”

#398 Add progress bar to DVH calculation

2013-08-25, 19:55:28 - Csaba Pinter

milestone_id: changed from “Future” to “SlicerRt 0.11.0 (2013-08)”

2013-08-25, 20:01:19 - Csaba Pinter

(In r:1115|slicerrt:1115) Fixed #398, Re #204: Progress bar added to DVH calculation (it can take a long time when selecting a whole structure set as input)

2013-08-25, 20:01:19 - Csaba Pinter

status: changed from “New” to “Fixed”

#399 Support DICOM-RT export in Subject Hierarchy

Implement features that allow full exporting of DICOM-RT studies only from the Subject Hierarchy module.

2013-12-30, 00:35:29 - Csaba Pinter

milestone_id: changed from “SlicerRt 1.0” to “SlicerRt 0.14”

2013-12-30, 02:06:25 - Csaba Pinter

summary: changed from “Support DICOM-RT export in Patient Hierarchy” to “Support DICOM-RT export in Subject Hierarchy”

2013-12-30, 02:06:25 - Csaba Pinter

description: changed from “Implement features that all…” to “Implement features that all…”

2013-12-30, 02:06:44 - Csaba Pinter

description: changed from “Implement features that all…” to “Implement features that all…”

2013-12-30, 02:06:58 - Csaba Pinter

description: changed from “Implement features that all…” to “Implement features that all…”

2013-12-30, 12:47:30 - pieper

Hi Csaba -

Would be good to coordinate with Alireza on this - he did the dicom header widget in CTK and we could make an editable version of that with extra functionality. He’ll be in SLC and we can go over this during the dicom breakout session.

-Steve

2013-12-30, 15:10:52 - Csaba Pinter

I will definitely coordinate with him.

Which class is it in CTK? I’d like to take a look at it to see how the two concepts overlap and how they can be brought together. I have the fear that there are substantial differences in the two: header widget is a view for the DICOM header, and works on DICOM files, while the tags editor is a simple editor that works with MRML nodes. If so, then they can be one widget only if the DICOM browser can show MRML nodes too.

2014-04-03, 18:14:52 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.14” to “SlicerRt 0.15”

2014-08-13, 15:02:54 - Csaba Pinter

status: changed from “New” to “Accepted”

2014-10-10, 19:38:16 - Csaba Pinter

Subject hierarchy DICOM export support was implemented in Slicer topic branch https://github.com/cpinter/Slicer/tree/srt55-dicom-export The tag editor and other features are tracked in #55

2014-10-10, 19:38:16 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

#400 Crash in plastimatch bspline registration

As reported by A Anand, plastimatch crashes on routine registration. This was localized to logic error specifying warped landmarks output.

2013-08-26, 14:56:40 - Greg Sharp

(In r:1119|slicerrt:1119) Fixed #400 Fix bug in plastimatch bspline command line module causing Slicer crash

2013-08-26, 14:56:40 - Greg Sharp

assigned_to_id: changed from null to “gregsharp”

2013-08-26, 14:56:40 - Greg Sharp

status: changed from “New” to “Fixed”

2013-08-26, 14:59:56 - Csaba Pinter

Please set a milestone to every ticket, at the latest when it is set to closed (fixed or invalid), so that we can know in which version it got fixed. Thanks!

2013-08-26, 14:59:56 - Csaba Pinter

milestone_id: changed from null to “SlicerRt 0.11.0 (2013-08)”

2013-08-26, 15:05:32 - Greg Sharp

Sure will do.

#401 Release SlicerRT 1.0

#402 Try importing and loading all sample datasets

Datasets: https://subversion.assembla.com/svn/slicerrt/trunk/SlicerRt/data

Fix errors that may occur.

#403 Update external beam planning to using new Contour ComboBox Widget

Refer to DoseVolumeHistogram module for an example of how to use this new widget

2013-08-28, 18:34:01 - Greg Sharp

Call GetIndexLabelmap() to convert to index labelmap format

2014-07-02, 16:19:21 - wangk

assigned_to_id: changed from null to “wangk”

2014-07-02, 16:19:24 - wangk

status: changed from “New” to “Accepted”

2014-07-02, 16:19:33 - wangk

Component: changed from null to “SlicerRt modules”

2014-07-02, 16:22:11 - wangk

@gregsharp, Can you change this ticket to milestone 0.15? It seems that I am not able to change the milestone option. thanks.

2014-07-02, 18:15:06 - Greg Sharp

I can’t change it either!

2014-07-02, 18:21:13 - wangk

milestone_id: changed from “Future” to “SlicerRt 1.0”

2014-07-02, 18:22:52 - wangk

@gregsharp, I think I know why now. this ticket is a child of ticket 136 so it cannot be changed by itself. we have to change the milestone for the parent ticket. I have done so already. Thanks.

2014-07-04, 13:12:23 - wangk

status: changed from “Accepted” to “Test”

2014-07-04, 13:13:29 - wangk

Revision #1840 also fixed this issue. changed it to test.

2014-08-18, 13:33:38 - wangk

status: changed from “Test” to “Fixed”

2015-07-27, 14:49:48 - Csaba Pinter

milestone_id: changed from “SlicerRt 1.0” to “SlicerRt 0.19”

2015-12-16, 23:11:59 - Greg Sharp

milestone_id: changed from “SlicerRt 0.19” to “SlicerRt 0.18”

#404 Export DICOM registration object

Slicer should be able to export (rigid) registration results in DICOM format.

2013-08-28, 18:37:05 - Greg Sharp

milestone_id: changed from null to “Future”

2013-09-03, 13:16:34 - wangk

@gregsharp, does plastimatch support DRO export? if so, we can put it in the dicom export module.

2013-09-03, 14:10:06 - Greg Sharp

Not currently. But I do plan on supporting it.

2013-09-03, 15:28:10 - wangk

thanks, let me know how it goes so I can add it into the dicom export module.

2013-12-21, 17:49:45 - Csaba Pinter

This is a duplicate of #472

2013-12-21, 17:49:45 - Csaba Pinter

status: changed from “New” to “Invalid”

#405 Import DICOM registration object

Slicer should be able to import (rigid) registration results in DICOM format.

2013-08-28, 18:37:25 - Greg Sharp

milestone_id: changed from null to “Future”

2013-09-03, 13:15:15 - wangk

@gregsharp, actually I have developed a dicom plugin for registration object for our MRgRT project. Currently it can only import rigid transformation, not affine and deformable transformation. I could check in the code as experimental and you can give it a try. make sense?

2013-09-03, 14:18:17 - Greg Sharp

Yes, I’d be glad to try it.

2013-09-03, 15:26:57 - wangk

I think this plugin module should be in a separate extension as it is not only related to RT. for now I can check into SlicerRT repository just everybody can give it a try, or I should check into github?

2013-09-03, 15:54:49 - Csaba Pinter

This should be a consensus decision involving all of us. Let’s discuss it tomorrow at the hangout.

2013-09-03, 15:57:15 - pieper

Hi Kevin, Greg -

@fedorov and I are going to be working on registration objects (and other exotic dicom objects) as part of a new quantitative imaging grant (QIICR). It would be great to collaborate with you on this. Could you make your code available so we can look? Github would be excellent, or SlicerRT if that’s better.

Thanks, Steve

2013-09-03, 16:02:50 - wangk

Hi Csaba and Steve,

I think what I can do is that I can check in Github first, then tomorrow we can discuss if we include it in SlicerRT.

Thanks,

Kevin

2013-09-03, 16:21:05 - Andrey Fedorov

I would like to join the hangout discussion tomorrow if possible - please let me know the details if it’s ok.

2013-09-03, 16:41:15 - wangk

Hi All,

I have created a Github repository for registration object import (https://github.com/kevinwangcanada/DICOMRegObject).

you can take a look at the code now so we can discuss tomorrow in more detail.

the only caveat right now is that python path cannot be set properly for the module. I did not have enough time to fix this. this is also true for the loadable module template. strangely enough, if you include another loadable module in the extension then everything is fine. We can also discuss this tomorrow.

Thanks,

Kevin

2013-09-03, 16:46:08 - Csaba Pinter

@fedorov @pieper The hangout is tomorrow 2PM. I’ll send the link to both of you.

2013-09-03, 17:41:49 - Andrey Fedorov

Csaba, thank you - I will plan to join the hangout

2013-09-03, 18:08:24 - pieper

Yes, I’ll join too.

2013-11-30, 14:56:48 - Csaba Pinter

milestone_id: changed from “Future” to “SlicerRt 1.0”

2013-12-30, 00:48:05 - Csaba Pinter

milestone_id: changed from “SlicerRt 1.0” to “SlicerRt 0.14”

2014-01-28, 18:47:32 - wangk

assigned_to_id: changed from null to “wangk”

2014-01-28, 18:47:36 - wangk

status: changed from “New” to “Accepted”

2014-01-28, 18:50:00 - wangk

(In r:1471|slicerrt:1471) Re #405: Add the initial dicom sro import module. right now only supports linear transform (rigid to be more specific). has been tested using Greg’s SRO example data.

2014-01-28, 18:51:09 - wangk

(In r:1472|slicerrt:1472) Re #405: Modify CMakeLists.txt to include DicomSroImport module as experimental for now.

2014-01-28, 18:53:26 - wangk

@gregsharp, now we have both SRO import and export, you could try some of your data to see if they are both working properly.

2014-01-28, 19:28:12 - wangk

(In r:1473|slicerrt:1473) Re #405: Small fix to avoid name collision with DicomRtImport Plugin.

2014-02-20, 16:34:31 - wangk

Test #405: Code clean up and small fixes. Also added the deformable spatial registration object import support. Limitation: due to incomplete support in slicer, right now deformable registration object is imported as two types of nodes. one is gridtransformnode and other is vectorvolumenode. Commit: r:1522|slicerrt:1522

2014-02-20, 16:34:31 - wangk

status: changed from “Accepted” to “Test”

2014-02-20, 17:57:37 - wangk

Re #405: Move Dicom Sro import module out of experimental build. Commit: r:1523|slicerrt:1523

2014-02-20, 23:08:17 - Csaba Pinter

Re #405: Commented out line that caused build error Commit: r:1526|slicerrt:1526

2014-02-20, 23:10:30 - Csaba Pinter

@wangk: You introduced a build error with your changes. I ‘fixed’ it by commenting out the line that caused the error. Please fix it properly.

Also please always use a relatively new Slicer when you test your code, as this error is most probably due to the fact that you use a Slicer version that is at least weeks old.

2014-02-20, 23:10:30 - Csaba Pinter

status: changed from “Test” to “Accepted”

2014-02-21, 18:29:44 - wangk

Re #405: Fixed the compilation error. Commit: r:1529|slicerrt:1529

2014-02-22, 19:01:24 - Csaba Pinter

There is an error in the log when starting Slicer: ‘When loading module ‘DicomSroImport’ , the dependency ‘’ failed to be loaded. ‘

2014-02-22, 19:07:27 - Csaba Pinter

Re #405: Fixed dependency related error message in SRO import Commit: r:1533|slicerrt:1533

2014-05-14, 15:06:40 - Csaba Pinter

Rigid case works, new ticket #593 has been created for deformable

2014-05-14, 15:06:40 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

#406 Generalize Patient Hierarchy to Subject Hierarchy

Generalization

Re-create patient hierarchy features as subclasses of the new hierarchy module

Ideas are collected in this wiki page: https://www.assembla.com/spaces/slicerrt/wiki/Subject_hierarchy_generalization

2013-08-30, 17:08:55 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2013-09-06, 19:26:35 - Csaba Pinter

description: changed from “Generalization

2013-11-01, 18:00:10 - Csaba Pinter

milestone_id: changed from “SlicerRt 1.0” to “SlicerRt 0.13”

2013-11-15, 18:40:15 - Csaba Pinter

(In r:1283|slicerrt:1283) Re #406: Created directory for SubjectHierarchy branch

2013-11-15, 20:14:10 - Csaba Pinter

(In r:1284|slicerrt:1284) Re #406: Branching SlicerRT for subject hierarchy development

2013-11-26, 16:09:34 - Csaba Pinter

(In r:1310|slicerrt:1310) Re #406: Merged trunk to SH branch

2013-11-29, 15:35:45 - Csaba Pinter

Component: changed from “Slicer Core” to “”

2013-11-29, 15:35:45 - Csaba Pinter

status: changed from “New” to “Accepted”

2013-12-02, 19:39:17 - Csaba Pinter

(In r:1315|slicerrt:1315) Re #406: WIP Created SubjectHierarchy module and DicomHierarchy and RtHierarchy plugins; Changed the plugins from VTK to Qt classes, to be able to handle icons and such.

2013-12-02, 19:40:20 - Csaba Pinter

(In r:1316|slicerrt:1316) Re #406: Merged trunk to SH branch

2013-12-03, 18:47:20 - Csaba Pinter

(In r:1318|slicerrt:1318) Re #406: WIP Moved subject hierarchy plugin resources to their plugins; Moved several functions from subject hierarchy logic to the subject hierarchy node and from the scene model to the plugins

2013-12-03, 22:54:50 - Csaba Pinter

(In r:1319|slicerrt:1319) Re #406: WIP Moved DICOM hierarchy into Subject Hierarchy plugins as a core plugin; Created Volume plugin for handling volumes; Created Default plugin to exercise the functionality of the abstract plugin if no plugin is found for a node

2013-12-04, 20:21:44 - Csaba Pinter

(In r:1320|slicerrt:1320) Re #406: WIP Implemented canClaimSubjectHierarchyNode and setIcon methods in Subject Hierarchy plugins; Set default level to ‘Other’, in order to have a non-empty level in every subject hierarchy node; Added subseries level to DICOM plugin

2013-12-05, 04:49:46 - Csaba Pinter

(In r:1322|slicerrt:1322) Re #406: WIP Implemented context menu and get/set visibility features in plugins; Added owner plugin name to subject hierarchy nodes. The owner plugin is searched for and set when a subject hierarchy node is added to the scene; Added concept of plugin dependencies (for now it is for showing context menu items for only the owner plugin and its dependencies); Added active node pointer to the plugins (when context menu is requested then the plugin needs to know the active node to perform the operation chosen by the user); Re #323: Changed equals sign to be at the end of rows when a statement is broken into lines there

2013-12-05, 16:17:37 - Csaba Pinter

(In r:1323|slicerrt:1323) Re #406: Merged trunk to SH branch

2013-12-05, 22:09:30 - Csaba Pinter

(In r:1328|slicerrt:1328) Re #406: Basic features in the subject hierarchy plugins are implemented; MRML scene pointer added to the plugins

2013-12-09, 16:40:30 - Csaba Pinter

(In r:1337|slicerrt:1337) Re #406: Fixing up vtkSlicerDicomRtImportModuleLogic for Subject Hierarchy (WIP)

2013-12-09, 16:41:41 - Csaba Pinter

(In r:1338|slicerrt:1338) Re #406: Merged trunk to SH branch

2013-12-09, 16:45:48 - Csaba Pinter

(In r:1339|slicerrt:1339) Re #406: Renamed SubjectHierarchy/Plugins/qSlicerSubjectHierarchyVolumePlugin to …VolumesPlugin to match the convention

2013-12-11, 00:55:26 - Csaba Pinter

(In r:1345|slicerrt:1345) Re #406: All projects use Subject Hierarchy and build successfully

2013-12-11, 00:56:17 - Csaba Pinter

(In r:1346|slicerrt:1346) Re #406: Merged trunk to SH branch

2013-12-11, 18:43:15 - Csaba Pinter

(In r:1347|slicerrt:1347) Re #406: Fixed python files for Subject Hierarchy; Fixed \ingroup comments for all classes (SH classes have Slicer_* not SlicerRt_* prefixes because of the impending integration to core)

2013-12-11, 21:59:29 - Csaba Pinter

(In r:1348|slicerrt:1348) Re #406: Added popup dialog (temporary solution) for the case when multiple SH plugins return the same confidence value (should occur very rarely); SlicerRtCommon removed completely from SH (last step was to switch to simple strcmp just like everywhere in the Slicer core)

2013-12-13, 21:50:20 - Csaba Pinter

(In r:1351|slicerrt:1351) Re #406: Subject hierarchy nodes are created, claimed by the plugins and displayed

2013-12-16, 22:08:45 - Csaba Pinter

(In r:1354|slicerrt:1354) Re #406: Add option for the user to change the owner plugin of a subject hierarchy node manually; Various fixes in subject hierarchy (plugin ownership, icons, parenting, etc.); Added warning icon when a node is not owned by any plugin

2013-12-16, 22:58:19 - Csaba Pinter

(In r:1355|slicerrt:1355) Re #406: Added icon for nodes unknown to the owner plugin (much easier to tell if the owner plugin can actually handle the node and could indicate errors); Fixed visibility icons, show/hide works fine for all objects now

2013-12-18, 18:04:56 - Csaba Pinter

image:dMWL7SAa4r453dacwqjQXA Subject hierarchy (pseudo-)class diagram, end of first round

2013-12-18, 18:04:56 - Csaba Pinter

Attachment added: “SubjectHierarchy-ClassDiagram-Rev02.png”

2013-12-23, 21:52:13 - Csaba Pinter

(In r:1360|slicerrt:1360) Re #406: Separated context menus for handling nodes (conversion, transform, etc.) and creating child nodes from the active node; Re-run owner plugin search if a SH node is modified and the user hsa not overridden owner plugin manually

2013-12-23, 21:54:47 - Csaba Pinter

(In r:1361|slicerrt:1361) Re #406: Merged trunk to SH branch

2013-12-28, 21:45:34 - Csaba Pinter

(In r:1365|slicerrt:1365) Re #406: Renamed SH node flag OwnerPluginOverriddenByUser to OwnerPluginAutoSearch Fixed #481: Remove SH node of a deleted contour; Remove color table entry too Fixed #494: Leak in Dose Accumulation fixed (SH node is not created for output volume if already exists)

2013-12-29, 00:02:05 - Csaba Pinter

(In r:1366|slicerrt:1366) Re #406: Fixed NA-MIC tutorial self test

2013-12-29, 18:00:43 - Csaba Pinter

(In r:1367|slicerrt:1367) Re #406: Fixed some regression tests; Updated test scenes

2013-12-29, 20:06:44 - Csaba Pinter

(In r:1368|slicerrt:1368) Re #406: Handle multiple associations (if a data node is associated both to a SH and another hierarchy node) with nested associations in subject hierarchy. Nested association means that instead of associations of (SH -> DataNode <- ModelHierarchy), associations of (SH -> ModelHierarchy -> DataNode) is used. Subject hierarchy handles these nested associations through the new method vtkMRMLSubjectHierarchyNode::GetAssociatedDataNode. Note: In the long term it would be better to override vtkMRMLHierarchyNode::GetAssociatedNode. To do this the method needs to be made virtual in the Slicer core

2013-12-29, 22:41:24 - Csaba Pinter

(In r:1369|slicerrt:1369) Re #406: Fixed failing regression tests

2013-12-29, 23:53:20 - Csaba Pinter

(In r:1370|slicerrt:1370) Re #406: Fixed contour hierarchy handling (used to be DisplayableHierarchy, now SubjectHierarchy); Fixed failing regression tests

2013-12-30, 00:02:13 - Csaba Pinter

(In r:1371|slicerrt:1371) Re #406: Merged trunk to SH branch

2013-12-30, 00:18:49 - Csaba Pinter

(In r:1372|slicerrt:1372) Test #406: Re-integrated subject hierarchy branch into trunk

2013-12-30, 00:18:49 - Csaba Pinter

status: changed from “Accepted” to “Test”

2013-12-30, 00:40:06 - Csaba Pinter

All tests pass except for those which fail due to changes in #452 (https://www.assembla.com/spaces/slicerrt/tickets/452-contour-conversion-to-labelmap-cuts-off-the-contour-if-oversampling-factor-is-not-1?comment=425219983#comment:425219983)

2013-12-30, 00:40:06 - Csaba Pinter

status: changed from “Test” to “Fixed”

2013-12-30, 18:59:11 - Csaba Pinter

image:dMWL7SAa4r453dacwqjQXA Subject hierarchy (pseudo-)class diagram, end of first round

2013-12-30, 18:59:11 - Csaba Pinter

attachment_updated:name: changed from “SubjectHierarchy-ClassDiagram-Rev02.png” to “Subject Hierarchy - Class Diagram - Rev03.png”

2013-12-30, 18:59:11 - Csaba Pinter

attachment_updated:filesize: changed from “541081” to “547761”

#407 Refactor DicomRtReader class

The class vtkSlicerDicomRtReader grew too big, and also the various member variables belonging to the different modalities are mixed, and it is a problem. There is no way to tell at a glance which member variable belongs to which modality.

2013-09-04, 19:06:14 - wangk

I think it is probably a good idea. maybe we can make a RTStruct reader class, RTDose reader class and RTPlan reader class?

2013-09-04, 19:11:11 - Csaba Pinter

Yes, this is the basic idea, to subclass a generic reader class to the ones you mentioned

2013-09-05, 14:36:21 - Csaba Pinter

working_hours: changed from “0.0” to “2.0”

2013-09-05, 14:36:21 - Csaba Pinter

total_working_hours: changed from “0.0” to “2.0”

2013-09-05, 14:38:37 - Csaba Pinter

milestone_id: changed from “SlicerRt 1.0” to “SlicerRt 0.12”

2013-09-27, 17:56:27 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.12” to “SlicerRt 1.0”

2013-11-01, 18:00:10 - Csaba Pinter

milestone_id: changed from “SlicerRt 1.0” to “SlicerRt 0.13”

2013-11-02, 20:19:28 - Csaba Pinter

image:as6qoAq_Wr45ONacwqjQXA Plan for the DicomRtImport refactoring (considering other upcoming changes)

2013-11-02, 20:19:28 - Csaba Pinter

Attachment added: “DicomRtImport2.0-ClassDiagram-Rev05.png”

2013-12-30, 00:30:04 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.13” to “SlicerRt 0.14”

2014-01-21, 04:25:57 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.14” to “SlicerRt 1.0”

2014-11-07, 15:36:21 - Csaba Pinter

milestone_id: changed from “SlicerRt 1.0” to “Future”

#408 Release SlicerRT for stable Slicer 4.3

2013-09-05, 14:36:21 - Csaba Pinter

working_hours: changed from “0.0” to “2.0”

2013-09-05, 14:36:21 - Csaba Pinter

total_working_hours: changed from “0.0” to “2.0”

2013-09-05, 14:38:37 - Csaba Pinter

milestone_id: changed from “SlicerRt 1.0” to “SlicerRt 0.12”

2013-09-24, 18:36:53 - Csaba Pinter

priority: changed from “High (2)” to “Low (4)”

2013-09-25, 15:20:48 - Csaba Pinter

description: changed from “* Create 4.3 branch

2013-10-01, 21:35:56 - Csaba Pinter

description: changed from “* Create 4.3 branch

2013-11-04, 16:41:29 - Csaba Pinter

status: changed from “New” to “Accepted”

2013-11-04, 16:42:03 - Csaba Pinter

(In r:1254|slicerrt:1254) Re #408: Create Slicer-4.3 branch folder for SlicerRT

2013-11-04, 16:45:16 - Csaba Pinter

(In r:1256|slicerrt:1256) Re #408: Create SlicerRt folder in the Slicer-4.3 branch to have the same directory structure

2013-11-04, 16:51:26 - Csaba Pinter

(In r:1257|slicerrt:1257) Re #408: Having SlicerRt folder created in the 4.3 branch results in error ‘Path already exists’ when branching.

2013-11-04, 16:52:04 - Csaba Pinter

(In r:1258|slicerrt:1258) Re #408: Branching SlicerRT for Slicer 4.3

2013-11-05, 14:28:30 - Csaba Pinter

(In r:1261|slicerrt:1261) Re #408: Updated extension manager screenshots

2013-11-05, 14:30:07 - Csaba Pinter

(In r:1262|slicerrt:1262) Re #408: Merged trunk to 4.3 branch

2013-11-06, 18:34:00 - Csaba Pinter

(In r:1268|slicerrt:1268) Re #408: Merged trunk to 4.3 branch

2013-11-06, 18:43:28 - Csaba Pinter

status: changed from “Accepted” to “Test”

2013-11-06, 18:43:52 - Csaba Pinter

working_hours: changed from “2.0” to “0.0”

2013-11-06, 18:43:52 - Csaba Pinter

status: changed from “Test” to “Fixed”

2013-11-06, 18:43:52 - Csaba Pinter

total_working_hours: changed from “2.0” to “0.0”

#409 Isodose color table cannot be edited

See http://slicer-devel.65872.n3.nabble.com/Isodose-settings-on-SlicerRT-td4029874.html

2013-09-05, 13:43:00 - Csaba Pinter

(In r:1137|slicerrt:1137) Fixed #409: Loaded isodose color table type is set to user (workaround was needed as setting the color table type forces some operations that purge the color table)

2013-09-05, 13:43:00 - Csaba Pinter

status: changed from “New” to “Fixed”

2013-09-05, 14:13:10 - wangk

I have found how to fix this last week but have not checked in the code. I will review the code.

2013-09-05, 15:13:08 - Csaba Pinter

Thanks! The problem was that the ‘File’ types cannot be edited, but setting to ‘User’ purges the color table. So I had to do it this way - copying the lookup table and attributes manually.

2014-02-03, 18:38:31 - Csaba Pinter

Component: changed from “Slicer Core” to “”

2014-02-03, 18:38:31 - Csaba Pinter

assigned_to_id: changed from “pinter” to “wangk”

2014-02-03, 18:38:31 - Csaba Pinter

priority: changed from “Normal (3)” to “High (2)”

2014-02-03, 18:38:31 - Csaba Pinter

milestone_id: changed from “SlicerRt 1.0” to “SlicerRt 0.14”

2014-02-03, 18:38:31 - Csaba Pinter

status: changed from “Fixed” to “New”

2014-02-15, 19:04:29 - Csaba Pinter

@wangk: Any thoughts on this?

2014-02-18, 20:05:34 - wangk

I thought this has been fixed. I will take a look and let you know.

2014-02-18, 20:11:25 - Csaba Pinter

Wait… I am checking now and it seems to be working again! Please check on your side and close this if works. Sorry for the confusion, I promise that it didn’t work on my computer when I re-opened the ticket.

2014-02-18, 20:17:13 - wangk

i checked and it is ok to edit the color. but it doesnot update the color for the dose volume.

2014-02-18, 20:23:43 - Csaba Pinter

I’m not sure that it’s something to expect. If the user changes the color table, then he should re-generate the isodose surfaces. Changing the colors could make sense, but as we cannot handle a change in the number of levels dynamically, I think we shouldn’t handle the color change either. Or have you referred to something else?

2014-02-18, 20:40:49 - jchris

Two remarks:

2014-02-18, 20:46:54 - Csaba Pinter

  1. Opacity of the isosurface models can be changed like any other model, but not from the isodose module
  2. Now it is not possible to update the already generated isodose surfaces with new properties. The user can delete the surfaces and create a new set. If it is needed, then a new ticket can be added, but usually we postpone feature requests like this until it is actually asked for by a user.

2014-04-06, 02:27:41 - Csaba Pinter

Isodose level editing works now

2014-04-06, 02:27:41 - Csaba Pinter

status: changed from “New” to “Fixed”

#410 Improve code quality in certain classes

Find TODO comments in classes that you created, especially:

Please ask if something is not clear.

2013-09-05, 14:09:41 - wangk

status: changed from “New” to “Accepted”

2013-09-05, 14:36:22 - Csaba Pinter

working_hours: changed from “0.0” to “2.0”

2013-09-05, 14:36:22 - Csaba Pinter

total_working_hours: changed from “0.0” to “2.0”

2013-09-05, 14:38:37 - Csaba Pinter

milestone_id: changed from “SlicerRt 1.0” to “SlicerRt 0.12”

2013-09-05, 19:01:08 - wangk

(In r:1139|slicerrt:1139) Re #410: code clean up in Isodose module logic.

2013-09-05, 19:04:40 - wangk

(In r:1140|slicerrt:1140) Re #410: replace the old image resample code with new code and some clean up.

2013-09-05, 19:11:11 - wangk

status: changed from “Accepted” to “Test”

2013-09-06, 16:25:41 - Csaba Pinter

status: changed from “Test” to “Accepted”

2013-09-09, 16:47:03 - wangk

(In r:1145|slicerrt:1145) Test #410: fixed the code according to csaba’s comments.

2013-09-09, 16:47:03 - wangk

status: changed from “Accepted” to “Test”

2013-09-13, 19:34:47 - Csaba Pinter

Two things:

There is another TODO in the dose accumulation test, but I don’t insist on addressing that one.

2013-09-23, 19:24:35 - Csaba Pinter

Please address these comments so that we could close this issue

2013-09-24, 22:20:57 - Csaba Pinter

(In r:1182|slicerrt:1182) Fixed #314: Slice intersection change is applied now when showing/hiding structures in Patient Hierarchy Re #410: Added TODO comment

2013-09-30, 17:59:19 - Csaba Pinter

@wangk : Please address these comments so that we could close this issue

2013-10-01, 13:11:41 - wangk

I am working on it right now. I have to recompile my slicer after I updated slicerRT since it uses the new markup module now. will take a bit time to fix this.

2013-10-01, 13:43:23 - Csaba Pinter

Thank you!

2013-10-04, 15:14:55 - wangk

(In r:1205|slicerrt:1205) Re #410: Fixed the Todo item (change the transform node name as requested).

2013-10-04, 15:18:31 - wangk

@pinter, for the to do in the isodose test, I pick one level so it is simple and generic. if we want 2 levels or 3 levels, then we will have to fix that in the CMake Macro to supply 2 or 3 vtk polydata files as baseline. however, this can be done. what do you think?

2013-10-04, 16:04:34 - Csaba Pinter

Great, thanks! Sorry for being extra picky, but this is how best practices and used conventions stick to people. Thanks again!

2013-10-04, 16:04:34 - Csaba Pinter

working_hours: changed from “2.0” to “0.0”

2013-10-04, 16:04:34 - Csaba Pinter

status: changed from “Test” to “Fixed”

2013-10-04, 16:04:34 - Csaba Pinter

total_working_hours: changed from “2.0” to “0.0”

2013-10-07, 20:45:41 - Csaba Pinter

@wangk I didn’t see your comment, sorry! So to answer it, I think 1 level is enough for now, as we only want to test how the isodose surface is calculated, and I think if anything changes in the code, then this test will fail no matter if 1 or 3 levels are generated.

#411 Utilize new MRML node referencing mechanism

2013-09-20, 20:28:44 - Csaba Pinter

(In r:1170|slicerrt:1170) Re #29: PlanarImage hidden module created. Its logic is used by DicomRtImport when RT images are loaded. Every planar image (for now they are all RT images) has a PlanarImage parameter set, with the image itself, the displayed model and the texture volume. Re #414: vtkSlicerPlanarImageModuleLogic can be used as an example for logic and parameter set node relations Re #411: vtkMRMLPlanarImageNode can be used as an example for the new reference mechanism Fixed #347: New icon for showing volumes in the Patient Hierarchy tree

2013-09-20, 21:59:08 - Csaba Pinter

(In r:1172|slicerrt:1172) Re #29: Planar image display model is updated when the planar image is transformed Re #411: Role attribute names have to be specified. Otherwise it causes a crash when saving a scene

2013-09-22, 21:40:12 - Csaba Pinter

(In r:1173|slicerrt:1173) Re #29: Image planes appear after loading a scene (workarounds had to be applied, see below) Re #411: User reference roles cannot be used after loading a scene. This should be fixed in Slicer core

2013-09-22, 22:37:22 - Andras Lasso

It’s very ugly if the node references are broken after scene load. Have you entered a bug in Mantis for Slicer?

2013-09-22, 22:38:54 - Andras Lasso

The crash should be reported, too (if we use node references incorrectly then a meaningful error message should be logged instead of crashing).

2013-09-22, 22:49:13 - Csaba Pinter

I sent a lengthy email to the slicer devel list about 2 hours ago, but apparently the system is slow.

2013-09-22, 23:34:25 - pieper

HI Csaba - the mail got through. I forwarded it to Alex and asked him to respond to you and cc the list.

-Steve

2013-09-22, 23:49:13 - Andras Lasso

There are many tests in vtkMRMLNodeTest1.cxx. It would be nice to add a test case that demonstrates the issue.

2013-09-23, 13:23:30 - Csaba Pinter

Thanks, Steve!

2013-09-23, 13:50:27 - Csaba Pinter

I reported the crash: http://www.na-mic.org/Bug/view.php?id=3413

I’ll look into the tests

2013-09-24, 15:31:04 - Csaba Pinter

priority: changed from “Normal (3)” to “High (2)”

2013-10-08, 14:09:01 - Csaba Pinter

Mantis issue created for the blocking problem (saving scene with custom attributes). http://www.na-mic.org/Bug/view.php?id=3416

This task cannot move further until this one is fixed

2013-10-17, 16:44:00 - Csaba Pinter

status: changed from “New” to “Accepted”

2013-10-17, 20:38:11 - Csaba Pinter

(In r:1225|slicerrt:1225) Re #411: All explicit ‘Connection’ attributes replaced with reference roles

2013-10-18, 15:25:32 - Csaba Pinter

(In r:1226|slicerrt:1226) Re #411: Planar image parameter set node changed to new way of reference handling. This should be used as an example for the rest

2013-10-18, 20:14:34 - Csaba Pinter

(In r:1227|slicerrt:1227) Re #411: Dose volume histogram module updated to use new reference handling. Committed separately because this is quite a complicated module in terms of references

2013-10-18, 21:28:39 - Csaba Pinter

(In r:1228|slicerrt:1228) Re #411: Updated Beams and ContourComparison modules to use the new reference handling method. Memory leak fixed in dose volume histogram module when DVH array was deleted

2013-10-24, 18:04:09 - Csaba Pinter

(In r:1232|slicerrt:1232) Test #411: New MRML node reference is used in all the modules

2013-10-24, 18:04:09 - Csaba Pinter

status: changed from “Accepted” to “Test”

2013-10-24, 18:04:59 - Csaba Pinter

@wangk: I strongly recommend you doing the same work in the nodes that are related to the modules you developed outside SlicerRT

2013-10-24, 19:59:57 - Csaba Pinter

status: changed from “Test” to “Accepted”

2013-10-24, 20:02:36 - jchris

Hi Csaba,

Let me know if this works well. I will then backport the most recent commits to the Slicer-4-3 branch. See http://wiki.slicer.org/slicerWiki/index.php/Developer_Meetings/20131022

Thanks

Jc

2013-10-29, 18:52:27 - Csaba Pinter

In slicerrt:1234 Re #441: DoseAccumulation uses new referencing mechanism; Simplified DoseAccumulation logic code (removing a lot of duplicated code); Use vtkMRMLScalarVolumeNode in the classes instead of more

2013-10-29, 18:57:38 - Csaba Pinter

(In r:1236|slicerrt:1236) Re #411: DoseComparison and ExternalBeamPlanning modules use new node referencing mechanism; Minor code review of ExternalBeamPlanning

2013-10-29, 18:59:12 - Csaba Pinter

@wangk @gregsharp I changed the ExternalBeamPlanning code a bit (see previous comment here) but there are no tests yet for that module. Can you try and see if it still works as before? Also I did a minor code review of the module’s code. Please see my changes and try to stick with those conventions. Also ask me if something is not clear or right. Thanks!

2013-10-29, 18:59:51 - Csaba Pinter

status: changed from “Accepted” to “Test”

2013-10-29, 20:25:59 - Csaba Pinter

(In r:1238|slicerrt:1238) Re #411: Fixed NA-MIC self test by re-adding an attribute

2013-10-30, 18:57:50 - Csaba Pinter

assigned_to_id: changed from “pinter” to “gregsharp”

2013-10-30, 22:48:38 - Greg Sharp

EBP module is working well. Thank you Csaba.

2013-10-30, 22:48:38 - Greg Sharp

status: changed from “Test” to “Fixed”

2013-10-31, 01:04:59 - Csaba Pinter

Thanks for checking!

2013-11-06, 16:05:11 - Csaba Pinter

(In r:1265|slicerrt:1265) Re #411: Use simpler SetReferenceNodeID instead of SetNthNodeReferenceID(.., 0, ..)

#412 Release SlicerRT 0.12

Change screenshot (the dose volume color map is different now)

2013-09-25, 15:21:15 - Csaba Pinter

description: changed from “” to “Change screenshot (the dose…”

2013-11-04, 16:41:33 - Csaba Pinter

Component: changed from “infrastructure” to “”

2013-11-04, 16:41:33 - Csaba Pinter

status: changed from “New” to “Accepted”

2013-11-04, 17:33:45 - Csaba Pinter

(In r:1260|slicerrt:1260) Re #412: Bumped SlicerRT version; Added DicomRtExport to the stable modules (it is still in development, but it works and many users demanded this feature)

2013-11-04, 18:05:13 - Csaba Pinter

status: changed from “Accepted” to “Test”

2013-11-05, 14:28:35 - Csaba Pinter

status: changed from “Test” to “Fixed”

#413 Direction cosines of exported RT dose is incorrrect sometimes

when the original direction cosine matrix is [-1 0 0; 0 -1 0; 0 0 -1], the exported RT dose has a direction cosine of [-1 0 0; 0 -1 0; 0 0 1]. after a bit investigation, it seems that it is the dicom tag ‘grid frame offset vector’ is not set correctly compared to the original dicom file. need more work on this.

2014-05-29, 15:49:54 - wangk

status: changed from “New” to “Accepted”

2014-05-29, 15:49:59 - wangk

assigned_to_id: changed from “gregsharp” to “wangk”

2014-05-29, 15:51:02 - wangk

the ‘grid frame offset vector’ needs to be calculated using direction cosine along Z direction. will submit fix soon.

2014-05-29, 15:51:07 - wangk

milestone_id: changed from “Future” to “SlicerRt 0.15”

2014-06-02, 13:28:41 - wangk

milestone_id: changed from “SlicerRt 0.15” to “SlicerRt 0.14”

2014-06-02, 13:29:49 - wangk

With the fixes in plastimatch, this ticket can also be fixed at the same time so change it to 0.14.

2014-06-02, 15:35:20 - wangk

Test #604 / Test #413: Bump plastimatch version to make the change effect in SlicerRT.

Commit: r:1777 slicerrt:1777

2014-06-02, 15:35:20 - wangk

status: changed from “Accepted” to “Test”

2014-07-12, 17:01:22 - Csaba Pinter

Closing this ticket before release, assuming that the lack of error reports since setting the status to Test means that there are no errors. In case of errors a new ticket should be opened and related to this one.

2014-07-12, 17:01:22 - Csaba Pinter

status: changed from “Test” to “Fixed”

#414 Logic classes should not have a current parameter set node member

Now all logic classes contain a pointer to the ‘currently selected’ parameter set node as a member variable.

As the widget modifies the parameter set node when the user changes a UI setting, and the widget has direct access to the parameter set node, this is not necessary. Furthermore this structure implies that a logic class has a corresponding parameter set, which is not the case. A better solution would be:

2013-09-20, 20:28:44 - Csaba Pinter

(In r:1170|slicerrt:1170) Re #29: PlanarImage hidden module created. Its logic is used by DicomRtImport when RT images are loaded. Every planar image (for now they are all RT images) has a PlanarImage parameter set, with the image itself, the displayed model and the texture volume. Re #414: vtkSlicerPlanarImageModuleLogic can be used as an example for logic and parameter set node relations Re #411: vtkMRMLPlanarImageNode can be used as an example for the new reference mechanism Fixed #347: New icon for showing volumes in the Patient Hierarchy tree

2013-09-20, 20:28:44 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2013-11-01, 18:00:10 - Csaba Pinter

milestone_id: changed from “SlicerRt 1.0” to “SlicerRt 0.13”

2013-12-24, 05:00:46 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.13” to “SlicerRt 1.0”

2013-12-30, 00:48:05 - Csaba Pinter

milestone_id: changed from “SlicerRt 1.0” to “SlicerRt 0.14”

2014-01-21, 04:27:55 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.14” to “SlicerRt 1.0”

2016-05-17, 05:01:51 - Csaba Pinter

milestone_id: changed from “SlicerRt 1.0” to “SlicerRt 0.18”

2016-05-17, 05:45:57 - Csaba Pinter

Re #414: Removed parameter set node member from logic classes of modules SegmentMorphology, SegmentComparison, and Isodose WIP Commit: r:2841|slicerrt:2841

2016-05-17, 17:25:02 - Csaba Pinter

Re #414: Continued removing parameter set node member from logic classes (DoseVolumeHistogram, DoseComparison) Commit: r:2843|slicerrt:2843

2016-05-17, 19:05:28 - Csaba Pinter

Fixed #414: Finished removing parameter set node member from logic classes; Changed DvhComparison logic so that it doesn’t contain parameters as members (especially node pointers); Fix button width issue in DVH module GUI for ‘retina’ displays Commit: r:2844|slicerrt:2844

2016-05-17, 19:05:28 - Csaba Pinter

status: changed from “New” to “Fixed”

2016-05-17, 20:31:46 - Csaba Pinter

Parameter node handling in modules (as established by looking at all the SlicerRT modules and coming up with best practices):

2016-05-17, 20:31:46 - Csaba Pinter

CommentContent: changed from “Parameter node handling in modules (as established by looking at all the SlicerRT modules and coming up with best practices):

2016-05-17, 20:43:33 - jchris

+1

2016-05-18, 03:52:59 - Csaba Pinter

Re #764, re #414: Use beams table in EBP; Removed parameter set node member from EBP logic class Commit: r:2846|slicerrt:2846

2016-06-07, 20:33:06 - Csaba Pinter

Re #414: Fixed IGRT self test by updating to the new way parameter nodes are used Commit: r:2914|slicerrt:2914

#415 Create logic for modeling the whole IEC coordinate system structure

2013-09-18, 22:09:59 - Csaba Pinter

description: changed from “And create an interactive m…” to “* Extend Beams module to ex…”

2013-09-27, 17:55:39 - Csaba Pinter

milestone_id: changed from null to “Future”

2016-01-12, 17:06:16 - Csaba Pinter

milestone_id: changed from “Future” to “SlicerRt 0.18”

2016-01-12, 17:06:16 - Csaba Pinter

assigned_to_id: changed from null to “rxu”

2016-01-12, 17:12:05 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.18” to “Student projects”

2016-01-12, 21:06:33 - Csaba Pinter

Re #415: Added skeleton of ExternalBeamVirtualReality. It is only a duplicate of DvhComparison that was renamed. Commit: r:2572|slicerrt:2572

2016-02-18, 19:24:41 - rxu

RE #415: Renamed module to Room’s Eye View Commit: r:2668|slicerrt:2668

2016-02-23, 20:27:47 - rxu

Re: #415: Created transformation chains to allow transformations of the model Commit: r:2688|slicerrt:2688

2016-02-24, 20:55:11 - Csaba Pinter

Re #415: Added vtkCollisionDetectionFilter from project https://github.com/glawlor/vtkbioeng for detecting collisions in the Room’s Eye View module. Not tested yet. Commit: r:2691|slicerrt:2691

2016-02-28, 01:44:44 - rxu

Re: #415: Allow importing models and changing model colors Commit: r:2692|slicerrt:2692

2016-03-06, 03:45:30 - rxu

Re: #415: Added collision detection filters to detect collisions between patient, table top, collimator and gantry Commit: r:2703|slicerrt:2703

2016-03-10, 18:28:43 - rxu

Re: #415: Fixed bugs in collision detection; modified name of the linac model and added patient model Commit: r:2714|slicerrt:2714

2016-03-10, 18:31:43 - rxu

Re: #415: added missing model files Commit: r:2715|slicerrt:2715

2016-04-15, 20:48:07 - Csaba Pinter

assigned_to_id: changed from “rxu” to null

2016-05-05, 14:35:39 - Csaba Pinter

assigned_to_id: changed from null to “VinithMS”

2016-05-16, 19:43:28 - Csaba Pinter

Re #415: Added Room’s Eye View C++ module skeleton in SlicerRT as experimental Commit: r:2837|slicerrt:2837

2016-05-17, 00:21:33 - Csaba Pinter

Re #415, re #115: Fixing build errors in Room’s Eye View (somehow the build before the previous commit showed no errors) Commit: r:2839|slicerrt:2839

2016-06-16, 17:06:19 - Csaba Pinter

status: changed from “New” to “Accepted”

2016-06-17, 15:00:54 - Vinith Suriyakumar

re #415: Ported Python module to C++ Commit: r:2953|slicerrt:2953

2016-06-17, 15:06:40 - Vinith Suriyakumar

re #415: Fixed wobbly collimator, levitating table top, and imaging panels have own movements based on movements seen at KGH linac Commit: r:2954|slicerrt:2954

2016-06-17, 16:26:06 - Csaba Pinter

Re #415: Added skeleton for IEC transform logic class Commit: r:2956|slicerrt:2956

2016-07-06, 16:50:05 - Vinith Suriyakumar

Re #415: GetTransformBetween function completed, able to transform between any coordinate systems defined by IEC standard. Commit: r:2973|slicerrt:2973

2016-07-07, 16:11:29 - Vinith Suriyakumar

Re #415: Renamed variables to adhere to the IEC standard; Collision detection feature added; Memory leak fixed Commit: r:2976|slicerrt:2976

2016-07-08, 19:29:51 - Vinith Suriyakumar

Re #415: Modified code to be more readable (removing empty spaces, methods separators, documentation), gave GUI sliders more understandable names. Commit: r:2979|slicerrt:2979

2016-07-08, 19:32:59 - Vinith Suriyakumar

Re #415: Removed output statement in deconstructor used for debugging. Commit: r:2980|slicerrt:2980

2016-07-11, 18:40:36 - Csaba Pinter

Re #415: Made transform nodes hidden; Stylistic changes Commit: r:2981|slicerrt:2981

2016-08-06, 01:25:51 - Vinith Suriyakumar

file:c2Bve8w3qr5PZcdmr6CpXy

2016-08-06, 01:25:51 - Vinith Suriyakumar

Attachment added: “Suriyakumar_SPIE2017_v01.doc”

2016-08-06, 01:26:31 - Vinith Suriyakumar

Attachment added: “Suriyakumar_SPIE2017_v01.doc”

2016-08-06, 01:26:42 - Vinith Suriyakumar

Attachment added: “Suriyakumar_SPIE2017_v01.doc”

2016-08-06, 01:26:57 - Vinith Suriyakumar

file:dDHuAOw3qr5QH2dmr6QqzO

2016-08-06, 01:26:57 - Vinith Suriyakumar

Attachment added: “Suriyakumar_SPIE2017_v01.doc”

2016-08-06, 01:27:05 - Vinith Suriyakumar

file:dISTU4w3qr5Opcdmr6bg7m

2016-08-06, 01:27:05 - Vinith Suriyakumar

Attachment added: “Suriyakumar_SPIE2017_v01_CsabaComments.doc”

2016-08-06, 01:27:14 - Vinith Suriyakumar

file:dN8Xryw3qr5QH2dmr6QqzO

2016-08-06, 01:27:14 - Vinith Suriyakumar

Attachment added: “Suriyakumar_SPIE2017_v02.docx”

2016-08-06, 01:27:21 - Vinith Suriyakumar

file:dScXICw3qr5PZcdmr6CpXy

2016-08-06, 01:27:21 - Vinith Suriyakumar

Attachment added: “Suriyakumar_SPIE2017_v02_Csaba.docx”

2016-08-06, 01:27:29 - Vinith Suriyakumar

file:dW9ArIw3qr5Opcdmr6bg7m

2016-08-06, 01:27:29 - Vinith Suriyakumar

Attachment added: “Suriyakumar_SPIE2017_v03.docx”

2016-08-06, 01:27:36 - Vinith Suriyakumar

file:d1e0r4w3qr5QH2dmr6QqzO

2016-08-06, 01:27:36 - Vinith Suriyakumar

Attachment added: “Suriyakumar_SPIE2017_v04.docx”

2016-08-06, 01:27:42 - Vinith Suriyakumar

file:d4tU_Ow3qr5PZcdmr6CpXy

2016-08-06, 01:27:42 - Vinith Suriyakumar

Attachment added: “Suriyakumar_SPIE2017_v04_Csaba.docx”

2016-08-06, 01:27:47 - Vinith Suriyakumar

file:d7SReAw3qr5Oo8acwqjQYw

2016-08-06, 01:27:47 - Vinith Suriyakumar

Attachment added: “Suriyakumar_SPIE2017_v05.docx”

2016-08-06, 01:27:53 - Vinith Suriyakumar

file:d-2Yvsw3qr5OuzacwqEsg8

2016-08-06, 01:27:53 - Vinith Suriyakumar

Attachment added: “Suriyakumar_SPIE2017_v05_Csaba.docx”

2016-08-06, 01:28:06 - Vinith Suriyakumar

file:ag_L4Gw3ur5OuzacwqEsg8

2016-08-06, 01:28:06 - Vinith Suriyakumar

Attachment added: “Suriyakumar_SPIE2017_v06.docx”

2016-08-06, 01:28:13 - Vinith Suriyakumar

file:alovrYw3ur5OtcacwqjQXA

2016-08-06, 01:28:13 - Vinith Suriyakumar

Attachment added: “BackupofSuriyakumar_SPIE2017_v07.wbk”

2016-08-06, 01:28:24 - Vinith Suriyakumar

file:arrMM4w3ur5Oo8acwqjQYw

2016-08-06, 01:28:24 - Vinith Suriyakumar

Attachment added: “Suriyakumar_SPIE2017_v07–GABORCOMMENTS.docx”

2016-08-06, 01:28:30 - Vinith Suriyakumar

file:au7Maww3ur5Oo8acwqjQYw

2016-08-06, 01:28:30 - Vinith Suriyakumar

Attachment added: “Suriyakumar_SPIE2017_v07–Kyle.docx”

2016-08-06, 01:28:39 - Vinith Suriyakumar

file:aAu2Cow3ur5OtcacwqjQXA

2016-08-06, 01:28:39 - Vinith Suriyakumar

Attachment added: “Suriyakumar_SPIE2017_v08.docx”

2016-08-06, 01:28:49 - Vinith Suriyakumar

file:aGIjAEw3ur5PZcdmr6CpXy

2016-08-06, 01:28:49 - Vinith Suriyakumar

Attachment added: “Suriyakumar_SPIE2017_v08-comments-Anna.docx”

2016-08-06, 01:29:02 - Vinith Suriyakumar

file:aOoCDKw3ur5OtcacwqjQXA

2016-08-06, 01:29:02 - Vinith Suriyakumar

Attachment added: “Suriyakumar_SPIE2017_v08-Grace.docx”

2016-08-06, 01:29:14 - Vinith Suriyakumar

file:aVmsycw3ur5OtcacwqjQXA

2016-08-06, 01:29:14 - Vinith Suriyakumar

Attachment added: “Suriyakumar_SPIE2017_v09.docx”

2016-08-06, 01:29:20 - Vinith Suriyakumar

file:aY285Gw3ur5OuzacwqEsg8

2016-08-06, 01:29:20 - Vinith Suriyakumar

Attachment added: “Suriyakumar_SPIE2017_v10.docx”

2016-08-06, 01:29:26 - Vinith Suriyakumar

file:a2I3sew3ur5OoGdmr6CpXy

2016-08-06, 01:29:26 - Vinith Suriyakumar

Attachment added: “Suriyakumar_SPIE2017_v11.docx”

2016-08-06, 01:29:33 - Vinith Suriyakumar

file:a6DkFWw3ur5Ok1acwqjQYw

2016-08-06, 01:29:33 - Vinith Suriyakumar

Attachment added: “Suriyakumar_SPIE2017_v12.docx”

2016-08-15, 23:13:30 - Csaba Pinter

Re #415: Added treatment machine component models as resources instead of hard-coded paths that only worked on Vinith’s local computer; Fixed code issues (unnecessary function arguments, formatting, etc.) Commit: r:3056|slicerrt:3056

2016-08-16, 16:21:59 - Csaba Pinter

Re #415: Added parameter set node handling in Room’s Eye View; Added patient selection; Cleaned up code Commit: r:3057|slicerrt:3057

2016-08-21, 21:48:32 - Vinith Suriyakumar

Re #415: Renamed transform function names to describe transforms that are update by function, error checking for models, collimator does not rotate currently after implementing parameter node. Issue will be looked at further before parameter node is used for rest of transforms. Imaging panel bug fixed, so panels rotate properly now. Commit: r:3063|slicerrt:3063

2016-08-23, 21:53:33 - Csaba Pinter

Re #415: Fixed issues in Room’s Eye View module (parameter node usage, wrong use of smart pointers, etc.); Left imaging panel rotation is now broken, needs to be fixed Commit: r:3067|slicerrt:3067

2016-09-27, 14:56:22 - Vinith Suriyakumar

Re #415: Fixed the broken left imaging panel transformation. Commit: r:3090|slicerrt:3090

2016-10-14, 13:21:29 - Csaba Pinter

Re #415: Added icon for Room’s Eye View module Commit: r:3092|slicerrt:3092

2016-10-23, 10:42:44 - Vinith Suriyakumar

Re #415: The IECTransformLogic Class is now functional and integrates the IEC standard into the Beams module. Commit: r:3097|slicerrt:3097

2016-10-23, 10:45:04 - Vinith Suriyakumar

Re #415: Eliminated any hard-coded numbers in the transformations to make the module suitable for multiple models. Commit: r:3098|slicerrt:3098

2017-04-21, 16:50:03 - Csaba Pinter

status: changed from “Accepted” to “Test”

2017-04-21, 18:58:01 - Csaba Pinter

Re #415: Vinith assignment #3 tasks. Fixes are needed because REV module crashes when any parameter is modified.Individual commit messages below.

Changed the coordinate system names after checking with IEC standard and Room’s Eye View module.

Fully functional orientation marker.

Created new model nodes of deep copy poly data to work on clone/harden/append workflow for orientation marker.

Fixed the transform variable redefinition error.

Added use of vtkTransformPolyData to work on getting the orientation marker updated as the geometric parameters are changed.

Added the ability to load custom 3D models from file directory. Also added option for BrainLab SRS array. Working on fixing transformation of orientation marker.

Added cloning of model poly data and hardening of transforms. Hardening transforms is currently commented out as it is causing some issues.

Implemented collision detection between additional devices and other components of machine.

Linac model is now displayed as human orientation marker, but model transformations still need to appear properly in marker.

Transformed both of the additional treatment models into their proper positions using the Harden Transform function.

Fixed issues with additional treatment model checkboxes and work-in progress for appending machine part models for orientation marker.

Added CMakeList.txt file and created applicator holder model.

Created electron applicator model. Hole on top plate must still be added.

Updated UI to account for KGH visits and to include applicator holder and electron applicator. Implemented additional transform for applicator models to existing hierarchy.

Added GUI skeleton for additional treatment models.

Commit: r:3153 slicerrt:3153

2017-04-21, 18:59:32 - Csaba Pinter

Re #415: Fixed crash in REV module. The additional device models were not loaded due to two reasons, and it prevented the collision detection logic from being set up Commit: r:3154|slicerrt:3154

2017-04-21, 19:20:50 - Csaba Pinter

Re #415: Clean-up round for the Room’s Eye View code Commit: r:3155|slicerrt:3155

2017-04-21, 22:01:20 - Csaba Pinter

Re #845, re #415: Fixed gantry rotation + various fixes in REV and IEC logic

Commit: r:3156 slicerrt:3156

2017-04-25, 21:56:47 - Csaba Pinter

Re #845, re #415: Added FixedReference to RAS transform in IEC, so that the inherent rotation and the isocenter position can be properly taken into account Commit: r:3157|slicerrt:3157

2017-05-02, 19:25:24 - Csaba Pinter

Fixes that are needed to do before closing this ticket: Generalize vtkSlicerIECTransformLogic::GetTransformBetween, get rid of the 500 lines of if-else Take RAS to FixedReference into account [DONE] Couch movement should affect the whole linac instead of the couch\u000B(so that the patient that cannot move in RAS is always on the couch) BUG: Leak (33 vtkGeneralTransform, 6 vtkMatrix4x4, 2 vtkSimpleTransform, 4 vtkTransform) BUG: Close scene, logic gone, load models, crash BUG: Applicator holder appears in a different place after loading programmatically than when manually Take couch angle it into account for beam transform (need to fix GetTransformBetween first) Address TODOs around FIXEDREFERENCEISOCENTER_TO_COLLIMATORROTATED_TRANSFORM_NODE_NAME These transforms are apparently responsible for the collimator rotation (they translate the collimator to the isocenter, rotate, then translate back). Need to do all this on the vtkTransform level

2017-05-02, 19:25:24 - Csaba Pinter

milestone_id: changed from “Student projects” to “SlicerRt 0.19”

2017-05-02, 19:25:24 - Csaba Pinter

status: changed from “Test” to “Accepted”

2017-05-02, 19:26:16 - Csaba Pinter

Re #415: Add linac body to FixedReference coordinate system so that it appears in the right place after beam is used Commit: r:3164|slicerrt:3164

2017-05-04, 13:56:04 - Csaba Pinter

Re #862, re #415: Partial fix for beam cloning and further cleanup of IEC and RoomsEyeView Commit: r:3166|slicerrt:3166

2017-05-06, 21:37:48 - Csaba Pinter

Re #415: Added IEC transform logic test WIP Commit: r:3168|slicerrt:3168

2017-05-08, 22:32:35 - Csaba Pinter

Re #415: Fixes in IEC logic and finalized IEC logic test Commit: r:3169|slicerrt:3169

2017-05-08, 23:50:08 - Csaba Pinter

Re #415: Added Room’s eye view logic test WIP Commit: r:3170|slicerrt:3170

2017-05-09, 00:48:08 - Csaba Pinter

Re #415: Finished Room’s eye view logic test Commit: r:3171|slicerrt:3171

2017-05-09, 21:29:14 - Csaba Pinter

Re #415: Progress in making IEC logic dynamic Commit: r:3172|slicerrt:3172

2017-05-10, 22:14:17 - Csaba Pinter

Re #415: Simplified IEC hierarchy by removing two unnecessary transforms (which also did not belong to real coordinate systems, and did not form a real transform hierarchy)

Fixed orientation marker model multiplication issue

Removed faulty additional models collision detection

Commit: r:3173 slicerrt:3173

2017-05-11, 11:12:28 - Csaba Pinter

Re #415: Continued simplification of IEC hierarchy

Disabled disfunctional collision detection for additional models Commit: r:3174|slicerrt:3174

2017-05-13, 14:29:11 - Csaba Pinter

Re #415: Simplification of IEC hierarchy finished

There are no unnecessary transforms in the hierarchy, the transforms correspond exactly to the IEC standard, and the transformation chain is correct (to/from connections for parent/child) Commit: r:3176|slicerrt:3176

2017-05-18, 17:23:43 - Csaba Pinter

Re #415: Fixed REV support for loaded RT plans Commit: r:3177|slicerrt:3177

2017-05-18, 17:24:52 - Csaba Pinter

Re #415: Fixed IS orientation of the treatment machine (so that the loaded patient is in head-first orientation) Commit: r:3178|slicerrt:3178

2017-05-19, 15:16:42 - Csaba Pinter

Re #415: Fixed IEC logic test (failed due to FixedReference to RAS transform change) Commit: r:3179|slicerrt:3179

2017-05-19, 17:45:52 - Csaba Pinter

Re #415: Rationalizations and fixes in Room’s Eye View

Commit: r:3180 slicerrt:3180

2017-05-19, 19:23:09 - Csaba Pinter

Re #415: Add linac models in model hierarchy

Also removed unneeded hierarchy related calls from isodose logic Commit: r:3181|slicerrt:3181

2017-05-19, 20:41:43 - Csaba Pinter

Re #415: Further rationalizations and fixes in Room’s Eye View Commit: r:3182|slicerrt:3182

2017-05-27, 03:01:51 - Csaba Pinter

Re #415: Fixed Room’s eye view bugs related to scene close

IEC transform and REV model nodes are now singleton. Commit: r:3185|slicerrt:3185

2017-05-27, 03:36:37 - Csaba Pinter

Fixed #415: Beam selector added in Room’s Eye View module

With this commit, the IEC modelling and EBP integration is finished, and first round cleanup and rationalization done. Future tasks related to Room’s Eye View will be tracked in different tickets Commit: r:3186|slicerrt:3186

2017-05-27, 03:36:37 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

2017-05-27, 03:57:08 - Csaba Pinter

Re #415: Minor fixes in Room’s Eye View Commit: r:3187|slicerrt:3187

#416 Patient Hierarchy tree is not loaded correctly from scene when the Patient Hierarchy module is active

  1. Load a DICOM-RT study
  2. Save scene
  3. Restart Slicer
  4. Switch to the Patient Hierarchy module
  5. Load the scene -> The tree looks different than it looks after step 1 or if step 4 is skipped. Also there are error messages (‘qMRMLPatientHierarchyTreeView::toggleVisibility: No displayed model found for planar image’ and ‘Invalid active contour representation for contour node’)

2013-10-17, 15:37:42 - Csaba Pinter

description: changed from “1. Load a DICOM-RT study 2….” to “1. Load a DICOM-RT study 2….”

2013-11-01, 18:00:10 - Csaba Pinter

milestone_id: changed from “SlicerRt 1.0” to “SlicerRt 0.13”

2014-01-03, 01:16:10 - Csaba Pinter

(In r:1375|slicerrt:1375) Fixed #416: Update of the tree views in subject hierarchy is performed if a scene import or batch processing ends; Fixed display visibility icons in case of nested associations

2014-01-03, 01:16:10 - Csaba Pinter

status: changed from “New” to “Fixed”

#417 Slicer on Linux installed on VirtualBox machine behaves differently

The following issues are present on any Ubuntu Linux system that is installed on a VirtualBox virtual machine on Windows:

#418 Dose color table is corrupted after closing the scene

2013-09-23, 19:04:16 - Csaba Pinter

(In r:1178|slicerrt:1178) Fixed #418: Dose volumes are loaded using the correct color table after closing the scene

2013-09-23, 19:04:16 - Csaba Pinter

status: changed from “New” to “Fixed”

#419 Load RT ion plans

Example datasets:

#420 Support DICOM spatial registration objects

Import them from DICOM to appropriate MRML nodes

2013-09-24, 19:36:11 - Csaba Pinter

(In r:1181|slicerrt:1181) Re #420: Added datasets as examples for spatial registration objects

2013-09-24, 19:36:11 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2013-11-30, 14:57:13 - Csaba Pinter

Duplicate of #405

2013-11-30, 14:57:13 - Csaba Pinter

status: changed from “New” to “Invalid”

#421 Apply window/level information for anatomical volumes

There are DICOM tags storing the used window/level settings, for example for CT: WindowCenter (0028,1050) and WindowWidth (0028,1051). It would be good to set these just as in case of RT images.

Mantis issue url:http://www.na-mic.org/Bug/view.php?id=3467 #3467 created

2013-11-03, 15:27:14 - Csaba Pinter

description: changed from “There are DICOM tags storin…” to “There are DICOM tags storin…”

2015-07-10, 18:32:35 - Csaba Pinter

Component: changed from null to “Slicer core”

2015-07-10, 18:32:35 - Csaba Pinter

milestone_id: changed from “Future” to “SlicerRt 0.18”

2015-07-10, 18:32:35 - Csaba Pinter

status: changed from “New” to “Test”

2015-07-10, 18:32:35 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2015-07-10, 18:32:59 - Csaba Pinter

Implemented in https://github.com/cpinter/Slicer/tree/3467-read-and-apply-windowlevel-from-dicom

2015-07-14, 16:17:03 - Csaba Pinter

Changes committed in Slicer core http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=24407

2015-07-14, 16:17:03 - Csaba Pinter

status: changed from “Test” to “Fixed”

#422 Manage SlicerRT documentation

Ticket to reference when adding/modifying documentation for SlicerRT

2013-09-25, 17:28:16 - Csaba Pinter

(In r:1184|slicerrt:1184) Re #422: Updated SlicerRT overview presentation to current state (screenshots, new features, Transform Visualizer, Matlab Bridge)

2013-09-25, 17:28:16 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2013-09-26, 14:54:18 - Csaba Pinter

(In r:1188|slicerrt:1188) Re #422: Minor fixes in the SlicerRT overview presentation

2013-09-26, 15:38:47 - Csaba Pinter

(In r:1189|slicerrt:1189) Re #422: SlicerRT architecture slide added

2013-10-29, 19:05:18 - Csaba Pinter

(In r:1237|slicerrt:1237) Re #422: Updated Patient Hierarchy screenshot in the overview documentation

2013-11-11, 16:03:02 - Csaba Pinter

(In r:1278|slicerrt:1278) Re #422: Added DICOM-RT export to the overview presentation

2013-11-18, 18:55:02 - Csaba Pinter

(In r:1286|slicerrt:1286) Re #422 #436: Added gel dosimetry data flow diagram as an objective summary of the workflow

2013-11-18, 23:38:44 - Csaba Pinter

(In r:1289|slicerrt:1289) Re #422 #436: Updated gel dosimetry data flow diagram (calibration plot and ROI selection comes before applying RDF and electron MU to the Pdd data)

2014-01-16, 18:32:52 - Csaba Pinter

(In r:1423|slicerrt:1423) Re #422: Added SubjectHierarchy presentation given at NA-MIC project week in Salt Lake City; Deleted obsolete Patient Hierarchy slides

2014-02-15, 19:02:57 - Csaba Pinter

Re #422: Added link to the Slicer script repository wiki page in the sample python scripts readme Commit: r:1508|slicerrt:1508

2014-05-22, 15:29:49 - Csaba Pinter

Re #422: Updated gel dosimetry workflow diagram Commit: r:1750|slicerrt:1750

2014-07-04, 15:37:17 - Csaba Pinter

Re #422: Added example for development environment for easy Slicer and SlicerRT development. Readme file included to explain how to use this structure Commit: r:1843|slicerrt:1843

2014-07-04, 15:44:58 - Csaba Pinter

Re #422: Removed development environment structure, because these scripts are located in the PerkLabSandbox repo, and duplication is never prudent. Commit: r:1844|slicerrt:1844

2015-06-01, 17:59:48 - Csaba Pinter

Re #422: Added full, detailed technical SlicerRT overview presentation, and one shorter one for general audience (which is essentially the presentation for the World Congress 2015) Commit: r:2303|slicerrt:2303

2015-06-01, 18:02:51 - Csaba Pinter

Re #422: General audience presentation contained duplicate slides, fixed that Commit: r:2304|slicerrt:2304

2015-06-01, 22:38:37 - Csaba Pinter

Re #422: Minor changes in the general audience SlicerRT presentation Commit: r:2307|slicerrt:2307

2015-06-24, 17:01:57 - Csaba Pinter

Re #422: Updated general audience SlicerRT presentation Commit: r:2331|slicerrt:2331

2015-06-26, 20:12:39 - Csaba Pinter

Re #422: Added World Congress SlicerRT and GelDosimetry tutorial presentations and dataset links (actual data on MIDAS); Removed old tutorial dataset, replaced it with its download link Commit: r:2338|slicerrt:2338

2016-06-02, 19:38:54 - Csaba Pinter

Re #422: Updated presentations, removed obsolete one Commit: r:2892|slicerrt:2892

2016-09-02, 13:16:05 - Csaba Pinter

Re #422: Added tutorial document about editing 3D models in MS builder to use in Slicer Commit: r:3081|slicerrt:3081

#423 NA-MIC self test has errors on Linux and Mac

2013-09-25, 18:12:25 - Csaba Pinter

(In r:1186|slicerrt:1186) Fixed #423: Fixed NA-MIC self test Linux and Mac errors

2013-09-25, 18:12:25 - Csaba Pinter

status: changed from “New” to “Fixed”

#424 Add sample datasets

Indicate in the folder name:

2013-09-26, 21:03:52 - Csaba Pinter

description: changed from “” to “Indicate the acquisition so…”

2013-09-26, 21:04:32 - Csaba Pinter

description: changed from “Indicate the acquisition so…” to “Indicate in the folder name…”

2013-09-26, 21:05:05 - Csaba Pinter

(In r:1190|slicerrt:1190) Re #424: Added prostate MR dataset with tilted plane

2013-09-26, 21:05:05 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2013-11-01, 18:33:56 - Csaba Pinter

(In r:1246|slicerrt:1246) Re #424: Fixed name of data directory

2013-11-18, 22:09:16 - Csaba Pinter

(In r:1287|slicerrt:1287) Re #424: Added sample dataset for gel dosimetry. Note: the planning dose volume in this dataset is probably ‘relative’, this is why it lacks the dose unit value and scaling tags

2014-02-25, 23:17:12 - Csaba Pinter

Re #424: DICOM volume reading when tags contain special encodings fixed Commit: r:1541|slicerrt:1541

2014-08-22, 16:53:46 - Csaba Pinter

Re #424, Re #521: Updated tricky contours dataset to contain plan and dose volume for testing computed DVHs for different rasterization scenarios Commit: r:1938|slicerrt:1938

2014-10-15, 22:00:21 - Csaba Pinter

Re #424: Added Eclipse dataset with structure set in which many contours are on the same slice (import failed on these before revision 1976) Commit: r:1981|slicerrt:1981

2015-01-29, 19:28:48 - Csaba Pinter

Re #424: Added link to a potentially useful 4D-CT dataset Commit: r:2119|slicerrt:2119

2015-02-21, 14:40:53 - Csaba Pinter

Re #424: Added tiny RT study that can be used for easy testing. It contains a dose, a CT and an RTSS, and is only 35KB Commit: r:2165|slicerrt:2165

2015-04-08, 16:27:06 - Csaba Pinter

Re #424: Replaced tiny patient dataset (that is used for testing) with one that has structures with different colors Commit: r:2209|slicerrt:2209

2015-06-01, 14:43:25 - Csaba Pinter

Re #424: Added head and neck dataset Commit: r:2302|slicerrt:2302

2016-01-14, 21:19:33 - Csaba Pinter

Re #424, re #796: Added Pinnacle SPICE dataset containing both POI (fiducial) and contour in its RTSS Commit: r:2577|slicerrt:2577

2017-05-02, 03:18:23 - Csaba Pinter

Re #424: Added sample dataset for Segment Registration extension Commit: r:3163|slicerrt:3163

2017-07-12, 18:44:38 - Csaba Pinter

Re #424: Added brain FSRT VMAT Eclipse plan, used for automatic oversampling and DVH validation Commit: r:3191|slicerrt:3191

2017-07-13, 14:27:13 - Csaba Pinter

Re #424: Fixed DVH table calculated by CERR for brain FSRT VMAT Eclipse to scale the same way as the Eclipse and SlicerRT DVHs Commit: r:3192|slicerrt:3192

#425 Utilize beam node from ExternalBeamPlanning in other modules

2014-06-04, 19:46:37 - wangk

assigned_to_id: changed from null to “wangk”

2015-09-02, 16:47:46 - Csaba Pinter

milestone_id: changed from “SlicerRt 1.0” to “SlicerRt 0.18”

2015-09-02, 16:48:24 - Csaba Pinter

Closing as invalid as it’s a duplicate of #553

2015-09-02, 16:48:24 - Csaba Pinter

status: changed from “New” to “Invalid”

#426 Consolidate error handling method in logic classes

There are several ways to handle errors right now in the code:

It would be better to set a convention for this, e.g.: Return bool success flags in every class, and have a string error message argument if it is needed to be displayed on the GUI.

2013-12-30, 00:48:05 - Csaba Pinter

milestone_id: changed from “SlicerRt 1.0” to “SlicerRt 0.14”

2014-01-21, 04:27:55 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.14” to “SlicerRt 1.0”

2017-07-23, 19:26:37 - Csaba Pinter

priority: changed from “Normal (3)” to “Low (4)”

2017-07-23, 19:26:37 - Csaba Pinter

milestone_id: changed from “SlicerRt 1.0” to “Future”

#427 Add RT image testing to DicomRtImportSelfTest

Also it seems that DicomRtImportSelfTest fails by default now. Probably due to change in the number of a created node type.

2013-10-03, 21:45:06 - Csaba Pinter

description: changed from “” to “Also it seems that DicomRtI…”

2013-10-04, 21:17:32 - Csaba Pinter

(In r:1206|slicerrt:1206) Test #427: DicomRtImportSelfTest now loads an RT image. Fixed failure due to switching to Markups from Annotations. Data moved from DicomRtImport directory to Testing/Data/DICOM. The test passes locally.

2013-10-04, 21:17:32 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2013-10-04, 21:17:32 - Csaba Pinter

status: changed from “New” to “Test”

2013-10-04, 21:18:11 - Csaba Pinter

Verify that the test passes on an installed Slicer (when the input data is not stored locally but has to be downloaded from the internet)

2013-11-05, 23:24:21 - Csaba Pinter

status: changed from “Test” to “Fixed”

#428 Only raw xToTracker transforms are available in Slicer after sequence metafile import

By default only the raw xToTracker transforms are stored in the metafile, so you have to manually add the ImageToReference, NeedleToReference, etc. transforms to the metafile using the EditSeqMetafile tool (not complicated, just a few commands, but not very convenient).

A few options to solve this (none of them are perfect):

2013-11-04, 16:54:23 - Andras Lasso

Renamed MultiDimension extension to MultidimData

2013-11-04, 16:54:23 - Andras Lasso

Component: changed from “MultiDimension” to “MultidimData”

2014-01-21, 02:03:27 - Andras Lasso

milestone_id: changed from “MultidimData 0.1.0” to “MultidimData 0.2.0”

2014-01-22, 23:54:49 - Andras Lasso

The importer could load all the transforms from the config file (that has a name that matches the mha file name).

We could also add an importer for the config file, which would read all the transforms form CoordinateDefinitions section of the file.

2014-01-22, 23:55:23 - Andras Lasso

Until the issue is resolved, the script below can be used for converting from XML string to a transform in Slicer:

def AddTransformFromPlusString(transformStr): xmlUtil=vtk.vtkXMLUtilities() xmlElem=xmlUtil.ReadElementFromString(transformStr) matrixElemsStr=xmlElem.GetAttribute(‘Matrix’) matrixElems=[float(x) for x in matrixElemsStr.split()] transformMatrix=vtk.vtkMatrix4x4() transformMatrix.SetElement(0,0,matrixElems[0]) transformMatrix.SetElement(0,1,matrixElems[1]) transformMatrix.SetElement(0,2,matrixElems[2]) transformMatrix.SetElement(0,3,matrixElems[3]) transformMatrix.SetElement(1,0,matrixElems[4]) transformMatrix.SetElement(1,1,matrixElems[5]) transformMatrix.SetElement(1,2,matrixElems[6]) transformMatrix.SetElement(1,3,matrixElems[7]) transformMatrix.SetElement(2,0,matrixElems[8]) transformMatrix.SetElement(2,1,matrixElems[9]) transformMatrix.SetElement(2,2,matrixElems[10]) transformMatrix.SetElement(2,3,matrixElems[11]) transformMatrix.SetElement(3,0,matrixElems[12]) transformMatrix.SetElement(3,1,matrixElems[13]) transformMatrix.SetElement(3,2,matrixElems[14]) transformMatrix.SetElement(3,3,matrixElems[15]) transformNode=slicer.vtkMRMLLinearTransformNode() transformNode.SetAndObserveMatrixTransformToParent( transformMatrix ); xmlElem.GetAttribute(‘Matrix’) transformNode.SetName(xmlElem.GetAttribute(‘From’)+’To’+xmlElem.GetAttribute(‘To’)) transformNode.SetHideFromEditors(0) slicer.mrmlScene.AddNode(transformNode)

Usage: AddTransformFromPlusString(‘ ‘)

2014-07-19, 13:41:18 - Andras Lasso

milestone_id: changed from “MultidimData 0.2.0” to “MultidimData 0.2.1”

2015-09-30, 16:06:41 - Andras Lasso

It’ll be addressed by https://github.com/SlicerIGT/SlicerIGT/issues/44

2015-09-30, 16:06:41 - Andras Lasso

status: changed from “New” to “Invalid”

#429 Show/hide nodes in the MultiDimension module doesn’t work

HideFromEditors MRML node property is currently not meant to be changed dynamically, therefore making the scene simple by hiding nodes and then showing them as needed currently doesn’t work. Need to add this feature to the Slicer core.

2013-11-04, 16:54:23 - Andras Lasso

Renamed MultiDimension extension to MultidimData

2013-11-04, 16:54:23 - Andras Lasso

Component: changed from “MultiDimension” to “MultidimData”

2014-01-15, 14:09:50 - Andras Lasso

Taken a different approach. Nodes are not stored in the main scene anymore.

2014-01-15, 14:09:50 - Andras Lasso

status: changed from “New” to “Invalid”

#430 Hidden multidimensional data nodes are not saved

By default, imported nodes in the multidimensional data set are all hidden to not clutter the scene. However, Slicer does not offer hidden nodes for saving, therefore they are simply not saved.

If MRB format is chosen, then all nodes are saved, so that can be used as a workaround for now.

Options:

2013-11-04, 16:54:23 - Andras Lasso

Renamed MultiDimension extension to MultidimData

2013-11-04, 16:54:23 - Andras Lasso

Component: changed from “MultiDimension” to “MultidimData”

2014-01-16, 15:12:44 - Andras Lasso

Data is stored in a private scene and not in hidden nodes anymore

2014-01-16, 15:12:44 - Andras Lasso

status: changed from “New” to “Invalid”

#431 Drag&drop nodes from the potential patient hierarchy list to the tree sometimes results in crash

It occurs not every time, but after dropping several nodes. It seems that the problem is the missing item in the potential list.

2013-10-03, 21:30:49 - Csaba Pinter

(In r:1204|slicerrt:1204) Fixed #431: Crash fixed when drag&dropping potential volume nodes under a structure set; Just added patient hierarchy nodes are now expanded by default

2013-10-03, 21:30:49 - Csaba Pinter

status: changed from “New” to “Fixed”

#432 Slicer crash when closing scene while in Contours module

Repro:

1) Load eclipse prostate DICOM data set. 2) Go to contours module 3) Convert BODY_Contour from ribbon to closed surface (maybe not necessary?) 4) Close scene

2013-10-07, 20:45:58 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2013-10-07, 20:45:58 - Csaba Pinter

status: changed from “New” to “Accepted”

2013-10-07, 20:49:22 - Csaba Pinter

Crash occurs without performing step 3

2013-10-07, 21:02:56 - Csaba Pinter

(In r:1208|slicerrt:1208) Fixed #432: Crash fixed when closing scene while the Contours module was active.

2013-10-07, 21:02:56 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

2013-10-07, 21:03:14 - Csaba Pinter

Thanks for reporting this!

2013-10-08, 15:21:57 - Csaba Pinter

(In r:1212|slicerrt:1212) Re #432: Additional check to the scene close crash in Contours module

#433 Tilted plane contours are be loaded incorrectly

Andriy Fedorov: ‘I am able to import these using SliceRT, but I am not sure they are visualized correctly (see the attached sagittal view, the contours ‘ribbons’ appear to be not aligned orthogonally with the imaging plane (see screenshot)’

The dataset in question is SlicerRt\data\oncentra-4.1.6-prostate-mr-tilted-plane

Proposed solution:

2013-10-07, 21:17:55 - Csaba Pinter

image:dUTXbal5ur46ldacwqjQYw Screenshot about the tilted plane contour in SlicerRT (by Fedorov)

2013-10-07, 21:17:55 - Csaba Pinter

Attachment added: “130926_TiltedPlaneContours_Screenshot.png”

2013-10-08, 14:48:52 - Andrey Fedorov

image:c_d1QOmcGr45S1acwqjQYw Oncentra visualization of the referenced dataset

2013-10-08, 14:48:52 - Andrey Fedorov

Attachment added: “screenshot_oncentra1.png”

2013-10-08, 14:49:05 - Andrey Fedorov

image:dg77tamcGr44ouacwqjQXA

2013-10-08, 14:49:05 - Andrey Fedorov

Attachment added: “screenshot_oncentra2.png”

2013-10-08, 14:49:15 - Andrey Fedorov

image:dncQPkmcGr44kcacwqEsg8

2013-10-08, 14:49:15 - Andrey Fedorov

Attachment added: “screenshot_oncentra3.png”

2013-10-08, 14:50:57 - Andrey Fedorov

@pinter: added screenshots from Oncentra. Didn’t realize penguins were captured as well :)

2013-10-08, 14:57:27 - Andrey Fedorov

note for the last screenshot, the crosshairs are in a contour corner (in sag and cor), coordinates are in the bottom right corner of the window, can check if coordinates are the same in Slicer

2013-10-08, 15:11:14 - Csaba Pinter

Thanks!

2013-10-08, 15:17:19 - wangk

I took a quick look at the code. I think the problem is at line 1014 in vtkSlicerDicomRtReader.cxx:

ribbonFilter->SetDefaultNormal(0,0,-1);

it assumes the normal to generate the ribbon is parallel to Z axis so if the images are titled, then it will not be correct. I think we need to check the referenced CT image to get the direction cosine so we can set the normal properly.

2013-10-08, 16:19:48 - Csaba Pinter

Right. I also discovered this limitation being mentioned in the user’s guide: http://www.slicer.org/slicerWiki/index.php/Documentation/SlicerRT/UsersGuide#Known_limitations

2013-10-10, 16:21:23 - Csaba Pinter

status: changed from “New” to “Accepted”

2013-10-11, 18:57:05 - Csaba Pinter

summary: changed from “Tilted plane contours may be loaded incorrectly” to “Tilted plane contours are be loaded incorrectly”

2013-10-17, 18:28:01 - Csaba Pinter

description: changed from “Andriy Fedorov: ‘I am able …” to “Andriy Fedorov: ‘I am able …”

2013-10-17, 18:54:59 - pieper

By the way, it would be best to save the dicom ID information with the contour data. For example, every scalar volume loaded from the DICOM module has an attribute instanceUIDs with one per slice which can be used to get the information from the dicomDatabase. Since, as I understand it, contours can come from one of many different volumes or be created on the fly it’s important to maintain the linkage.

2013-10-17, 19:36:23 - Csaba Pinter

Yes, we definitely want to maintain the links to the images used for contouring. What I don’t know yet (I need to read upon it in the DICOM standard) is whether we should generate the ribbons based on each corresponding slice, or the normal vector of the slices will be the same. In the second case it might be enough to link to the anatomical images series, as it is currently done.

2013-10-17, 19:44:18 - pieper

I don’t know if it’s common in RT but some acquisition types can have variable image orientation per-instance in a series. E.g. free hand ultrasound or certain anatomy-following MRs. Probably it’s uncommon and other systems would break on that kind of RT data but I’d still think it’s better to link the contours to the instances and not the series (less data loss since you can get to series from instance but not easily back).

2013-10-31, 16:49:16 - Csaba Pinter

@pieper As I understand the instance UIDs for the scalar volumes are stored in the order the files came in to the reader. How can one use these UIDs without knowing which instance belongs to which slice?

I’m trying to make it possible to look up the CT slice instance for a particular ROI (closed planar) contour and the attribute approach does not seem to deliver this. At the moment I think a map from the ROI polydata cell index to the instance UID would solve the issue.

2013-10-31, 19:53:35 - pieper

Hi Csaba (@pinter) -

The mapping is well defined. The instance UIDs are in the order of the slices in the vtkImageData (i.e. they are in ‘k’ order in ijk space). The IJKToRAS information maps those to patient space. So if you have any spot in world space you can get back to the instance UID of the source slice by mapping backwards through and transforms and then through the inverse of IJKToRAS. Andrey and Nicole use this for the Reporting module.

-Steve

2013-10-31, 20:02:31 - Csaba Pinter

Thanks for the explanation, Steve! It seemed to me that the order is based on the order of the slice files.

2013-10-31, 20:15:24 - pieper

Yes, it is based on the order of the slice files. Slicer’s scalar volume plugin sorts by image position patient and send the file list down to ITK which uses the first position to define the origin of IJTToRAS so the sorting should always match.

2013-10-31, 21:10:47 - Csaba Pinter

(In r:1244|slicerrt:1244) Re #433: Added referenced UIDs to the RoiEntry structures in DicomRtImportModuleLogic

2013-11-01, 19:59:17 - Csaba Pinter

(In r:1247|slicerrt:1247) Re #433: Create ribbon models in a separate function while keeping the original ROI contours in the RoiEntry. No functional changes

2013-11-02, 21:39:39 - Csaba Pinter

(In r:1248|slicerrt:1248) Test #433: Image orientation is read from referenced SOP instance UIDs and normal vector is computed and applied to the ribbon filter (if the image orientations differ then warning is logged and the first one is used). Referenced SOP instance UIDs for structure is read from the mandatory ReferencedFrameOfReferenceSequence if ContourImageSequence cannot be found in ROIContourSequence.

2013-11-02, 21:39:39 - Csaba Pinter

status: changed from “Accepted” to “Test”

2013-11-02, 21:40:20 - Csaba Pinter

image:bFgKFiraCr44kwacwqjQWU

2013-11-02, 21:40:20 - Csaba Pinter

Attachment added: “20131102_TiltedPlaneContoursFix.png”

2013-11-02, 21:43:15 - Csaba Pinter

@fedorov The above screenshot shows the ribbons generated with the fix I applied. I tested the labelmap conversion and it is also OK. You can try the fix by downloading the experimental package for today if you’d like. Please close the ticket if the fix seems to be OK (either by testing or based on the screenshot if you don’t have time).

2013-11-02, 21:46:22 - Csaba Pinter

@fedorov The package submission still fails from my desktop computer so you cannot download it from the Extension Manager, but I can give you the package if you’d like.

2013-11-04, 17:38:42 - Csaba Pinter

status: changed from “Test” to “Fixed”

#434 Use mm instead of voxels in all operations where distance is a parameter

For example radius for generating the curve. Use the voxel spacing metadata for the volume to compute the numbre of voxels to use from the given distance in mm.

2013-10-08, 17:20:30 - Csaba Pinter

Component: changed from null to “GelDosimetry”

2013-11-18, 19:32:26 - Csaba Pinter

assigned_to_id: changed from “j.andrea” to “pinter”

2013-11-25, 19:06:35 - Csaba Pinter

status: changed from “New” to “Accepted”

2013-11-25, 19:48:19 - Csaba Pinter

(In r:1306|slicerrt:1306) Fixed #434: Use mm instead of pixels in input fields of gel dosimetry analysis

2013-11-25, 19:48:19 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

#435 Add support for film dosimetry workflow

2013-10-08, 17:20:30 - Csaba Pinter

Component: changed from null to “GelDosimetry”

2013-11-22, 15:45:10 - Csaba Pinter

milestone_id: changed from “GelDosimetry 0.1” to “GelDosimetry 0.2”

2014-02-03, 15:14:20 - Csaba Pinter

milestone_id: changed from “GelDosimetry 0.2” to “GelDosimetry 0.3”

2015-02-04, 20:57:25 - Csaba Pinter

Danielle Mayo will probably work on this over the summer

2015-02-04, 20:57:25 - Csaba Pinter

summary: changed from “Verify the dosimetry workflow using films instead of jars” to “Add support for film dosimetry workflow”

2015-02-09, 19:27:44 - Kevin Alexander

I’ll put together a flowchart over the next few weeks which describes the basics of what will be involved in the film dosimetry slicelet. This worked well for explaining the gel process, and I think we should approach the film one similarly.

2015-02-09, 20:33:49 - Csaba Pinter

Sounds great, thanks!

2015-02-09, 23:01:51 - Csaba Pinter

assigned_to_id: changed from null to “DanielleMayo”

2015-03-18, 20:34:00 - Csaba Pinter

assigned_to_id: changed from “DanielleMayo” to null

2015-03-18, 20:34:00 - Csaba Pinter

milestone_id: changed from “GelDosimetry 0.3” to “GelDosimetry 0.4”

2016-02-16, 17:32:41 - Kevin Alexander

file:bh18E21nmr5yo3acwqEsg8

2016-02-16, 17:32:41 - Kevin Alexander

Attachment added: “FilmDosimetryFlowchart.pdf”

2016-02-16, 17:32:50 - Kevin Alexander

Here is the general workflow for the film dosimetry analysis.

2016-02-17, 15:59:43 - Csaba Pinter

Re #435: Added empty folder for film dosimetry slicelet Commit: r:2660|slicerrt:2660

2016-02-17, 15:59:43 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2016-02-17, 16:23:22 - Kevin Alexander

Re #435: Added film dosimetry extension skeleton, still containing gel code Commit: r:2661|slicerrt:2661

2016-02-17, 16:26:47 - Kevin Alexander

Re #435: Added film dosimetry workflow diagram Commit: r:2662|slicerrt:2662

2016-02-17, 17:21:55 - Kevin Alexander

Re #435: Initial modifications to new film dosimetry scripts Commit: r:2663|slicerrt:2663

2016-05-12, 19:38:22 - alecr

re #435

commented out features only used in gel slicelet Commit: r:2829|slicerrt:2829

2016-05-13, 14:50:46 - alecr

re #435 commented out comboboxes in load data that won’t be modified, should be the final state of commented out code Commit: r:2831|slicerrt:2831

2016-05-13, 20:25:24 - alecr

re #435

added png loading, flood field image selection Commit: r:2833|slicerrt:2833

2016-05-14, 18:33:59 - alecr

re #435

Added the dose-to-film selector template Commit: r:2835|slicerrt:2835

2016-05-16, 15:45:17 - alecr

re #435

Added Perform Calibration button, added dose-to-image selectors within a loop (to be changed by the number of films parameter) Commit: r:2836|slicerrt:2836

2016-05-16, 20:36:42 - alecr

re #435

Added valueChanged(int) event handler function for numberOfCalibrationFilmsSpinBox, deleted more nonessential code Commit: r:2838|slicerrt:2838

2016-05-18, 20:35:01 - alecr

re #435 fixed layout Commit: r:2851|slicerrt:2851

2016-05-19, 13:54:07 - alecr

re #435

added dynamic label addition Commit: r:2855|slicerrt:2855

2016-05-19, 19:51:59 - alecr

re #435

Added dynamic changing of calibration input forms Commit: r:2857|slicerrt:2857

2016-05-20, 16:48:23 - alecr

re #435 Load data layout is fixed Commit: r:2861|slicerrt:2861

2016-05-20, 17:03:40 - alecr

re #435 Added ‘Save calibration batch’ button Commit: r:2862|slicerrt:2862

2016-05-20, 18:42:57 - alecr

re #435, added load saved image batch button Commit: r:2863|slicerrt:2863

2016-05-24, 16:06:30 - alecr

re #435

Added batch saving and loading functions Commit: r:2869|slicerrt:2869

2016-05-25, 17:20:36 - alecr

re #435 - added function for saving calibration films to a folder node Commit: r:2874|slicerrt:2874

2016-05-28, 19:39:20 - alecr

re #435 - save function is stable, load function is unfinished Commit: r:2882|slicerrt:2882

2016-06-01, 19:26:47 - alecr

re #435

Calibration batch file saving function operational Commit: r:2885|slicerrt:2885

2016-06-01, 21:58:29 - Csaba Pinter

assigned_to_id: changed from “pinter” to “alecr”

2016-06-01, 21:58:32 - Csaba Pinter

status: changed from “New” to “Accepted”

2016-06-02, 20:09:16 - alecr

re #435 saving function operational Commit: r:2893|slicerrt:2893

2016-06-02, 20:22:06 - Csaba Pinter

Yaay!

2016-06-04, 03:48:50 - alecr

re #435

Added basic event handler for nodes added, determining their level Commit: r:2897|slicerrt:2897

2016-06-06, 20:29:45 - alecr

re #435

cleaned code Commit: r:2905|slicerrt:2905

2016-06-06, 21:08:35 - Csaba Pinter

Re #435: Fixed issues in film batch saving; Code cleanup Commit: r:2906|slicerrt:2906

2016-06-07, 17:43:04 - alecr

re #435

More code cleanup, observer calling Commit: r:2910|slicerrt:2910

2016-06-07, 18:59:29 - Csaba Pinter

Re #435: Update segmentation import commands to follow Slicer core changes

Commit: r:2912 slicerrt:2912

2016-06-07, 19:50:08 - alecr

re #435 load function changes some flood field parameters Commit: r:2913|slicerrt:2913

2016-06-08, 00:35:56 - alecr

re #435 added functionality to load function to make it ‘look loaded’,
Commit: r:2915|slicerrt:2915

2016-06-08, 19:04:00 - alecr

re #435 changed fillStep1CalibrationPanel so layouts are not created and destroyed Commit: r:2916|slicerrt:2916

2016-06-08, 19:34:04 - alecr

re #435 added functionality to make slicelet ‘look loaded’, when reloaded in Slicelet, gives error

Traceback (most recent call last): File ‘C:/Users/alecr/Desktop/FilmDosimetry/src/FilmDosimetryAnalysis/FilmDosimetryAnalysis.py’, line 488, in onSceneEndImport self.fillStep1CalibrationPanel(calibrationVolumeNumber) File ‘C:/Users/alecr/Desktop/FilmDosimetry/src/FilmDosimetryAnalysis/FilmDosimetryAnalysis.py’, line 362, in fillStep1CalibrationPanel self.step1_calibrationVolumeSelectorLabelBeforeList[calibrationLayout].visible = True AttributeError: Trying to set property ‘visible’ on a destroyed QLabel object Commit: r:2918|slicerrt:2918

2016-06-08, 19:45:19 - Csaba Pinter

Re #435: Update segmentation import commands to follow Slicer core changes

Commit: r:2919 slicerrt:2919

2016-06-08, 20:55:12 - alecr

re #435

Added success messages, fixed message box errors Commit: r:2921|slicerrt:2921

2016-06-09, 14:51:58 - alecr

re #435 saving bug (too many subject hierarchy nodes created) fixed Commit: r:2924|slicerrt:2924

2016-06-09, 19:55:02 - alecr

Re: #435 Added popup error messages. Commit: r:2927|slicerrt:2927

2016-06-09, 20:20:46 - alecr

Re: #435 Added functionality to find the .mrml scene by .mrml extension, and show error messages if there is not exactly one .mrml file in directory Commit: r:2928|slicerrt:2928

2016-06-10, 13:40:06 - alecr

Re #435, Load function fully operational, added console error messages, checking the ‘type’ of mrmlScene (see if a ‘Folder’ level SHNode exists) Commit: r:2929|slicerrt:2929

2016-06-10, 14:27:00 - Csaba Pinter

It’s great that it works! Also the code seems to be in order and the commit message is also nice and meaningful

2016-06-10, 18:09:25 - alecr

Re #435, Fixed UI step1_numberOfCalibrationFilmsSpinBox glitch Commit: r:2931|slicerrt:2931

2016-06-13, 18:04:17 - Csaba Pinter

Re #435: Add ‘Add region’ button in film slicelet Commit: r:2947|slicerrt:2947

2016-06-13, 20:54:20 - alecr

Re #435: Added rough code for optical density calculations to onPerformCalibrationButton. Commit: r:2948|slicerrt:2948

2016-06-15, 17:44:14 - alecr

Re #435: Added showCalibrationCurves function to show fitted dose/optical density curve against measured optical density/dose pairs in separate render window

Commit: r:2949 slicerrt:2949

2016-06-17, 16:15:10 - alecr

Re #435: Added function to find the value of coefficients and exponent to the fit function with the lowest mean squared error. TODO: there is an error in the lambda function in the list sorting Commit: r:2955|slicerrt:2955

2016-06-17, 20:17:29 - alecr

Re #435: Fixed earlier bug, displayed K-function on pop-up graph Commit: r:2957|slicerrt:2957

2016-06-20, 13:54:23 - alecr

Re #435: Fixed negative optical density bug in onPerformCalibrationButton, added condition to put any negative values to 0 (should they happen) Commit: r:2958|slicerrt:2958

2016-06-22, 19:22:52 - alecr

Re #435: Added second tab with GUI elements approximately corresponding to Kevin’s plan Commit: r:2959|slicerrt:2959

2016-06-23, 01:27:28 - alecr

Re #435: Split first panel into two sub-layouts for readability, added qLineEdits to enter a function manually. TODO: Bug with casting Commit: r:2960|slicerrt:2960

2016-06-23, 13:36:20 - alecr

Re #435: Fixed bug in the LineEdits Commit: r:2962|slicerrt:2962

2016-06-23, 15:09:28 - alecr

Re #435: Added function to save calibration function to a .txt file Commit: r:2963|slicerrt:2963

2016-06-23, 19:26:28 - alecr

Re #435: Finished loadCalibrationFunction function, fixed earlier bug

Commit: r:2964 slicerrt:2964

2016-06-27, 15:14:42 - alecr

Re #435: Added panel for inputting experimental films and DICOM data Commit: r:2966|slicerrt:2966

2016-06-28, 01:29:33 - alecr

Re #435: Added function to convert image to a numpy matrix. TODO - bug with step2_floodFieldImageSelectorComboBox

Commit: r:2967 slicerrt:2967

2016-06-29, 03:31:24 - alecr

Re #435: Added panel for Step 3: Apply calibration. TODO: fix error with onNodeAdded Commit: r:2968|slicerrt:2968

2016-06-29, 18:32:59 - alecr

Re #435: Resolved volumeToMatrix size issue, step2_floodFieldImageSelectorComboBox issue spontaneously resolved Commit: r:2969|slicerrt:2969

2016-07-04, 18:37:40 - alecr

Re #435: Rearranged UI as discussed in meeting Commit: r:2970|slicerrt:2970

2016-07-05, 14:44:34 - alecr

Re #435: Fixed bug in calculateDoseFromFilm, TODO: change it so it outputs a scalar volume node instead of a matrix. Commit: r:2971|slicerrt:2971

2016-07-07, 13:48:04 - alecr

Re #435: Fixed OnApplyCalibrationButton function to display calculated doses for the experimental film. Commit: r:2975|slicerrt:2975

2016-07-08, 19:06:59 - alecr

Re #435: Added cropPlanByROI function to crop the plan volume to the slice corresponding to the experimental film Commit: r:2978|slicerrt:2978

2016-07-19, 14:10:25 - alecr

Re #435: Fixed calculateDoseFromFilm Commit: r:2984|slicerrt:2984

2016-07-19, 16:50:02 - alecr

Re #435: Fixed window levelling, set up scalar volumes for registration Commit: r:2985|slicerrt:2985

2016-07-20, 19:45:43 - alecr

Re #435: Added volume resampling in onPerformRegistrationButtonClicked to match the volume dimensions along the AP axis. Commit: r:2989|slicerrt:2989

2016-07-21, 20:30:57 - alecr

Re #435: Added transform pipeline to rotate the experimental film volume and align the centre with the dose volume slice. Commit: r:2994|slicerrt:2994

2016-07-22, 01:02:46 - alecr

Re #435: Added function to turn image array into volume with 5 slices Commit: r:2995|slicerrt:2995

2016-07-22, 01:28:30 - alecr

Re #435: Updated onApplyCalibrationButton to output a volume with 5 slices Commit: r:2996|slicerrt:2996

2016-07-22, 02:02:06 - alecr

Re #435: Deleted unused numpyToVolume functions Commit: r:2997|slicerrt:2997

2016-07-22, 17:21:12 - alecr

Re #435: Added transform to translate the center of calculatedDoseExperimentalFilmVolume to croppedResampledDICOMDoseVolume in onPerformRegistrationButtonClicked Commit: r:2998|slicerrt:2998

2016-07-22, 19:39:10 - alecr

Re #435: Fixed bug in onApplyCalibrationButton - experimentalFilmDoseVolume now shows double values Commit: r:2999|slicerrt:2999

2016-07-22, 20:43:38 - alecr

Re #435: Went through TODOs, checking the directory is empty still does not work Commit: r:3001|slicerrt:3001

2016-07-23, 15:57:59 - alecr

Re #435: Converted all 2D numpy arrays to 1D, renamed volumeToNumpyArray2D to volumeToNumpyArray, added error message for mismatched experimental/flood image sizes. Commit: r:3004|slicerrt:3004

2016-07-24, 02:32:05 - alecr

Re #435: Replaced resampling function, to get a dose plan that is the same in all 5 slices of the dose volume node
Commit: r:3005|slicerrt:3005

2016-07-24, 18:59:01 - alecr

Re #435: Fixed SetExtent bug in resampling replacement function Commit: r:3006|slicerrt:3006

2016-07-24, 19:27:49 - alecr

Re #435: Added 90 rotation about AP axis to onPerformRegistrationButtonClicked Commit: r:3007|slicerrt:3007

2016-07-24, 19:32:17 - alecr

Re #435: Replaced the names with _cGy with CGy Commit: r:3008|slicerrt:3008

2016-07-24, 22:30:36 - alecr

Re #435: onPerformRegistrationButtonClicked now registers the experimental film image to the dose volume. TODO: add user interface elements from Gel that give the status of the registration Commit: r:3009|slicerrt:3009

2016-07-25, 00:50:41 - alecr

Re #435: renamed nodes for consistency, added override cursor. TODO: add success/failure popup windows Commit: r:3010|slicerrt:3010

2016-07-25, 14:27:16 - alecr

Re #435: Added warning message for non-empty folder in onSaveCalibrationBatchButton. # TODO needs the option to not have all the files in a non-empty folder deleted Commit: r:3012|slicerrt:3012

2016-07-25, 15:08:40 - alecr

Re #435: Renamed experimentalToDoseTransform, added name as self.experimentalToDoseTransformName Commit: r:3013|slicerrt:3013

2016-07-25, 17:26:13 - alecr

Re #435: Changed calculateDoseFromExperimentalFilmImage so that dose values are in Gy rather than cGy Commit: r:3015|slicerrt:3015

2016-07-25, 18:15:05 - alecr

Re #435: Changed rotate90APTransform to be a -90 degree rotation. The experimental film and the dose plan seem to align slightly better with this rotation. This might need to be changed back. Commit: r:3016|slicerrt:3016

2016-07-27, 20:59:45 - alecr

Re #435: Changed integer division in onPerformCalibrationButton to float Commit: r:3024|slicerrt:3024

2016-07-28, 14:15:31 - alecr

Re #435: Converted integer divisions to float in all optical density calculations Commit: r:3027|slicerrt:3027

2016-08-04, 23:36:28 - Csaba Pinter

Re #435: Many fixes in film dosimetry: Save/load calibration function, Load calibration batch data parsing, UI changes, variable and function names, small bugs Commit: r:3033|slicerrt:3033

2016-08-05, 00:50:18 - Csaba Pinter

Re #435: Moved logic functions from film slicelet to logic class Commit: r:3034|slicerrt:3034

2016-08-05, 18:25:15 - Csaba Pinter

Re #435: Another batch of fixes for film dosimetry: Crop plan dose volume ROI was incorrect; Added automatic test (with fixed paths); Auto-show relevant volumes when switching to steps; UI changes; Fixed minor bugs Commit: r:3035|slicerrt:3035

2016-08-05, 21:10:49 - Csaba Pinter

Re #435: Progress in consolidating calibrated film to dose slice registration Commit: r:3036|slicerrt:3036

2016-08-05, 22:59:24 - Csaba Pinter

Re #435: Fixed film dosimetry registration step Commit: r:3037|slicerrt:3037

2016-08-06, 00:54:55 - Csaba Pinter

Re #435: Added gamma dose comparison, slicelet is fully functional Commit: r:3038|slicerrt:3038

2016-08-06, 03:08:19 - Csaba Pinter

status: changed from “Accepted” to “Test”

2016-08-06, 03:08:19 - Csaba Pinter

assigned_to_id: changed from “alecr” to “pinter”

2016-08-07, 20:06:11 - Csaba Pinter

Re #435: Updated flowchart and added extension logo for film dosimetry Commit: r:3039|slicerrt:3039

2016-08-07, 22:06:47 - Csaba Pinter

Re #435: Updated extension logo for film dosimetry Commit: r:3040|slicerrt:3040

2016-08-09, 16:07:06 - Csaba Pinter

Re #435: Release film dosimetry slicelet extension Commit: r:3044|slicerrt:3044

2016-08-11, 19:10:23 - Csaba Pinter

Re #435: Fixed bug in Film dosimetry; Updated logo plan with ideas (released logo didn’t change) Commit: r:3048|slicerrt:3048

2016-08-11, 21:43:40 - Csaba Pinter

Re #435: Fixed bug in Film dosimetry Commit: r:3050|slicerrt:3050

2016-08-19, 17:47:18 - Csaba Pinter

Re #435: Added option to change experimental film orientation in film dosimetry Commit: r:3062|slicerrt:3062

2016-08-23, 20:29:13 - Csaba Pinter

Re #435: Axial and Coronal experimental film orientations work fine (no test data for sagittal yet) Commit: r:3064|slicerrt:3064

2016-08-23, 20:40:08 - Csaba Pinter

Re #435: Fixed crash in dose comparison when mask segmentation selection was valid but segment selection was ‘None’ Commit: r:3065|slicerrt:3065

2016-08-23, 20:41:09 - Csaba Pinter

Re #435: Fixed minor gamma mask selection issue; Updated gel dosimetry extension screenshots Commit: r:3066|slicerrt:3066

2016-08-24, 19:55:23 - Csaba Pinter

Re #435: Added line profile tool to the Film dosimetry slicelet Commit: r:3069|slicerrt:3069

2016-10-18, 18:23:06 - Csaba Pinter

Re #435: Added red channel extraction feature, which automatically extracts the first channel if RGB images are loaded (info window pops up to let the use know); Fixed batch saving that was broken Commit: r:3095|slicerrt:3095

2016-11-08, 21:11:40 - Csaba Pinter

Re #435: Fixed structure registration. It was not aligned with the registered film and plan, because those were registered to each other in the original calibrated film coordinate frame which is arbitrary (because it was much simpler to keep an axial orientation due to numpy complexities with padding a non-axial array). Now the padding step (pre-processing before registration) considers the film orientation and does the padding correctly for all film orientations in the correct planes; Also, subject hierarchy is turned on when entering the film slicelet; Fixed module icon when installed Commit: r:3100|slicerrt:3100

2016-11-09, 15:42:07 - Csaba Pinter

Re #435: Added an LR flip for the experimental film image before registration (the test data is flipped, possibly due to the scanning protocol so this was needed - may be needed to add this flip as an option in the future); Fixed bug for red channel extraction (volume properties were not propagated so calibration failed because ROI was not in overlap with the red channel images); Show only slice outline for segmentation; Fixed left panel resize when switching between sections that caused possibly lengthy update in views; Show calibration ROI only when calibration section is active; Fit slice view to films when switching to calibration so that ROI can be added more conveniently Commit: r:3101|slicerrt:3101

2016-11-23, 18:24:06 - Csaba Pinter

Re #435: Removed unnecessary line from FilmDosimetry CMake Commit: r:3104|slicerrt:3104

2016-11-23, 18:24:20 - Csaba Pinter

Re #435: Removed unnecessary line from GelDosimetry CMake Commit: r:3105|slicerrt:3105

2017-04-07, 16:16:56 - Csaba Pinter

status: changed from “Test” to “Fixed”

#436 Implement automatic registration for the dose curves

Automate step where the experimental dose curve (extracted from the central line of the measured dose volume) is registered to the PDD/Wellhoffer data:

2013-10-08, 14:50:02 - Csaba Pinter

image:dO3X8smcGr44ouacwqjQXA Screenshot of the curves the KGH Matlab implementation produces

2013-10-08, 14:50:02 - Csaba Pinter

Attachment added: “DosimetryStatisticCurves.png”

2013-10-08, 17:20:30 - Csaba Pinter

Component: changed from null to “GelDosimetry”

2013-11-08, 19:30:16 - Jennifer Andrea

(In r:1275|slicerrt:1275) Re #436: Code cleanup, old commented code removed

2013-11-18, 18:55:02 - Csaba Pinter

(In r:1286|slicerrt:1286) Re #422 #436: Added gel dosimetry data flow diagram as an objective summary of the workflow

2013-11-18, 19:32:30 - Csaba Pinter

assigned_to_id: changed from “j.andrea” to “pinter”

2013-11-18, 22:52:09 - Csaba Pinter

(In r:1288|slicerrt:1288) Re #436: Fixed Pdd reading; Renamed UI variables to be identifyable more easily; Continued writing self test

2013-11-18, 23:38:44 - Csaba Pinter

(In r:1289|slicerrt:1289) Re #422 #436: Updated gel dosimetry data flow diagram (calibration plot and ROI selection comes before applying RDF and electron MU to the Pdd data)

2013-11-19, 22:20:37 - Csaba Pinter

(In r:1290|slicerrt:1290) Re #436: Gel dosimetry slicelet: Improve plotting; Rationalize registration outputs to correct use (Image-based Obi to PlanCT registration has a transform output instead of an image so that the PlanDose can be transformed as well; Made sure that every registered object is brought to Obi space instead of arbitrary pairing)

2013-11-21, 20:04:18 - Csaba Pinter

(In r:1291|slicerrt:1291) Re #436: Initial implementation of automatic calibration curve alignment

2013-11-21, 20:47:39 - Csaba Pinter

(In r:1292|slicerrt:1292) Test #436: Adjust optimization parameters to achieve good fit of curves; Remove now unnecessary ROI selection UI section

2013-11-21, 20:47:39 - Csaba Pinter

status: changed from “New” to “Test”

2013-11-21, 21:10:58 - Csaba Pinter

(In r:1293|slicerrt:1293) Re #436: Generate dose information step

2013-11-21, 23:20:44 - Csaba Pinter

(In r:1294|slicerrt:1294) Re #436: Creation of optical density vs dose curve function; After creation, the function is cleaned up (removed OD values that don’t increase so that the array is a real function and remove outliers from the ends)

2013-12-04, 15:56:27 - Csaba Pinter

status: changed from “Test” to “Fixed”

#437 Fit polynomial on the calibration curve

Polynomial needs to be fit automatically on the calibration (optical density -> dose) curve. Use the numpy polyfit function.

Mattea’s description about this step: ‘Substep 4/D) 1: Optical Density vs. Dose Curve: Display the optical density values and the associated dose values based on the calculation made in Substep C/3. The mean Optical density values from parsing of the vff should be along the y-axis and dose values calculated in Substep C/3 should be along along the x-axis. 2: Based on the chart being show the user will input the order of the polynomial that would best fit the data. 3: The desired polynomial is fit using the numpy polyfit. the x values sent are the dose values calculated in Substep C) 3:, the y values sent are the mean optical density values from the parsing of the vff, and the polynomial order is the one given by the user.’

Additional tasks:

2013-10-08, 17:20:30 - Csaba Pinter

Component: changed from null to “GelDosimetry”

2013-11-18, 19:32:33 - Csaba Pinter

assigned_to_id: changed from “j.andrea” to “pinter”

2013-11-22, 00:22:13 - Csaba Pinter

(In r:1295|slicerrt:1295) Test #437: Fit polynomial on optical density vs calibrated dose curve; Display polynomial over the curve; Removed polynomial order input field as it is not needed any more (max order of 3 is used, and it can handle the usual first and second orders)

2013-11-22, 00:22:13 - Csaba Pinter

status: changed from “New” to “Test”

2013-11-23, 22:09:57 - Csaba Pinter

(In r:1303|slicerrt:1303) Re #463 #437: New calibration algorithm is called from the gel dosimetry logic; OD vs dose curve are now plotted with circles

2013-12-05, 19:15:00 - Csaba Pinter

(In r:1324|slicerrt:1324) Re #115: Fixed GelDosimetry build error due to recent Slicer core changes; Re #437: Coefficients are not removed from the fitted polynomial now; The fitted polynomial is displayed on the UI

2013-12-24, 04:59:43 - Csaba Pinter

Waiting for Kevin Alexander for tweaking outlier removal parameters for this step

2014-01-22, 17:23:27 - Csaba Pinter

description: changed from “Polynomial needs to be fit …” to “Polynomial needs to be fit …”

2014-01-23, 19:32:39 - Csaba Pinter

status: changed from “Test” to “New”

2014-01-23, 19:32:42 - Csaba Pinter

status: changed from “New” to “Accepted”

2014-01-24, 22:12:49 - Csaba Pinter

(In r:1460|slicerrt:1460) Test #437: Feature added to manually remove outliers from the calibration curve and to specify order of the fitted polynomial; Fitting residuals and number of automatically removed outliers are shown on the UI; Instead of calibrating the measured volume in place, a copy is created for the calibrated volume

2014-01-24, 22:12:49 - Csaba Pinter

status: changed from “Accepted” to “Test”

2014-01-30, 19:15:47 - Csaba Pinter

status: changed from “Test” to “Fixed”

#438 Compute statistics for the gel dosimetry calibration

First ask the KGH team to specify the types of statistics they need.

2013-10-08, 17:20:30 - Csaba Pinter

Component: changed from null to “GelDosimetry”

2013-11-22, 15:45:11 - Csaba Pinter

milestone_id: changed from “GelDosimetry 0.1” to “GelDosimetry 0.2”

2014-02-03, 15:14:20 - Csaba Pinter

milestone_id: changed from “GelDosimetry 0.2” to “GelDosimetry 0.3”

2015-02-09, 19:29:01 - Kevin Alexander

This is not so much of a priority now, since we can now export the calibration data. The necessary analysis can then be performed in Excel.

2015-05-11, 16:02:27 - Csaba Pinter

priority: changed from “Normal (3)” to “Low (4)”

2015-05-11, 16:02:27 - Csaba Pinter

milestone_id: changed from “GelDosimetry 0.3” to “GelDosimetry 0.4”

#439 Use Markups module instead of Annotations in the landmark registration steps

2013-10-08, 17:20:30 - Csaba Pinter

Component: changed from null to “GelDosimetry”

2013-11-07, 20:33:35 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2013-11-07, 20:33:38 - Csaba Pinter

status: changed from “New” to “Accepted”

2013-11-08, 19:22:49 - Csaba Pinter

(In r:1274|slicerrt:1274) Re #439: Gel dosimetry slicelet GUI changes and fixes

2013-11-08, 23:47:47 - Csaba Pinter

(In r:1276|slicerrt:1276) Re #439: Gel dosimetry slicelet frees up its memory when it’s closed (fixed memory leak when testing using Reload); Markups module widget is embedded in two places successfully (it is really sensitive to parenting, so workaround had to be applied)

2013-11-11, 23:46:04 - Csaba Pinter

(In r:1279|slicerrt:1279) Fixed #439: Markups module and fiducial node type is used in the gel dosimetry slicelet; Image-based OBI to PlanCT rigid registration step fixed; Automatic selection and show of volumes of interest (that should be used to select fiducials on) in the fiducial registration step; Basic self-test added

2013-11-11, 23:46:04 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

2013-11-12, 12:12:24 - pieper

Hi Csaba -

I recently ported my LandmarkRegistration module from Annotations to Markups [1] - I think maybe you saw the demo of this at project week?

I’m curious about the landmark registration steps discussed in this ticket - is it similar? Is there a place you can point me to more info?

Thanks! -Steve

[1] https://github.com/pieper/LandmarkRegistration

2013-11-12, 16:17:18 - Csaba Pinter

image:dMW1vGs7ur45tdacwqjQYw

2013-11-12, 16:17:18 - Csaba Pinter

Attachment added: “20131112_GelDosimetry_LandmarkRegistrationStep.png”

2013-11-12, 16:19:49 - Csaba Pinter

Hi Steve,

Yes I saw the demo and am aware of the this module. Is it same as what you used to call steered registration?

There are no documents or examples for the landmark registration in this slicelet yet. The slicelet is being developed for gel dosimetry analysis for the local hospital (KGH). It still in development and is kind of a prototype that we will refine based on their feedback. I added a screenshot here to illustrate what it looks like at the moment.

I made a note to myself to use your registration in the future, but I wasn’t sure if it’s ready to use, and the student who started working on the slicelet created this initial version which needed only some tune-up to make it fully working.

2013-11-26, 13:35:25 - pieper

Hi Csaba -

I’m still refactoring my steered registration code and working with Jc to get it in the nightly build. My plan is to get this wrapped up this week.

It may be possible to use it in the gel dosimitry work - maybe we can do a mutual demo by hangout or at SLC and think about the options.

-Steve

2013-11-26, 13:55:44 - wangk

Hi Steve,

In one of my projects we also use registration and I would like to see the demo. The current Brainsfit module is good for researchers but may not be well accepted by a clinical user.

is it possible to have some discussion on the steered registration at SLC? maybe a breakout session?

Kevin

2013-11-26, 14:09:57 - pieper

Hi Kevin -

We were going to have a project at SLC for this so I signed you guys up. I put together a page for it with a link to a youtube video/demo. It’s not the best demo since the screen refresh is artificially slow but you should get the idea. I hope to get this into the slicer nightlies soon.

http://www.na-mic.org/Wiki/index.php/2014_Winter_Project_Week:Steered_Registration

-Steve

2013-11-26, 14:20:04 - wangk

Thanks Steve,

I think there are a lot of features in the steered registration that is essential for our registration project (and maybe for other people’s registration project as well). let us discuss at SLC.

Kevin

2013-11-26, 15:57:57 - Csaba Pinter

Hi Steve,

It is definitely possible to use it in the gel dosimetry slicelet. I just released it so the guys hopefully try it soon. I’ll show them the youtube video about the steered registration and let them decide.

The reason I chose not to go that way is the nature of the images we have to register. I tried the steered registration on anatomical images, and it works really well with those (except when the orientation of the two volumes is different, because then it is really hard to find the matching landmark in the ‘oblique’ slice; it may be good to have an option in there to snap the slice viewers to the IJK orientation of the volumes - although this may be due to my complete lack of knowledge of the human anatomy except for those trifles that stuck on me while working in the field). So I also tried it with the gel images that needed to be registered in the gel dosimetry workflow, and it was really hard to navigate in the volumes, as they are basically almost homogeneous smears with 6 glowing landmarks, which can only be seen on their slices, but I had no idea where they were if I was just one slice next to them. Also dragging the landmarks to their positions took me many more user interactions than just finding the slice and adding the fiducials by one click each. So my impression was that the steered registration is very good for anatomical images with real features to see in them, but not so much in this case.

I can show you this on the NA-MIC week, maybe you’ll have a suggestion how to work this out.

Thanks, csaba

2013-11-26, 20:19:04 - pieper

Yes, let’s try it out when we get together. Or if you want to send me pointers to the gel phantoms I could try. There are some ‘tricks’ that I found helpful, like dragging the fiducial in one view to control the scrolling of the other two. So if you are looking for the plane in axial where the fiducial is you could drag in the coronal to get the right slice and then move the fiducial in the axial view. It’s a little backward but maybe still useful.

2013-11-26, 20:41:37 - Csaba Pinter

The two volumes that we register are https://subversion.assembla.com/svn/slicerrt/trunk/SlicerRt/data/gel-dosimetry-01/Anon%20OBI and https://subversion.assembla.com/svn/slicerrt/trunk/SlicerRt/data/gel-dosimetry-01/Opt%20CT%20Data/051513-01_HR.vff (there is a VFF reader IO plugin in SlicerRT for the latter).

The problem with registering these images is that you just cannot decide which landmark belongs to which one, unless you know how you planted the BBs in the first place (for example the VFF is ‘upside down’ compared to the CT). The correct order of the landmarks (for reference) is like this (first set is the CT, second is the VFF file): obiFiducialsNode.AddFiducial(90.1, 156.9, -23.7) obiFiducialsNode.AddFiducial(130.6, 77, -23.7) obiFiducialsNode.AddFiducial(162.45, 94.1, -23.7) obiFiducialsNode.AddFiducial(89.6, 156.9, 51.5) obiFiducialsNode.AddFiducial(114.9, 77.4, 51.5) obiFiducialsNode.AddFiducial(161.4, 92.6, 51.5) measuredFiducialsNode.AddFiducial(-96.4, -29, 97.6) measuredFiducialsNode.AddFiducial(-15.3, -66.6, 97.6) measuredFiducialsNode.AddFiducial(-32.14, -98.73, 97.6) measuredFiducialsNode.AddFiducial(-96.14, -29.55, 21.56) measuredFiducialsNode.AddFiducial(-17.63, -51.3, 21.56) measuredFiducialsNode.AddFiducial(-31.36, -98.73, 21.56)

Let me know what you find! Thanks!

#440 Add multidimension transform hierarchy support

This will allow the multidimension hierarchy structure to be applied to transform nodes in order to organize the complex transform hierarchy for multidimension data.

here is comments from Ron:

In a certain sense Pet/CT timeseries are 4D 2 channel data with need for registration at all levels (between the channels and between the time points).

2013-10-08, 19:02:05 - wangk

description: changed from “” to “This will allow the multidi…”

2013-10-08, 19:02:24 - wangk

milestone_id: changed from null to “MultiDimension 0.1.0”

2014-01-20, 19:42:53 - Andras Lasso

Transforms are now not saved into the sequence nodes, but transforms can be applied to the output nodes generated by the browser nodes

2014-01-20, 19:42:53 - Andras Lasso

assigned_to_id: changed from null to “lassoan”

2014-01-20, 19:42:53 - Andras Lasso

status: changed from “New” to “Fixed”

#441 Export fails if the contours contain only ribbon node

Export should work without manually converting the contours to labelmap. Otherwise this exception happens: https://dl.dropboxusercontent.com/u/3143581/screenshots/20131009_DicomRtExportFail.png

2013-10-09, 19:26:42 - wangk

I found the reason why plastimatch complain about unmatched image sizes. after convert the contour to label map, 2 more slices are added to the label map. I am checking how to deal with this situation.

2013-10-09, 19:26:42 - wangk

status: changed from “New” to “Accepted”

2013-10-09, 19:41:50 - Csaba Pinter

Oh right! It is due to the fix Adam applied for ticket #161

2013-10-09, 19:49:45 - Csaba Pinter

Basically the BODY contour spans the whole reference volume in the S-P (z) direction, and when it is converted to labelmap, one extra slice padding is added so that the labelmap to closed surface algorithm can ‘close’ the bottom and top of that contour. This is why the geometries do not match.

Maybe we can add a flag to the converter algorithm that specifies whether this expansion is done, and we can disable it for exporting. I think it is reasonable to expect from the user to specify a reference volume that actually covers the structures (otherwise the exported study won’t be valid I guess)

@lassoan, @rankin, thoughts?

2013-10-09, 19:52:03 - Adam Rankin

I think I did it wrong. The expanded extents should only be done for the closed surface conversion. It isn’t necessary to pad for the labelmap as it can have the same extents as the reference volume.

2013-10-09, 19:53:40 - wangk

that is what I am thinking. keep the label map the same extent, then only expand it when you want to generate the closed surface model.

2013-10-09, 19:54:01 - Adam Rankin

In fact, should not the vtkMarchingCubes algorithm add any necessary padding?

2013-10-09, 19:56:31 - Adam Rankin

I realize it’s in Slicer core. Could extent padding be added as a parameter to the algorithm?

2013-10-09, 19:56:56 - wangk

I do not think vtkMarchingCubes add any padding.

2013-10-09, 19:58:41 - Csaba Pinter

Apparently not, because we tried without the padding and the top and bottom part of the body was not closed that way (as far as I remember)

2013-10-09, 20:00:27 - Csaba Pinter

Yes, maybe the good approach would be to only add the padding when actually creating the closed surface and then we could discard the expanded volume. This way we wouldn’t need that flag (that would make the code more complicated)

2013-10-09, 20:01:07 - Adam Rankin

It does not. I could modify the labelmap extents before sending it to the marching cubes algorithm if the boundaries are equal? This seems like a good solution.

2013-10-09, 20:08:33 - pieper

The ModelMaker module does add a layer of pixels all around the label map before running marching cubes so that all the surfaces will be closed, and also adjusts the origin to account for this. But it does this to a copy so the original label volume is unchanged.

https://github.com/Slicer/Slicer/blob/master/Modules/CLI/ModelMaker/ModelMaker.cxx#L438

-Steve

2013-10-29, 18:04:05 - Csaba Pinter

(In r:1234|slicerrt:1234) Re #441: DoseAccumulation uses new referencing mechanism; Simplified DoseAccumulation logic code (removing a lot of duplicated code); Use vtkMRMLScalarVolumeNode in the classes instead of more generic vtkMRMLVolumeNode (we cannot handle DWI etc volumes)

2013-10-29, 18:20:20 - wangk

@pinter, your commit do not seem to be related to this ticket. maybe it is meant for something else? BTW, how are things moving on Adam’s side in resolving this issue?

2013-10-29, 18:48:56 - Adam Rankin

Commit url:https://www.assembla.com/code/slicerrt/subversion/commit/1223|1223 should fix the issue. The bounding volume is not changed unless necessary. Does this issue still occur?

2013-10-29, 18:55:47 - Csaba Pinter

Right. The commit goes to #411 not #441. I copied the comment there

2013-10-30, 18:58:57 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

2013-10-31, 15:37:08 - wangk

status: changed from “Fixed” to “Accepted”

2013-10-31, 15:44:52 - Csaba Pinter

@wangk Can you share with us what you found?

2013-10-31, 15:49:10 - wangk

@rankin,, r:1223 fixed the issue however r:1224 re-introduced the issue. I think the right way to do this is what Steve decribed: make a temporary volume when converting polydata to labelmap, once you get the the temporary labelmap volume, then create the correct labelmap with original dimensions.

2013-10-31, 16:01:41 - Csaba Pinter

Maybe we should only keep the intermediate labelmap (created when converting from ribbon directly to closed surface) if it didn’t need to be expanded, otherwise we should discard it.

I think we can trust the user with selecting a reference volume that covers the contour when converting to labelmap. The only problem is that the closed surface will not be closed if any border voxel is foreground on the labelmap image. So we should either expand it automatically by 1 voxel to each direction when converting to closed surface, or trying to detect if any border voxel is foreground (might be costly).

2013-10-31, 16:14:05 - wangk

Now that I looked at the code again more carefully. I think we should not expand the labelmap when converting polydata to labelmap. only create an expanded labelmap when converting from labelmap to closed surface on the fly.

2013-10-31, 16:32:00 - wangk

I just reverted the vtkPolyDataToLabelmapFilter.cxx in SlicerRTCommon directory to r:1223 and was able to use dicom rt export module to export the example prostate dataset. what is the problem that r:1224 tried to fix?

2013-10-31, 16:41:36 - Csaba Pinter

I guess it was related to the fact that if any border voxels are foreground then marching cubes will result in an ‘open’ surface. So for example in case of the body contour where the bottom and top slices also contain contour data we need to exand the volume by 1 voxel in those directions so that we get a closed volume. Also this is why the exporting failed.

2013-10-31, 16:43:02 - Csaba Pinter

Kevin, I agree with your comment (https://www.assembla.com/spaces/slicerrt/tickets/441-export-fails-if-the-contours-contain-only-ribbon-node?comment=393028403#comment:393028403), it is exactly what I wrote one comment above.

2013-11-01, 13:00:07 - wangk

@rankin, can we go back to r:1223 so I can close the ticket?

2013-11-01, 14:41:24 - Csaba Pinter

No, revision 1223 is not a good revision for the reasons I wrote about twice (border voxels vs closed surface). We need to fix it the right way.

2013-11-01, 14:47:14 - Csaba Pinter

assigned_to_id: changed from “wangk” to “rankin”

2013-11-01, 14:47:25 - Csaba Pinter

priority: changed from “Normal (3)” to “High (2)”

2013-11-04, 16:24:23 - Csaba Pinter

(In r:1251|slicerrt:1251) Fixed #441: Resample contour labelmap volume to match the anatomical image before DICOM export when necessary. Note: This is a temporary fix for the DICOM RTSS export until the labelmap / closed surface -> planar contours conversion is implemented.

2013-11-04, 16:24:23 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

2013-11-04, 17:25:40 - wangk

I am still not sure why we need to keep the padded labelmap instead of the original labelmap. I thought we only need to pad the labelmap before marchingcube algorithm and then we can discard the padded labelmap. Maybe we can discuss in weekly meeting to clarify the problem.

2013-11-04, 17:39:10 - Csaba Pinter

Yes we should discuss it over the weekly meeting.

The reason I applied this fix is that, according to Andras, the converted indexed labelmaps should also contain the whole structure. This feature will be further enhanced in #452.

2013-11-06, 16:40:18 - Adam Rankin

Both the labelmap and the closed surface are cut if the reference volume doesn’t overlap the contour volume. I wrote the changes to only expand the reference area if the resulting transformed contour representation would be cut off.

What is the outstanding issue? The labelmap is expanded when it shouldn’t be?

2013-11-06, 16:44:16 - Adam Rankin

Performing more testing.

2013-11-06, 16:44:16 - Adam Rankin

status: changed from “Fixed” to “Accepted”

2013-11-06, 16:57:21 - Csaba Pinter

I don’t quite understand what your question about the outstanding issue refers to, but there are two things here:

  1. Export fails if the labelmap dimensions are different from the reference dimensions. This is why it failed in case of every BODY contour because they are expanded (which is OK). I applied a temporary fix to make sure the exported labelmap has the right geometry. I think this part is alright until we have a proper way to export contours (without converting back and forth)
  2. There is a bug in the expansion code due to comparing voxels to mms (see #452)

Did you find something that made you set this to accepted?

2013-11-06, 17:02:35 - Csaba Pinter

As the DICOM export works for now, let’s continue this discussion in a different (new) ticket if there is anything else to fix in the exporting code.

2013-11-06, 17:02:35 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

#442 Contour hierarchy nodes do not appear in the DicomRtExport combobox on Linux

After loading an RT study, the …AllStructures contour hierarchy node should show up under the combobox ‘Contour Hierarchy’, but on Linux it doesn’t.

2013-10-10, 15:27:18 - Greg Sharp

I have reproduced the good result that structures appear in combobox on windows.

2013-10-10, 16:04:36 - Csaba Pinter

(In r:1219|slicerrt:1219) Fixed #442: SlicerRtCommon is explicitly linked to DicomRtExport, so now the structure sets appear; Code reviewed, unnecessary code removed, UI brought up to conventions

2013-10-10, 16:04:36 - Csaba Pinter

status: changed from “New” to “Fixed”

2013-10-10, 16:07:16 - Csaba Pinter

(In r:1220|slicerrt:1220) Re #442: Removed extra logging for testing

2013-10-10, 16:07:40 - Csaba Pinter

Of course the problem was the good old explicit vtkSlicerRtCommon linkage

2013-10-10, 16:09:25 - wangk

thanks Csaba for quick fixes. @gregsharp, now you can use it in Linux.

2013-10-10, 16:10:41 - Csaba Pinter

@wangk: Please pay attention to these in the future:

Thanks!

#443 Contour testing fails to build on Linux

2013-10-15, 17:24:08 - Adam Rankin

(In r:1222|slicerrt:1222) re #443 disabling contour tests until working on all platforms

2013-10-15, 17:31:37 - Adam Rankin

status: changed from “New” to “Fixed”

#444 Cannot select ‘None’ in Fiducials comboboxes in Plastimatch B-spline module

In the Plastimatch B-spline module it is not possible to not select a fiducial if there are fiducials present in the scene. This is a problem and results in an error in the execution if the user does not want to use fiducials for the registration.

2013-11-01, 18:00:10 - Csaba Pinter

milestone_id: changed from null to “SlicerRt 0.13”

2013-11-06, 22:13:51 - Csaba Pinter

I was unable to figure out how to enable selecting ‘None’ in the comboboxes in the CLI module.

Question sent to Slicer devel mailing list.

2013-11-13, 17:31:05 - Csaba Pinter

This is due to a missing CLI feature in Slice core. I created a mantis issue: http://www.na-mic.org/Bug/view.php?id=3498

2013-11-13, 18:04:07 - Csaba Pinter

Julien: There used to be support for this, see bool qSlicerCLIModuleUIHelperPrivate::shouldEnableNone(const ModuleParameter& moduleParameter) { // Parameters with flags can support the None node because they are optional if (moduleParameter.GetLongFlag() != ‘’ || moduleParameter.GetFlag() != ‘’) { return true; } return false; }

Theoretically if we replace the TODO comments with SetNoneEnabled(shouldEnableNone(…)), then it should work.

2014-01-10, 21:03:10 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.13” to “SlicerRt 0.14”

2014-01-21, 04:27:55 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.14” to “SlicerRt 1.0”

2016-07-18, 14:50:37 - Csaba Pinter

priority: changed from “Normal (3)” to “Low (4)”

2016-09-01, 15:01:41 - Andras Lasso

I think I’ve fixed this None selection issue. Let me know if it still doesn’t work as intended.

2016-09-01, 17:02:59 - Greg Sharp

Sadly, it is not fixed. The input markups dropdowns have no option for ‘None.’

Also, I note:

Output images do include option for ‘None’. Input images do not include option for ‘None’.

2016-09-01, 17:03:45 - Greg Sharp

Possibly the input images do not include option for ‘None’ because it uses index instead of longflag?

2016-09-01, 17:06:25 - Andras Lasso

OK, I’ll push a fix today. Index arguments are required, so there will be no ‘None’ option for them.

2016-09-01, 20:52:24 - Andras Lasso

Fixed in rev 25330

2016-09-01, 20:52:24 - Andras Lasso

assigned_to_id: changed from null to “gregsharp”

2016-09-01, 20:52:24 - Andras Lasso

status: changed from “New” to “Test”

2016-09-01, 21:10:20 - Greg Sharp

Confirmed. Thanks! Is Slicer bug Csaba references fixed? http://www.na-mic.org/Bug/view.php?id=3498

2016-09-01, 21:10:20 - Greg Sharp

status: changed from “Test” to “Fixed”

2016-09-01, 21:11:59 - Andras Lasso

Yes, I’ve set it to resolved.

2016-09-01, 21:27:27 - Csaba Pinter

milestone_id: changed from “SlicerRt 1.0” to “SlicerRt 0.19”

#445 Results for contour conversions with different resolutions

This occurs within the Radiotherapy/Contours module.

When I attempt to covert an DICOM polyline contour into a an image (specfically, an indexed labelmap), it looks as if there is a centering issue that is more visible as one increases the oversampling factor.

When I use oversampling = 1, the voxels in the generated image appear to line up. However, as I increase the oversampling factor, the labelmap image seems to converge on an offset that is one voxel off from the original image. Please see the attached picture.

2013-10-17, 21:38:14 - jdphllps

image:bTDQicn3qr44ouacwqjQWU Labelmap and contour overlaid with oversampling = 8.

2013-10-17, 21:38:14 - jdphllps

Attachment added: “Oversample8.png”

2013-10-18, 14:28:38 - Csaba Pinter

Thanks for reporting this! We recently made changes in the rasterization code, so I’ll try it on the experimental version and get back to you.

2013-10-18, 15:12:10 - Csaba Pinter

Indeed, there seems to be a shift in the oversampled labelmaps. This may explain the problem that lead to adding ticket #232. Good catch!

2013-10-18, 15:15:47 - Csaba Pinter

image:aQIQI-oaGr44o5acwqjQWU Screenshot for ticket 445 with oversampling value 1

2013-10-18, 15:15:47 - Csaba Pinter

Attachment added: “Screenshot_445_Oversampling_1.png”

2013-10-18, 15:15:56 - Csaba Pinter

image:aV4Kv-oaGr45VdacwqjQYw Screenshot for ticket 445 with oversampling value 2

2013-10-18, 15:15:56 - Csaba Pinter

Attachment added: “Screenshot_445_Oversampling_2.png”

2013-10-18, 15:23:04 - Csaba Pinter

assigned_to_id: changed from null to “rankin”

2013-10-18, 15:23:10 - Csaba Pinter

milestone_id: changed from null to “SlicerRt 0.12”

2013-10-18, 15:29:52 - Adam Rankin

Hi there,

Which revision of SlicerRt are you working with?

2013-10-18, 15:29:52 - Adam Rankin

assigned_to_id: changed from “rankin” to null

2013-10-18, 15:30:01 - Adam Rankin

assigned_to_id: changed from null to “rankin”

2013-10-18, 18:51:47 - jdphllps

Thanks very much, Csaba!

Hi Adam,

I compile from source, and updated yesterday. I did a fresh compile today, just in case, to verify that the above was still happening, and am currently at revision 1226. Hope that helps, and feel free to let me know if you need any other feedback from my end.

2013-11-01, 18:00:10 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.12” to “SlicerRt 0.13”

2013-11-07, 19:17:28 - Adam Rankin

Hi Justin,

You can track the progress of this ticket via ticket #452

https://www.assembla.com/spaces/slicerrt/tickets/452#/activity/ticket:

2013-12-06, 16:03:26 - Adam Rankin

(In r:1330|slicerrt:1330) test #445 test #452 Re-worked algorithm to properly calculate new origin and extent for any combination of contour and reference image data

To test: normal use case with contour inside reference volume

2013-12-06, 16:03:26 - Adam Rankin

status: changed from “New” to “Test”

2013-12-06, 16:59:01 - Adam Rankin

(In r:1331|slicerrt:1331) re #445 re #452 Requested changes from code review

2013-12-06, 17:00:04 - Csaba Pinter

Thanks!

2013-12-06, 17:00:05 - Adam Rankin

(In r:1332|slicerrt:1332) re #445 re #452 more requested changes from code review

2013-12-09, 14:44:12 - Adam Rankin

(In r:1336|slicerrt:1336) fixed #482 Conversion to labelmap with empty data now works as expected

fixed #452 fixed #445 Conversion of ribbon to labelmap with normal use case tested as working

2013-12-09, 14:44:12 - Adam Rankin

status: changed from “Test” to “Fixed”

#446 Unify contour and its representations into a new refactored contour node

HideFromEditors flag prevents the representations from being saved, and thus being loaded. This makes some operations impossible (e.g. that rely on conversion of certain contour representations, such as DVH)

Solution: Create storage node for contours, see design plan in related ticket #407

2013-11-01, 18:00:10 - Csaba Pinter

milestone_id: changed from null to “SlicerRt 0.13”

2013-12-02, 19:47:34 - Csaba Pinter

description: changed from “HideFromEditors flag preven…” to “HideFromEditors flag preven…”

2013-12-30, 00:30:04 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.13” to “SlicerRt 0.14”

2014-01-24, 18:44:30 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2014-02-15, 19:04:48 - Csaba Pinter

assigned_to_id: changed from “pinter” to “rankin”

2014-03-21, 16:11:39 - Adam Rankin

status: changed from “New” to “Accepted”

2014-03-24, 19:35:36 - Adam Rankin

re #446 creating branch to work on contour displayable manager enhancement Commit: r:1588|slicerrt:1588

2014-03-24, 19:42:03 - Adam Rankin

re #446 Merged revision(s) 1575-1588 from trunk/SlicerRt/src: Commit: r:1589|slicerrt:1589

2014-03-27, 14:35:53 - Adam Rankin

re #446 WIP skeleton classes added derived from Model system Commit: r:1595|slicerrt:1595

2014-03-28, 17:23:06 - Adam Rankin

re #446 WIP separating 2d and 3d displayable managers

fixing build error Commit: r:1598|slicerrt:1598

2014-04-03, 16:10:22 - Adam Rankin

re #446 fixing broken build that isn’t really broken? Commit: r:1603|slicerrt:1603

2014-04-10, 15:51:49 - Adam Rankin

re #446 WIP extremely broken build Commit: r:1633|slicerrt:1633

2014-04-11, 14:09:30 - Adam Rankin

re #446 WIP Cleaning up contour class Commit: r:1634|slicerrt:1634

2014-04-13, 22:35:21 - Adam Rankin

re #446 WIP fixing up contour conversion code to use contour node as source of data and meta data for conversion Commit: r:1647|slicerrt:1647

2014-04-14, 15:47:55 - Adam Rankin

re #446 WIP working on contour creation code to support new data model Commit: r:1648|slicerrt:1648

2014-04-14, 17:27:10 - Adam Rankin

re #446 WIP more changes to contour creation, separating point and contour creation earlier Commit: r:1649|slicerrt:1649

2014-04-14, 17:29:35 - Adam Rankin

re #446 Merged revision(s) 1629-1649 from trunk/SlicerRt/src: Commit: r:1650|slicerrt:1650

2014-04-15, 13:19:05 - Adam Rankin

re #446 WIP correcting contour conversion code Commit: r:1652|slicerrt:1652

2014-04-17, 19:09:26 - Adam Rankin

re #446 WIP Contour logic converted to new data model, UI starts Commit: r:1659|slicerrt:1659

2014-04-17, 19:12:10 - Adam Rankin

re #446 WIP Merged revision(s) 1650-1659 from trunk/SlicerRt/src:

Commit: r:1660 slicerrt:1660

2014-04-22, 12:44:36 - Adam Rankin

re #446 WIP Merged revision(s) 1660-1663 from trunk/SlicerRt/src: Commit: r:1664|slicerrt:1664

2014-04-22, 15:56:25 - Adam Rankin

re #446 WIP Core code build seems to be ready for testing

Another pass required to correct all other modules that call contour module functions Commit: r:1665|slicerrt:1665

2014-04-23, 16:04:23 - Adam Rankin

re #446 WIP updating contour morphology logic to use new contour setup Commit: r:1666|slicerrt:1666

2014-04-23, 17:08:02 - Adam Rankin

re #446 WIP contour comparison logic adapting to new contour Commit: r:1667|slicerrt:1667

2014-04-23, 18:21:50 - Adam Rankin

re #446 WIP restoring convert-on-demand functionality to contour node

pushed by updates to DVH logic updates for new contour design Commit: r:1669|slicerrt:1669

2014-04-24, 19:44:22 - Adam Rankin

re #446 WIP oh god it builds… Commit: r:1676|slicerrt:1676

2014-04-24, 19:44:54 - Adam Rankin

re #446 Merged revision(s) 1664-1676 from trunk/SlicerRt/src: Commit: r:1677|slicerrt:1677

2014-04-24, 20:05:05 - Adam Rankin

re #446 builds with latest slicerrt trunk Commit: r:1678|slicerrt:1678

2014-04-24, 20:14:36 - Adam Rankin

re #446 WIP removed friend class designation for convert contours class

only reason was SetDefaultConversionParametersForRepresentation function, but it called a bunch of public functions internally, so no reason for it to be protected Commit: r:1679|slicerrt:1679

2014-04-24, 20:17:15 - Adam Rankin

re #446 WIP removing friend class designation for the contours module logic, not needed Commit: r:1680|slicerrt:1680

2014-04-28, 14:49:59 - Adam Rankin

re #446 WIP erroneous loading of image data Commit: r:1685|slicerrt:1685

2014-04-28, 18:51:25 - Adam Rankin

re #446 adding contour storage node creation Commit: r:1686|slicerrt:1686

2014-04-29, 22:18:04 - Adam Rankin

re #446 WIP build now working, attempting to correct visibility of poly data

memory leak present Commit: r:1688|slicerrt:1688

2014-04-30, 00:15:35 - Adam Rankin

re #446 WIP whoopsie, uncommented code that didn’t compile Commit: r:1689|slicerrt:1689

2014-04-30, 01:56:02 - Adam Rankin

re #446 WIP Merged revision(s) 1677-1689 from trunk/SlicerRt/src: Commit: r:1690|slicerrt:1690

2014-04-30, 14:41:31 - Adam Rankin

re #446 WIP resolving memomry leak, old poly data was still observed

model hierarchy wasn’t the solution, continue investigation Commit: r:1691|slicerrt:1691

2014-04-30, 17:39:08 - Adam Rankin

re #446 WIP contour node no longer subclassing scalar volume node Commit: r:1693|slicerrt:1693

2014-04-30, 21:22:05 - Adam Rankin

re #446 WIP ribbon model contours now showing properly

on to contour conversion Commit: r:1695|slicerrt:1695

2014-04-30, 21:22:57 - Adam Rankin

re #446 WIP comment to self for later issue Commit: r:1696|slicerrt:1696

2014-05-01, 19:58:46 - Adam Rankin

re #446 WIP working on storage node, currently not showing up in save dialog Commit: r:1698|slicerrt:1698

2014-05-02, 02:40:51 - Adam Rankin

re #446 WIP contour storage node now recognized by Slicer, dunno if it works though

also… Bruins suck Commit: r:1699|slicerrt:1699

2014-05-02, 03:02:35 - Adam Rankin

re #446 WIP contour storage node appears to be working, path correctly applied on save Commit: r:1700|slicerrt:1700

2014-05-02, 18:00:13 - Adam Rankin

re #446 WIP missing initialization of createdfromlabelmap variable Commit: r:1701|slicerrt:1701

2014-05-06, 13:02:00 - Adam Rankin

re #446 WIP cleaning up code Commit: r:1702|slicerrt:1702

2014-05-06, 13:02:32 - Adam Rankin

re #446 Merged revision(s) 1690-1702 from trunk/SlicerRt/src: Commit: r:1703|slicerrt:1703

2014-05-07, 18:30:24 - Adam Rankin

re #446 WIP contours now properly written to scene file

crash when destroying nodes, reference to storage node causing crash Commit: r:1706|slicerrt:1706

2014-05-07, 19:27:43 - Adam Rankin

re #446 WIP no longer double-deleting storage node, scene now closes properly Commit: r:1707|slicerrt:1707

2014-05-08, 03:11:23 - Adam Rankin

re #446 WIP contour storage overhaul, adding functionality for image data saving and loading

now saving contour as a file itself, adding in file locations of representations

untested Commit: r:1708|slicerrt:1708

2014-05-09, 20:06:06 - Adam Rankin

re #446 WIP making convert-on-demand actually acknowledge whether it was demanded

saving labelmap represntation in progress Commit: r:1715|slicerrt:1715

2014-05-12, 14:42:46 - Adam Rankin

re #446 WIP finally, saving to labelmap works. apparently ITK does not like it when you don’t use a matching extension to IOClass…

workaround is to move the file after it is done saving Commit: r:1716|slicerrt:1716

2014-05-13, 14:40:26 - Adam Rankin

re #446 WIP Did you know that there’s a reader class who’s sole job is to answer the question ‘Who can load this file?’…

Anyways, reader class created for contours, now succesfully load contours via the Data dialog. Commit: r:1717|slicerrt:1717

2014-05-13, 19:10:08 - Adam Rankin

re #446 WIP correcting a not-null check to be a null check (as expected). Commit: r:1718|slicerrt:1718

2014-05-13, 19:10:40 - Adam Rankin

re #446 Merged revision(s) 1703-1718 from trunk/SlicerRt/src: Commit: r:1719|slicerrt:1719

2014-05-14, 15:14:16 - Adam Rankin

re #446 removing creation of empty ribbon model when a contour node is created

create contour from scratch now is accomplished by creating a labelmap in the editor module, then converting to contour from the SH module or Contours module Commit: r:1723|slicerrt:1723

2014-05-14, 18:57:31 - Adam Rankin

re #446 WIP correcting some issues in the storage node storage node now properly writes closed surface filename storage node now writing .vtk and .nrrd files instead of .cvtk and .cnrrd

crash fixed when creating display node for labelmap Commit: r:1725|slicerrt:1725

2014-05-15, 16:50:53 - Adam Rankin

re #446 WIP Setting reference volume of the contour to the reference volume used to create the labelmap when a contour is created from labelmap Commit: r:1728|slicerrt:1728

2014-05-15, 16:51:29 - Adam Rankin

re #446 Merged revision(s) 1724-1728 from trunk/SlicerRt/src: Commit: r:1729|slicerrt:1729

2014-05-15, 19:33:50 - Adam Rankin

re #446 WIP now using AddAndObserveDisplayNodeId instead of SetAndObserveDisplayNodeId because… that’s what I want.

Removed the active contour identifier label because the concept no longer exists Commit: r:1730|slicerrt:1730

2014-05-16, 14:56:05 - Adam Rankin

re #446 Merged revision(s) 1729-1734 from trunk/SlicerRt/src: Commit: r:1735|slicerrt:1735

2014-05-20, 16:14:29 - Adam Rankin

re #446 Merged revision(s) 1737-1740 from trunk/SlicerRt/src: Commit: r:1741|slicerrt:1741

2014-05-20, 20:15:25 - Adam Rankin

re #446 Correctly assigning color to closed surface display node.

Created ExtractLabelmapFromContour to do exactly that. This showed me that the converted labelmap is not correct. Investigating.

Created temporary UI to allow access to ExtractLabelmapFromContour Commit: r:1742|slicerrt:1742

2014-05-21, 00:17:16 - Adam Rankin

re #446 WIP adding details to new function Commit: r:1743|slicerrt:1743

2014-05-21, 19:29:37 - Adam Rankin

re #446 WIP Yeeesssssssss!!! Representation conversions now working as expected. Commit: r:1746|slicerrt:1746

2014-05-22, 13:18:08 - Adam Rankin

re #446 line endings Commit: r:1747|slicerrt:1747

2014-05-22, 14:18:28 - Adam Rankin

re #446 WIP removing 2d display functionality from Contours rework until integration into the core Commit: r:1748|slicerrt:1748

2014-05-22, 14:34:08 - Adam Rankin

re #446 WIP cleaning up temporary UI, might as well have it look nice

adding in proper naming of nodes in ExtractLabelmapFromContour in case it sticks around Commit: r:1749|slicerrt:1749

2014-05-22, 15:38:20 - Adam Rankin

re #446 WIP Adjusting contour comparison to work with new contour design Commit: r:1751|slicerrt:1751

2014-05-22, 16:40:59 - Adam Rankin

re #446 WIP Fixing edit properties contour context menu entry, now getting associated contour node if the subject hierarchy node isn’t a subseries node Commit: r:1752|slicerrt:1752

2014-05-23, 02:45:06 - Adam Rankin

re #446 WIP Connecting subject hierarchy context menu actions for showing and hiding representations as well as convert on demand functions Commit: r:1755|slicerrt:1755

2014-05-23, 02:45:57 - Adam Rankin

re #446 Merged revision(s) 1741-1755 from trunk/SlicerRt/src: Commit: r:1756|slicerrt:1756

2014-05-27, 18:06:20 - Adam Rankin

re #446 WIP Contour morphology work, untested.

Extract contour creation to function(s) in vtkSlicerContoursModuleLogic

Using ‘None’ field in MRMLComboBox as create new contour option, in testing Commit: r:1764|slicerrt:1764

2014-05-27, 18:33:24 - Adam Rankin

re #446 WIP minor fixes to UI and logic of contour morphology Commit: r:1765|slicerrt:1765

2014-05-27, 18:39:55 - Adam Rankin

re #446 WIP minor fixes to logic of contour morphology Commit: r:1766|slicerrt:1766

2014-05-27, 18:59:06 - Adam Rankin

re #446 WIP fixing crash when converting to closed surface representation

bonus: UI in SH for adding a representation working! Commit: r:1767|slicerrt:1767

2014-05-27, 19:50:21 - Adam Rankin

re #446 WIP closed surface display not showing up after conversion Commit: r:1768|slicerrt:1768

2014-05-29, 06:22:09 - Adam Rankin

re #446 WIP contour morphology stable, color generation in testing Commit: r:1771|slicerrt:1771

2014-05-30, 14:49:53 - Adam Rankin

re #446 WIP DVH now working as expected. Error when replacing labelmap with contour.

Removing erroneous Color addition, color is already tracked in the color table for a series Commit: r:1772|slicerrt:1772

2014-05-30, 16:51:13 - Adam Rankin

re #446 WIP correctly setting contour colors that was broken during my color generation experiment

working on dose comparison module, sneaking in a labelmap volume that plastimatch wants Commit: r:1773|slicerrt:1773

2014-05-30, 19:39:13 - Adam Rankin

re #446 WIP ensuring DICOM RT Export is working Commit: r:1775|slicerrt:1775

2014-06-02, 14:18:33 - Adam Rankin

re #446 WIP cleaning up convert on demand requests by using HasRepresentation instead of Get to prevent undesired conversions Commit: r:1776|slicerrt:1776

2014-06-02, 19:30:15 - Adam Rankin

re #446 WIP trunk merged into branch, everything seems to be working

currently building with VTK5 Commit: r:1779|slicerrt:1779

2014-06-03, 16:09:59 - Adam Rankin

re #446 WIP Updating code to enable DICOM RT Export with new contours Commit: r:1781|slicerrt:1781

2014-06-03, 17:17:35 - Adam Rankin

re #446 WIP correcting image data creation when new output contour is created in contour morphology. label value is correctly changed from input contour value to output contour value

end result: when converting to closed model, it shows up! Commit: r:1782|slicerrt:1782

2014-06-03, 19:23:20 - Adam Rankin

re #446 WIP Adding saving of all details of contour node

now requesting scene input to static function to gaurantee existence Commit: r:1783|slicerrt:1783

2014-06-03, 19:32:31 - Adam Rankin

re #446 Merged revision(s) 1777-1783 from trunk/SlicerRt/src: Commit: r:1784|slicerrt:1784

2014-06-03, 20:04:45 - Adam Rankin

status: changed from “Accepted” to “Test”

2014-06-09, 17:00:17 - Adam Rankin

re #446 Setting structure name attribute when a contour is added to the subject hierarchy

Separating contour creation and subject hierarchy responsibilities for cleaner code

Only using scalar type VTK_UNSIGNED_CHAR for labelmaps. Forcing conversion when creating a contour from vtkMRMLScalarVolumeNode

Generating a color for a new contour if a color isn’t set

Refactoring contour storage node creation into a single function, then using that function where appropriate Commit: r:1787|slicerrt:1787

2014-06-09, 17:00:52 - Adam Rankin

re #446 Merged revision(s) 1784-1787 from trunk/SlicerRt/src: Commit: r:1788|slicerrt:1788

2014-06-09, 17:08:59 - Adam Rankin

test #446 Merging branch into trunk… let the chaos begin! Commit: r:1789|slicerrt:1789

2014-06-09, 18:54:30 - Adam Rankin

re #446 Complete cleanup of transformation of a contour

Linear transform working well, transform whole study is so cool

Non-linear transform untested

Updating GetRASBounds to use model bounds before labelmap bounds Commit: r:1790|slicerrt:1790

2014-06-09, 19:19:40 - Adam Rankin

re #446 Removing erroneous NULLing of data due to the fact that I can’t english gooder Commit: r:1791|slicerrt:1791

2014-06-09, 19:23:09 - Adam Rankin

Non-linear transform appears to be working. Testing hardening of transforms.

2014-06-09, 19:26:51 - Adam Rankin

re #446 Correctly re-establishing observerships and links when a scene is loaded Commit: r:1792|slicerrt:1792

2014-06-10, 16:00:20 - Adam Rankin

re #446 Using NodeReference mechanism built in to vtkMRMLNode instead of old node connection mechanism Commit: r:1794|slicerrt:1794

2014-06-13, 17:39:32 - Adam Rankin

re #446 correcting some automatic tests

obvious mistake 1: when changing the way contours are stored on disk, you must update the data on disk so that the tests will work

not so obvious mistake 2: when reading xml attributes, make sure you parse booleans correctly Commit: r:1795|slicerrt:1795

2014-06-13, 19:53:20 - Adam Rankin

re #446 repairing more tests

removing a no-longer necessary error when reference volume doesn’t exist. since there is a flag for CreatedFromLabelmap, we no longer rely on the reference volume ID as an indicator

applying transformation to contour node instead of scalar volume node Commit: r:1796|slicerrt:1796

2014-06-15, 17:26:29 - Adam Rankin

re #446 making progress on the DVH tests

numbers don’t match, but at least the test runs with loaded data Commit: r:1797|slicerrt:1797

2014-06-16, 02:57:57 - Adam Rankin

re #446 removing the _Contour suffix from contour nodes

restoring the color of contours when loading a MRML scene Commit: r:1798|slicerrt:1798

2014-06-16, 14:01:06 - Adam Rankin

re #446 rasterizing labelmaps with dose volume instead of CT volume

adding consolidated node to scene (so that scene isn’t NULL when accessed) in DVH logic Commit: r:1799|slicerrt:1799

2014-06-16, 14:24:47 - Adam Rankin

re #446 fixing GUI mistake, ref volume has changed when it doesn’t match the stored value… Commit: r:1800|slicerrt:1800

2014-06-16, 14:55:58 - Adam Rankin

re #446 removing unnecessary code from morpohology test

loading correct files for test data Commit: r:1801|slicerrt:1801

2014-06-16, 15:26:05 - Adam Rankin

re #446 undoing some recent changes… need to re-evalute what’s going on Commit: r:1802|slicerrt:1802

2014-06-16, 16:04:04 - Adam Rankin

re #446 missing break statements causing switch fallthrough

incorrect filenames for tests Commit: r:1803|slicerrt:1803

2014-06-16, 16:10:45 - Adam Rankin

re #446 adding node to scene to prevent NULL scene guard Commit: r:1804|slicerrt:1804

2014-06-16, 17:36:53 - Adam Rankin

re #446 correcting contour storage node output filename so that sub files are correctly written to the same directory as the parent file

Adding EclipseEnt data and updating scene file

Some ENT tests pass, some don’t… investigating Commit: r:1805|slicerrt:1805

2014-06-19, 13:19:28 - Adam Rankin

re #446 fixing conversion to closed surface after a contour is generated from contour morphology Commit: r:1807|slicerrt:1807

2014-06-24, 13:44:48 - Adam Rankin

re #446 Updating tests to use ContourStorageNode mechanism

Removing test labelmaps to ensure conversion during tests

TODO : create rectum dilated contour and save to folder Commit: r:1813|slicerrt:1813

2014-06-24, 15:39:39 - Adam Rankin

re #446 Improving model display node by adding a flag to indicate connection to a certain model Commit: r:1815|slicerrt:1815

2014-06-26, 02:55:13 - Adam Rankin

re #446 correcting baselines for contour morphology

adjusting contour morphology to consider transformed nodes – not working as expected, in progress Commit: r:1819|slicerrt:1819

2014-06-26, 03:20:56 - Adam Rankin

re #446 line endings Commit: r:1820|slicerrt:1820

2014-06-26, 16:46:56 - Adam Rankin

re #446 making line endings consistent

checking for NULL value before using a node Commit: r:1821|slicerrt:1821

2014-06-26, 16:57:40 - Csaba Pinter

summary: changed from “Only the active representation of a contour is saved with the scene” to “Unify contour and its representations into a new refactored contour node”

2014-06-26, 20:23:56 - Adam Rankin

re #446 Repairing model display when loading contours from file Commit: r:1823|slicerrt:1823

2014-06-26, 21:29:50 - Adam Rankin

re #446 Adjusting test result values to match contours with new oversampling factor Commit: r:1824|slicerrt:1824

2014-06-27, 14:52:52 - Adam Rankin

re #446 Resetting prostate dose… this shouldn’t have changed… God who did that. Commit: r:1826|slicerrt:1826

2014-06-27, 15:43:54 - Adam Rankin

re #446 missing subject hierarchy nodes from dvh scene Commit: r:1827|slicerrt:1827

2014-06-27, 15:48:05 - Adam Rankin

re #446 changing base test name so I can run it only when debugging Commit: r:1828|slicerrt:1828

2014-06-27, 18:28:39 - Adam Rankin

re #446 Adding guard in DVH module to protect against invalid scene data

Removing OSF as a parameter to test, instead grabbing it from the scene Removing unnecessary set of rasterization volume as it was redundant (saved in scene) Cleaning up output in contour comparison test Updating prostate and ent test scenes with correct and necessary data Updating contour comparison test output comparison values

Reducing acceptance rate to 91% from 92% on EclipseEnt_Eclipse test (I feel dirty) Commit: r:1829|slicerrt:1829

2014-06-27, 19:03:28 - Adam Rankin

re #446 correcting contours test to correct values

improving contours test to output all incorrect values before closing Commit: r:1830|slicerrt:1830

2014-07-03, 20:19:14 - Adam Rankin

re #446 Contour morphology working, verified manually

Contour morphology test still failing, unsure what is going on yet…

Adding ability to override behaviour in contour selector widget with a flag to show reference volume when the developer knows they are going to re-rasterize a labelmap

Removing hardening of contours in contour morphology until I can determine if it works Commit: r:1835|slicerrt:1835

2014-07-04, 12:58:58 - Adam Rankin

re #446 Copy-paste error, adjusting values in contour comparison base test Commit: r:1839|slicerrt:1839

2014-07-04, 16:23:04 - Adam Rankin

re #446 Repairing contour morphology test (more copy-pasta errors)

Updating labelmaps to match reality

Resolving line endings Commit: r:1845|slicerrt:1845

2014-07-07, 15:01:17 - Adam Rankin

re #446 restoring transformation support to contour morphology

showing reconversion will take place when … reconversion will take place Commit: r:1848|slicerrt:1848

2014-07-07, 16:27:08 - Adam Rankin

re #446 Updating isodose model to reflect reality Commit: r:1849|slicerrt:1849

2014-07-08, 17:58:14 - Adam Rankin

Overall it seems that the contour changes are working. With no objections @pinter and @lassoan I’d like to close this ticket and open new tickets to address specific issues.

2014-07-08, 18:15:49 - Csaba Pinter

Agreed. If all automatic tests pass and all the general use cases work, then any following issue can be considered a separate bug. Thanks!

2014-07-08, 18:24:19 - Adam Rankin

status: changed from “Test” to “Fixed”

2014-07-09, 13:43:33 - Adam Rankin

re #446 removing debugging code accidentally left in Commit: r:1854|slicerrt:1854

#447 Update help in MatlabBridge modules

In Slicer the Module Help/Acknowledgement pages are out-of-date for MatlabBridge modules (module generator and commander)

2013-10-24, 05:48:01 - Andras Lasso

(In r:1231|slicerrt:1231) test #447: Updated help and acknowledgement text in MatlabBridge modules

2013-10-24, 05:48:01 - Andras Lasso

status: changed from “New” to “Test”

2013-10-29, 14:16:57 - Andras Lasso

status: changed from “Test” to “Fixed”

#448 Matlab executable is not started on certain linux systems

When the Matlab executable is started the -r command argument should be put between quotation marks.

matlab -r run(‘/image/…’); bash: syntax error near unexpected token ‘(‘

matlab -r ‘run(‘/image/…’);’ works correctly!

Tested and adding the ‘’ doesn’t cause any problem on Windows either.

2013-10-24, 04:20:08 - Andras Lasso

(In r:1229|slicerrt:1229) test #448: Made Matlab server starting more robust (earlier implementation didn’t work on some linux systems)

2013-10-24, 04:20:08 - Andras Lasso

status: changed from “New” to “Test”

2013-10-24, 04:53:37 - Andras Lasso

(In r:1230|slicerrt:1230) re #448: Fixed Matlab script starting on linux, when the .m file is not in the same directory as the MatlabCommander CLI module

2013-10-29, 14:17:05 - Andras Lasso

status: changed from “Test” to “Fixed”

#449 Enable the Isodose module to filter out non-dose volumes

Probably the best would be to make it similar to the way it is done in DVH:

2013-11-01, 18:00:10 - Csaba Pinter

milestone_id: changed from “SlicerRt 1.0” to “SlicerRt 0.13”

2014-01-10, 21:01:29 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.13” to “SlicerRt 0.14”

2014-01-16, 18:35:13 - Csaba Pinter

assigned_to_id: changed from null to “wangk”

2014-02-20, 19:21:09 - wangk

status: changed from “New” to “Accepted”

2014-02-20, 19:22:55 - wangk

Test #449: added the show dose volume only checkbox and small Copyright changes. Commit: r:1525|slicerrt:1525

2014-02-20, 19:22:55 - wangk

status: changed from “Accepted” to “Test”

2014-02-22, 19:09:53 - Csaba Pinter

Fixed #449: Sentence case must be used in the UI, label in Isodose module fixed Commit: r:1534|slicerrt:1534

2014-02-22, 19:09:53 - Csaba Pinter

status: changed from “Test” to “Fixed”

#450 Release SlicerRT 0.13

2013-11-22, 18:39:04 - Csaba Pinter

description: changed from “” to “* Reconsider extension desc…”

2013-11-22, 19:31:17 - Csaba Pinter

(In r:1301|slicerrt:1301) Re #450 #323: Removed unnecessary lines from main CMakeLists.txt file

2014-01-09, 18:20:28 - Csaba Pinter

description: changed from “* Reconsider extension desc…” to “* Reconsider extension desc…”

2014-01-09, 18:21:10 - Csaba Pinter

description: changed from “* Reconsider extension desc…” to “* Reconsider extension desc…”

2014-01-16, 22:34:10 - Csaba Pinter

status: changed from “New” to “Accepted”

2014-01-16, 22:56:02 - Csaba Pinter

(In r:1427|slicerrt:1427) Re #450: Bump SlicerRT version to 0.13.0

2014-01-16, 23:12:30 - Csaba Pinter

(In r:1428|slicerrt:1428) Re #450: Merged trunk to 4.3 branch

2014-01-17, 00:18:23 - Csaba Pinter

(In r:1429|slicerrt:1429) Re #450: Fixed issues related to differences in the Slicer trunk and stable branch

2014-01-20, 17:02:10 - Csaba Pinter

(In r:1438|slicerrt:1438) Re #450: Fixed install step of new dynamically linked libraries (SlicerRtCommon and PlmCommon)

2014-01-20, 17:10:03 - Csaba Pinter

(In r:1439|slicerrt:1439) Re #450: Bumped SlicerRT version to 0.13.1

2014-01-20, 17:16:11 - Csaba Pinter

(In r:1440|slicerrt:1440) Re #450: Merged trunk to 4.3 branch

2014-01-20, 18:06:17 - Csaba Pinter

(In r:1441|slicerrt:1441) Re #450: Fix compilation errors for Slicer 4.3

2014-01-20, 18:09:42 - Csaba Pinter

(In r:1442|slicerrt:1442) Re #450: Merged 4.3 branch changes into trunk

2014-01-20, 21:58:58 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

#451 Build error due to updated Plastimatch on Windows in Release mode

6>1>—— Build started: Project: plmbase, Configuration: Release x64 —— 6>1>Compiling… 6>1>rpl_volume.cxx 6>1>C:\devel\SlicerRT_R64-bin\Plastimatch\src\plastimatch\dose\ion_plan.h(7) : fatal error C1083: Cannot open include file: ‘plmdose_config.h’: No such file or directory 6>1>Build log was saved at ‘file://c:\devel\SlicerRT_R64-bin\Plastimatch-build\src\plastimatch\base\plmbase.dir\elease\BuildLog.htm’ 6>1>plmbase - 1 error(s), 0 warning(s) 6>========== Build: 0 succeeded, 1 failed, 16 up-to-date, 0 skipped ========== 6>Project : error PRJ0019: A tool returned an error code from ‘Performing build step for ‘Plastimatch’’ 6>Build log was saved at ‘file://c:\devel\SlicerRT_R64-bin\Plastimatch.dir\elease\BuildLog.htm’ 6>Plastimatch - 2 error(s), 0 warning(s) 7>—— Build started: Project: inner, Configuration: Release x64 —— 7>Performing build step for ‘inner’ 7>Microsoft (R) Visual Studio Version 9.0.30729.1. 7>Copyright (C) Microsoft Corp. All rights reserved. 7>1>—— Build started: Project: vtkSlicerPlastimatchPyModuleLogic, Configuration: Release x64 —— 7>1>Linking… 7>1>LINK : warning LNK4044: unrecognized option ‘/openmp’; ignored 7>1>LINK : fatal error LNK1181: cannot open input file ‘C:\devel\SlicerRT_R64-bin\Plastimatch-build\elease\plmbase.lib’ 7>2>—— Build started: Project: vtkSlicerDoseComparisonModuleLogic, Configuration: Release x64 —— 7>1>Build log was saved at ‘file://c:\devel\SlicerRT_R64-bin\inner-build\PlastimatchPy\Logic\vtkSlicerPlastimatchPyModuleLogic.dir\elease\BuildLog.htm’ 7>1>vtkSlicerPlastimatchPyModuleLogic - 1 error(s), 1 warning(s) 7>3>—— Build started: Project: vtkSlicerContoursModuleMRML, Configuration: Release x64 —— 7>2>Linking… 7>3>Linking… 7>2>LINK : fatal error LNK1181: cannot open input file ‘C:\devel\SlicerRT_R64-bin\Plastimatch-build\elease\plmbase.lib’ 7>3>LINK : fatal error LNK1181: cannot open input file ‘C:\devel\SlicerRT_R64-bin\Plastimatch-build\elease\plmbase.lib’ 7>2>Build log was saved at ‘file://c:\devel\SlicerRT_R64-bin\inner-build\DoseComparison\Logic\vtkSlicerDoseComparisonModuleLogic.dir\elease\BuildLog.htm’ 7>2>vtkSlicerDoseComparisonModuleLogic - 1 error(s), 0 warning(s) 7>3>Build log was saved at ‘file://c:\devel\SlicerRT_R64-bin\inner-build\Contours\MRML\vtkSlicerContoursModuleMRML.dir\elease\BuildLog.htm’ 7>3>vtkSlicerContoursModuleMRML - 1 error(s), 0 warning(s) 7>4>—— Build started: Project: vtkSlicerContoursModuleMRMLPythonD, Configuration: Release x64 —— 7>5>—— Build started: Project: vtkSlicerContoursModuleLogic, Configuration: Release x64 —— 7>6>—— Build started: Project: vtkSlicerContourMorphologyModuleLogic, Configuration: Release x64 —— 7>4>Linking… 7>5>Linking… 7>7>—— Build started: Project: vtkSlicerContourComparisonModuleLogic, Configuration: Release x64 —— 7>8>—— Build started: Project: vtkSlicerDicomRtImportModuleLogic, Configuration: Release x64 —— 7>5>LINK : fatal error LNK1181: cannot open input file ‘..\..\lib\Slicer-4.3\qt-loadable-modules\elease\vtkSlicerContoursModuleMRML.lib’ 7>6>Linking… 7>4>LINK : fatal error LNK1181: cannot open input file ‘..\..\lib\Slicer-4.3\qt-loadable-modules\elease\vtkSlicerContoursModuleMRML.lib’ 7>7>Linking… 7>9>—— Build started: Project: vtkSlicerDoseComparisonModuleLogicPythonD, Configuration: Release x64 —— 7>5>Build log was saved at ‘file://c:\devel\SlicerRT_R64-bin\inner-build\Contours\Logic\vtkSlicerContoursModuleLogic.dir\elease\BuildLog.htm’ 7>4>Build log was saved at ‘file://c:\devel\SlicerRT_R64-bin\inner-build\Contours\MRML\vtkSlicerContoursModuleMRMLPythonD.dir\elease\BuildLog.htm’ 7>5>vtkSlicerContoursModuleLogic - 1 error(s), 0 warning(s) 7>4>vtkSlicerContoursModuleMRMLPythonD - 1 error(s), 0 warning(s) 7>7>LINK : warning LNK4044: unrecognized option ‘/openmp’; ignored 7>6>LINK : fatal error LNK1181: cannot open input file ‘..\..\lib\Slicer-4.3\qt-loadable-modules\elease\vtkSlicerContoursModuleMRML.lib’ 7>7>LINK : fatal error LNK1181: cannot open input file ‘..\..\lib\Slicer-4.3\qt-loadable-modules\elease\vtkSlicerContoursModuleMRML.lib’ 7>9>Linking… 7>7>Build log was saved at ‘file://c:\devel\SlicerRT_R64-bin\inner-build\ContourComparison\Logic\vtkSlicerContourComparisonModuleLogic.dir\elease\BuildLog.htm’ 7>6>Build log was saved at ‘file://c:\devel\SlicerRT_R64-bin\inner-build\ContourMorphology\Logic\vtkSlicerContourMorphologyModuleLogic.dir\elease\BuildLog.htm’ 7>8>Linking… 7>7>vtkSlicerContourComparisonModuleLogic - 1 error(s), 1 warning(s) 7>6>vtkSlicerContourMorphologyModuleLogic - 1 error(s), 0 warning(s) 7>10>—— Build started: Project: vtkSlicerContoursModuleLogicPythonD, Configuration: Release x64 —— 7>8>LINK : fatal error LNK1181: cannot open input file ‘..\..\lib\Slicer-4.3\qt-loadable-modules\elease\vtkSlicerContoursModuleMRML.lib’ 7>11>—— Build started: Project: qSlicerContoursModuleWidgets, Configuration: Release x64 —— 7>8>Build log was saved at ‘file://c:\devel\SlicerRT_R64-bin\inner-build\DicomRtImport\Logic\vtkSlicerDicomRtImportModuleLogic.dir\elease\BuildLog.htm’ 7>8>vtkSlicerDicomRtImportModuleLogic - 1 error(s), 0 warning(s) 7>12>—— Build started: Project: vtkSlicerDoseVolumeHistogramModuleLogic, Configuration: Release x64 —— 7>10>Linking… 7>13>—— Build started: Project: vtkSlicerContourMorphologyModuleLogicPythonD, Configuration: Release x64 —— 7>14>—— Build started: Project: vtkSlicerContourComparisonModuleLogicPythonD, Configuration: Release x64 —— 7>11>Linking… 7>15>—— Build started: Project: vtkSlicerDicomRtImportModuleLogicPythonD, Configuration: Release x64 —— 7>10>LINK : fatal error LNK1181: cannot open input file ‘..\..\lib\Slicer-4.3\qt-loadable-modules\elease\vtkSlicerContoursModuleLogic.lib’ 7>13>Linking… 7>12>Linking… 7>10>Build log was saved at ‘file://c:\devel\SlicerRT_R64-bin\inner-build\Contours\Logic\vtkSlicerContoursModuleLogicPythonD.dir\elease\BuildLog.htm’ 7>10>vtkSlicerContoursModuleLogicPythonD - 1 error(s), 0 warning(s) 7>14>Linking… 7>11>LINK : fatal error LNK1181: cannot open input file ‘..\..\lib\Slicer-4.3\qt-loadable-modules\elease\vtkSlicerContoursModuleLogic.lib’ 7>15>Linking… 7>9>LINK : fatal error LNK1181: cannot open input file ‘..\..\lib\Slicer-4.3\qt-loadable-modules\elease\vtkSlicerDoseComparisonModuleLogic.lib’ 7>13>LINK : fatal error LNK1181: cannot open input file ‘..\..\lib\Slicer-4.3\qt-loadable-modules\elease\vtkSlicerContourMorphologyModuleLogic.lib’ 7>12>LINK : fatal error LNK1181: cannot open input file ‘..\..\lib\Slicer-4.3\qt-loadable-modules\elease\vtkSlicerContoursModuleMRML.lib’ 7>16>—— Build started: Project: vtkSlicerPlastimatchPyModuleLogicPythonD, Configuration: Release x64 —— 7>11>Build log was saved at ‘file://c:\devel\SlicerRT_R64-bin\inner-build\Contours\Widgets\qSlicerContoursModuleWidgets.dir\elease\BuildLog.htm’ 7>13>Build log was saved at ‘file://c:\devel\SlicerRT_R64-bin\inner-build\ContourMorphology\Logic\vtkSlicerContourMorphologyModuleLogicPythonD.dir\elease\BuildLog.htm’ 7>9>Build log was saved at ‘file://c:\devel\SlicerRT_R64-bin\inner-build\DoseComparison\Logic\vtkSlicerDoseComparisonModuleLogicPythonD.dir\elease\BuildLog.htm’ 7>12>Build log was saved at ‘file://c:\devel\SlicerRT_R64-bin\inner-build\DoseVolumeHistogram\Logic\vtkSlicerDoseVolumeHistogramModuleLogic.dir\elease\BuildLog.htm’ 7>16>Linking… 7>14>LINK : fatal error LNK1181: cannot open input file ‘..\..\lib\Slicer-4.3\qt-loadable-modules\elease\vtkSlicerContourComparisonModuleLogic.lib’ 7>15>LINK : fatal error LNK1181: cannot open input file ‘..\..\lib\Slicer-4.3\qt-loadable-modules\elease\vtkSlicerDicomRtImportModuleLogic.lib’ 7>12>vtkSlicerDoseVolumeHistogramModuleLogic - 1 error(s), 0 warning(s) 7>13>vtkSlicerContourMorphologyModuleLogicPythonD - 1 error(s), 0 warning(s) 7>9>vtkSlicerDoseComparisonModuleLogicPythonD - 1 error(s), 0 warning(s) 7>11>qSlicerContoursModuleWidgets - 1 error(s), 0 warning(s) 7>14>Build log was saved at ‘file://c:\devel\SlicerRT_R64-bin\inner-build\ContourComparison\Logic\vtkSlicerContourComparisonModuleLogicPythonD.dir\elease\BuildLog.htm’ 7>15>Build log was saved at ‘file://c:\devel\SlicerRT_R64-bin\inner-build\DicomRtImport\Logic\vtkSlicerDicomRtImportModuleLogicPythonD.dir\elease\BuildLog.htm’ 7>16>LINK : fatal error LNK1181: cannot open input file ‘..\..\lib\Slicer-4.3\qt-loadable-modules\elease\vtkSlicerPlastimatchPyModuleLogic.lib’ 7>14>vtkSlicerContourComparisonModuleLogicPythonD - 1 error(s), 0 warning(s) 7>15>vtkSlicerDicomRtImportModuleLogicPythonD - 1 error(s), 0 warning(s) 7>16>Build log was saved at ‘file://c:\devel\SlicerRT_R64-bin\inner-build\PlastimatchPy\Logic\vtkSlicerPlastimatchPyModuleLogicPythonD.dir\elease\BuildLog.htm’ 7>17>—— Build started: Project: qSlicerPlastimatchPyModule, Configuration: Release x64 —— 7>16>vtkSlicerPlastimatchPyModuleLogicPythonD - 1 error(s), 0 warning(s) 7>18>—— Build started: Project: vtkSlicerDoseVolumeHistogramModuleLogicPythonD, Configuration: Release x64 —— 7>18>Linking… 7>17>Linking… 7>19>—— Build started: Project: plastimatch_slicer_bsplineLib, Configuration: Release x64 —— 7>20>—— Build started: Project: plastimatch_slicer_dicomrt_exportLib, Configuration: Release x64 —— 7>21>—— Build started: Project: plastimatch_slicer_dicomrt_importLib, Configuration: Release x64 —— 7>19>Linking… 7>18>LINK : fatal error LNK1181: cannot open input file ‘..\..\lib\Slicer-4.3\qt-loadable-modules\elease\vtkSlicerDoseVolumeHistogramModuleLogic.lib’ 7>17>LINK : fatal error LNK1181: cannot open input file ‘..\lib\Slicer-4.3\qt-loadable-modules\elease\vtkSlicerPlastimatchPyModuleLogic.lib’ 7>18>Build log was saved at ‘file://c:\devel\SlicerRT_R64-bin\inner-build\DoseVolumeHistogram\Logic\vtkSlicerDoseVolumeHistogramModuleLogicPythonD.dir\elease\BuildLog.htm’ 7>17>Build log was saved at ‘file://c:\devel\SlicerRT_R64-bin\inner-build\PlastimatchPy\qSlicerPlastimatchPyModule.dir\elease\BuildLog.htm’ 7>20>Linking… 7>21>Linking… 7>19>LINK : warning LNK4044: unrecognized option ‘/openmp’; ignored 7>22>—— Build started: Project: plastimatch_slicer_landwarpLib, Configuration: Release x64 —— 7>19>LINK : fatal error LNK1181: cannot open input file ‘C:\devel\SlicerRT_R64-bin\Plastimatch-build\elease\plmbase.lib’ 7>17>qSlicerPlastimatchPyModule - 1 error(s), 0 warning(s) 7>18>vtkSlicerDoseVolumeHistogramModuleLogicPythonD - 1 error(s), 0 warning(s) 7>19>Build log was saved at ‘file://c:\devel\SlicerRT_R64-bin\inner-build\PlmBspline\plastimatch_slicer_bsplineLib.dir\elease\BuildLog.htm’ 7>22>Linking… 7>21>LINK : warning LNK4044: unrecognized option ‘/openmp’; ignored 7>23>—— Build started: Project: plastimatch_slicer_xformwarpLib, Configuration: Release x64 —— 7>20>LINK : warning LNK4044: unrecognized option ‘/openmp’; ignored 7>21>LINK : fatal error LNK1181: cannot open input file ‘C:\devel\SlicerRT_R64-bin\Plastimatch-build\elease\plmbase.lib’ 7>20>LINK : fatal error LNK1181: cannot open input file ‘C:\devel\SlicerRT_R64-bin\Plastimatch-build\elease\plmbase.lib’ 7>19>plastimatch_slicer_bsplineLib - 1 error(s), 1 warning(s) 7>23>Linking… 7>22>LINK : fatal error LNK1181: cannot open input file ‘C:\devel\SlicerRT_R64-bin\Plastimatch-build\elease\plmbase.lib’ 7>21>Build log was saved at ‘file://c:\devel\SlicerRT_R64-bin\inner-build\PlmDicomRtImport\plastimatch_slicer_dicomrt_importLib.dir\elease\BuildLog.htm’ 7>20>Build log was saved at ‘file://c:\devel\SlicerRT_R64-bin\inner-build\PlmDicomRtExport\plastimatch_slicer_dicomrt_exportLib.dir\elease\BuildLog.htm’ 7>23>LINK : warning LNK4044: unrecognized option ‘/openmp’; ignored 7>20>plastimatch_slicer_dicomrt_exportLib - 1 error(s), 1 warning(s) 7>23>LINK : fatal error LNK1181: cannot open input file ‘C:\devel\SlicerRT_R64-bin\Plastimatch-build\elease\plmbase.lib’ 7>21>plastimatch_slicer_dicomrt_importLib - 1 error(s), 1 warning(s) 7>24>—— Build started: Project: qSlicerContourComparisonModule, Configuration: Release x64 —— 7>22>Build log was saved at ‘file://c:\devel\SlicerRT_R64-bin\inner-build\PlmLandwarp\plastimatch_slicer_landwarpLib.dir\elease\BuildLog.htm’ 7>23>Build log was saved at ‘file://c:\devel\SlicerRT_R64-bin\inner-build\PlmXformwarp\plastimatch_slicer_xformwarpLib.dir\elease\BuildLog.htm’ 7>23>plastimatch_slicer_xformwarpLib - 1 error(s), 1 warning(s) 7>22>plastimatch_slicer_landwarpLib - 1 error(s), 0 warning(s) 7>25>—— Build started: Project: qSlicerDoseVolumeHistogramModule, Configuration: Release x64 —— 7>26>—— Build started: Project: qSlicerContourMorphologyModule, Configuration: Release x64 —— 7>24>Linking… 7>25>Linking… 7>27>—— Build started: Project: qSlicerContoursModule, Configuration: Release x64 —— 7>28>—— Build started: Project: qSlicerDoseComparisonModule, Configuration: Release x64 —— 7>24>LINK : fatal error LNK1181: cannot open input file ‘..\lib\Slicer-4.3\qt-loadable-modules\elease\vtkSlicerContourComparisonModuleLogic.lib’ 7>25>LINK : fatal error LNK1181: cannot open input file ‘..\lib\Slicer-4.3\qt-loadable-modules\elease\vtkSlicerDoseVolumeHistogramModuleLogic.lib’ 7>27>Linking… 7>29>—— Build started: Project: qSlicerDicomRtImportModule, Configuration: Release x64 —— 7>24>Build log was saved at ‘file://c:\devel\SlicerRT_R64-bin\inner-build\ContourComparison\qSlicerContourComparisonModule.dir\elease\BuildLog.htm’ 7>28>Linking… 7>24>qSlicerContourComparisonModule - 1 error(s), 0 warning(s) 7>25>Build log was saved at ‘file://c:\devel\SlicerRT_R64-bin\inner-build\DoseVolumeHistogram\qSlicerDoseVolumeHistogramModule.dir\elease\BuildLog.htm’ 7>25>qSlicerDoseVolumeHistogramModule - 1 error(s), 0 warning(s) 7>30>—— Build started: Project: qSlicerContoursModuleWidgetsPythonQt, Configuration: Release x64 —— 7>27>LINK : fatal error LNK1181: cannot open input file ‘..\lib\Slicer-4.3\qt-loadable-modules\elease\vtkSlicerContoursModuleLogic.lib’ 7>28>LINK : fatal error LNK1181: cannot open input file ‘..\lib\Slicer-4.3\qt-loadable-modules\elease\vtkSlicerDoseComparisonModuleLogic.lib’ 7>29>Linking… 7>27>Build log was saved at ‘file://c:\devel\SlicerRT_R64-bin\inner-build\Contours\qSlicerContoursModule.dir\elease\BuildLog.htm’ 7>28>Build log was saved at ‘file://c:\devel\SlicerRT_R64-bin\inner-build\DoseComparison\qSlicerDoseComparisonModule.dir\elease\BuildLog.htm’ 7>26>Linking… 7>28>qSlicerDoseComparisonModule - 1 error(s), 0 warning(s) 7>27>qSlicerContoursModule - 1 error(s), 0 warning(s) 7>31>—— Build started: Project: qSlicerContoursModuleWidgetsPlugins, Configuration: Release x64 —— 7>29>LINK : fatal error LNK1181: cannot open input file ‘..\lib\Slicer-4.3\qt-loadable-modules\elease\vtkSlicerDicomRtImportModuleLogic.lib’ 7>30>Linking… 7>32>—— Build started: Project: qSlicerContourComparisonModuleGenericCxxTests, Configuration: Release x64 —— 7>29>Build log was saved at ‘file://c:\devel\SlicerRT_R64-bin\inner-build\DicomRtImport\qSlicerDicomRtImportModule.dir\elease\BuildLog.htm’ 7>26>LINK : fatal error LNK1181: cannot open input file ‘..\lib\Slicer-4.3\qt-loadable-modules\elease\vtkSlicerContourMorphologyModuleLogic.lib’ 7>29>qSlicerDicomRtImportModule - 1 error(s), 0 warning(s) 7>33>—— Build started: Project: qSlicerContourComparisonModuleCxxTests, Configuration: Release x64 —— 7>26>Build log was saved at ‘file://c:\devel\SlicerRT_R64-bin\inner-build\ContourMorphology\qSlicerContourMorphologyModule.dir\elease\BuildLog.htm’ 7>30>LINK : fatal error LNK1181: cannot open input file ‘..\..\lib\Slicer-4.3\qt-loadable-modules\elease\qSlicerContoursModuleWidgets.lib’ 7>26>qSlicerContourMorphologyModule - 1 error(s), 0 warning(s) 7>31>Linking… 7>32>Performing Pre-Link Event… 7>34>—— Build started: Project: qSlicerContoursModuleWidgetsCxxTests, Configuration: Release x64 —— 7>35>—— Build started: Project: qSlicerContoursModuleGenericCxxTests, Configuration: Release x64 —— 7>30>Build log was saved at ‘file://c:\devel\SlicerRT_R64-bin\inner-build\Contours\Widgets\qSlicerContoursModuleWidgetsPythonQt.dir\elease\BuildLog.htm’ 7>33>Performing Pre-Link Event… 7>32>Linking… 7>34>Performing Pre-Link Event… 7>35>Performing Pre-Link Event… 7>31>LINK : fatal error LNK1181: cannot open input file ‘..\..\..\lib\Slicer-4.3\qt-loadable-modules\elease\qSlicerContoursModuleWidgets.lib’ 7>30>qSlicerContoursModuleWidgetsPythonQt - 1 error(s), 0 warning(s) 7>36>—— Build started: Project: qSlicerDicomRtImportModuleGenericCxxTests, Configuration: Release x64 —— 7>31>Build log was saved at ‘file://c:\devel\SlicerRT_R64-bin\inner-build\Contours\Widgets\DesignerPlugins\qSlicerContoursModuleWidgetsPlugins.dir\elease\BuildLog.htm’ 7>31>qSlicerContoursModuleWidgetsPlugins - 1 error(s), 0 warning(s) 7>37>—— Build started: Project: qSlicerContoursModuleCxxTests, Configuration: Release x64 —— 7>32>LINK : fatal error LNK1181: cannot open input file ‘..\lib\Slicer-4.3\qt-loadable-modules\elease\qSlicerContourComparisonModule.lib’ 7>38>—— Build started: Project: qSlicerDoseComparisonModuleCxxTests, Configuration: Release x64 —— 7>36>Performing Pre-Link Event… 7>37>Performing Pre-Link Event… 7>38>Performing Pre-Link Event… 7>35>Linking… 7>34>Linking… 7>33>Linking… 7>32>Build log was saved at ‘file://c:\devel\SlicerRT_R64-bin\inner-build\ContourComparison\qSlicerContourComparisonModuleGenericCxxTests.dir\elease\BuildLog.htm’ 7>32>qSlicerContourComparisonModuleGenericCxxTests - 1 error(s), 0 warning(s) 7>39>—— Build started: Project: qSlicerContourMorphologyModuleGenericCxxTests, Configuration: Release x64 —— 7>36>Linking… 7>34>LINK : fatal error LNK1181: cannot open input file ‘..\..\..\lib\Slicer-4.3\qt-loadable-modules\elease\qSlicerContoursModuleWidgets.lib’ 7>33>LINK : fatal error LNK1181: cannot open input file ‘..\..\..\lib\Slicer-4.3\qt-loadable-modules\elease\qSlicerContourComparisonModule.lib’ 7>35>LINK : fatal error LNK1181: cannot open input file ‘..\lib\Slicer-4.3\qt-loadable-modules\elease\qSlicerContoursModule.lib’ 7>39>Performing Pre-Link Event… 7>37>Linking… 7>38>Linking… 7>33>Build log was saved at ‘file://c:\devel\SlicerRT_R64-bin\inner-build\ContourComparison\ esting\Cxx\qSlicerContourComparisonModuleCxxTests.dir\elease\BuildLog.htm’ 7>34>Build log was saved at ‘file://c:\devel\SlicerRT_R64-bin\inner-build\Contours\ esting\UI\qSlicerContoursModuleWidgetsCxxTests.dir\elease\BuildLog.htm’ 7>35>Build log was saved at ‘file://c:\devel\SlicerRT_R64-bin\inner-build\Contours\qSlicerContoursModuleGenericCxxTests.dir\elease\BuildLog.htm’ 7>35>qSlicerContoursModuleGenericCxxTests - 1 error(s), 0 warning(s) 7>33>qSlicerContourComparisonModuleCxxTests - 1 error(s), 0 warning(s) 7>34>qSlicerContoursModuleWidgetsCxxTests - 1 error(s), 0 warning(s) 7>36>LINK : fatal error LNK1181: cannot open input file ‘..\lib\Slicer-4.3\qt-loadable-modules\elease\qSlicerDicomRtImportModule.lib’ 7>40>—— Build started: Project: qSlicerContourMorphologyModuleCxxTests, Configuration: Release x64 —— 7>36>Build log was saved at ‘file://c:\devel\SlicerRT_R64-bin\inner-build\DicomRtImport\qSlicerDicomRtImportModuleGenericCxxTests.dir\elease\BuildLog.htm’ 7>36>qSlicerDicomRtImportModuleGenericCxxTests - 1 error(s), 0 warning(s) 7>39>Linking… 7>37>LINK : fatal error LNK1181: cannot open input file ‘..\..\..\lib\Slicer-4.3\qt-loadable-modules\elease\qSlicerContoursModule.lib’ 7>38>LINK : fatal error LNK1181: cannot open input file ‘..\..\..\lib\Slicer-4.3\qt-loadable-modules\elease\qSlicerDoseComparisonModule.lib’ 7>40>Performing Pre-Link Event… 7>38>Build log was saved at ‘file://c:\devel\SlicerRT_R64-bin\inner-build\DoseComparison\ esting\Cxx\qSlicerDoseComparisonModuleCxxTests.dir\elease\BuildLog.htm’ 7>37>Build log was saved at ‘file://c:\devel\SlicerRT_R64-bin\inner-build\Contours\ esting\Cxx\qSlicerContoursModuleCxxTests.dir\elease\BuildLog.htm’ 7>37>qSlicerContoursModuleCxxTests - 1 error(s), 0 warning(s) 7>38>qSlicerDoseComparisonModuleCxxTests - 1 error(s), 0 warning(s) 7>41>—— Build started: Project: qSlicerDoseComparisonModuleGenericCxxTests, Configuration: Release x64 —— 7>40>Linking… 7>39>LINK : fatal error LNK1181: cannot open input file ‘..\lib\Slicer-4.3\qt-loadable-modules\elease\qSlicerContourMorphologyModule.lib’ 7>42>—— Build started: Project: qSlicerDoseVolumeHistogramModuleGenericCxxTests, Configuration: Release x64 —— 7>39>Build log was saved at ‘file://c:\devel\SlicerRT_R64-bin\inner-build\ContourMorphology\qSlicerContourMorphologyModuleGenericCxxTests.dir\elease\BuildLog.htm’ 7>39>qSlicerContourMorphologyModuleGenericCxxTests - 1 error(s), 0 warning(s) 7>42>Performing Pre-Link Event… 7>40>LINK : fatal error LNK1181: cannot open input file ‘..\..\..\lib\Slicer-4.3\qt-loadable-modules\elease\qSlicerContourMorphologyModule.lib’ 7>41>Performing Pre-Link Event… 7>40>Build log was saved at ‘file://c:\devel\SlicerRT_R64-bin\inner-build\ContourMorphology\ esting\Cxx\qSlicerContourMorphologyModuleCxxTests.dir\elease\BuildLog.htm’ 7>40>qSlicerContourMorphologyModuleCxxTests - 1 error(s), 0 warning(s) 7>43>—— Build started: Project: plastimatch_slicer_xformwarp, Configuration: Release x64 —— 7>42>Linking… 7>41>Linking… 7>43>Linking… 7>42>LINK : fatal error LNK1181: cannot open input file ‘..\lib\Slicer-4.3\qt-loadable-modules\elease\qSlicerDoseVolumeHistogramModule.lib’ 7>44>—— Build started: Project: plastimatch_slicer_landwarp, Configuration: Release x64 —— 7>42>Build log was saved at ‘file://c:\devel\SlicerRT_R64-bin\inner-build\DoseVolumeHistogram\qSlicerDoseVolumeHistogramModuleGenericCxxTests.dir\elease\BuildLog.htm’ 7>42>qSlicerDoseVolumeHistogramModuleGenericCxxTests - 1 error(s), 0 warning(s) 7>44>Linking… 7>43>LINK : fatal error LNK1181: cannot open input file ‘..\lib\Slicer-4.3\cli-modules\elease\plastimatch_slicer_xformwarpLib.lib’ 7>41>LINK : fatal error LNK1181: cannot open input file ‘..\lib\Slicer-4.3\qt-loadable-modules\elease\qSlicerDoseComparisonModule.lib’ 7>45>—— Build started: Project: plastimatch_slicer_dicomrt_import, Configuration: Release x64 —— 7>43>Build log was saved at ‘file://c:\devel\SlicerRT_R64-bin\inner-build\PlmXformwarp\plastimatch_slicer_xformwarp.dir\elease\BuildLog.htm’ 7>41>Build log was saved at ‘file://c:\devel\SlicerRT_R64-bin\inner-build\DoseComparison\qSlicerDoseComparisonModuleGenericCxxTests.dir\elease\BuildLog.htm’ 7>41>qSlicerDoseComparisonModuleGenericCxxTests - 1 error(s), 0 warning(s) 7>43>plastimatch_slicer_xformwarp - 1 error(s), 0 warning(s) 7>46>—— Build started: Project: plastimatch_slicer_dicomrt_export, Configuration: Release x64 —— 7>45>Linking… 7>44>LINK : fatal error LNK1181: cannot open input file ‘..\lib\Slicer-4.3\cli-modules\elease\plastimatch_slicer_landwarpLib.lib’ 7>47>—— Build started: Project: plastimatch_slicer_bspline, Configuration: Release x64 —— 7>44>Build log was saved at ‘file://c:\devel\SlicerRT_R64-bin\inner-build\PlmLandwarp\plastimatch_slicer_landwarp.dir\elease\BuildLog.htm’ 7>44>plastimatch_slicer_landwarp - 1 error(s), 0 warning(s) 7>45>LINK : fatal error LNK1181: cannot open input file ‘..\lib\Slicer-4.3\cli-modules\elease\plastimatch_slicer_dicomrt_importLib.lib’ 7>47>Linking… 7>46>Linking… 7>48>—— Build started: Project: qSlicerPlastimatchPyModuleGenericCxxTests, Configuration: Release x64 —— 7>45>Build log was saved at ‘file://c:\devel\SlicerRT_R64-bin\inner-build\PlmDicomRtImport\plastimatch_slicer_dicomrt_import.dir\elease\BuildLog.htm’ 7>45>plastimatch_slicer_dicomrt_import - 1 error(s), 0 warning(s) 7>47>LINK : fatal error LNK1181: cannot open input file ‘..\lib\Slicer-4.3\cli-modules\elease\plastimatch_slicer_bsplineLib.lib’ 7>46>LINK : fatal error LNK1181: cannot open input file ‘..\lib\Slicer-4.3\cli-modules\elease\plastimatch_slicer_dicomrt_exportLib.lib’ 7>48>Performing Pre-Link Event… 7>47>Build log was saved at ‘file://c:\devel\SlicerRT_R64-bin\inner-build\PlmBspline\plastimatch_slicer_bspline.dir\elease\BuildLog.htm’ 7>46>Build log was saved at ‘file://c:\devel\SlicerRT_R64-bin\inner-build\PlmDicomRtExport\plastimatch_slicer_dicomrt_export.dir\elease\BuildLog.htm’ 7>47>plastimatch_slicer_bspline - 1 error(s), 0 warning(s) 7>46>plastimatch_slicer_dicomrt_export - 1 error(s), 0 warning(s) 7>48>Linking… 7>49>—— Build started: Project: vtkSlicerContourComparisonModuleLogicPython, Configuration: Release x64 —— 7>50>—— Build started: Project: vtkSlicerContourMorphologyModuleLogicPython, Configuration: Release x64 —— 7>48>LINK : fatal error LNK1181: cannot open input file ‘..\lib\Slicer-4.3\qt-loadable-modules\elease\qSlicerPlastimatchPyModule.lib’ 7>51>—— Build started: Project: vtkSlicerContoursModuleLogicPython, Configuration: Release x64 —— 7>52>—— Build started: Project: vtkSlicerContoursModuleMRMLPython, Configuration: Release x64 —— 7>48>Build log was saved at ‘file://c:\devel\SlicerRT_R64-bin\inner-build\PlastimatchPy\qSlicerPlastimatchPyModuleGenericCxxTests.dir\elease\BuildLog.htm’ 7>50>Linking… 7>53>—— Build started: Project: vtkSlicerDicomRtImportModuleLogicPython, Configuration: Release x64 —— 7>48>qSlicerPlastimatchPyModuleGenericCxxTests - 1 error(s), 0 warning(s) 7>51>Linking… 7>49>Linking… 7>52>Linking… 7>53>Linking… 7>50>LINK : fatal error LNK1181: cannot open input file ‘..\..\lib\Slicer-4.3\qt-loadable-modules\elease\vtkSlicerContourMorphologyModuleLogicPythonD.lib’ 7>54>—— Build started: Project: vtkSlicerDoseComparisonModuleLogicPython, Configuration: Release x64 —— 7>50>Build log was saved at ‘file://c:\devel\SlicerRT_R64-bin\inner-build\ContourMorphology\Logic\vtkSlicerContourMorphologyModuleLogicPython.dir\elease\BuildLog.htm’ 7>50>vtkSlicerContourMorphologyModuleLogicPython - 1 error(s), 0 warning(s) 7>54>Linking… 7>52>LINK : fatal error LNK1181: cannot open input file ‘..\..\lib\Slicer-4.3\qt-loadable-modules\elease\vtkSlicerContoursModuleMRMLPythonD.lib’ 7>51>LINK : fatal error LNK1181: cannot open input file ‘..\..\lib\Slicer-4.3\qt-loadable-modules\elease\vtkSlicerContoursModuleLogicPythonD.lib’ 7>49>LINK : fatal error LNK1181: cannot open input file ‘..\..\lib\Slicer-4.3\qt-loadable-modules\elease\vtkSlicerContourComparisonModuleLogicPythonD.lib’ 7>53>LINK : fatal error LNK1181: cannot open input file ‘..\..\lib\Slicer-4.3\qt-loadable-modules\elease\vtkSlicerDicomRtImportModuleLogicPythonD.lib’ 7>55>—— Build started: Project: vtkSlicerDoseVolumeHistogramModuleLogicPython, Configuration: Release x64 —— 7>52>Build log was saved at ‘file://c:\devel\SlicerRT_R64-bin\inner-build\Contours\MRML\vtkSlicerContoursModuleMRMLPython.dir\elease\BuildLog.htm’ 7>53>Build log was saved at ‘file://c:\devel\SlicerRT_R64-bin\inner-build\DicomRtImport\Logic\vtkSlicerDicomRtImportModuleLogicPython.dir\elease\BuildLog.htm’ 7>51>Build log was saved at ‘file://c:\devel\SlicerRT_R64-bin\inner-build\Contours\Logic\vtkSlicerContoursModuleLogicPython.dir\elease\BuildLog.htm’ 7>49>Build log was saved at ‘file://c:\devel\SlicerRT_R64-bin\inner-build\ContourComparison\Logic\vtkSlicerContourComparisonModuleLogicPython.dir\elease\BuildLog.htm’ 7>55>Linking… 7>54>LINK : fatal error LNK1181: cannot open input file ‘..\..\lib\Slicer-4.3\qt-loadable-modules\elease\vtkSlicerDoseComparisonModuleLogicPythonD.lib’ 7>49>vtkSlicerContourComparisonModuleLogicPython - 1 error(s), 0 warning(s) 7>51>vtkSlicerContoursModuleLogicPython - 1 error(s), 0 warning(s) 7>53>vtkSlicerDicomRtImportModuleLogicPython - 1 error(s), 0 warning(s) 7>52>vtkSlicerContoursModuleMRMLPython - 1 error(s), 0 warning(s) 7>54>Build log was saved at ‘file://c:\devel\SlicerRT_R64-bin\inner-build\DoseComparison\Logic\vtkSlicerDoseComparisonModuleLogicPython.dir\elease\BuildLog.htm’ 7>54>vtkSlicerDoseComparisonModuleLogicPython - 1 error(s), 0 warning(s) 7>55>LINK : fatal error LNK1181: cannot open input file ‘..\..\lib\Slicer-4.3\qt-loadable-modules\elease\vtkSlicerDoseVolumeHistogramModuleLogicPythonD.lib’ 7>55>Build log was saved at ‘file://c:\devel\SlicerRT_R64-bin\inner-build\DoseVolumeHistogram\Logic\vtkSlicerDoseVolumeHistogramModuleLogicPython.dir\elease\BuildLog.htm’ 7>55>vtkSlicerDoseVolumeHistogramModuleLogicPython - 1 error(s), 0 warning(s) 7>56>—— Build started: Project: vtkSlicerPlastimatchPyModuleLogicPython, Configuration: Release x64 —— 7>57>—— Build started: Project: qSlicerDoseVolumeHistogramModuleCxxTests, Configuration: Release x64 —— 7>57>Performing Pre-Link Event… 7>56>Linking… 7>56>LINK : fatal error LNK1181: cannot open input file ‘..\..\lib\Slicer-4.3\qt-loadable-modules\elease\vtkSlicerPlastimatchPyModuleLogicPythonD.lib’ 7>57>Linking… 7>56>Build log was saved at ‘file://c:\devel\SlicerRT_R64-bin\inner-build\PlastimatchPy\Logic\vtkSlicerPlastimatchPyModuleLogicPython.dir\elease\BuildLog.htm’ 7>56>vtkSlicerPlastimatchPyModuleLogicPython - 1 error(s), 0 warning(s) 7>57>LINK : fatal error LNK1181: cannot open input file ‘..\..\..\lib\Slicer-4.3\qt-loadable-modules\elease\qSlicerDoseVolumeHistogramModule.lib’ 7>57>Build log was saved at ‘file://c:\devel\SlicerRT_R64-bin\inner-build\DoseVolumeHistogram\ esting\Cxx\qSlicerDoseVolumeHistogramModuleCxxTests.dir\elease\BuildLog.htm’ 7>57>qSlicerDoseVolumeHistogramModuleCxxTests - 1 error(s), 0 warning(s) 7>========== Build: 0 succeeded, 57 failed, 88 up-to-date, 0 skipped ========== 7>Project : error PRJ0019: A tool returned an error code from ‘Performing build step for ‘inner’’ 7>Build log was saved at ‘file://c:\devel\SlicerRT_R64-bin\inner.dir\elease\BuildLog.htm’ 7>inner - 58 error(s), 6 warning(s) 8>—— Skipped Build: Project: ALL_BUILD, Configuration: Release x64 —— 8>Project not selected to build for this solution configuration ========== Build: 0 succeeded, 2 failed, 2 up-to-date, 6 skipped ==========

2013-11-03, 01:13:33 - Csaba Pinter

Did a clean build, same thing happened in Release mode. Build succeeded in Debug, but it might fail when doing a clean build.

2013-11-03, 01:29:02 - Csaba Pinter

It seems that plmdose_config.h is not configured from plmdose_config.h.in. The strange thing is that the output configured file plmdose_config.h does not exist in my older release binary directories either. It may have been found in the debug directory somehow?

2013-11-03, 01:36:50 - Csaba Pinter

Plastimatch\src\plastimatch\dose\CMakeLists.txt is not configured in release mode at all. This explains why the file does not exist.

2013-11-03, 15:14:42 - Csaba Pinter

(In r:1249|slicerrt:1249) Re #451: Adding plmdose even if on experimental SlicerRT modules are enabled (build failed in release mode due to missing plmdose library after introducing new dependency to the plmdose module)

2013-11-03, 15:18:55 - Csaba Pinter

@gregsharp I enabled plmdose regardless the status of the experimental modules. Apparently a new dependency has been introduced to the plmdose module so it is now used by the Plastimatch modules enabled for SlicerRT even without experimental modules. If this is something that needs no further fix, then please remove the lines I commented out in revision 1249. However I’m concerned a bit because of the growing dependencies inside Plastimatch.

2013-11-03, 15:19:01 - Csaba Pinter

priority: changed from “Highest (1)” to “Normal (3)”

2013-11-04, 13:53:08 - Greg Sharp

Thanks Csaba and sorry about the trouble. There shouldn’t be need for plmdose without experimental. I wonder why it only affects windows?

2013-11-04, 14:07:24 - Csaba Pinter

No worries. I’m not sure about the actual cause, but it seems that something in the stable modules started using the dose module.

2013-11-04, 14:17:59 - Greg Sharp

(In r:1250|slicerrt:1250) Test #451 Bump plastimatch version to fix build dependency problem for stable SlicerRT

2013-11-04, 14:17:59 - Greg Sharp

status: changed from “New” to “Test”

2013-11-04, 14:22:24 - Greg Sharp

I could reproduce on linux as well. It seems there was an incorrect dependency created within plastimatch.

2013-11-04, 14:45:39 - Csaba Pinter

Thanks for the fix! Build now succeeds on windows in release mode.

2013-11-04, 14:45:39 - Csaba Pinter

status: changed from “Test” to “Fixed”

#452 Contour conversion to labelmap cuts off the contour if oversampling factor is not 1

If the reference volume set to ribbon to labelmap conversion does not entirely cover the contour model, and the oversampling factor is not 1, then the expansion of the reference volume is not done.

2013-11-04, 16:28:28 - Csaba Pinter

I believe the issue is at vtkPolyDataToLabelmapFilter::140, namely that the this->ReferenceImageData->GetExtent(referenceExtents); call gets the reference image extent in image IJK voxel space, but we need to get the boundaries in world RAS coordinate systems for both the poly data and the reference volume to be able to compare them properly.

2013-11-06, 18:35:04 - Adam Rankin

I will use this ticket to track progress in doing a correct solution now that I understand the problem more.

2013-11-06, 18:35:10 - Adam Rankin

status: changed from “New” to “Accepted”

2013-11-06, 18:39:52 - Csaba Pinter

The most correct solution would be implement the vtkPolyDataToLabelmapFilter this way:

  1. Get the contour boundaries in reference volume IJK coordinate system (vtkConvertContourRepresentations::GetTransformFromNodeToVolumeIjk)
  2. Expand the got boundaries to completely engulf the reference volume 2a. Add a 1 voxel padding at the sides where the volume was not expanded due to the reference volume so that nothing is cut off when converting to closed surface model
  3. Create the labelmap volume with the same directions and spacing as the reference volume, BUT a new origin and dimensions (that we computed in steps 1 and 2)

Probably it would be good to check the validity of the labelmap (same grid as the reference volume and all 0-valued bounadry voxels) when converting from labelmap to closed surface just to make sure.

2013-11-06, 18:39:52 - Csaba Pinter

status: changed from “Accepted” to “New”

2013-11-06, 18:40:09 - Csaba Pinter

Sorry, I didn’t refresh and set it to New by accident

2013-11-06, 18:40:09 - Csaba Pinter

status: changed from “New” to “Accepted”

2013-11-06, 18:44:02 - Andras Lasso

If the user is allowed to edit the contour as a labelmap then it was useful to include the reference volume’s full region in the labelmap. Otherwise the user may not be able to draw labels on the reference volume in some areas (that were outside the contour’s original bounding box).

2013-11-06, 18:50:39 - Csaba Pinter

OK, we can do that. However you said that the reference volume should only be used to get the directions and the spacing.

2013-11-06, 18:54:32 - Andras Lasso

Yes. At that time I haven’t thought about users wanting to draw structures outside the original bounding box. We should let the user draw freely within the reference volume’s region.

2013-11-06, 18:57:39 - Csaba Pinter

Makes sense, let’s do it that way.

2013-11-06, 19:16:35 - Csaba Pinter

Pop up warning message in a label when the result labelmap geometry differs from the refrence volume, like ‘The labelmap had to be expanded to encompass the contour’

2013-11-06, 20:05:41 - Andras Lasso

‘Labelmap is larger than the reference volume’ or something like that could be better, as it simply describes the present situation.

If we described an action then there can be many questions - when was that done? who did it? why? is it still relevant? can I undo it?…

2013-11-06, 20:57:05 - Csaba Pinter

Well, yes, the message I proposed only makes sense if the user manually converted the contour to labelmap representation.

On the other hand the message you propose makes more sense if it happened in the background when the user was in another module, and then she selects a contour in the Contours module. In this case it is a ‘state’ mesage and not a message after the operation. However, it is probably more acceptable than the ‘operation result’ message I wrote above.

2013-12-06, 16:03:26 - Adam Rankin

(In r:1330|slicerrt:1330) test #445 test #452 Re-worked algorithm to properly calculate new origin and extent for any combination of contour and reference image data

To test: normal use case with contour inside reference volume

2013-12-06, 16:03:26 - Adam Rankin

status: changed from “Accepted” to “Test”

2013-12-06, 16:59:01 - Adam Rankin

(In r:1331|slicerrt:1331) re #445 re #452 Requested changes from code review

2013-12-06, 17:00:05 - Adam Rankin

(In r:1332|slicerrt:1332) re #445 re #452 more requested changes from code review

2013-12-09, 03:15:06 - Csaba Pinter

(In r:1334|slicerrt:1334) Test #452: Fixed build error in Contours/MRML/vtkConvertContourRepresentations.cxx

2013-12-09, 14:44:12 - Adam Rankin

(In r:1336|slicerrt:1336) fixed #482 Conversion to labelmap with empty data now works as expected

fixed #452 fixed #445 Conversion of ribbon to labelmap with normal use case tested as working

2013-12-09, 14:44:12 - Adam Rankin

status: changed from “Test” to “Fixed”

2013-12-29, 23:38:02 - Csaba Pinter

The following tests fail due to differences in contour conversion:

There are structures in the DVH tests that have pretty big differences in results (e.g. Rectum in the Prostate tests). Please investigate why it deviates that much and fix the problem.

2013-12-29, 23:38:02 - Csaba Pinter

status: changed from “Fixed” to “New”

2014-01-07, 16:50:00 - Adam Rankin

(In r:1380|slicerrt:1380) re #452 fixed contour conversion test

2014-01-07, 22:02:35 - Csaba Pinter

Great, thanks! Did you visually compare the ‘before’ and ‘after’ contours and confirmed that the difference is minor?

2014-01-08, 16:25:55 - Adam Rankin

(In r:1384|slicerrt:1384) re #452 adding volume display node to dvh scene

2014-01-08, 16:59:10 - Adam Rankin

(In r:1385|slicerrt:1385) re #452 moving updateChartCheckboxesState to a location where the mrml scene is correctly set

2014-01-08, 17:43:32 - Adam Rankin

(In r:1386|slicerrt:1386) re #452 correcting the calculation of extents to only take the necessary extent size

correcting the vtkSlicerDoseVolumeHistogramModuleLogicTest_EclipseProstate test

WIP the CERR and Eclipse tests

2014-01-15, 15:44:56 - Adam Rankin

(In r:1414|slicerrt:1414) re #452 correcting contour comparison tests

2014-01-15, 18:37:00 - Adam Rankin

@pinter Any other tests you’d like me to look into?

2014-01-15, 19:02:25 - Csaba Pinter

If every test passes (but maybe the DicomRtExportWidget) then you can close this. Thanks!

2014-01-15, 20:23:34 - Csaba Pinter

It seems that vtkSlicerContoursModuleLogicTest_EclipseProstate still fails

2014-01-15, 20:24:08 - Csaba Pinter

8: Test timeout computed to be: 1500 8: Test MRML scene file name: C:/devel/SlicerRT/Contours/Testing/Cxx/../../../Testing/Data/Scenes/EclipseProstate_Contours_Scene.mrml 8: Temporary scene file name: C:/devel/SlicerRT_R64-bin/inner-build/Testing/Temporary/TestScene_Contours_EclipseProstate.mrml 8: Expected non-zero voxel count: 5448899 8: Expected LabelMapXMinExtent: 0 8: Expected LabelMapXMaxExtent: 272 8: Expected LabelMapYMinExtent: 0 8: Expected LabelMapYMaxExtent: 172 8: Expected LabelMapZMinExtent: 0 8: Expected LabelMapZMaxExtent: 184 8: Expected number of points: 198679 8: Expected number of cells: 396584 8: Expected number of polys: 396584 8: Expected ClosedSurfaceXMinExtent: -172.174 8: Expected ClosedSurfaceXMaxExtent: 162.826 8: Expected ClosedSurfaceYMinExtent: -105.792 8: Expected ClosedSurfaceYMaxExtent: 106.083 8: Expected ClosedSurfaceZMinExtent: -123.125 8: Expected ClosedSurfaceZMaxExtent: 106.25 8: ERROR: Extents don’t match: 8: Extent: ( 0-271, 0-172, 0-184 ) 1/1 Test #8: vtkSlicerContoursModuleLogicTest_EclipseProstate …***Failed Error regular expression found in output. Regex=[ERROR] 2.94 sec

2014-01-16, 19:35:49 - Adam Rankin

(In r:1424|slicerrt:1424) test #452 correcting expected bounds in test data after verifying calculated bounds were correct

-0.25 to 135.25 with an upsampling of 2x gives us a bound of 0-271

2014-01-16, 19:35:49 - Adam Rankin

status: changed from “New” to “Test”

2014-01-16, 20:00:40 - Csaba Pinter

Great, thanks!

2014-01-16, 20:00:40 - Csaba Pinter

status: changed from “Test” to “Fixed”

2014-01-17, 02:25:29 - Adam Rankin

(In r:1433|slicerrt:1433) re #452 correcting spacing in cmake file

#453 Rename MultiDimension to MultidimData

MultiDimension is not a proper English word. Multidimensional data would be suitable, but too long for typing and reading.

Use ‘MultidimData’ for machine use and ‘Multidimensional data’ for display.

2013-11-04, 16:41:26 - Andras Lasso

(In r:1253|slicerrt:1253) re #453: Renamed all modules and the extension to MultidimData

2013-11-04, 16:43:24 - Andras Lasso

(In r:1255|slicerrt:1255) re #453: Renamed MultidimData extension root directory

2013-11-04, 16:54:23 - Andras Lasso

Renamed MultiDimension extension to MultidimData

2013-11-04, 16:54:23 - Andras Lasso

Component: changed from “MultiDimension” to “MultidimData”

2014-01-16, 15:14:50 - Andras Lasso

status: changed from “New” to “Fixed”

#454 DVH metrics table columns say intensity even in case of valid input dose volume

2013-11-06, 22:36:03 - Csaba Pinter

(In r:1270|slicerrt:1270) Fixed #454: DVH metrics table column labels fixed

2013-11-06, 22:36:03 - Csaba Pinter

status: changed from “New” to “Fixed”

#455 Crash at start on Linux

2013-11-06, 15:13:59 - Csaba Pinter

@gregsharp Have you by any chance run SlicerRT on Linux that is newer than October 18? Probably revision 1227 introduced this crash, I’m just curious if you have met this issue.

2013-11-06, 15:13:59 - Csaba Pinter

status: changed from “New” to “Accepted”

2013-11-06, 16:39:00 - Csaba Pinter

(In r:1266|slicerrt:1266) Test #455: Attempt to fix linux startup crash

2013-11-06, 16:39:00 - Csaba Pinter

status: changed from “Accepted” to “Test”

2013-11-06, 17:05:48 - Csaba Pinter

status: changed from “Test” to “Fixed”

#456 Compute slice thickness from mandatory DICOM tags

Currently the optional SliceThickness (0018,0050) tag is used to get slice thickness from anatomical volumes for the ribbon width. However it is not always present and we also have seen incorrect values in it.

The correct approach would be to use ImagePositionPatient (0020,0032) and ImageOrientationPatient (0020,0037) tags to determine the actual slice thickness. In case the thickness is not constant, we can log a warning and use the thickness from suitably chosen slices.

There are implementations for this in Slicer’s scalar volume reader and also Plastimatch, maybe one can be used directly or parts of the code salvaged in SlicerRT

2013-12-09, 19:35:39 - Adam Rankin

assigned_to_id: changed from null to “rankin”

2013-12-09, 19:35:39 - Adam Rankin

status: changed from “New” to “Accepted”

2014-01-10, 21:01:40 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.13” to “SlicerRt 0.14”

2014-02-04, 00:02:59 - Adam Rankin

re #456 WIP slice thickness calculation extended to support IPP and IO calculation of slice thickness if tag is missing from DICOM files

Rt import now calling GetDistanceBetweenContourPlanes instead of GetSliceThickness for slice thickness. This calculation has been extended to calculate the distance between each plane of the first contour in the structure set.

Possible todo: test later contours if first contour does not calculate a correct slice thickness Commit: r:1487|slicerrt:1487

2014-02-04, 02:54:00 - Andras Lasso

Note that even the slice thickness tag existed, it cannot be trusted. Read the whole slice thickness story at http://dclunie.blogspot.ca/2013/10/how-thick-am-i-sad-story-of-lonely-slice.html

2014-02-05, 21:25:48 - Adam Rankin

re #456 restoring stomped changes during resolve

Commit: r:1492 slicerrt:1492

2014-02-05, 21:27:44 - Csaba Pinter

Thanks! There was one more database cleaning fix you reverted, please add it back too.

2014-02-05, 21:58:03 - Adam Rankin

re #456 restoring stomped changes during resolve (part 2) Commit: r:1493|slicerrt:1493

2014-02-05, 22:05:20 - Csaba Pinter

Thanks!

2014-02-06, 16:50:22 - Csaba Pinter

I updated the code and loaded the prostate phantom dataset. It seems that the thickness is not correctly applied (or computed, I don’t know) on the contour. It is possible that it’s just a ‘diameter-radius’ kind of error. See screenshot.

2014-02-06, 16:50:31 - Csaba Pinter

image:dj0NdAJ04r44kZacwqjQYw

2014-02-06, 16:50:31 - Csaba Pinter

Attachment added: “20140206_ContourThicknessBug.png”

2014-02-07, 19:17:43 - Adam Rankin

test #456 Ordering sop instance UID to correctly determine slice thickness

checking all contours in distance between contours, now only need 1 valid contour to determine distance

verifying points in contour are not co-linear to increase chance of finding a normal. Commit: r:1499|slicerrt:1499

2014-02-07, 19:17:43 - Adam Rankin

status: changed from “Accepted” to “Test”

2014-02-10, 18:52:33 - Adam Rankin

test #456 removing dead call to get slice thickness, was for testing only Commit: r:1500|slicerrt:1500

2014-02-18, 15:39:50 - Adam Rankin

test #456 extracted utility function to sort a series of planes based on the normal. will fail if normals are not all the same Commit: r:1516|slicerrt:1516

2014-02-18, 18:22:39 - Adam Rankin

test #456 re-wrote utility function and added member to mrml contour node to access ordered plane details on request Commit: r:1517|slicerrt:1517

2014-02-18, 19:55:16 - Adam Rankin

test #456 changing types to help sort out the linux build Commit: r:1519|slicerrt:1519

2014-02-18, 20:11:52 - Adam Rankin

re #456 added more commenting to describe functionality, reformatted for doxygen system Commit: r:1520|slicerrt:1520

2014-02-21, 17:26:53 - Adam Rankin

re #456 Adding vtkPlaneCollection accessor for easy python wrapping, yay vtk! Commit: r:1527|slicerrt:1527

2014-02-21, 17:44:20 - Adam Rankin

re #456 cleaning up python wrapping constness, adding comment details Commit: r:1528|slicerrt:1528

2014-02-21, 21:36:08 - Csaba Pinter

Re #456: Fixed build errors happening due to various reasons Commit: r:1531|slicerrt:1531

2014-02-25, 14:54:33 - Csaba Pinter

Re #456: Set the ordered contour planes to the contour object when created. Commit: r:1539|slicerrt:1539

2014-02-25, 16:37:00 - Adam Rankin

re #456 restoring stomped code, data is checked before adding it to the contour node

improving flexibility of sorting function, now normals can be inverted in direction, but must still be collinear. Distance is reported along the normal of the first plane.

Added increased error reporting for better tracking of issues. Commit: r:1540|slicerrt:1540

2014-02-27, 17:56:49 - Csaba Pinter

status: changed from “Test” to “Fixed”

#457 Crash when RT plan file does not contain beam data

2013-11-10, 23:19:53 - Csaba Pinter

(In r:1277|slicerrt:1277) Re #457: Crash fixed when RT plan contains no beams; Use default 0.0001 dose grid scaling if tag is missing

2013-11-10, 23:20:05 - Csaba Pinter

status: changed from “New” to “Fixed”

#458 Matlab function execution failure is reported if the function prints output

If the Matlab function prints some output then the response is not simply ‘OK’ and MatlabCommander interprets it as an execution error. MatlabCommander should only report error if the response starts with ‘ERROR:’

2013-11-18, 18:52:17 - Andras Lasso

(In r:1285|slicerrt:1285) test #458: MatlabCommander only returns failure if the response starts with ERROR

2013-11-18, 18:52:17 - Andras Lasso

status: changed from “New” to “Test”

2013-12-15, 15:25:43 - Andras Lasso

status: changed from “Test” to “Fixed”

#459 Review gel dosimetry slicelet UI steps

The gel dosimetry slicelet steps are not arranged logically, for example:

When the slicelet is functional, it would be nice to sit down with Kevin and re-arrange these steps logically

2013-11-22, 15:45:11 - Csaba Pinter

milestone_id: changed from “GelDosimetry 0.1” to “GelDosimetry 0.2”

2014-01-22, 17:29:19 - Csaba Pinter

milestone_id: changed from “GelDosimetry 0.2” to “GelDosimetry 0.1”

2014-01-30, 19:17:15 - Csaba Pinter

status: changed from “New” to “Invalid”

#460 Better support execution of MatlabBridge modules on computers without Matlab license

The Matlab compiler allows building of an executable that can run Matlab modules (it just has to contain the commandserver .m files and all the custom algorithm .m files). A helper tool could be developed to make the MCR package generation completely automatic. Some changes would be needed in the MatlabCommander to support using multiple different MCR packages at the same (each package should run and communicate independently on different IP ports).

#461 Create GelDosimetry extension

Create Slicer extension from the slicelet

2013-11-22, 16:24:08 - Csaba Pinter

(In r:1297|slicerrt:1297) Re #461: Moved gel dosimetry analysis slicelet code into the trunk root, as it is becoming an extension

2013-11-22, 18:19:07 - Csaba Pinter

(In r:1298|slicerrt:1298) Re #461: Moved gel dosimetry analysis in an src directory; Added logo

2013-11-22, 18:34:14 - Csaba Pinter

(In r:1299|slicerrt:1299) Re #461: Minor fixes (found during development of the gel dosimetry slicelet)

2013-11-22, 19:30:28 - Csaba Pinter

(In r:1300|slicerrt:1300) Re #461: Creating extension structure for gel dosimetry analysis; Added skeleton of ApplyPolynomialFunctionOnVolumeAlgo, which will perform the dose calibration.

2013-11-23, 21:35:41 - Csaba Pinter

(In r:1302|slicerrt:1302) Re #463 #461: Calibration algorithm created and works properly. GelDosimetryAnalysisLib project added to contain gel dosimetry logic script and calibration algorithm. NOTE: The GelDosimetryAnalysisLib C++ classes are not loaded into Slicer even if the qt-loadable-modules directory is added to the additional module paths, unless the contents of that directory is copied into the Slicer build tree!

2013-11-23, 22:04:21 - Csaba Pinter

status: changed from “New” to “Accepted”

2013-11-25, 18:50:55 - Csaba Pinter

(In r:1304|slicerrt:1304) Re #461: Created GelDosimetryAnalysisAlgo C++ loadable module to provide a logic class for the GelDosimetryAnalysis slicelet that can apply the computed polynomial on a volume. NOTE: The module named GelDosimetryAnalysisLib could not be loaded at the same time as the GelDosimetryAnalysis, because there is some magic in the Slicer CMake scripts that renames modules ending with ‘Lib’ not to contain it (maybe because of EditorLib?). The bottom line is that I needed to rename it to GelDosimetryAnalysisAlgo

2013-11-25, 19:05:35 - Csaba Pinter

(In r:1305|slicerrt:1305) Re #461: Moved GelDosimetryAnalysisLogic.py from GelDosimetryAnalysisAlgo to GelDosimetryAnalysis/GelDosimetryAnalysisLogic; This way the python files are in the same project and Slicer logs no python errors due to the fact that the non-module GelDosimetryAnalysisLogic class is in the scripted module directory root, because it has its own directory within, similarly to DICOMLib and EditorLib

2013-11-25, 23:31:39 - Csaba Pinter

(In r:1309|slicerrt:1309) Test #461: Updated documentation and images for gel dosimetry slicelet

2013-11-25, 23:31:39 - Csaba Pinter

status: changed from “Accepted” to “Test”

2013-11-28, 16:38:43 - Csaba Pinter

status: changed from “Test” to “Fixed”

#462 Only load Slicer modules needed for the gel dosimetry workflow

Don’t load the many core modules that are not used for the gel dosimetry analysis. Modules to keep:

2014-02-03, 15:14:20 - Csaba Pinter

milestone_id: changed from “GelDosimetry 0.2” to “GelDosimetry 0.3”

2014-12-12, 22:04:06 - Csaba Pinter

Pushed back to GelDosimetry 0.4

2014-12-12, 22:04:06 - Csaba Pinter

milestone_id: changed from “GelDosimetry 0.3” to “GelDosimetry 0.4”

#463 Implement dose calibration

Apply the fitted polynomial on the measured volume. The main bottleneck is speed, python is really slow at iterating through volumes.

2013-11-22, 16:20:31 - Csaba Pinter

(In r:1296|slicerrt:1296) Re #463: WIP Implemented calibration of measured dose in python, but very slow

2013-11-23, 21:35:41 - Csaba Pinter

(In r:1302|slicerrt:1302) Re #463 #461: Calibration algorithm created and works properly. GelDosimetryAnalysisLib project added to contain gel dosimetry logic script and calibration algorithm. NOTE: The GelDosimetryAnalysisLib C++ classes are not loaded into Slicer even if the qt-loadable-modules directory is added to the additional module paths, unless the contents of that directory is copied into the Slicer build tree!

2013-11-23, 22:04:24 - Csaba Pinter

status: changed from “New” to “Accepted”

2013-11-23, 22:09:57 - Csaba Pinter

(In r:1303|slicerrt:1303) Re #463 #437: New calibration algorithm is called from the gel dosimetry logic; OD vs dose curve are now plotted with circles

2013-11-25, 19:48:43 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

#464 Make Matlab module debugging easier

Have an option in the Matlab commander to start a full-GUI matlab and add a breakpoint in the called function

#465 Remove IJKtoRAS atrribute from Matlab image metadata

When an image is loaded using the MatlabBridge, currently IJKtoRAS information is stored in two places:

The field in img.metaData is not used, just left there, so remove it, and just keep the img.ijkToLpsTransform (and make sure the field is created in the written file)

Maybe also add an example describing how to get the spacing from the img.ijkToLpsTransform (and a note that directions shall not be ignored and add an example for getting LPS from IJK and IJK from LPS).

#466 Create gel dosimetry self test that downloads the input data

Currently there is no proper self-test, but two methods, one which preforms the workflow using locally available data.

A proper self-test needs to be implemented, based on these basic test functions. The test data needs to be downloaded (there are already some datasets in the DataStore). Test parameters can be saved in a simple file that is attached to the tests and the variables read from them (e.g. CSV containing variable name, value pairs that is parsed).

Things to check besides the obvious:

2014-08-06, 15:13:57 - Csaba Pinter

milestone_id: changed from “GelDosimetry 0.2” to “GelDosimetry 0.3”

2014-12-12, 22:03:38 - Csaba Pinter

description: changed from “Currently there is no prope…” to “Currently there is no prope…”

2014-12-12, 22:04:07 - Csaba Pinter

Pushed back to GelDosimetry 0.4

2014-12-12, 22:04:07 - Csaba Pinter

milestone_id: changed from “GelDosimetry 0.3” to “GelDosimetry 0.4”

2016-01-15, 19:36:24 - Csaba Pinter

description: changed from “Currently there is no prope…” to “Currently there is no prope…”

2016-03-10, 19:34:31 - Csaba Pinter

Re #466: Updated gel dosimetry test (still hard-coded) to work with latest Slicer Commit: r:2716|slicerrt:2716

#467 Implement dose comparison step

2013-11-25, 21:05:18 - Csaba Pinter

status: changed from “New” to “Accepted”

2013-11-25, 22:07:32 - Csaba Pinter

(In r:1308|slicerrt:1308) Test #467: Gamma dose comparison step added to gel dosimetry analysis slicelet

2013-11-25, 22:07:32 - Csaba Pinter

status: changed from “Accepted” to “Test”

2014-01-22, 17:20:56 - Csaba Pinter

description: changed from “” to “* Add step for gamma comput…”

2014-01-22, 17:20:56 - Csaba Pinter

status: changed from “Test” to “New”

2014-01-22, 17:25:25 - Csaba Pinter

description: changed from “* Add step for gamma comput…” to “* Add step for gamma comput…”

2014-01-26, 19:58:18 - Csaba Pinter

(In r:1464|slicerrt:1464) Re #467: Add option of using mask contour to dose comparison logic

2014-01-26, 20:00:52 - Csaba Pinter

(In r:1465|slicerrt:1465) Re #467: Use mask contour for gamma comparison in gel dosimetry slicelet

2014-01-26, 20:01:49 - Csaba Pinter

description: changed from “* Add step for gamma comput…” to “* Add step for gamma comput…”

2014-01-26, 20:04:08 - Csaba Pinter

(In r:1466|slicerrt:1466) Re #467: Bump Plastimatch version to enable usage of mask contour in gamma dose comparison

2014-01-26, 21:36:04 - Csaba Pinter

(In r:1467|slicerrt:1467) Re #467: Added mask contour option to dose comparison module

2014-01-26, 21:40:02 - Csaba Pinter

status: changed from “New” to “Test”

2014-01-27, 03:37:04 - Csaba Pinter

Implementing scalar bar is postponed to next release (not crucial at the moment). See #542

2014-01-30, 19:16:12 - Csaba Pinter

status: changed from “Test” to “Fixed”

#468 Enable gel dosimetry slicelet to start without the main Slicer window

Create .bat and .sh files that start slicer without the main GUI and show the slicelet

Add button on the UI for showing Slicer main window.

2014-02-03, 15:14:20 - Csaba Pinter

milestone_id: changed from “GelDosimetry 0.2” to “GelDosimetry 0.3”

2014-12-12, 22:04:07 - Csaba Pinter

Pushed back to GelDosimetry 0.4

2014-12-12, 22:04:07 - Csaba Pinter

milestone_id: changed from “GelDosimetry 0.3” to “GelDosimetry 0.4”

2015-08-14, 22:20:58 - Csaba Pinter

description: changed from “Create .bat and .sh files t…” to “Create .bat and .sh files t…”

#469 Implement plastimatch as pluggable registration module

This ticket tracks changes made for implementing plastimatch using Slicer’s new pluggable registration module.

2013-11-28, 18:54:10 - Greg Sharp

summary: changed from “Implement plastimatch as loadable registration module” to “Implement plastimatch as pluggable registration module”

2013-11-30, 01:46:21 - Greg Sharp

milestone_id: changed from null to “SlicerRt 0.13”

2013-11-30, 01:46:27 - Greg Sharp

milestone_id: changed from “SlicerRt 0.13” to “SlicerRt 1.0”

2013-11-30, 01:46:32 - Greg Sharp

status: changed from “New” to “Accepted”

2013-12-02, 01:38:40 - Greg Sharp

(In r:1313|slicerrt:1313) Re #469 Initial non-working version of pluggable registration module

2013-12-02, 01:39:21 - Greg Sharp

(In r:1314|slicerrt:1314) Re #469 Fix incorrect filename

2013-12-02, 03:49:46 - Csaba Pinter

This is great that you are working on this! Let me know if I can help.

2013-12-05, 21:40:44 - Greg Sharp

(In r:1327|slicerrt:1327) Re #469 Update create() function to get function pointer from framework

2013-12-09, 17:57:48 - Greg Sharp

(In r:1340|slicerrt:1340) Re #469 Conform to LandmarkRegistration calling convention for registration state

2013-12-09, 18:00:01 - Greg Sharp

(In r:1341|slicerrt:1341) Re #469 Small residual bug in changing calling convention

2013-12-22, 22:59:23 - Greg Sharp

(In r:1357|slicerrt:1357) Re #469 Bump plastimatch version number and fix wrapper to adjust to change in API

2014-01-07, 09:11:18 - Greg Sharp

(In r:1378|slicerrt:1378) Re #469 Fix bug where plastimatch GUI wasnt being shown

2014-01-11, 11:27:56 - Greg Sharp

(In r:1403|slicerrt:1403) Re #469 intermediate commit with GUI improvements and proper hookup to plastimatch library through wrapper

2014-01-11, 12:23:59 - Greg Sharp

(In r:1404|slicerrt:1404) Re #469 fix a memory leak

2014-01-12, 23:31:46 - Greg Sharp

(In r:1408|slicerrt:1408) Re #469 Upgrade source code to match new method of representing plastimatch Xform objects

2014-02-26, 17:02:59 - Greg Sharp

Re #469 Make plastimatch pluggable registration run correctly again Commit: r:1543|slicerrt:1543

2014-02-26, 20:22:16 - Greg Sharp

Re #469 Warped images now correctly transferred to Slicer Commit: r:1544|slicerrt:1544

2014-03-06, 22:13:27 - Greg Sharp

Re #469 First mostly-working version Commit: r:1556|slicerrt:1556

2014-03-06, 22:58:55 - Greg Sharp

Re #469 Add workaround for UI refresh problem Commit: r:1558|slicerrt:1558

2014-03-11, 18:37:35 - Greg Sharp

Re #469 First working version of landmark registration that can create a MRML vector field Commit: r:1569|slicerrt:1569

2014-04-07, 21:18:39 - Greg Sharp

@pinter As we discussed, I will like to release this in 0.14.

2014-04-07, 21:18:39 - Greg Sharp

milestone_id: changed from “SlicerRt 1.0” to “SlicerRt 0.14”

2014-04-13, 18:44:20 - Greg Sharp

Test #469 Add pluggable plastimatch registration module into stable release Commit: r:1642|slicerrt:1642

2014-04-13, 18:44:20 - Greg Sharp

status: changed from “Accepted” to “Test”

2014-04-13, 19:13:33 - Greg Sharp

Test #469 Fix incorrect project name, which caused build problem Commit: r:1643|slicerrt:1643

2014-04-13, 21:39:16 - Csaba Pinter

@gregsharpNot sure if this is known or anticipated, but a test fails with the new module:

C:\devel\SlicerRT_D64-bin\inner-build>ctest -C Debug -R py_nomainwindow_qSlicerPlmRegisterModuleGenericTest -V UpdateCTestConfiguration from :C:/devel/SlicerRT_D64-bin/inner-build/DartConfiguration.tcl Parse Config file:C:/devel/SlicerRT_D64-bin/inner-build/DartConfiguration.tcl UpdateCTestConfiguration from :C:/devel/SlicerRT_D64-bin/inner-build/DartConfiguration.tcl Parse Config file:C:/devel/SlicerRT_D64-bin/inner-build/DartConfiguration.tcl Test project C:/devel/SlicerRT_D64-bin/inner-build Constructing a list of tests Done constructing a list of tests Checking test dependency graph… Checking test dependency graph end test 56 Start 56: py_nomainwindow_qSlicerPlmRegisterModuleGenericTest

56: Test command: C:\devel\Slicer4_D64-bin\Slicer-build\Slicer.exe ‘–no-splash’ ‘–testing’ ‘–ignore-slicerrc’ ‘–launcher-additional-settings’ ‘C:/devel/SlicerRT_D64- bin/inner-build/AdditionalLauncherSettings.ini’ ‘–python-code’ ‘import slicer.testing; slicer.testing.runUnitTest([‘C:/devel/SlicerRT_D64-bin/inner-build/PlmRegister’, ‘C:/devel/SlicerRT/PlmRegister’], ‘qSlicerPlmRegisterModuleGenericTest’)’ ‘–no-main-window’ ‘–disable-cli-modules’ ‘–disable-loadable-modules’ ‘–additional-module-pa th’ ‘C:/devel/SlicerRT_D64-bin/inner-build/lib/Slicer-4.3/qt-scripted-modules’ 56: Test timeout computed to be: 1500 56: Warning, the module ‘PlmRegister’ has no widget representation 56: Warning, the module ‘PlmRegister’ has no widget representation 56: ——————————————- 56: path: [‘C:/devel/SlicerRT_D64-bin/inner-build/PlmRegister’, ‘C:/devel/SlicerRT/PlmRegister’] 56: testname: qSlicerPlmRegisterModuleGenericTest 56: ——————————————- 56: test_acknowledgementText (qSlicerPlmRegisterModuleGenericTest.qSlicerPlmRegisterModuleGenericTest) … ok 56: test_application (qSlicerPlmRegisterModuleGenericTest.qSlicerPlmRegisterModuleGenericTest) … ok 56: test_categories (qSlicerPlmRegisterModuleGenericTest.qSlicerPlmRegisterModuleGenericTest) … ok 56: test_contributors (qSlicerPlmRegisterModuleGenericTest.qSlicerPlmRegisterModuleGenericTest) … ok 56: test_logic (qSlicerPlmRegisterModuleGenericTest.qSlicerPlmRegisterModuleGenericTest) … ok 56: test_module_valid (qSlicerPlmRegisterModuleGenericTest.qSlicerPlmRegisterModuleGenericTest) … ok 56: test_setCurrentModule (qSlicerPlmRegisterModuleGenericTest.qSlicerPlmRegisterModuleGenericTest) … ok 56: test_setMRMLScene (qSlicerPlmRegisterModuleGenericTest.qSlicerPlmRegisterModuleGenericTest) … ok 56: test_settings (qSlicerPlmRegisterModuleGenericTest.qSlicerPlmRegisterModuleGenericTest) … ok 56: test_widgetRepresentation (qSlicerPlmRegisterModuleGenericTest.qSlicerPlmRegisterModuleGenericTest) … Finished sourcing PlmRegister.py 56: RuntimeError: qSlicerScriptedLoadableModuleWidget::setPythonSource - Failed to load scripted pythonqt module class definition PlmRegisterWidget from C:/devel/SlicerR T_D64-bin/inner-build/lib/Slicer-4.3/qt-scripted-modules/PlmRegister.py 56: Finished sourcing PlmRegister.py 56: RuntimeError: qSlicerScriptedLoadableModuleWidget::setPythonSource - Failed to load scripted pythonqt module class definition PlmRegisterWidget from C:/devel/SlicerR T_D64-bin/inner-build/lib/Slicer-4.3/qt-scripted-modules/PlmRegister.py 56: ok 56: 56: ———————————————————————- 56: Ran 10 tests in 0.048s 56: 56: OK 1/1 Test #56: py_nomainwindow_qSlicerPlmRegisterModuleGenericTest …***Failed 2.13 sec

0% tests passed, 1 tests failed out of 1

Total Test time (real) = 2.23 sec

The following tests FAILED: 56 - py_nomainwindow_qSlicerPlmRegisterModuleGenericTest (Failed) Errors while running CTest

2014-07-12, 17:01:22 - Csaba Pinter

Closing this ticket before release, assuming that the lack of error reports since setting the status to Test means that there are no errors. In case of errors a new ticket should be opened and related to this one.

2014-07-12, 17:01:22 - Csaba Pinter

status: changed from “Test” to “Fixed”

#470 Automatically find a good window/level for the optical CT volumes

When the optical CT volumes (from the VFF files) are loaded, the window/level settings are far from ideal, homogeneous gray values can be seen. It would be better to automatically assign good W/L settings:

2014-08-06, 14:32:02 - Kyle Sunderland

status: changed from “New” to “Accepted”

2014-08-06, 14:32:16 - Kyle Sunderland

assigned_to_id: changed from null to “Sunderlandkyl”

2014-08-06, 18:18:30 - Csaba Pinter

Please use the two CT volumes in this dataset for testing the window/level finder algorithm https://subversion.assembla.com/svn/slicerrt/trunk/SlicerRt/data/gel-dosimetry-01

2014-08-07, 19:52:02 - Kyle Sunderland

Re #470 Created basis for AutoWindowLevel module. Commit: r:1926|slicerrt:1926

2014-08-07, 19:57:08 - Csaba Pinter

Great, thanks!

2014-08-15, 18:19:05 - Kyle Sunderland

Re #470 Added current working method for setting window/level, (windowLevel6) as well as previous unsuccessful versions. Commit: r:1931|slicerrt:1931

2014-08-16, 00:52:20 - Csaba Pinter

Please rename the functions so that they reflect their methods. Thanks!

2014-08-18, 19:02:33 - Kyle Sunderland

Re #470 Tidy up code and remove unnecessary functions. Commit: r:1932|slicerrt:1932

2014-08-20, 17:28:16 - Kyle Sunderland

Re #470 Set minimum window size. Removed testing output. Commit: r:1934|slicerrt:1934

2014-08-22, 16:06:32 - Csaba Pinter

assigned_to_id: changed from “Sunderlandkyl” to “pinter”

2014-08-22, 18:16:34 - Csaba Pinter

Fixed #470: New auto window level algorithm integrated into SlicerRT (in the SlicerRtCommon project) to be used in gel dosimetry for determining W/L for optical CT values, where the regular auto window level algorithm fails (it can be found in vtkMRMLScalarVolumeDisplayNode::CalculateAutoLevels and it uses vtkImageBimodalAnalysis also in MRML core) Commit: r:1940|slicerrt:1940

2014-08-22, 18:16:34 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

2014-08-22, 18:17:48 - Csaba Pinter

Fixed #470: New auto window level algorithm is used in gel dosimetry when loading optical CT volumes Commit: r:1941|slicerrt:1941

#471 Implement complete testing of GelDosimetry using any input data

Although there are test functions, they are in a temporary place and the input data details are hard-coded. A proper self-test should be implemented:

Also fix the failing generic tests

2014-02-03, 15:14:20 - Csaba Pinter

milestone_id: changed from “GelDosimetry 0.2” to “GelDosimetry 0.3”

2014-12-12, 22:01:30 - Csaba Pinter

This will be handled in #466

2014-12-12, 22:01:30 - Csaba Pinter

status: changed from “New” to “Invalid”

#472 DICOM Spatial Registration Object Export

This ticket tracks development toward export of a DICOM Spatial registration object.

2013-11-30, 01:49:40 - Greg Sharp

(In r:1311|slicerrt:1311) Re #472 Initial implementation of user interface for DICOM SRO Export

2013-12-01, 20:26:09 - Greg Sharp

(In r:1312|slicerrt:1312) Re #472 Small update for setting default directories on widgets

2013-12-11, 23:45:06 - Greg Sharp

(In r:1349|slicerrt:1349) Re #472 Add C++ class which can be called from python to generate DICOM Spatial Registration

2013-12-12, 22:12:30 - Csaba Pinter

Hi Greg,

I have a few comments on the last commit you made. The way the code is organized in PlastimatchPy/Logic is not consistent: there are two logic classes, one with a name matching the host module (vtkSlicerPlastimatchPyModuleLogic), and another completely different (plmpyDicomSroExport), while exercising well-defined functionality.

As PlastimatchPy is not intended for a specific purpose, rather a wrapper for python, and has no GUI, I think the best solution would be to have two classes in the Logic:

Both classes should be direct subclasses of vtkObject or a VTK core class that fits its purpose best (for example if it would be some image operation, the base class should be vtkImageToImageFilter). It may be needed to add an empty vtkSlicerPlastimatchPyModuleLogic class that is a proper Qt module logic class, just doing nothing (only if the SlicerMacroBuildModuleLogic needs it to be present, or there isn’t another vtk cmake macro to build only the wrapper classes)

2013-12-30, 00:48:05 - Csaba Pinter

milestone_id: changed from “SlicerRt 1.0” to “SlicerRt 0.14”

2014-01-07, 09:13:37 - Greg Sharp

(In r:1379|slicerrt:1379) Re #472 Fix a really annoying python wrapping problem; it seems the class name must begin with ‘vtk’ or else superclass methods are not generated

2014-01-07, 16:56:20 - Greg Sharp

(In r:1381|slicerrt:1381) Re #472 Fix build error caused by previous commit

2014-01-08, 23:21:55 - Greg Sharp

(In r:1390|slicerrt:1390) Re #472 First potentially working version of DICOM SRO export

2014-01-10, 19:14:16 - Greg Sharp

(In r:1400|slicerrt:1400) Re #472 Allow SRO Export script to be copied to output directory

2014-01-28, 16:31:08 - wangk

(In r:1470|slicerrt:1470) Re #472: Added RAS to DICOM LPS coordinate system conversion. Fixed parameter output order so the rotation and offset are export properly.

2014-02-20, 18:00:12 - wangk

status: changed from “New” to “Test”

2014-02-20, 18:00:49 - wangk

Re #472: Code clean up. Commit: r:1524|slicerrt:1524

2014-03-05, 17:52:10 - Greg Sharp

Re #472 Cosmetic improvements to DICOM SRO export UI Commit: r:1551|slicerrt:1551

2014-03-05, 19:16:07 - Greg Sharp

Re #472 Fix bug which caused incorrect DICOM SRO Export to MIM Commit: r:1552|slicerrt:1552

2014-04-07, 18:53:55 - Csaba Pinter

@gregsharp Is this considered done? If so, and if it is tested (the exported dataset successfully loaded in 3rd party sw), then it can be closed. Thanks!

2014-04-07, 19:40:46 - Greg Sharp

Not done. Doesn’t work.

The problem is that the MRML -> ITK converter changes the geometry of the image to include the registration. Therefore the exported image already contains the transform described by the REG object.

We already agreed on a fix, which is adding a parameter for converting without including transform.
But I didn’t do it yet. Let me take a crack at it now.

2014-04-07, 19:40:46 - Greg Sharp

status: changed from “Test” to “Accepted”

2014-04-07, 21:07:39 - Greg Sharp

Fixed #472 Add parameter to make world transform optional when converting an image from MRML to ITK Commit: r:1621|slicerrt:1621

2014-04-07, 21:07:39 - Greg Sharp

status: changed from “Accepted” to “Fixed”

2014-04-07, 21:12:30 - Csaba Pinter

Lightning-fast! Thanks!

2014-04-13, 18:27:20 - Greg Sharp

Re #472: Move SRO export module to stable Commit: r:1641|slicerrt:1641

#473 Nodes sometimes disappear after drag&drop in Patient Hierarchy

When a node is dropped to an unexpected place in the Patient Hierarchy, it sometimes disappear. The nodes re-appear if the user exits and re-enters the module.

2013-12-30, 02:24:47 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2014-01-03, 03:24:54 - Csaba Pinter

(In r:1376|slicerrt:1376) Fixed #473: Model is forced to update its scene after dropping a node (invalidate on the sort filter does not work on the SH model, unlike the potential list model)

2014-01-03, 03:24:54 - Csaba Pinter

status: changed from “New” to “Fixed”

#474 DICOM loading hangs if trying to load the same volume twice

Slicer error log:

Traceback (most recent call last): File ‘C:\Program Files\Slicer 4.3.1-2013-11-29\lib\Slicer-4.3\qt-scripted-modules\DICOMLib\DICOMWidgets.py’, line 354, in loadCheckedLoadables if not plugin.load(loadable): File ‘C:/Program Files/Slicer 4.3.1-2013-11-29/lib/Slicer-4.3/qt-scripted-modules/DICOMScalarVolumePlugin.py’, line 311, in load self.addSeriesInHierarchy(loadable,volumeNode) File ‘C:/Users/lasso/AppData/Roaming/NA-MIC/Extensions-22747/SlicerRT/lib/Slicer-4.3/qt-scripted-modules/DicomRtImportPlugin.py’, line 168, in addSeriesInHierarchy sys.stderr.write(‘Volume with the same UID has been already loaded!’) UnboundLocalError: local variable ‘sys’ referenced before assignment

2013-12-05, 14:21:53 - Csaba Pinter

Fixed in rev 1299

2013-12-05, 14:21:53 - Csaba Pinter

status: changed from “New” to “Invalid”

2013-12-05, 14:32:35 - Andras Lasso

OK, thanks!

2013-12-05, 15:04:41 - Csaba Pinter

(I’m not sure if this case is Invalid or Fixed. I set it to Invalid as at the time of reporting it has been fixde in the trunk)

#475 MatlabBridge / SlicerRT - Fix build error adding missing include

See http://slicer.cdash.org/viewBuildError.php?buildid=174366 and http://slicer.cdash.org/viewBuildError.php?buildid=174350

To learn more about the issue, see http://slicer-devel.65872.n3.nabble.com/Extension-If-creating-your-own-logic-in-C-consider-reading-this-tt4030436.html

2013-12-05, 15:43:51 - jchris

Same issue with TransformVisualizer See http://slicer.cdash.org/viewBuildError.php?buildid=174369

2013-12-05, 15:56:21 - jchris

Same issue with GelDosimetryAnalysis See http://slicer.cdash.org/viewBuildError.php?buildid=174342

2013-12-05, 16:25:17 - Csaba Pinter

Thanks, JC!

2013-12-05, 20:03:25 - Csaba Pinter

Mentioning the commits fixing the issue in the different extensions:

SlicerRT: https://www.assembla.com/code/slicerrt/subversion/commit/1321 https://www.assembla.com/code/slicerrt/subversion/commit/1326

GelDosimetry: https://www.assembla.com/code/slicerrt/subversion/commit/1324 https://www.assembla.com/code/slicerrt/subversion/commit/1325

2013-12-06, 15:52:49 - Andras Lasso

(In r:1329|slicerrt:1329) re #475: Added missing includes to MatlabBridge after Slicer core changes

2013-12-06, 15:52:49 - Andras Lasso

assigned_to_id: changed from null to “lassoan”

2013-12-06, 17:05:23 - Andras Lasso

(In r:1333|slicerrt:1333) re #475: Added missing includes to TransformVisualizer after Slicer core changes

2013-12-17, 18:49:37 - Csaba Pinter

All nightly builds succeed on the factory, so I’m closing this issue.

2013-12-17, 18:49:37 - Csaba Pinter

status: changed from “New” to “Fixed”

#476 3D grid visualization does not show a distorted grid

Colors are correct, but the grid is not distorted at all. With bspline transform. See the attached data sets.

2013-12-06, 16:29:58 - Andras Lasso

file:cLQg5SxPmr46HvacwqjQXA Sample bspline deformation data set

2013-12-06, 16:29:58 - Andras Lasso

Attachment added: “BSplineTransform.tfm”

2013-12-06, 16:30:17 - Andras Lasso

file:cW_Uk-xPmr44kkacwqjQWU Reference image for the attached transform

2013-12-06, 16:30:17 - Andras Lasso

Attachment added: “ReferenceImage.nrrd”

2013-12-09, 11:38:47 - Franklin King

status: changed from “New” to “Accepted”

2013-12-09, 11:38:50 - Franklin King

status: changed from “Accepted” to “Test”

2013-12-09, 11:40:05 - Franklin King

(In r:1335|slicerrt:1335) re #477: Block visualization should now generate at the correct location re #479: 2D grid now generated when requested re #476: 3D grid visualization with transform input should now correctly distort grid re #264: General renaming and cleanup in progress

2013-12-09, 18:06:45 - Andras Lasso

image:cP5934ypWr457cacwqjQYw

2013-12-09, 18:06:45 - Andras Lasso

Attachment added: “3dgrid.png”

2013-12-09, 18:07:57 - Andras Lasso

Still not correct, see the attached 3dgrid.png screenshot (input data also attached).

2013-12-09, 18:07:57 - Andras Lasso

status: changed from “Test” to “Accepted”

2013-12-10, 00:17:42 - Franklin King

(In r:1344|slicerrt:1344) Re #476: 3D Grids should now be correctly distorted for BSpline transform input (2D grids may still be incorrect)

2013-12-10, 00:18:46 - Franklin King

Issue had to do with not taking into account the nature of BSpline transforms. Still trying to figure out a similar issue with 2D Grid visualization though.

2013-12-14, 03:31:16 - Franklin King

(In r:1352|slicerrt:1352) Re #476: Corrected 2D grid visualization mode to show deformation, direction may still be incorrect Re #477: Corrected direction of deformation for block visualization mode

2013-12-15, 14:35:19 - Andras Lasso

Distortion is visible now. Any other potential errors will be recorded in separate tickets.

2013-12-15, 14:35:19 - Andras Lasso

status: changed from “Accepted” to “Fixed”

#477 Block visualization generates the block at incorrect location

see the transform & reference image at #476

2013-12-09, 11:39:20 - Franklin King

status: changed from “New” to “Accepted”

2013-12-09, 11:39:24 - Franklin King

status: changed from “Accepted” to “Test”

2013-12-09, 11:40:05 - Franklin King

(In r:1335|slicerrt:1335) re #477: Block visualization should now generate at the correct location re #479: 2D grid now generated when requested re #476: 3D grid visualization with transform input should now correctly distort grid re #264: General renaming and cleanup in progress

2013-12-14, 03:31:16 - Franklin King

(In r:1352|slicerrt:1352) Re #476: Corrected 2D grid visualization mode to show deformation, direction may still be incorrect Re #477: Corrected direction of deformation for block visualization mode

2013-12-15, 14:35:47 - Andras Lasso

Block is at correct location now.

2013-12-15, 14:35:47 - Andras Lasso

status: changed from “Test” to “Fixed”

#478 Contour visualization crashes

see the transform & reference image at #476

2013-12-10, 00:02:13 - Franklin King

(In r:1343|slicerrt:1343) Re #478: Contour visualization should no longer crash with transform input Re #479: 2D Grid should now not crash with transform input (deformation location may still be incorrect)

2013-12-10, 00:19:26 - Franklin King

status: changed from “New” to “Accepted”

2013-12-10, 00:19:29 - Franklin King

status: changed from “Accepted” to “Test”

2013-12-10, 00:21:27 - Franklin King

Tested on linear transforms, bspline transforms, and vector volumes.

2013-12-15, 14:02:46 - Andras Lasso

Component: changed from “SlicerRt modules” to “TransformVisualizer”

2013-12-15, 14:36:02 - Andras Lasso

Doesn’t crash anymore.

2013-12-15, 14:36:02 - Andras Lasso

status: changed from “Test” to “Fixed”

2013-12-15, 15:21:42 - Andras Lasso

(In r:1353|slicerrt:1353) re #478: Increased the TransformVisualizer version number to 0.2.0 before requesting extension index update

#479 3D grid is generated when 2D grid is requested

When Grid slice visualization is selected a 3D grid is generated (same as when the Grid visualization mode is selected).

see the transform & reference image at #476

2013-12-09, 11:39:11 - Franklin King

status: changed from “New” to “Fixed”

2013-12-09, 11:40:05 - Franklin King

(In r:1335|slicerrt:1335) re #477: Block visualization should now generate at the correct location re #479: 2D grid now generated when requested re #476: 3D grid visualization with transform input should now correctly distort grid re #264: General renaming and cleanup in progress

2013-12-09, 18:23:13 - Andras Lasso

Still crashes for me (see input data at #476):

Access violation while trying to write memory in void vtkSlicerTransformVisualizerLogic::GridSliceVisualization(vtkPolyData* output) line 874:

fieldPtr[(i + j(extent[1]+1) + k(extent[1]+1)(extent[3]+1))3 + 1] = movingPoint_RAS[1] - fixedPoint_RAS[1];

i=137, j=84, k=3 - so, writing fieldPtr[249891], fieldPtr[249892], fieldPtr[249893]

The issue might be that the scalar type of this volume is not a float and you write float *fieldPtr = (float *)field->GetScalarPointer() - but I think this part of the code is obsolete anyway.

2013-12-09, 18:23:13 - Andras Lasso

status: changed from “Fixed” to “Accepted”

2013-12-10, 00:02:13 - Franklin King

(In r:1343|slicerrt:1343) Re #478: Contour visualization should no longer crash with transform input Re #479: 2D Grid should now not crash with transform input (deformation location may still be incorrect)

2013-12-15, 14:36:33 - Andras Lasso

2D grid is generated now.

2013-12-15, 14:36:33 - Andras Lasso

status: changed from “Accepted” to “Fixed”

#480 Glyph slice number of glyphs should be defined per slice

Glyph slice number of glyphs should be defined per slice (and on each slice that number of glyphs should be displayed). The current maximum of 30000 is not enough for the total of all the slices - see the transform & reference image at #476.

2013-12-15, 14:02:46 - Andras Lasso

Component: changed from “SlicerRt modules” to “TransformVisualizer”

2013-12-15, 15:23:55 - Andras Lasso

There are many important fixes in TransformVisualizer 0.2.0 already, so submit it to the extension index and move all unresolved tickets to 0.3.0

2013-12-15, 15:23:55 - Andras Lasso

milestone_id: changed from “TransformVisualizer 0.2.0” to “TransformVisualizer 0.3.0”

2014-01-08, 06:56:05 - Andras Lasso

I ran into this problem again, please fix this!

2014-03-08, 09:16:00 - Franklin King

Re #488: Changed default levels to 1,2,3,4 Re #480: Increased max number of glyphs for Glyph Slice as a temporary measure Commit: r:1564|slicerrt:1564

2014-03-21, 16:05:29 - Andras Lasso

re #480: Fixed initialization of the slice selector (glyph slice visualization only worked after switching choosing a different slice viewer) Commit: r:1579|slicerrt:1579

2014-04-17, 16:52:35 - Andras Lasso

Fixed all known transform visualization issues and moved the functionality to the Slicer core (2014-04-17).

2014-04-17, 16:52:35 - Andras Lasso

status: changed from “New” to “Fixed”

#481 Deleting the contour from contours module does not remove the representations

Not sure if this is expected behaviour, if so, ignore.

When choosing delete contour from drop down in Contours module, the representation still exists. It is possible this is because my scene is missing some link.

2013-12-09, 14:47:18 - Csaba Pinter

Yes, the representations should be deleted too. Thanks for reporting this!

2013-12-09, 14:47:22 - Csaba Pinter

milestone_id: changed from null to “SlicerRt 0.13”

2013-12-09, 14:48:26 - Adam Rankin

assigned_to_id: changed from null to “rankin”

2013-12-09, 14:48:26 - Adam Rankin

status: changed from “New” to “Accepted”

2013-12-09, 19:30:34 - Adam Rankin

(In r:1342|slicerrt:1342) re #481 Now removing all representations when the contour is removed

TODO: remove any PH references to the deleted contour

2013-12-09, 19:34:58 - Adam Rankin

assigned_to_id: changed from “rankin” to “pinter”

2013-12-28, 21:45:34 - Csaba Pinter

(In r:1365|slicerrt:1365) Re #406: Renamed SH node flag OwnerPluginOverriddenByUser to OwnerPluginAutoSearch Fixed #481: Remove SH node of a deleted contour; Remove color table entry too Fixed #494: Leak in Dose Accumulation fixed (SH node is not created for output volume if already exists)

2013-12-28, 21:45:34 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

#482 Converting an empty ribbon model to labelmap produces a crash

I can easily put a guard up to resolve the crash, but should the result be an empty volume with meta-data (extent, origin, etc…) equal to the reference volume?

2013-12-09, 14:12:47 - Adam Rankin

Ah, this was a known use-case before my changes.. @pinter @lassoan What was the result of that use case before my changes?

2013-12-09, 14:27:33 - Adam Rankin

assigned_to_id: changed from null to “rankin”

2013-12-09, 14:27:33 - Adam Rankin

status: changed from “New” to “Accepted”

2013-12-09, 14:44:12 - Adam Rankin

(In r:1336|slicerrt:1336) fixed #482 Conversion to labelmap with empty data now works as expected

fixed #452 fixed #445 Conversion of ribbon to labelmap with normal use case tested as working

2013-12-09, 14:44:12 - Adam Rankin

status: changed from “Accepted” to “Fixed”

2013-12-09, 14:44:58 - Csaba Pinter

It should result in a volume that has the same properties as the reference, but all-0 voxels.

2013-12-09, 14:44:58 - Csaba Pinter

status: changed from “Fixed” to “Accepted”

2013-12-09, 14:45:06 - Csaba Pinter

milestone_id: changed from null to “SlicerRt 0.13”

2013-12-09, 14:57:28 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

#483 Devise a mechanism to recover from an accidentally deleted contour

Csaba mentioned that the undo button is not always reliable, so maybe we could come up with a way to safely retrieve a deleted contour.

Csaba: ‘what occurred to me is maybe storing the active representation in the contours logic, outside the scene and showing a by default hidden button in the contours module to re-create deleted contour from saved representation’

We could warn people when exiting that deleted contours still exist, and do they want to exit without recovering them?

2013-12-09, 14:55:21 - Adam Rankin

milestone_id: changed from null to “Future”

2014-01-22, 16:28:56 - Csaba Pinter

priority: changed from “Normal (3)” to “Low (4)”

2015-01-16, 04:58:04 - Csaba Pinter

status: changed from “New” to “Invalid”

#484 CMake warning for VffFileReader using CMake 2.8.12.1

It needs to be fixed (I don’t really understand it):

CMake Warning (dev) in VffFileReader/CMakeLists.txt: Policy CMP0022 is not set: INTERFACE_LINK_LIBRARIES defines the link interface. Run ‘cmake –help-policy CMP0022’ for policy details. Use the cmake_policy command to set the policy and suppress this warning. Target ‘qSlicerVffFileReaderModule’ has an INTERFACE_LINK_LIBRARIES property. This should be preferred as the source of the link interface for this library but because CMP0022 is not set CMake is ignoring the property and using the link implementation as the link interface instead. INTERFACE_LINK_LIBRARIES: qSlicerBaseQTApp;vtkSlicerVffFileReaderLogic;qSlicerVffFileReaderModule Link implementation: qSlicerBaseQTApp;vtkSlicerVffFileReaderLogic

2014-01-06, 23:07:10 - Csaba Pinter

The warning does not seem to appear any more (it was strange in the first place why there was a warning here and not other places, as the CMakeLists files use the same commands, there is no real difference in the VffFileReader one).

Update Slicer and see if the CTK CMake warnings go away.

2014-01-15, 20:02:57 - Csaba Pinter

(In r:1418|slicerrt:1418) Test #484: Attempt to fix CMake policy warning for VffFileReader (I still do not understand why it gives the warning, as it is the same as all the other modules, and INTERFACE_LINK_LIBRARIES is not used anywhere)

2014-01-15, 20:02:57 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2014-01-15, 20:02:57 - Csaba Pinter

status: changed from “New” to “Test”

2014-01-16, 23:04:17 - Csaba Pinter

status: changed from “Test” to “Fixed”

#485 Allow manual association of anatomical volume and contour

If the user loads a structure set without having an associated CT or MRI in the same study, then the (arbitrary) default slice thickness is used, thus the contour is unusable, as it will contain either gaps (Guangming) or overlaps (Jidney), which make proper conversion to labelmap impossible. It should be possible to associate a contour (or a whole structure set) with an anatomical volume.

Possible solution: Add this feature to the Subject Hierarchy RT plugin. When a contour is drag&dropped into a structure set under an anatomical volume (determined by modality), then take actions based on the active representation:

  1. If ribbon, then re-ribbonize from the contour point data using the slice thickness of the parent volume. Invalidate all other representations 2: If labelmap or closed surface model, then (decide one of the followings): A: Just invalidate the ribbon model if available B: Switch to ribbon model if available and perform step 1, otherwise 2A.

2013-12-30, 00:34:17 - Csaba Pinter

milestone_id: changed from “SlicerRt 1.0” to “SlicerRt 0.14”

2014-04-07, 20:44:48 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2014-04-07, 20:54:09 - Csaba Pinter

Now that the contour thickness is determined using the actual contour ROI point data (#456), manual association of contour and volume just in order to get a slice thickness to use for the ribbon model is not necessary any more.

Moreover the ribbon model representation will be phased out once #103 is integrated.

@rankin @lassoan Do you agree?

2014-04-07, 20:54:09 - Csaba Pinter

status: changed from “New” to “Invalid”

2014-04-08, 19:14:47 - Adam Rankin

Let it burrrrrrrrnnnnnn. (Yes)

#486 MatlabBridge fails to read char volumes

MatlabBridge fails to read char volumes as endianness is a required parameter. Make endianness optional (and don’t do endianness conversion if endianness attribute is missing)

2013-12-13, 15:09:14 - Andras Lasso

(In r:1350|slicerrt:1350) test #486: Made endianness attribute optional (if not specified then no endian conversion is performed)

2013-12-13, 15:09:14 - Andras Lasso

status: changed from “New” to “Test”

2013-12-29, 01:23:56 - Andras Lasso

status: changed from “Test” to “Fixed”

#487 Deformation direction is inverted

Deformation direction is inverted when using a bsplinetransform, see the attached image. Applicable for all transforms: Glyph, Grid, Block, Glyph Slice, Grid Slice. Transform & reference image available at #476.

Probably the correct solution would be to allow the user to choose the direction of the transform (moving->fixed or fixed->moving) and invert the transform if needed. Instead of actually inverting we may try to just invert the sign of the deformation vector and see how it looks.

Proper inversion:

2013-12-15, 14:08:06 - Andras Lasso

image:br6dYSzzir44kAacwqEsg8

2013-12-15, 14:08:06 - Andras Lasso

Attachment added: “2d-grid-inverted.png”

2013-12-15, 14:17:06 - Andras Lasso

description: changed from “when using a bsplinetransfo…” to “2D grid deformation directi…”

2013-12-15, 14:22:22 - Andras Lasso

description: changed from “2D grid deformation directi…” to “2D grid deformation directi…”

2013-12-15, 14:24:35 - Andras Lasso

description: changed from “2D grid deformation directi…” to “2D grid deformation directi…”

2013-12-15, 14:34:41 - Andras Lasso

summary: changed from “2D grid deformation direction is inverted” to “Deformation direction is inverted”

2013-12-15, 14:34:41 - Andras Lasso

description: changed from “2D grid deformation directi…” to “Deformation direction is in…”

2013-12-15, 15:23:55 - Andras Lasso

There are many important fixes in TransformVisualizer 0.2.0 already, so submit it to the extension index and move all unresolved tickets to 0.3.0

2013-12-15, 15:23:55 - Andras Lasso

milestone_id: changed from “TransformVisualizer 0.2.0” to “TransformVisualizer 0.3.0”

2013-12-16, 14:55:45 - Franklin King

status: changed from “New” to “Accepted”

2014-01-20, 22:00:25 - Csaba Pinter

Status set to New due to lack of activity

2014-01-20, 22:00:25 - Csaba Pinter

status: changed from “Accepted” to “New”

2014-04-17, 16:52:35 - Andras Lasso

Fixed all known transform visualization issues and moved the functionality to the Slicer core (2014-04-17).

2014-04-17, 16:52:35 - Andras Lasso

status: changed from “New” to “Fixed”

#488 Green contour level is missing

All green contours are missing. If I enter 1,2,3,4 for the values then they appear. For now at least the default levels should be set to 1,2,3,4, but the proper solution would be to synchronize the colormaps between different visualizations see #488.

Also, the ‘values’ label should be renamed to ‘Iso-surface values (mm)’.

2013-12-15, 15:12:01 - Andras Lasso

description: changed from “All green contours are miss…” to “All green contours are miss…”

2013-12-15, 15:23:55 - Andras Lasso

There are many important fixes in TransformVisualizer 0.2.0 already, so submit it to the extension index and move all unresolved tickets to 0.3.0

2013-12-15, 15:23:55 - Andras Lasso

milestone_id: changed from “TransformVisualizer 0.2.0” to “TransformVisualizer 0.3.0”

2014-03-08, 09:16:00 - Franklin King

Re #488: Changed default levels to 1,2,3,4 Re #480: Increased max number of glyphs for Glyph Slice as a temporary measure Commit: r:1564|slicerrt:1564

2014-04-17, 16:52:35 - Andras Lasso

Fixed all known transform visualization issues and moved the functionality to the Slicer core (2014-04-17).

2014-04-17, 16:52:35 - Andras Lasso

status: changed from “New” to “Fixed”

#489 Color mapping should be synchronized for all visualization modes

For the same location the color is very different in different visualization modes (e.g., contour and glyph slice). Have a common manual setting for the color mapping that is applied to all modes. It can be a simple textbox that accepts with 4 comma-separated values:

Displacement-color mapping: [1,2,3,5 ] mm -> negligible, low, medium, high

2013-12-15, 15:11:30 - Andras Lasso

Component: changed from “SlicerRt modules” to “TransformVisualizer”

2013-12-15, 15:11:30 - Andras Lasso

assigned_to_id: changed from null to “FranklinK”

2013-12-15, 15:11:30 - Andras Lasso

milestone_id: changed from null to “TransformVisualizer 0.1.0”

2013-12-15, 15:23:55 - Andras Lasso

There are many important fixes in TransformVisualizer 0.2.0 already, so submit it to the extension index and move all unresolved tickets to 0.3.0

2013-12-15, 15:23:55 - Andras Lasso

milestone_id: changed from “TransformVisualizer 0.2.0” to “TransformVisualizer 0.3.0”

2014-04-17, 16:52:35 - Andras Lasso

Fixed all known transform visualization issues and moved the functionality to the Slicer core (2014-04-17).

2014-04-17, 16:52:35 - Andras Lasso

status: changed from “New” to “Fixed”

#490 Glyph threshold range is ignored when input is a deformation field

Glyph threshold range is ignored when input is a deformation field: all vectors are displayed, regardless of their magnitude

2013-12-16, 14:55:51 - Franklin King

status: changed from “New” to “Accepted”

2014-01-20, 22:00:25 - Csaba Pinter

Status set to New due to lack of activity

2014-01-20, 22:00:25 - Csaba Pinter

status: changed from “Accepted” to “New”

2014-04-17, 16:52:35 - Andras Lasso

Fixed all known transform visualization issues and moved the functionality to the Slicer core (2014-04-17).

2014-04-17, 16:52:35 - Andras Lasso

status: changed from “New” to “Fixed”

#491 Creating a block visualization is extremely slow

Creating a block visualization is extremely slow, regardless if the input is a displacement field or a simple linear transform. The model generation should be immediate, but instead it takes 10-20 seconds.

2013-12-16, 05:11:49 - Andras Lasso

summary: changed from “Creating a block visualization is extremely slow if the input is a displacement field” to “Creating a block visualization is extremely slow”

2013-12-16, 05:11:49 - Andras Lasso

description: changed from “compared to when the input …” to “Creating a block visualizat…”

2014-04-17, 16:52:35 - Andras Lasso

Fixed all known transform visualization issues and moved the functionality to the Slicer core (2014-04-17).

2014-04-17, 16:52:35 - Andras Lasso

status: changed from “New” to “Fixed”

#492 Glyph maximum radius values should have a larger range

Glyph maximum radius values should have a larger range, because sometimes with 1.0 radius they are still to thin (and if I increase the scaling factor then they become too long). Probably 5-10 would be enough.

2013-12-16, 14:56:30 - Franklin King

status: changed from “New” to “Accepted”

2014-01-20, 22:00:26 - Csaba Pinter

Status set to New due to lack of activity

2014-01-20, 22:00:26 - Csaba Pinter

status: changed from “Accepted” to “New”

2014-02-24, 11:32:11 - Franklin King

re #492: Increase maximum arrow tip radius from 1 to 5 for glyph mode re #493: Fixed one of several issues regarding grid visualization location; certain linear and bspline transforms may still exhibit odd behaviour Commit: r:1535|slicerrt:1535

2014-02-24, 18:05:27 - Franklin King

status: changed from “New” to “Accepted”

2014-02-24, 18:05:37 - Franklin King

status: changed from “Accepted” to “Fixed”

#493 Grid, block, grid slice generated in incorrect locations

Grid, block, grid slice generated in incorrect locations when input is a displacement field (looks like mirrored or something). Other modes (glpyh, contour, glyph slice) look fine. Reproducible with: http://sdrv.ms/Jx4j25

They are generated at various incorrect locations with a simple linear transform, too. Reproducible with using the MRHead data as reference volume.

2013-12-16, 05:17:10 - Andras Lasso

summary: changed from “Grid, block, grid slice generated in incorrect locations when input is a displacement field” to “Grid, block, grid slice generated in incorrect locations”

2013-12-16, 05:17:10 - Andras Lasso

description: changed from “Grid, block, grid slice gen…” to “Grid, block, grid slice gen…”

2013-12-16, 14:56:40 - Franklin King

status: changed from “New” to “Accepted”

2014-01-20, 22:00:26 - Csaba Pinter

Status set to New due to lack of activity

2014-01-20, 22:00:26 - Csaba Pinter

status: changed from “Accepted” to “New”

2014-02-15, 13:11:39 - Franklin King

status: changed from “New” to “Accepted”

2014-02-24, 11:32:11 - Franklin King

re #492: Increase maximum arrow tip radius from 1 to 5 for glyph mode re #493: Fixed one of several issues regarding grid visualization location; certain linear and bspline transforms may still exhibit odd behaviour Commit: r:1535|slicerrt:1535

2014-03-08, 08:08:32 - Franklin King

status: changed from “Accepted” to “New”

2014-04-17, 16:52:35 - Andras Lasso

Fixed all known transform visualization issues and moved the functionality to the Slicer core (2014-04-17).

2014-04-17, 16:52:35 - Andras Lasso

status: changed from “New” to “Fixed”

#494 Possible memory leak in DoseAccumulation

Based on feedback https://www.assembla.com/spaces/slicerrt/messages/3562103

2013-12-18, 16:19:55 - Csaba Pinter

Based on Kevin’s investigation it seems that a new patient hierarchy node is created for the accumulated volume regardless whether the output node already exists.

  1. Kevin verifies if the problem disappears without this piece of code
  2. If it’s verified I create a custom linux build for Gavin (temporary fix until the release of 0.13)
  3. I fix this in the subject hierarchy branch and re-integrate the real fix along with it

2013-12-19, 16:41:30 - wangk

I did a little test after commenting out the code which creates a new patient hierarchy node. It seems to be working. I run the module many times and the memory stays the same.

2013-12-19, 16:41:30 - wangk

status: changed from “New” to “Accepted”

2013-12-19, 16:41:45 - wangk

assigned_to_id: changed from “wangk” to “pinter”

2013-12-19, 16:41:45 - wangk

status: changed from “Accepted” to “New”

2013-12-23, 22:10:08 - Csaba Pinter

status: changed from “New” to “Accepted”

2013-12-28, 21:45:34 - Csaba Pinter

(In r:1365|slicerrt:1365) Re #406: Renamed SH node flag OwnerPluginOverriddenByUser to OwnerPluginAutoSearch Fixed #481: Remove SH node of a deleted contour; Remove color table entry too Fixed #494: Leak in Dose Accumulation fixed (SH node is not created for output volume if already exists)

2013-12-28, 21:45:34 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

#495 Failing test due to DicomRtExport module widget size

Automatic test fails due to a too large geometry returned by the DICOM-RT Export module widget: ‘qSlicerDicomRtExportModule widget has a minimum size hint width of 1261px. It is wider than the max width of 500px.’

See for example: http://slicer.cdash.org/testDetails.php?test=4656682&build=178174

2013-12-17, 20:32:19 - Greg Sharp

It appears to be some sort of limitation of the testing framework.
Here is an excerpt from qSlicerDicomRtExportModuleWidgetGenericTest.cxx

1
2
3
4
5
6
7
8
9
10
11
  // If the test fails here, there might be in the panel a GUI element (e.g. a
  // combobox, a push button...) with a too large minimum size hint.
  // Ideally this minimum size hint should be fixed, it is unlikely that such
  // large size hint is 'ideal'. Alternatively, you might want to investigate
  // the following:
  // Consider setting the horizontal size policy of such element to 'Ignored'
  // If the element is in a form layout, QFormLayout::layoutFieldGrowthPolicy
  // might need to be set to AllNonFixedFieldsGrow.
  // All those changes can be set from Qt Designer.

I looked at the UI, and couldn’t find anything special. Nor could I reproduce the problem. (Instead, Slicer crashes when I run the test.)

2013-12-17, 22:14:59 - Csaba Pinter

Thanks for investigating! I’ll look into it as well, maybe i’ll find something.

2013-12-17, 22:14:59 - Csaba Pinter

assigned_to_id: changed from “gregsharp” to “pinter”

2014-01-03, 19:03:57 - Csaba Pinter

The tests now pass on Windows (both in debug and release), trying it on Linux…

2014-01-03, 21:52:52 - Csaba Pinter

It fails on Linux due to the same crash as in every test (see #144). Need to test on Mac

2014-01-09, 05:54:14 - Csaba Pinter

Tests fixed on Linux, so this can be really tested. It fails, message: http://slicer.cdash.org/testDetails.php?test=4892726&build=185238

2014-01-16, 18:14:54 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.13” to “SlicerRt 0.14”

2014-02-03, 18:25:00 - Csaba Pinter

assigned_to_id: changed from “pinter” to null

2014-04-03, 18:14:52 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.14” to “SlicerRt 0.15”

2014-05-13, 02:30:29 - Csaba Pinter

priority: changed from “Normal (3)” to “Low (4)”

2014-05-13, 02:30:29 - Csaba Pinter

component_id: changed from “None” to “None”

2014-07-12, 18:17:24 - Csaba Pinter

The test now passes without any explicit fixes. Closing it as invalid.

2014-07-12, 18:17:24 - Csaba Pinter

status: changed from “New” to “Invalid”

2014-08-12, 16:36:56 - wangk

status: changed from “Invalid” to “New”

2014-08-12, 16:37:00 - wangk

assigned_to_id: changed from null to “wangk”

2014-08-12, 16:37:41 - wangk

Reopen the ticket as it is failing on the dashboard. see: http://slicer.cdash.org/testDetails.php?test=5622504&build=257803

2014-08-12, 16:37:41 - wangk

CommentContent: changed from “Reopen the ticket as it is failing on the dashboard.” to “Reopen the ticket as it is failing on the dashboard. see: http://slicer.cdash.org/testDetails.php?test=5622504&build=257803”

2014-08-12, 16:38:09 - wangk

CommentContent: changed from “http://slicer.cdash.org/testDetails.php?test=5622504&build=257803” to null

2014-08-12, 18:26:48 - wangk

Test #495: Fixed the minimum size hint for the widget. Commit: r:1927|slicerrt:1927

2014-08-12, 18:26:48 - wangk

status: changed from “New” to “Test”

2014-08-18, 13:32:12 - wangk

status: changed from “Test” to “Fixed”

#496 ‘Something’ is causing Slicer to crash on exit

This is on Linux, stable build.

If SlicerRT module paths are included, the following maneuver causes Slicer to crash:

(1) Run Slicer (2) Exit Slicer

The following is printed to the screen:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
$ ./Slicer-build/Slicer
Number of registered modules: 131 
Register compression libraries
TagCacheDatabase not open
 
TagCacheDatabase verified!
 
Number of instantiated modules: 131 
Number of loaded modules: 131 
Show module (name): 'Welcome' 
*** glibc detected *** /home/gcs6/build/slicer-4/Slicer-build/Slicer-build/bin/./SlicerApp-real: double free or corruption (fasttop): 0x00000000017f7100 ***
======= Backtrace: =========
/lib/x86_64-linux-gnu/libc.so.6(+0x76d76)[0x7fa86afffd76]
/lib/x86_64-linux-gnu/libc.so.6(cfree+0x6c)[0x7fa86b004aac]
/usr/lib/x86_64-linux-gnu/libstdc++.so.6(_ZNSsD1Ev+0x20)[0x7fa86b5e8b20]
/lib/x86_64-linux-gnu/libc.so.6(+0x36df2)[0x7fa86afbfdf2]
/lib/x86_64-linux-gnu/libc.so.6(+0x36e45)[0x7fa86afbfe45]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0x104)[0x7fa86afa7eb4]
/home/gcs6/build/slicer-4/Slicer-build/Slicer-build/bin/./SlicerApp-real[0x404075]
======= Memory map: ========
00400000-00407000 r-xp 00000000 09:01 103156760                          /home/gcs6/build/slicer-4/Slicer-build/Slicer-build/bin/SlicerApp-real
00607000-00608000 rw-p 00007000 09:01 103156760                          /home/gcs6/build/slicer-4/Slicer-build/Slicer-build/bin/SlicerApp-real
00b10000-03ece000 rw-p 00000000 00:00 0                                  [heap]
7fa7d5d9c000-7fa7d5da5000 r-xp 00000000 09:01 105777449                  /home/gcs6/build/slicer-4/SlicerRT-stable/inner-build/lib/Slicer-4.3/qt-loadable-modules/qSlicerPatientHierarchyModuleWidgetsPythonQt.so
7fa7d5da5000-7fa7d5fa4000 ---p 00009000 09:01 105777449                  /home/gcs6/build/slicer-4/SlicerRT-stable/inner-build/lib/Slicer-4.3/qt-loadable-modules/qSlicerPatientHierarchyModuleWidgetsPythonQt.so
7fa7d5fa4000-7fa7d5fa6000 rw-p 00008000 09:01 105777449                  /home/gcs6/build/slicer-4/SlicerRT-stable/inner-build/lib/Slicer-4.3/qt-loadable-modules/qSlicerPatientHierarchyModuleWidgetsPythonQt.so
7fa7d5fa6000-7fa7d5faa000 r-xp 00000000 09:01 105777481                  /home/gcs6/build/slicer-4/SlicerRT-stable/inner-build/lib/Slicer-4.3/qt-loadable-modules/qSlicerContoursModuleWidgetsPythonQt.so
7fa7d5faa000-7fa7d61aa000 ---p 00004000 09:01 105777481                  /home/gcs6/build/slicer-4/SlicerRT-stable/inner-build/lib/Slicer-4.3/qt-loadable-modules/qSlicerContoursModuleWidgetsPythonQt.so
7fa7d61aa000-7fa7d61ab000 rw-p 00004000 09:01 105777481                  /home/gcs6/build/slicer-4/SlicerRT-stable/inner-build/lib/Slicer-4.3/qt-loadable-modules/qSlicerContoursModuleWidgetsPythonQt.so
7fa7d61ab000-7fa7d61ae000 r-xp 00000000 09:01 105777290                  /home/gcs6/build/slicer-4/SlicerRT-stable/inner-build/lib/Slicer-4.3/qt-loadable-modules/vtkSlicerContoursModuleMRMLPython.so
7fa7d61ae000-7fa7d63ae000 ---p 00003000 09:01 105777290                  /home/gcs6/build/slicer-4/SlicerRT-stable/inner-build/lib/Slicer-4.3/qt-loadable-modules/vtkSlicerContoursModuleMRMLPython.so
7fa7d63ae000-7fa7d63af000 rw-p 00003000 09:01 105777290                  /home/gcs6/build/slicer-4/SlicerRT-stable/inner-build/lib/Slicer-4.3/qt-loadable-modules/vtkSlicerContoursModuleMRMLPython.so
7fa7d63af000-7fa7d63b8000 r-xp 00000000 09:01 105777069                  /home/gcs6/build/slicer-4/SlicerRT-stable/inner-build/lib/Slicer-4.3/qt-loadable-modules/libvtkSlicerPlastimatchPyModuleLogicPythonD.so
7fa7d63b8000-7fa7d65b7000 ---p 00009000 09:01 105777069                  /home/gcs6/build/slicer-4/SlicerRT-stable/inner-build/lib/Slicer-4.3/qt-loadable-modules/libvtkSlicerPlastimatchPyModuleLogicPythonD.so
7fa7d65b7000-7fa7d65b9000 rw-p 00008000 09:01 105777069                  /home/gcs6/build/slicer-4/SlicerRT-stable/inner-build/lib/Slicer-4.3/qt-loadable-modules/libvtkSlicerPlastimatchPyModuleLogicPythonD.so
7fa7d65b9000-7fa7d65bc000 r-xp 00000000 09:01 105777159                  /home/gcs6/build/slicer-4/SlicerRT-stable/inner-build/lib/Slicer-4.3/qt-loadable-modules/vtkSlicerPlastimatchPyModuleLogicPython.so
7fa7d65bc000-7fa7d67bc000 ---p 00003000 09:01 105777159                  /home/gcs6/build/slicer-4/SlicerRT-stable/inner-build/lib/Slicer-4.3/qt-loadable-modules/vtkSlicerPlastimatchPyModuleLogicPython.so
7fa7d67bc000-7fa7d67bd000 rw-p 00003000 09:01 105777159                  /home/gcs6/build/slicer-4/SlicerRT-stable/inner-build/lib/Slicer-4.3/qt-loadable-modules/vtkSlicerPlastimatchPyModuleLogicPython.so
7fa7d67bd000-7fa7d67c0000 r-xp 00000000 09:01 105777129                  /home/gcs6/build/slicer-4/SlicerRT-stable/inner-build/lib/Slicer-4.3/qt-loadable-modules/vtkSlicerBeamsModuleLogicPython.so
7fa7d67c0000-7fa7d69c0000 ---p 00003000 09:01 105777129                  /home/gcs6/build/slicer-4/SlicerRT-stable/inner-build/lib/Slicer-4.3/qt-loadable-modules/vtkSlicerBeamsModuleLogicPython.so
7fa7d69c0000-7fa7d69c1000 rw-p 00003000 09:01 105777129                  /home/gcs6/build/slicer-4/SlicerRT-stable/inner-build/lib/Slicer-4.3/qt-loadable-modules/vtkSlicerBeamsModuleLogicPython.so
7fa7d69c1000-7fa7d69c4000 r-xp 00000000 09:01 105777127                  /home/gcs6/build/slicer-4/SlicerRT-stable/inner-build/lib/Slicer-4.3/qt-loadable-modules/vtkSlicerPlanarImageModuleLogicPython.so
7fa7d69c4000-7fa7d6bc4000 ---p 00003000 09:01 105777127                  /home/gcs6/build/slicer-4/SlicerRT-stable/inner-build/lib/Slicer-4.3/qt-loadable-modules/vtkSlicerPlanarImageModuleLogicPython.so
7fa7d6bc4000-7fa7d6bc5000 rw-p 00003000 09:01 105777127                  /home/gcs6/build/slicer-4/SlicerRT-stable/inner-build/lib/Slicer-4.3/qt-loadable-modules/vtkSlicerPlanarImageModuleLogicPython.so
7fa7d6bc5000-7fa7d6bc8000 r-xp 00000000 09:01 105777163                  /home/gcs6/build/slicer-4/SlicerRT-stable/inner-build/lib/Slicer-4.3/qt-loadable-modules/vtkSlicerPatientHierarchyModuleLogicPython.so
7fa7d6bc8000-7fa7d6dc8000 ---p 00003000 09:01 105777163                  /home/gcs6/build/slicer-4/SlicerRT-stable/inner-build/lib/Slicer-4.3/qt-loadable-modules/vtkSlicerPatientHierarchyModuleLogicPython.so
7fa7d6dc8000-7fa7d6dc9000 rw-p 00003000 09:01 105777163                  /home/gcs6/build/slicer-4/SlicerRT-stable/inner-build/lib/Slicer-4.3/qt-loadable-modules/vtkSlicerPatientHierarchyModuleLogicPython.so
7fa7d6dc9000-7fa7d6dcf000 r-xp 00000000 09:01 105777065                  /home/gcs6/build/slicer-4/SlicerRT-stable/inner-build/lib/Slicer-4.3/qt-loadable-modules/libvtkSlicerPlanarImageModuleLogicPythonD.so
7fa7d6dcf000-7fa7d6fce000 ---p 00006000 09:01 105777065                  /home/gcs6/build/slicer-4/SlicerRT-stable/inner-build/lib/Slicer-4.3/qt-loadable-modules/libvtkSlicerPlanarImageModuleLogicPythonD.so
7fa7d6fce000-7fa7d6fd0000 rw-p 00005000 09:01 105777065                  /home/gcs6/build/slicer-4/SlicerRT-stable/inner-build/lib/Slicer-4.3/qt-loadable-modules/libvtkSlicerPlanarImageModuleLogicPythonD.so
7fa7d6fd0000-7fa7d6fd7000 r-xp 00000000 09:01 105777224                  /home/gcs6/build/slicer-4/SlicerRT-stable/inner-build/lib/Slicer-4.3/qt-loadable-modules/libvtkSlicerBeamsModuleLogicPythonD.so
7fa7d6fd7000-7fa7d71d6000 ---p 00007000 09:01 105777224                  /home/gcs6/build/slicer-4/SlicerRT-stable/inner-build/lib/Slicer-4.3/qt-loadable-modules/libvtkSlicerBeamsModuleLogicPythonD.so
7fa7d71d6000-7fa7d71d8000 rw-p 00006000 09:01 105777224                  /home/gcs6/build/slicer-4/SlicerRT-stable/inner-build/lib/Slicer-4.3/qt-loadable-modules/libvtkSlicerBeamsModuleLogicPythonD.so
7fa7d71d8000-7fa7d71e1000 r-xp 00000000 09:01 105777401                  /home/gcs6/build/slicer-4/SlicerRT-stable/inner-build/lib/Slicer-4.3/qt-loadable-modules/libvtkSlicerDicomRtImportModuleLogicPythonD.so
7fa7d71e1000-7fa7d73e0000 ---p 00009000 09:01 105777401                  /home/gcs6/build/slicer-4/SlicerRT-stable/inner-build/lib/Slicer-4.3/qt-loadable-modules/libvtkSlicerDicomRtImportModuleLogicPythonD.so
7fa7d73e0000-7fa7d73e2000 rw-p 00008000 09:01 105777401                  /home/gcs6/build/slicer-4/SlicerRT-stable/inner-build/lib/Slicer-4.3/qt-loadable-modules/libvtkSlicerDicomRtImportModuleLogicPythonD.so
7fa7d73e2000-7fa7d73e5000 r-xp 00000000 09:01 105777470                  /home/gcs6/build/slicer-4/SlicerRT-stable/inner-build/lib/Slicer-4.3/qt-loadable-modules/vtkSlicerDicomRtImportModuleLogicPython.so
7fa7d73e5000-7fa7d75e4000 ---p 00003000 09:01 105777470                  /home/gcs6/build/slicer-4/SlicerRT-stable/inner-build/lib/Slicer-4.3/qt-loadable-modules/vtkSlicerDicomRtImportModuleLogicPython.so
7fa7d75e4000-7fa7d75e6000 rw-p 00002000 09:01 105777470                  /home/gcs6/build/slicer-4/SlicerRT-stable/inner-build/lib/Slicer-4.3/qt-loadable-modules/vtkSlicerDicomRtImportModuleLogicPython.so
7fa7d75e6000-7fa7d75f3000 r-xp 00000000 09:01 105777550                  /home/gcs6/build/slicer-4/SlicerRT-stable/inner-build/lib/Slicer-4.3/qt-loadable-modules/libvtkSlicerDoseVolumeHistogramModuleLogicPythonD.so
7fa7d75f3000-7fa7d77f2000 ---p 0000d000 09:01 105777550                  /home/gcs6/build/slicer-4/SlicerRT-stable/inner-build/lib/Slicer-4.3/qt-loadable-modules/libvtkSlicerDoseVolumeHistogramModuleLogicPythonD.so
7fa7d77f2000-7fa7d77f4000 rw-p 0000c000 09:01 105777550                  /home/gcs6/build/slicer-4/SlicerRT-stable/inner-build/lib/Slicer-4.3/qt-loadable-modules/libvtkSlicerDoseVolumeHistogramModuleLogicPythonD.so
7fa7d77f4000-7fa7d77f7000 r-xp 00000000 09:01 105777518                  /home/gcs6/build/slicer-4/SlicerRT-stable/inner-build/lib/Slicer-4.3/qt-loadable-modules/vtkSlicerDoseVolumeHistogramModuleLogicPython.so
7fa7d77f7000-7fa7d79f7000 ---p 00003000 09:01 105777518                  /home/gcs6/build/slicer-4/SlicerRT-stable/inner-build/lib/Slicer-4.3/qt-loadable-modules/vtkSlicerDoseVolumeHistogramModuleLogicPython.so
7fa7d79f7000-7fa7d79f8000 rw-p 00003000 09:01 105777518                  /home/gcs6/build/slicer-4/SlicerRT-stable/inner-build/lib/Slicer-4.3/qt-loadable-modules/vtkSlicerDoseVolumeHistogramModuleLogicPython.so
7fa7d79f8000-7fa7d7a00000 r-xp 00000000 09:01 105777119                  /home/gcs6/build/slicer-4/SlicerRT-stable/inner-build/lib/Slicer-4.3/qt-loadable-modules/libvtkSlicerDoseAccumulationModuleLogicPythonD.so
7fa7d7a00000-7fa7d7bff000 ---p 00008000 09:01 105777119                  /home/gcs6/build/slicer-4/SlicerRT-stable/inner-build/lib/Slicer-4.3/qt-loadable-modules/libvtkSlicerDoseAccumulationModuleLogicPythonD.so
7fa7d7bff000-7fa7d7c01000 rw-p 00007000 09:01 105777119                  /home/gcs6/build/slicer-4/SlicerRT-stable/inner-build/lib/Slicer-4.3/qt-loadable-modules/libvtkSlicerDoseAccumulationModuleLogicPythonD.so
7fa7d7c01000-7fa7d7c04000 r-xp 00000000 09:01 105777168                  /home/gcs6/build/slicer-4/SlicerRT-stable/inner-build/lib/Slicer-4.3/qt-loadable-modules/vtkSlicerDoseAccumulationModuleLogicPython.so
7fa7d7c04000-7fa7d7e04000 ---p 00003000 09:01 105777168                  /home/gcs6/build/slicer-4/SlicerRT-stable/inner-build/lib/Slicer-4.3/qt-loadable-modules/vtkSlicerDoseAccumulationModuleLogicPython.so
7fa7d7e04000-7fa7d7e05000 rw-p 00003000 09:01 105777168                  /home/gcs6/build/slicer-4/SlicerRT-stable/inner-build/lib/Slicer-4.3/qt-loadable-modules/vtkSlicerDoseAccumulationModuleLogicPython.so
7fa7d7e05000-7fa7d7e0d000 r-xp 00000000 09:01 105777238                  /home/gcs6/build/slicer-4/SlicerRT-stable/inner-build/lib/Slicer-4.3/qt-loadable-modules/libvtkSlicerIsodoseModuleLogicPythonD.so
7fa7d7e0d000-7fa7d800d000 ---p 00008000 09:01 105777238                  /home/gcs6/build/slicer-4/SlicerRT-stable/inner-build/lib/Slicer-4.3/qt-loadable-modules/libvtkSlicerIsodoseModuleLogicPythonD.so
7fa7d800d000-7fa7d800f000 rw-p 00008000 09:01 105777238                  /home/gcs6/build/slicer-4/SlicerRT-stable/inner-build/lib/Slicer-4.3/qt-loadable-modules/libvtkSlicerIsodoseModuleLogicPythonD.so
7fa7d800f000-7fa7d8012000 r-xp 00000000 09:01 105777307                  /home/gcs6/build/slicer-4/SlicerRT-stable/inner-build/lib/Slicer-4.3/qt-loadable-modules/vtkSlicerIsodoseModuleLogicPython.so
7fa7d8012000-7fa7d8212000 ---p 00003000 09:01 105777307                  /home/gcs6/build/slicer-4/SlicerRT-stable/inner-build/lib/Slicer-4.3/qt-loadable-modules/vtkSlicerIsodoseModuleLerror: [/home/gcs6/build/slicer-4/Slicer-build/Slicer-build/bin/./SlicerApp-real] exit abnormally - Report the problem.


2013-12-17, 23:12:25 - Greg Sharp

A little more information. Based on selective deletion of module files, I could find that at least one crash is related to be PatientHierarchy code.

The stack trace is not very clear, but apparently related to Qt.

1
2
3
4
5
6
7
8
9
10
11
#0  0x00007f2ea787306a in ?? () from /lib/x86_64-linux-gnu/libc.so.6
#1  0x00007f2ea78746a8 in ?? () from /lib/x86_64-linux-gnu/libc.so.6
#2  0x00007f2ea7877aac in free () from /lib/x86_64-linux-gnu/libc.so.6
#3  0x00007f2ec26c18c6 in QHashData::free_helper(void (*)(QHashData::Node*)) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#4  0x00007f2ec366627f in ?? () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#5  0x00007f2ea7832df2 in ?? () from /lib/x86_64-linux-gnu/libc.so.6
#6  0x00007f2ea7832e45 in exit () from /lib/x86_64-linux-gnu/libc.so.6
#7  0x00007f2ea781aeb4 in __libc_start_main () from /lib/x86_64-linux-gnu/libc.so.6
#8  0x0000000000405cc9 in _start ()

2013-12-18, 15:39:58 - Csaba Pinter

Thanks, Greg!

I’m very close to starting integrating the subject hierarchy branch into the trunk, which replaces patient hierarchy completely. If you don’t mind I’ll test this with subject hierarchy in the trunk.

I tried it on the stable 4.3.1, and it doesn’t crash for me on Windows. Can you please try the stable on Linux? Thanks!

2013-12-18, 15:39:58 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2013-12-18, 15:40:06 - Csaba Pinter

milestone_id: changed from null to “SlicerRt 0.13”

2013-12-18, 16:24:59 - Csaba Pinter

Similar crash report on Mantis: http://www.na-mic.org/Bug/view.php?id=3534

2014-01-03, 22:29:58 - Csaba Pinter

I did some debugging on Linux and it seems that the crash is in std::basic_string. I wonder if it’s an issue with the SlicerRtCommon constant strings.

2014-01-09, 01:29:26 - Csaba Pinter

(In r:1392|slicerrt:1392) Re #303 Test #496: PlmCommon dynamic link fixed; SlicerRtCommon and PlmCommon dynamic libraries installed to the right folder

2014-01-09, 01:29:26 - Csaba Pinter

status: changed from “New” to “Test”

2014-01-10, 00:45:39 - Csaba Pinter

There is no crash any more on Linux on exit, even if the RT plugins are actually exercised.

2014-01-10, 00:45:39 - Csaba Pinter

status: changed from “Test” to “Fixed”

#497 NA-MIC tutorial self test fails due to new DICOM browser

2013-12-18, 20:25:02 - Csaba Pinter

(In r:1356|slicerrt:1356) Re #497: Fixed data loading in NA-MIC tutorial self test; Added comment to SlicerRtDemo_RSNA2012_SelfTest indicating that it is no longer maintained

2013-12-30, 00:30:58 - Csaba Pinter

Fixed in rev1356

2013-12-30, 00:30:58 - Csaba Pinter

status: changed from “New” to “Fixed”

#498 Matlab is not found on Mac systems

The Matlab module doesn’t start:

ERROR: In /Users/kitware/Dashboards/Package/Slicer-431/Base/QTCLI/vtkSlicerCLIModuleLogic.cxx, line 1958 vtkSlicerCLIModuleLogic (0x13c6d80c0): myTestSlicer standard error: /Applications/Slicer.app/Contents/Extensions-22599/MatlabModules/myTestSlicer: line 17: /Applications/Slicer.app/Contents/Slicer: No such file or directory

ERROR: In /Users/kitware/Dashboards/Package/Slicer-431/Base/QTCLI/vtkSlicerCLIModuleLogic.cxx, line 1989 vtkSlicerCLIModuleLogic (0x13c6d80c0): myTestSlicer completed with errors

It seems that the proxy script (myTestSlicer) cannot find the Slicer executable.

2013-12-21, 01:05:04 - Andras Lasso

The problem is that the generated script file cannot find the Slicer launcher (that would then run the MatlabCommander module). Try to modify line 17 of /Applications/Slicer.app/Contents/Extensions-22599/MatlabModules/myTestSlicer from ‘$SLICER_HOME/Slicer’ –launcher-no-splash –launch ‘$SLICER_MATLAB_COMMANDER_PATH’ –call-matlab-function $MODULE_NAME $* to ‘$SLICER_MATLAB_COMMANDER_PATH’ –call-matlab-function $MODULE_NAME $*

2013-12-21, 01:05:04 - Andras Lasso

status: changed from “New” to “Accepted”

2013-12-21, 23:34:57 - Andras Lasso

‘$SLICER_MATLAB_COMMANDER_PATH’ –call-matlab-function $MODULE_NAME $* seems to help.

Also, the Matlab executable path should be something like …MATLAB.app/bin/matlab

2013-12-22, 23:02:06 - Andras Lasso

(In r:1358|slicerrt:1358) re #498: Fixed MatlabBridge module proxy to not use launcher on Mac OS X (as there is no launcher)

2013-12-23, 14:48:57 - Andras Lasso

status: changed from “Accepted” to “Test”

2013-12-23, 15:28:57 - Andras Lasso

(In r:1359|slicerrt:1359) re #498: Updated MatlabBridge version ID to 0.10.0

2013-12-26, 14:22:01 - Andras Lasso

(In r:1363|slicerrt:1363) re #498: Tuned Matlab launching parameters on Linux/Mac (redirect outputs to /dev/null, pass -r parameters as one argument). Updated extension version to 0.11.0.

2013-12-26, 17:46:41 - Andras Lasso

milestone_id: changed from “MatlabBridge 0.10.0” to “MatlabBridge 0.11.0”

2013-12-29, 01:24:28 - Andras Lasso

Confirmed that it works well now on Mac.

2013-12-29, 01:24:28 - Andras Lasso

status: changed from “Test” to “Fixed”

#499 Auto-detect Matlab path on Mac OS X

Matlab path is currently not detected automatically on Mac OS X. Try to auto-detect it to avoid an additional manual configuration step.

/Applications/MATLAB_.app/bin/matlab where Release is the MATLAB Release's version, i.e., R2008b, R2009a, etc.

2013-12-23, 14:57:11 - Andras Lasso

milestone_id: changed from null to “MatlabBridge 0.11.0”

2013-12-26, 14:21:39 - Andras Lasso

(In r:1362|slicerrt:1362) test #499: Auto-detect Matlab path on Linux/Mac if it is set on the path

2013-12-26, 14:21:39 - Andras Lasso

status: changed from “New” to “Test”

2013-12-28, 19:38:23 - Andras Lasso

(In r:1364|slicerrt:1364) re #499: Fixed linux build error

2013-12-29, 01:24:34 - Andras Lasso

status: changed from “Test” to “Fixed”

#500 Add automatic tests for Subject Hierarchy

List of tests to implement (to be extended):

2013-12-30, 00:33:34 - Csaba Pinter

milestone_id: changed from null to “SlicerRt 0.14”

2014-04-06, 04:09:56 - Csaba Pinter

description: changed from “List of tests to implement …” to “List of tests to implement …”

2014-04-07, 20:44:45 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2014-04-25, 19:59:19 - Csaba Pinter

status: changed from “New” to “Accepted”

2014-04-29, 17:13:16 - Csaba Pinter

Re #500: Removed code related to ITK 3, as version 3 is not supported any more in Slicer Commit: r:1687|slicerrt:1687

2014-04-30, 17:38:05 - Csaba Pinter

Re #500: Added subject hierarchy test files; Implemented first test case of the logic test Commit: r:1692|slicerrt:1692

2014-04-30, 20:58:07 - Csaba Pinter

Re #500: Subject hierarchy logic test tests all logic and node functions Commit: r:1694|slicerrt:1694

2014-05-15, 19:52:44 - Csaba Pinter

Re #500: Python test added for generic subject hierarchy functions WIP Commit: r:1731|slicerrt:1731

2014-05-15, 22:43:39 - Csaba Pinter

Re #500: Subject hierarchy generic python self test now tests add node, create tree and reparent Commit: r:1732|slicerrt:1732

2014-05-16, 06:14:05 - Csaba Pinter

Re #500: Subject hierarchy generic python test ready and passes. Note: The last section of the test (load scene) is skipped to avoid a crash when the scene is cleared. Needs to be fixed, further info in comments in the python script

Commit: r:1733 slicerrt:1733

2014-05-16, 06:33:34 - Csaba Pinter

Re #500: Removed old patient hierarchy sample script, as its operations are performed in the subject hierarchy generic python test, which now also serves as a sample Commit: r:1734|slicerrt:1734

2014-05-16, 20:21:48 - Csaba Pinter

Re #500: Added subject hierarchy core plugins self test that tests the core plugins not covered by the generic test (Volumes and Models, because it was necessary to use some kind of data for that test), namely Markups, Charts, CloneNode and the plugin auto selection system on node modification. Commit: r:1738|slicerrt:1738

2014-05-16, 23:40:20 - Csaba Pinter

Test #500: Subject hierarchy core plugin self test now passes without workarounds Commit: r:1739|slicerrt:1739

2014-05-16, 23:40:20 - Csaba Pinter

status: changed from “Accepted” to “Test”

2014-06-30, 19:56:32 - Csaba Pinter

status: changed from “Test” to “Fixed”

#501 Implement roles in Subject Hierarchy plugins

2013-12-30, 02:22:30 - Csaba Pinter

priority: changed from “Normal (3)” to “High (2)”

2014-01-21, 20:47:31 - Csaba Pinter

priority: changed from “High (2)” to “Highest (1)”

2014-01-22, 17:17:19 - Csaba Pinter

description: changed from “* Plugins generate descript…” to “* Plugins generate descript…”

2014-01-22, 19:44:55 - Csaba Pinter

status: changed from “New” to “Accepted”

2014-01-24, 16:15:33 - Csaba Pinter

After exploring the possibilities, it seems that the roles would have to have the same API as the plugins, extended by the new features mentioned in the description (descriptive names, levels), So the best option is to split the composite plugins (such as RT) to plugins corresponding to the role concepts, and augment their features to accommodate the needs.

2014-02-04, 21:59:03 - Csaba Pinter

Re #501: WIP Level and displayName added to the plugins; The canAdd and canReparent functions have a default implementation in the abstract instead of having to override and return 0 in each plugin, because most plugins will not handle drag&drop differently than the default Commit: r:1489|slicerrt:1489

2014-02-05, 21:06:02 - Csaba Pinter

Re #501: Contours subject hierarchy plugin divided into Contours and ContourSets plugins; The phrase ‘structure set’ is renamed to ‘contour set’ throughout the UI and code (only parts that are not directly related to DICOM-RT, but a set of contours in Slicer) Commit: r:1491|slicerrt:1491

2014-02-06, 17:14:24 - Csaba Pinter

Re #501: RT subject hierarchy plugin class replaced by separate plugins for each role Commit: r:1498|slicerrt:1498

2014-02-11, 23:36:40 - Csaba Pinter

Re #501: Removed level member form subject hierarchy plugins, but added a general mechanism to notify the stakeholder plugins when a change happened (a signal is emitted in both the old and the new plugin) Commit: r:1501|slicerrt:1501

2014-02-12, 19:48:39 - Csaba Pinter

Re #501: Added sample slot in Contours plugin to handle owner plugin changes (it applies subseries level to the node if the new owner plugin is Contours) Commit: r:1505|slicerrt:1505

2014-02-15, 19:11:49 - Csaba Pinter

Re #501: Subject Hierarchy plugins provide role names to be displayed in the role selection sub-menu in the node context menus. qMRMLSubjectHierarchyTreeViewPrivate is subclassed from qMRMLTreeViewPrivate, which enables adding the sub-menu WARNING: Does not build until pull request https://github.com/Slicer/Slicer/pull/102 is integrated in Slicer core. Commit: r:1509|slicerrt:1509

2014-02-15, 20:03:24 - Csaba Pinter

Re #501: Fixed bug related to owner plugin menu action checked states Commit: r:1510|slicerrt:1510

2014-02-18, 00:06:28 - Csaba Pinter

Re #501: Fixed build error caused by wrapped abstract class Commit: r:1514|slicerrt:1514

2014-02-18, 00:23:45 - Csaba Pinter

Re #501: Simplified context menu population. Instead of the three different kinds of action types, there is now one member function being called in all the plugins to allow them to internally decide if a context menu action is to be displayed; Dependencies became unnecessary, so that mechanism is removed; ‘Create new patient’ context menu action removed, so now the user can create only a subject, which, if owned by the DICOM plugin, looks like a patient Commit: r:1515|slicerrt:1515

2014-02-19, 21:06:47 - Csaba Pinter

Re #501: Removed color table from subject hierarchy. Instead, an ‘Edit contour set colors…’ context menu action has been added to the contour sets. So now each plugin provides one role only, as they supposed to ; Edit properties… connected for subject hierarchy nodes, so that the module associated to the associated data node is opened. Commit: r:1521|slicerrt:1521

2014-02-22, 03:51:10 - Csaba Pinter

Re #501: Detached role getter function from canOwnSubjectHierarchyNode function in Subject hierarchy plugins Commit: r:1532|slicerrt:1532

2014-02-24, 15:34:55 - Csaba Pinter

status: changed from “Accepted” to “Test”

2014-02-24, 18:14:19 - Csaba Pinter

Re #501: Fixed tests that failed due to a change in contour set to color table lookup Commit: r:1537|slicerrt:1537

2014-03-31, 20:45:01 - Csaba Pinter

status: changed from “Test” to “Fixed”

#502 Release SlicerRT 0.14

2013-12-30, 02:33:03 - Csaba Pinter

description: changed from “” to “* Add news about the new fe…”

2014-01-27, 03:41:39 - Csaba Pinter

(In r:1468|slicerrt:1468) Re #502: Fixed DVH and Contours logic tests; Increased version number for minor release

2014-04-10, 15:45:28 - Csaba Pinter

description: changed from “* Add news about the new fe…” to “* Add news about the new fe…”

2014-06-24, 02:24:28 - Csaba Pinter

Re #502: Experimental release of 14.0 Commit: r:1812|slicerrt:1812

2014-06-25, 01:35:04 - Csaba Pinter

Re #502: Patch release of 14.1 (VTK5 support re-added for factory builds) Commit: r:1818|slicerrt:1818

2014-07-12, 17:31:17 - Csaba Pinter

Re #502: Update version number to 0.14.2 for release Commit: r:1859|slicerrt:1859

2014-07-12, 18:11:46 - Csaba Pinter

status: changed from “New” to “Fixed”

2014-07-13, 15:48:38 - Csaba Pinter

Re #502: Ensuring VTK5 compatibility Commit: r:1860|slicerrt:1860

2014-07-31, 04:12:12 - Csaba Pinter

Re #502: Increase version number for patch release Commit: r:1901|slicerrt:1901

2014-08-01, 22:01:22 - Csaba Pinter

Re #502: Increase version number for patch release Commit: r:1912|slicerrt:1912

2014-08-01, 22:30:12 - Adam Rankin

re #502 cleaning up code for release Commit: r:1913|slicerrt:1913

2014-08-02, 13:44:22 - Adam Rankin

re #502 sync error being corrected Commit: r:1915|slicerrt:1915

2014-08-13, 16:05:50 - Csaba Pinter

Re #502: Increase version number for patch release Commit: r:1929|slicerrt:1929

#503 Add show/hide button to transform visualizer

It is often necessary to show/hide the deformation field model, as it makes it difficult to see the underlying image. Add a button or checkbox to the module GUI (near the Apply button) to show/hide the model in both the 2D and the 3D view.

2014-04-17, 16:52:35 - Andras Lasso

Fixed all known transform visualization issues and moved the functionality to the Slicer core (2014-04-17).

2014-04-17, 16:52:35 - Andras Lasso

status: changed from “New” to “Fixed”

#504 Add a ‘reference inspector’ widget where node references can be explored and edited

It can be part of the current MRML Node Inspector widget or a separate one (maybe the first option is better)

2016-09-09, 15:44:41 - Csaba Pinter

This feature was added in the NodeIno module of the DebuggingTools extension https://github.com/SlicerRt/SlicerDebuggingTools.git

Closing as fixed

2016-09-09, 15:44:41 - Csaba Pinter

Component: changed from “Slicer core” to “SlicerRt modules”

2016-09-09, 15:44:41 - Csaba Pinter

milestone_id: changed from “Future” to “SlicerRt 0.19”

2016-09-09, 15:44:41 - Csaba Pinter

status: changed from “New” to “Fixed”

2016-09-09, 15:44:41 - Csaba Pinter

assigned_to_id: changed from null to “lassoan”

#505 Implement ‘round 2’ features in Subject Hierarchy

See items with no separate ticket in https://www.assembla.com/spaces/slicerrt/wiki/Subject_hierarchy_generalization

2014-01-08, 15:56:17 - Csaba Pinter

(In r:1383|slicerrt:1383) Re #505: Fixed visibility icon update bug

2014-01-08, 16:02:43 - Csaba Pinter

description: changed from “* Plugins ** Move role sele…” to “* Plugins ** Move role sele…”

2014-01-08, 16:08:27 - Csaba Pinter

description: changed from “* Plugins ** Move role sele…” to “* Plugins ** Move role sele…”

2014-01-08, 19:20:43 - Csaba Pinter

(In r:1387|slicerrt:1387) Re #505: Added stretch policies to subject hierarchy tree and list to limit the list height

2014-01-09, 16:56:44 - Csaba Pinter

(In r:1395|slicerrt:1395) Re #505: Implement labelmap support in the subject hierarchy Volumes plugin; Added Contour logic method for getting a single reference volume (supporting Batch contour conversion)

2014-01-09, 21:57:38 - Csaba Pinter

(In r:1396|slicerrt:1396) Re #505: Added real show/hide feature for volumes (both regular and labelmaps)

2014-01-10, 22:25:42 - Csaba Pinter

(In r:1401|slicerrt:1401) Re #505: Added context menu item for labelmaps for toggling outline (vs fill) display in the Volumes module of subject hierarchy

2014-01-11, 01:36:40 - Csaba Pinter

(In r:1402|slicerrt:1402) Re #505: Added context menu item for showing volumes in a study. The feature makes sure that only volumes from the selected study are shown and it shows the first labelmap and the first two regular volumes if there are more; Made Volumes module depend on DICOM so that it can claim studies to show the menu item; Fixed GetAssociatedChildrenNodes calls for subject hierarchy nodes in all classes

2014-01-12, 22:50:53 - Csaba Pinter

(In r:1405|slicerrt:1405) Re #505: Added ParseLocalData subject hierarchy plugin that adds a context menu item to the scene to create subject hierarchy using the potential nodes in the scene that have been loaded from file.

2014-01-12, 22:59:13 - Csaba Pinter

(In r:1406|slicerrt:1406) Re #505: Fixed bug in ParseLocalData subject hierarchy plugin to create DICOM levels (patient/study/series) instead of default levels (subject/study). The plugin is now ready for handling Huntington’s research data

2014-01-12, 23:04:48 - Csaba Pinter

(In r:1407|slicerrt:1407) Re #505: Moved Subject Hierarchy module from Radiotherapy category into top-level and Informatics

2014-01-16, 18:14:30 - Csaba Pinter

description: changed from “* Plugins ** Move role sele…” to “See items with no separate …”

2014-04-08, 20:54:23 - Csaba Pinter

status: changed from “New” to “Accepted”

2014-04-08, 21:46:07 - Csaba Pinter

Re #505: If subject hierarchy node is renamed then rename the associated data node too; If node is deleted, then delete the associated subject hierarchy node and other hierarchy node in case of nested association Commit: r:1626|slicerrt:1626

2014-04-08, 21:53:48 - jchris

Would it make sense to improve Slicer core and add the concept of ‘Associated node’ directly into vtkMRMLNode + update the vtkMRMLApplicationLogic so that associated nodes are automatically deleted ?

2014-04-08, 22:00:26 - Csaba Pinter

What do you mean by directly into vtkMRMLNode? Its already there in the hierarchy nodes and there are utility functions to get everything. But anyway, a mechanism like this would make a lot of sense, as you don’t need the orphan hierarchy nodes in absence of the data node that was associated to them. I would wait with this until SH gets integrated into the core, as I introduced nested associations and it has to be handled too.

2014-04-08, 22:05:54 - jchris

I means that the concept of association would be added to MRML Core or Logic. Methods like:

GetAssociatedSubjectHierarchyNode would then be changed into GetAssociatedNode. The helper method could be added to the scene.

Something along those lines.

I was just thinking loud

2014-04-08, 22:11:40 - Csaba Pinter

Yes, absolutely, it is a good idea. Now that hopefully SH will be an integral part of Slicer, and people will use it as a home module, these operations will become much more common.

I have a list of things to do in the core when integrating (nothing major :) ), I added this one too.

Thanks!

2014-04-08, 22:17:49 - jchris

Sounds good.

2014-04-09, 21:55:48 - Csaba Pinter

Re #505: Remove data node if subject hierarchy node is removed Commit: r:1631|slicerrt:1631

2014-04-11, 21:10:25 - Csaba Pinter

Re #575 re #505: Overridden nodeIndex and parentNode methods in subject hierarchy model, thus fixed one case of random re-ordering (which was probably caused by nested association, when the data node had a non-SH hierarchy node directly associated, which was further connected to the SH node, so the base class’ parentNode and nodeIndex functions found the irrelevant hierarchy node) Commit: r:1635|slicerrt:1635

2014-04-11, 21:40:51 - Csaba Pinter

Re #505: Renamed last remnants of mentioning structure set to contour set, where the term relates to contour hierarchy nodes not the DICOM-RT object Commit: r:1636|slicerrt:1636

2014-04-11, 22:26:03 - Csaba Pinter

Test #575, re #505: Random re-ordering seems to be fixed by making sure the node indices are incrementally assigned without skipping numbers Commit: r:1637|slicerrt:1637

2014-04-12, 23:06:38 - Csaba Pinter

Re #505: Added remove from subject hierarchy action to context menu (hidden by default) Commit: r:1638|slicerrt:1638

2014-04-13, 01:09:41 - Csaba Pinter

Re #505: Skeleton of Edit properties in subject hierarchy plugins and tree Commit: r:1639|slicerrt:1639

2014-04-13, 02:16:00 - Csaba Pinter

Re #505: Edit properties feature added to Volumes plugin in subject hierarchy Commit: r:1640|slicerrt:1640

2014-04-13, 21:31:25 - Csaba Pinter

Re #505: Overriding parentNode and nodeIndex made the scene update very slow. Using the cached association map from vtkMRMLHierarchyNode fixes this slow-down almost entirely Commit: r:1645|slicerrt:1645

2014-04-13, 22:06:08 - Csaba Pinter

Re #505: Parse local data subject hierarchy plugin now creates the right levels again Commit: r:1646|slicerrt:1646

2014-04-14, 22:39:53 - Csaba Pinter

Re #505: Added subject hierarchy Charts plugin, which can show/hide charts; Added DVH plugin skeleton Commit: r:1651|slicerrt:1651

2014-04-16, 17:10:20 - Csaba Pinter

Re #505: Added tentative subject hierarchy module icon Commit: r:1653|slicerrt:1653

2014-04-16, 19:17:19 - Csaba Pinter

Re #505: Use utility function to create subject hierarchy node where possible Commit: r:1654|slicerrt:1654

2014-04-16, 20:43:48 - Csaba Pinter

Re #505: Create utility function to switch to a certain module; Use that function in the edit properties methods of SH plugins; Isodose and DVH role icons added as module icons for the corresponding modules; Added DVH arrays to subject hierarchy Commit: r:1655|slicerrt:1655

2014-04-16, 23:17:24 - Csaba Pinter

Re #505: Show chart of DVH when shown in subject hierarchy Commit: r:1656|slicerrt:1656

2014-04-17, 13:26:48 - Csaba Pinter

Re #505: Show/hide DVH plots individually from subject hierarchy; DVH plot name handling moved from module widget to logic Commit: r:1657|slicerrt:1657

2014-04-17, 16:51:25 - Csaba Pinter

Re #505: Fixes in DCH subject hierarchy plugin; Contour selector widget reference volume selector does not grow with the contents (thus changing the layout), still the drop-down window is big enough to see everything Commit: r:1658|slicerrt:1658

2014-04-17, 20:08:14 - Csaba Pinter

Re #505: Added Clone node option to all nodes in subject hierarchy; Removed exportNodeToDicom virtual method from plugins Commit: r:1661|slicerrt:1661

2014-04-17, 20:44:32 - Csaba Pinter

Re #505: Clone node plugin clones storage node too; Change color option added to contours plugin, which takes to the Colors module with the corresponding color table selected Commit: r:1662|slicerrt:1662

2014-04-18, 02:45:05 - Csaba Pinter

Re #505: Register plugin added to subject hierarchy that allows selecting two volumes and a registration method Commit: r:1663|slicerrt:1663

2014-04-23, 20:08:12 - Csaba Pinter

Re #505: Subject hierarchy abstract plugin does not have pure virtual functions any more, because the function type plugins (as it turns out there are two main plugin types - role, function) had to override the role-related methods with empty bodies; A hideAllContextMenuActions method was added to the abstract plugin to make it simpler to write showContextMenuActionsForNode methods in plugins; Registration plugin now fully works, switches to the corresponding module and sets the inputs Commit: r:1670|slicerrt:1670

2014-04-23, 21:31:19 - Csaba Pinter

Re #505: Subject hierarchy plugins added: Markups, Models, Gamma Commit: r:1671|slicerrt:1671

2014-04-23, 21:40:26 - Csaba Pinter

Re #505: Add gamma volume to subject hierarchy when created Commit: r:1672|slicerrt:1672

2014-04-25, 02:22:30 - Csaba Pinter

Re #505: Bug fixed in subject hierarchy clone node plugin Commit: r:1681|slicerrt:1681

2014-04-25, 16:50:25 - Csaba Pinter

Re #505: Renamed vtkSubjectHierarchyConstants to vtkMRMLSubjectHierarchyConstants; Fixed failing test due to deprecated Patient level in the scene MRML file Commit: r:1683|slicerrt:1683

2014-04-25, 19:57:08 - Csaba Pinter

Test #505: Methods made const and/or virtual in the SH classes wherever seemed to make sense Commit: r:1684|slicerrt:1684

2014-04-25, 19:57:08 - Csaba Pinter

status: changed from “Accepted” to “Test”

2014-04-30, 22:13:27 - Csaba Pinter

Re #505: Option added to convert regular (non-labelmap) volume to RT dose volume. The user can set the dose unit name and value in dialog boxes when the option is chosen Commit: r:1697|slicerrt:1697

2014-05-18, 02:18:41 - Csaba Pinter

Re #505: Subject hierarchy help text is queried by all the plugins and aggregated by the returned strings Commit: r:1740|slicerrt:1740

2014-05-28, 00:21:14 - Csaba Pinter

status: changed from “Test” to “Fixed”

#506 When ‘Create contour’ is selected in contour morphology, the referenceVolumeChanged is not called

When there is only one volume in the scene it is selected by default, but this->ContourMorphologyNode->GetReferenceVolumeNode() returns NULL.

This causes MorphContour() to fail.

It is most likely because I am not doing the correct workflow, but it seems like it should be correctly populated anyways.

2014-01-08, 20:22:45 - Adam Rankin

status: changed from “New” to “Invalid”

2014-01-08, 20:26:38 - Adam Rankin

Hmm, no it turns out this is still a bug.

When setContourANode is called with only one volume in the scene, it is selected as default but setReferenceVolumeNode is never called.

2014-01-08, 20:26:38 - Adam Rankin

status: changed from “Invalid” to “New”

2014-01-08, 20:56:35 - Adam Rankin

More to it…

When I first load into Slicer and do the ‘Create Contour’, it does not auto-populate the reference volume, but when I delete the contour and re-add it, it is already defaulted onto the previously selected reference volume.

When I select the volume for the first time, qMRMLContourSelectorWidget::referenceVolumeNodeChanged(vtkMRMLNode* node) is not called

2014-01-08, 20:57:51 - Adam Rankin

Ah, I see.

/// TODO void setReferenceVolumeNode(vtkMRMLNode* node);

2014-01-08, 21:08:40 - Csaba Pinter

Thanks for digging into this!

2014-01-11, 01:03:59 - Csaba Pinter

milestone_id: changed from null to “SlicerRt 0.14”

2014-04-07, 20:34:06 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2014-04-07, 20:34:06 - Csaba Pinter

status: changed from “New” to “Accepted”

2014-04-07, 21:01:10 - Csaba Pinter

In slicerrt:1619 Test #507: Removed option to create contours from contour node selector combobox

2014-04-07, 21:01:10 - Csaba Pinter

status: changed from “Accepted” to “Test”

2014-04-17, 14:35:55 - Csaba Pinter

status: changed from “Test” to “Fixed”

#507 DIR validation via vector field analysis and landmark mismatch error

2014-01-09, 00:54:15 - nsh

assigned_to_id: changed from null to “nsh”

2014-01-09, 00:54:15 - nsh

status: changed from “New” to “Accepted”

2014-01-09, 01:01:39 - nsh

(In r:1391|slicerrt:1391) Re #507: intitial implementation of DIR validation plugins

2014-01-09, 01:45:11 - nsh

status: changed from “Accepted” to “Fixed”

2014-01-09, 05:10:38 - Csaba Pinter

Build error introduced by commit 1391

2014-01-09, 05:10:38 - Csaba Pinter

assigned_to_id: changed from “nsh” to “pinter”

2014-01-09, 05:10:38 - Csaba Pinter

status: changed from “Fixed” to “Accepted”

2014-01-09, 05:14:08 - Csaba Pinter

Some recent changes have been simply reverted for vtkSlicerPlastimatchPyModuleLogic.cxx. See commits 1377 and 1388

2014-01-09, 05:16:30 - Csaba Pinter

(In r:1393|slicerrt:1393) Fixed #507: Build error introduced in revision 1391 fixed

2014-01-09, 05:16:30 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

2014-04-07, 20:45:30 - Csaba Pinter

Test #507: Removed option to create contours from contour node selector combobox Commit: r:1619|slicerrt:1619

2014-04-07, 20:45:30 - Csaba Pinter

status: changed from “Fixed” to “Test”

2014-04-07, 21:01:28 - Csaba Pinter

Status set to Fixed as previous commit was accidentally attached to this ticket instead of #506

2014-04-07, 21:01:28 - Csaba Pinter

status: changed from “Test” to “Fixed”

#508 DIR validation via vector field analysis and landmark mismatch error

2014-01-09, 15:54:38 - nsh

More work on Slicer plugins

2014-01-09, 15:54:38 - nsh

assigned_to_id: changed from null to “nsh”

2014-01-09, 15:57:19 - nsh

(In r:1394|slicerrt:1394) Re #508 Chnges in DIR validation plugins

2014-01-09, 16:04:22 - nsh

status: changed from “New” to “Fixed”

#509 Clean install of Slicer and SlicerRt produces error messages and failed loaded modules

Downloaded Slicer4 stable 4.3.1 64 bit, installed SlicerRt via extension manager and restarted.

Received two errors with the following content:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
  Error(s):
    Cannot load library C:/Users/User/AppData/Roaming/NA-MIC/Extensions-22599/SlicerRT/lib/Slicer-4.3/cli-modules/plastimatch_slicer_bsplineLib.dll: The application has failed to start because its side-by-side configuration is incorrect. Please see the application event log or use the command-line sxstrace.exe tool for more detail.
  Error(s):
    Cannot load library C:/Users/User/AppData/Roaming/NA-MIC/Extensions-22599/SlicerRT/lib/Slicer-4.3/cli-modules/plastimatch_slicer_dicomrt_exportLib.dll: The application has failed to start because its side-by-side configuration is incorrect. Please see the application event log or use the command-line sxstrace.exe tool for more detail.
  Error(s):
    Cannot load library C:/Users/User/AppData/Roaming/NA-MIC/Extensions-22599/SlicerRT/lib/Slicer-4.3/cli-modules/plastimatch_slicer_dicomrt_importLib.dll: The application has failed to start because its side-by-side configuration is incorrect. Please see the application event log or use the command-line sxstrace.exe tool for more detail.
  Error(s):
    Cannot load library C:/Users/User/AppData/Roaming/NA-MIC/Extensions-22599/SlicerRT/lib/Slicer-4.3/cli-modules/plastimatch_slicer_landwarpLib.dll: The application has failed to start because its side-by-side configuration is incorrect. Please see the application event log or use the command-line sxstrace.exe tool for more detail.
  Error(s):
    Cannot load library C:/Users/User/AppData/Roaming/NA-MIC/Extensions-22599/SlicerRT/lib/Slicer-4.3/cli-modules/plastimatch_slicer_xformwarpLib.dll: The application has failed to start because its side-by-side configuration is incorrect. Please see the application event log or use the command-line sxstrace.exe tool for more detail.
  Error(s):
    Cannot load library C:/Users/User/AppData/Roaming/NA-MIC/Extensions-22599/SlicerRT/lib/Slicer-4.3/qt-loadable-modules/qSlicerContourComparisonModule.dll: The application has failed to start because its side-by-side configuration is incorrect. Please see the application event log or use the command-line sxstrace.exe tool for more detail.
  Error(s):
    Cannot load library C:/Users/User/AppData/Roaming/NA-MIC/Extensions-22599/SlicerRT/lib/Slicer-4.3/qt-loadable-modules/qSlicerDicomRtExportModule.dll: The application has failed to start because its side-by-side configuration is incorrect. Please see the application event log or use the command-line sxstrace.exe tool for more detail.
  Error(s):
    Cannot load library C:/Users/User/AppData/Roaming/NA-MIC/Extensions-22599/SlicerRT/lib/Slicer-4.3/qt-loadable-modules/qSlicerPlastimatchPyModule.dll: The application has failed to start because its side-by-side configuration is incorrect. Please see the application event log or use the command-line sxstrace.exe tool for more detail.


and:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
  Error(s):
    CLI executable: C:/Users/User/AppData/Roaming/NA-MIC/Extensions-22599/SlicerRT/lib/Slicer-4.3/cli-modules/plastimatch_slicer_bspline.exe
    Failed to retrieve Xml Description
Fail to instantiate module 'plastimatch_slicer_bspline' 
  Error(s):
    CLI executable: C:/Users/User/AppData/Roaming/NA-MIC/Extensions-22599/SlicerRT/lib/Slicer-4.3/cli-modules/plastimatch_slicer_dicomrt_export.exe
    Failed to retrieve Xml Description
Fail to instantiate module 'plastimatch_slicer_dicomrt_export' 
  Error(s):
    CLI executable: C:/Users/User/AppData/Roaming/NA-MIC/Extensions-22599/SlicerRT/lib/Slicer-4.3/cli-modules/plastimatch_slicer_dicomrt_import.exe
    Failed to retrieve Xml Description
Fail to instantiate module 'plastimatch_slicer_dicomrt_import' 
  Error(s):
    CLI executable: C:/Users/User/AppData/Roaming/NA-MIC/Extensions-22599/SlicerRT/lib/Slicer-4.3/cli-modules/plastimatch_slicer_landwarp.exe
    Failed to retrieve Xml Description
Fail to instantiate module 'plastimatch_slicer_landwarp' 
  Error(s):
    CLI executable: C:/Users/User/AppData/Roaming/NA-MIC/Extensions-22599/SlicerRT/lib/Slicer-4.3/cli-modules/plastimatch_slicer_xformwarp.exe
    Failed to retrieve Xml Description
Fail to instantiate module 'plastimatch_slicer_xformwarp'


2014-01-09, 17:04:10 - Adam Rankin

Resolved by installing either 2008 64 bit c++ redistributable or .NET 4.5.1

If 2008 64 bit c++ redist is required by Slicer, it should be installed with Slicer?

2014-01-09, 17:04:10 - Adam Rankin

assigned_to_id: changed from null to “rankin”

2014-01-09, 17:04:10 - Adam Rankin

status: changed from “New” to “Fixed”

2014-01-09, 17:16:59 - Csaba Pinter

It should be provided by VS. I’m not sure why you didn’t have it, because for building anything 64bit you need to manually enable installing x64 tools in the VS setup process, and I guess it should add this too.

2014-01-09, 17:17:06 - Csaba Pinter

milestone_id: changed from null to “SlicerRt 0.13”

#510 Transform visualizer crashes on linux

After generating a few visualizations, the transform visualizer crashes (for example, in slice grid visualization mode) on Linux (Ubuntu 12.04). File that was used to reproduce the crash is attached.

2014-01-09, 17:44:43 - Andras Lasso

file:c3L72EEvur44TZacwqjQYw

2014-01-09, 17:44:43 - Andras Lasso

Attachment added: “2_1-vf-c.mha”

2014-01-09, 17:51:35 - Andras Lasso

I couldn’t reproduce the crash on Windows, so it’s either an OS-specific or machine-specific issue. Need to test this on a linux VM.

2014-01-09, 18:01:12 - Csaba Pinter

@FranklinK If you don’t have access to a Linux that has a Slicer built on, or you are willing to build Slicer on, please find me.

2014-07-13, 06:05:15 - Csaba Pinter

@lassoan Does transform visualization in the Transforms module work under linux?

2014-07-13, 12:21:11 - Andras Lasso

I am not aware of any problems. This ticket should have been closed when the feature was integrated into the Slicer core.

2014-07-13, 12:21:11 - Andras Lasso

status: changed from “New” to “Invalid”

#511 Make a multidimension data node store only a sequence of nodes

Currently it stores a sequence of node bundles. Need to simplify it to store only a sequence of nodes of the same type. See more info here: http://www.na-mic.org/Wiki/index.php/2014_Project_Week:MultidimensionalDataSupport

2014-01-09, 23:41:27 - Andras Lasso

(In r:1398|slicerrt:1398) re #511: Multidim data node and widget is updated for store only a simple node sequence

2014-01-09, 23:41:52 - Andras Lasso

description: changed from “Currently it stores a seque…” to “Currently it stores a seque…”

2014-01-10, 08:06:02 - Andras Lasso

(In r:1399|slicerrt:1399) re #511: Multidimension browser node is mostly functional again (tracked US sequence containing 2000 frames and transforms can be loaded in about 15 sec, replay is about 30fps)

2014-01-14, 01:07:30 - Andras Lasso

(In r:1409|slicerrt:1409) re #511: Basic management of display nodes are added and so browsing of nodes mostly works (for volumes, transforms, models, fiducials, etc)

2014-01-14, 14:16:57 - Andras Lasso

(In r:1410|slicerrt:1410) re #511: Multidimension performance improvements (only copy essential part of the data nodes for volumes and modules)

2014-01-15, 01:30:09 - Andras Lasso

(In r:1411|slicerrt:1411) re #511: Fixed removing of virtual browser output nodes

2014-01-15, 02:02:26 - Andras Lasso

(In r:1412|slicerrt:1412) re #511: Fixed visualization nodes references

2014-01-15, 14:47:18 - Andras Lasso

(In r:1413|slicerrt:1413) re #511: Improved multidim GUI

2014-01-15, 17:31:38 - Andras Lasso

(In r:1415|slicerrt:1415) re #511: Added multidim icons

2014-01-15, 18:32:16 - Andras Lasso

(In r:1416|slicerrt:1416) re #511: Added extension icon

2014-01-15, 18:33:38 - Andras Lasso

(In r:1417|slicerrt:1417) re #511: Added preliminary version of MultidimData extension icon

2014-01-16, 15:13:54 - Andras Lasso

Basic implementation is done. Still need to implement saving/loading and tune the GUI - but these activities are tracked in other tickets.

2014-01-16, 15:13:54 - Andras Lasso

status: changed from “New” to “Fixed”

#512 Add feature to allow uniform sampling of glyph

Currently the glyphs are randomly generated in the deformation field. It would be nice to generate uniform sampling of glyph in the field as VV does.

2014-04-17, 16:52:35 - Andras Lasso

Fixed all known transform visualization issues and moved the functionality to the Slicer core (2014-04-17).

2014-04-17, 16:52:35 - Andras Lasso

status: changed from “New” to “Fixed”

#513 Review plastimatch build for non-determinism

Csaba & Andras have found periodic build failures which may be caused by non-deterministic build order and missing make dependencies. This ticket is for reviewing the plastimatch build system to find them.

2014-01-16, 16:43:38 - Csaba Pinter

milestone_id: changed from null to “SlicerRt 0.14”

2014-01-16, 17:42:20 - Greg Sharp

assigned_to_id: changed from null to “gregsharp”

2014-04-03, 18:14:52 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.14” to “SlicerRt 0.15”

2014-04-08, 22:27:02 - Greg Sharp

Re #513 Fix incorrect build order of PlmCommon relative to dependent modules Commit: r:1627|slicerrt:1627

2014-09-26, 14:55:32 - Csaba Pinter

I haven’t had this error since we reported the issue. That said, I’m not sure if it was not my fault in some way. Moving the ticket to future with low priority. @gregsharp: Let me know if you think otherwise

2014-09-26, 14:55:35 - Csaba Pinter

priority: changed from “Normal (3)” to “Low (4)”

2014-09-26, 14:55:43 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.15” to “Future”

2014-09-26, 17:52:38 - Greg Sharp

Sounds good. Thanks!

2015-09-10, 14:55:11 - Greg Sharp

milestone_id: changed from “Future” to “SlicerRt 0.18”

2015-09-10, 15:01:46 - Greg Sharp

milestone_id: changed from “SlicerRt 0.18” to “Future”

#514 Complete MultidimData documentation

2014-01-16, 15:19:13 - Andras Lasso

(In r:1421|slicerrt:1421) re #514: Fixed links to online help and contributors

2014-01-21, 02:03:27 - Andras Lasso

milestone_id: changed from “MultidimData 0.1.0” to “MultidimData 0.2.0”

2014-01-21, 05:10:23 - Andras Lasso

(In r:1452|slicerrt:1452) re #514: Fixed links to screenshots and help pages

2014-01-23, 02:02:49 - Andras Lasso

(In r:1456|slicerrt:1456) re #514: Added MultidimData sample data sets

2014-07-19, 13:41:18 - Andras Lasso

milestone_id: changed from “MultidimData 0.2.0” to “MultidimData 0.2.1”

2015-09-30, 16:07:05 - Andras Lasso

status: changed from “New” to “Fixed”

#515 Create PlmImage to MRML volume conversion utility function

2014-01-21, 04:27:55 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.14” to “SlicerRt 1.0”

2015-02-23, 02:44:37 - Csaba Pinter

milestone_id: changed from “SlicerRt 1.0” to “Future”

#516 Use vtkVolumesOrientedResampleUtility for contour conversion

See TODO comment in function vtkConvertContourRepresentations::ConvertFromModelToIndexedLabelmap

2014-01-21, 04:27:56 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.14” to “SlicerRt 1.0”

2014-11-07, 15:36:57 - Csaba Pinter

milestone_id: changed from “SlicerRt 1.0” to “SlicerRt 0.15”

2015-01-13, 21:08:23 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.15 (DICOM export)” to “SlicerRt 0.17 (Segmentations)”

2015-01-21, 18:48:30 - wangk

@pinter, I looked at the code in vtkConvertContourRepresentations::ConvertFromModelToIndexedLabelmap, especially in SlicerRtCommon::ConvertVolumeNodeToItkImage() where to conversion happens. I think the two functions are not doing the same thing. vtkVolumesOrientedResampleUtility::ResampleInputVolumeToReferenceVolume() resamples the input volume where the SlicerRtCommon::ConvertVolumeNodeToItkImage() does not resample image, it just calculates the new direction cosine. and I think for now the consesus is that anything contour related should not be worked on as long as it works for now. Can we invalidate this ticket?

2015-01-21, 18:58:45 - Csaba Pinter

Although I reported this ticket, I don’t know much about it (it all came from a TODO in I guess Adam’s code that seemed important). If you are sure that we don’t need to use this function for the current implementation, then yes, please do so. Thanks!

2015-01-21, 19:19:46 - wangk

assigned_to_id: changed from null to “wangk”

2015-01-21, 19:19:48 - wangk

status: changed from “New” to “Accepted”

2015-01-21, 19:24:07 - wangk

Invalid #516: Invalid this ticket as the two conversion are not the same.

Removed the ‘TODO’ comments. the conversion in vtkVolumesOrientedResampleUtility is resampling while the conversioin in this class is just direction cosine calculation and vtk to itk imagedata export.
Commit: r:2100|slicerrt:2100

2015-01-21, 19:24:07 - wangk

status: changed from “Accepted” to “Invalid”

2015-01-21, 20:06:21 - Csaba Pinter

Thanks!

#517 Make multidim class and member names more consistent

MultidimData node -> Sequence node node parameter value -> node index value etc.

2014-01-17, 01:01:15 - Andras Lasso

(In r:1430|slicerrt:1430) re #517: Renamed MultidimData to Sequence (as now a node contains a sequence of nodes and not a sequence of node bundles)

2014-01-17, 01:06:32 - Andras Lasso

(In r:1431|slicerrt:1431) re #517: Removed duplicate files remained after renames

2014-01-20, 19:46:41 - Andras Lasso

(In r:1445|slicerrt:1445) fixed #517: Removed the word ‘bundle’. Now only Sequence is used everywhere.

2014-01-20, 19:46:41 - Andras Lasso

status: changed from “New” to “Fixed”

#518 Show loaded sequence metafile image by default

Show loaded sequence metafile image by default and also create a default browser node

2014-01-17, 02:41:14 - Andras Lasso

(In r:1434|slicerrt:1434) re #518: Added creation of default browser node when a sequence metafile is imported

2014-01-17, 02:56:55 - Andras Lasso

(In r:1435|slicerrt:1435) re #518: Added display of image in the slice viewers at the end of sequence metafile import

2014-01-17, 02:57:06 - Andras Lasso

status: changed from “New” to “Fixed”

#519 Implement saving of sequence nodes

Implement saving of sequence nodes into the scene. First support saving of sequences into MRB (or scene files) and then add support for native formats.

2014-01-17, 17:26:37 - Andras Lasso

(In r:1436|slicerrt:1436) re #519: Implemented saving of sequence nodes in MRB file. Not perfect: the sequence nodes don’t show up in the scene save dialog (but works if saving scene as a bundle)

2014-01-20, 13:55:15 - Andras Lasso

(In r:1437|slicerrt:1437) re #519: Saving of sequences into mrb files is implemented. It is slow when saving several thousands of nodes and there are some minor remaining issues (default path, modified status, etc.)

2014-01-20, 19:31:51 - Andras Lasso

(In r:1443|slicerrt:1443) fixed #519: Fixed most issues with the saving of sequence nodes (further improvements will be tracked in separate tickets). Also made several small GUI improvements.

2014-01-20, 19:31:51 - Andras Lasso

status: changed from “New” to “Fixed”

2014-01-20, 19:40:16 - Andras Lasso

(In r:1444|slicerrt:1444) re #519: Fixed a minor Sequences module GUI issue: candidate data nodes are now updated when the last data node is deleted

#520 Plastimatch is statically linked in the binaries thus excessively increasing the package size

Plastimatch libraries are statically linked in many binaries. A decrease of about 31.8MB or 64% can potentially be achieved by this.

vtkSlicerPlastimatchPyModuleLogic vtkSlicerDicomRtExportModuleLogic vtkSlicerContourComparisonModuleLogic vtkSlicerDoseComparisonModuleLogic vtkSlicerContoursModuleMRML

2014-01-22, 16:45:36 - Csaba Pinter

description: changed from “Now that we have PlmCommon,…” to “Plastimatch libraries are s…”

2014-01-27, 17:05:38 - Csaba Pinter

assigned_to_id: changed from “pinter” to null

2014-04-03, 18:14:52 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.14” to “SlicerRt 0.15”

2014-11-07, 15:11:54 - Csaba Pinter

Moved to SlicerRT 0.16

2014-11-07, 15:11:54 - Csaba Pinter

tag: changed from “” to “”

2014-11-07, 15:11:54 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.15” to “SlicerRt 0.16”

2015-06-04, 22:09:42 - Csaba Pinter

Moved to 0.19

2015-06-04, 22:09:42 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.18” to “SlicerRt 0.19”

2016-07-26, 00:45:18 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.19” to “SlicerRt 1.1”

#521 Contour rasterization evaluation

2014-01-20, 19:44:40 - Csaba Pinter

file:bnksyaGGSr47tcacwqjQXA

2014-01-20, 19:44:40 - Csaba Pinter

Attachment added: “JenniferAndrea_499Proposal_v3.docx”

2014-03-31, 03:32:49 - Csaba Pinter

file:aHNjrIUiur47imacwqEsg8

2014-03-31, 03:32:49 - Csaba Pinter

Attachment added: “JenniferAndrea_CISC499Poster_v3.pptx”

2014-03-31, 03:32:56 - Csaba Pinter

file:aMzR98Uiur44tdacwqEsg8

2014-03-31, 03:32:56 - Csaba Pinter

Attachment added: “testingResults.xlsx”

2014-03-31, 03:33:08 - Csaba Pinter

image:aTmjXGUiur47KXacwqjQXA

2014-03-31, 03:33:08 - Csaba Pinter

Attachment added: “vtkPolyDataToLabelmapFilter_SequenceDiagram.gif”

2014-03-31, 03:34:17 - Csaba Pinter

Attachment added: “testingResults.xlsx”

2014-03-31, 03:34:07 - Csaba Pinter

Attachment added: “vtkPolyDataToLabelmapFilter_SequenceDiagram.gif”

2014-04-04, 17:58:12 - Csaba Pinter

Set the tolerance value to the one found by Jen, and update the baselines accordingly.

2014-04-04, 17:58:12 - Csaba Pinter

assigned_to_id: changed from “j.andrea” to “pinter”

2014-04-06, 16:07:15 - Csaba Pinter

Re #271, Re #521: Added literature related to rasterization Commit: r:1613|slicerrt:1613

2014-04-07, 21:48:55 - Csaba Pinter

file:bQXmvKVP4r44kYacwqEsg9

2014-04-07, 21:48:55 - Csaba Pinter

Attachment added: “DVH_agreements_tolerance_1_125.txt”

2014-04-07, 21:48:55 - Csaba Pinter

file:bQ2l84VP4r44kYacwqEsg9

2014-04-07, 21:48:55 - Csaba Pinter

Attachment added: “DVH_agreements_tolerance_default.txt”

2014-04-07, 21:49:27 - Csaba Pinter

I ran some tests with the found tolerance value of 1.125 and the results became much worse in some cases (see attachments). Further investigation is needed

2014-04-07, 21:49:27 - Csaba Pinter

assigned_to_id: changed from “pinter” to null

2014-07-12, 17:01:34 - Csaba Pinter

assigned_to_id: changed from null to “j.andrea”

2014-07-12, 17:01:43 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.14” to “SlicerRt 0.15”

2014-08-22, 16:53:46 - Csaba Pinter

Re #424, Re #521: Updated tricky contours dataset to contain plan and dose volume for testing computed DVHs for different rasterization scenarios Commit: r:1938|slicerrt:1938

2015-01-13, 21:08:52 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.15 (DICOM export)” to “SlicerRt 0.16”

2015-02-11, 17:44:22 - Csaba Pinter

assigned_to_id: changed from “j.andrea” to null

2015-02-11, 17:44:29 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.16” to “SlicerRt 0.18”

2015-06-02, 20:41:55 - Csaba Pinter

assigned_to_id: changed from null to “Sunderlandkyl”

2015-06-16, 20:00:05 - Kyle Sunderland

Re #271, Re #521, Added papers relevant to rasterization. Commit: r:2323|slicerrt:2323

2015-07-09, 20:48:20 - Kyle Sunderland

Re #521 Added a prototype python class that creates and rasterizes an implicit phantom at a user-specified resolution. The class also has dose volume calculation capabilities for a provided reference labelmap and RtPlan. Commit: r:2340|slicerrt:2340

2015-07-15, 21:36:02 - Kyle Sunderland

Re #521: Add a skeleton python module for constructing and comparing labelmaps at arbitrary resolutions. Module also contains the non-functional code for comparing contour to labelmap distances. Commit: r:2348|slicerrt:2348

2015-07-17, 16:03:33 - Kyle Sunderland

Re #521: Added function and GUI elements for resampling labelmaps at a specified resolution to the Python module. Commit: r:2352|slicerrt:2352

2015-07-17, 20:49:19 - Kyle Sunderland

Re #521: Added functions to calculate the Hausdorff distance and Dice Coefficient from two labelmaps with the same resolution and added a function to create a fractional labelmap from a higher resolution binary labelmap. Also removed extra spaces from both python files. Commit: r:2353|slicerrt:2353

2015-07-20, 18:55:18 - Kyle Sunderland

Re #521: Remove the previously used methods for calculating hausdorff and dice and replace them with methods calling the SimpleITK filters, which return the same results faster. Created labelmaps are now given appropriate names when created. Removed the voxel to contour point comparison code. Commit: r:2354|slicerrt:2354

2015-07-22, 17:08:39 - Kyle Sunderland

Re #521: Added a marching cube method to construct a surface for fractional labelmaps. Normalized fractional labelmaps to the range of 0-1. Changed the vtkImageData point access to use the numpy array rather than the GetScalar/SetScalar functions, however the numpy method seems to run slower. Changed the method for adding to fractional labelmap volumes to try and take into account voxels which overlap with multiple voxels in the new labelmap. Commit: r:2363|slicerrt:2363

2015-07-23, 16:02:52 - Kyle Sunderland

Re #521: Move labelmap creation methods to a C++ class. Change marching cubes filter to use vtkMarchingCubes instead of vtkDiscreteMarching Cubes. Commit: r:2367|slicerrt:2367

2015-07-23, 16:43:02 - Kyle Sunderland

Re #521: Change dose calculation engine to use new crossplane and inplane profiles. Commit: r:2368|slicerrt:2368

2015-07-23, 18:00:42 - Kyle Sunderland

Re #521: Fix distance units for profile dose calculation. Fix syntax error. Commit: r:2369|slicerrt:2369

2015-07-23, 22:16:22 - Kyle Sunderland

Re #521: Greatly increase speed of labelmap and fractional labelmap creation by reducing the number of GetScalarPointer calls and using pointer arithmetic. Commit: r:2370|slicerrt:2370

2015-07-25, 22:00:23 - Kyle Sunderland

Re #521: Change the implementation of the fractional labelmap creation implementation to make the logic more sound. Add currently WIP code for calculating a distancemap between labelmaps of different resolution. Commit: r:2371|slicerrt:2371

2015-07-27, 14:42:09 - Csaba Pinter

status: changed from “New” to “Accepted”

2015-07-27, 16:54:12 - Kyle Sunderland

Re #521: Finish implementing function to calculate the distancemap between the borders of two volumes of varying resolution. Appears to give correct results, however the current implementation is too slow. Need to find a more efficient method. Commit: r:2373|slicerrt:2373

2015-07-27, 21:22:04 - Kyle Sunderland

Re #521: Increase the speed of the hausdorff distance calculation by storing the border voxels of each binary labelmap in vtkPoints. The function is still quite slow however, and could probably use some adjustments. Commit: r:2374|slicerrt:2374

2015-07-28, 19:08:13 - Kyle Sunderland

Re #521: Migrate the dose volume calculation functions to the C++ logic class. Also, modify the DoseCalculationEngine.py to utilize the C++ functions for creating labelmaps from implicit functions. Commit: r:2376|slicerrt:2376

2015-07-31, 15:48:09 - Kyle Sunderland

Re #521: Implement dice coefficient function and remove use of the ITK filter. Commit: r:2380|slicerrt:2380

2015-07-31, 15:53:18 - Csaba Pinter

@Sunderlandkyl Next time please indicate the reason for such duplications in the commit message. If I saw such a message without explanation I’d think it’s a bad move. However in this case you discovered undeterministic behavior in ITK’s dice algorithm and with the submission deadline coming fast you decided to quickly re-implement it because it’s really simple. Did you check ITK’s code to try to understand the reason of the undeterminism?

2015-07-31, 16:47:09 - Kyle Sunderland

Understood. I have looked at the code, but I have not been able to find what would cause this behavior.

2015-07-31, 17:45:20 - Csaba Pinter

Thanks!

2015-08-04, 00:23:51 - Kyle Sunderland

Re #521: Added a function which creates a set of implicit functions modelled after the RANDO ENT dataset. Attempt to reduce memory usage with tight extents on the function labelmaps and by changing the dose volume from double to float. The memory usage is still too high to reliably create DVH for labelmaps with a voxel size smaller than 0.3mm. Commit: r:2384|slicerrt:2384

2015-10-09, 00:21:00 - Kyle Sunderland

Re #521: Modified the fractional labelmap function to create a labelmap of unsigned char instead of a floating point type. Renamed the ContourRasterizationEvaluationHelp classes to ContourRasterizationEvaluationUtil. Commit: r:2476|slicerrt:2476

2016-01-12, 17:12:05 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.18” to “Student projects”

2017-08-21, 15:54:11 - Kyle Sunderland

Re #521: Update dose calculation code to work in the current version of Slicer Commit: r:3210|slicerrt:3210

2017-08-31, 19:23:16 - Csaba Pinter

Re #521: Fix various bugs and typos

#522 Default color tables clutter the save window

THe default color tables (dose, isodoes, gamma) should not be offered to save

2014-01-20, 21:25:15 - Csaba Pinter

(In r:1446|slicerrt:1446) Fixed #522: Default color tables are hidden, thus not offered when saving data; RSNA self test deleted due to ambiguity (it is not maintained any more, but people might still use it as an example)

2014-01-20, 21:25:15 - Csaba Pinter

status: changed from “New” to “Fixed”

#523 Contour morphology tests randomly fail due to using the same temporary MRML scene file

See http://slicer.cdash.org/viewTest.php?onlyfailed&buildid=189248

2014-01-20, 22:05:09 - Csaba Pinter

(In r:1447|slicerrt:1447) Fixed #523: Fixed randomly failing Contour Morphology tests by renaming the temporary MRML scene file

2014-01-20, 22:05:09 - Csaba Pinter

status: changed from “New” to “Fixed”

#524 Snap to closest index value if index type is numeric

If the index type is numeric then don’t require exact match of the index value of the synchronized nodes, but retrieve the closest value instead.

2014-01-20, 23:01:55 - Andras Lasso

(In r:1448|slicerrt:1448) re #524: Added index type to Sequence node. It is not used yet anywhere, just displayed and saved in the node. Tuned copying of core node types (disabled singleton nodes copying, fixed Camera node copying).

2014-01-20, 23:03:38 - Andras Lasso

(In r:1449|slicerrt:1449) re #524: Minor tuning of the qSlicerSequenceBrowserModuleWidget.ui

2014-01-21, 02:03:27 - Andras Lasso

milestone_id: changed from “MultidimData 0.1.0” to “MultidimData 0.2.0”

2014-07-19, 13:41:18 - Andras Lasso

milestone_id: changed from “MultidimData 0.2.0” to “MultidimData 0.2.1”

2015-09-30, 16:10:31 - Andras Lasso

Snap to previous value should be performed all cases when interpolation is not available (this would give the same result when displaying real-time date, i.e., we never know what will happen in the future)

2015-09-30, 16:10:31 - Andras Lasso

status: changed from “New” to “Invalid”

#525 Many warnings are logged about duplicate database connections when loading DICOM-RT

Such as ‘QSqlDatabasePrivate::addDatabase: duplicate connection name ‘SlicerRtTagCache’, old connection removed.’

2014-01-20, 23:10:21 - Csaba Pinter

(In r:1450|slicerrt:1450) Fixed #525: Properly close database connections after using in vtkSlicerDicomRtReader, thus eliminating the warning messages

2014-01-20, 23:10:21 - Csaba Pinter

status: changed from “New” to “Fixed”

2014-01-21, 16:36:15 - Csaba Pinter

(In r:1454|slicerrt:1454) Re #525: Code made easier to read

#526 Sort sequence data nodes based on index value if index type is numeric

Sort sequence data nodes based on index value if index type is numeric: if a new node is added then insert it into the correct location. Maybe do numeric/alphanumeric sorting when the value column is clicked?

2014-01-21, 02:03:27 - Andras Lasso

milestone_id: changed from “MultidimData 0.1.0” to “MultidimData 0.2.0”

2014-07-19, 13:41:18 - Andras Lasso

milestone_id: changed from “MultidimData 0.2.0” to “MultidimData 0.2.1”

2015-09-30, 21:25:53 - Andras Lasso

moved to https://github.com/SlicerRt/Sequences/issues/4

2015-09-30, 21:25:53 - Andras Lasso

status: changed from “New” to “Invalid”

#527 Color node entry is not removed when a contour is deleted

The reason is that the contour is not in the scene any more, so the associated subject hierarchy node cannot be found. This is probably because GetAssociatedDataNode works with objects instead of IDs.

2014-01-21, 22:07:55 - Csaba Pinter

(In r:1455|slicerrt:1455) Fixed #527: Operations related to contour deletion (removing associated subject and model hierarchy nodes and color table entry) happen before removing the node from the scene, not after, thus enabling hierarchy queries while still in the scene

2014-01-21, 22:07:55 - Csaba Pinter

status: changed from “New” to “Fixed”

#528 Reading-writing sequences with thousands of data nodes is slow

Writing of long mha files contents to mrb is slow. Writing of 2000 volume nodes can take a minute. Probably the zip compression takes a long time.

Either try to zip with 0 compression or don’t zip it, just store it as regular file(s).

Use the same approach as the volume archetype? Use special multi-node storage formats (such as nrrd file for volume node)?

2014-01-21, 02:03:27 - Andras Lasso

milestone_id: changed from “MultidimData 0.1.0” to “MultidimData 0.2.0”

2014-01-21, 13:35:13 - pieper

Is the problem the mha format? I don’t use it but isn’t the ‘a’ for ascii and it’s not a good format in general for images?

2014-01-21, 13:53:41 - Andras Lasso

It’s not mha but mrb: currently we store the private scene in the sequence node as an mrb file. Mha is at least a few times faster for images and of course much-much faster for transforms.

The overhead in creating an mrb file is probably the writing of each image/transform file to disk, then reading from the disk and zipping to disk, then deleting the files.

Probably we can keep this saving mechanism but need to add native formats as well (mha, nrrd, etc.) for performance and also compatibility reasons.

2014-01-21, 13:55:36 - Andras Lasso

By the way, mha means ‘archive’ (when header and image is in the same file. While mhd refers to ‘header’ (when it’s just a header; the image data is in a separate file). ASCII/bin encoding and compression flags are specified in the header.

2014-01-21, 14:32:10 - pieper

Okay - makes sense.

But if the problem is the mrb and zipping, why not just stick with the unzipped mrml tree where everything is already separate files?

Or, if you still want the zip and don’t care about the file format internally, how about making a storage node that is ‘mrb-aware’ and writes directly into the zip to avoid all the extra steps.

2014-07-19, 13:41:18 - Andras Lasso

milestone_id: changed from “MultidimData 0.2.0” to “MultidimData 0.2.1”

2015-09-30, 16:17:41 - Andras Lasso

Moved to https://github.com/SlicerRt/Sequences/issues/2

2015-09-30, 16:17:41 - Andras Lasso

status: changed from “New” to “Invalid”

#529 Real-time replay of sequences

Currently replay of sequences is not real-time, but all the nodes are replayed with an adjustable delay between them. It would be useful to have a fixed-rate replay, which could skip sequence items as needed, to make sure that the requested replay rate is achieved.

2014-01-21, 02:03:28 - Andras Lasso

milestone_id: changed from “MultidimData 0.1.0” to “MultidimData 0.2.0”

2014-07-19, 13:41:18 - Andras Lasso

milestone_id: changed from “MultidimData 0.2.0” to “MultidimData 0.2.1”

2015-01-21, 21:49:24 - Andras Lasso

fixed #529: Playback rate is in real FPS now (skipping frames if necessary). Playback immediately starts even if the module widget is not activated. Commit: r:2103|slicerrt:2103

2015-01-21, 21:49:24 - Andras Lasso

status: changed from “New” to “Fixed”

#530 Allow editing of data nodes in a sequence

Currently when a data node is shown in the scene by the sequence browser module, some of the attributes (typically simple int, string values) are copied, while larger attributes (such as volumes, meshes, etc.) are referenced. If the referenced data is changed in the scene then it is changed in the sequence node as well, this is good. However, if the small attributes are changed in the scene then those changes are not saved into the sequence.

Need to have a two-way sync mechanism that updates the sequence node with any changes made in a browser output node; and that updates all browser output nodes if a data node in a sequence is changed.

2014-01-21, 02:03:28 - Andras Lasso

milestone_id: changed from “MultidimData 0.1.0” to “MultidimData 0.2.0”

2014-07-19, 13:41:18 - Andras Lasso

milestone_id: changed from “MultidimData 0.2.0” to “MultidimData 0.2.1”

2015-09-30, 21:26:27 - Andras Lasso

Moved to https://github.com/SlicerRt/Sequences/issues/5

2015-09-30, 21:26:27 - Andras Lasso

status: changed from “New” to “Invalid”

#531 Port all multi-volume features to the multidimensional data extension

2014-01-21, 02:03:28 - Andras Lasso

milestone_id: changed from “MultidimData 0.1.0” to “MultidimData 0.2.0”

2014-02-05, 21:39:51 - Andrey Fedorov

Andras, I tested SequenceBrowser today with the prostate DCE dataset (the one available on the wiki that I shared with you earlier). Scrolling through time is noticeably slower than in MultiVolumeExplorer. Is the current version the re-architectured implementation, or you have not yet implemented the improvements you discussed at the project week?

Here is the script I used to create one scalar volume per frame from the DCE series imported from DICOM, in case this can save you few minutes:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

'''
 Helper function to extract frames from a multivolume one by
 one and add each frame as a separate scalar volume to the scene.
 Input: multivolume node and a reference scalar volume node that should
  have the same geometry as the multivolume.
'''
def explodeMultivolume(mvName, refName):
  mv = slicer.util.getNode(mvName)
  ref = slicer.util.getNode(refName)
  mvi = mv.GetImageData()

  for i in range(mv.GetNumberOfFrames()):
    e0 = vtk.vtkImageExtractComponents()
    e0.SetInput(mvi)
    e0.SetComponents(i)
    e0.Update()

    # clone reference
    frame = slicer.modules.volumes.logic().CloneVolume(slicer.mrmlScene, ref,'frame'+str(i))
    frame.SetAndObserveImageData(e0.GetOutput())


2014-02-05, 22:44:07 - Andras Lasso

Thanks for testing this. The browsing is indeed slower (with the multi-volume it takes 6 sec to play the whole sequence; with the multidimdata it takes 7sec if shown in one viewer and about 10 if shown in all 3 slice viewers). There is no fundamental difference between how the volume is switched (no copying of pixels is done), so probably I just have to find and suppress a few unnecessary modification events to prevent extra updates. I’ll have a look at this.

2014-02-05, 22:55:57 - Andrey Fedorov

I guess I am not doing something right. When I try SequenceBrowser and just drag the slider manually, there is noticeable lag in updating the viewer (with just one viewer showing the sequence).

2014-02-05, 23:01:45 - Andras Lasso

How long the replay takes if you set the replay rate to 1000?

2014-02-05, 23:03:04 - Andras Lasso

re #531: Added StartModify/EndModify to reduce the number of modified events fired during sequence browsing Commit: r:1494|slicerrt:1494

2014-02-05, 23:06:32 - Andrey Fedorov

About 5 seconds.

Do you see any noticeable differences if you manually drag the slider in MultiVolumeExplorer vs SequenceBrowser for the prostate DCE dataset?

2014-02-05, 23:10:36 - Andras Lasso

5 seconds is good, that should be about the same speed as the multivolume. For me at the beginning the slice browsing with multidimdata is immediate (I think the small patch that I’ve committed just now helps) and then it gets slower and slower. I have to investigate what causes the slowdown (maybe some observers get added at each iteration).

2014-02-05, 23:23:27 - Andrey Fedorov

Note that in multivolume playback time for the whole sequence is constrained by the timer timeout, which is set to 50 ms (https://github.com/fedorov/MultiVolumeExplorer/blob/master/Py/qSlicerMultiVolumeExplorerModuleWidget.py#L23-L26), so for 60 frames it will take at least 3 seconds, independently of the actual data needed. I just tried to change the timeout to 1, and the playback time is about 2 sec.

2014-02-05, 23:25:44 - Andras Lasso

re #531: Fixed duplicate copying of node during browsing Commit: r:1495|slicerrt:1495

2014-02-05, 23:34:23 - Andras Lasso

I’ve found another bug, the nodes were copied twice (and once pixels were copied as well). Now single-view replay takes about 2-3 sec, but 3-view replay still takes about 5-6 sec.

2014-02-05, 23:43:41 - Andrey Fedorov

Excellent! I will check it out. Thanks.

2014-02-05, 23:50:50 - Andras Lasso

re #531: Update version id in MultiDimData to 0.2.1 Commit: r:1496|slicerrt:1496

2014-02-05, 23:55:17 - Andras Lasso

re #531: Fixed version id in MultiDimData (changed to 0.1.1) Commit: r:1497|slicerrt:1497

2014-02-06, 03:14:20 - Andras Lasso

@fedorov: I’ve updated the extension index, so you should be able to test the changes in the nightly build tomorrow

2014-02-14, 19:45:29 - Andrey Fedorov

@lassoan: I tested with today’s nightly, now it is as fast as multivolume explorer, thanks!

2014-02-14, 20:30:32 - Andras Lasso

This is great news, thanks for the testing!

2014-05-09, 14:05:59 - wangk

Plan Level: changed from null to “Story”

2014-07-19, 13:41:18 - Andras Lasso

milestone_id: changed from “MultidimData 0.2.0” to “MultidimData 0.2.1”

2015-09-30, 16:19:28 - Andras Lasso

moved to https://github.com/SlicerRt/Sequences/issues/3

2015-09-30, 16:19:28 - Andras Lasso

status: changed from “New” to “Invalid”

#532 Add sequence toolbar

Add sequence editor toolbar to allow adding a data node to a sequence while being in any module. Add sequence browser toolbar to allow browsing data nodes of sequences while being in any module.

2014-07-19, 16:11:30 - Andras Lasso

Component: changed from “SlicerRt modules” to “MultidimData”

2014-07-19, 16:11:36 - Andras Lasso

milestone_id: changed from “MultidimData 0.2.0” to “MultidimData 0.2.1”

2015-09-30, 16:13:44 - Andras Lasso

Moved to https://github.com/SlicerRt/Sequences/issues/1

2015-09-30, 16:13:44 - Andras Lasso

status: changed from “New” to “Invalid”

#533 Allowing CLI modules to read/write sequences

Allowing CLI modules to read/write sequences. Probably simply passing multiple file names on the command-line.

2014-07-19, 16:11:45 - Andras Lasso

Component: changed from “SlicerRt modules” to “MultidimData”

2014-07-19, 16:11:50 - Andras Lasso

milestone_id: changed from “MultidimData 0.2.0” to “MultidimData 0.2.1”

2015-09-30, 21:27:06 - Andras Lasso

moved to https://github.com/SlicerRt/Sequences/issues/6

2015-09-30, 21:27:06 - Andras Lasso

status: changed from “New” to “Invalid”

#534 Add module for saving animations to video file

Allow saving of the rendering result while replaying a sequence. Allow setting a start/end frame and replay speed.

Allow these camera animation options:

Save the results to a sequence of files.

2014-01-21, 20:13:51 - Andras Lasso

Converting the sequence of files to a video file could be implemented by virtualdub scripts (would need to download and install the GPL virtualdub separately) or the new OpenH264 project (free binaries not available yet, https://github.com/cisco/openh264).

2014-07-19, 13:41:18 - Andras Lasso

milestone_id: changed from “MultidimData 0.2.0” to “MultidimData 0.2.1”

2015-09-30, 21:27:45 - Andras Lasso

moved to https://github.com/SlicerRt/Sequences/issues/7

2015-09-30, 21:27:45 - Andras Lasso

status: changed from “New” to “Invalid”

#535 Enable abstraction of DICOM browser columns

The current DICOM browser can only display raw DICOM tags, which is not satisfactory (e.g. the series description text can be found in different tags for different modalities).

A preliminary version of ‘display tables’ and roles is implemented in this CTK branch: https://github.com/cpinter/CTK/tree/276-dicom-database-display-tables

2016-06-01, 22:00:04 - Csaba Pinter

milestone_id: changed from “SlicerRt 1.0” to “Future”

#536 Convert contour to polylines representation

A good algorithm is needed for export, and as a simple standard representation.

2014-01-24, 16:01:44 - Csaba Pinter

milestone_id: changed from null to “Future”

2015-05-28, 15:36:33 - Csaba Pinter

Andras pointed out an algorithm that starts with 2 opposing points arbitrarily then adds new polygon points by simply halving the distance, and keeps doing the splitting until the individual polygon segments have distance from the labelmap edge less than threshold. There may be implementation in VTK

2016-07-26, 01:00:45 - Csaba Pinter

milestone_id: changed from “Future” to “SlicerRt 0.19”

2016-07-26, 01:02:45 - Csaba Pinter

Segmentations can be exported directly to planar contours. Commits 2766, 2767, and 2769 have been made in terms of ticket #787. Closing as fixed

2016-07-26, 01:02:45 - Csaba Pinter

status: changed from “New” to “Fixed”

#537 Minor improvements in the Gel Dosimetry slicelet

Bugs:

Nice to have:

2014-01-22, 17:29:55 - Csaba Pinter

description: changed from “* Apply registration on the…” to “* Apply registration on the…”

2014-01-23, 21:30:53 - Csaba Pinter

(In r:1458|slicerrt:1458) Fixed #537: Gel dosimetry changes: Select plan structures, apply registration on them, hide them after registration (for sake of speed); Slice intersections turned on in the 2D views; Joined steps 4A and 4B for convenience; Changed OBI palette to green; Turned on markup selection persistence by default; Wait cursor shown when gamma is being computed

2014-01-23, 21:30:53 - Csaba Pinter

status: changed from “New” to “Fixed”

2014-01-27, 03:52:17 - Csaba Pinter

(In r:1469|slicerrt:1469) Re #537: Bumped version number to 0.1.2

#538 Vff reader is broken

2014-01-23, 20:50:55 - Csaba Pinter

(In r:1457|slicerrt:1457) Fixed #538: Restored deleted line which was removed to eliminate a linux warning, but broke the importer

2014-01-23, 20:50:55 - Csaba Pinter

status: changed from “New” to “Fixed”

#539 Dose colormap becomes black after loading a scene

  1. Save a scene (with SlicerRT modules present)
  2. Load the scene -> Dose color map is black, Isodose and Gamma colormaps are duplicated

Color table of manually created contour set is also black when loading with scene

2014-04-06, 04:51:25 - Csaba Pinter

description: changed from “1. Save a scene (with Slice…” to “1. Save a scene (with Slice…”

2014-04-06, 04:51:52 - Csaba Pinter

Creating and setting storage nodes seem not to fix the problem

2014-04-07, 18:48:47 - Csaba Pinter

Fixed #539: Dose and manually created contour set color tables are now saved and thus loaded with the scene; Isodose and gamma color tables on the other hand are not saved any more, so there is no duplication when a scene is loaded. Commit: r:1616|slicerrt:1616

2014-04-07, 18:48:47 - Csaba Pinter

status: changed from “New” to “Fixed”

#540 Contour conversion handles transformed contour incorrectly

The contour conversion handles transformed reference volume well, but transformed contours are not converted correctly. Apparently the transform is considered twice, once when converting, and then the transform is applied on the target representation.

2014-01-25, 22:07:09 - Csaba Pinter

summary: changed from “Contour conversion does not consider transform applied on the contour” to “Contour conversion handles transformed contour incorrectly”

2014-01-25, 22:07:09 - Csaba Pinter

description: changed from “The contour conversion hand…” to “The contour conversion hand…”

2014-01-25, 22:17:28 - Csaba Pinter

status: changed from “New” to “Accepted”

2014-01-25, 22:45:07 - Csaba Pinter

(In r:1461|slicerrt:1461) Fixed #540: Conversion is fixed when a contour is transformed

2014-01-25, 22:45:07 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

2014-01-26, 17:20:14 - Csaba Pinter

status: changed from “Fixed” to “New”

2014-01-26, 17:21:04 - Csaba Pinter

Reopen ticket: The position of the contour is correct, but the geometry of the volume does not match the reference (it seems to be transformed once more)

2014-01-26, 18:15:54 - Csaba Pinter

(In r:1462|slicerrt:1462) Fixed #540: Conversion to labelmap when a contour is transformed now fixed so that the target labelmap geometry matches the reference volume

2014-01-26, 18:15:54 - Csaba Pinter

status: changed from “New” to “Fixed”

2014-01-26, 18:19:30 - Csaba Pinter

Reopen ticket: Indexed labelmap conversion is correct in every case, but closed surface is not at the right position if the contour is transformed

2014-01-26, 18:19:30 - Csaba Pinter

status: changed from “Fixed” to “Accepted”

2014-01-26, 19:51:40 - Csaba Pinter

(In r:1463|slicerrt:1463) Fixed #540: Conversion to closed surface model when a contour is transformed now fixed

2014-01-26, 19:51:40 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

#541 Some automatic tests for the 4.3 stable fail

On Windows it is a simple crash, but on linux and mac the following error message is printed before crashing: ‘what(): basic_string::_S_construct NULL not valid’

See http://slicer.cdash.org/viewTest.php?onlyfailed&buildid=191211 http://slicer.cdash.org/viewTest.php?onlyfailed&buildid=191162 http://slicer.cdash.org/viewTest.php?onlyfailed&buildid=191021

2014-05-13, 02:44:03 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2014-05-16, 17:32:44 - Csaba Pinter

Release of 4.4 is close now, it should be enough to ensure tests for 4.4 pass

2014-07-12, 17:05:39 - Csaba Pinter

status: changed from “New” to “Invalid”

#542 Add scalar bar for gamma volumes in gel dosimetry

Discuss if it should be in the 2D viewers or the 3D viewer. There is also the possibility to use the data probe to see the exact values under the cursor

2014-01-31, 03:35:11 - Csaba Pinter

priority: changed from “Normal (3)” to “High (2)”

2014-01-31, 03:35:11 - Csaba Pinter

component_id: changed from “None” to “None”

2014-02-03, 19:21:26 - Csaba Pinter

Test #542: Scalar bar added to the axial slice widget for the gamma colors Commit: r:1485|slicerrt:1485

2014-02-03, 19:21:26 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2014-02-03, 19:21:26 - Csaba Pinter

status: changed from “New” to “Test”

2014-02-03, 20:12:16 - Csaba Pinter

Tried to change size and position of the scalar bar programmatically, and could not find how. Changing the numbers in the following code has no effect at all: gammaScalarBarActor.SetPosition(0.1, 0.1) gammaScalarBarActor.SetWidth(0.1) gammaScalarBarActor.SetHeight(0.5)

Maybe the scalar bar widget has to be changed directly? (It would probably mean world coordinate magic which would be too much effort)

2014-05-22, 15:31:12 - Csaba Pinter

status: changed from “Test” to “Fixed”

#543 Crash in DICOM-RT export

2014-01-28, 19:45:01 - Adam Rankin

summary: changed from “Hang in DICOM-RT export” to “Crash in DICOM-RT export”

2014-01-28, 19:45:01 - Adam Rankin

priority: changed from “Normal (3)” to “Highest (1)”

2014-01-28, 19:45:01 - Adam Rankin

description: changed from “Repro steps to come. Will e…” to “* Load CT data from DICOM o…”

2014-01-28, 19:45:28 - Adam Rankin

description: changed from “* Load CT data from DICOM o…” to “* Load CT data from DICOM o…”

2014-01-28, 19:48:05 - Csaba Pinter

Thanks for reporting!

2014-01-28, 20:03:41 - Adam Rankin

Actual crash: Unhandled exception at 0x50d36a4a (msvcr90d.dll) in SlicerApp-real.exe: 0xC0000005: Access violation writing location 0x0000000045c20068.

Seems like a valid memory location.

Crashing in this line memcpy(output,this->GetPointerToData(),this->GetDataMemorySize());

2014-01-28, 20:56:56 - Adam Rankin

SlicerRtCommon::ConvertVolumeNodeToItkImage

outItkVolume->Allocate(); is allocating 36438016 bytes but the memcpy is trying to copy 145752064 bytes

So, no doubt using mish-mashed together data is causing some unexpected behaviour, so the question is should we just add a simple guard or try to prevent users from getting into this situation?

2014-01-29, 15:17:14 - Csaba Pinter

milestone_id: changed from null to “SlicerRt 0.14”

2014-01-29, 15:23:32 - Csaba Pinter

Our current standpoint is that we don’t prevent the user from doing ‘silly’ things (Slicer playground VS fenced-around commercial softwares with few fixed workflows), but not let the program crash. We should just make sure the crash does not occur.

You mention drag dose under structure set. Is it something you consider a valid operation? Or were just fooling around?

By the way my version crashed when I dropped the dose under the structure set.

2014-01-29, 16:18:29 - Adam Rankin

description: changed from “* Load CT data from DICOM o…” to “* Load CT data from DICOM o…”

2014-02-04, 18:53:24 - Adam Rankin

More information:

When a labelmap is created based on data that is not represented by 8bpp, there is a crash. Perhaps when the drag&drop onto a structure set is done, a live conversion from whatever the image is to an unsigned char type could be done?

2014-03-31, 20:46:25 - Csaba Pinter

This crash should be fixed in revision 1560. @rankin Can you please try?

2014-03-31, 20:46:25 - Csaba Pinter

status: changed from “New” to “Test”

2014-04-03, 16:27:19 - Adam Rankin

Fantastic, properly handles invalid data type.

Minor note, it would be nice to have feedback in the module UI that it failed, instead of relying on the error log.

2014-04-03, 16:27:19 - Adam Rankin

status: changed from “Test” to “Fixed”

2014-04-03, 16:30:39 - Csaba Pinter

This is something to properly fix, but it would be worth adding some feedback on the UI. Anyway, the point is that this crash was the same as in #556, so let’s continue tracking this there. Thanks!

#544 Validate calibration - gamma volume shows large difference

There is a difference introduced in one of the steps that causes the gamma volume to show bad calibration results.

2014-01-29, 21:06:03 - Csaba Pinter

file:aPwiweIsKr45RcacwqjQWU

2014-01-29, 21:06:03 - Csaba Pinter

Attachment added: “GelSliceletCalibrationAnalysis.pdf”

2014-01-29, 21:07:26 - Csaba Pinter

(In r:1476|slicerrt:1476) Re #544: Added option to manually adjust curve fitting; Removed automatic outlier rejection and cleaning of the OD vs Dose plot to make polynomial fitting more accurate

2014-01-29, 21:07:26 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2014-01-30, 20:33:32 - Csaba Pinter

The root of the difference is probably that the Y scaling that was used for the curve alignment was applied to the OD data and was reflected in the OD vs Dose curve, thus also the fitted polynomial. Steps to take:

2014-01-30, 20:33:32 - Csaba Pinter

status: changed from “New” to “Accepted”

2014-01-30, 20:35:28 - Csaba Pinter

Also until the scalar bar is added for the gamma volume (#542), set the level to 1.0, the window to the smallest non-zero, and threshold it at the smallest non-zero to be able to better judge visually which regions are below and above 1

2014-01-30, 22:59:50 - Csaba Pinter

(In r:1479|slicerrt:1479) Test #544: Only the X shift is applied on the optical CT curve for computation; Added Y shift option to visual curve alignment; Allow the user to select a horizontal region in the aligned curves to be displayed in the OD vs Dose curve and be considered for the polynomial fitting; The calibrated volume is selected in the dose comparison step by default; Beam model is hidden after registration

2014-01-30, 22:59:50 - Csaba Pinter

status: changed from “Accepted” to “Test”

2014-01-30, 23:01:39 - Csaba Pinter

(In r:1480|slicerrt:1480) Re #544: Fixed custom dose value label in dose comparison to cGY instead of GY

2014-01-30, 23:10:20 - Csaba Pinter

(In r:1481|slicerrt:1481) Re #544: Added check in case no region is selected in the curve alignment chart when the OD vs Dose curve is created

2014-02-03, 15:14:27 - Csaba Pinter

milestone_id: changed from “GelDosimetry 0.1” to “GelDosimetry 0.2”

2014-02-03, 15:15:43 - Csaba Pinter

priority: changed from “Normal (3)” to “High (2)”

2014-03-25, 00:03:09 - Csaba Pinter

Re #544: Set bigger range for gel dosimetry manual curve alignment controls Commit: r:1591|slicerrt:1591

2014-05-22, 15:32:49 - Csaba Pinter

The source of the error is in the MRMLVolume to ITK conversion (#600). After that one is fixed, we should run a test on this side.

2014-08-23, 22:16:50 - Csaba Pinter

status: changed from “Test” to “Fixed”

2014-08-23, 22:40:13 - Csaba Pinter

Re #544: Fixed unit name in dose comparison manual reference dose Commit: r:1942|slicerrt:1942

2014-08-23, 22:43:17 - Csaba Pinter

Re #544: Fixed unit name in gel dosimetry gamma step manual reference dose Commit: r:1943|slicerrt:1943

#545 Contour Module - ‘Create New Module’ leads to a crash

Problem has been identified using Slicer r22855 and SlicerRT r1478 in a Debug build. Details about the compiler and operating system are reported at the end of the ticket description.

Steps to reproduce:

Ensruing the SlicerRt modules are loaded

Go to Modules - >Radiotherapy -> Contours

In selector, choose ‘Create New Contour’

It leads to a crash in function ‘vtkMRMLContourNode::SetAndObserveRibbonModelNodeIdOnly()’ as depicted on the enclosed screenshot.

From Csaba: The problem seems to be that the empty ribbon model node (default representation for new contours) is removed from the scene twice. The vtkSlicerContoursModuleLogic::ProcessMRMLSceneEvents shouldn’t enter the part where the ribbon is deleted.

$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 13.10 Release: 13.10 Codename: saucy

$ gcc –version gcc (Ubuntu/Linaro 4.8.1-10ubuntu9) 4.8.1

2014-01-30, 23:37:42 - jchris

image:cde0H4IGCr47XxacwqjQXA

2014-01-30, 23:37:42 - jchris

Attachment added: “vtkMRMLContourNode-crash-on-create-new.png”

2014-01-30, 23:46:56 - jchris

file:dnUkhSIGGr44kEacwqjQWU Patch proposed by Csaba to fix contour creation #545

2014-01-30, 23:46:56 - jchris

Attachment added: “545-vtkSlicerContoursModuleLogic-csaba.patch”

2014-01-31, 14:51:50 - Csaba Pinter

priority: changed from “Normal (3)” to “Highest (1)”

2014-01-31, 14:51:55 - Csaba Pinter

milestone_id: changed from “Future” to “SlicerRt 0.14”

2014-01-31, 14:52:44 - Csaba Pinter

One request for the future: please leave the new tickets without a milestone, so that they appear on the top (sort of ‘inbox’). I had a hard time finding this one. Thanks!

2014-01-31, 14:54:21 - Csaba Pinter

Test #545: Added condition for code related to contour deletion to make sure it is executed only at the right circumstances (before the contour node is being removed from the scene) Commit: r:1482|slicerrt:1482

2014-01-31, 14:54:21 - Csaba Pinter

status: changed from “New” to “Test”

2014-02-11, 21:20:18 - Csaba Pinter

@jchris Can I close this as fixed? Thanks!

2014-02-11, 21:29:01 - jchris

Yes. Thansk for the follow up.

2014-02-11, 21:33:27 - Csaba Pinter

status: changed from “Test” to “Fixed”

#546 Make GelDosimetry testing easier by creating base class to contain test data information

Subclass this base class for each test data we have and add the py file in the data directories

2014-02-03, 20:08:10 - Csaba Pinter

Re #546: Small changes toward easier testing of GelDosimetry Commit: r:1486|slicerrt:1486

2014-02-03, 20:09:19 - Csaba Pinter

After giving it more thought, this would take more time than reasonable to enable quick change of data for automatic development testing

2014-02-03, 20:09:19 - Csaba Pinter

status: changed from “New” to “Invalid”

#547 Fix the CMake config warnings due to semi-colon in the end in CMakeLists.txt

2014-02-04, 17:26:08 - wangk

status: changed from “New” to “Accepted”

2014-02-04, 17:26:28 - wangk

test #547: Get rid of the CMake warnings due to the semi-colon in the end. Commit: r:1488|slicerrt:1488

2014-02-04, 17:26:28 - wangk

status: changed from “Accepted” to “Test”

2014-04-17, 16:52:35 - Andras Lasso

Fixed all known transform visualization issues and moved the functionality to the Slicer core (2014-04-17).

2014-04-17, 16:52:35 - Andras Lasso

status: changed from “Test” to “Fixed”

#548 Ensure ‘CreateContourFromRepresentation’ strips ‘CONTOUR_*_NODE_NAME_POSTFIX’ string

The patched attach to this issue ensure that the function ‘CreateContourFromRepresentation’ strip the postfix. The behavior is now symetric/consistant with the functions listed below that are appending the ‘CONTOUR_*_NODE_NAME_POSTFIX’ to the repsentation name:

@pinter Let me know what you think. Thanks

2014-02-04, 21:15:54 - jchris

file:ciksIUJEer44aaacwqjQYw

2014-02-04, 21:15:54 - jchris

Attachment added: “548-ensure–createcontourfromrepresentation–strips–contour.patch”

2014-02-04, 21:26:38 - Csaba Pinter

The contour name should not include any reference to representations, as a contour node contains all representations.

2014-02-04, 21:29:40 - jchris

Exactly. Since the function takes a representation as a parameter and set the name of the contour considering the name of the representation, it is important to do the stripping.

2014-02-04, 21:32:43 - Csaba Pinter

milestone_id: changed from null to “SlicerRt 0.14”

2014-02-04, 21:32:49 - Csaba Pinter

Oh, I see now what you’re doing (not append, but replace). Yes, this makes every sense. I didn’t add this because if you have a volume that you want to convert to contour, it usually doesn’t contain the postfix. However, it absolutely can. Thanks for the fix, please commit.

2014-02-04, 22:25:00 - jchris

Re #548: Contours - Ensure ‘CreateContourFromRepresentation’ strips postfix strings

Commit: r:1490 slicerrt:1490

2014-02-05, 22:55:02 - jchris

status: changed from “New” to “Fixed”

#549 Ensure vtkMRMLContourNode::SetName maintain _Contour postfix and set representation name if required

The current implementation of vtkMRMLContourNode::SetName is (1) comparing if the provided name is different from the contour name and (2) only setting the representation names if contour name were different.

The proposed patch improve the function so that:

Related to #548

@pinter Let me know what you think. Thanks

2014-02-04, 22:20:15 - jchris

file:cfIklSJEOr46FcacwqjQWU

2014-02-04, 22:20:15 - jchris

Attachment added: “549-ensure-vtkmrmlcontournode–setname-maintain-_contour-postfix-and-set-representation-name-if-required.patch”

2014-02-05, 15:33:10 - Csaba Pinter

Looks good. Thanks for contributing! Please commit and close ticket as fixed.

2014-02-05, 15:33:15 - Csaba Pinter

milestone_id: changed from null to “SlicerRt 0.14”

2014-04-07, 19:15:51 - Csaba Pinter

status: changed from “New” to “Accepted”

2014-04-07, 19:16:27 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2014-04-07, 20:24:17 - Csaba Pinter

Fixed #549: Contour renaming issues fixed Commit: r:1618|slicerrt:1618

2014-04-07, 20:24:17 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

2014-04-07, 21:39:17 - Csaba Pinter

Re #549: Contour renaming bug when no scene is present fixed Commit: r:1623|slicerrt:1623

#550 Add feature to create contour from representation outside the subject hierarchy

Many people are confused about how to create contours from representations: they try to just create a contour node in the combobox by clicking New, but that is only useful now if the user later creates the labelmap representation in the Editor module. We need a way to make it more intuitive.

Options:

  1. Add import/inject representation feature in the Contours module (does not fit into the current definition of clean modules, where a module handles a certain type of node or performs one operation)
  2. Create separate module for representation to mcontour conversion (escalates the ‘swarm of small modules’ problem) 2/a. Option 2 + Add a context menu to contours in subject hierarchy that takes the user to this module
  3. Find some other way in subject hierarchy that’s more intuitive

2014-02-11, 22:37:15 - Csaba Pinter

I prefer 2/a unless we find something for 3.

2014-02-11, 22:37:27 - Csaba Pinter

milestone_id: changed from null to “SlicerRt 0.14”

2014-02-27, 15:41:54 - Adam Rankin

assigned_to_id: changed from null to “rankin”

2014-03-06, 22:08:59 - Adam Rankin

re #550 WIP UI changes to Contours module added Users can now create a contour from a representation through the Subject Hierarchy drag-and-drop mechanism or via the Contours module. Users can also right-click on an existing structure set and choose ‘Create child contour from representation…’ and they will be brought to the new UI components of the Contours module.

Dev: Currently encountering a cyclical linking issue. Current workaround is to have public members in the class to remove the need to link. Could use some advice about how to avoid this issue. Commit: r:1555|slicerrt:1555

2014-03-07, 09:36:30 - Csaba Pinter

@rankin I did a quick review on the commit, but don’t know which are the workarounds. Can you be more specific? Which libraries would depend on each other cyclically and why? Thanks!

2014-03-07, 09:36:34 - Csaba Pinter

status: changed from “New” to “Accepted”

2014-03-07, 16:30:02 - Adam Rankin

re #550 WIP code comment changes applied

actions are filtered by node information Commit: r:1561|slicerrt:1561

2014-03-07, 16:34:29 - Adam Rankin

So, the cyclical dependency is between the .dlls built by SlicerRt\Contours and SlicerRt\Contours\Plugins.

What I do currently is set public variables (no functions to link against) in qSlicerContoursModuleWidget that I can then query in qSlicerContoursModuleWidget::onEnter to expand and set comboboxes as requested.

If I mark them as protected and add accessors, it fails to link (missing functions) and if I add the linkage to CMake, it notifies of a cyclical shared library dependency.

A couple of thoughts: I could make them protected and make qSlicerSubjectHierarchyContourSetsPlugin a friend class of qSlicerContoursModuleWidget…

I could set some attributes in some sort of shared area… maybe in the structure set node itself? Then contours module could query all SS nodes to see if they’ve been requested to have a contour made…

2014-03-07, 20:43:48 - Adam Rankin

re #550 WIP slightly less-bad approach… reducing exposure of inner variables to a single class Commit: r:1563|slicerrt:1563

2014-03-07, 22:18:11 - jchris

Didn’t read the complete thread .. but would it help to use a pimpl approach ‘vtkInternal’.

See https://github.com/Slicer/Slicer/blob/a59377993be87b75ba01efcd401ba9c6a5efc497/Libs/MRML/DisplayableManager/vtkMRMLThreeDReformatDisplayableManager.h#L62

2014-03-21, 15:47:06 - Adam Rankin

Bah, referenced the linux build error.

See url:https://www.assembla.com/code/slicerrt/subversion/commit/1574 SlicerRt:1574 for details.

Using QT signals/slots as a messaging system between UIs. Kudos Csaba for the suggestion.

2014-03-21, 15:47:06 - Adam Rankin

status: changed from “Accepted” to “Test”

2014-04-04, 20:40:45 - Csaba Pinter

When I convert a labelmap to a contour, then after clicking Create, the module shows a warning ‘Selected source is already a representation for a contour’. I understand why it shows that, but I don’t think seeing a warning message after a successful operation is a good thing. Maybe if you displayed a success message until the Source is changed, or set the Source combobox selection to None, then the warning wouldn’t cause confusion.

Another thing is the Target Name. What is it? I entered a string and don’t see it anywhere. Also we use sentence case (‘Target Name’ -> ‘Target name’)

Yet another is the Target Structure Set string. Please rename it to ‘Target contour set’.

Thanks!

2014-04-04, 20:40:49 - Csaba Pinter

status: changed from “Test” to “Accepted”

2014-04-04, 20:41:58 - Csaba Pinter

Oh, and it leaks memory somewhere. I get VTK leak errors on exit when I use the conversion tool, and don’t get those if I don’t use it.

2014-04-07, 19:11:38 - Csaba Pinter

Also the new contour does not appear in subject hierarchy under the target contour set

2014-04-07, 19:15:59 - Adam Rankin

Ok I’ll look into it.

2014-04-07, 19:25:25 - Csaba Pinter

Thanks! Please don’t forget to address comments from the previous entries (starting on 0404). In summary:

2014-04-08, 17:21:25 - Adam Rankin

re #550 WIP resolved all issues except memory leak, investigation continuing Commit: r:1624|slicerrt:1624

2014-04-08, 20:11:36 - Adam Rankin

re #550 WIP correct sequence of error handling

warning message cleaned up after successful conversion Commit: r:1625|slicerrt:1625

2014-04-09, 16:46:49 - Adam Rankin

test #550 Resolving memory leak (on text typed, vtkCollection of contour nodes was created and not deleted)

Improving UI by correctly presenting the correct feedback, now includes success messages! Commit: r:1628|slicerrt:1628

2014-04-09, 16:46:49 - Adam Rankin

status: changed from “Accepted” to “Test”

2014-04-09, 16:47:49 - Adam Rankin

Ok, this should be much more stable now.

2014-04-09, 17:56:24 - Csaba Pinter

Great, thanks!

2014-04-09, 18:16:11 - Csaba Pinter

Re #550: Fixed minor things in the contours module UI to conform to slicer style guidelines Commit: r:1629|slicerrt:1629

2014-04-09, 20:57:43 - Csaba Pinter

Re #550: Stylistic changes in the code around contour creation from representation Commit: r:1630|slicerrt:1630

2014-06-23, 21:15:34 - Csaba Pinter

status: changed from “Test” to “Fixed”

#551 Vff reader might be unreasonable restrictive

When attempting to load a .vff file, Slicer reports the following errors:

… The value entered for the rank must be 3. … The values for the origin must each be greater than or equal to 0. … The value entered for the rawsize must be greater than or equal to 0. … A string was not entered for Handle Scatter. The value must be separated from the parameter with an ‘=’. The value entered for Handle Scatter must be factor. … The value entered for the Reference Scatter Factor must be 1. … The value entered for the Data Scatter Factor must be 1. … A string was not entered for the filter. The value must be separated from the parameter with an ‘=’. The value entered for the filter must be Ram-Lak.

However, I installed Microview and loaded them with no reported issues. I then exported them to DICOM and loaded that via Slicer successfully.

This would imply that the reported errors above are not errors but more warnings.

2014-02-12, 19:05:27 - Adam Rankin

file:cDLtq-LbGr44ZcacwqjQYw vff file that produces errors in slicer

2014-02-12, 19:05:27 - Adam Rankin

Attachment added: “RT_Thumbnail_22.vff”

2014-02-13, 18:01:34 - Csaba Pinter

Thanks for reporting this and especially for the sample data!

2014-02-13, 18:01:48 - Csaba Pinter

milestone_id: changed from null to “SlicerRt 1.0”

2015-02-23, 02:46:03 - Csaba Pinter

milestone_id: changed from “SlicerRt 1.0” to “Future”

2016-04-08, 16:13:23 - Csaba Pinter

Re #551: Relax scatter factor parameter constraints in VFF reader Commit: r:2774|slicerrt:2774

2016-04-08, 16:13:23 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

#552 Sequence metafile importer should only valid items

Currently the …TransformStatus and …ImageStatus fields are ignored. We should only load the elements with an OK status.

2014-02-13, 21:04:49 - Andras Lasso

re #552: Added checking for image data loading in sequence metafile importer. If image data is not available then no sequence node is created for that. Commit: r:1507|slicerrt:1507

2014-02-13, 21:04:49 - Andras Lasso

assigned_to_id: changed from null to “lassoan”

2015-09-30, 21:38:02 - Andras Lasso

moved to https://github.com/SlicerRt/Sequences/issues/11

2015-09-30, 21:38:02 - Andras Lasso

status: changed from “New” to “Invalid”

#553 Use same logic in beams and external beam planning module

The current import logic supports only square beams, through the Beams module.

It would be ideal to use the new beams logic supporting MLCs that is implemented in External beam planning module (maybe separate it from it?).

Note: When this is done, then the RT plan plugin in SH should be reworked accordingly (handling beams, renaming to RT beams)

Update: After extensive discussion on this topic, we have decided to keep Beams module and move all the mrml and subjecthierarchyplugin into beams. also need to move the part of logic for beam visualization to beams from EBP. this way, beams logic can be called from DicomRtImportExport as well a EBP.

2014-02-24, 15:44:31 - Csaba Pinter

Thanks, Kevin! You can close the MLC ticket if it’s tested.

2014-02-24, 15:46:16 - Csaba Pinter

description: changed from “” to “The current import logic su…”

2014-02-24, 15:51:10 - Csaba Pinter

description: changed from “The current import logic su…” to “The current import logic su…”

2014-10-03, 08:55:30 - rcorredorj

Attachment added: “MLCBeamRender.jpeg”

2014-10-03, 08:55:30 - rcorredorj

CommentContent: changed from “image:ag4t-qsTSr5lzdacwqjQWU “ to null

2014-10-03, 09:37:20 - rcorredorj

Attachment added: “MLCBeamRender.jpeg”

2015-09-02, 16:48:29 - Csaba Pinter

milestone_id: changed from “SlicerRt 1.0” to “SlicerRt 0.18”

2015-09-02, 16:49:19 - Csaba Pinter

description: changed from “The current import logic su…” to “The current import logic su…”

2015-11-04, 19:18:49 - wangk

status: changed from “New” to “Accepted”

2015-11-04, 19:21:16 - wangk

description: changed from “The current import logic su…” to “The current import logic su…”

2015-11-04, 19:22:58 - wangk

Re #553: WIP commit.

  1. moved EBP’s MRML and SubjectHierarchyPlugins to Beams.
  2. changed cmakelist.txt in EBP and Beams accordingly. Commit: r:2487|slicerrt:2487

2015-11-04, 19:24:50 - wangk

Re #553: Follow up commit to previous one to complete the changes.

  1. changed mostly header files to reflect the directory move. Commit: r:2488|slicerrt:2488

2015-11-05, 20:34:50 - wangk

Re #553: Changed to use SH node for connecting RTPlanNode and RTBeamNode. Commit: r:2490|slicerrt:2490

2015-12-07, 15:15:50 - wangk

Re #553: WIP commit to use same logic in beams and EBP. Commit: r:2522|slicerrt:2522

2015-12-10, 15:49:35 - wangk

Re #553: WIP commit 2 to move the logic from EBP to Beams module.

  1. Moved all relevant subject hierarchy plugins to beams.
  2. enabled visibility for beams in subject hierarchy view. Commit: r:2530|slicerrt:2530

2015-12-15, 20:18:54 - wangk

Re #553: WIP commit 3 to move the logic from EBP to Beams module.

Mainly clean up code in the commit. Commit: r:2538|slicerrt:2538

2016-01-12, 14:56:18 - Csaba Pinter

assigned_to_id: changed from “wangk” to null

2016-01-12, 17:13:44 - Csaba Pinter

@gregsharp Can this be closed? I believe this task is already done (but maybe not). Anyway, please review and re-assign or close. Thanks!

2016-01-12, 18:58:48 - Greg Sharp

status: changed from “Accepted” to “Fixed”

#554 Dose units are broke in DVH and Isodose modules

The dose units are not got correctly due to moving it to the study SH node from the dose volume node

2014-02-28, 21:24:05 - Csaba Pinter

Fixed #554: Dose unit name getting fixed in DVH and Isodose modules Commit: r:1545|slicerrt:1545

2014-02-28, 21:24:05 - Csaba Pinter

status: changed from “New” to “Fixed”

#555 Move multidimdata MRML modules into separate directory

Currently MultidimData MRML nodes appear slicer.modulelogic.vtkMRMLSequenceNode() in Python. Move the node files to MRML directory to make them appear at slicer.modulemrml.vtkMRMLSequenceNode().

2014-03-06, 17:12:48 - Andras Lasso

Fixed by slicerrt:1553

2014-03-06, 17:12:48 - Andras Lasso

status: changed from “New” to “Fixed”

#556 MRML volume to ITK volume conversion crashes

Happens with DICOM-RT export and Contour Comparison due to non-short image voxel type.

For the time being it would make sense to show an error message on the UI (however it involves UI work in 3 modules, including major changes in the export where there is no message line, while when the underlying issue is fixed we don’t need this message).

2014-03-07, 15:48:35 - Csaba Pinter

Re #556: Crash fixed when converting from MRML volume to ITK when scalar types did not match, but better solution needed Commit: r:1560|slicerrt:1560

2014-03-07, 15:48:35 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2014-04-03, 16:32:52 - Csaba Pinter

description: changed from “Happens with DICOM-RT expor…” to “Happens with DICOM-RT expor…”

2014-04-03, 20:51:09 - Greg Sharp

Csaba, what is the source of this bug? I have a few hours tonight and can take a crack at it.

2014-04-03, 22:34:16 - Csaba Pinter

Thanks! The converter used to crash when met a float volume for DICOM-RT export or contour comparison (basically when feeding images to Plastimatch). Now a simple check is done and the conversion aborted when the scalar type (actually just the size of the scalar type) in the input VTK image is different from that of the ITK image that we created for output. Haven’t thought much about the possible proper solutions yet, but either we could somehow force the output ITK image to match the scalar type (maybe we should use Plm_image instead of a templated ITK pointer), or fix it at the points of calling the converter. I would prefer a solution that is done inside the converter, although it may not be entirely possible.

2014-04-04, 12:18:33 - Greg Sharp

Got it. I choose Plm_image method, since that is convenient for plastimatch interface.

2014-04-04, 12:18:33 - Greg Sharp

assigned_to_id: changed from “pinter” to “gregsharp”

2014-04-04, 12:19:10 - Greg Sharp

status: changed from “New” to “Accepted”

2014-04-04, 19:02:04 - Greg Sharp

Re #556: WIP commit; DICOM RT export now can pass image or dose of any type to plastimatch as Plm_image Commit: r:1605|slicerrt:1605

2014-04-04, 19:03:47 - Greg Sharp

Re #556: Remove dead code Commit: r:1606|slicerrt:1606

2014-04-04, 19:06:40 - Greg Sharp

Hi Csaba,

Can you give me a little more information about the ContourComparison crash?
The combobox only allows a contour type, so how can it be any type other than unsigned char?

2014-04-04, 19:16:20 - Csaba Pinter

If the user has an int image that they convert to a contour, then the labelmap scalar type will be other than unsigned short. When the user chooses that contour for comparison, then the MRML to ITK converter cannot properly handle this scalar type, because an unsigned short ITK image is created in the contour comparison logic.

I see two options here:

  1. Cast the image to unsigned short on converting to contour (vtkSlicerContoursModuleLogic::CreateContourFromRepresentation)
  2. Use Plm_image everywhere instead of ITK image (contour comparison logic, SlicerRtCommon MRML to ITK converter)

@lassoan @rankin Thoughts?

2014-04-04, 19:55:59 - Greg Sharp

Thank you Csaba. I was able to reproduce the behavior.

There seems no harm in pursuing (2), and it even seems to make the logic a little simpler. Therefore I will proceed along this course.

Idea (1) also seems maybe a good idea. But I don’t yet have clear picture.

2014-04-04, 19:59:22 - Csaba Pinter

I’m OK with using Plm_image instead of ITK images wherever possible, as long as @lasso and @rankin are also OK with it. Thanks!

2014-04-04, 21:57:25 - Greg Sharp

Re #556: Fix for image type issue in ContourComparison module Commit: r:1609|slicerrt:1609

2014-04-04, 22:02:47 - Greg Sharp

The above commit demonstrates what conversion to Plm_image looks like. It does fix the problem for ContourComparison module.

I will wait for comments before proceeding.

2014-04-04, 22:05:44 - Greg Sharp

Re #556: Fix cut-and-paste error Commit: r:1610|slicerrt:1610

2014-04-05, 15:54:29 - Csaba Pinter

Thanks Greg, looks good! I had one question which I entered at the related line in the commit.

2014-04-07, 16:05:33 - Adam Rankin

Seems good to me!

2014-04-10, 15:45:22 - Greg Sharp

Test #556 Complete conversion to Plm_image for stable modules; this should fix all crashes due to type conversion (uchar/short/float). Commit: r:1632|slicerrt:1632

2014-04-10, 15:45:22 - Greg Sharp

status: changed from “Accepted” to “Test”

2014-04-10, 15:49:14 - Csaba Pinter

This is great! Thank you, Greg!

2014-04-24, 13:57:43 - Greg Sharp

status: changed from “Test” to “Fixed”

#557 Contour set is not properly loaded from MRML scene

  1. Have an SH tree with a contour set
  2. Save scene
  3. Load scene -> The contour set is not there

2014-03-07, 11:44:15 - Csaba Pinter

milestone_id: changed from null to “SlicerRt 0.14”

2014-03-31, 17:22:50 - Csaba Pinter

Dataset@CHIASMA: c:\Slicer_Data\20140301_TrickyContours3

2014-04-06, 04:50:30 - Csaba Pinter

Fixed #557: Contour set scene save/load fixed Commit: r:1612|slicerrt:1612

2014-04-06, 04:50:30 - Csaba Pinter

status: changed from “New” to “Fixed”

#558 Add DRR in external beam planning module

this feature is considered not time critical as the DRR code will not be used for 3D-2D image registration. it is only supposed for visualization.

2014-03-07, 15:46:54 - wangk

status: changed from “New” to “Accepted”

2014-03-07, 15:48:04 - wangk

Re #558: WIP check in of DRR visualization in EBP module. Commit: r:1559|slicerrt:1559

2014-03-07, 15:50:02 - Csaba Pinter

FYI, I just got the guys in Vienna started with making an extension from the DRR generation code. I think it should be done soon.

2014-04-23, 18:02:25 - wangk

Re #558: WIP commit. this revision added the visualization of the contours in the DRR/Beam eye’s view. contours are visualized as 2D image with transparency to be overlaid with the DRR image. Todo: make each contour different color. eventually make them surface models.

Commit: r:1668 slicerrt:1668

2014-05-14, 14:59:12 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.14” to “SlicerRt 0.15”

2014-11-07, 15:11:54 - Csaba Pinter

Moved to SlicerRT 0.16

2014-11-07, 15:11:54 - Csaba Pinter

tag: changed from “” to “”

2014-11-07, 15:11:54 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.15” to “SlicerRt 0.16”

2015-06-04, 22:09:42 - Csaba Pinter

Moved to 0.19

2015-06-04, 22:09:42 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.18” to “SlicerRt 0.19”

2015-09-02, 20:11:21 - Greg Sharp

Plan Level: changed from null to “Subtask”

2015-12-16, 23:11:59 - Greg Sharp

milestone_id: changed from “SlicerRt 0.19” to “SlicerRt 0.18”

#559 Transformvisualizer crashes with imported example deformable SRO from MIM

this is due to incorrect type conversion. the vector field is double type and it tries to downcast to float.

2014-03-07, 20:08:29 - wangk

status: changed from “New” to “Accepted”

2014-03-07, 20:09:21 - wangk

Test #559: Fixed the crash by changing vtkFloatArray to vtkDataArray. Commit: r:1562|slicerrt:1562

2014-03-07, 20:09:21 - wangk

status: changed from “Accepted” to “Test”

2014-04-17, 16:52:35 - Andras Lasso

Fixed all known transform visualization issues and moved the functionality to the Slicer core (2014-04-17).

2014-04-17, 16:52:35 - Andras Lasso

status: changed from “Test” to “Fixed”

#560 Improve the Grid Slice model so it shows deformation along Z direction

Currently the Grid Slice model shows deformation along X and Y direction but not Z direction. it would be nice to see the deformation along Z as well.

2014-03-10, 18:45:00 - wangk

status: changed from “New” to “Accepted”

2014-03-10, 18:45:03 - wangk

assigned_to_id: changed from null to “wangk”

2014-03-10, 18:46:33 - wangk

Re #560: WIP check in. Now the surface model will allow visualization in all slice viewers. Still need more testing and fixing the unit test data.

Commit: r:1567 slicerrt:1567

2014-03-10, 18:48:36 - wangk

@FranklinK, could you take a look at what I have just checked in and see if it makes sense to you. I believe there are still lots of code that can be refactored as the GridVisualization is not pretty much the same as the GridSliceVisualization.

2014-03-10, 18:58:25 - wangk

Re #560: Fixed small UI error.

Commit: r:1568 slicerrt:1568

2014-04-17, 16:52:35 - Andras Lasso

Fixed all known transform visualization issues and moved the functionality to the Slicer core (2014-04-17).

2014-04-17, 16:52:35 - Andras Lasso

status: changed from “Accepted” to “Fixed”

#561 Linux build error

CMakeFiles/qSlicerContoursModulePlugins.dir/qSlicerSubjectHierarchyContourSetsPlugin.cxx.o: In function

1
2
qSlicerSubjectHierarchyContourSetsPlugin::convertRepresentationAction()':
/PHShome/gcs6/build/slicer-4/SlicerRT/Contours/Plugins/qSlicerSubjectHierarchyContourSetsPlugin.cxx:672: undefined reference to 
typeinfo for qSlicerContoursModuleWidget’

This error is caused by the following line of code:

1
  qSlicerContoursModuleWidget* widgetRep = dynamic_cast<qSlicerContoursModuleWidget*>(moduleWithAction->widgetRepresentation());

To the best of my understanding, the typeinfo for qSlicerContoursModuleWidget is stored in qSlicerContoursModule library. However, when I make qSlicerContoursModulePlugins dependent on qSlicerContoursModule, I get a cyclic dependency error:

CMake Error: The inter-target dependency graph contains the following strongly connected component (cycle): ‘qSlicerContoursModule’ of type SHARED_LIBRARY depends on ‘qSlicerContoursModulePlugins’ (weak) ‘qSlicerContoursModulePlugins’ of type SHARED_LIBRARY depends on ‘qSlicerContoursModule’ (weak) At least one of these targets is not a STATIC_LIBRARY. Cyclic dependencies are allowed only among static libraries.

@pinter is it necessary to do dynamic_cast<> here? If I use static_cast<>, it compiles fine.

2013-04-21, 15:43:40 - Csaba Pinter

status: changed from “Accepted” to “New”

2014-03-08, 17:52:55 - Csaba Pinter

If the build error was introduced recently, then it’s Adam’s change. I don’t have time to confirm it. @rankin Can you please take a look at this?

2014-03-08, 18:29:48 - Adam Rankin

Hmm, I think the best bet at the moment is to roll back my commit.

I will investigate.

2014-03-08, 18:57:40 - Csaba Pinter

Well it’s not released so I would just suggest Greg to update back to a previous commit. But it’s up to you of course.

2014-03-09, 19:32:56 - Adam Rankin

Greg would you be willing to check in your static_cast fix for now and I’ll fix it when I’m back?

2014-03-09, 22:16:08 - Greg Sharp

Re #561: Temporary workaround until this can be solved Commit: r:1566|slicerrt:1566

2014-03-09, 22:16:08 - Greg Sharp

assigned_to_id: changed from null to “gregsharp”

2014-03-09, 22:17:02 - Greg Sharp

I wonder if the right way to handle this is with SafeDownCast() macro?

2014-03-09, 22:42:38 - jchris

Within Slicer, we have been using ‘dynamic_cast’. For example, see [1]

This is required because the type of object returned by ‘widgetRepresentation’ method is a ‘qSlicerAbstractModuleRepresentation’ [2] that doesn’t not derive from QObject or QWidget. (See [4] to understand why)

In case case, the object types to cast from/to are both of type QObject/QWidget, the macro ‘qobject_cast’ could be used. See [3]. That would be the equivalent of ‘SafeDownCast’ existing in VTK.

[1] https://github.com/Slicer/Slicer/blob/22f1c99f28d52f58070e31849d33a3a50e4501a6/Modules/Loadable/Models/Testing/Cxx/qSlicerModelsModuleWidgetTest1.cxx#L82

[2] https://github.com/Slicer/Slicer/blob/df54cbe0361804287065f9e01b51fe0b71b10a86/Base/QTCore/qSlicerAbstractModuleRepresentation.h#L38

[3] http://qt-project.org/doc/qt-4.8/qobject.html#qobject_cast

[4] https://github.com/Slicer/Slicer/blob/df54cbe0361804287065f9e01b51fe0b71b10a86/Base/QTGUI/qSlicerAbstractModuleWidget.h#L36-41

2014-03-17, 12:21:49 - Adam Rankin

assigned_to_id: changed from “gregsharp” to “rankin”

2014-03-17, 12:21:49 - Adam Rankin

status: changed from “New” to “Accepted”

2014-03-20, 19:46:29 - Adam Rankin

test #561 Using QT signals/slots to pass messages around Commit: r:1574|slicerrt:1574

2014-03-20, 19:46:29 - Adam Rankin

status: changed from “Accepted” to “Test”

2014-03-21, 15:40:06 - Adam Rankin

Dashboard reports build passed.

2014-03-21, 15:40:06 - Adam Rankin

status: changed from “Test” to “Fixed”

#562 Selecting slice for Glyph Slice and Grid Slice options does not actually correspond to the slice viewer

The way that the slice normal is calculated is likely now incorrect.

2014-03-25, 00:02:06 - Csaba Pinter

milestone_id: changed from null to “TransformVisualizer 0.3.0”

2014-04-17, 16:52:36 - Andras Lasso

Fixed all known transform visualization issues and moved the functionality to the Slicer core (2014-04-17).

2014-04-17, 16:52:36 - Andras Lasso

status: changed from “New” to “Fixed”

#563 Update code according to TransforNode API changes

Linear transform API for getting/setting transformation matrix is changing. Update the code accordingly.

2014-03-14, 13:21:09 - Andras Lasso

re #563: Updated TransformVisualizer to the new Transform node API Commit: r:1570|slicerrt:1570

2014-03-17, 15:54:40 - Andras Lasso

re #563: Made SlicerRT compatible with the upcoming transform API change

Once the new API is in the Slicer core then the the old version (deformableRegistrationGridTransformNode->SetAndObserveWarpTransformToParent(gridTransform, true)) can be removed. Commit: r:1572|slicerrt:1572

2014-04-17, 16:52:36 - Andras Lasso

Fixed all known transform visualization issues and moved the functionality to the Slicer core (2014-04-17).

2014-04-17, 16:52:36 - Andras Lasso

status: changed from “New” to “Fixed”

2015-12-29, 03:01:50 - Andras Lasso

re #563: Removed obsolete vtkTransform method call Commit: r:2550|slicerrt:2550

#564 Display transforms using a displayable manager

2014-03-21, 20:11:38 - Andras Lasso

re #564: Created a new branch for display transforms using a displayable manager Commit: r:1581|slicerrt:1581

2014-03-21, 20:12:39 - Andras Lasso

re #564: Created a new branch for display transforms using a displayable manager Commit: r:1582|slicerrt:1582

2014-03-21, 20:15:39 - Andras Lasso

re #564: Added transform displayable manager for 2D slice view (WIP) Commit: r:1583|slicerrt:1583

2014-03-23, 00:47:47 - Andras Lasso

re #564: Added regular sampling option to slice displayable manager Commit: r:1584|slicerrt:1584

2014-03-24, 00:47:17 - Andras Lasso

re #564: Fixed slice viewer shifting Commit: r:1585|slicerrt:1585

2014-03-24, 01:18:50 - Andras Lasso

re #564: Removed cutting, 2d glyphs are generated directly Commit: r:1586|slicerrt:1586

2014-03-24, 04:27:54 - Andras Lasso

re #564: Added 2D grid visualization option Commit: r:1587|slicerrt:1587

2014-03-24, 20:59:16 - Andras Lasso

re #564: Minor cleanup of the code (simplified, removed code) Commit: r:1590|slicerrt:1590

2014-03-27, 01:33:33 - Andras Lasso

re #564: Moved transform display node to Slicer core Commit: r:1593|slicerrt:1593

2014-03-27, 12:41:47 - Andras Lasso

re #564: Improved transform displayable manager Commit: r:1594|slicerrt:1594

2014-03-28, 02:01:11 - Andras Lasso

re #564: Simplified transform display options

Commit: r:1596 slicerrt:1596

2014-03-28, 12:25:44 - Andras Lasso

re #564: Added slice contour visualization mode Commit: r:1597|slicerrt:1597

2014-03-28, 22:19:22 - Andras Lasso

re #564: Moved visualization computation to display node

Commit: r:1599 slicerrt:1599

2014-04-17, 16:52:36 - Andras Lasso

Fixed all known transform visualization issues and moved the functionality to the Slicer core (2014-04-17).

2014-04-17, 16:52:36 - Andras Lasso

status: changed from “New” to “Fixed”

#565 Handle exceptions when jumping over steps in Gel Dosimetry

If the user just wants to calibrate the dose and not register anything, then if they jump to step 4 for example, there is an error message. There should not be one. Also explore the possibility of showing a modal message window if a python exception happens, because otherwise the user just might not notice that something did not happen that they expected.

2014-08-06, 15:14:11 - Csaba Pinter

milestone_id: changed from “GelDosimetry 0.2” to “GelDosimetry 0.3”

2014-08-23, 22:18:47 - Csaba Pinter

milestone_id: changed from “GelDosimetry 0.3” to “GelDosimetry 0.2”

2014-08-23, 22:19:13 - Csaba Pinter

No exceptions now when doing reasonable jumps

2014-08-23, 22:19:13 - Csaba Pinter

status: changed from “New” to “Fixed”

#566 Existing isocenters are selected as markup fiducial lists in Gel Dosimetry

If there are isocenters loaded with the plan, then that list is selected in the landmark registration step as fiducial list. New one should be created.

2014-08-19, 18:15:19 - Csaba Pinter

I cannot reproduce this any more, close as invalid

2014-08-19, 18:15:19 - Csaba Pinter

status: changed from “New” to “Invalid”

#567 Use the simple markups widget from SlicerIGT

https://github.com/SlicerIGT/FiducialRegistrationWizard/tree/master/Widgets

Related Slicer Mantis issue: http://www.na-mic.org/Bug/view.php?id=3496

2015-05-11, 16:02:37 - Csaba Pinter

milestone_id: changed from “GelDosimetry 0.3” to “GelDosimetry 0.4”

2015-05-14, 15:01:58 - Csaba Pinter

milestone_id: changed from “GelDosimetry 0.4” to “GelDosimetry 0.3 World Congress”

2015-05-14, 15:01:58 - Csaba Pinter

status: changed from “New” to “Accepted”

2015-05-14, 15:01:58 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2015-05-14, 16:33:10 - Csaba Pinter

Test #567: Use simple markups widget that is being integrated into Slicer core Commit: r:2247|slicerrt:2247

2015-05-14, 16:33:10 - Csaba Pinter

status: changed from “Accepted” to “Test”

2015-05-24, 01:48:26 - Csaba Pinter

Last step is to remove the widget from SlicerIGT and use the one in Slicer core. https://github.com/SlicerIGT/SlicerIGT/issues/23 Otherwise this task is done.

2015-05-24, 01:48:26 - Csaba Pinter

status: changed from “Test” to “Fixed”

#568 Gel dosimetry image based registration sometimes yields incorrect result

2014-04-04, 20:24:13 - Csaba Pinter

Re #568: Changed default OBI to PlanCT registration initial alignment from moments to geometry in Gel dosimetry. Commit: r:1608|slicerrt:1608

2014-04-04, 20:31:03 - Csaba Pinter

status: changed from “New” to “Test”

2014-04-10, 15:57:52 - Csaba Pinter

Simply changing the default does not work in all cases.

2014-04-10, 15:57:52 - Csaba Pinter

status: changed from “Test” to “Accepted”

2014-05-14, 19:47:15 - Csaba Pinter

Test #568: Fixed and moving image for image-based rigid registration of PlanCT and OBI was mixed up, now corrected Commit: r:1726|slicerrt:1726

2014-05-14, 19:47:15 - Csaba Pinter

status: changed from “Accepted” to “Test”

2014-08-26, 15:48:40 - Csaba Pinter

Re #568: Increase version number to 0.2.0 Commit: r:1944|slicerrt:1944

2014-11-03, 14:45:40 - Csaba Pinter

Registration performance issues mitigated in Slicer, closing as fixed

2014-11-03, 14:45:40 - Csaba Pinter

status: changed from “Test” to “Fixed”

#569 Change isocenter glyph to better indicate purpose

Try to find similar glyph to the ones TPSs use.

2014-04-06, 02:06:44 - Csaba Pinter

Fixed #569: Different glyph is set for isocenter fiducials Commit: r:1611|slicerrt:1611

2014-04-06, 02:06:44 - Csaba Pinter

status: changed from “New” to “Fixed”

#570 DicomRtImportSelfTest fails

2014-04-07, 15:41:21 - Csaba Pinter

Fixed #570: DicomRtImportSelfTest and NA-MIC test fixed. They failed due to a recent change in the DICOM browser, and the import test also failed because the contour set color table have been removed from subject hierarchy Commit: r:1614|slicerrt:1614

2014-04-07, 15:41:21 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2014-04-07, 15:41:21 - Csaba Pinter

status: changed from “New” to “Fixed”

#571 Port a reader for Pinnacle’s .dvf format

Nice way to compare deformation results is to compare the transformations. Port a reader to enable the loading of .dvf files.

See attached code for file format details.

2014-04-07, 16:03:03 - Adam Rankin

file:azKBdeVM4r45_cacwqjQXA

2014-04-07, 16:03:03 - Adam Rankin

Attachment added: “DVFDecompress.cxx”

2014-04-07, 18:50:17 - Csaba Pinter

Is it OK if I assign it to milestone 0.15? I plan to release 0.14 soon, and this looks like a useful feature that could come next.

2014-04-07, 18:51:16 - Adam Rankin

That’s what I was thinking. Sounds good.

2014-04-07, 18:51:50 - Adam Rankin

file:cT3LQ4VOur46XYacwqjQWU

2014-04-07, 18:51:50 - Adam Rankin

Attachment added: “PinnDVFreader.m”

2014-04-07, 18:56:50 - Csaba Pinter

milestone_id: changed from null to “SlicerRt 0.15”

2014-06-02, 19:32:06 - wangk

This feature is very similar to Dicom deformable SRO import, so I will work up a prototype to keep the momentum going.

2014-06-02, 19:32:06 - wangk

assigned_to_id: changed from null to “wangk”

2014-06-02, 19:32:06 - wangk

status: changed from “New” to “Accepted”

2014-06-02, 19:32:48 - wangk

@rankin, do you have a test data for testing?

Thanks, -Kevin

2014-06-02, 20:36:47 - Adam Rankin

I will track one down.

2014-06-02, 20:38:31 - Adam Rankin

file:dkBnju6Pur464HacwqjQYw

2014-06-02, 20:38:31 - Adam Rankin

Attachment added: “DIRHN6DD6MOT_DIRHN6DD6BOT_PointBased.dvf”

2014-06-03, 17:47:19 - wangk

Thanks. @rankin, do you think you can get the associated fixed image and moving image? either dicom or other formats are fine as long as we can import them into slicer. This will help the testing and verfication.

2014-06-03, 18:10:09 - Adam Rankin

file:bdyI1e60Or474OacwqjQYw

2014-06-03, 18:10:09 - Adam Rankin

Attachment added: “HN6.zip”

2014-06-04, 16:54:44 - wangk

Re #571: Initial check in of the Pinnacle DVF reader module. Commit: r:1785|slicerrt:1785

2014-06-04, 16:59:55 - wangk

@rankin, you can test the module using the sample data you uploaded.

1.Load both CT images. 2.Load the DVF file. when loading the DVF file, turn on the show option and input (267,295,-325) as the grid origin. 3.Apply the deformation transform to the dir image. 4.Apply the post deformation transform to the deformation transform. Now the 2 CT images should be aligned.

Let me know if you have questions. -Kevin

2014-06-05, 12:21:15 - Adam Rankin

Will do. Is it possible to rename the module according to camel case? PinnacleDvfReader?

2014-06-05, 12:34:49 - wangk

I think it is ok to rename just so it reads more like other slicerrt modules.

2014-06-25, 00:48:32 - Csaba Pinter

Please do the renaming some time. Maintain a todo list if you forget.

2014-07-02, 16:17:23 - wangk

status: changed from “Accepted” to “Test”

2014-07-29, 15:55:33 - Csaba Pinter

Re #571: Rename PinnacleDVFReader to PinnacleDvfReader to match SlicerRT naming conventions Commit: r:1895|slicerrt:1895

2014-07-29, 16:00:23 - Csaba Pinter

Re #571: Renamed PinnacleDVFReader folder to PinnacleDvfReader to match SlicerRT naming conventions Commit: r:1896|slicerrt:1896

2014-08-06, 19:07:11 - Csaba Pinter

Is this module done? I cannot really test it.

2014-08-06, 19:27:26 - Adam Rankin

Hmm, a quick test might be load the .dvf, visualize it and see if it looks sane

It was a deformable registration from CT1 to CT2 (from LRCP random case)

2014-08-07, 19:45:41 - wangk

I think I did a bit testing after I finished the module. but I think I will have to redo the testing again to make sure. the catch is that you need to use the option to set the origin of the grid transform when importing the data. so it needs a bit documentation.

2014-08-07, 19:55:17 - Csaba Pinter

Not sure I understand correctly, but if there is an option that has to be used in most cases, then I think it would make senes to enable this option by default, and if the user encounters a file that is an exception in this manner then they will need to disable. Not sure where to document this though as this is not a ‘real’ module. Maybe in the SlicerRT troubleshooting section (I don’t think there is such a page but there should be)

2014-11-07, 15:11:54 - Csaba Pinter

Moved to SlicerRT 0.16

2014-11-07, 15:11:54 - Csaba Pinter

tag: changed from “” to “”

2014-11-07, 15:11:54 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.15” to “SlicerRt 0.16”

2015-01-14, 22:46:57 - Csaba Pinter

Is it possible to test this? This ticket has been in test state for half a year now.

2015-01-15, 03:54:16 - Adam Rankin

The port is no longer needed. Closing as Invalid.

2015-01-15, 03:54:16 - Adam Rankin

status: changed from “Test” to “Invalid”

2015-01-15, 15:16:14 - Csaba Pinter

Thanks! Is it possible that this will be needed at a later time? If so, will it be possible to continue working on this for somebody else with what we have? If no then maybe a readme file would be nice, otherwise we can leave it as is.

#572 Conversion fails on contours that are created in the Contours module

If a contour is created via the MRML node combobox in Contours module, then it is not in subject hierarchy, and so the conversion fails (color table cannot be found).

The problem was reported here (some parts of the conversation are not available on nabble): http://slicer-users.65878.n3.nabble.com/STL-to-Models-to-Label-Maps-td4027473.html

2014-04-07, 19:13:57 - Csaba Pinter

Fixed #572: Create new contour option removed from the contour selector combobox, because the same functionality is captured in the new section in the Contours module for creating contour from representation. Commit: r:1617|slicerrt:1617

2014-04-07, 19:13:57 - Csaba Pinter

status: changed from “New” to “Fixed”

#573 DICOM-RT import plugin is not on by default

Possibilities:

  1. The plugins in extensions will be turned ON by default -> Remove dicomWidget.detailsPopup.advancedViewButton.setChecked(True) calls from python tests
  2. The plugins in extensions will stay turned OFF by default -> Explicitly check DICOM-RT import plugin when registered as import plugin

See http://na-mic.org/Mantis/view.php?id=3578 https://github.com/Slicer/Slicer/pull/122#issuecomment-39761585

2014-04-08, 15:46:01 - Csaba Pinter

For possibility 1, those are the lines with TODOs in commit https://www.assembla.com/code/slicerrt/subversion/commit/1614

2014-04-25, 15:40:14 - Csaba Pinter

Fixed #573: Removed temporary code making sure the DICOM-RT import plugin is enabled, as not needed any more after Slicer revision 23109 Commit: r:1682|slicerrt:1682

2014-04-25, 15:40:14 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2014-04-25, 15:40:14 - Csaba Pinter

status: changed from “New” to “Fixed”

#574 dataset with inconsistent spacing

The error message is

vtkSlicerDicomRtReader (0000000014065620): Contours do not have consistent plane spacing. Unable to compute distance between planes. Returning default of 1

Confirm dataset is truly inconsistent. If so, apply the thickness of the majority of the slices, not a value of 1.

2014-04-08, 19:18:04 - Adam Rankin

file:b_qq8mV1ir44JcacwqjQWU

2014-04-08, 19:18:04 - Adam Rankin

Attachment added: “CT_Dose_Plan_Structures.zip”

2014-04-08, 20:05:15 - Adam Rankin

milestone_id: changed from “SlicerRt 0.15” to “SlicerRt 0.14”

2014-04-09, 20:05:56 - Adam Rankin

status: changed from “New” to “Accepted”

2014-05-12, 19:44:40 - Csaba Pinter

Same thing happens with this test dataset I created for testing https://dl.dropboxusercontent.com/u/3143581/IncorrectContourSpacing.ZIP Please fix ASAP, as this is not an isolated problem for sure, and I need to use the dataset for writing SH tests. Thanks!

2014-05-12, 19:44:45 - Csaba Pinter

priority: changed from “Normal (3)” to “High (2)”

2014-05-12, 20:44:44 - Adam Rankin

In that dataset, the first two planes of the first contour have a distance of 0.0

I am investigating.

2014-05-12, 21:35:55 - Adam Rankin

Indeed the data set does not seem to be valid.

The points extracted by OFVector contourData_LPS; contourItem.getContourData(contourData_LPS); are:

First plane: 143.156 70.211 -123.75 94.156 70.211 -123.75 … 143.156 70.211 -123.75

Second plane: 118.656 192.711 -123.75 … 167.656 192.711 -123.75

Third plane: 94.156 119.211 -100.75 69.656 94.711 -100.75 45.156 70.211 -100.75 -3.84399 70.211 -100.75 -52.844 70.211 -100.75 … 94.156 119.211 -100.75

It would appear that the data is malformed.

2014-05-12, 21:35:55 - Adam Rankin

CommentContent: changed from “Indeed the data set does not seem to be valid.

The points extracted by OFVector contourData_LPS; contourItem.getContourData(contourData_LPS); are:

143.156 70.211 -123.75 94.156 70.211 -123.75 … 143.156 70.211 -123.75

118.656 192.711” to “Indeed the data set does not seem to be valid.

The points extracted by OFVector contourData_LPS; contourItem.getContourData(contourData_LPS); are:

First plane: 143.156 70.211 -123.75 94.156 70.211 -123.75 … 143.156 70.211”

2014-05-12, 22:45:49 - Csaba Pinter

Is this the one that I reported today? If yes, then the error is in the DICOM-RT export module, as I just drew on 3 slices and exported to DICOM. I might be helpful to include the planes causing the error in the error message, so that we know what’s wrong. Might not though…

2014-05-15, 14:35:23 - Adam Rankin

CommentContent: changed from “For the first data set I get the following numbers: First plane: -6.45 12.88 -72 12.88 -72 -4.1 -72 -4.1 12.65 -4.1 12.65 -72 12.65 -72 -1.76 -72 -1.76 12.41 -1.76 12.41 -72 12.41 -72 0.59 -72 0.59 12.37 … -8.34 13.05 -72 13.05 -72 -6.27744e+066 -72” to null

2014-05-15, 14:35:47 - Adam Rankin

CommentContent: changed from “It fails between the 3rd and 4th plane, which it calculates as 2.0.

It fails because the previous planes have a distance of 0.0” to null

2014-05-15, 14:36:21 - Adam Rankin

CommentContent: changed from “What exported the first dataset?” to null

2014-05-15, 14:40:22 - Adam Rankin

Disregard those. I am an idiot.

2014-05-15, 14:41:02 - Csaba Pinter

Should be Ecilpse. How about discarding the first loaded contours on the same planes (i.e. if 3 contours are on the same plane, keep only the last one and log error)

2014-05-15, 14:42:28 - Csaba Pinter

Eclipse confirmed from DICOM tags

2014-05-15, 14:56:45 - Adam Rankin

Points reported by OFVector contourData_LPS; contourItem.getContourData(contourData_LPS);

First plane: -6.45 12.88 -72 -4.1 12.65 -72 -1.76 12.41 -72 0.59 12.37 -72 2.93 12.6 -72 5.27 12.83 -72 7.53 13.05 -72 7.62 13.06 -72 9.96 13.66 -72 … -8.79 13.1 -72 -8.34 13.05 -72

Second Plane: 7.62 38.07 -72 5.27 37.36 -72 2.93 36.91 -72 … 12.3 40.64 -72 9.96 39.21 -72 9.29 38.84 -72

Third Plane: 0.59 82.69 -72 -1.76 82.58 -72 -3.7 83.37 -72 … 4.47 85.71 -72 2.93 83.86 -72 2.01 83.37 -72

Fourth Plane: -4.1 10.58 -70 -1.76 10.36 -70 0.59 10.26 -70 … -8.79 11.05 -70 -6.45 10.81 -70 -5.45 10.71 -70

Who exported this dataset?

2014-05-15, 16:04:16 - Csaba Pinter

Kevin or someone from that gang at KGH

2014-05-15, 16:04:16 - Csaba Pinter

CommentContent: changed from “Kevin or someone from that Gang at KGH” to “Kevin or someone from that gang at KGH”

2014-05-15, 16:49:10 - Adam Rankin

test #574 Ignore distance between planes when it is 0.

This allows invalid datasets to still load, even if they are not 100% accurate on load. Commit: r:1727|slicerrt:1727

2014-05-15, 16:49:10 - Adam Rankin

status: changed from “Accepted” to “Test”

2014-05-15, 20:21:54 - Csaba Pinter

Thanks Adam! The small synthetic dataset loads well now.

The first ARIA dataset is still not loaded perfectly. The slice thickness is set to 1. Can you check what causes this? The dataset should be acceptable and properly loadable as was exported by Eclipse. Also, please include the name of the contour in the error message, it’s hard to see what caused the issue. The error log and the ribbons: https://dl.dropboxusercontent.com/u/3143581/screenshots/20140515_InconsistentSpacing.png

2014-05-16, 18:48:57 - Adam Rankin

test #574 much more verbose error reporting when contours contain data errors

now returning the majority value of the calculated plane spacing values Commit: r:1736|slicerrt:1736

2014-05-16, 18:49:29 - Adam Rankin

re #574 Merged revision(s) 1735-1736 from trunk/SlicerRt/src: Commit: r:1737|slicerrt:1737

2014-05-18, 16:16:40 - Adam Rankin

@pinter Let me know if you want anything changed

2014-05-18, 16:16:40 - Adam Rankin

assigned_to_id: changed from “rankin” to “pinter”

2014-05-18, 17:06:24 - Csaba Pinter

Looks great! Now we can load any structure set even if there are inconsistencies or missing metadata. Thanks a lot!

2014-05-18, 17:06:24 - Csaba Pinter

status: changed from “Test” to “Fixed”

#575 Item order and selection changes randomly in subject hierarchy tree

When showing/hiding certain nodes, the order of the nodes in that particular branch may change in a random manner. Sometimes selection changes too.

This problem occurs with the beam models in the Eclipse prostate phantom dataset, and all the volumes in the Huntington’s longitudinal dataset. Video capture of the latter: http://screencast.com/t/aQ4tRT52cK

These attempts did not make a difference:

2014-04-11, 21:10:25 - Csaba Pinter

Re #575 re #505: Overridden nodeIndex and parentNode methods in subject hierarchy model, thus fixed one case of random re-ordering (which was probably caused by nested association, when the data node had a non-SH hierarchy node directly associated, which was further connected to the SH node, so the base class’ parentNode and nodeIndex functions found the irrelevant hierarchy node) Commit: r:1635|slicerrt:1635

2014-04-11, 21:10:25 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2014-04-11, 21:16:14 - jchris

Good catch !

2014-04-11, 21:30:14 - Csaba Pinter

The credit goes to Julien, he suggested taking a look at the indices :)

2014-04-11, 22:26:08 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.15” to “SlicerRt 0.14”

2014-04-11, 22:26:03 - Csaba Pinter

Test #575, re #505: Random re-ordering seems to be fixed by making sure the node indices are incrementally assigned without skipping numbers Commit: r:1637|slicerrt:1637

2014-04-11, 22:26:03 - Csaba Pinter

status: changed from “New” to “Test”

2014-04-23, 18:19:27 - Csaba Pinter

status: changed from “Test” to “Fixed”

#576 Create vector field analysis module

This ticket will track progress toward release of this module. It was partly implemented during Winter Project week 2014.

2014-07-18, 23:28:25 - Greg Sharp

Re #576 Re-enable Jacobian calculation module Commit: r:1874|slicerrt:1874

2014-07-23, 17:37:36 - Greg Sharp

Re #576 Bug fixes to make Jacobian module actually work Commit: r:1886|slicerrt:1886

2014-11-07, 15:11:54 - Csaba Pinter

Moved to SlicerRT 0.16

2014-11-07, 15:11:54 - Csaba Pinter

tag: changed from “” to “”

2014-11-07, 15:11:54 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.15” to “SlicerRt 0.16”

2015-06-04, 22:09:42 - Csaba Pinter

Moved to 0.19

2015-06-04, 22:09:42 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.18” to “SlicerRt 0.19”

2016-07-26, 00:45:18 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.19” to “SlicerRt 1.1”

#577 Add reference volume combobox to Create Contour From Representation

Give the user the ability to choose a reference volume for the newly created contour

2014-04-30, 15:25:12 - Csaba Pinter

milestone_id: changed from null to “SlicerRt 0.15”

2014-09-26, 14:56:16 - Csaba Pinter

assigned_to_id: changed from “rankin” to null

2015-01-13, 21:08:23 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.15 (DICOM export)” to “SlicerRt 0.17 (Segmentations)”

2015-04-08, 13:54:43 - Csaba Pinter

Fixed #577, re #626: Reference image geometry can be imported from a volume (or labelmap, but not segmentation) node in the conversion parameter widget that can be accessed in the representations section of the Segmentations widget by clicking Update or Advanced [conversion] Commit: r:2208|slicerrt:2208

2015-04-08, 13:54:43 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2015-04-08, 13:54:43 - Csaba Pinter

status: changed from “New” to “Fixed”

#578 Segment using segment editor from subject hierarchy

Change Segment plugin to create new segmentation node for the selected volume if does not exist, put it in the same branch, switch to Segment Editor, and select the segmentation and the volume. (Possible after integration into Slicer core, unless we create a new plugin)

Old description: We have a create new child contour option in subject hierarchy, but the way one can create a segmentation using it is not straightforward, because the new contour will contain an empty ribbon model that the user has to first convert using a reference volume, then go to Editor module and draw on it there. What would be better is an action called ‘Create and edit child contour…’, that

  1. Only appears for contour sets, and only if the contour set has a volume parent
  2. Creates a contour similarly to how it is done in the existing feature
  3. Assigns it the parent volume as reference volume
  4. Creates an empty labelmap based on the reference volume
  5. Switches to the Editor module and sets the new labelmap the current one to edit

2015-01-13, 21:08:23 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.15 (DICOM export)” to “SlicerRt 0.17 (Segmentations)”

2015-04-13, 15:03:49 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2015-05-04, 17:40:22 - Csaba Pinter

Segmentation nodes are not required to be connected in any way to volume nodes (parent-child relation that the ticket mentions, or node references), so this context menu action is not viable any more.

There is already a Segment plugin in Slicer core that segments a non-labelmap volume and creates a labelmap volume using Editor. As segmentations will be supported by Editor, this ‘Segment this using…’ context menu action could create a segmentation and a new segment inside that is being edited in Editor when clicked.

2015-06-04, 22:14:25 - Csaba Pinter

Moved to 0.18

2015-06-04, 22:14:25 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.17 (Segmentations)” to “SlicerRt 0.18”

2015-08-06, 17:51:28 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.18” to “SlicerRt 0.19”

2016-01-31, 20:12:48 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.19” to “SlicerRt 0.18”

2016-02-05, 13:56:18 - Csaba Pinter

I realized that this ticket can be done best after Segmentations is integrated into Slicer core, so pushed back to 0.19 again.

2016-02-05, 13:56:18 - Csaba Pinter

summary: changed from “Support create and edit new contour in subject hierarchy” to “Segment using segment editor from subject hierarchy”

2016-02-05, 13:56:18 - Csaba Pinter

description: changed from “We have a create new child …” to “Change Segment plugin to cr…”

2016-02-05, 13:56:18 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.18” to “SlicerRt 0.19”

2016-07-08, 04:21:41 - Csaba Pinter

Topic branch to be integrated https://github.com/cpinter/Slicer/tree/segment-editor-promotion

2016-07-08, 04:21:41 - Csaba Pinter

status: changed from “New” to “Test”

2016-07-08, 04:21:47 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.19” to “SlicerRt 0.18”

2016-07-18, 14:47:08 - Csaba Pinter

status: changed from “Test” to “Fixed”

#579 Remove obsolete plastimatch modules

DICOM-RT Import / Export / XFORMWarp are probably obsolete. This ticket is for their removal.

2014-04-24, 13:57:31 - Greg Sharp

milestone_id: changed from null to “SlicerRt 0.15”

2014-10-29, 15:41:04 - Greg Sharp

assigned_to_id: changed from null to “gregsharp”

2014-11-07, 15:11:55 - Csaba Pinter

Moved to SlicerRT 0.16

2014-11-07, 15:11:55 - Csaba Pinter

tag: changed from “” to “”

2014-11-07, 15:11:55 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.15” to “SlicerRt 0.16”

2014-12-24, 15:15:11 - Greg Sharp

Re #579 Remove obsolete plastimatch modules Commit: r:2086|slicerrt:2086

2014-12-24, 15:16:33 - Greg Sharp

Fixed #579 Remove obsolete plastimatch modules Commit: r:2087|slicerrt:2087

2014-12-24, 15:16:33 - Greg Sharp

status: changed from “New” to “Fixed”

#580 Allow modifying isodose sets

Currently when the user clicks apply, a new set of isodose surfaces are generated. It would be better if the isodose set corresponding to the selected dose volume would be updated.

When this is ready, implement switching to the selected isodose set when edit properties is selected for the isodose segmentation in subject hierarchy.

Old description: ‘It would be better to select a model (or subject) hierarchy node and overwrite the existing isodose surfaces with the new parameters (keep the models that have the same parameters, and remove the ones that were changed).’

2014-04-17, 18:31:59 - wangk

@pinter, this is a much needed feature. I was going through the isodose code this morning and I see the problem there. it would be nice to have a default model (or subject) hierarchy node automatically created if it is not there.

2014-04-17, 18:48:54 - Csaba Pinter

I think we need to explicitly select/create a model or subject hierarchy node for the isodose set before creation in the isodose module UI. Similarly to Adam’s create contour from representation panel in Contours, where we have to set the parent. If the parent is new, then another set is created, if it’s a parent of an existing set, then it will be replaced.

2014-11-07, 15:11:55 - Csaba Pinter

Moved to SlicerRT 0.16

2014-11-07, 15:11:55 - Csaba Pinter

tag: changed from “” to “”

2014-11-07, 15:11:55 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.15” to “SlicerRt 0.16”

2015-01-13, 00:54:14 - Csaba Pinter

With the new segmentations, isodose sets can be one Segmentation node each. The widget in Isodose module for handling isosurfaces (vtkSegments) will probably be identical to the one in the modified Editor module. Much easier to implement the above way, so waiting for this feature would probably make sense.

2015-07-13, 20:16:02 - Csaba Pinter

summary: changed from “Allow modifying isodose sets” to “Allow modifying isodose sets, use segmentations instead of SH”

2015-07-13, 20:16:02 - Csaba Pinter

description: changed from “Currently when the user cli…” to “Currently when the user cli…”

2015-08-04, 19:42:32 - Csaba Pinter

summary: changed from “Allow modifying isodose sets, use segmentations instead of SH” to “Allow modifying isodose sets”

2015-08-04, 19:42:32 - Csaba Pinter

description: changed from “Currently when the user cli…” to “Currently when the user cli…”

2015-08-04, 19:42:32 - Csaba Pinter

assigned_to_id: changed from null to “wangk”

2015-10-15, 19:56:22 - wangk

status: changed from “New” to “Accepted”

2015-10-30, 16:51:08 - wangk

Re #580: WIP commit for allowing regenerate isodose using SH and MH.

Still need to work on a better icon and testing. Commit: r:2480|slicerrt:2480

2015-11-03, 17:38:23 - wangk

Re #580: Made changes for showing icons correctly for all isodose SH nodes. Commit: r:2483|slicerrt:2483

2015-11-06, 16:56:33 - Csaba Pinter

@wangk Are you planning to do more work on this? If not, then we can close the ticket.

2015-11-16, 19:56:41 - Csaba Pinter

Closing the ticket as fixed.

2015-11-16, 19:56:41 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

2015-11-16, 20:19:04 - Csaba Pinter

@wangk Was there any reason for changing the isodose hierarchy postfix from ‘_IsodoseSurfaces’ to ‘_IsodoseModels’? It broke a test. Please make sure you run the tests before making changes. Re-opening the ticket.

2015-11-16, 20:19:04 - Csaba Pinter

status: changed from “Fixed” to “Accepted”

2015-11-16, 20:23:03 - Csaba Pinter

Also why do you call the isodose hierarchy ‘ISODOSE’ with all caps? It’s against the conventions, not to mention it’s ugly.

2015-11-16, 20:47:46 - Csaba Pinter

@wangk I have been trying to simply fix the error, but as I was reviewing the code, I found these problems. Please fix, or let me know if I should fix them.

  1. Logic should not contain pointers to nodes related to input. Adding ModelHierarchyRootNode was a big mistake. We have parameter set nodes to contain information about the input, and the logic simply uses that data and executes its job. Input should not be strored in the logic. We have very clear design about this!
  2. The isodose SH root node has always the same name, defined in ISODOSE_ROOT_SUBJECT_HIERARCHY_NODE_NAME. I already mentioned that the name itself does not compy to the conventions, but the problem is that the two involved hierarchy nodes are named completely differently. The SH node will always be called the same, while the model hierarchy node is named as it should be expected.
  3. The code contains unnecessary lines and in many places the style is not according to conventions. I will fix this last one now.

2015-11-16, 20:54:36 - wangk

will look at these things tomorrow or wednesday. I did remember the naming is a bit awkward so I will fix it.

ModelHierarchyRootNode is not an input parameter. but I guess there is probably other way so that we do not need to keep it.

2015-11-16, 20:55:43 - Csaba Pinter

Re #580: Fixing failing IGRT test that was caused due to different SH node name; Code simplification in isodose logic to avoid unnecessary lines; Stylistic changes to comply with conventions Commit: r:2498|slicerrt:2498

2015-11-16, 22:50:18 - Csaba Pinter

Thanks, Kevin! I fixed the naming so that should be fine now. I didn’t have the chance to re-run the test but will do that tomorrow. The model root node is indeed not an input, but not module-specific either and it does depend on the input. So it shouldn’t be in the logic.

2015-11-17, 15:38:28 - Csaba Pinter

Re #580: Adding missing file from last commit Commit: r:2499|slicerrt:2499

2015-11-17, 15:46:15 - Csaba Pinter

@wangk Unfortunately there is a major bug in the new isodose logic. If you have two dose volumes, and try to generate isodose for both, then when you do it for the second dose, it removes the ones for the first dose. Please run IGRT self test and you’ll understand. This needs fixing ASAP, as now the Slicer stable version also contains this bug. Thanks!

2015-11-17, 16:00:02 - Csaba Pinter

I think the problem is that the ModelHierarchyRootNode member corresponds to the first dose volume and the nodes are removed around line 370 in the logic. This is why storing ModelHierarchyRootNode in the logic is a bad idea. It would be better to store it as a reference from the dose volume node (or the SH, whichever is more convenient).

2015-11-17, 16:00:42 - Csaba Pinter

Re #580: Fixed crash when computing isodose for dose volume without study parent Commit: r:2500|slicerrt:2500

2015-11-17, 16:20:28 - wangk

thanks for the debug. I will try to fix it ASAP.

2015-11-17, 16:28:20 - Csaba Pinter

Great, thanks!

2015-11-18, 20:47:21 - wangk

Hi Csaba,

I tried to move the ModelHierarchyRootNode to the vtkMRMLIsodoseNode class as a reference, however, when looking at the IGRT test, I do not think you create a new vtkmrmlisedosenode when run the logic for the second time. so this will not fix the problem unless we create a new vtkmrmlisedosenode for second run.

now that I looked again at your comments and what do you mean by ‘It would be better to store it as a reference from the dose volume node (or the SH, whichever is more convenient)’. can you advise please?

2015-11-18, 20:56:21 - wangk

and I think creating a new vtkMRMLIsodoseNode would be ok for second run of logic as it is supposed to keep all the input parameters. since in IGRT test, for second run, the input parameter is changed (which is the dose volume node) so it would be natural to create a new module parameter node and store dose volume node with the new parameter node. if so, then I will go ahead with this approach.

thanks.

2015-11-18, 20:56:59 - Csaba Pinter

As you said, the model hierarchy node is not a direct input of the logic, so I don’t think the parameter set node is the best to store this information. This is why I suggested to set the model hierarchy reference to the dose volume node. Does it make sense?

2015-11-18, 21:14:31 - wangk

yes and no. since i think the design of parameter set node is to hold the input node which in this case is the dose volume node, this means that we should have 2 parameter set nodes for 2 different dose volume nodes. so naturally we should have 2 parameter set nodes. putting the reference in either of them would work. putting the reference in dose volume node has a bit advantage of convenient access to the reference from dose volume node. so i think i will go with this approach then. thanks.

2015-11-18, 22:27:25 - Csaba Pinter

I agree that ideally the test should have two parameter set nodes. Adding the reference to the dose volume node is indeed more convenient, but more importantly it allows finding the isodose set from the dose volume instead of looking for the parameter set node pointing to the dose volume, which is an expensive operation.

2015-11-18, 22:30:42 - wangk

Re #580: Quick temp fix for IGRT test.

I only had enough time today to do this. I will continue the work tomorrow to make code clean and run the IGRT test itself. Commit: r:2502|slicerrt:2502

2015-11-18, 22:31:26 - wangk

thanks. I only had enough time to do a quick fix. tomorrow I will clean the code and run the test. hope that is fine.

2015-11-19, 14:45:13 - Csaba Pinter

Thanks Kevin! I only had one minor comment in the code. Once you finished please set status to test.

2015-11-23, 14:25:43 - wangk

Re #580: Clean up code and temp fix the isodose logic test.

Using modelHierarchyRootNode->GetChildrenNodes() to get children node in test to temparorily fix the test. Need more time to investigate why modelHierarchyRootNode->GetChildrenModelNodes(collection) is not working in the test. Commit: r:2505|slicerrt:2505

2015-11-23, 20:42:43 - wangk

Re #580: Change comment to ‘TODO’. Commit: r:2506|slicerrt:2506

2016-01-12, 14:56:44 - Csaba Pinter

assigned_to_id: changed from “wangk” to null

2016-01-12, 14:56:48 - Csaba Pinter

status: changed from “Accepted” to “Test”

2016-01-14, 16:51:08 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2016-02-22, 23:12:56 - Csaba Pinter

Fixed #580: Removed unique name generation from the updated isodose nodes as they are not dose volume specific in the first place, and it was strange that after updating the isodose set, the new level did not have postfix, but the old ones had a ‘_1’ ending. Commit: r:2687|slicerrt:2687

2016-02-22, 23:12:56 - Csaba Pinter

status: changed from “Test” to “Fixed”

#581 Create subject hierarchy documentation

Re-organize main SlicerRT wiki page, more links to small categories ** Modules, multi-column list ** Registration: Reg. case library, subject hierarchy reg. plugin ** Contour handling and segmentation ** Handling fractions ** Transforming studies, patients ** Beam handling (ask Kevin to write it) ** Plastimatch features (Greg)

Into Subject hierarchy module page

Update montage: no whole screenshots, just viewers (no need for all those 2Ds)

2014-07-13, 06:26:35 - Csaba Pinter

description: changed from “* General features ** Conte…” to “Re-organize main SlicerRT w…”

2014-07-13, 06:27:06 - Csaba Pinter

description: changed from “Re-organize main SlicerRT w…” to “Re-organize main SlicerRT w…”

2014-08-01, 23:10:41 - Csaba Pinter

Re #581: Show volume information for dose volumes similarly to generic volumes in subject hierarchy tooltips Commit: r:1914|slicerrt:1914

2014-10-03, 18:45:47 - Csaba Pinter

status: changed from “New” to “Accepted”

2014-10-03, 18:46:50 - Csaba Pinter

Subject hierarchy module wiki page reorganized: http://www.slicer.org/slicerWiki/index.php?title=Documentation/Nightly/Modules/SubjectHierarchy&oldid=39220 (static version link)

2014-10-08, 18:55:01 - Csaba Pinter

I close this ticket, the subject hierarchy documentation now reflects the reality. The SlicerRT page is not re-organized yet, because we will only see the complete picture when releasing 1.0 (after DICOM export, Segmentation object, and stable External beam planning), and can create a good documentation then.

2014-10-08, 18:55:01 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

2014-10-08, 18:55:38 - Csaba Pinter

Documentation overhaul is tracked in #317

#582 Set best guess registration parameters based on input properties

Register plugin in subject hierarchy allows selecting two input volumes and the main registration method, which saves the user more than half the user interactions needed. However, more detailed parameter setting would be possible based on the image modalities and possibly other image properties. These settings could be stored in parameter set nodes that are deployed in the SlicerRT install tree, and loaded on demand when certain conditions are met after selecting the two input volumes and the registration method.

2014-07-13, 06:01:26 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.15” to “SlicerRt 1.0”

2014-08-09, 04:12:33 - Csaba Pinter

Registration case llibrary: http://www.na-mic.org/Wiki/index.php/Projects:RegistrationDocumentation:UseCaseInventory

2014-09-14, 00:09:19 - Csaba Pinter

Input image complexity could also be measured

2015-01-14, 18:52:06 - Csaba Pinter

milestone_id: changed from “SlicerRt 1.0” to “Future”

#583 Add closed surface / volume to planar contours conversion algorithm

Original title and description: When a contour’s poly data or volume data is transformed, the internal contour planes are not updated

The contour planes should be updated to reflect the new contour data. This might require recalculation of the planes if the transform is deformable.

THe problem occurs when the transform is hardened. If we need the ROI contour points at a stage later than RT import, then we need to keep it updated. FOr now the planes and the ROI polylines are only used for the direct ROI to closed surface conversion, so not sure if this is needed in the future. Good to keep in mind though.

2014-04-30, 15:24:47 - Csaba Pinter

description: changed from “The contour planes should b…” to “The contour planes should b…”

2014-04-30, 15:24:47 - Csaba Pinter

milestone_id: changed from null to “Future”

2015-01-27, 20:26:58 - Csaba Pinter

milestone_id: changed from “Future” to “SlicerRt 0.17 (Segmentations)”

2015-06-04, 22:14:25 - Csaba Pinter

Moved to 0.18

2015-06-04, 22:14:25 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.17 (Segmentations)” to “SlicerRt 0.18”

2015-07-27, 14:48:17 - Csaba Pinter

summary: changed from “When a contour’s poly data or volume data is transformed, the internal contour planes are not updated” to “Add closed surface / volume to planar contours conversion algorithm”

2015-07-27, 14:48:17 - Csaba Pinter

description: changed from “The contour planes should b…” to “Original title and descript…”

2015-07-27, 14:48:17 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.18” to “Future”

2015-09-10, 14:55:11 - Greg Sharp

milestone_id: changed from “Future” to “SlicerRt 0.18”

2015-09-10, 15:01:57 - Greg Sharp

milestone_id: changed from “SlicerRt 0.18” to “Future”

2015-09-17, 19:15:27 - Csaba Pinter

Now that in Segmentations the planar contour is a full-fledged representation, this ticket is basically the same as #536. Closing this one.

2015-09-17, 19:15:27 - Csaba Pinter

status: changed from “New” to “Invalid”

#584 Add chi evaluation to dose comparison

Bakai et al. A revision of the gamma-evaluation concept for the comparison of dose distributions. Phys Med Biol. 2003 Nov 7;48(21):3543-53. Jin et al. A novel dose uncertainty model and its application for dose verification. Med. Phys. 32 „6…, June 2005, p1747

2014-05-14, 15:39:38 - Csaba Pinter

Request of Layal Obeid from ESRF, France

2014-05-14, 18:48:08 - Csaba Pinter

file:bkEqDu25Gr47pddmr6bg7m

2014-05-14, 18:48:08 - Csaba Pinter

Attachment added: “chi3D.m”

2014-05-14, 18:53:59 - Csaba Pinter

Re #271, re #584: Added dose comparison paper Commit: r:1724|slicerrt:1724

2014-05-14, 18:53:59 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

#585 Multidim sequence browser crashes when picking a sequence node

The place to cause the crash is in vtkMRMLSequenceBrowserNode::AddVirtualOutputNodes() at line:

vtkMRMLDisplayNode* displayNode=vtkMRMLDisplayNode::SafeDownCast(this->Scene->CopyNode(sourceDisplayNode));

the new displayNode is null.

2014-05-06, 15:24:21 - wangk

Test #585: Added the check to make sure only valid new display node is added. Commit: r:1704|slicerrt:1704

2014-05-06, 15:24:21 - wangk

status: changed from “New” to “Test”

2014-07-19, 13:41:18 - Andras Lasso

milestone_id: changed from “MultidimData 0.2.0” to “MultidimData 0.2.1”

2014-08-18, 13:33:26 - wangk

status: changed from “Test” to “Fixed”

#586 Add support to vtkMRMLLinearTransformNode in the sequence browser logic

this allows to create and track the sequence node that holds transformNode.

@lassoan, maybe you can check if this can be applied to nonlinear transform node as well.

2014-05-06, 15:29:06 - wangk

Test #586: Added support to linear transform node in the browser logic. Commit: r:1705|slicerrt:1705

2014-05-06, 15:29:06 - wangk

status: changed from “New” to “Test”

2014-05-26, 18:34:42 - wangk

Re #586: WIP commit - adding support to display the displacement vector over sequence in sequence browswer ui. It supports both linear and deformable transform now. Commit: r:1760|slicerrt:1760

2014-07-19, 13:41:18 - Andras Lasso

milestone_id: changed from “MultidimData 0.2.0” to “MultidimData 0.2.1”

2014-08-18, 13:33:22 - wangk

status: changed from “Test” to “Fixed”

#587 Add a scripted module for sequence registration

  1. Ideally this will allow flexible registration between sequence/images.
  2. output should be a sequence of transform and/or volume.
  3. should be able to handle rigid and deformable registration.

2014-05-08, 15:33:24 - wangk

status: changed from “New” to “Accepted”

2014-05-08, 15:35:06 - wangk

Re #587: WIP commit. so far only rigid registration supported. Commit: r:1709|slicerrt:1709

2014-05-08, 15:39:20 - wangk

Re #587: Changed png filename to be consistent with module name.

Commit: r:1710 slicerrt:1710

2014-05-08, 16:00:53 - Csaba Pinter

This feature should eventually be accessible from subject hierarchy. Please keep this in mind when working on this and let us know if you have an idea for handling multidimensional nodes in subject hierarchy in general, or for their registration. Thanks!

2014-05-08, 16:02:24 - wangk

I see. We can discuss this in our next meeting then.

2014-05-08, 19:44:33 - wangk

Re #587: Initial commit of the module. It is still very much the same as the label statistics module for now.

Commit: r:1711 slicerrt:1711

2014-05-13, 19:35:20 - wangk

Re #587: Small fixes for resampling output volume etc.

Commit: r:1720 slicerrt:1720

2014-05-26, 18:43:35 - wangk

Re #587: Small UI improvements. Added Bspline registration (currently commented out). this modules needs the support from parameter serialization in the future to make it more adaptable. Commit: r:1763|slicerrt:1763

2014-07-19, 13:41:18 - Andras Lasso

milestone_id: changed from “MultidimData 0.2.0” to “MultidimData 0.2.1”

2015-09-30, 21:34:37 - Andras Lasso

moved to https://github.com/SlicerRt/Sequences/issues/8

2015-09-30, 21:34:37 - Andras Lasso

status: changed from “Accepted” to “Invalid”

#588 Facilitate hierarchical organization of contours

Brain inside body, etc.

Same task as supporting ontologies. vtkSegment::Tags can contain such information

2015-01-16, 05:08:05 - Csaba Pinter

description: changed from “Brain inside body, etc.” to “Brain inside body, etc.

Sa…”

2015-01-16, 05:08:05 - Csaba Pinter

milestone_id: changed from “Future” to “SlicerRt 0.17 (Segmentations)”

2015-05-28, 15:31:19 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.17 (Segmentations)” to “Future”

2015-11-13, 17:19:18 - Csaba Pinter

Related: https://github.com/Slicer/Slicer/pull/408

2015-11-18, 15:55:49 - Csaba Pinter

CommentContent: changed from “Related pull request: https://github.com/Slicer/Slicer/pull/408” to null

2017-07-25, 19:28:27 - Csaba Pinter

Moved to Slicer Mantis because Segmentations is now in Slicer core https://issues.slicer.org/view.php?id=4402

2017-07-25, 19:28:27 - Csaba Pinter

status: changed from “New” to “Invalid”

#589 Cannot set mask contour to none in dose comparison

The apparent selection changes, but the previously selected contour is applied.

2014-05-08, 19:50:32 - Csaba Pinter

Test #589: NULL node reference now can be set for parameter set nodes. Note: It still crashes, but the crash is in Slicer core, see http://www.na-mic.org/Bug/view.php?id=3682 ; Dose comparison module now correctly sets None selection to parameter node (once the Slicer crash is fixed) Commit: r:1712|slicerrt:1712

2014-05-08, 19:50:32 - Csaba Pinter

status: changed from “New” to “Test”

2014-05-27, 20:01:38 - Csaba Pinter

Changes in Slicer core (revision 23196) fixed the issue

2014-05-27, 20:01:38 - Csaba Pinter

status: changed from “Test” to “Fixed”

#590 Add a scripted module for sequence data label statistics

this is very much similar to the current label statistics module. just extending it to deal with 4D data.

2014-05-08, 19:50:31 - wangk

status: changed from “New” to “Accepted”

2014-05-26, 18:40:30 - wangk

Re #590: UI improvement. also changed the labelmap input to take in both sequence data as well as single labelmap. Commit: r:1762|slicerrt:1762

2014-07-19, 13:41:18 - Andras Lasso

milestone_id: changed from “MultidimData 0.2.0” to “MultidimData 0.2.1”

2015-09-30, 21:35:06 - Andras Lasso

moved to https://github.com/SlicerRt/Sequences/issues/9

2015-09-30, 21:35:06 - Andras Lasso

status: changed from “Accepted” to “Invalid”

#591 Add a scripted module for sequence resampling

this could also be integrated into the sequence registration module if it is desired.

2014-05-09, 13:58:59 - wangk

Re #591: Initial commit of the module. Todo: need to change the node name to make it more readable.

Commit: r:1713 slicerrt:1713

2014-05-09, 14:05:43 - wangk

status: changed from “New” to “Accepted”

2014-05-13, 19:37:31 - wangk

Re #591: Initial commit of a very basic interactive charting function for sequence data. Only support master scalarvolume now. Todo: make chart UI more user friendly.

Commit: r:1721 slicerrt:1721

2014-05-26, 18:37:50 - wangk

Re #591: Modified code to support any kind of transform for resampling (linear and deformable). Commit: r:1761|slicerrt:1761

2014-05-26, 19:38:21 - Csaba Pinter

A reminder that every line of code that you write for ‘sequence *’, will become obsolete the moment multidimensional data is supported by subject hierarchy. Please read the wiki page about subject hierarchy and watch the 5-minute video so that you have abasis to think about it while doing this work. I’m writing this because any unnecessary work that is done is a waste of resources.

2014-05-26, 19:53:22 - wangk

Hi Csaba,

I am not aware about the plan to migrate the multidimensional data support to subject hierarchy. Last week I talked to Andras and he think it is a good idea to develop all the python scripts for multidimensional data to test out the ideas before implementing them in C++. Maybe we should arrange a hangout to clarify?

Thanks, -Kevin

2014-05-26, 19:57:17 - Csaba Pinter

It’s not a short-term process, and I wasn’t aware of your agreement with Andras. If a roadmap is established, then of course proceed. But eventually subject hierarchy should be the center of exploration and handling of any data. Then the only thing I ask from you now is to read this wiki page http://www.slicer.org/slicerWiki/index.php/Documentation/Labs/SubjectHierarchy and watch this video http://screencast.com/t/7fZ0eybAl so that you can develop ideas as you go with the multidimension features. Thanks!

2014-07-19, 13:41:18 - Andras Lasso

milestone_id: changed from “MultidimData 0.2.0” to “MultidimData 0.2.1”

2015-09-30, 21:36:36 - Andras Lasso

moved to https://github.com/SlicerRt/Sequences/issues/10

2015-09-30, 21:36:36 - Andras Lasso

status: changed from “Accepted” to “Invalid”

#592 Add interactive charting of pixel values over sequence

this is one of the features that exists in the original multivolume explorer module.

I think it should still be in the sequence browser module so that multiple synchronized sequence can be queried at the same time?

2014-05-09, 14:07:56 - wangk

status: changed from “New” to “Accepted”

2014-07-19, 13:43:21 - Andras Lasso

milestone_id: changed from “MultidimData 0.2.1” to “MultidimData 0.2.0”

2014-07-19, 13:44:11 - Andras Lasso

re #592: Updated MultidimData version number for new release Commit: r:1875|slicerrt:1875

2014-07-19, 16:13:09 - Andras Lasso

status: changed from “Accepted” to “Fixed”

#593 Import deformable DICOM registration object

The rigid case (#405) is ready, next is deformable.

2014-05-29, 14:45:01 - wangk

assigned_to_id: changed from null to “wangk”

2014-05-29, 14:45:01 - wangk

status: changed from “New” to “Accepted”

2014-06-02, 17:42:29 - wangk

Test #593: Implemented Deformable SRO import using the new vtkOrientedGridTransform. Also fixed the rigid SRO import using the new SetMatrixTransformToParent() method. Commit: r:1778|slicerrt:1778

2014-06-02, 17:42:29 - wangk

status: changed from “Accepted” to “Test”

2014-06-03, 12:09:46 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.15” to “SlicerRt 0.14”

2014-07-12, 17:01:22 - Csaba Pinter

Closing this ticket before release, assuming that the lack of error reports since setting the status to Test means that there are no errors. In case of errors a new ticket should be opened and related to this one.

2014-07-12, 17:01:22 - Csaba Pinter

status: changed from “Test” to “Fixed”

#594 Specify source representation type for contour instead of created from labelmap flag

Currently we decide the possible conversion options based on a CreatedFromIdexedLabelmap flag among others. It would be better to store the ‘most accurate’ representation, which is the source from the contour was originally created (it would serve as a fallback or baseline object). This member variable should be read-only.

2014-12-21, 17:05:39 - Csaba Pinter

This issue is covered by the concept of the master representation, see plans in #626

2014-12-21, 17:05:39 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2014-12-21, 17:05:39 - Csaba Pinter

status: changed from “New” to “Invalid”

#595 Implement segmentations storage

Save segmentation nodes as one file that contains only the master representation.

Numerous automatic tests fail because this is not implemented (DVH, Segment*, etc.). Need to update test MRML scenes and contour files for those.

2014-05-14, 18:13:10 - Adam Rankin

milestone_id: changed from null to “SlicerRt 0.15”

2015-01-13, 21:08:23 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.15 (DICOM export)” to “SlicerRt 0.17 (Segmentations)”

2015-04-23, 18:18:24 - Csaba Pinter

Re #626, re #595: Added skeleton for vtkMRMLSegmentationStorageNode (most of the body commented out) so that there is no crash when Save data is clicked. Commit: r:2226|slicerrt:2226

2015-04-23, 18:18:24 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2015-06-04, 22:14:25 - Csaba Pinter

Moved to 0.18

2015-06-04, 22:14:25 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.17 (Segmentations)” to “SlicerRt 0.18”

2015-06-04, 22:24:19 - Csaba Pinter

summary: changed from “vtkMRMLContourStorageNode long term goals” to “Implement segmentations storage”

2015-06-04, 22:24:19 - Csaba Pinter

priority: changed from “Normal (3)” to “High (2)”

2015-06-04, 22:24:19 - Csaba Pinter

description: changed from “The first pass of the vtkMR…” to “Save segmentation nodes as …”

2015-07-17, 00:02:35 - Csaba Pinter

Re #595: WIP Progress with segmentations storage Commit: r:2351|slicerrt:2351

2015-07-20, 23:43:41 - Csaba Pinter

Re #595: WIP Initial implementation of writing binary labelmap in segmentations storage Commit: r:2358|slicerrt:2358

2015-07-21, 19:37:19 - Csaba Pinter

Re #595: Fixed regression that display was not updated when parent transform changed; Set segmentation’s parent transform to exported representation node Commit: r:2361|slicerrt:2361

2015-07-21, 22:19:15 - Csaba Pinter

Re #595: Read and write of segmentations to 4D nrrd files confirmed through initial implementation WIP Commit: r:2362|slicerrt:2362

2015-07-22, 15:47:59 - Csaba Pinter

status: changed from “New” to “Accepted”

2015-07-22, 18:26:07 - Csaba Pinter

Re #595: Verify that poly data representations can be written as multi-block dataset WIP Commit: r:2364|slicerrt:2364

2015-07-22, 21:37:28 - Csaba Pinter

Re #595: Outsource merged labelmap geometry calculation to vtkSegmentation::DetermineCommonLabelmapGeometry function and use it also in storage node to determine the geometry of the saved image; Fixed color names issue introduced by Slicer rev24436; Use double extensions for segmentations (.seg.nrrd and .seg.vtm) and offer the one corresponding to the master representation Commit: r:2365|slicerrt:2365

2015-07-22, 23:20:20 - Csaba Pinter

Re #595: Reset supported write file type when master representation is changed Commit: r:2366|slicerrt:2366

2015-07-26, 21:14:56 - Csaba Pinter

Re #595: Segmentation in save file dialog is now checked by default (like all other nodes); Failed attempt for setting axis types in NRRD (first three are spatial axes, the fourth is not - ‘not resampleable’), committed for the record; Enabled renaming segmentation in Segmentations module Commit: r:2372|slicerrt:2372

2015-07-28, 18:17:30 - Csaba Pinter

Re #595: Implemented segment labelmap writing Commit: r:2375|slicerrt:2375

2015-07-28, 19:48:59 - Csaba Pinter

Re #595: Metadata is properly written to and read from volumes Commit: r:2377|slicerrt:2377

2015-07-29, 21:41:33 - Csaba Pinter

Re #595: Segmentations binary labelmap storage implemented. An extent error is needed to be fixed Commit: r:2378|slicerrt:2378

2015-07-30, 14:41:36 - Csaba Pinter

Re #595: Segmentations binary labelmap storage issue fixed, it works fine Commit: r:2379|slicerrt:2379

2015-07-31, 21:46:42 - Csaba Pinter

Re #595: Segmentations poly data read/write works Commit: r:2381|slicerrt:2381

2015-08-01, 20:26:51 - Csaba Pinter

Re #595: Adding all file names to segmentation storage node; Implemented XML read/write for segmentations display node Commit: r:2382|slicerrt:2382

2015-08-01, 23:00:55 - Csaba Pinter

Re #595: Write contained representation names and all conversion parameters to both volume and poly data files when saving segmentations. When reading the file, the conversion parameters are set, and at the end of loading, the contained representations (other than the master) are created using the parameters (note that the path is unknown so the cheapest one will be used) Commit: r:2383|slicerrt:2383

2015-08-04, 17:16:48 - Csaba Pinter

Re #595: Show closed surface model after loading if it exists, also set automatic opacities for better visualization Commit: r:2385|slicerrt:2385

2015-08-05, 18:38:02 - Csaba Pinter

Re #595: Fixed scene loading related issues; Removed step that did a reset on the segment display properties when display node reference changed (it caused an assert fail in vtkMRMLLabelMapVolumeDisplayNode::UpdateImageDataPipeline because lookup table was empty before re-populating it). Removing this code should not cause issues, as the color table and the display properties are always synchronized with the segmentation, both when manipulating it real-time and when loading a scene. Also calling such high-level operations from low-level callback functions could cause other issues. Commit: r:2388|slicerrt:2388

2015-08-05, 19:27:50 - Csaba Pinter

Re #595: Fixed loading of first segment broken by last commit Commit: r:2389|slicerrt:2389

2015-08-05, 20:10:23 - Csaba Pinter

Test #595: Fixed missing merged labelmap on loading scenes Commit: r:2390|slicerrt:2390

2015-08-05, 20:10:23 - Csaba Pinter

status: changed from “Accepted” to “Test”

2015-08-06, 19:57:26 - Csaba Pinter

Re #595: Use Compression flag from storage node (the option can be turned on/off in the save data dialog after checking options) Commit: r:2393|slicerrt:2393

2015-08-21, 20:24:43 - Csaba Pinter

status: changed from “Test” to “Fixed”

#596 Inverted BSpline transform in sequence not properly stored

Procedure to reproduce the bug: 1 load bspline transform from transformvisualizer module twice. 2 invert one bspline transform. 3 add both transform into sequence. 4 visualize the sequence in browser and the inverted one will not show up.

2014-07-19, 16:12:41 - Andras Lasso

Component: changed from “SlicerRt modules” to “MultidimData”

2014-07-19, 16:12:46 - Andras Lasso

milestone_id: changed from “MultidimData 0.2.0” to “MultidimData 0.2.1”

2015-09-30, 16:13:03 - Andras Lasso

It works well now.

2015-09-30, 16:13:03 - Andras Lasso

status: changed from “New” to “Invalid”

#597 Contour 2D display in slice views

Need to come up with a good way to display multiple contours in the slice views.

2014-05-14, 17:54:46 - Csaba Pinter

JC multiple slice view layers: ‘Here is the topic: https://github.com/jcfr/Slicer/compare/add-multi-slice-layer-support Need to do more testing and add support for VTK6. Feature:

Remarks:

2014-05-14, 17:54:57 - Csaba Pinter

JC: ‘ Regarding the management of contours - there are few possible approaches:

2014-05-14, 17:55:05 - Csaba Pinter

Contour management: We could do something in between the two main options. We could manage everything with only two labelmaps: • Binary labelmap that is currently being edited, it only contains one structure. • RGB color layer containing a pre-computed composition of all the other contours (taking into account the color and transparency of each structure). The contours that are not being edited can be stored very efficiently with a simple run-length-encoding scheme (similarly as it is done in the Editor undo stack) or in any other representation (the new contour node already takes care of multiple representations and conversion between them) and they could be rendered directly from their compressed representation into the RGB image.

Andras

2014-05-14, 18:13:03 - Adam Rankin

Yes, I completely agree, storing the contours in one shared labelmap is not a good approach. The fact that contours can overlap more-or-less excludes this option anyway.

I would only use a combined labelmap for display (that is dynamically constructed/updated by the 2D contour displayable manager).

Andras

2014-07-31, 17:15:40 - Csaba Pinter

Recent state:

’ vtkMRMLVolumeDisplayNode contain passthrough function to return vtkImageData of volume node when asked -> must be virtual so contour node can pass through its own vtkImageData instead

vtkMRMLSliceCompositeNode store vtkMRMLVolumeDisplayNode instead of vtkMRMLVolumeNode

vtkMRMLSliceLayerLogic store vtkMRMLVolumeDisplayNode instead of vtkMRMLVolumeNode

qMRMLSliceControllerWidget to work with vtkMRMLVolumeDisplayNode instead of vtkMRMLVolumeNode (when loading DICOM data, CT volume loaded as scalar volume did not show up)

re-enable vtkMRMLScalarVolumeDisplayNode subclassed to vtkMRMLContourVolumeDisplayNode

vtkMRMLSliceLayerLogic observing both transform modified and modified events

The slice layer logic is where most of the re-writing would have to be done. ‘ - Adam

2014-08-06, 15:38:03 - Csaba Pinter

priority: changed from “Normal (3)” to “High (2)”

2015-01-13, 21:08:23 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.15 (DICOM export)” to “SlicerRt 0.17 (Segmentations)”

2015-02-05, 19:10:52 - Csaba Pinter

Re #626, re #597: Merge labelmap WIP Commit: r:2134|slicerrt:2134

2015-02-05, 19:10:52 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2015-02-11, 16:11:33 - Csaba Pinter

Re #626, re #597: Progress towards automatic conversion and segmentation labelmap display; Implemented binary labelmap to closed surface conversion rule (explicit test code in vtkSlicerDicomRtImportExportModuleLogic::LoadRtStructureSet, will be removed, committed for the record) Commit: r:2144|slicerrt:2144

2015-02-12, 15:20:40 - Csaba Pinter

Fixed #597, re #626: Labelmap merging and display works for segmentations; ExtentOffset member added to vtkOrientedImageData to store offset of the segment labelmap extents compared to reference (it takes a lot of computation to calculate it afterwards with the free orientation). This member facilitates labelmap merge with the reduced sized labelmaps that are only as large as the contained structure. Commit: r:2146|slicerrt:2146

2015-02-12, 15:20:40 - Csaba Pinter

status: changed from “New” to “Fixed”

#598 Subject hierarchy tree update issues

Tree collapses if nodes are added while the module is active

This is part of a more comprehensive issue with any updating the view, such as this problem Jc reported (mantis issue url:http://na-mic.org/Mantis/view.php?id=3714|#3714). After a discussion with Julien and Jc at NA-MIC week, the following conclusion was drawn:

Python script used to test subject hierarchy with a basic tree view (no filter proxy model, no fancy widget): tv = qt.QTreeView() wr = slicer.modules.subjecthierarchy.widgetRepresentation() sm = wr.subjectHierarchySceneModel() tv.setModel(sm) tv.setDragEnabled(True) tv.acceptDrops = 1 tv.show()

2014-05-16, 06:07:27 - Csaba Pinter

summary: changed from “Subject hierarchy tree collapses when nodes are added while the module is active” to “Subject hierarchy tree collapses if nodes are added while the module is active”

2014-06-30, 20:37:10 - Csaba Pinter

priority: changed from “Normal (3)” to “High (2)”

2014-06-30, 20:37:10 - Csaba Pinter

description: changed from “” to “This is part of a more comp…”

2014-07-13, 06:11:29 - Csaba Pinter

summary: changed from “Subject hierarchy tree collapses if nodes are added while the module is active” to “Subject hierarchy tree update issues”

2014-07-13, 06:11:29 - Csaba Pinter

description: changed from “This is part of a more comp…” to “Tree collapses if nodes are…”

2014-07-13, 06:11:29 - Csaba Pinter

status: changed from “New” to “Accepted”

2014-07-28, 20:52:48 - Csaba Pinter

file:aH4dg-fPKr5keGacwqEsg8

2014-07-28, 20:52:48 - Csaba Pinter

Attachment added: “20140717_SubjectHierarchyUpdateIssueNotes.txt”

2014-07-28, 22:08:07 - Csaba Pinter

Fixed #598: Setting icons is not so simple as it should be due to a bug in Qt (https://bugreports.qt-project.org/browse/QTBUG-20248), which raises the need to check if the icon to be set is the same as the current icon of an item. This introduces one more thing to remember to the subject hierarchy plugin developer. Thus, instead of having the plugins set icons on items, they just return it (or an empty one), and the model does the check. This way developing plugins is not harder than before. Compiles with Slicer rev23489 and later. Commit: r:1891|slicerrt:1891

2014-07-28, 22:08:07 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

#599 Integrate subject hierarchy in Slicer core

2014-05-18, 17:08:11 - Csaba Pinter

status: changed from “New” to “Accepted”

2014-05-21, 15:03:03 - Csaba Pinter

Re #599: Added Subject hierarchy integration branch for changes in SlicerRT related to subject hierarchy integration to Slicer core Commit: r:1745|slicerrt:1745

2014-05-23, 20:27:42 - Csaba Pinter

Test #599: Changes made regarding subject hierarchy integration into Slicer core. RTHierarchy project removed, the plugins moved to the individual modules, as it is with modules in Slicer core; Subject hierarchy project removed. Commit: r:1757|slicerrt:1757

2014-05-23, 20:27:42 - Csaba Pinter

status: changed from “Accepted” to “Test”

2014-05-23, 20:34:05 - Csaba Pinter

Re #599: Removed code marked in Contours widget test Commit: r:1758|slicerrt:1758

2014-05-28, 00:18:41 - Csaba Pinter

Test #599: Re-integrated branch for SlicerRT changes related to subject hierarchy integration into Slicer core Commit: r:1770|slicerrt:1770

2014-06-30, 19:56:14 - Csaba Pinter

status: changed from “Test” to “Fixed”

#600 ConvertVolumeNodeToItkImage cannot handle all transformed volumes

IN some cases the created ITK image does not have the same geometry as the input volume node. Such a scenario can be found here: https://dl.dropboxusercontent.com/u/3143581/2014-05-14-Scene.mrb

The problem is the way the orientation matrix is assembled in SlicerRtCommon::ConvertVolumeNodeToItkImage (outputOrienationAngles variable)

A good implementation can be found in vtkITKImageWriter.cxx

2014-05-21, 15:34:17 - Csaba Pinter

description: changed from “IN some cases the created I…” to “IN some cases the created I…”

2014-05-27, 20:00:35 - Csaba Pinter

Test #600: Orientation matrix is created from the volume to world matrix elements directly instead of the rotation angles in MRMLVolume to ITK volume conversion Commit: r:1769|slicerrt:1769

2014-05-27, 20:00:35 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2014-05-27, 20:00:35 - Csaba Pinter

status: changed from “New” to “Test”

2014-07-12, 17:01:22 - Csaba Pinter

Closing this ticket before release, assuming that the lack of error reports since setting the status to Test means that there are no errors. In case of errors a new ticket should be opened and related to this one.

2014-07-12, 17:01:22 - Csaba Pinter

status: changed from “Test” to “Fixed”

#601 Support pre-clinical MR gel dosimetry workflow

Mattea at UofT works on the pre-clinical MR variant of the gel dosimetry workflow. It seems very similar to the one we support now, except for some input types and nomenclature.

Meeting minutes from 2014.05.22.

2014-06-05, 15:56:39 - Mattea Welch

file:d7bZUY7mKr475aacwqjQYw

2014-06-05, 15:56:39 - Mattea Welch

Attachment added: “Workflow_changedetails.txt”

2014-06-05, 15:56:47 - Mattea Welch

image:d_zShi7mKr4682acwqEsg8

2014-06-05, 15:56:47 - Mattea Welch

Attachment added: “GelDosimetryAnalysis_DataFlow_MRWorkflow.png”

2014-06-05, 15:59:54 - Mattea Welch

2014-06-05, 15:59:54 - Mattea Welch

status: changed from “New” to “Accepted”

2014-06-05, 15:59:54 - Mattea Welch

CommentContent: changed from “* T1 mapping available in 3rd party software for pre-clinical workflow. T1 mapping algorithm would need to be implemented for clinical workflow (relaxation rate from variable TR imaging).

2014-06-06, 20:43:35 - Mattea Welch

Attachment added: “GelDosimetryAnalysis_DataFlow_MRWorkflow.png”

2014-06-06, 20:43:47 - Mattea Welch

image:bcmc-I7BSr45BcacwqjQYw

2014-06-06, 20:43:47 - Mattea Welch

Attachment added: “GelDosimetryAnalysis_DataFlow_MRWorkflow.png”

2014-07-02, 20:49:24 - Csaba Pinter

Re #601, Re #115: Fixed build for GelDosimetry that failed due to switch to VTK6 Commit: r:1833|slicerrt:1833

2014-07-29, 17:31:20 - Mattea Welch

Re #601 : Basic UI altered: 1) Radio buttons added to allow for Clinical (KGH Optically Read gels) and Pre-Clinical (STTARR MR Read gels); 2) Clinical and Pre-clinical functions added to alter labels and buttons that were Clinical specific; 3) VFF data loaders replaced by DICOM data loaders for Pre-clinical analysis and fully functional TODO: 1) Test that Pre-clinical RT plans are loadable; 2) Do full run through with data to find other areas that need to be altered (UI, Logic, ect) Commit: r:1897|slicerrt:1897

2014-08-14, 21:18:39 - Csaba Pinter

Re #601: Fixed VTK6-related python errors; Added checks; Minor stylistic fixes; Commented out temporarily non-working sections Commit: r:1930|slicerrt:1930

2014-08-22, 18:18:15 - Csaba Pinter

milestone_id: changed from “GelDosimetry 0.2” to “GelDosimetry 0.3”

2014-11-25, 22:07:44 - Csaba Pinter

Re #601: Hide mode selector due to lack of activity in the preclinical MR project Commit: r:2042|slicerrt:2042

2014-12-12, 22:04:07 - Csaba Pinter

Pushed back to GelDosimetry 0.4

2014-12-12, 22:04:07 - Csaba Pinter

milestone_id: changed from “GelDosimetry 0.3” to “GelDosimetry 0.4”

2015-02-24, 14:57:14 - Csaba Pinter

status: changed from “Accepted” to “New”

2015-10-30, 15:42:59 - Csaba Pinter

Component: changed from “SlicerRt modules” to “GelDosimetry”

2015-10-30, 15:42:59 - Csaba Pinter

milestone_id: changed from “GelDosimetry 0.4” to “Future”

2015-10-30, 15:42:59 - Csaba Pinter

component_id: changed from “None” to “None”

2015-10-30, 15:42:59 - Csaba Pinter

assigned_to_id: changed from “mwelch” to null

2015-10-30, 15:43:29 - Csaba Pinter

assigned_to_id: changed from null to “mwelch”

2015-10-30, 16:44:31 - wangk

assigned_to_id: changed from “mwelch” to null

#602 Reference dose in dose comparison can be maximum 99cGy

…which is really small, need to fix.

2014-05-22, 19:04:33 - Csaba Pinter

Fixed #602: Maximum reference dose in dose comparison now can be as big as 99999cGy Commit: r:1753|slicerrt:1753

2014-05-22, 19:04:33 - Csaba Pinter

status: changed from “New” to “Fixed”

#603 Dose volume histogram module gives an error for non-dose volumes

If the input volume is not in subject hierarchy (so dose unit value cannot be found), then it gives an error instead of computing an intensity volume histogram as it should.

2014-05-22, 19:25:28 - Csaba Pinter

Fixed #603: Intensity volume histogram computation works again in DVH module Commit: r:1754|slicerrt:1754

2014-05-22, 19:25:28 - Csaba Pinter

status: changed from “New” to “Fixed”

#604 DICOM-RT export of transformed study does not work well

1) Load dataset with CT, Dose and RTSS 2) Create linear transform and set it to non-identity 3) Apply transform on all data (in subject hierarchy or in transforms module) 4) Export using DICOM-RT Export 5) Load back -> The structure set does not overlap with the CT

2014-05-28, 16:52:58 - wangk

I think I found one bug in vtkVolumesOrientedResampleUtility::ResampleInputVolumeNodeToReferenceVolumeNode() method.

It does not take the referenceVolumeNode’s parent transform into account. I will submit a fix soon.

2014-05-28, 16:52:58 - wangk

assigned_to_id: changed from null to “wangk”

2014-05-28, 16:52:58 - wangk

status: changed from “New” to “Accepted”

2014-05-29, 14:39:01 - wangk

I did more digging and there is a bug in dcmtk_image.cxx in plastimatch. the dicom direction cosine should be output in columns (first column as the first three tuples for image orientation patient and second column as the next three tuples).

2014-05-29, 14:42:35 - wangk

image:b5ri3g5Z8r44klacwqjQYw

2014-05-29, 14:42:35 - wangk

Attachment added: “dicomrt_export_fixed.png”

2014-05-29, 14:43:08 - wangk

also need to change how direction cosine saved in dcmtk_rtdose.cxx as well as how the contours are saved using direction cosine. I will submit the fix to plastimatch soon. see attached picture after the fix.

2014-05-30, 11:43:53 - Csaba Pinter

Thank you very much for taking care of this, Kevin!

2014-05-30, 13:27:01 - Csaba Pinter

Oh, and if you commit the fixes soon, then please move the two related tickets to 0.14 and close them. I’ll do the release if Adam re-integrates the contour changes. Thanks!

2014-05-30, 16:54:34 - wangk

No problem. I am building Slicer and SlicerRT now. once it is done, I will check in the fixes and move the two tickets to 0.14. when do you plan to release it?

2014-05-30, 17:07:57 - Csaba Pinter

Not sure, depends on Adam only. I’m done with all 0.14 tasks as far as I know.

2014-05-30, 18:15:39 - wangk

Re #604: Fixed the bug in vtkVolumesOrientedResampleUtility::ResampleInputVolumeNodeToReferenceVolumeNode() where the referenceVolumeNode’s parent transform is not taken into account. Commit: r:1774|slicerrt:1774

2014-05-30, 18:48:54 - wangk

I have committed changes in Plastimatch. is there anything else I need to do before I bump the plastimatch version?

2014-06-02, 11:05:51 - Csaba Pinter

I did it once and I don’t remember any hurdles. I think you just change the revision number in the cmake file, do a build to confirm it works and commit. Thanks!

2014-06-02, 11:05:57 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.15” to “SlicerRt 0.14”

2014-06-02, 14:25:39 - wangk

Thanks. I will commit the change today.

2014-06-02, 15:35:20 - wangk

Test #604 / Test #413: Bump plastimatch version to make the change effect in SlicerRT.

Commit: r:1777 slicerrt:1777

2014-06-02, 15:35:20 - wangk

status: changed from “Accepted” to “Test”

2014-06-03, 15:58:41 - Adam Rankin

re #604 fixing crash in vtkVolumesOrientedResampleUtility::ResampleInputVolumeNodeToReferenceVolumeNode()) when call was made on pointer that hadn’t been created yet

@wangk Can you confirm that this is the pointer it should have been called on? Commit: r:1780|slicerrt:1780

2014-06-03, 17:45:10 - wangk

Good catch. I wonder why I did not catch this bug when I tested dicom rt export.

2014-07-12, 17:01:22 - Csaba Pinter

Closing this ticket before release, assuming that the lack of error reports since setting the status to Test means that there are no errors. In case of errors a new ticket should be opened and related to this one.

2014-07-12, 17:01:22 - Csaba Pinter

status: changed from “Test” to “Fixed”

#605 DICOM deformable spatial registration object (SRO) export

the development of the rigid SRO export (ticket #472) is done. this ticket tracks the development of deformable SRO export.

2014-05-29, 14:50:07 - wangk

description: changed from “the development of the rigi…” to “the development of the rigi…”

2014-06-27, 14:42:16 - Andras Lasso

re #605: Updated SequenceRegistration to make it compatible with VTK6 Commit: r:1825|slicerrt:1825

2014-07-02, 16:14:42 - wangk

status: changed from “New” to “Accepted”

2014-07-04, 13:39:09 - wangk

milestone_id: changed from “SlicerRt 1.0” to “SlicerRt 0.15”

2014-08-01, 14:13:42 - wangk

milestone_id: changed from “SlicerRt 0.15” to “SlicerRt 1.0”

2014-08-01, 14:13:44 - wangk

I am putting this ticket to milestone 1.0 as it requires more time plus collaboration with Greg.

2014-10-29, 13:06:00 - Csaba Pinter

I came across this today, not sure if it’s of any use http://www.insight-journal.org/browse/publication/923

2014-10-29, 13:58:40 - wangk

From what I understand, it was partially based on what we have developed in SlicerRT. And it does not support deformable registration object yet.

2014-11-07, 15:37:25 - Csaba Pinter

milestone_id: changed from “SlicerRt 1.0” to “SlicerRt 0.16”

2015-07-16, 22:15:21 - Csaba Pinter

status: changed from “Accepted” to “New”

2015-07-30, 17:10:21 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.18” to “SlicerRt 0.19”

2016-07-18, 14:48:34 - Csaba Pinter

assigned_to_id: changed from “wangk” to null

2016-07-18, 14:49:02 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.19” to “SlicerRt 1.1”

#606 DICOM Rt Export fails when the labelmap padding causes inequal labelmap dimensions

Using the RANDO_ENT sample data in the RT sample data repo:

DICOM import study including ref volume, structure set, dose and plan Proceed to DICOM Rt Export, choose valid choices, hit export.

Rt export reports failure due to image size mismatch.

I believe the essence of the problem to be the ribbon model of the BODY contour extends beyond the RAS bounds of the reference anatomy volume.

@lassoan suggested cropping the contours before export to ensure export was successful.

@gregsharp @pinter Thoughts?

2014-06-02, 08:47:13 - Csaba Pinter

We met the same problem before, I wonder how come it is still problematic. The labelmaps are padded if the contour reaches the extent of the reference image, so that the stencil filter can work on them, thus the mismatch. Cropping sounds like a good idea, as the padding was performed for technical reasons only. Did you find this on the trunk?

2014-06-02, 11:04:52 - Csaba Pinter

milestone_id: changed from null to “SlicerRt 0.14”

2014-06-02, 13:50:09 - wangk

I worked on the DicomRT export recently and did not see any problems exporting ‘RANDO_ENT’ study. What exact problem did you see? are you using the latest revision of SlicerRT?

2014-06-02, 14:20:27 - Adam Rankin

No, that’s today’s goal. I will report back after merging trunk into my branch.

2014-06-03, 14:34:29 - Adam Rankin

status: changed from “New” to “Accepted”

2014-06-03, 14:55:48 - Adam Rankin

Latest everything with RANDO_ENT phantom results in a failure to export with the message:

‘Slicer has caught an internal error.

You may be able to continue from this point, but results are undefined.

Suggested action is to save your work and restart.

If you have a repeatable sequence of steps that causes this message, please report the issue following instructions available at http://slicer.org

The message detail is:

Exception thrown in event: Image size mismatch when adding structure’

2014-06-03, 15:05:39 - Adam Rankin

Let me confirm that this doesn’t happen in trunk.

2014-06-03, 16:00:24 - Adam Rankin

Export works after correcting crash and integrating changes from ResampleInputVolume to ResampleInputContour

2014-06-03, 16:00:24 - Adam Rankin

status: changed from “Accepted” to “Fixed”

#607 Update MultidimData for VTK6

2014-06-23, 04:15:12 - Andras Lasso

fixed #607: Fixed VTK6 related build errors (VTK5 is not supported anymore) Commit: r:1808|slicerrt:1808

2014-06-23, 04:15:12 - Andras Lasso

status: changed from “New” to “Fixed”

2014-06-24, 14:13:52 - Andras Lasso

re #607: Make MultidimData work with both VTK5 and VTK6 Commit: r:1814|slicerrt:1814

2015-02-07, 20:07:13 - Andras Lasso

re #607: Fixed build error

These errors recently showed up on the dsahboard: error: no viable conversion from ‘QByteArray’ to ‘const std::string’ (aka ‘const basic_string’)

Commit: r:2140 slicerrt:2140

#608 vtkSlicerRTScalarBarActor needs overhaul due to VTK6 migration

I commented out vtkSlicerRTScalarBarActor::AllocateAndSizeLabels method as many member variables from parent class do not exist any more (e.g. TextMappers)

2014-07-02, 16:13:40 - wangk

status: changed from “New” to “Accepted”

2014-07-02, 17:35:13 - wangk

Test #608: Adapted vtkSlicerRTScalarBarActor class to support VTK6 with annotations. Added an option ‘UseAnnotationAsLabel’ so the annotation appears as label. Commit: r:1832|slicerrt:1832

2014-07-02, 17:35:13 - wangk

status: changed from “Accepted” to “Test”

2014-07-12, 17:01:22 - Csaba Pinter

Closing this ticket before release, assuming that the lack of error reports since setting the status to Test means that there are no errors. In case of errors a new ticket should be opened and related to this one.

2014-07-12, 17:01:22 - Csaba Pinter

status: changed from “Test” to “Fixed”

#609 Migration to VTK6.1

A lot of things changed in VTK6 (Slicer recently upgraded to 6.1), especially with relation to pipeline

2014-06-23, 17:58:33 - Csaba Pinter

Re #609: First step in migration to VTK6. SlicerRT compiles against VTK6, but further tests are needed. Also the RT scalar bar is not functional at all (commented out the main part), needs to be fixed (see 608) Commit: r:1809|slicerrt:1809

2014-06-23, 20:23:21 - Csaba Pinter

Re #609: vtkTrivialProducer was used in a wrong way, this is now fixed, so referenced objects are found Commit: r:1810|slicerrt:1810

2014-06-24, 02:14:31 - Csaba Pinter

Test #609: Fixed dose accumulation and python self tests that Commit: r:1811|slicerrt:1811

2014-06-24, 02:14:31 - Csaba Pinter

status: changed from “New” to “Test”

2014-06-24, 17:58:49 - wangk

Re #609: Make SlicerRT VTK5 compatible again. Commit: r:1816|slicerrt:1816

2014-06-25, 01:26:26 - Csaba Pinter

Test #609: Fixed VTK6 build with VTK5/6 checks Commit: r:1817|slicerrt:1817

2014-06-26, 17:03:08 - Csaba Pinter

status: changed from “Test” to “Fixed”

2014-07-02, 16:16:35 - wangk

Re #609: Minor fixes to change line endings, spacing and includes. Commit: r:1831|slicerrt:1831

2014-07-04, 16:34:53 - Adam Rankin

re #609 making corrections to enable VTK5 build Commit: r:1846|slicerrt:1846

#610 Investigate rasterization difference introduced with new contour node

Tests fail.

2014-07-08, 13:12:00 - Adam Rankin

status: changed from “New” to “Test”

2014-07-08, 13:52:26 - Csaba Pinter

So what’s the conclusion?

2014-07-08, 16:12:44 - Adam Rankin

None yet.

They seem to be off by one border pixel, but when I look at the rasterized volumes, they coincide with the poly data perfectly.

Still looking for a definite answer.

2014-07-09, 14:48:04 - Adam Rankin

sigh Contours are identical between Slicer:23234 and SlicerRt:1769 and Slicer:23404 and SlicerRt:1854.

I don’t even…

2014-07-09, 14:52:28 - Adam Rankin

I compared the contours in the testing folder with contours generated from pre-merge contours and they are the same.

The only conclusion I can come to is that I broke something midway through my debugging spree, and fixed it again.

2014-07-09, 14:54:40 - Adam Rankin

Contours are no longer different than pre-merge.

2014-07-09, 14:54:40 - Adam Rankin

status: changed from “Test” to “Fixed”

2014-07-10, 18:10:44 - Csaba Pinter

Self-fixing bugs are the best!

#611 RT images do not show up

2014-07-12, 15:47:09 - Csaba Pinter

status: changed from “New” to “Accepted”

2014-07-12, 16:59:07 - Csaba Pinter

Fixed #611: RT image shows up again Commit: r:1858|slicerrt:1858

2014-07-12, 16:59:07 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

#612 Setting rasterization oversampling factor to not 1 causes incorrect contour translation

Investigate

2014-06-23, 21:23:00 - Adam Rankin

milestone_id: changed from null to “SlicerRt 0.14”

2014-07-08, 14:13:27 - Adam Rankin

status: changed from “New” to “Accepted”

2014-07-08, 16:10:36 - Adam Rankin

Confirmed working, unsure of which revision fixed it.

2014-07-08, 16:10:36 - Adam Rankin

status: changed from “Accepted” to “Fixed”

#613 Study node to show study date

For easier differentiation of studies with same name

2014-06-26, 16:48:35 - Csaba Pinter

Fixed #613: Study node name now includes study date for easier differentiation of studies with the same name Commit: r:1822|slicerrt:1822

2014-06-26, 16:48:35 - Csaba Pinter

status: changed from “New” to “Fixed”

#614 Enable writing subject hierarchy plugins in python

The issue was discussed at the NA-MIC week (url:http://www.na-mic.org/Wiki/index.php/2014_Summer_Project_Week:Subject_hierarchy_integration|project). There seems to be two options:

  1. Write adaptor C++ class, such as DirectoryListWidget in ExtensionWizard, or QTGUI\qSlicerScriptedFileDialog; use setPythonSource for the plugins
  2. Use signal/slot mechanism from a dummy scripted plugin VirtualPluginAdaptor, which emits signals that the python implementations can catch with their slots

2015-01-13, 21:08:52 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.15 (DICOM export)” to “SlicerRt 0.16”

2015-06-04, 22:14:25 - Csaba Pinter

Moved to 0.18

2015-06-04, 22:14:25 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.16” to “SlicerRt 0.18”

2015-10-14, 16:54:15 - Csaba Pinter

Re #614: Added sample python scripted subject hierarchy plugin to VolumeClip extension WIP Commit: r:2477|slicerrt:2477

2015-10-14, 16:55:34 - Csaba Pinter

Slicer changes in topic branch https://github.com/cpinter/Slicer/tree/scripted-subject-hierarchy-plugin

It will be integrated to core once finalized

2015-10-14, 16:55:34 - Csaba Pinter

status: changed from “New” to “Accepted”

2015-10-14, 22:37:57 - Csaba Pinter

Test #614: Sample python scripted subject hierarchy plugin for VolumeClip fully implemented, works Commit: r:2478|slicerrt:2478

2015-10-14, 22:37:57 - Csaba Pinter

status: changed from “Accepted” to “Test”

2015-10-15, 20:55:58 - Csaba Pinter

Pull request made https://github.com/Slicer/Slicer/pull/375

2015-10-21, 17:18:44 - Csaba Pinter

Discussion will take place about reloading SH plugin (and DICOM plugins too) from the UI. Participants: Steve, Andrey, Jc?, Andras?, Csaba

Other than that there are no issues, so closing the ticket.

2015-10-21, 17:18:44 - Csaba Pinter

status: changed from “Test” to “Fixed”

#615 Contour morphology UI needs some updating

Displayed messages and reported errors do not always accurately reflect the state of affairs.

For example,

When a contour has a labelmap, the reference volume is not shown. When the action requires the reference volume, the module reports that the inputs are not all selected.

2014-07-02, 16:49:22 - Adam Rankin

status: changed from “New” to “Accepted”

2014-07-02, 17:38:16 - Csaba Pinter

What is TLC? Also please always assign a milestone.

2014-07-02, 17:49:18 - Adam Rankin

summary: changed from “Contour morphology UI needs some TLC” to “Contour morphology UI needs some updating”

2014-07-02, 17:49:18 - Adam Rankin

milestone_id: changed from null to “SlicerRt 0.14”

2014-07-02, 19:39:48 - Csaba Pinter

I’m still curious what’s TLC :)

2014-07-02, 21:23:57 - Adam Rankin

Tender loving care.

It’s an expression that something needs maintenance, or repair, or attention.

2014-07-03, 20:03:41 - Adam Rankin

It would appear that the majority of issues stem from using a reference volume that is not the referenced series UID volume.

I am adding in some basic support for allowing other volumes

2014-07-08, 16:11:35 - Adam Rankin

New parameter added that added rerasterization feature to contour selector widget.

2014-07-08, 16:11:35 - Adam Rankin

status: changed from “Accepted” to “Fixed”

#616 Make plastimatch registration stoppable

2014-07-03, 18:12:24 - pzaffino

Re #616: first working version of stoppable plastimatch registration. More work is required Commit: r:1834|slicerrt:1834

2014-07-03, 19:26:36 - wangk

Hi @pzaffino, the change you just committed broke SlicerRT and it says ‘missing registration.h’ when it is being compiled. you need to update the plastimatch revision number in ‘SuperBuild/External_Plastimatch.cmake’ when updating SlicerRT code.

Also if you are working on this ticket, you can change the status to accepted and change the milestone.

Thanks,

2014-07-03, 19:34:08 - pzaffino

Sorry, @wangk can I update the plastimatch revision number or I’ll broke something else? In case I can revert my commit. Sorry again.

2014-07-03, 19:34:42 - pzaffino

status: changed from “New” to “Accepted”

2014-07-03, 19:36:27 - wangk

Hi @pzaffino, no worry. just test if slicerrt compiles with a stable version of plastimatch which has registration.h, then if it compiles, then update the revision number, you may consult with @gregsharp to determine which revision you should use.

Thanks.

2014-07-03, 22:56:22 - Greg Sharp

Should be all set. I have updated plastimatch version used by SlicerRT.

2014-07-04, 12:57:41 - wangk

Thanks @gregsharp and @pzaffino for fixing it.

2014-07-04, 12:58:02 - wangk

milestone_id: changed from null to “SlicerRt 0.15”

2014-07-21, 03:06:48 - Greg Sharp

Re #616 Fixes for interactive registration for AAPM demo Commit: r:1876|slicerrt:1876

2014-11-07, 15:11:55 - Csaba Pinter

Moved to SlicerRT 0.16

2014-11-07, 15:11:55 - Csaba Pinter

tag: changed from “” to “”

2014-11-07, 15:11:55 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.15” to “SlicerRt 0.16”

2015-07-27, 14:51:39 - Csaba Pinter

As there has been no activity with the ticket for a year, pushing to later milestone

2015-07-27, 14:51:39 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.18” to “SlicerRt 1.0”

2015-07-27, 14:51:39 - Csaba Pinter

status: changed from “Accepted” to “New”

2016-06-01, 22:00:15 - Csaba Pinter

milestone_id: changed from “SlicerRt 1.0” to “Future”

#618 Refactor dose calculation code to a vtk class

Currently the dose calculation code is mixed with MRML handling in the vtkSlicerExternalBeamPlanningLogic class. this ticket will track the development of a new vtk class that separates the dose calculation from MRML logic.

2014-07-04, 13:30:06 - wangk

status: changed from “New” to “Accepted”

2014-07-04, 13:43:36 - wangk

Re #618: Added the initial dose cal engine template class. Need to migrate the actual code to this class. Commit: r:1841|slicerrt:1841

2014-07-04, 14:00:02 - Csaba Pinter

Good to see you guys caring not just about features, but for architecture and maintainability! Thanks!

2014-07-04, 14:08:44 - wangk

Thanks. I just feel that this would make the code cleaner and more manageable. I have talked to Greg and he thinks so too.

2015-01-13, 21:08:52 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.15 (DICOM export)” to “SlicerRt 0.16”

2015-01-28, 15:05:20 - wangk

Test #618: WIP commit to refactor the dose calculation to its own class.

This needs to be tested by Greg’s team. Commit: r:2115|slicerrt:2115

2015-01-28, 15:05:20 - wangk

status: changed from “Accepted” to “Test”

2015-01-28, 15:07:00 - wangk

assigned_to_id: changed from “wangk” to “gregsharp”

2015-01-28, 15:07:24 - wangk

@gregsharp, please test to see if it still works for your application.

2015-01-28, 15:30:06 - wangk

Test #618: Fixed compilation warnings in EBP modules. Commit: r:2116|slicerrt:2116

2015-01-29, 18:39:56 - Csaba Pinter

Kevin, you probably didn’t use the latest version when doing this work, see error

2>5>vtkSlicerDoseCalculationEngine.obj : error LNK2019: unresolved external symbol ‘public: void __cdecl Rt_plan::debug(void)’ (?debug@Rt_plan@@QEAAXXZ) referenced in fu nction ‘public: void __cdecl vtkSlicerDoseCalculationEngine::CalculateDose(class std::tr1::shared_ptr,double * const,double * const,double,double,double )' (?CalculateDose@vtkSlicerDoseCalculationEngine@@QEAAXV?$shared_ptr@VPlm_image@@@tr1@std@@QEAN1NNN@Z) 2>15>CopyvtkSlicerIsodoseModuleWidgetsPythonScriptFiles - 0 error(s), 0 warning(s)

Please fix, see https://www.assembla.com/code/slicerrt/subversion/commit/2109

Thanks

2015-01-30, 02:49:23 - Csaba Pinter

@wangk This is a build error. Please fix asap.

2015-01-30, 14:10:41 - wangk

I am working on it now. will commit today.

2015-01-30, 15:59:27 - Csaba Pinter

Re #115, re #618: Fixed build error that was introduced in rev2116 by not using the latest revision Commit: r:2120|slicerrt:2120

2015-01-30, 16:00:21 - Csaba Pinter

Kevin, please always update your working copy before committing. And please fix build errors a bit quicker than this. It was changing a few characters in the code. Thanks!

2015-01-30, 16:06:51 - wangk

I just fixed the code and saw you committed the change already. thanks.

2015-02-23, 16:28:10 - Greg Sharp

status: changed from “Test” to “Fixed”

#619 Allow re-ordering nodes in subject hierarchy

Now there is no way to modify the order in which nodes appear

Hint: Use row information from qMRMLSceneSubjectHierarchyModel::dropMimeData and IndexInParent methods in vtkMRMLHierarchyNode

2015-01-13, 21:08:52 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.15 (DICOM export)” to “SlicerRt 0.16”

2015-06-04, 22:14:25 - Csaba Pinter

Moved to 0.18

2015-06-04, 22:14:25 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.16” to “SlicerRt 0.18”

2015-10-16, 15:56:15 - Csaba Pinter

Topic branch for changes https://github.com/cpinter/Slicer/tree/subject-hierarchy-reorder

2015-10-16, 16:02:07 - Csaba Pinter

SortingValue is the API that is used to determine node order within a branch, and it can be more or less used. The current commit in the topic branch enables moving nodes, but there are problems:

2015-10-16, 16:09:06 - Csaba Pinter

For the record, commits related to SortingValue: http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=15956 http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=15959 http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=15968 http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=16035 http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=16037 http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=16241 http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=22263

2015-10-22, 19:54:22 - Csaba Pinter

A working example is Models module via drag&drop. Need to investigate how it works there and implement in SH.

2015-10-27, 16:44:36 - Csaba Pinter

Latest findings:

2015-11-03, 20:02:02 - Csaba Pinter

Slicer Mantis issue: http://www.na-mic.org/Bug/view.php?id=4074 Nicole will try to fix the SortingValue implementation

2015-11-03, 20:02:06 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.18” to “SlicerRt 0.19”

2016-03-19, 18:41:55 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.19” to “Future”

2017-03-24, 20:02:40 - Csaba Pinter

Subject hierarchy 2.0 supports reordering of items

2017-03-24, 20:02:40 - Csaba Pinter

milestone_id: changed from “Future” to “SlicerRt 0.19”

2017-03-24, 20:02:40 - Csaba Pinter

status: changed from “New” to “Fixed”

2017-03-24, 20:04:18 - Csaba Pinter

Details: https://www.slicer.org/wiki/Documentation/Labs/SubjectHierarchy#Subject_hierarchy_2.0

#620 Select and drag&drop multiple nodes in subject hierarchy

To allow user to move nodes in subject hierarchy more quickly

This change affects

2014-07-30, 18:53:45 - Csaba Pinter

summary: changed from “Select and drag&drop multiple nodes from subject hierarchy potential list” to “Select and drag&drop multiple nodes in subject hierarchy”

2014-07-30, 18:53:45 - Csaba Pinter

description: changed from “To allow user to add nodes …” to “To allow user to move nodes…”

2014-08-03, 21:08:14 - Csaba Pinter

description: changed from “To allow user to move nodes…” to “To allow user to move nodes…”

2014-10-03, 18:47:49 - Csaba Pinter

setSelectionMode(QAbstractItemView::ExtendedSelection)

2015-01-13, 21:08:52 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.15 (DICOM export)” to “SlicerRt 0.16”

2015-02-14, 19:20:27 - Csaba Pinter

description: changed from “To allow user to move nodes…” to “To allow user to move nodes…”

2015-06-04, 22:14:25 - Csaba Pinter

Moved to 0.18

2015-06-04, 22:14:25 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.16” to “SlicerRt 0.18”

2015-09-21, 21:05:25 - Csaba Pinter

status: changed from “New” to “Accepted”

2015-09-21, 21:09:20 - Csaba Pinter

Re #620: Minor fixes in subject hierarchy plugins Commit: r:2460|slicerrt:2460

2015-09-22, 16:48:11 - Csaba Pinter

status: changed from “Accepted” to “Test”

2015-09-22, 17:41:47 - Csaba Pinter

status: changed from “Test” to “Fixed”

#621 Add support for matlab based dose calculation from external beam planing module.

This provides a quick way for the KGH team to start their dose calculation in matlab implementation.

2014-07-08, 15:30:29 - wangk

status: changed from “New” to “Accepted”

2014-07-08, 15:32:50 - wangk

Test #621: Added support for matlab-based dose calculation. User has to implement a matlab CLI module and install matlab bridge extension for it to be working. Commit: r:1850|slicerrt:1850

2014-07-08, 15:32:50 - wangk

status: changed from “Accepted” to “Test”

2014-08-18, 13:31:13 - wangk

status: changed from “Test” to “Fixed”

#622 Memory leak reported upon completion of NA-MIC tutorial self test

Investigate memory leak when py_NAMIC_Tutorial_2013June_SelfTest ends

2014-07-09, 14:54:53 - Adam Rankin

status: changed from “New” to “Accepted”

2014-07-12, 17:05:12 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.14” to “SlicerRt 0.15”

2014-07-12, 17:24:30 - Csaba Pinter

This test cannot be fixed until the BRAINS registration issue has been solved. Until then, the test never goes past the registration phase. https://github.com/BRAINSia/BRAINSTools/issues/120

2014-07-12, 17:24:30 - Csaba Pinter

summary: changed from “Memory leak reported upon completion of automatic test 59” to “Memory leak reported upon completion of NA-MIC tutorial self test”

2014-07-14, 18:09:05 - Adam Rankin

status: changed from “Accepted” to “New”

2014-09-26, 14:56:11 - Csaba Pinter

assigned_to_id: changed from “rankin” to null

2014-11-07, 15:11:55 - Csaba Pinter

Moved to SlicerRT 0.16

2014-11-07, 15:11:55 - Csaba Pinter

tag: changed from “” to “”

2014-11-07, 15:11:55 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.15” to “SlicerRt 0.16”

2015-01-14, 19:34:47 - Csaba Pinter

I don’t get the memory leak any more, maybe it was fixed during the recent fixes made in this test. I close this as invalid.

2015-01-14, 19:34:47 - Csaba Pinter

status: changed from “New” to “Invalid”

2015-01-14, 19:34:54 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.18” to “SlicerRt 0.15 (DICOM export)”

#623 Release SlicerRT 0.15

2014-11-03, 14:27:52 - Csaba Pinter

Re #623: Add branch for stable Slicer 4.4 Commit: r:2001|slicerrt:2001

2014-11-20, 22:33:25 - Csaba Pinter

Re #623: Patch release 0.14.7 Commit: r:2039|slicerrt:2039

2014-12-02, 01:10:51 - Csaba Pinter

Re #623: Release 0.14.8 (DICOM export) Commit: r:2047|slicerrt:2047

2015-01-19, 17:00:15 - Csaba Pinter

Re #623: Increase SlicerRT version number Commit: r:2095|slicerrt:2095

2015-01-27, 15:20:01 - Csaba Pinter

Re #623: Updated SlicerRT branch for stable Slicer 4.4.0 while ensuring compatibility with that version Commit: r:2111|slicerrt:2111

2015-01-27, 15:21:22 - Csaba Pinter

Re #623: Fixed SVN hiccup (DicomRtImport and DicomRtExport could not be re-added, but it was marked as removed by SVN) Commit: r:2112|slicerrt:2112

2015-01-27, 15:33:24 - Csaba Pinter

Test #623: Fixed failing tests for stable Slicer 4.4.0 Commit: r:2113|slicerrt:2113

2015-01-27, 15:33:24 - Csaba Pinter

status: changed from “New” to “Test”

2015-01-27, 15:40:34 - Csaba Pinter

status: changed from “Test” to “Fixed”

#624 Test py_nomainwindow_qSlicerPlmRegisterModuleGenericTest fails

53: Test timeout computed to be: 1500 53: Warning, the module ‘PlmRegister’ has no widget representation 53: Warning, the module ‘PlmRegister’ has no widget representation 53: ——————————————- 53: path: [‘C:/d/SlicerRT_R/inner-build/PlmRegister’, ‘c:/d/SlicerRT/PlmRegister’] 53: testname: qSlicerPlmRegisterModuleGenericTest 53: ——————————————- 53: test_acknowledgementText (qSlicerPlmRegisterModuleGenericTest.qSlicerPlmRegisterModuleGenericTest) … ok 53: test_application (qSlicerPlmRegisterModuleGenericTest.qSlicerPlmRegisterModuleGenericTest) … ok 53: test_categories (qSlicerPlmRegisterModuleGenericTest.qSlicerPlmRegisterModuleGenericTest) … ok 53: test_contributors (qSlicerPlmRegisterModuleGenericTest.qSlicerPlmRegisterModuleGenericTest) … ok 53: test_logic (qSlicerPlmRegisterModuleGenericTest.qSlicerPlmRegisterModuleGenericTest) … ok 53: test_module_valid (qSlicerPlmRegisterModuleGenericTest.qSlicerPlmRegisterModuleGenericTest) … ok 53: test_setCurrentModule (qSlicerPlmRegisterModuleGenericTest.qSlicerPlmRegisterModuleGenericTest) … ok 53: test_setMRMLScene (qSlicerPlmRegisterModuleGenericTest.qSlicerPlmRegisterModuleGenericTest) … ok 53: test_settings (qSlicerPlmRegisterModuleGenericTest.qSlicerPlmRegisterModuleGenericTest) … ok 53: test_widgetRepresentation (qSlicerPlmRegisterModuleGenericTest.qSlicerPlmRegisterModuleGenericTest) … RuntimeError: qSlicerScriptedLoadableModuleWidget::setPythonS ource - Failed to load scripted loadable module widget: class PlmRegisterWidget was not found in C:/d/SlicerRT_R/inner-build/lib/Slicer-4.3/qt-scripted-modules/PlmRegist er.py 53: RuntimeError: qSlicerScriptedLoadableModuleWidget::setPythonSource - Failed to load scripted loadable module widget: class PlmRegisterWidget was not found in C:/d/Sl icerRT_R/inner-build/lib/Slicer-4.3/qt-scripted-modules/PlmRegister.py 53: ok 53: 53: ———————————————————————- 53: Ran 10 tests in 0.020s 53: 53: OK 1/1 Test #53: py_nomainwindow_qSlicerPlmRegisterModuleGenericTest …***Failed 2.97 sec

2014-12-02, 22:54:31 - Csaba Pinter

The test now passes, closing ticket. In case of doubt or objection, please reopen.

test 51 Start 51: py_nomainwindow_qSlicerPlmRegisterModuleGenericTest

51: Test command: C:\d\S4D\Slicer-build\Slicer.exe ‘–no-splash’ ‘–testing’ ‘–ignore-slicerrc’ ‘–launcher-additional-settings’ ‘C:/d/SlicerRT_D/inner-build/Additional LauncherSettings.ini’ ‘–python-code’ ‘import slicer.testing; slicer.testing.runUnitTest([‘C:/d/SlicerRT_D/inner-build/PlmRegister’, ‘c:/d/SlicerRT/PlmRegister’], ‘qSlic erPlmRegisterModuleGenericTest’)’ ‘–no-main-window’ ‘–disable-cli-modules’ ‘–disable-loadable-modules’ ‘–additional-module-path’ ‘C:/d/SlicerRT_D/inner-build/lib/Sli cer-4.4/qt-scripted-modules’ 51: Test timeout computed to be: 1500 51: ——————————————- 51: path: [‘C:/d/SlicerRT_D/inner-build/PlmRegister’, ‘c:/d/SlicerRT/PlmRegister’] 51: testname: qSlicerPlmRegisterModuleGenericTest 51: ——————————————- 51: test_acknowledgementText (qSlicerPlmRegisterModuleGenericTest.qSlicerPlmRegisterModuleGenericTest) … ok 51: test_application (qSlicerPlmRegisterModuleGenericTest.qSlicerPlmRegisterModuleGenericTest) … ok 51: test_categories (qSlicerPlmRegisterModuleGenericTest.qSlicerPlmRegisterModuleGenericTest) … ok 51: test_contributors (qSlicerPlmRegisterModuleGenericTest.qSlicerPlmRegisterModuleGenericTest) … ok 51: test_logic (qSlicerPlmRegisterModuleGenericTest.qSlicerPlmRegisterModuleGenericTest) … ok 51: test_module_valid (qSlicerPlmRegisterModuleGenericTest.qSlicerPlmRegisterModuleGenericTest) … ok 51: test_setCurrentModule (qSlicerPlmRegisterModuleGenericTest.qSlicerPlmRegisterModuleGenericTest) … ok 51: test_setMRMLScene (qSlicerPlmRegisterModuleGenericTest.qSlicerPlmRegisterModuleGenericTest) … ok 51: test_settings (qSlicerPlmRegisterModuleGenericTest.qSlicerPlmRegisterModuleGenericTest) … ok 51: test_widgetRepresentation (qSlicerPlmRegisterModuleGenericTest.qSlicerPlmRegisterModuleGenericTest) … ok 51: 51: ———————————————————————- 51: Ran 10 tests in 0.092s 51: 51: OK 1/2 Test #51: py_nomainwindow_qSlicerPlmRegisterModuleGenericTest … Passed 5.38 sec

2014-12-02, 22:54:31 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2014-12-02, 22:54:31 - Csaba Pinter

status: changed from “New” to “Fixed”

#625 Save Slicer log to file

2014-07-29, 21:05:23 - Andras Lasso

see http://www.na-mic.org/Wiki/index.php/2014_Winter_Project_Week:Logging

2014-08-06, 18:14:48 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2014-08-06, 18:14:48 - Csaba Pinter

status: changed from “New” to “Accepted”

2014-08-08, 16:43:38 - Csaba Pinter

The number of files to keep and the log file paths are stored in the revision settings. You can find a sample ini file attached. I reduced the number of files to 3 in my configuration for easier testing, but the default value is 10, which is defined in ctkFileLogger.

The log files are saved in the temp folder with file name Slicer_[revision][date][time].log. A sample log file is also attached. If the number of existing log files is larger than number of files to keep, then the old log file is deleted. These logs start with some general information about the Slicer session: platform, OS, Slicer version and revision, date and time, followed by the VTK, Qt, and stream log entries.

The Slicer and CTK topic branches: https://github.com/cpinter/Slicer/tree/error-log-model-to-file https://github.com/cpinter/CTK/tree/error-log-model-to-file

2014-08-08, 16:44:20 - Csaba Pinter

file:a-Lo_0hXSr5iocacwqjQWU

2014-08-08, 16:44:20 - Csaba Pinter

Attachment added: “Slicer-1e6acfe.ini”

2014-08-08, 16:44:24 - Csaba Pinter

file:bbuZlshXSr5kBddmr6bg7m

2014-08-08, 16:44:24 - Csaba Pinter

Attachment added: “Slicer_1e6acfe_20140808_123205.log”

2014-08-08, 16:44:34 - Csaba Pinter

status: changed from “Accepted” to “Test”

2014-08-13, 14:27:33 - Csaba Pinter

Changes committed in CTK https://github.com/commontk/CTK/commit/7901557bd76a22fb58dd924ef53ca10fa1aa734f and Slicer http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=23564

Now logs are saved to file.

2014-08-13, 14:27:33 - Csaba Pinter

status: changed from “Test” to “Fixed”

#626 Enable support of DICOM Segmentation Objects

Convert current implementation of vtkMRMLContourNode into vtkMRMLSegmentationNode by allowing multiple Segments per contour node. Plans and progress wiki page: https://www.assembla.com/spaces/slicerrt/wiki/Segmentation

A segment is essentially a class wrapped around a list of vtkDataObject and some properties representing the details of that segment.

NA-MIC week projects and results:

To consider: Add BSpline representation that can also be converted to the other representations and edited in a corresponding module.

2014-07-14, 18:11:29 - Adam Rankin

status: changed from “New” to “Accepted”

2014-07-14, 18:12:00 - Adam Rankin

re #626 creating branch for DICOM Segmentation Object work Commit: r:1861|slicerrt:1861

2014-07-14, 18:44:33 - pieper

Hey Adam -

Small request - how about vtkMRMLSegmentationNode instead (drop Object since it seems redundant here).

-Steve

2014-07-14, 20:08:07 - jchris

Matt McCormick suggested to check the following article ‘Label object representation and manipulation with ITK’ See http://www.insight-journal.org/browse/publication/176

2014-07-14, 22:28:02 - Adam Rankin

description: changed from “Convert current implementat…” to “Convert current implementat…”

2014-07-15, 18:53:50 - Adam Rankin

re #626 merging trunk into branch Commit: r:1865|slicerrt:1865

2014-07-21, 15:11:35 - Adam Rankin

re #626 renaming of contour node, stage 1 Commit: r:1877|slicerrt:1877

2014-07-21, 15:14:39 - Adam Rankin

re #626 new directory 1 Commit: r:1878|slicerrt:1878

2014-07-21, 15:15:42 - Adam Rankin

re #626 removing contours Commit: r:1879|slicerrt:1879

2014-07-21, 16:23:11 - Adam Rankin

re #626 comparison and morphology folder moved Commit: r:1881|slicerrt:1881

2014-07-21, 16:23:38 - Adam Rankin

re #626 removing morphology, why didn’t it just do it… Commit: r:1882|slicerrt:1882

2014-07-21, 16:24:27 - Adam Rankin

re #626 adding temporary to the SVN ignore list Commit: r:1883|slicerrt:1883

2014-07-22, 16:22:44 - Adam Rankin

re #626 renaming of contour to segmentation Commit: r:1884|slicerrt:1884

2014-07-24, 15:44:20 - Adam Rankin

re #626 segment created

basic functionality includes a UID for lookup and a pair of image/poly data

segmentation node updated to add some basic accessors for managing segments

first pass in removing ribbon model, closed surface model and image data from segmentation node Commit: r:1887|slicerrt:1887

2014-07-28, 18:22:17 - Adam Rankin

description: changed from “Convert current implementat…” to “Convert current implementat…”

2014-07-29, 15:54:58 - Adam Rankin

re #626 merging trunk into branch Commit: r:1894|slicerrt:1894

2014-07-30, 14:11:58 - Adam Rankin

re #626 adding design folder to documentation Commit: r:1898|slicerrt:1898

2014-07-30, 14:12:51 - Adam Rankin

re #626 first pass use case document for segmentation node Commit: r:1899|slicerrt:1899

2014-07-30, 19:27:57 - Adam Rankin

Use google doc url:https://docs.google.com/document/d/1vwFAO6drN9sDLcUo9UEnUTyClVH8fPQyBVy7Bu3uV7Y/edit|https://docs.google.com/document/d/1vwFAO6drN9sDLcUo9UEnUTyClVH8fPQyBVy7Bu3uV7Y/edit

instead to track discussion of design

2014-07-30, 19:56:01 - Adam Rankin

re #626 removing design folder Commit: r:1900|slicerrt:1900

2014-08-22, 21:07:42 - Csaba Pinter

priority: changed from “Normal (3)” to “High (2)”

2014-08-31, 20:42:04 - Adam Rankin

re #626 removing segmentation object branch to restart, keeping good files offline to reintegrate Commit: r:1946|slicerrt:1946

2014-08-31, 20:43:56 - Adam Rankin

re #626 recreating segmentation object branch Commit: r:1947|slicerrt:1947

2014-09-01, 20:18:35 - Adam Rankin

re #626 Adding segmentations module, step 1, now transferring contour logic to segmentation and rewriting contour to only manage logic relating to rt functionality Commit: r:1948|slicerrt:1948

2014-09-02, 23:22:28 - Adam Rankin

re #626 adding in other classes, moving some slicerrt common items to the segmentations module (assuming it eventually goes into the core) Commit: r:1949|slicerrt:1949

2014-09-03, 18:05:27 - Adam Rankin

re #626 modifications to directory structure to alleviate dependency issues Commit: r:1950|slicerrt:1950

2014-09-21, 20:33:22 - Adam Rankin

re #626 restarting branch using only mrml code (again)

different approach to leave the code at an easily transferable midway point Commit: r:1953|slicerrt:1953

2014-09-21, 20:34:46 - Adam Rankin

re #626 recreating branch (again) Commit: r:1954|slicerrt:1954

2014-10-06, 13:39:16 - Csaba Pinter

description: changed from “Convert current implementat…” to “Convert current implementat…”

2014-11-03, 23:48:59 - Adam Rankin

re #626 adding segmentations module (mostly empty) Commit: r:2002|slicerrt:2002

2014-11-03, 23:50:23 - Adam Rankin

re #626 missing files uploaded Commit: r:2003|slicerrt:2003

2014-11-03, 23:51:04 - Adam Rankin

re #626 merging trunk intro branch Commit: r:2004|slicerrt:2004

2014-11-05, 13:57:57 - Adam Rankin

re #626 enabling proper cmake creation Commit: r:2009|slicerrt:2009

2014-11-06, 01:01:17 - Adam Rankin

re #626 first pass storage node for segmentation node that can contain N segments, all written to individual files for each representation inside each segment Commit: r:2010|slicerrt:2010

2014-11-06, 01:01:54 - Adam Rankin

re #626 merging trunk Commit: r:2011|slicerrt:2011

2014-11-06, 17:56:35 - Adam Rankin

re #626 cleaning up logic, cleaning up UI Commit: r:2012|slicerrt:2012

2014-11-08, 16:09:43 - Adam Rankin

re #626 Getting closer to a successful build

Minor changes in storage node to build Commit: r:2015|slicerrt:2015

2014-11-08, 16:10:42 - Adam Rankin

re #626 Merged revision(s) 2011-2015 from trunk/SlicerRt/src: Commit: r:2016|slicerrt:2016

2014-11-09, 15:02:01 - Adam Rankin

re #626 it builds! most work on segmentation node itself complete, reader/storage node complete, no display mechanism, essentially empty widget, logic and subject hierarchy connection Commit: r:2017|slicerrt:2017

2014-11-10, 15:49:07 - Adam Rankin

re #626 Merged revision(s) 2016-2018 from trunk/SlicerRt/src: Commit: r:2019|slicerrt:2019

2014-11-14, 19:17:14 - Csaba Pinter

Re #626: Comment in the code about future support for per-segment rasterization Commit: r:2032|slicerrt:2032

2014-11-14, 19:17:53 - Csaba Pinter

Re #626: Fixed wrong ticket link in comment Commit: r:2033|slicerrt:2033

2014-11-24, 20:20:53 - Csaba Pinter

description: changed from “Convert current implementat…” to “Convert current implementat…”

2014-11-29, 16:31:07 - Csaba Pinter

Re #626: Merged from trunk to Segmentation Object branch Commit: r:2043|slicerrt:2043

2014-11-29, 20:09:30 - Csaba Pinter

Re #626: Finishing merge from trunk to Segmentation Object branch Commit: r:2044|slicerrt:2044

2014-12-02, 23:03:42 - Csaba Pinter

Re #626: Merged trunk to SegmentationObject branch Commit: r:2050|slicerrt:2050

2014-12-05, 18:29:24 - Csaba Pinter

Re #626: Merged trunk to SegmentationObject branch Commit: r:2054|slicerrt:2054

2014-12-10, 20:52:17 - Csaba Pinter

Re #626: Renamed Adam’s Segmentation folder to make place for the new. Instead of using it as is and modifying and debugging, I will add the components back piece by piece and test as I go, because

  1. The plans have changed slightly
  2. Probably takes less time with this approach Commit: r:2056|slicerrt:2056

2014-12-11, 23:02:02 - Csaba Pinter

Re #626: Re-added the most basic classes for Segmentations, keeping what is absolute necessary WIP (does not build) Commit: r:2058|slicerrt:2058

2014-12-15, 20:26:30 - Csaba Pinter

assigned_to_id: changed from “rankin” to “pinter”

2014-12-16, 23:12:15 - Csaba Pinter

Re #626: Segmentations skeleton builds successfully; Class added between vtkMRMLSegmentationNode and vtkSegment called vtkSegmentation to encapsulate the segmentation data in a separate class, thus decreasing complexity of the node, decoupling conversion from MRML, and allowing non-MRML testing of this high-level component. Commit: r:2072|slicerrt:2072

2014-12-17, 15:45:09 - Csaba Pinter

Plan Level: changed from null to “Story”

2014-12-17, 19:27:51 - Andras Lasso

re #626: Moved basic segmentation VTK objects to separate library (vtkSegmentationLib) Commit: r:2075|slicerrt:2075

2014-12-17, 20:32:29 - Andras Lasso

re #626: Added missing cmake file Commit: r:2076|slicerrt:2076

2014-12-18, 23:28:24 - Csaba Pinter

Re #626: Initial modification of DicomRtImportExport to handle Segmentation; Added skeletons of SlicerRT-specific conversion rules and Segmentation subject hierarchy plugins; Removed Contour-specific constants from SlicerRtCommon Commit: r:2079|slicerrt:2079

2014-12-19, 05:52:41 - Andras Lasso

re #626: Added skeleton segmentation converter classes Commit: r:2080|slicerrt:2080

2014-12-19, 20:02:43 - Csaba Pinter

Re #626: Added representation type names and a default conversion rule; The RT-specific (ribbon-related) conversion rules moved to DicomRtImportExport, and the ribbon to labelmap is now subclass of the generic closed surface to labelmap rule. Commit: r:2081|slicerrt:2081

2014-12-19, 20:39:58 - Csaba Pinter

image:aYBPe8H78r5k3cacwqEsg8

2014-12-19, 20:39:58 - Csaba Pinter

Attachment added: “20141219_Segmentation_Design_v01.png”

2014-12-21, 00:01:04 - Csaba Pinter

Re #626: Implemented planar contour to ribbon model conversion Commit: r:2082|slicerrt:2082

2014-12-21, 01:47:47 - Csaba Pinter

Re #626: Ribbon conversion and RTSS loading works (temporary model nodes are created for testing purposes, and the converter rule is manually called for now) Commit: r:2083|slicerrt:2083

2015-01-03, 19:00:58 - Csaba Pinter

Re #626: Added conversion rule WIP Commit: r:2088|slicerrt:2088

2015-01-12, 17:13:24 - Csaba Pinter

image:bq-zQEMN4r5iDPdmr6bg7m

2015-01-12, 17:13:24 - Csaba Pinter

Attachment added: “Segmentation_Conversion_sequence.png”

2015-01-12, 17:27:09 - Csaba Pinter

description: changed from “Convert current implementat…” to “Convert current implementat…”

2015-01-12, 19:05:52 - Csaba Pinter

Re #626: Implemented closed surface from binary labelmap conversion filter (and from ribbon to labelmap); Added functions for conversion parameter handling Commit: r:2092|slicerrt:2092

2015-01-13, 21:08:23 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.15 (DICOM export)” to “SlicerRt 0.17 (Segmentations)”

2015-01-21, 23:08:19 - Csaba Pinter

Re #626: Implemented conversion parameter passing and image geometry (de)serialization; Implemented closed surface to binary labelmap conversion rule (WIP: the geometry is OK, but somehow the whole volume is background) Commit: r:2104|slicerrt:2104

2015-01-23, 20:42:59 - Csaba Pinter

Re #626: Fixed closed surface to binary labelmap conversion for non-identity directions (perform stencil operations in IJK and use the full geometry matrix to transform the surface rather than only applying the direction components on the poly data) Commit: r:2105|slicerrt:2105

2015-01-30, 19:21:26 - Csaba Pinter

Re #626: Removed non-functional oriented poly data to image stencil class Commit: r:2122|slicerrt:2122

2015-02-02, 20:25:35 - Andras Lasso

re #626: Fixed vtkSlicerSegmentationsModuleLogic::CreateLabelmapVolumeFromOrientedImageData

Fixed by setting a normalized vtkImageData in the MRML labelmap volume node.

How to test:

Commit: r:2124 slicerrt:2124

2015-02-03, 20:33:56 - Csaba Pinter

Re #626: Fixed labelmap display for loaded segments; Added display node Commit: r:2126|slicerrt:2126

2015-02-05, 15:34:09 - Csaba Pinter

Re #626: Merged recent DICOM import changes from trunk until it is relatively easy Commit: r:2133|slicerrt:2133

2015-02-05, 19:10:52 - Csaba Pinter

Re #626, re #597: Merge labelmap WIP Commit: r:2134|slicerrt:2134

2015-02-09, 06:16:22 - Andras Lasso

re #626: Added automatic conversion path computation

See vtkSegmentationConverterTest1 for examples. Commit: r:2141|slicerrt:2141

2015-02-09, 17:41:59 - Csaba Pinter

Re #626: Segmentation color table operations work Commit: r:2142|slicerrt:2142

2015-02-09, 22:27:59 - Csaba Pinter

Re #626: Automatic segmentation conversion WIP Commit: r:2143|slicerrt:2143

2015-02-11, 16:11:33 - Csaba Pinter

Re #626, re #597: Progress towards automatic conversion and segmentation labelmap display; Implemented binary labelmap to closed surface conversion rule (explicit test code in vtkSlicerDicomRtImportExportModuleLogic::LoadRtStructureSet, will be removed, committed for the record) Commit: r:2144|slicerrt:2144

2015-02-11, 17:40:16 - Csaba Pinter

Similar effort in MeVisLab

http://www.mevislab.de/docs/2.5/MeVisLab/Resources/Documentation/Publish/SDK/GettingStarted/ch15s02.html

http://www.mevislab.de/docs/2.3/MeVisLab/Standard/Documentation/Publish/ModuleReference/CSOConvertToImage.html

2015-02-11, 17:40:16 - Csaba Pinter

CommentContent: changed from “Similar effort in MeVisLab http://www.mevislab.de/docs/2.5/MeVisLab/Resources/Documentation/Publish/SDK/GettingStarted/ch15s02.html” to “Similar effort in MeVisLab

http://www.mevislab.de/docs/2.5/MeVisLab/Resources/Documentation/Publish/SDK/GettingStarted/ch15s02.html

http://www.mevislab.de/docs/2.3/MeVisLab/Standard/Documentation/Publish/ModuleReference/CSOConvertToImage.html”

2015-02-12, 15:20:40 - Csaba Pinter

Fixed #597, re #626: Labelmap merging and display works for segmentations; ExtentOffset member added to vtkOrientedImageData to store offset of the segment labelmap extents compared to reference (it takes a lot of computation to calculate it afterwards with the free orientation). This member facilitates labelmap merge with the reduced sized labelmaps that are only as large as the contained structure. Commit: r:2146|slicerrt:2146

2015-02-12, 19:51:12 - Csaba Pinter

Re #626: Automatic conversion works Commit: r:2147|slicerrt:2147

2015-02-25, 22:03:11 - Csaba Pinter

Re #626: Geometry is set to segmentation node both when referenced CT was loaded before and after segmentation Commit: r:2172|slicerrt:2172

2015-02-26, 19:45:38 - Csaba Pinter

Re #628, re #626: Segmentations 3D displayable manager and poly data merge implemented WIP Commit: r:2173|slicerrt:2173

2015-02-26, 20:13:27 - Csaba Pinter

Re #628, re #626: Segmentation 3D display works Commit: r:2174|slicerrt:2174

2015-02-26, 23:04:10 - Csaba Pinter

Re #628, re #626: Poly data merge moved to segmentation display node so that the displayed representation can be set per view, not just per segmentation node; Ribbon model is displayed for RT structure sets Commit: r:2175|slicerrt:2175

2015-02-27, 21:17:03 - Csaba Pinter

Re #628, re #626: Towards displaying multiple colors and opacities in the same merged poly data Commit: r:2176|slicerrt:2176

2015-02-27, 21:40:07 - Csaba Pinter

Re #628, re #626: Automatic opacity is used for segments in merged poly data Commit: r:2177|slicerrt:2177

2015-02-27, 21:54:20 - Csaba Pinter

Re #628, re #626: Fixed segment colors in merged poly data Commit: r:2178|slicerrt:2178

2015-03-18, 19:18:35 - Csaba Pinter

Re #628, re #626: Fixed automatic geometry calculation for surface to labelmap conversion (conversion parameter was not set to the converter); Work toward 2D display Commit: r:2181|slicerrt:2181

2015-03-18, 19:54:44 - Csaba Pinter

Re #626: Enabled subject hierarchy plugin for Segmentation nodes, to not trigger merged labelmap generation just to compile tooltip Commit: r:2182|slicerrt:2182

2015-03-20, 19:55:47 - Csaba Pinter

Re #628, re #626: Slice intersection for segmentations in 2D views work (although they lose their color, need to be fixed) Commit: r:2184|slicerrt:2184

2015-03-23, 22:45:22 - Csaba Pinter

Re #628, re #626: Segments are identified by string ID (segment name by default) instead of vector index; Poly data display changed from one actor and scalar coloring to multiple actors WIP Commit: r:2185|slicerrt:2185

2015-03-24, 20:05:06 - Csaba Pinter

Re #626: Fixed memory leak on destructing vtkSegmentation; vtkMRMLSegmentationNode::GetModifiedSinceRead now does not trigger labelmap merging if it did not exist before Commit: r:2187|slicerrt:2187

2015-03-25, 20:29:53 - Csaba Pinter

Re #626: Fixes for Slicer infrastructure issues: Renamed vtkSegmentationLib project to vtkSegmentationLibrary so that Slicer does not try to load it as a module (see hard-coded ‘Lib’ postfixes in qSlicerUtils.cxx); Changed const std::string& to std::string in an attempt to fix proper python wrapping of vtkSegmentation class (the python wrapper recognize it just as vtkObject, but with the simple std::string arguments, it seems to be working sometimes); Added vtkSegmentationPythonWrapHelper class to facilitate python usage of vtkSegmentation even when the wrapping is broken Commit: r:2189|slicerrt:2189

2015-03-26, 14:05:10 - Csaba Pinter

Module GUI design:

2015-03-26, 14:05:43 - Csaba Pinter

image:aXkQnS08er5khdacwqjQWU

2015-03-26, 14:05:43 - Csaba Pinter

Attachment added: “SegmentationModuleWidget.PNG”

2015-03-26, 17:19:37 - Csaba Pinter

Re #626, re #720: Added skeleton and prototypes for segmentation Widgets classes and resources; Re-added const std::string& as it apparently did not influence python wrapping after all. Commit: r:2190|slicerrt:2190

2015-03-26, 22:29:59 - Csaba Pinter

Re #626: Progress in implementing segmentations module widget and included views Commit: r:2191|slicerrt:2191

2015-03-30, 13:58:07 - Csaba Pinter

Re #626: Renamed SegmentationLib to SegmentationCore; Minor changes in Segmentations widget (related to selection) Commit: r:2193|slicerrt:2193

2015-03-30, 22:38:23 - Csaba Pinter

Re #626: Segment visibility options work; Table widget in qMRMLSegmentsTableView insisted on being 286px wide in a layout, and the only solution found was to set the horizontal size policy to Ignored. Not sure about all the consequences, but at least the module has reasonable width now. Commit: r:2194|slicerrt:2194

2015-03-31, 02:16:32 - Csaba Pinter

Re #626: Fix VS2012 build error Commit: r:2196|slicerrt:2196

2015-03-31, 20:34:38 - Csaba Pinter

Re #626: Segments table view fully functional; Segment removed and added events are now properly handled throughout the code (added to displayable managers) Commit: r:2198|slicerrt:2198

2015-04-01, 16:39:36 - Csaba Pinter

Re #626: Representations table mostly implemented Commit: r:2199|slicerrt:2199

2015-04-02, 14:20:51 - Csaba Pinter

Re #626: Representations table view mostly implemented; Added skeleton of conversion parameters widget Commit: r:2201|slicerrt:2201

2015-04-02, 15:19:52 - Csaba Pinter

Re #626: Representations table converted into list. Nicer look, easier to handle. Commit: r:2202|slicerrt:2202

2015-04-02, 19:15:20 - Csaba Pinter

Re #626: Support methods for conversion parameters widget; There are two CreateRepresentation methods, both in vtkSegmentation (not in vtkSegmentationConverter, because it needs to know the master representation which is segmentation specific, and also to allow optimizations so that common things are not re-computed for each segment). One CreateRepresentation does a conversion using cheapest path and default parameters and does not overwrite representations, while the second one has custom path and parameters and always overwrites. Commit: r:2203|slicerrt:2203

2015-04-06, 22:58:52 - Csaba Pinter

Re #626: Implemented conversion parameters widget that allows conversion using path and conversion parameters that user chose; Bugfixes Commit: r:2204|slicerrt:2204

2015-04-06, 23:08:10 - Csaba Pinter

Re #626: Allow changing master representation Commit: r:2205|slicerrt:2205

2015-04-07, 16:44:18 - Csaba Pinter

Re #626: Fixed memory leak if performing advanced conversion involving overwriting existing representations Commit: r:2206|slicerrt:2206

2015-04-07, 20:26:32 - Csaba Pinter

Re #626: Segmentation module display group functional Commit: r:2207|slicerrt:2207

2015-04-08, 13:54:43 - Csaba Pinter

Fixed #577, re #626: Reference image geometry can be imported from a volume (or labelmap, but not segmentation) node in the conversion parameter widget that can be accessed in the representations section of the Segmentations widget by clicking Update or Advanced [conversion] Commit: r:2208|slicerrt:2208

2015-04-08, 20:44:21 - Csaba Pinter

Re #626: Copy/move/import/export segment GUI and some of the logic; fixed minor bugs

Displayable manager does not call Modified on the representation before setting it as input to the pipeline as it triggers deletion of all other representations if it’s the master Show/hide segment hides the segment from the merged labelmap by setting the opacity for the color in the color table to zero. It does not trigger re-generation of merged labelmap, but if it would be desirable then it can be done later. Commit: r:2211|slicerrt:2211

2015-04-08, 21:54:51 - Csaba Pinter

Re #626: Implemented copy/move segments between segmentations. Conversions are made for the added segment according to the following rules:

  1. If the segment can be added (\sa CanAcceptSegment), and it does not contain the master representation, then the master representation is converted using the cheapest available path.
  2. Make sure that the segment contains the same types of representations that are present in the existing segments of the segmentation (because we expect all segments in a segmentation to contain the same types of representations).
Commit: r:2212 slicerrt:2212

2015-04-09, 21:26:33 - Csaba Pinter

Re #626: Implemented copy/move/import/export functions. Representation creation from class name (in vtkSegment::DeepCopy) needs to be fixed Commit: r:2213|slicerrt:2213

2015-04-10, 19:47:25 - Csaba Pinter

Re #626: Implemented representation VTK objects deep copy in vtkSegment. vtkSegmentationConverterFactory queries the rules if they can create a certain type, and return with a new instance of that type if created. Commit: r:2214|slicerrt:2214

2015-04-10, 21:12:17 - Csaba Pinter

Re #626: Segmentation display properties are properly updated when display node reference is added or modified; Current segmentation does not appear in the other segmentation combobox in Segmentations module Commit: r:2215|slicerrt:2215

2015-04-13, 18:29:21 - Csaba Pinter

Re #626: Fixed update issues related to segmentation display; Added visibility option for whole segmentation Commit: r:2216|slicerrt:2216

2015-04-13, 18:31:12 - Csaba Pinter

Re #626: Fixed linux build issues. Contributor: Jean-Christophe Fillion Robin, Kitware Commit: r:2217|slicerrt:2217

2015-04-17, 17:58:53 - Csaba Pinter

Re #626: Fixed build error with new rebased Slicer branch Commit: r:2220|slicerrt:2220

2015-04-21, 21:45:03 - Csaba Pinter

Re #626: Fixed import of labelmap to empty segmentation; When importing representation to segmentation, master representation is set to that representation if segmentation is empty, and if master is different, user is asked whether they allow changing the master representation (or cancel import) Commit: r:2221|slicerrt:2221

2015-04-22, 14:42:43 - Csaba Pinter

Re #626: Import segment from model node and export now works Commit: r:2222|slicerrt:2222

2015-04-22, 17:11:41 - Csaba Pinter

Re #626: Changed the way reference image geometry can be set from a volume node. Instead of having a combobox in the table, there is a button that pops up a dialog in which the user can select the volume. Commit: r:2223|slicerrt:2223

2015-04-23, 13:28:42 - Csaba Pinter

Re #626: Removed ExtentOffset from vtkOrientedImageData and instead non-zero extent starts are used where necessary; Added first implementation of vtkOrientedImageDataResample class providing two utility functions for resampling oriented image data to reference frame Commit: r:2224|slicerrt:2224

2015-04-23, 18:18:24 - Csaba Pinter

Re #626, re #595: Added skeleton for vtkMRMLSegmentationStorageNode (most of the body commented out) so that there is no crash when Save data is clicked. Commit: r:2226|slicerrt:2226

2015-04-23, 21:49:09 - Csaba Pinter

Re #626: Fix issues when changing master representation. Converting from binary labelmap to closed surface does not trigger Modified on the labelmap any more to prevent invalidation of representations if it was the master; Poly data representation is re-determined if the current one does not exist; Master representation is created before setting (if we set it when master is empty, then we lose all representations) Commit: r:2227|slicerrt:2227

2015-04-26, 16:15:09 - Csaba Pinter

Re #626: Workaround for Slicer crash http://www.na-mic.org/Bug/view.php?id=3991

Root cause to be fixed later when discussed what is the best approach. Commit: r:2228|slicerrt:2228

2015-04-26, 16:30:37 - Csaba Pinter

Re #626: Removed workaround, as the crash happens with DICOM volumes too. Applied local workaround in the Slicer SlicerRT/segmentation-node branch. Note: It only crashes in debug mode, in release it just confuses the dialog as shown in attachments to the bug report (see previous commit) Commit: r:2229|slicerrt:2229

2015-04-27, 16:36:38 - Csaba Pinter

Re #626: Function for getting inverse geometry matrix from vtkOrientedImageData Commit: r:2230|slicerrt:2230

2015-04-27, 19:59:03 - Csaba Pinter

Re #626: Resample oriented image data to reference geometry (both by image and by matrix and automatic extent) works; vtkOrientedImageData Get/SetGeometryMatrix renamed to GetImageToWorldMatrix and SetGeometryFromImageToWorldMatrix to better indicate the nature of the matrix involved. Commit: r:2231|slicerrt:2231

2015-04-27, 20:36:07 - Csaba Pinter

Re #626: Fix labelmap merge issues in case of different scalar type Commit: r:2232|slicerrt:2232

2015-04-30, 13:34:47 - Csaba Pinter

Re #626: Added feature to add empty segment to segmentation. Also added buttons to segmentation module widget to delete and edit selected segment (functions themselves not yet implemented) Commit: r:2233|slicerrt:2233

2015-04-30, 13:54:23 - Csaba Pinter

Re #626: Implemented delete segment function; Fixed memory leak Commit: r:2234|slicerrt:2234

2015-05-02, 15:09:39 - Csaba Pinter

Re #626: Added subject hierarchy support for segments (changes in segmentations module appear in SH and vice versa, per-segment visibility change is possible from SH); Added icon for segmentations module Commit: r:2236|slicerrt:2236

2015-05-03, 17:07:08 - Csaba Pinter

Re #626: Added subject hierarchy functions for segmentations: edit properties, tooltip, rename propagation, segment reparenting Commit: r:2238|slicerrt:2238

2015-05-04, 14:00:04 - Csaba Pinter

Re #626: Fixed minor warnings Commit: r:2239|slicerrt:2239

2015-05-04, 17:32:00 - Csaba Pinter

Re #626: Added create representation context menu actions (for binary labelmap and closed surface) for segmentation and segment subject hierarchy nodes. Commit: r:2240|slicerrt:2240

2015-05-19, 19:27:03 - Csaba Pinter

Re #626: Fixed minor visibility related bugs; Removed accidentally added file; Changed conversion cost table header text to ‘Estimated relative cost’ to dismiss the illusion of exact expected duration Commit: r:2254|slicerrt:2254

2015-05-19, 22:05:17 - Csaba Pinter

Re #626: Merged all SlicerRT trunk changes into SegmentationObject branch before working on the RT modules Commit: r:2255|slicerrt:2255

2015-05-20, 19:56:52 - Csaba Pinter

Re #626: Added description to conversion parameters; Fixed bug when display did not update after re-converting representation using ‘Update’ Commit: r:2256|slicerrt:2256

2015-05-20, 20:25:30 - Csaba Pinter

Re #626: Changed C++-style constant strings to getter functions for python accessibility; Fixed bug when decimation was run even if decimation factor was zero (the filter was in the pipeline, with default parameters) Commit: r:2257|slicerrt:2257

2015-05-20, 22:08:57 - Csaba Pinter

Re #626: Added automatic oversampling feature to segmentations Commit: r:2258|slicerrt:2258

2015-05-21, 17:32:40 - Csaba Pinter

Re #626: Fixed automatic oversampling and resampling issues Commit: r:2259|slicerrt:2259

2015-05-21, 17:47:38 - Csaba Pinter

Re #626: Ensure labelmap merging is only called once, both when merging for the first time, and when re-merging after representation modified events Commit: r:2260|slicerrt:2260

2015-05-21, 18:35:27 - Csaba Pinter

Re #626: Turn on slice intersection visibility by default; Fix labelmap merge when segmentation was created from labelmap(s); Fixed infinite loop when labelmap merge fails; Warn user about consequences of changing master representation when button clicked; Removed unused (moved to vtkCalculateOversamplingFactor) function from SlicerRtCommon Commit: r:2261|slicerrt:2261

2015-05-21, 19:52:34 - Csaba Pinter

Re #626: Fixed update issue in representations list when copying first segment into segmentation; Fixed memory leak; Fixed crash when removing last segment from a segmentation Commit: r:2262|slicerrt:2262

2015-05-22, 15:36:18 - Csaba Pinter

Re #626: Multi-label labelmap support for import from and export to segmentations; Changed default automatic oversampling to one (to avoid unexpected long processing times when high oversampling is assigned to numerous small structures). Commit: r:2263|slicerrt:2263

2015-05-22, 16:06:22 - Csaba Pinter

Re #626: Fixed crash when merged labelmap has really huge resolution; Fixed wait cursor bug Commit: r:2264|slicerrt:2264

2015-05-23, 17:05:03 - Csaba Pinter

Re #626: Allow importing multi-label labelmap if master is not binary labelmap (it is changed after user confirmation) Commit: r:2266|slicerrt:2266

2015-05-23, 18:19:34 - Csaba Pinter

Re #626, re #161: Apply padding on labelmap during labelmap to closed surface conversion if the labelmap has non-zero border voxels, because otherwise the surface will not be closed at those parts (same fix as in rev1223) Commit: r:2267|slicerrt:2267

2015-05-23, 22:27:52 - Csaba Pinter

Re #626: Dose volume histogram module modified to work with segmentations Commit: r:2268|slicerrt:2268

2015-05-24, 02:21:57 - Csaba Pinter

Re #626: Fixed DVH crash in release mode Commit: r:2269|slicerrt:2269

2015-05-24, 02:58:47 - Csaba Pinter

Re #626: Added special output conversion parameter for per-segment calculated automatic oversampling factor, which is added as a tag to the segment so that it can be read out later. Commit: r:2270|slicerrt:2270

2015-05-24, 13:49:50 - Csaba Pinter

Re #626: Reverted last change about output conversion parameters, it is too hacky. Instead, calculating oversampling from voxel size in test (where it is useful to see the calculated oversampling in the output) Commit: r:2271|slicerrt:2271

2015-05-24, 14:07:00 - Csaba Pinter

Re #626: Re-enabled DVH comparison module; Removed remnant words ‘contour’ from DVH code Commit: r:2272|slicerrt:2272

2015-05-25, 15:48:42 - Csaba Pinter

Re #626: Added segment selector widget for selecting single segments from segmentations; Reduced height of segments table rows to fit more in the same space (still higher than models module rows) Commit: r:2273|slicerrt:2273

2015-05-25, 16:11:40 - Csaba Pinter

Re #626: Renamed ContourComparison to SegmentComparison and ContourMorphology to SegmentMorphology WIP Commit: r:2274|slicerrt:2274

2015-05-25, 19:36:14 - Csaba Pinter

Re #626: Segment comparison works with segmentations; SlicerRtCommon and so PlmCommon now depends on SegmentationCore, so that vtkOrientedImageData<->itkImage/PlmImage conversion can be done there Commit: r:2275|slicerrt:2275

2015-05-26, 14:09:40 - Csaba Pinter

Re #626: Segment morphology mostly works, issues with non-zero extent starts; Handle parent transforms in segment comparison Commit: r:2276|slicerrt:2276

2015-05-26, 14:46:40 - Csaba Pinter

Re #626: Fixed non-zero extent start issue. There is an out-of-extent warning in these cases probably from data probe (when cursor is above such an image) Commit: r:2277|slicerrt:2277

2015-05-26, 16:35:44 - Csaba Pinter

Re #626: Fixed binary segment morphology operators by padding the input image data to the union of extents Commit: r:2278|slicerrt:2278

2015-05-26, 18:15:01 - Csaba Pinter

Re #626: Make sure image data of created volume nodes has extents that start at zero. This needs to be done for compatibility reasons, as many components assume the extent has a form of (0,dim[0],0,dim[1],0,dim[2]), which is not the case many times for segmentation merged labelmaps. Commit: r:2279|slicerrt:2279

2015-05-26, 22:01:39 - Csaba Pinter

Re #626: Dose comparison and DICOM-RT export modified to work with segmentations. Gamma mask is not considered perfectly, and there are issues with the exportables, these need fixing. Commit: r:2280|slicerrt:2280

2015-05-27, 21:27:05 - Csaba Pinter

Re #626: Fixed WriteXML functions in nodes; Addressed TODOs Commit: r:2283|slicerrt:2283

2015-05-28, 15:22:23 - Csaba Pinter

Re #626: 3D displayable manager to consider parent transform for display Commit: r:2285|slicerrt:2285

2015-05-28, 18:12:59 - Csaba Pinter

Re #626: Fixed parent transforms scenario in segment morphology Commit: r:2286|slicerrt:2286

2015-05-28, 18:26:32 - Csaba Pinter

Re #626: Fixed parent transforms scenario in segment comparison and dose comparison Commit: r:2287|slicerrt:2287

2015-05-28, 19:15:16 - Csaba Pinter

Re #626: Fixed non-DICOM-RT segmentations and parent transform in DVH computation Commit: r:2288|slicerrt:2288

2015-05-28, 19:49:09 - Csaba Pinter

Re #626: Removed Contours module and first prototype of segmentations that served as a base for the final implementation Commit: r:2289|slicerrt:2289

2015-05-28, 20:58:38 - Csaba Pinter

Re #626: DICOM-RT export works Commit: r:2290|slicerrt:2290

2015-05-28, 22:22:33 - Csaba Pinter

Re #626: Renamed and fixed batch conversion Commit: r:2291|slicerrt:2291

2015-05-29, 16:59:11 - Csaba Pinter

Test #626: Fixed comprehensive workflow test that is used for tutorials. Renamed it from NAMIC to SlicerRT IGRT Self Test, changed to use segmentations, latest functions and conventions Commit: r:2292|slicerrt:2292

2015-05-29, 16:59:11 - Csaba Pinter

status: changed from “Accepted” to “Test”

2015-05-29, 17:43:42 - Csaba Pinter

Re #626: Merged SlicerRT trunk changes to SegObj branch Commit: r:2293|slicerrt:2293

2015-05-29, 20:51:19 - Csaba Pinter

Re #626: Fixed gamma mask segment labelmap retrieval Commit: r:2295|slicerrt:2295

2015-05-29, 21:00:37 - Csaba Pinter

Re #626: Update gel dosimetry slicelet to work with segmentations Commit: r:2296|slicerrt:2296

2015-05-30, 19:25:48 - Csaba Pinter

Re #626: Fixed segment comparison with Plastimatch Hausdorff changes Commit: r:2297|slicerrt:2297

2015-05-30, 20:28:14 - Csaba Pinter

Re #626: Fixed linux/mac build issue Commit: r:2299|slicerrt:2299

2015-06-03, 19:40:12 - Csaba Pinter

Re #626: DVH now considers parent transforms for the dose volume too; IGRT self test per-step execution fixed Commit: r:2311|slicerrt:2311

2015-06-04, 13:24:39 - Csaba Pinter

Re #626: Merged trunk into segmentation object branch Commit: r:2312|slicerrt:2312

2015-06-04, 14:17:57 - Csaba Pinter

Re #626: Attempt to fix mac build error Commit: r:2313|slicerrt:2313

2015-06-04, 21:35:28 - Csaba Pinter

Re #626: Fixed node names issue in IGRT self test Commit: r:2314|slicerrt:2314

2015-06-04, 22:12:35 - Csaba Pinter

Fixed #626: Integrated segmentation object branch into the trunk Commit: r:2315|slicerrt:2315

2015-06-04, 22:12:35 - Csaba Pinter

status: changed from “Test” to “Fixed”

2015-08-06, 17:34:52 - Csaba Pinter

Re #626: Added workaround for issue that segmentation node combobox does not select newly added segmentation nodes although the auto-select flag is enabled Commit: r:2391|slicerrt:2391

#627 Port the contour to surface conversion to C++ and use it in Segmentations

  1. Port SlicerRt/sandbox/ContourInterpolation/src/ContoursToSurface.py to C++ and clean up
  2. Verification of the ported algorithm using the same datasets we used, potential new ones too; Document failing scenarios, finding patterns (typical cases where it is expected to fail)
  3. Use algorithm in Segmentations
    • Create closed surface from the contours directly with the new class
    • Ribbon model is no longer needed as a member variable
    • Add option to create closed surface model through intermediate ribbon model and labelmap conversions to fix occasional failures of the new algorithm. Basically this action would do the same as the current implementation (except the ribbon model is immediately discarded after rasterization)
    • Address ComplexityScalingFactor comments in vtkCalculateOversamplingFactor

2014-09-16, 02:39:37 - Csaba Pinter

assigned_to_id: changed from null to “Sunderlandkyl”

2014-09-16, 02:42:28 - Csaba Pinter

description: changed from “1. Port SlicerRt/sandbox/Co…” to “1. Port SlicerRt/sandbox/Co…”

2014-10-15, 17:32:31 - Csaba Pinter

Re #627: Working branch for porting and integrating the contour to surface algorithm, see #103 Commit: r:1977|slicerrt:1977

2015-01-13, 21:08:52 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.15 (DICOM export)” to “SlicerRt 0.16”

2015-01-13, 21:50:13 - Kyle Sunderland

re #627 Uploading currently written code for contour conversion in C++. Commit: r:2093|slicerrt:2093

2015-02-04, 03:19:12 - Kyle Sunderland

re #627 Uploading remaining translated code. Currently not tested. Commit: r:2129|slicerrt:2129

2015-02-04, 20:24:12 - Csaba Pinter

Thanks a lot, Kyle! Very nice code! (I didn’t look into semantics or functioning yet) I added some minor comments. Would you like to meet to talk about how it’s going to be tested?

2015-02-04, 20:24:12 - Csaba Pinter

status: changed from “New” to “Accepted”

2015-02-05, 06:58:10 - Kyle Sunderland

Sure, just let me know when is good for you and I can stop by.

2015-02-19, 21:21:10 - Csaba Pinter

Re #627: Clean up surface after conversion; Kyle added as contributor Commit: r:2159|slicerrt:2159

2015-02-19, 21:22:49 - Csaba Pinter

@Sunderlandkyl Please make sure these additions (rev2159) appear in the C++ ported code too. Thanks!

2015-02-20, 19:57:07 - Kyle Sunderland

Re #627 Fixed the contour interpolation python module to eliminate issues with lines not being oriented in the same direction. Lines are now changed to clockwise orientation before triangulation. Commit: r:2162|slicerrt:2162

2015-02-20, 20:07:37 - Csaba Pinter

Great, thanks!

2015-02-20, 20:09:27 - Csaba Pinter

There’s a syntax error:

Traceback (most recent call last): File ‘', line 1, in File 'C:/d/SlicerRT_R/inner-build/lib/Slicer-4.4/qt-scripted-modules/ContoursToSurface.py', line 448 numberOfLines = len(lines) ^ IndentationError: unindent does not match any outer indentation level

2015-02-20, 20:14:22 - Kyle Sunderland

Re #627 Fix indentation error. Commit: r:2163|slicerrt:2163

2015-02-20, 20:23:52 - Csaba Pinter

I tried it and your fix have solved this type of issue. Good job, thanks!

2015-03-20, 16:46:13 - Kyle Sunderland

re #627 Uploading functional C++ contour conversion code. Also, merge changes from the trunk. Commit: r:2183|slicerrt:2183

2015-05-20, 16:18:08 - Csaba Pinter

status: changed from “Accepted” to “Test”

2015-05-20, 22:10:14 - Csaba Pinter

summary: changed from “Port the contour to surface conversion to C++ and use it in the contours mechanism” to “Port the contour to surface conversion to C++ and use it in Segmentations”

2015-05-20, 22:10:14 - Csaba Pinter

description: changed from “1. Port SlicerRt/sandbox/Co…” to “1. Port SlicerRt/sandbox/Co…”

2015-05-20, 22:10:14 - Csaba Pinter

assigned_to_id: changed from “Sunderlandkyl” to “pinter”

2015-06-04, 22:14:25 - Csaba Pinter

Moved to 0.18

2015-06-04, 22:14:25 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.16” to “SlicerRt 0.18”

2015-07-09, 20:59:46 - Csaba Pinter

Re #627: Integrated planar contours to closed surface conversion algorithm into Segmentations Commit: r:2341|slicerrt:2341

2015-07-09, 21:26:28 - Csaba Pinter

Re #627: Use direct planar contours to closed surface conversion by default when loading DICOM-RT.

To fix: when converting to binary labelmap, the ribbon path is used because it is overall cheaper. However, the closed surface representation is already available and it would be faster that way (and ribbon would not be created unnecessarily this introducing inconsistency by using another model for labelmap conversion than what is displayed) Commit: r:2342|slicerrt:2342

2015-07-09, 22:21:13 - Csaba Pinter

Fixed #627: Existing representations are used for conversions if always convert is not enabled (which is used when doing advanced conversion)

Minor fixes: Using display color for DVH if available (instead of default segment color); Using labelmap name as segment name on import if labelmap contains only one segment Commit: r:2343|slicerrt:2343

2015-07-09, 22:21:13 - Csaba Pinter

status: changed from “Test” to “Fixed”

#628 Create a display node and displayable manager for the upcoming segmentation node

The new structure of segmentations will require a display manager that is aware of the innards of a segmentation node.

A display node and displayable manager will be required to display the new segmentation nodes.

2015-01-13, 21:08:23 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.15 (DICOM export)” to “SlicerRt 0.17 (Segmentations)”

2015-02-26, 19:45:38 - Csaba Pinter

Re #628, re #626: Segmentations 3D displayable manager and poly data merge implemented WIP Commit: r:2173|slicerrt:2173

2015-02-26, 19:45:38 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2015-02-26, 20:13:27 - Csaba Pinter

Re #628, re #626: Segmentation 3D display works Commit: r:2174|slicerrt:2174

2015-02-26, 20:13:38 - Csaba Pinter

status: changed from “New” to “Test”

2015-02-26, 23:04:10 - Csaba Pinter

Re #628, re #626: Poly data merge moved to segmentation display node so that the displayed representation can be set per view, not just per segmentation node; Ribbon model is displayed for RT structure sets Commit: r:2175|slicerrt:2175

2015-02-27, 21:17:03 - Csaba Pinter

Re #628, re #626: Towards displaying multiple colors and opacities in the same merged poly data Commit: r:2176|slicerrt:2176

2015-02-27, 21:40:07 - Csaba Pinter

Re #628, re #626: Automatic opacity is used for segments in merged poly data Commit: r:2177|slicerrt:2177

2015-02-27, 21:54:20 - Csaba Pinter

Re #628, re #626: Fixed segment colors in merged poly data Commit: r:2178|slicerrt:2178

2015-03-18, 17:41:04 - Csaba Pinter

Re #628: Added skeleton for 2D displayable manager, which is needed for showing per-structure merged labelmaps, and labelmaps and surface intersections simultaneously Commit: r:2180|slicerrt:2180

2015-03-18, 19:18:35 - Csaba Pinter

Re #628, re #626: Fixed automatic geometry calculation for surface to labelmap conversion (conversion parameter was not set to the converter); Work toward 2D display Commit: r:2181|slicerrt:2181

2015-03-20, 19:55:47 - Csaba Pinter

Re #628, re #626: Slice intersection for segmentations in 2D views work (although they lose their color, need to be fixed) Commit: r:2184|slicerrt:2184

2015-03-23, 22:45:22 - Csaba Pinter

Re #628, re #626: Segments are identified by string ID (segment name by default) instead of vector index; Poly data display changed from one actor and scalar coloring to multiple actors WIP Commit: r:2185|slicerrt:2185

2015-03-23, 23:25:04 - Csaba Pinter

Fixed #628: Both 3D and 2D displayable managers work fine. Showing labelmap and slice intersections simultaneously in the 2D views is now possible Commit: r:2186|slicerrt:2186

2015-03-23, 23:25:04 - Csaba Pinter

status: changed from “Test” to “Fixed”

#629 Change SetOperation() to VTK style in ContourMorphology module

This will enable python wrapping to be working properly.

2014-08-01, 13:54:11 - wangk

Test #629: Fixed SetOperation() method so that call from python can be made properly.

Commit: r:1908 slicerrt:1908

2014-08-01, 13:54:11 - wangk

status: changed from “New” to “Test”

2014-08-18, 13:31:36 - wangk

status: changed from “Test” to “Fixed”

#630 OutputContourNode not set properly in ContourMorphology module

If the OutputContourNode is not set using vtkMRMLContourMorphologyNode, then the logic should create a new OutputContourNode, however, it is not set back to vtkMRMLContourMorphologyNode.

2014-07-30, 16:19:01 - wangk

summary: changed from “OutputContourData not set properly in ContourMorphology module” to “OutputContourNode not set properly in ContourMorphology module”

2014-07-30, 18:02:00 - Adam Rankin

vtkSlicerContourMorphologyModuleLogic::MorphContour

currently line 410

add

1
2
3
4
this->ContourMorphologyNode->SetAndObserveOutputContourNode(outputContourNode);


2014-07-30, 18:02:00 - Adam Rankin

CommentContent: changed from “vtkSlicerContourMorphologyModuleLogic::MorphContour

currently line 410

add

this->ContourMorphologyNode->SetAndObserveOutputContourNode(outputContourNode);” to “vtkSlicerContourMorphologyModuleLogic::MorphContour

currently line 410

add

this->ContourMorphologyNode->SetAndObserveOutputContourNode(outputContourNode);

2014-07-30, 18:02:15 - Adam Rankin

right after

1
2
3
4
5
6
// Let's do that, essentially copy inputContourA settings (size, dimensions, reference volume, etc...)
    outputContourNode = vtkSlicerContoursModuleLogic::CreateEmptyContourFromExistingContour(inputContourANode, newContourNameNoSuffix);
    outputContourNode->SetCreatedFromIndexLabelmap(true);


2014-07-31, 12:53:29 - wangk

thanks Adam. I am building slicer and slicerRt now. once it is done, I will integrate your changes.

2014-07-31, 12:53:29 - wangk

status: changed from “New” to “Accepted”

2014-08-01, 13:58:36 - wangk

Test #630: Fixed setting OutputContourNode back to ContourMorphologyNode.

Commit: r:1909 slicerrt:1909

2014-08-01, 13:58:36 - wangk

status: changed from “Accepted” to “Test”

2014-08-18, 13:31:46 - wangk

status: changed from “Test” to “Fixed”

#631 Add server-side hook to ensure line ending consistency

A server-side hook could make sure all the committed files have the same line ending style.

2014-07-29, 20:39:54 - Andras Lasso

There are a couple of predefined hooks that you can choose from (see https://www.assembla.com/code/slicerrt/subversion/vcs_hooks/all). Unfortunately, end-of-line checking is not available. You can submit your own hook and after it is reviewed it can be installed.

2014-11-07, 15:11:55 - Csaba Pinter

Moved to SlicerRT 0.16

2014-11-07, 15:11:55 - Csaba Pinter

tag: changed from “” to “”

2014-11-07, 15:11:55 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.15” to “SlicerRt 0.16”

2015-06-04, 22:09:42 - Csaba Pinter

Moved to 0.19

2015-06-04, 22:09:42 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.18” to “SlicerRt 0.19”

#632 Frame of reference no longer needed for slice thickness

Currently the slice thickness is calculated from ROI planes.

Dependency on the frame of reference is no longer necessary and preventing otherwise acceptable datasets from loading.

Remove dependency on frame of reference to enable loading of data.

2014-07-31, 16:01:00 - Adam Rankin

test #632 if normal is available from ordered contour planes, use that instead of calculating it from anatomical slices Commit: r:1903|slicerrt:1903

2014-07-31, 16:01:00 - Adam Rankin

assigned_to_id: changed from null to “rankin”

2014-07-31, 16:01:00 - Adam Rankin

status: changed from “New” to “Test”

2014-07-31, 16:01:46 - Adam Rankin

@pinter Would you mind taking a quick peek and seeing if this makes sense? I ran this for RANDO prostate and RANDO ENT and both pieces of code produced the same normal.

2014-07-31, 16:55:15 - Adam Rankin

re #632 making parameter more clear Commit: r:1904|slicerrt:1904

2014-07-31, 18:03:04 - Adam Rankin

re #632 vtkVector3 instead of double [] Commit: r:1905|slicerrt:1905

2014-07-31, 18:03:36 - Adam Rankin

status: changed from “Test” to “Fixed”

2014-07-31, 18:09:30 - Adam Rankin

re #632 cleaning up comment to identify errors more easily Commit: r:1906|slicerrt:1906

#633 Use resample volume method in vtkSlicerVolumesLogic

The resample volume code in slicerRtCommon::vtkVolumesOrientedResampleUtility has been integrated into slicer trunk now. see: http://na-mic.org/Mantis/view.php?id=3753

need to change slicerrt code to use the new method in slicer volumes logic and retire vtkVolumesOrientedResampleUtility.

2014-07-31, 14:53:27 - Adam Rankin

Just as an FYI this function has also been copy-pasted in SlicerRt to accept contour nodes as well. Which should be updated to reflect any changes in the core function.

2014-07-31, 15:49:40 - wangk

Thanks Adam for the info. Can you be more specific where it has been copy-pasted to? i.e. which module and which method.

2014-07-31, 15:57:39 - Adam Rankin

vtkMRMLContourNode::ResampleInputContourNodeToReferenceVolumeNode

2014-07-31, 16:01:44 - wangk

Thanks Adam. so the input node is a contour node and it is not clear to me how to update this. I guess we can leave it as is for now and discuss it at weekly meeting.

2014-07-31, 16:40:33 - Adam Rankin

Copy-paste the code from core, replace input volume node with input contour node.

2014-07-31, 16:59:10 - wangk

I see. I think it is better to create a separate ticket for that. do you want to work on updating vtkMRMLContourNode::ResampleInputContourNodeToReferenceVolumeNode method since you are more familiar with the contours module to better test it.

2014-07-31, 17:22:53 - Adam Rankin

You cannot change one and not the other.

Please create a ticket for the contour change and list it as a parent to this bug.

2014-07-31, 17:44:20 - wangk

i have created a ticket #634 and related it to this ticket.

2014-07-31, 17:45:19 - Csaba Pinter

Is it possible to somehow use the core method as is with some wrapping added to the SlicerRT function? It would make this issue disappear (which is exactly why duplicating code is bad, but sometimes we don’t have a better choice).

2014-07-31, 17:47:30 - wangk

that is why I said I am not clear how to fix this now. the simple solution would be to duplicate the function which is bad. let us discuss at weekly meeting?

2014-07-31, 17:54:09 - Csaba Pinter

OK

2014-07-31, 18:18:12 - Adam Rankin

An option is to extract to labelmap, resample, then put the resampled details back into the original contour. A bit more overhead but no more code duplication. (Note, this triggers a bunch of MRML and scene updates)

2014-08-01, 14:11:36 - wangk

to my surprise, there is no use of this method in SlicerRT currently. vtkMRMLContourNode::ResampleInputContourNodeToReferenceVolumeNode has been used in several contour related modules.

After a bit investigation, I think doseacculation and dosecomparison modules can start to use this new method. doseaccumulation does resampling using its own code. dosecomparison has not resampling code, should we add resampling? I think it is logic.

2014-08-01, 14:12:16 - wangk

status: changed from “New” to “Accepted”

2014-08-01, 15:23:00 - Csaba Pinter

I agree. If a function is reliable and considered standard, that should be used. I think your method was used in contour related modules, but once the external labelmap node representations were replaced by the one contour node, that method could not be used as is any more.

2014-08-01, 16:12:43 - Adam Rankin

Yes, the function was only used once in SlicerRt and when I changed the contours to no longer use a vtkMRMLScalarVolumeNode, I needed the same function to operate on a vtkMRMLContourNode, so I duplicated it.

2014-08-01, 16:17:15 - wangk

My preference is to update vtkMRMLContourNode::ResampleInputContourNodeToReferenceVolumeNode according to the changes in vtkSlicerVolumesLogic and keep using it until we figure out how to reuse part of the code.

Regarding dose comparison module, do you guys agree we should make the 2 dose volume same geometry before comparison? it means that we need to apply the resample logic in dose comparison module.

Thanks.

2014-08-01, 16:18:56 - Csaba Pinter

Sounds fine. Let’s update that duplicated function for the time being.

I think resampling for gamma is done in Plastimatch. @gregsharp Can you confirm?

2014-08-01, 19:06:46 - wangk

Test #633: Switched to use vtkSlicerVolumesLogic’s resample method for resampling input dose volumes. Have not fully tested it, but it compiles fine.

Commit: r:1910 slicerrt:1910

2014-08-01, 19:06:46 - wangk

status: changed from “Accepted” to “Test”

2014-08-01, 19:08:25 - Csaba Pinter

Please test it, as you are the keeper of the dose accumulation module. Thanks!

2014-08-01, 19:10:18 - wangk

for some unknown reason, the dicom rt import does not work for RTDose data with my latest slicer build. I am investigating but it can take some time. once it becomes functional, I will test it.

2014-08-01, 19:11:04 - wangk

also I am waiting for @gregsharp to confirm there is already resampling in gamma analysis code.

2014-08-01, 19:11:18 - Csaba Pinter

Thanks! It works fine for me, maybe a discrepancy between Slicer and SlicerRT?

2014-08-01, 22:28:58 - Adam Rankin

What Slicer is required for this? I’m at revision 23528 and SlicerRt doesn’t build.

2014-08-01, 22:29:12 - Adam Rankin

Ah, 23534 required.

2014-08-18, 13:31:58 - wangk

status: changed from “Test” to “Fixed”

#634 Update vtkMRMLContourNode::ResampleInputContourNodeToReferenceVolumeNode method to reflect changes in Slicer Core

copy-paste slicer core resample code.

2014-09-26, 14:57:30 - Csaba Pinter

@rankin Can you please elaborate on this? I will have to do this most probably and it would be great to know what the issue was and what to do exactly. Thanks!

2014-09-26, 14:57:35 - Csaba Pinter

assigned_to_id: changed from “rankin” to null

2014-09-30, 00:10:48 - Adam Rankin

This needs more information. My function is a clone of vtkVolumesOrientedResampleUtility::ResampleInputVolumeNodeToReferenceVolumeNode accepting as input a ContourNode instead of a ScalarNode. The two should be kept in sync.

The reason this happens is because the needed function is in SlicerRt common, and we can’t have SlicerRt common linking against the Contours module. If/when the Contour node moves into the core, then this will work because SlicerRtCommon can link against stuff in the core.

Sorry for the significant delay.

2014-09-30, 00:15:55 - Adam Rankin

Oh, the reason it needs more information is that the function doesn’t reflect a function in the core.

I only vaguely remember this discussion. Kevin had mentioned something about the functionality being moved to the core, but I still see the function in SlicerRt common.

2014-09-30, 13:38:34 - Csaba Pinter

Thanks!

2014-12-02, 22:51:38 - Csaba Pinter

@wangk Do you happen to remember the details of this ticket? Thanks!

2014-12-02, 23:58:47 - Adam Rankin

bool vtkMRMLContourNode::ResampleInputContourNodeToReferenceVolumeNode(vtkMRMLScene* scene, vtkMRMLContourNode* inContourNode, vtkMRMLScalarVolumeNode* refVolumeNode, vtkMRMLContourNode* outContourNode)

must match

bool vtkVolumesOrientedResampleUtility::ResampleInputVolumeNodeToReferenceVolumeNode(vtkMRMLScalarVolumeNode* inVolumeNode, vtkMRMLScalarVolumeNode* refVolumeNode, vtkMRMLScalarVolumeNode* outVolumeNode)

due to the core function not knowing what a vtkMRMLContourNode is

2014-12-03, 01:37:36 - Csaba Pinter

Thanks! I was thinking about the original core function you mentioned above. But if there is no such thing then I’ll just make sure these two match.

2015-01-13, 21:08:23 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.15 (DICOM export)” to “SlicerRt 0.17 (Segmentations)”

2015-01-20, 20:48:49 - wangk

I did a bit check. here is what I found out. the vtkOrientedResampleUtility class is not used anywhere in SlicerRt. so i think we can remove it now as the functionality has been put into slicer core vtkSlicerVolumesLogic class. I also checked the core function. it is exactly the same as the resample code in the contour node class. so there is no need to update the contour code.

I think Adam’s original idea is to use the function in vtkSlicerVolumesLogic to replace or at least replace some code in vtkMRMLContourNode::ResampleInputContourNodeToReferenceVolumeNode method. but this will need refactoring of the vtkSlicerVolumesLogic to make it happen. so I will just leave it as is for now.

if you guys are ok with just deleting vtkOrientedResampleUtility then I will just go head and then close this ticket.

2015-01-21, 18:37:40 - wangk

Test #634: Remove the not used vtkVolumesOrientedResampleUtility class. the functionality has been re-implemented in Slicer core Volumes Logic class. Commit: r:2099|slicerrt:2099

2015-01-21, 18:37:40 - wangk

assigned_to_id: changed from null to “wangk”

2015-01-21, 18:37:40 - wangk

status: changed from “New” to “Test”

2015-01-21, 20:07:09 - wangk

Test #634: Remove the ‘include ' statement as it was removed already. Commit: r:2101|slicerrt:2101

2015-01-21, 20:09:40 - wangk

Test #634: Updated the warning statement to use correct class name. Commit: r:2102|slicerrt:2102

2015-02-12, 16:03:07 - Csaba Pinter

status: changed from “Test” to “Fixed”

#635 Rasterization reference volume is no longer set on DICOM import

Contours do not have a reference volume set on import.

Determine what made the change and reverse it.

2014-07-31, 19:02:24 - Adam Rankin

re #635 cleaning up SH UI for converting to representations and providing more valuable error feedback Commit: r:1907|slicerrt:1907

2014-07-31, 19:31:59 - Adam Rankin

Now I’m scared… maybe it was never set!?

2014-08-03, 17:17:18 - Adam Rankin

re #635 adding extract to labelmap menu item for contours in subject hierarchy

currently disabled if it’s not possible to produce a labelmap for extraction

will change behaviour when reference volume is set on load Commit: r:1916|slicerrt:1916

2014-08-03, 18:27:36 - Csaba Pinter

Thanks!

2014-08-04, 17:20:32 - Adam Rankin

Building old Slicer and SlicerRt to determine how it was done before. I suspect ID was set and then UpdateReferenceId was called at some point.

2014-08-06, 00:18:38 - Adam Rankin

test #635 instead of setting a rasterization reference on DICOM load, which doesn’t necessarily make sense

set the rasterization reference volume when a labelmap is truly required

retrieve the referenced series volume for use as a reasonable default reference volume if one isn’t set Commit: r:1919|slicerrt:1919

2014-08-06, 00:18:38 - Adam Rankin

status: changed from “New” to “Test”

2014-08-06, 00:19:43 - Adam Rankin

@pinter Could you check out the change when you have a minute and see if you like it?

it’s kind of sweet. It shows up right under the list of items right away so the user can see clear success. Reporting failure is harder to see due to poor visibility of the slicer error log overall.

2014-08-06, 00:56:02 - Csaba Pinter

I added some minor comments, but I think it will work! Thanks a lot!

2014-08-06, 01:30:57 - Adam Rankin

re #635 adjusting code to respond to code comments

adding finishing touches such as busy cursor during representation conversions Commit: r:1920|slicerrt:1920

2014-08-06, 18:50:26 - Csaba Pinter

status: changed from “Test” to “Fixed”

#636 Utilize scripted module base class for python modules

These modules are:

Description of the change ‘ ‘Enable developer mode’ flag is added to the Application settings dialog (Developer section) that can be used to show additional GUI elements when developing modules, do enable/disable more extensive logging, etc. It is used now to show/hide Reload&Test section in module widgets.

  1. Summary of base classes

ScriptedLoadableModule: • Adds Test().runTest to Slicer self tests ScriptedLoadableModuleWidget: • Contains a developerMode flag that indicates if Slicer is running in developer mode (in this case additional logging or GUI elements can be added). • Adds Reload&Test section to the module GUI if developer mode is enabled ScriptedLoadableModuleLogic: • Contains delayDisplay convenience function ScriptedLoadableModuleTest: • Contains delayDisplay convenience function

Source code of base classes: https://github.com/Slicer/Slicer/blob/master/Base/Python/slicer/ScriptedLoadableModule.py

  1. How to take advantage of these base classes in your own module?

Make those changes that are done in the scripted module template: https://github.com/Slicer/Slicer/commit/671595bbdaddb90ad2772bcff96686466126da4e#diff-436674d96f32037fcc8a863cfbcda62c (import the base classes, specify the base class name in parentheses after each of your class names, in overridden methods call the base class implementation first, remove methods that are now provided in the base classes)

The new and simplified scripted module template that uses base classes: https://github.com/Slicer/Slicer/blob/master/Extensions/Testing/ScriptedLoadableExtensionTemplate/ScriptedLoadableModuleTemplate/ScriptedLoadableModuleTemplate.py ‘

2014-08-06, 16:21:43 - Kyle Sunderland

Re #636 Updated python scripted modules to use the scripted module base class. Commit: r:1921|slicerrt:1921

2014-08-06, 17:38:16 - Csaba Pinter

status: changed from “New” to “Test”

2014-08-22, 21:07:21 - Csaba Pinter

status: changed from “Test” to “Fixed”

#637 vtkSliceDoseAccumulationModuleLogicTest_EclipseProstate fails on all platforms

http://slicer.cdash.org/testDetails.php?test=5605278&build=254174 http://slicer.cdash.org/testDetails.php?test=5604532&build=254149

2014-08-05, 19:58:22 - wangk

After a bit investigation, I found the problem. it is in slicer trunk. when clone a volume node without a display node, it doesnot check if the display node is valid and copies it directly. I will add a ticket in mantis to report this. once it is fixed, then the test should pass.

in the mean time, if we dont want to wait until they fix that, then we can revert to older version. let me know what you think.

2014-08-05, 19:58:22 - wangk

status: changed from “New” to “Accepted”

2014-08-05, 22:22:08 - Csaba Pinter

Sounds great, thanks a lot, Kevin!

2014-08-06, 13:55:20 - wangk

@pinter, maybe we should revert to old version so that the tests will pass for the time being?

2014-08-06, 13:57:06 - Csaba Pinter

Does the module itself work? If yes, then let’s not bother with this, we can make the test pass later. If the module doesn’t work, then I’ll rather fix the bug in the core. Thanks!

2014-08-06, 18:51:00 - Csaba Pinter

Crash in vtkSlicerVolumeLogic::CloneNode due to non-existend display node. Check if it’s valid

2014-08-06, 20:43:57 - Csaba Pinter

https://github.com/Slicer/Slicer/pull/165

2014-08-07, 18:50:38 - Csaba Pinter

Topic has been integrated. Let’s see if the test passes in tomorrow’s nightly SlicerRT tests, and close this ticket if it does.

The Mantis issue for this problem was reported by Kevin http://na-mic.org/Mantis/view.php?id=3795

2014-08-07, 18:50:38 - Csaba Pinter

status: changed from “Accepted” to “Test”

2014-08-07, 19:27:24 - wangk

Re #637: Minor fix to remove the resampled volume node from the scene.

Commit: r:1925 slicerrt:1925

2014-08-08, 16:21:49 - Csaba Pinter

Still fails unfortunately http://slicer.cdash.org/testDetails.php?test=5605278&build=256441

2014-08-08, 16:21:49 - Csaba Pinter

status: changed from “Test” to “Accepted”

2014-08-08, 18:30:24 - wangk

I updated my slicer and slicerrt and the tests pass on my pc. can you try it on your pc?

2014-08-08, 18:34:17 - Csaba Pinter

Hmm. Yes, I’ll try! I wonder if the Slicer change fixes the issue then why did the nightlies fail.

2014-08-12, 18:23:34 - wangk

Need to fix vtkSlicerVolumesLogic::CloneVolumeWithoutImageData() method as well to fix the failing dashboard test.

2014-08-12, 18:28:07 - Csaba Pinter

Thanks for investigating! I’ll commit the fix shortly.

2014-08-12, 18:31:50 - Csaba Pinter

Committed with revision 23563

2014-08-12, 18:31:50 - Csaba Pinter

status: changed from “Accepted” to “Test”

2014-08-12, 18:48:04 - wangk

I just tested it, the tests pass. let us wait and see tomorrow on Dashboard. Thanks.

2014-08-13, 12:31:29 - wangk

it still fails on kitware factory machines (linux and mac) however it passes on Chiasma (windows). @pinter, any insights?

2014-08-13, 14:13:20 - Csaba Pinter

It still shows a crash on those platforms. Unfortunately SlicerRT didn’t start to build on the windows factory somehow (this is a problem, it happens way too often). I’ll try running the test on linux.

2014-08-13, 14:21:22 - jchris

FYI - Looking at the dashboard. SlicerRt built on Windows. See http://slicer.cdash.org/buildSummary.php?buildid=258271

2014-08-13, 14:25:29 - Csaba Pinter

image:cTaYjsiVur5iTkacwqjQYw

2014-08-13, 14:25:29 - Csaba Pinter

Attachment added: “20140813_MissingExtensions.PNG”

2014-08-13, 14:25:57 - Csaba Pinter

I see, thanks Jc! But then why don’t they show up on the dashboard? Is it a CDash problem then?

2014-08-13, 14:41:21 - jchris

Everything seems to be there. See screenshot.

2014-08-13, 14:41:22 - jchris

image:dKYnN6iVCr5kqBacwqjQYw

2014-08-13, 14:41:22 - jchris

Attachment added: “SlicerRt-windows.png”

2014-08-13, 14:51:49 - Csaba Pinter

Interesting. I refreshed the page before viewing. Maybe it was finished in the meantime? Anyway, it’s good to know that if I see incomplete rows, it doesn’t mean that something went astray. I always look at the dashboard in the morning, and sometimes I see everything fine, sometimes this. Next time I’ll wait a bit more then. It would be nice to somehow indicate if a row is in progress or done (not asking anything from you, just occurred to me :) ) Thanks!

2014-08-14, 18:52:37 - Csaba Pinter

Dashboard is clean!

2014-08-14, 18:52:37 - Csaba Pinter

status: changed from “Test” to “Fixed”

#638 When range is selected in the first plot then the second plot will contain a 0,0 point in all cases

2014-08-19, 22:39:32 - Csaba Pinter

Fixed #638: Remove correct points from optical density vs dose function array when user selected range in the pdd vs calibration chart; Resurrected slice intersection navigation; Minor UI fixes Commit: r:1933|slicerrt:1933

2014-08-19, 22:39:32 - Csaba Pinter

status: changed from “New” to “Fixed”

#639 Show jar contour and gamma volume slice in 3D after gamma computation

2014-08-21, 19:48:21 - Csaba Pinter

Fixed #639: Show jar contour and gamma slices in 3D after gamma computation in gel dosimetry slicelet Commit: r:1935|slicerrt:1935

2014-08-21, 19:48:21 - Csaba Pinter

status: changed from “New” to “Fixed”

#640 drag & drop labelmap to contour crash

See title

2014-08-06, 22:36:10 - Adam Rankin

fixed #640 delaying destruction of node until observerships can be managed Commit: r:1924|slicerrt:1924

2014-08-06, 22:36:10 - Adam Rankin

status: changed from “New” to “Fixed”

#641 Error reports with normal operations in subject hierarchy

Error messages are logged when performing normal contour operations in SH, such as contour creation and reparenting.

2014-11-19, 15:05:33 - Csaba Pinter

priority: changed from “Normal (3)” to “Low (4)”

2014-11-19, 15:05:38 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.15” to “SlicerRt 0.16”

2015-07-27, 16:28:22 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.18” to “SlicerRt 0.19”

2016-01-18, 19:57:41 - Csaba Pinter

Tested most subject hierarchy operations and several errors have been found

2016-01-18, 19:57:41 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.19” to “SlicerRt 0.18”

2016-01-18, 19:57:41 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2016-01-18, 19:59:00 - Csaba Pinter

Fixed #641: Crash fixed when drag&dropping segments between segmentations where the target one was empty. Fixed bug where a new segmentation did not accept dragged segments by default. Commit: r:2584|slicerrt:2584

2016-01-18, 19:59:00 - Csaba Pinter

status: changed from “New” to “Fixed”

#642 Add python widget for PlmRegister module to fix failing dashboard test

See: http://slicer.cdash.org/testDetails.php?test=5625866&build=257803 for failing test.

this error can be avoid by simply adding the widget part of the python module.

2014-08-12, 18:37:44 - wangk

Test #642: Added the dummy QtWidget class so that the test can pass now Commit: r:1928|slicerrt:1928

2014-08-12, 18:37:44 - wangk

status: changed from “New” to “Test”

2014-08-18, 13:32:06 - wangk

status: changed from “Test” to “Fixed”

#643 Slice intersection navigation doesn’t work

See http://www.na-mic.org/Bug/view.php?id=3803

2014-08-19, 18:16:21 - Csaba Pinter

Fixed in Slicer core in http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=23568

2014-08-19, 18:16:21 - Csaba Pinter

status: changed from “New” to “Fixed”

#644 Use new vtkSlicerScalarBarActor in gel dosimetry

Instead of vtkSlicerRTScalarBarActor

2014-08-22, 14:27:05 - Csaba Pinter

status: changed from “New” to “Accepted”

2014-08-22, 14:27:38 - Csaba Pinter

Re #644: Use vtkSlicerScalarBarActor to display gamma scalar bar. WIP: Annotations are not perfect yet! Commit: r:1936|slicerrt:1936

2014-08-22, 15:45:38 - Csaba Pinter

Fixed #644: Properly display gamma values as scalar bar labels in gel dosimetry

Commit: r:1937 slicerrt:1937

2014-08-22, 15:45:38 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

2014-08-22, 17:27:00 - Csaba Pinter

Re #644: Minor fixes (discovered while working on the gel dosimetry slicelet) Commit: r:1939|slicerrt:1939

#645 Export calibration data points and fit from gel slicelet

Export the calibration (OptDens:Dose) points and the fitted polynomial in a CSV file

‘It would definitely be handy. I’m just using the calibration step of the slicelet today and am looking to plot the data points for 3 different calibrations on one set of axes, and figured that if I could get at the data points I could put them into Excel’ - Kevin A.

2014-12-10, 15:42:49 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2014-12-10, 15:43:42 - Csaba Pinter

summary: changed from “Export data points from gel slicelet before fitting” to “Export calibration data points and fit from gel slicelet”

2014-12-10, 15:43:42 - Csaba Pinter

priority: changed from “Normal (3)” to “High (2)”

2014-12-10, 15:43:42 - Csaba Pinter

description: changed from “‘It would definitely be han…” to “Export the calibration (Opt…”

2014-12-12, 20:45:29 - Csaba Pinter

Re #645: Export optical density VS dose calibration curve points and fitted polynomial coefficients to CSV Commit: r:2065|slicerrt:2065

2014-12-12, 21:57:22 - Csaba Pinter

status: changed from “New” to “Test”

2014-12-22, 18:55:20 - Csaba Pinter

status: changed from “Test” to “Fixed”

#646 Move dosimetry data selection to step 1

The data selection step applies on the whole workflow, but it is still in the PlanCT-OBI registration step. It would make more sense to move it to the first step, and rename that step to Load and assign data (or Load and select data)

2015-05-11, 18:50:19 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2015-05-11, 18:50:19 - Csaba Pinter

status: changed from “New” to “Accepted”

2015-05-13, 19:34:43 - Csaba Pinter

status: changed from “Accepted” to “Test”

2015-05-14, 21:48:56 - Csaba Pinter

status: changed from “Test” to “Fixed”

#647 Plastimatch and dependent modules cannot be loaded on windows 8

See related Slicer bug:

http://www.na-mic.org/Bug/view.php?id=3823

2014-08-29, 16:42:30 - Greg Sharp

Re #647 Disable OpenMP on windows build to avoid missing DLL issue Commit: r:1945|slicerrt:1945

2014-09-22, 15:05:04 - Csaba Pinter

milestone_id: changed from null to “SlicerRt 0.15”

2014-09-22, 15:05:14 - Csaba Pinter

priority: changed from “Normal (3)” to “Highest (1)”

2014-09-22, 17:25:22 - Greg Sharp

A patch was submitted, and accepted in CMake 3.1.

Meanwhile, does the workaround work? If so, this can be reduced to standard priority bug.

2014-09-22, 17:25:22 - Greg Sharp

status: changed from “New” to “Accepted”

2014-09-22, 17:27:50 - jchris

Which patch are we talking about ?

Moving forward, it may make sense to bump the minimum version of CMake required by Slicer (or even superbuild CMake.)

2014-09-22, 17:52:01 - Csaba Pinter

Jc, while you are still here… Any ideas about #653 ? You may have met the same issue before. If not, then don’t spend time with it, I’ll figure it out. Thanks!

2014-09-22, 19:19:25 - Greg Sharp

@jchris Here is the patch to cmake.

http://www.cmake.org/gitweb?p=cmake.git;a=commitdiff;h=bdb5007b

Slicer would need to (1) upgrade to cmake 3.1 on the Slicer factory, and (2) set a cmake option to enable.

https://github.com/Slicer/Slicer/pull/177

2014-09-22, 19:26:53 - jchris

(1) is already done. The factory are already using CMake 3.0.1. See https://github.com/Slicer/DashboardScripts/commits/master

(2) For windows, seems we are all set. Is there a compile test that could be added to check the expected redistributable package is installed ? Or can we assume openmp is available if a pro version is used ?

Regarding MacOSx we may have to build the following project: http://clang-omp.github.io/

2014-09-22, 20:06:39 - Greg Sharp

(1) My understanding is the patch will be included in 3.1, not 3.0.1.

(2) Good question. A test might run post-packaging, and detect existence of library in zip file. I’m willing to write the test, but I’m not sure where to hook it in. Yes, openmp is always included in MSVC pro version (2008 and newer).

(3) Are factories using clang compiler?

2014-09-22, 20:34:07 - jchris

(1) My understanding is the patch will be included in 3.1, not 3.0.1.

Thanks for clarifying.

(2) Good question. A test might run post-packaging, and detect existence of library in zip file. I’m willing to write the test, but I’m not sure where to hook it in. Yes, openmp is always included in MSVC pro version (2008 and newer).

Was thinking about a configure test checking if the openmp library was available. That way we would be able to detect and warn the developer at configure time if anything is missing …

(3) Are factories using clang compiler?

On MacOSx clang is used. Clang is now the official compiler on MacOSX.

– +1 919 869 8849

2014-10-29, 15:39:01 - Greg Sharp

The immediate issue is fixed, but continuation of the problem will be tracked in #664.

2014-10-29, 15:39:01 - Greg Sharp

status: changed from “Accepted” to “Fixed”

#648 Make it easier to write images from Matlab modules

Currently image metadata has to be updated by the Matlab module developer. Make cli_image_write smarter by creating missing or inconsistent metadata fields.

2014-09-05, 01:41:19 - Andras Lasso

re #648: Set image type and size from pixel matrix Commit: r:1951|slicerrt:1951

2014-10-16, 18:20:25 - Andras Lasso

status: changed from “New” to “Fixed”

2014-12-15, 14:19:27 - Andras Lasso

re #648: Add support for reading/writing 4D image data in MatlabBridge.

Also clarified how to read/write meshes. Commit: r:2069|slicerrt:2069

2017-01-18, 21:48:28 - Andras Lasso

re #648: Display out of memory error in nrrdread.m as error (instead of plain message) Commit: r:3114|slicerrt:3114

#649 Add option to scale PDD by user given value

For example to 101%

2015-05-15, 18:05:12 - Kevin Alexander

Can’t seem to think of the utility of this option for the gel slicelet. There’s no need to scale the PDD.

2015-05-15, 18:05:12 - Kevin Alexander

status: changed from “New” to “Invalid”

2015-05-15, 18:10:39 - Csaba Pinter

@mwelch Hi Mattea, do you happen to remember what this ticket was for? In case it was your request not the KGH crew’s. Thanks!

#650 Display dose map colorbar in 2D view

Right now, SlicerRT has the option to display colorbar for the isodose contours according to the Gy assigned to each one of them. However, when the dose map is displayed it would be also useful to see the association between colors in the map and the Gy values.

Important to consider that the colorbar must change when the window level is modified in RTDOSE volume display properties.

2014-09-15, 13:11:10 - Csaba Pinter

Good point, thanks for adding this. Please note that isodose colors and dose map colors are tied, so this is a bit harder than it seems.

2014-10-06, 13:21:54 - rcorredorj

image:c9wPtItvSr5iFdacwqjQXA

2014-10-06, 13:21:54 - rcorredorj

Attachment added: “Color_Scalar_Bar_Dose_Map.jpeg”

2014-10-06, 13:22:07 - rcorredorj

Hi,

I realized two things about this ticket. First, the was already pointed out in #121. Second, Slicer can already display the scalar colorbar that adapts to changes in the window level (check the image I uploaded to this ticket file:Color_Scalar_Bar_Dose_Map.jpeg Color Scalar Bar ).

Now, there are still some specific things that could be considered as issues or requirements:

RaC

2014-10-06, 13:22:07 - rcorredorj

CommentContent: changed from “Hi,

I realized two things about this ticket. First, the was already pointed out in #121. Second, Slicer can already display the scalar colorbar that adapts to changes in the window level (check the image I uploaded to this ticket” to “Hi,

I realized two things about this ticket. First, the was already pointed out in #121. Second, Slicer can already display the scalar colorbar that adapts to changes in the window level (check the image I uploaded to this ticket”

2014-10-06, 13:22:07 - rcorredorj

CommentContent: changed from “Hi,

I realized two things about this ticket. First, the was already pointed out in #121. Second, Slicer can already display the scalar colorbar that adapts to changes in the window level (check the image I uploaded to this ticket” to “Hi,

I realized two things about this ticket. First, the was already pointed out in #121. Second, Slicer can already display the scalar colorbar that adapts to changes in the window level (check the image I uploaded to this ticket”

2014-10-06, 13:22:07 - rcorredorj

CommentContent: changed from “Hi,

I realized two things about this ticket. First, the was already pointed out in #121. Second, Slicer can already display the scalar colorbar that adapts to changes in the window level (check the image I uploaded to this ticket” to “Hi,

I realized two things about this ticket. First, the was already pointed out in #121. Second, Slicer can already display the scalar colorbar that adapts to changes in the window level (check the image I uploaded to this ticket”

2014-10-06, 13:22:07 - rcorredorj

CommentContent: changed from “Hi,

I realized two things about this ticket. First, the was already pointed out in #121. Second, Slicer can already display the scalar colorbar that adapts to changes in the window level (check the image I uploaded to this ticket” to “Hi,

I realized two things about this ticket. First, the was already pointed out in #121. Second, Slicer can already display the scalar colorbar that adapts to changes in the window level (check the image I uploaded to this ticket”

2014-10-06, 13:30:25 - Csaba Pinter

’- There is no relation between the color table used for displaying the dose map and the color table used for displaying the isodoses. This could create some redundancy or confusion.’ There is a relation, just not a dynamic one. Basically SlicerRT has an isodose color map that is loaded on startup. A dose color table is created from this isodose map when a dose volume is loaded. Unfortunately the two are not linked in a way that if one changes the other should too. This is covered in #315

2014-10-06, 14:40:07 - rcorredorj

True, but maybe it is better to keep only this existing colorbar in Slicer, that is already dynamic, and adapt the isodose contour colors to those changes, am I wrong? why would you need the additional scalar colorbars for the isodose contours?

2014-10-06, 14:41:25 - Csaba Pinter

Because it has to be manually changeable in the isodose module

2014-10-06, 15:18:15 - rcorredorj

Ok, but it is not easier/better to change directly the color lookup table assigned for dose data by manually setting custom colors to specific values? For example, that is what I usually do in ParaView where it is possible to set a color and a opacity to a value in the data range, via a colormap widget http://www.kitware.com/blog/home/post/573. In that way, the color settings would be automatically reflected both in the dose map and the isodose colors, keeping the same scalar colorbar. (Only questions to understand better, but you have more experience than me in the field :-) ) Thanks @pinter !!

2014-10-06, 15:24:37 - Csaba Pinter

Although the two color table nodes assign the same colors to the same levels, the isodose table has to be kept open for editing to the user who generates isodose surfaces. The dose volume color table is on the other hand contains a lot of color entries smoothing out these colors. The volume displayable manager can probably interpolate between the colors, so it is possible the isodose table can be used. What is for sure is that the current way is quite rigid and not even convenient. Unfortunately I cannot deal with this right now.

The best would be if you and @wangk came up with a specification-like document (Assembla wiki page) about the requirements that I and Andras also edit, and then we could come up with a design based on that.

2014-10-06, 15:55:32 - rcorredorj

Sure @pinter ! My point of course is not to put you more work and push you more tickets :D It is specially to solve questions that help me to understand your decisions and hopefully part of these discussions would be useful (or not) to improve SlicerRT. I will try to see this point with @wangk, but at this moment it is still more important the beams module part. Thank you again!

2014-10-06, 16:02:09 - Csaba Pinter

I didn’t take it like that, no worries :) I think such a rough specification would be useful to get the ball rolling, even if your focus is different for now, because apparently you would rely on it, and have definite requirements in that matter. This part of the code is something that needs overhaul anyway. Thanks!

2014-10-06, 17:52:20 - wangk

well. all are good points!

a bit background for this scalarbar issue. when I first started to develop isodose module, we needed a scalarbar that can show the label as Gy value(e.g. 30 Gy) instead of color value 12 which has no physical meaning. that is why we developed our own scalarbar and later on this code was integrated into the slicer core.

On another different project, some slicer developers have developed an enhanced scalarbar for dynamically updating according to current window/level setting, they based their implementation on the paraview’s scalarbar.

There was some discussion on how to integrate the two scalarbar into one but things more slowly and it has not happened so far.

so in conclusion, you are right that we need features from both code. it just takes time.

Kevin

#651 Integrate contour to surface algorithm to SlicerRT

2014-09-16, 02:41:00 - Csaba Pinter

#627 is essentially the same ticket; closing this one

2014-09-16, 02:41:00 - Csaba Pinter

status: changed from “New” to “Invalid”

#652 Multidim data nodes with less digits in timestamp

Would it be possible to fix the number of decimal digits in the timestamp e.g. to 2? If we have significantly better devices in the future, we may still increase it to 3. Currently the long timestamps are inconvenient and they don’t look good either.

2014-09-22, 15:04:59 - Csaba Pinter

milestone_id: changed from null to “MultidimData 0.2.1”

2014-10-15, 18:30:37 - Andras Lasso

status: changed from “New” to “Accepted”

2014-10-15, 18:32:15 - Andras Lasso

re #652: Limited sequence metafile timestamp precision to 0.001sec.

Also disabled interactive charting by default for better performance. Commit: r:1979|slicerrt:1979

2014-10-15, 18:32:15 - Andras Lasso

assigned_to_id: changed from null to “lassoan”

2014-10-15, 18:35:16 - Andras Lasso

re #652: Updated extension version to 0.2.1 Commit: r:1980|slicerrt:1980

2015-09-30, 16:08:08 - Andras Lasso

status: changed from “Accepted” to “Fixed”

#653 Plastimatch and SlicerRT modules fail to load on Mac

Dashboard looks fine, but when installing SlicerRT, the modules are missing and the following error message can be read:

dlopen(/Applications/Slicer 20140921.app/Contents/Extensions-23717/SlicerRT/lib/Slicer-4.3/qt- loadable-modules/vtkSlicerBeamsModuleLogicPython.so, 2): Library not loaded: @rpath/lib/Slicer- 4.3/libvtkGUISupportQtOpenGL-6.2.1.dylib Referenced from: /Applications/Slicer 20140921.app/Contents/Extensions-23717/SlicerRT/lib/Slicer- 4.3/qt-loadable-modules/vtkSlicerBeamsModuleLogicPython.so Reason: image not found dlopen(/Applications/Slicer 20140921.app/Contents/Extensions-23717/SlicerRT/lib/Slicer-4.3/qt- loadable-modules/vtkSlicerContourComparisonModuleLogicPython.so, 2): Library not loaded: @rpath/lib/Slicer-4.3/libvtkGUISupportQtOpenGL-6.2.1.dylib Referenced from: /Applications/Slicer 20140921.app/Contents/Extensions-23717/SlicerRT/lib/Slicer- 4.3/qt-loadable-modules/vtkSlicerContourComparisonModuleLogicPython.so Reason: image not found dlopen(/Applications/Slicer 20140921.app/Contents/Extensions-23717/SlicerRT/lib/Slicer-4.3/qt- loadable-modules/vtkSlicerContourMorphologyModuleLogicPython.so, 2): Library not loaded: @rpath/lib/Slicer-4.3/libvtkGUISupportQtOpenGL-6.2.1.dylib Referenced from: /Applications/Slicer 20140921.app/Contents/Extensions-23717/SlicerRT/lib/Slicer- 4.3/qt-loadable-modules/vtkSlicerContourMorphologyModuleLogicPython.so Reason: image not found dlopen(/Applications/Slicer 20140921.app/Contents/Extensions-23717/SlicerRT/lib/Slicer-4.3/qt- loadable-modules/vtkSlicerContoursModuleLogicPython.so, 2): Library not loaded: @rpath/lib/Slicer- 4.3/libvtkGUISupportQtOpenGL-6.2.1.dylib Referenced from: /Applications/Slicer 20140921.app/Contents/Extensions-23717/SlicerRT/lib/Slicer- 4.3/qt-loadable-modules/vtkSlicerContoursModuleLogicPython.so Reason: image not found dlopen(/Applications/Slicer 20140921.app/Contents/Extensions-23717/SlicerRT/lib/Slicer-4.3/qt- loadable-modules/vtkSlicerDicomRtExportModuleLogicPython.so, 2): Library not loaded: @rpath/lib/Slicer-4.3/libvtkGUISupportQtOpenGL-6.2.1.dylib Referenced from: /Applications/Slicer 20140921.app/Contents/Extensions-23717/SlicerRT/lib/Slicer- 4.3/qt-loadable-modules/vtkSlicerDicomRtExportModuleLogicPython.so Reason: image not found dlopen(/Applications/Slicer 20140921.app/Contents/Extensions-23717/SlicerRT/lib/Slicer-4.3/qt- loadable-modules/vtkSlicerDicomRtImportModuleLogicPython.so, 2): Library not loaded: @rpath/lib/Slicer-4.3/libvtkGUISupportQtOpenGL-6.2.1.dylib Referenced from: /Applications/Slicer 20140921.app/Contents/Extensions-23717/SlicerRT/lib/Slicer- 4.3/qt-loadable-modules/vtkSlicerDicomRtImportModuleLogicPython.so Reason: image not found dlopen(/Applications/Slicer 20140921.app/Contents/Extensions-23717/SlicerRT/lib/Slicer-4.3/qt- loadable-modules/vtkSlicerDicomSroImportModuleLogicPython.so, 2): Library not loaded: @rpath/lib/Slicer-4.3/libvtkGUISupportQtOpenGL-6.2.1.dylib Referenced from: /Applications/Slicer 20140921.app/Contents/Extensions-23717/SlicerRT/lib/Slicer- 4.3/qt-loadable-modules/vtkSlicerDicomSroImportModuleLogicPython.so Reason: image not found dlopen(/Applications/Slicer 20140921.app/Contents/Extensions-23717/SlicerRT/lib/Slicer-4.3/qt- loadable-modules/vtkSlicerDoseAccumulationModuleLogicPython.so, 2): Library not loaded: @rpath/lib/Slicer-4.3/libvtkGUISupportQtOpenGL-6.2.1.dylib Referenced from: /Applications/Slicer 20140921.app/Contents/Extensions-23717/SlicerRT/lib/Slicer- 4.3/qt-loadable-modules/vtkSlicerDoseAccumulationModuleLogicPython.so Reason: image not found dlopen(/Applications/Slicer 20140921.app/Contents/Extensions-23717/SlicerRT/lib/Slicer-4.3/qt- loadable-modules/vtkSlicerDoseComparisonModuleLogicPython.so, 2): Library not loaded: @rpath/lib/Slicer-4.3/libvtkGUISupportQtOpenGL-6.2.1.dylib Referenced from: /Applications/Slicer 20140921.app/Contents/Extensions-23717/SlicerRT/lib/Slicer- 4.3/qt-loadable-modules/vtkSlicerDoseComparisonModuleLogicPython.so Reason: image not found dlopen(/Applications/Slicer 20140921.app/Contents/Extensions-23717/SlicerRT/lib/Slicer-4.3/qt- loadable-modules/vtkSlicerDoseVolumeHistogramModuleLogicPython.so, 2): Library not loaded: @rpath/lib/Slicer-4.3/libvtkGUISupportQtOpenGL-6.2.1.dylib Referenced from: /Applications/Slicer 20140921.app/Contents/Extensions-23717/SlicerRT/lib/Slicer- 4.3/qt-loadable-modules/vtkSlicerDoseVolumeHistogramModuleLogicPython.so Reason: image not found dlopen(/Applications/Slicer 20140921.app/Contents/Extensions-23717/SlicerRT/lib/Slicer-4.3/qt- loadable-modules/vtkSlicerIsodoseModuleLogicPython.so, 2): Library not loaded: @rpath/lib/Slicer- 4.3/libvtkGUISupportQtOpenGL-6.2.1.dylib Referenced from: /Applications/Slicer 20140921.app/Contents/Extensions-23717/SlicerRT/lib/Slicer- 4.3/qt-loadable-modules/vtkSlicerIsodoseModuleLogicPython.so Reason: image not found dlopen(/Applications/Slicer 20140921.app/Contents/Extensions-23717/SlicerRT/lib/Slicer-4.3/qt- loadable-modules/vtkSlicerPlanarImageModuleLogicPython.so, 2): Library not loaded: @rpath/lib/Slicer-4.3/libvtkGUISupportQtOpenGL-6.2.1.dylib Referenced from: /Applications/Slicer 20140921.app/Contents/Extensions-23717/SlicerRT/lib/Slicer- 4.3/qt-loadable-modules/vtkSlicerPlanarImageModuleLogicPython.so Reason: image not found dlopen(/Applications/Slicer 20140921.app/Contents/Extensions-23717/SlicerRT/lib/Slicer-4.3/qt- loadable-modules/vtkSlicerPlastimatchPyModuleLogicPython.so, 2): Library not loaded: @rpath/lib/Slicer-4.3/libvtkGUISupportQtOpenGL-6.2.1.dylib Referenced from: /Applications/Slicer 20140921.app/Contents/Extensions-23717/SlicerRT/lib/Slicer- 4.3/qt-loadable-modules/vtkSlicerPlastimatchPyModuleLogicPython.so Reason: image not found dlopen(/Applications/Slicer 20140921.app/Contents/Extensions-23717/SlicerRT/lib/Slicer-4.3/qt- loadable-modules/vtkSlicerContoursModuleMRMLPython.so, 2): Library not loaded: @rpath/lib/Slicer- 4.3/libvtkGUISupportQtOpenGL-6.2.1.dylib Referenced from: /Applications/Slicer 20140921.app/Contents/Extensions-23717/SlicerRT/lib/Slicer- 4.3/qt-loadable-modules/vtkSlicerContoursModuleMRMLPython.so Reason: image not found dlopen(/Applications/Slicer 20140921.app/Contents/Extensions-23717/SlicerRT/lib/Slicer-4.3/qt- loadable-modules/qSlicerContoursModuleWidgetsPythonQt.so, 2): Library not loaded: @rpath/lib/Slicer-4.3/libvtkGUISupportQtOpenGL-6.2.1.dylib Referenced from: /Applications/Slicer 20140921.app/Contents/Extensions-23717/SlicerRT/lib/Slicer- 4.3/qt-loadable-modules/qSlicerContoursModuleWidgetsPythonQt.so Reason: image not found dlopen(/Applications/Slicer 20140921.app/Contents/Extensions-23717/SlicerRT/lib/Slicer-4.3/qt- loadable-modules/qSlicerContoursSubjectHierarchyPluginsPythonQt.so, 2): Library not loaded: @rpath/lib/Slicer-4.3/libvtkGUISupportQtOpenGL-6.2.1.dylib Referenced from: /Applications/Slicer 20140921.app/Contents/Extensions-23717/SlicerRT/lib/Slicer- 4.3/qt-loadable-modules/qSlicerContoursSubjectHierarchyPluginsPythonQt.so Reason: image not found dlopen(/Applications/Slicer 20140921.app/Contents/Extensions-23717/SlicerRT/lib/Slicer-4.3/qt- loadable-modules/qSlicerDicomRtImportSubjectHierarchyPluginsPythonQt.so, 2): Library not loaded: @rpath/lib/Slicer-4.3/libvtkGUISupportQtOpenGL-6.2.1.dylib Referenced from: /Applications/Slicer 20140921.app/Contents/Extensions-23717/SlicerRT/lib/Slicer- 4.3/qt-loadable-modules/qSlicerDicomRtImportSubjectHierarchyPluginsPythonQt.so Reason: image not found dlopen(/Applications/Slicer 20140921.app/Contents/Extensions-23717/SlicerRT/lib/Slicer-4.3/qt- loadable-modules/qSlicerDoseComparisonSubjectHierarchyPluginsPythonQt.so, 2): Library not loaded: @rpath/lib/Slicer-4.3/libvtkGUISupportQtOpenGL-6.2.1.dylib Referenced from: /Applications/Slicer 20140921.app/Contents/Extensions-23717/SlicerRT/lib/Slicer- 4.3/qt-loadable-modules/qSlicerDoseComparisonSubjectHierarchyPluginsPythonQt.so Reason: image not found dlopen(/Applications/Slicer 20140921.app/Contents/Extensions-23717/SlicerRT/lib/Slicer-4.3/qt- loadable-modules/qSlicerDoseVolumeHistogramSubjectHierarchyPluginsPythonQt.so, 2): Library not loaded: @rpath/lib/Slicer-4.3/libvtkGUISupportQtOpenGL-6.2.1.dylib Referenced from: /Applications/Slicer 20140921.app/Contents/Extensions-23717/SlicerRT/lib/Slicer- 4.3/qt-loadable-modules/qSlicerDoseVolumeHistogramSubjectHierarchyPluginsPythonQt.so Reason: image not found dlopen(/Applications/Slicer 20140921.app/Contents/Extensions-23717/SlicerRT/lib/Slicer-4.3/qt- loadable-modules/qSlicerIsodoseSubjectHierarchyPluginsPythonQt.so, 2): Library not loaded: @rpath/lib/Slicer-4.3/libvtkGUISupportQtOpenGL-6.2.1.dylib Referenced from: /Applications/Slicer 20140921.app/Contents/Extensions-23717/SlicerRT/lib/Slicer- 4.3/qt-loadable-modules/qSlicerIsodoseSubjectHierarchyPluginsPythonQt.so Reason: image not found

2014-09-22, 16:29:17 - Csaba Pinter

image:czbbWMqNur5jxdacwqjQWU

2014-09-22, 16:29:17 - Csaba Pinter

Attachment added: “Radiotherapymodule.png”

2014-09-22, 16:32:18 - Csaba Pinter

assigned_to_id: changed from “gregsharp” to “pinter”

2014-09-22, 18:09:52 - Csaba Pinter

The common part from these error messages is Library not loaded: @rpath/lib/Slicer-4.3/libvtkGUISupportQtOpenGL-6.2.1.dylib I wonder why this lib cannot be loaded.

2014-09-23, 14:59:01 - Csaba Pinter

There are different VTK libs being not found each time Slicer is started, not just the one above. The path they are not found is @rpath/lib/Slicer-4.3, but the libs are in VTKv6-build/lib

2014-09-23, 18:34:15 - Greg Sharp

The following link seems useful.

http://www.kitware.com/blog/home/post/510

2014-09-23, 18:40:33 - Greg Sharp

The below link suggests that CMake 3.0.0 / 3.0.1 may behave differently from 2.8.12 / 3.0.2.

http://www.cmake.org/cmake/help/v3.0/policy/CMP0042.html

@jchris Which cmake version does mac factory use?

2014-09-23, 18:40:33 - Greg Sharp

CommentContent: changed from “The below link suggests that CMake 3.0.0 / 3.0.1 will behave differently from 2.8.12 / 3.0.2.

http://www.cmake.org/cmake/help/v3.0/policy/CMP0042.html

@jchris Which cmake version does mac factory use? “ to “The below link suggests that CMake 3.0.0 / 3.0.1 may behave differently from 2.8.12 / 3.0.2.

http://www.cmake.org/cmake/help/v3.0/policy/CMP0042.html

@jchris Which cmake version does mac factory use? “

2014-09-23, 18:50:58 - Greg Sharp

Another interesting clue

https://gitorious.org/kitware/vtk/commit/cd0b6e688c260d4d7793fb416c0468b2abd4a97a

2014-09-23, 19:26:56 - Csaba Pinter

Thanks, Greg! In the meantime I attended the developer hangout and according to Jc’s quick investigation this is caused by a new OpenGL version used by VTK6 whose libraries are not properly packaged, so it’s not a SlicerRT or Plastimatch issue most likely. He said he’d look into it later this week.

2014-10-28, 23:15:35 - Csaba Pinter

Slicer Mantis issue for this problem: http://na-mic.org/Mantis/view.php?id=3872

It should be fixed by http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=23755, need to test once nightly has built.

2014-10-28, 23:15:35 - Csaba Pinter

status: changed from “New” to “Test”

2014-10-29, 15:44:49 - Csaba Pinter

The above change didn’t do the trick

2014-10-29, 15:44:49 - Csaba Pinter

status: changed from “Test” to “Accepted”

2014-10-30, 14:13:49 - Csaba Pinter

I tested the latest nightly (http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=23766) with SlicerRT and it seems to be working now. All the modules are present, and the few I tried work properly. Thanks to Jc for the fix!

2014-10-30, 14:13:49 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

#654 DVH crashes with contours created from representation

2014-09-25, 19:06:05 - Csaba Pinter

Fixed #654: DVH crashed wit contours from representation, because an empty original ROI point list was copied to the converted contour representation. Commit: r:1959|slicerrt:1959

2014-09-25, 19:06:05 - Csaba Pinter

status: changed from “New” to “Fixed”

#655 Remove depracated BITCMP calls from command server

From Andriy Fedorov:

I tested on mac with Matlab R2013b, and the tutorial example works.

FYI, I got the following warnings on the console:

Warning: BITCMP(A,N) will not accept integer valued input N in a future release. Use BITCMP(A,ASSUMEDTYPE) instead.

In cli_commandserver>ReadWithTimeout at 222 In cli_commandserver>ReadOpenIGTLinkMessage at 140 In cli_commandserver>ReadOpenIGTLinkStringMessage at 124 In cli_commandserver at 73 In run at 63 Warning: BITCMP(A,N) will not accept integer valued input N in a future release. Use BITCMP(A,ASSUMEDTYPE) instead. In cli_commandserver>ReadWithTimeout at 222 In cli_commandserver>ReadOpenIGTLinkMessage at 140 In cli_commandserver>ReadOpenIGTLinkStringMessage at 124 In cli_commandserver at 73 In run at 63 Warning: BITCMP(A,N) will not accept integer valued input N in a future release. Use BITCMP(A,ASSUMEDTYPE) instead. In cli_commandserver>ReadWithTimeout at 222 In cli_commandserver>ReadOpenIGTLinkMessage at 140 In cli_commandserver>ReadOpenIGTLinkStringMessage at 124 In cli_commandserver at 73 In run at 63 Warning: BITCMP(A,N) will not accept integer valued input N in a future release. Use BITCMP(A,ASSUMEDTYPE) instead. In cli_commandserver>ReadWithTimeout at 222 In cli_commandserver>ReadOpenIGTLinkMessage at 143 In cli_commandserver>ReadOpenIGTLinkStringMessage at 124 In cli_commandserver at 73 In run at 63

2014-10-16, 18:20:40 - Andras Lasso

milestone_id: changed from “MatlabBridge 0.12.0” to “MatlabBridge 0.13.0”

2015-01-21, 17:14:41 - Andras Lasso

fixed #655: Fix bitcmp issue on Matlab R2014b

bitcmp function was changed in R2014b and cause this error: Error using bitcmp BITCMP(A,N) does not accept integer valued input N. Use BITCMP(A,ASSUMEDTYPE) instead.

Worked around by finding an alternative way of converting from signed to unsigned int8. Commit: r:2096|slicerrt:2096

2015-01-21, 17:14:41 - Andras Lasso

status: changed from “New” to “Fixed”

#656 Contour created from labelmap isn’t added to hierarchy

1 - Import sample DICOM-RT data (CT Image + RTStructs + Sample Dose map + RT Plan) 2 - Open ‘Contours’ module, select e.g. PTV, go into ‘Change active representation’, select ‘Convert to: Indexed labelmap’, keep CT as reference volume, oversampling factor 1 -> Apply. 3 - In the same module, in ‘Contour functions’, ‘Extract labelmap from contour’ -> Extract. 4 - After displaying the extracted labelmap in a 2D View, go into ‘Editor’ and edit the labelmap corresponding to PTV. 5 - After editing, come back to ‘Contours’ module. Go into ‘create contour from representation’, select as source the edited labelmap, select as parent the RTSTRUCT node already available, and set a custom contour name -> Create

With the current version of the code, the new contour node is not added into the hierarchy, the labelmap is deleted and new nodes are not inserted in the scene.

2014-09-29, 14:38:52 - Csaba Pinter

Further debug hints at message https://www.assembla.com/spaces/slicerrt/messages/4791313

2014-09-29, 22:02:11 - Csaba Pinter

Test #656: Creating contour from representation in the Contour module fixed, the contour node is not removed from the scene; Minor stylistic changes to comply with coding conventions Commit: r:1964|slicerrt:1964

2014-09-29, 22:02:11 - Csaba Pinter

status: changed from “New” to “Test”

2014-10-07, 20:12:37 - Csaba Pinter

status: changed from “Test” to “Fixed”

#657 DICOM-RT export failure with T2 data set

This ticket is to track the development to fix error reported by user rbergen.

https://www.assembla.com/spaces/slicerrt/messages/4630663

2014-09-29, 15:26:30 - Greg Sharp

assigned_to_id: changed from null to “gregsharp”

2014-09-29, 15:26:30 - Greg Sharp

status: changed from “New” to “Accepted”

2014-09-29, 15:26:58 - Greg Sharp

milestone_id: changed from null to “SlicerRt 0.15”

2014-09-29, 17:32:39 - Greg Sharp

Test #657 Update plastimatch version to fix converter error Commit: r:1963|slicerrt:1963

2014-09-29, 17:32:39 - Greg Sharp

status: changed from “Accepted” to “Test”

2014-10-29, 15:30:26 - Greg Sharp

status: changed from “Test” to “Fixed”

#658 RTSTRUCT import fails with contour on single slice

The following error message is given:

Unable to calculate distance between contour planes, less than two planes detected. Skipping. Inconsistent plane spacing. Details:

2014-09-29, 18:00:32 - Csaba Pinter

Good catch! I will fix it.

2014-09-29, 18:00:38 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2014-09-29, 18:00:38 - Csaba Pinter

milestone_id: changed from null to “SlicerRt 0.15”

2014-09-29, 21:08:46 - Csaba Pinter

@gregsharp Can you attach or point to some sample data I can use to test? Thanks!

2014-09-30, 18:47:37 - Csaba Pinter

I exported a one-plane two RIOs contour using DICOM-RT Export and successfully loaded it back, see https://www.assembla.com/spaces/slicerrt/tickets/659-rtstruct-import-fails-with-inconsistent-spacing?comment=600291393#comment:600291393

2014-09-30, 18:47:37 - Csaba Pinter

status: changed from “New” to “Test”

2014-10-07, 20:13:16 - Csaba Pinter

This issue should be fixed, please re-open if the same problem is experienced

2014-10-07, 20:13:16 - Csaba Pinter

status: changed from “Test” to “Fixed”

#659 RTSTRUCT import fails with inconsistent spacing

Maybe related to #658. The attached dataset was exported using SlicerRT / plastimatch. RTSTRUCT load fails, with the below error.

Contour: 3: Ax T2 TSE 3mm-label_Contour does not have consistent plane spacing (3.24485 != 3.24407). Unable to compute distance between planes. Contour contains planes with distance 0. Check exported data for planar errors.

Inconsistent plane spacing. Details: Planar spacing: 9.5057e-05. Frequency: 1. Planar spacing: 3.24407. Frequency: 1. Planar spacing: 3.24485. Frequency: 1.

2014-09-29, 17:53:22 - Greg Sharp

file:cbnLxssaer5luDacwqEsg8

2014-09-29, 17:53:22 - Greg Sharp

Attachment added: “export.zip”

2014-09-29, 18:03:41 - Csaba Pinter

This is intentional. In order to produce a valid ribbon model, we need consistent spacing. If the slice thicknesses are not uniform, then the ribbons (and so labelmaps created from those) are not valid. This ‘feature’ should be deprecated once we integrate the direct ROI contours to closed surface algorithm.

2014-09-29, 18:35:39 - Greg Sharp

The spacing is uniform. But there is digital noise caused by encoding the float as a decimal string.

2014-09-29, 18:55:37 - Csaba Pinter

Oh, I see, the two values are really close together. I can increase the threshold…

2014-09-29, 21:15:50 - Csaba Pinter

There are other issues with the exported data, not just the rounding. It seems that two planes coincide, as your message also suggests with the slice thickness of 9.5057e-05.

ERROR: In ..\..\..\..\SlicerRT\DicomRtImport\Logic\vtkSlicerDicomRtReader.cxx, line 1110 vtkSlicerDicomRtReader (0000000018952640): Contour contains planes with distance 0. Check exported data for planar errors.

I change the tolerance though, but I’m not quite comfortable doing that. Can the RTSS exporter be changed to print more decimals to compensate for this?

2014-09-29, 21:15:50 - Csaba Pinter

CommentContent: changed from “There are other issues with the exported data, not just the rounding. It seems that two planes coincide, as your message also suggests with the slice thickness of 9.5057e-05.

ERROR: In ..\..\..\..\SlicerRT\DicomRtImport\Logic\vtkSlicerDicomRtReader.cxx,” to “There are other issues with the exported data, not just the rounding. It seems that two planes coincide, as your message also suggests with the slice thickness of 9.5057e-05.

ERROR: In ..\..\..\..\SlicerRT\DicomRtImport\Logic\vtkSlicerDicomRtReader.cxx,”

2014-09-29, 21:21:01 - Greg Sharp

Sure, I can put more decimals.

There are two contours on the same slice, that’s what causes the coinciding contours.

2014-09-29, 21:23:39 - Csaba Pinter

You mean like branching?

2014-09-29, 21:36:52 - Greg Sharp

Yeah, like branching. I drew one contour on two slices, and then I drew two contours on the third slice.

2014-09-29, 21:41:56 - Csaba Pinter

Well this makes sense. I guess I’ll remove the constraint that doesn’t allow two contours on the same plane.

@rankin: Do you think it’s possible that we just didn’t count with this scenario when we introduced this constraint? Were there some other resaon for it?

2014-09-29, 23:11:14 - Greg Sharp

Re #659 Update plastimatch to print higher precision when exporting RTSTRUCT Commit: r:1965|slicerrt:1965

2014-09-29, 23:11:14 - Greg Sharp

assigned_to_id: changed from null to “gregsharp”

2014-09-30, 00:07:39 - Adam Rankin

Yes, I definitely didn’t count that scenario. Sorry.

It seems reasonably safe to disregard the 0 spacing issue. One day we could make it smart and see if they link to the same anatomical slice?

2014-09-30, 00:11:42 - Csaba Pinter

Thanks! I’ll remove this constraint for now.

Good idea! I don’t think I’ll implement it now though, I’m a little swamped, and the new ROI-surface algorithm will replace the current ribbon step (which we still keep for fallback scenario if the new one fails on some dataset - I’ll probably add a button for that in Contours)

2014-09-30, 00:11:46 - Csaba Pinter

assigned_to_id: changed from “gregsharp” to “pinter”

2014-09-30, 18:43:10 - Csaba Pinter

Test #659: Made GetDistanceBetweenContourPlanes function a bit smarter by not considering spacings within tolerance different Commit: r:1966|slicerrt:1966

2014-09-30, 18:43:10 - Csaba Pinter

status: changed from “New” to “Test”

2014-09-30, 18:44:00 - Csaba Pinter

image:c-ok_Qsner5lDpacwqjQWU

2014-09-30, 18:44:00 - Csaba Pinter

Attachment added: “20140930_OnePlaneTwoROIsContourLoaded.png”

2014-09-30, 18:47:13 - Csaba Pinter

I exported a one-plane two RIOs contour using DICOM-RT Export and successfully loaded it back.

2014-09-30, 20:13:10 - Greg Sharp

I was unable to reproduce this result on the image with tilted planes. Will try again with image of regular orientation.

2014-09-30, 20:36:08 - Greg Sharp

Why does my labelmap disappear when I drag it onto the child contour set?

2014-09-30, 20:38:40 - Csaba Pinter

It gets converted into a contour, yes. You can get it back in SH using ‘Extract labelmap…’

2014-09-30, 20:45:14 - Greg Sharp

I think I’m running into some kind of bug. Let me try to reliably reproduce and open another ticket.

2014-09-30, 20:47:04 - Csaba Pinter

I also cannot display the contour on tilted planes. I think this is a limitation of Adam’s changes. A surface can be converted from the contour using this experimental module (PointWalk or Resample mode only, the new method somehow fails on this one): https://subversion.assembla.com/svn/slicerrt/trunk/SlicerRt/sandbox/ContourInterpolation/src/

2014-10-07, 20:11:43 - Csaba Pinter

milestone_id: changed from null to “SlicerRt 0.15”

2014-10-29, 14:11:02 - Csaba Pinter

Any news on this one?

2014-10-29, 15:28:48 - Greg Sharp

assigned_to_id: changed from “pinter” to “gregsharp”

2014-11-20, 22:52:58 - Greg Sharp

Fix is good. The issue with tilted contours is still exists, but should be tracked with new ticket #679.

2014-11-20, 22:52:58 - Greg Sharp

status: changed from “Test” to “Fixed”

#660 Direction matrix calculation in SlicerRtCommon.txx is not correct.

I found a proper implementation in Slicer in vtkMRMLVolumeNode::SetIJKToRASMatrix() method. using this code fix the oblique plane contour export problem.

2014-10-03, 18:59:56 - wangk

status: changed from “New” to “Accepted”

2014-10-03, 19:10:03 - wangk

Re #660: Fixed the incorrect direction matrix calculation using code from slicer (vtkMRMLVolumeNode::SetIJKToRASMatrix()). Commit: r:1968|slicerrt:1968

2014-10-03, 19:10:42 - wangk

status: changed from “Accepted” to “Test”

2014-10-03, 19:11:00 - wangk

assigned_to_id: changed from “wangk” to “gregsharp”

2014-10-03, 19:17:34 - wangk

Re #660: Minor syntax fix according to Csaba’s comment. Commit: r:1969|slicerrt:1969

2014-10-03, 19:18:47 - wangk

Re #660: another small fix. Commit: r:1970|slicerrt:1970

2014-10-03, 19:44:51 - wangk

Re #660: Added back the sanity check for zero len. Commit: r:1971|slicerrt:1971

2014-10-03, 20:38:48 - Greg Sharp

Hi Kevin, Thanks! This is ready to test? I will try next week. Greg

2014-10-29, 14:11:26 - Csaba Pinter

Any luck testing?

2014-11-18, 20:48:28 - Greg Sharp

I just tested. It seems not fixed.

2014-11-18, 20:48:28 - Greg Sharp

status: changed from “Test” to “Accepted”

2014-11-20, 22:40:00 - Greg Sharp

No, I was wrong. It is fixed. I confirmed through the following steps:

(1) load rbergen test case (2) draw a new contour on tilted slice (3) DICOM-RT export (4) Load in MIM (5) Visually compare

However, the import of Slicer RT does not load correctly.

2014-11-20, 22:40:00 - Greg Sharp

status: changed from “Accepted” to “Fixed”

2014-11-20, 22:40:50 - Csaba Pinter

Great, thank you!

#661 Add support for markups node

2014-10-07, 17:47:16 - wangk

status: changed from “New” to “Accepted”

2014-10-07, 17:47:34 - wangk

Test #661: Added support for markups node. Commit: r:1972|slicerrt:1972

2014-10-07, 17:47:34 - wangk

status: changed from “Accepted” to “Test”

2015-09-30, 21:28:39 - Andras Lasso

status: changed from “Test” to “Fixed”

#662 Structure set fails to load if there are multiple contours on the same slice

Diagnosis: Slice thickness is computed to be 0, if there are more zeroes (contours on same slice) than non-zeros, because that will be the majority value. Solution: Ignore 0 as slice thickness, because it is not a real plane distance, it is a structure with multiple islands on the same slice (branching etc.)

2014-10-14, 17:46:11 - Csaba Pinter

Fixed #662: Ignore 0 as slice thickness, because it is not a real plane distance, it is a structure with multiple islands on the same slice (branching etc.). This way these contours can be loaded and ribbons are displayed, as the majority value for slice thickness will never be 0, even if there are more co-planar contours than planes. Commit: r:1976|slicerrt:1976

2014-10-14, 17:46:11 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

#663 Add example for mesh reading and writing

2014-10-16, 18:14:12 - Andras Lasso

re #663: Added mesh processing helper functions and example Commit: r:1982|slicerrt:1982

2014-10-16, 18:15:03 - Andras Lasso

re #663: Updated MatlabBridge version to 0.12.0 Commit: r:1983|slicerrt:1983

2014-10-16, 18:19:53 - Andras Lasso

status: changed from “New” to “Fixed”

#664 Plastimatch OpenMP disabled on Windows

This is a continuation of #647. On Windows, the CMake < 3.1 does not bundle Visual Studio OpenMP library at time of packaging. Therefore Plastimatch must be compiled without OpenMP to ensure that no load errors occur for end users.

This ticket should be closed when Slicer build machines upgrade their CMake version.

2014-10-29, 15:39:36 - Greg Sharp

milestone_id: changed from null to “Future”

2014-10-29, 15:39:51 - Greg Sharp

assigned_to_id: changed from null to “gregsharp”

2014-10-29, 15:39:51 - Greg Sharp

status: changed from “New” to “Accepted”

2015-05-24, 22:18:55 - Csaba Pinter

milestone_id: changed from “Future” to “SlicerRt 0.16”

2015-05-28, 14:36:53 - Greg Sharp

status: changed from “Accepted” to “Test”

2015-05-28, 15:21:18 - Greg Sharp

Re #664 Re-enable plastimatch OpenMP build for windows Commit: r:2284|slicerrt:2284

2015-06-04, 22:14:25 - Csaba Pinter

Moved to 0.18

2015-06-04, 22:14:25 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.16” to “SlicerRt 0.18”

2015-09-22, 17:43:05 - Csaba Pinter

@gregsharp This ticket is in test for quite a while. Can you see if this has been resolved? Thanks!

2015-09-22, 17:58:53 - Greg Sharp

I will try, but need to find a 64-bit windows computer.

From: Csaba Pinter (pinter) [mailto:slicerrt@alerts.assembla.com] Sent: Tuesday, September 22, 2015 1:43 PM

2015-09-22, 18:03:46 - Csaba Pinter

If finding such a computer is problematic, then I can test this if you tell me what to do.

2015-09-23, 16:32:14 - Greg Sharp

That would be fantastic. Either dumpbin.exe or depends.exe could be used to see if the openmp dll is linked. Below is an example. Note that VCOMP120.DLL is linked.

The test needs to be performed for a SlicerRT extension dll that was built on the kitware build computers, for example vtkSlicerSegmentComparisonModuleLogic.dll will use OpenMP to compute Dice.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
C:\\>dumpbin /dependents plastimatch.exe
Microsoft (R) COFF/PE Dumper Version 12.00.21005.1
Copyright (C) Microsoft Corporation.  All rights reserved.


Dump of file plastimatch.exe

File Type: EXECUTABLE IMAGE

  Image has the following dependencies:

    ITKIOHDF5-4.7.dll
    ITKIOLSM-4.7.dll
    NETAPI32.dll
    WS2_32.dll
    ITKIOBMP-4.7.dll
    ITKIOBioRad-4.7.dll
    ITKIOGIPL-4.7.dll
    ITKIOJPEG-4.7.dll
    ITKIOTIFF-4.7.dll
    ITKIOMeta-4.7.dll
    ITKIONIFTI-4.7.dll
    ITKIONRRD-4.7.dll
    ITKIOPNG-4.7.dll
    ITKIOGE-4.7.dll
    ITKIOStimulate-4.7.dll
    ITKIOVTK-4.7.dll
    ITKIOImageBase-4.7.dll
    ITKCommon-4.7.dll
    MSVCP120.dll
    MSVCR120.dll
    VCOMP120.DLL
    KERNEL32.dll
    ADVAPI32.dll
    RPCRT4.dll


2015-09-23, 16:32:14 - Greg Sharp

CommentContent: changed from “That would be fantastic. Either dumpbin.exe or depends.exe could be used to see if the openmp dll is linked. Below is an example. Note that VCOMP120.DLL is linked.

The test needs to be performed for a SlicerRT dll on the kitware build computers,” to “That would be fantastic. Either dumpbin.exe or depends.exe could be used to see if the openmp dll is linked. Below is an example. Note that VCOMP120.DLL is linked.

The test needs to be performed for a SlicerRT extension dll that was built on the”

2015-09-23, 17:12:16 - Csaba Pinter

I will try right today. Is it needed to start the command line in the proper Slicer environment (with the launcher)?

2015-09-23, 17:25:28 - Greg Sharp

Nope. No need to start slicer even.

But dumpbin is distributed with visual studio, and not in default path.

From: Csaba Pinter (pinter) [mailto:slicerrt@alerts.assembla.com] Sent: Wednesday, September 23, 2015 1:12 PM

2015-09-23, 18:37:07 - Csaba Pinter

I got this list for segment comparidon logic:

c:\Users\csaba\appdata\oaming
A-MIC\Extensions-24567\SlicerRT\lib\Slicer-4.4\qt-loadable-modules>’c:\Program Files (x86)\Microsoft Visual Studio 11. 0\VC\bin\amd64\dumpbin.exe’ /dependents vtkSlicerSegmentComparisonModuleLogic.dll Microsoft (R) COFF/PE Dumper Version 11.00.61030.0 Copyright (C) Microsoft Corporation. All rights reserved.

Dump of file vtkSlicerSegmentComparisonModuleLogic.dll

File Type: DLL

Image has the following dependencies:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
vtkPlmCommon.dll
vtkSlicerSegmentationsModuleLogic.dll
ITKIOHDF5-4.8.dll
vtkSlicerSegmentationsModuleMRML.dll
vtkSegmentationCore.dll
SlicerBaseLogic.dll
MRMLLogic.dll
MRMLCore.dll
ITKIOGE-4.8.dll
ITKIOBMP-4.8.dll
ITKIOBioRad-4.8.dll
RPCRT4.dll
ITKIOGIPL-4.8.dll
ITKIOJPEG-4.8.dll
ITKIOLSM-4.8.dll
ITKIOTIFF-4.8.dll
ITKIOMeta-4.8.dll
ITKIONIFTI-4.8.dll
ITKIONRRD-4.8.dll
ITKIOPNG-4.8.dll
ITKIOStimulate-4.8.dll
ITKIOVTK-4.8.dll
vtkCommon-6.3.dll
ITKIOImageBase-4.8.dll
ITKCommon-4.8.dll
MSVCP90.dll
VCOMP90.DLL
MSVCR90.dll
KERNEL32.dll

2015-09-23, 18:37:30 - Csaba Pinter

It seems OpenMP is not in it

2015-09-23, 18:41:51 - Greg Sharp

Actually it is VCOMP90.DLL (different visual studio version).

Thanks for testing!

Let’s mark as fixed.

2015-09-23, 18:41:51 - Greg Sharp

status: changed from “Test” to “Fixed”

2015-09-23, 18:53:36 - Csaba Pinter

Oh, great! Thanks!

2016-04-13, 18:43:15 - Csaba Pinter

Reopening ticket as the Plastimatch DLLs again cannot be loaded. See http://slicer-devel.65872.n3.nabble.com/SlicerRT-not-working-on-Windows-with-new-4-5-stable-build-td4036487.html For reference: http://www.na-mic.org/Bug/view.php?id=3823

2016-04-13, 18:43:15 - Csaba Pinter

status: changed from “Fixed” to “Accepted”

2016-04-13, 18:43:57 - Csaba Pinter

Re #664 Disable OpenMP on Windows again (in 4.5 stable release), until the recurring issue has not been fixed again. Commit: r:2776|slicerrt:2776

2016-04-13, 18:45:47 - Csaba Pinter

Re #664 Disable OpenMP on Windows again (in nightly), until the recurring issue has not been fixed again. Commit: r:2777|slicerrt:2777

2016-07-20, 20:57:02 - Greg Sharp

Link to recent e-mail exchange

http://slicer-devel.65872.n3.nabble.com/SlicerRT-not-working-on-Windows-with-new-4-5-stable-build-td4036487.html

2016-07-21, 13:49:32 - Greg Sharp

Re #664 Branch for testing Windows OpenMP fix

Commit: r:2992 slicerrt:2992

2016-07-21, 14:08:48 - Greg Sharp

Re #664 possible fix for not finding OpenMP DLL in Slicer directory on Windows Commit: r:2993|slicerrt:2993

2016-07-25, 23:13:10 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.18” to “SlicerRt 0.19”

2016-08-09, 15:01:47 - Greg Sharp

Re #664 merge trunk to branch Commit: r:3042|slicerrt:3042

2016-08-09, 15:07:35 - Greg Sharp

Re #664 Try building dlls linked against plastimatch without a manifest to eliminate problem where openmp dll is not found Commit: r:3043|slicerrt:3043

2016-08-12, 16:39:31 - Csaba Pinter

I tried the most recent nightly on a VM and it seems to work! At least I could run a gamma. I set the ticket to Test, and if it we don’t receive error reportsfor a while then we can close it.

2016-08-12, 16:39:31 - Csaba Pinter

status: changed from “Accepted” to “Test”

2016-08-12, 17:00:02 - Greg Sharp

Great! Thanks Csaba! (Fingers still crossed.)

From: Csaba Pinter (pinter) [mailto:slicerrt@alerts.assembla.com] Sent: Friday, August 12, 2016 12:40 PM

2016-09-22, 15:40:29 - Csaba Pinter

No issues arose since the fix so I’m closing this ticket.

2016-09-22, 15:40:29 - Csaba Pinter

status: changed from “Test” to “Fixed”

#665 Add dose calculation results into Subject Hierarchy

Right now, the dose calculation just goes into the scene. The calculation results should get put in the hierarchy so they can be exported correctly.

2014-10-29, 15:44:32 - Greg Sharp

assigned_to_id: changed from null to “gregsharp”

2014-10-29, 15:44:40 - Greg Sharp

milestone_id: changed from null to “SlicerRt 1.0”

2014-10-29, 15:45:08 - Greg Sharp

Re #665 Add comments to code that explain how to add dose volume into heirarchy Commit: r:1993|slicerrt:1993

2014-11-07, 15:37:33 - Csaba Pinter

milestone_id: changed from “SlicerRt 1.0” to “SlicerRt 0.16”

2016-01-12, 19:42:26 - Csaba Pinter

@gregsharp Thanks for closing #553! This ticket should be fairly simple, so if you haven’t got it already I suggest we just do it at the weekly hangout. There’s good chance it’s only going to be the two of us.

2016-03-25, 16:18:13 - Csaba Pinter

image:aSvVus8Qur5zaDacwqEsg8

2016-03-25, 16:18:13 - Csaba Pinter

Attachment added: “20160325_ExternalBeamPlanning_Result.png”

2016-03-25, 16:19:42 - Csaba Pinter

Test #665: Dose calculation results are put in the discussed places in subject hierarchy; Nicer names are given to these nodes; Code simplifications Commit: r:2759|slicerrt:2759

2016-03-25, 16:19:42 - Csaba Pinter

status: changed from “New” to “Test”

2016-03-25, 16:19:55 - Csaba Pinter

assigned_to_id: changed from “gregsharp” to “pinter”

2016-04-14, 15:30:45 - Csaba Pinter

status: changed from “Test” to “Fixed”

#666 Error compilation std::not1 not found

2014-11-05, 13:19:26 - maxime.desplanques

milestone_id: changed from null to “SlicerRt 0.15”

2014-11-05, 13:21:50 - maxime.desplanques

Re #666 Error compilation std::not1 not found -> fixed Commit: r:2008|slicerrt:2008

2014-11-05, 13:22:17 - maxime.desplanques

status: changed from “New” to “Fixed”

2014-11-05, 14:33:07 - Csaba Pinter

Just for the future it would be useful if you included information such as platform, operating system version, etc. For example I did a clean build of SlicerRT yesterday on Windows and it was OK… Thanks!

2014-11-05, 14:47:24 - maxime.desplanques

Sorry for that… Here is the explanation: This problem was an error with Windows 7 64bits, VS 2012. I added the library in vtkSlicerVffFileReader.cxx and it compiled fine afterwards.

2014-11-05, 15:03:32 - Csaba Pinter

Thanks for the fix! So it seems to be related to VS 2012? Strange because I compiled it a few months ago with 2012 and VffFileReader hasn’t change since then. I’m wondering why it failed for you…

#667 Set color to exported RT structures

Every structure is black when exported

2014-11-05, 17:19:17 - Csaba Pinter

You can get the color of a contour with vtkMRMLContourNode::GetColor Let me know if it doesn’t work well for some reason, the contours part is sort of under construction.

2014-11-21, 00:13:00 - Greg Sharp

I tried to use vtkMRMLContourNode::GetColor, but all the colors are gray. See #680. Here is what I tried:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
for (each contourNode) {
  ...
  char *labelmapName = contourNode->GetName();
  double labelmapColor[4] = {1.0,0.0,0.0,1.0};
  int colorIndex;
  vtkMRMLColorTableNode *colorNode;
  contourNode->GetColor(colorIndex,colorNode);
  printf ('>>> labelmapName = %s\
', labelmapName);
  printf ('>>> colorIndex = %d\
', colorIndex);
  printf ('>>> colorNode = %p\
', colorNode);
  if (colorNode) {
      printf ('>>> colorNodeType = %d\
', colorNode->GetType());
      printf ('>>> colorNodeString = %s\
', colorNode->GetTypeAsString());
      colorNode->GetColor (1, labelmapColor);
      printf ('>>> color = %g %g %g %g\
', labelmapColor[0],
          labelmapColor[1], labelmapColor[2], labelmapColor[3]);
   }
}


Which gives this:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
>>> labelmapName = BODY_Contour
>>> colorIndex = 1
>>> colorNode = 0x672cd30
>>> colorNodeType = 13
>>> colorNodeString = UserDefined
>>> color = 0.501961 0.501961 0.501961 1
>>> labelmapName = Bladder_Contour
>>> colorIndex = 1
>>> colorNode = 0x672cd30
>>> colorNodeType = 13
>>> colorNodeString = UserDefined
>>> color = 0.501961 0.501961 0.501961 1
>>> labelmapName = Femoral Head Lt_Contour
>>> colorIndex = 1
>>> colorNode = 0x672cd30
>>> colorNodeType = 13
>>> colorNodeString = UserDefined
>>> color = 0.501961 0.501961 0.501961 1
>>> labelmapName = Femoral Head RT_Contour
>>> colorIndex = 1
>>> colorNode = 0x672cd30
>>> colorNodeType = 13
>>> colorNodeString = UserDefined
>>> color = 0.501961 0.501961 0.501961 1
>>> labelmapName = PTV_Contour
>>> colorIndex = 1
>>> colorNode = 0x672cd30
>>> colorNodeType = 13
>>> colorNodeString = UserDefined
>>> color = 0.501961 0.501961 0.501961 1
>>> labelmapName = Rectum_Contour
>>> colorIndex = 1
>>> colorNode = 0x672cd30
>>> colorNodeType = 13
>>> colorNodeString = UserDefined
>>> color = 0.501961 0.501961 0.501961 1


You can see they all have colorIndex of 1.

2014-11-21, 00:20:07 - Greg Sharp

OK, I see the problem, but don’t know what was intended. What means the comment at line 682?

vtkMRMLContourNode.cxx

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void vtkMRMLContourNode::GetColor(int &colorIndex, vtkMRMLColorTableNode* &colorNode, vtkMRMLScene* scene/*=NULL*/)
{
  ...
  colorIndex = SlicerRtCommon::COLOR_INDEX_INVALID;
  ...
  // Do not continue to look for the color index if it was invalid    <---- Line 682
  // It is a feature of the function, that if the colorIndex was initialized as invalid, then only the color node is acquired
  if (colorIndex == SlicerRtCommon::COLOR_INDEX_INVALID)
  {
    vtkDebugMacro('GetColorIndex: Input color index was set to invalid, so the color index is not acquired.')
    return;
  }


2014-11-21, 00:29:43 - Csaba Pinter

As I remember it was supposed to speed up the method in some cases, as many times we only need the color node, not the color.

2014-11-21, 00:32:31 - Greg Sharp

OK. Can I therefore move this line

1
2
3
4
  colorIndex = SlicerRtCommon::COLOR_INDEX_INVALID;


after the test?

2014-11-21, 00:33:10 - Greg Sharp

Or maybe just have a separate function GetColorNode() is better

2014-11-21, 00:45:44 - Csaba Pinter

Hm I just understood what really happens there. Feel free to fix what you find there, the contour mechanism bleeds from many wounds since it contains the representations. Thanks!

2015-01-13, 21:08:52 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.15 (DICOM export)” to “SlicerRt 0.16”

2015-04-01, 18:20:40 - Greg Sharp

Test #667 SlicerRT now properly saves the structure colors when exporting dicom structure sets Commit: r:2200|slicerrt:2200

2015-04-01, 18:20:40 - Greg Sharp

status: changed from “New” to “Test”

2015-04-06, 18:34:04 - Csaba Pinter

Hi Greg, I tested the export and although there is color, they the RGB components seem to be messed up. Instead of red, I get blue, instead of light green, I get a peach-like color. Can you please check? Also it looks that the dose file name is wrong. The exported file is now called ‘dose.dcm_1.2.826.0.1.3680043.8.274.1.1.7918762549.93216.6711654514.555’ I think the .dcm extnsion was inserted at the wrong location and it should be ‘dose_1.2.826.0.1.3680043.8.274.1.1.7918762549.93216.6711654514.555.dcm’ instead.

2015-04-08, 16:28:18 - Csaba Pinter

The color issue I reported above was probably due to erroneous handling of color tables (either when addind/removing contour or when extracting color for export). Will not fix as segmentations is going to replace the whole contours infrastructure in several weeks now.

2015-04-08, 16:29:05 - Csaba Pinter

This ticket can be closed when committing the plastimatch revision bump that fixes the dose file extension.

Thanks, Greg!

2015-04-08, 16:32:56 - Csaba Pinter

In the meantime Greg created a new ticket for the does file extension issue #723, so closing this one

2015-04-08, 16:32:56 - Csaba Pinter

status: changed from “Test” to “Fixed”

2015-04-08, 16:32:58 - Greg Sharp

Ha ha, I just created a separate ticket for that. Closing this one.

2015-04-08, 16:33:36 - Csaba Pinter

:)

#668 Save study and series tags to exported RT files

Only patient name and ID are passed, it would be good if more tags could be used.

2014-11-05, 16:57:33 - Csaba Pinter

description: changed from “Only patient name and ID ar…” to “Only patient name and ID ar…”

2014-11-21, 01:09:27 - Greg Sharp

Re #668 Incremental work toward adding these additional fields to export Commit: r:2040|slicerrt:2040

2015-01-13, 21:08:52 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.15 (DICOM export)” to “SlicerRt 0.16”

2015-01-28, 17:44:13 - Greg Sharp

There needs to be an API added to plastimatch to set the study UID

2015-01-28, 17:45:09 - Csaba Pinter

OK, I’m not going to create a new ticket then.

2015-01-28, 17:45:23 - Csaba Pinter

description: changed from “Only patient name and ID ar…” to “Only patient name and ID ar…”

2015-06-04, 22:14:26 - Csaba Pinter

Moved to 0.18

2015-06-04, 22:14:26 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.16” to “SlicerRt 0.18”

2015-11-22, 02:48:59 - Csaba Pinter

description: changed from “Only patient name and ID ar…” to “Only patient name and ID ar…”

2015-11-22, 02:51:29 - Csaba Pinter

@gregsharp Do you think it would be hard to add these tags to the exported files? One of our new projects involves exporting RT, and at least the specified six tags would be ultimately necessary. Thank you!

2015-12-09, 20:40:02 - Greg Sharp

Sorry, I didn’t see this. It is not so difficult. Which are the attributes you would like to support?

2016-03-18, 15:45:28 - Csaba Pinter

Re #668: Fix inconsistency between scalar volume and RT object DICOM load. In the Slicer core implementation (DICOMPlugin.py) the study instance UID and study ID are set as attributes to the study SH node, but in SlicerRT these were not set. So it depended on the (non-deterministic) order of loaded DICOM series whether these IDs were added or not. Now these two attributes are added to RT objects as well. Commit: r:2732|slicerrt:2732

2016-03-18, 15:49:01 - Greg Sharp

You just beat me! I will commit and merge, then update to use exportable instead of SH as a separate commit.

2016-03-18, 15:49:59 - Greg Sharp

Re #668 Export all study-level tags Commit: r:2733|slicerrt:2733

2016-03-18, 15:55:36 - Csaba Pinter

OK. This is more a cosmetic change, and in fact I should have removed those two attributes from the Slicer core implementation, because they are not really attributes but rather tags. Anyway these shouldn’t influence your work, as even if you use SH, UID should be used instead of attribute.

2016-03-19, 18:41:38 - Csaba Pinter

Thi may fix Slicer issue http://www.na-mic.org/Bug/view.php?id=3937

2016-03-26, 00:08:21 - Greg Sharp

Re #668 Add support for image series tags at export Commit: r:2762|slicerrt:2762

2016-04-07, 14:58:56 - Csaba Pinter

@gregsharp I’ve exported RT studies with the latest revision, and what I found is that the PatientName, PatientID tags, and the StudyID attribute (maybe more, but haven’t tested those) are not used any more. Also the Series number and description tags only work for the anatomical image, but not the dose and RTSS. It’s especially important to restore the usage of the patient and study tags, as anything I export is added into the same patient/study as what I loaded, and is very hard to see what’s old and what’s new.

2016-04-07, 14:58:56 - Csaba Pinter

status: changed from “New” to “Accepted”

2016-04-07, 15:41:26 - Csaba Pinter

The metadata seems to be passed alright to the writer. Maybe I should create a new Study node so that the DICOM importer doesn’t automatically put it in the same study (inder the same patient)? I’ll keep trying.

2016-04-07, 16:52:39 - Csaba Pinter

Yes, if I create a new Study, then it appears under the new patient too. This might be how the DICOM browser behaves, so probably there is nothing to do with the exporter. However I should improve the export feature to be more straightforward eventually.

2016-04-07, 16:58:52 - Csaba Pinter

Although dose and structure set series description and number are still needed.

2016-05-20, 16:43:59 - Greg Sharp

Fixed #668 DICOM export now sets series description and series number for image, dose and structure sets Commit: r:2860|slicerrt:2860

2016-05-20, 16:43:59 - Greg Sharp

status: changed from “Accepted” to “Fixed”

2016-05-20, 16:49:23 - Csaba Pinter

Thanks a lot!

2016-05-20, 16:49:40 - Csaba Pinter

Have you tried it with the DICOM export window too?

2016-05-20, 16:58:26 - Greg Sharp

Yes, I exported using the DICOM export window, and viewed the results using DCMTK.

There are still some issues with DICOM export, but we make create new tickets for those.

From: Csaba Pinter (pinter) [mailto:slicerrt@alerts.assembla.com] Sent: Friday, May 20, 2016 12:50 PM

#669 RT export plugin overwrites existing exported files

DICOM-RT export uses simple file names (dose.dcm, rtss.dcm, imageNNN.dcm) which often overwrites files with the same name in the same folder.

Unique file names should be generated (either globally, generated from the instance UID; or some prefix should be added to the default filenames if a filename exists already).

2014-11-05, 22:19:53 - Greg Sharp

Agree. This will need a patch to plastimatch.

2014-11-06, 23:57:20 - Csaba Pinter

assigned_to_id: changed from null to “gregsharp”

2014-11-06, 23:57:20 - Csaba Pinter

milestone_id: changed from null to “SlicerRt 0.15”

2014-11-06, 23:58:01 - Csaba Pinter

Component: changed from “SlicerRt modules” to “Plastimatch”

2014-11-18, 20:39:01 - Greg Sharp

Test #669 Bump plastimatch version number to incorporate fix that appends image or series UID to filename Commit: r:2037|slicerrt:2037

2014-11-18, 20:39:01 - Greg Sharp

status: changed from “New” to “Test”

2014-11-18, 20:48:27 - Csaba Pinter

Great, thanks!

2014-12-17, 15:36:30 - Greg Sharp

status: changed from “Test” to “Fixed”

#670 Update SRO import/export to work with the new export mechanism

See DicomRtImportExport module changes.

(It’s in the branch https://subversion.assembla.com/svn/slicerrt/branches/DICOMExport/ and not integrated yet, but will be in a few weeks, so either work in that branch or wait until it’s integrated)

2014-12-02, 22:39:48 - Csaba Pinter

@wangk The DICOM export branches have been integrated. You can see that the modules DicomRtImport and DicomRtExport have been merged to one called DicomRtImportExport, and the two logic classes were also merged quite simply. Can you please do the same for SRO imort/export too? Thanks!

2014-12-11, 19:49:21 - Csaba Pinter

Implementation in two phases 1A. Select one study that contains the transform and two volumes. The SRO export plugin identifies the moving image because its parent is the transform, and the other volume will be the fixed image. Problem: a temporary study needs to be created just for export 1B. Select only the transform. The SRO plugin identifies the moving image because its parent is the transform, and pops up a dialog with a short message and single combobox to select the fixed image.

  1. Multi-select nodes by checkboxes (or multi-select): Select the transform and two volumes. The SRO plugin does the same as in 1A, but the tree doesn’t have to be reorganized. Problem: Checkboxes and multi-selection is not implemented. I suggest doing 1A or 1B first (1B is probably better), then once I implemented the multi-selection or the checkboxes, go with option 2.

Export volumes from SRO plugin: As one plugin needs to export all the objects that reference each other (so that the UIDs can be connected), the SRO plugin has to claim the volume nodes too for export, with a reasonable confidence (so that the SRO plugin has the higher combined confidence with a transform and two volumes, but ScalarVolume has higher confidence when choosing volumes only). So the SRO plugin has to export these volumes in one way or the other

  1. Call ScalarVolumePlugin::export() Any DICOM plugin can be accessed from python by its name, which is known. Problem: Need to know the series instance UIDs of the expored volumes (read the file back maybe? Not quite elegant).
  2. Call the Plastimatch exporter just as the RT plugin does.

2014-12-11, 19:49:21 - Csaba Pinter

assigned_to_id: changed from null to “wangk”

2014-12-11, 19:49:21 - Csaba Pinter

status: changed from “New” to “Accepted”

2014-12-11, 20:16:44 - wangk

I think the current dicom export plugin mechanism needs a bit improvement. this dicom plugin framework works fine for import but not for export as during export all the UIDs have to be created using different plugins and exchanged to other plugins for reference.

I propose to have a more feature-rich dicom export module, in which the patient, study and series dicom modules can be created and all the UIDs are stored centrally. on the other side, we will have much leaner export plugin which takes the patient, study and series meta data generated by dicom export module and write out the specific dicom files.

I think it would be good to discuss this with @gregsharp and @pieper.

2014-12-11, 20:16:44 - wangk

CommentContent: changed from “I think the current dicom export plugin mechanism needs a bit improvement. this dicom plugin framework works fine for import but not for export as during export all the UIDs have to be created using different plugins and exchanged to other plugins for” to “I think the current dicom export plugin mechanism needs a bit improvement. this dicom plugin framework works fine for import but not for export as during export all the UIDs have to be created using different plugins and exchanged to other plugins for”

2015-01-13, 21:08:52 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.15 (DICOM export)” to “SlicerRt 0.16”

2015-02-11, 17:44:13 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.16” to “SlicerRt 0.18”

2015-07-16, 22:15:29 - Csaba Pinter

status: changed from “Accepted” to “New”

2015-07-30, 17:10:25 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.18” to “SlicerRt 0.19”

2016-07-18, 14:48:43 - Csaba Pinter

assigned_to_id: changed from “wangk” to null

2017-05-01, 15:15:59 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.19” to “SlicerRt 1.1”

#671 Sequence number not always added to node name

Sequence number is not displayed in SH: the CT in this SlicerRT data set: pinnacle3-8.2g-phantom-chest Node name: 2: 5mm/C- Name in SH tree: 5mm/C-

2014-12-02, 22:45:46 - Csaba Pinter

Fixed in Slicer revision 23810 (DICOM export integration). The series node name is not constructed again in the DICOM plugin, but the name that was assembled at the time of loadable creation is used, so the missing (or doubled) series number issue is solved.

2014-12-02, 22:45:46 - Csaba Pinter

status: changed from “New” to “Fixed”

#672 Optimize registration parameters for automatic registrations

With the new BrainsFit algorithm, the default parameters don’t always work well, the registration can take forever on older PCs or in Debug mode.

2014-11-07, 21:48:14 - Csaba Pinter

Re #672: Changed sampling percentage parameter for NA-MIC self test to make registration faster (the quality of the registration remains about the same) Commit: r:2013|slicerrt:2013

2014-11-07, 21:50:42 - Csaba Pinter

Fixed #672, Fixed #673: Center 3D view after gamma computation in gel dosimetry. Changed sampling percentage parameter for gel dosimetry to make registration faster (the quality of the registration remains about the same) Commit: r:2014|slicerrt:2014

2014-11-07, 21:50:42 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

#673 Center 3D view after gamma computation

2014-11-07, 21:50:42 - Csaba Pinter

Fixed #672, Fixed #673: Center 3D view after gamma computation in gel dosimetry. Changed sampling percentage parameter for gel dosimetry to make registration faster (the quality of the registration remains about the same) Commit: r:2014|slicerrt:2014

2014-11-07, 21:50:42 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

#674 NA-MIC self test crashes on Mac

Does volume checkbox checking makes it crash. The crash develops like this: Checkbox::setChecked -> Widget::includeVolumeCheckStateChanged -> ParamNode::NodeReferenceRemoved -> ParamNode::Modified -> Widget::updateWidgetFromMRML -> Widget::refreshVolumesTable -> here the checkboxes are deleted and new ones are created, so the original checkbox will become invalid for which we called setChecked

2014-11-11, 18:31:05 - Csaba Pinter

Interesting why it doesn’t crash on Windows.

2014-11-11, 18:31:54 - Csaba Pinter

Fixed #674: Fixed NA-MIC self test Mac crash by calling MRML functions for dose accumulation checkbox checking; Minor improvements in refresh*Table methods of DoseAccumulation and Dvh to decrease unnecessary table refreshes Commit: r:2020|slicerrt:2020

2014-11-11, 18:31:54 - Csaba Pinter

status: changed from “New” to “Fixed”

#675 Add CLI outputs under the same subject hierarchy parent as the input

See the way Transform hierarchies are handled

2015-01-28, 17:30:45 - Csaba Pinter

Also copy some series-specific tags from the input to the output, such as FrameOfReferenceUID

2015-02-21, 23:00:18 - Csaba Pinter

This commit may be useful for passing subject hierarchies to CLIs http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=23976

2015-07-13, 14:25:28 - Csaba Pinter

Correspondence with Jim Miller about this (quite a while ago):

’ It just came to my attention a week ago that Slicer3’s behavior of modifying the transform hierarchy after a registration CLI was executed was never ported to Slicer4.

Unfortunately, the mechanism we used in Slicer3 to rewire the scene is not available in Slicer4.

But I was able to leverage infrastructure Julian recently submitted which provides a mechanism for VTK events in the processing thread to be diverted to the gui thread. Using this, I created a mechanism for a “one shot” event to be triggered in the processing thread but handled in the gui thread. The one shot mechanism passes a function object (callback) as the calldata to a generic one shot handler.

Jiggering the code a little bit, I think we have a platform on which we can support a wider range of scene edits at the conclusion of a CLI.

For example, if our modules used XML like

<image reference=”inputVolume”> outputVolume </image>

Then we could automatically place the outputVolume in the same hierarchies as the inputVolume.

On the implementation side, we need to construct a function object (Command) whose Execute() method implemented the rewiring of the scene, similar to how the vtkSlicerCLIEditTransformHierarchyCallback rewires the transform hierarchy in vtkSlicerCLIModuleLogic.cxx.

Then another case needs to be added around line 2249 of vtkSlicerCLIModuleLogic.cxx to trigger the event. ‘

2015-11-06, 17:05:15 - Csaba Pinter

@lassoan Do you think this is something that we should do after or in course of this project? http://wiki.slicer.org/slicerWiki/index.php/Documentation/Labs/CLIInfrastructureCleanupAndRefactoring I could do something similar to this http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=23976, but not sure whether it would become obsolete not long after implementation.

2015-11-07, 01:41:42 - Andras Lasso

Since Subject Hierarchy is in the Slicer core, If there is no specific Slicerrt feature that requires this feature then this ticket can be closed or moved to the Slicer bugtracker.

About implementation: We don’t need miniscenes for this (unless we want to create custom Subject Hierarchy node hierarchy), that would be way too complicated. The mechanism would be more similar to how reference attribute is used for transforms. If a reference is specified then the output image is placed into the same place in the transform hierarchy where the referenced image is. Probably it would be better to add a new attribute (subjectReference, subjectHierarchyReference) that would indicate that the output node has to be moved to the same branch in the subject hierarchy where the referenced node is.

2015-11-17, 18:16:25 - Csaba Pinter

Slicer topic branch: https://github.com/cpinter/Slicer/tree/subject-hierarchy-cli

2015-11-17, 18:16:25 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2015-11-17, 18:16:25 - Csaba Pinter

status: changed from “New” to “Accepted”

2015-11-18, 20:22:43 - Csaba Pinter

  1. ModelMaker support is not yet implemented but would be nice to add children of the model hierarchy node under the labelmap
  2. Modules/CLI/FreesurferSurfaceSectionExtraction seems to be empty. It would make sense to remove dead code

2015-11-18, 20:29:40 - jchris

Hi Csaba,

Regarding ModelMaker, I would like to point to your attention:

http://www.na-mic.org/Bug/view.php?id=4081

Thanks

Jc

2015-11-19, 17:22:44 - Csaba Pinter

Thanks, Jc! I looked at how I can add support for the same SH references for models/volumes coming from miniscenes, and it is not straightforward. I will check it out again once these changes are integrated.

2015-11-19, 17:22:57 - Csaba Pinter

Pull request for the SH CLI support: https://github.com/Slicer/Slicer/pull/414

2015-11-19, 17:22:57 - Csaba Pinter

status: changed from “Accepted” to “Test”

2015-12-01, 19:14:33 - Csaba Pinter

Integrated in commits http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=24798 and http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=24799

2015-12-01, 19:14:33 - Csaba Pinter

status: changed from “Test” to “Fixed”

2015-12-02, 03:39:04 - Csaba Pinter

Re #675: Updated SlicerRT to follow Slicer core changes; Fixed linux build warnings Commit: r:2511|slicerrt:2511

#676 Subject hierarchy usability issues

Major shortcomings of subject hierarchy need to be fixed:

2014-11-15, 02:23:56 - Csaba Pinter

Re #676: Follow Slicer core change to automatically create subject hierarchy node if a data node is added that is supported in subject hierarchy; Contours code simplified by using utility functions where possible; RT structure set no longer child of anatomical volume (that kind of parenting is not standard anyways, and causes discrepancy - same change made in DICOM export branch earlier, but here the dummy node is completely removed) Commit: r:2034|slicerrt:2034

2014-11-17, 17:52:28 - Csaba Pinter

description: changed from “Major shortcomings of subje…” to “Major shortcomings of subje…”

2014-11-18, 17:34:30 - Csaba Pinter

Re #676, re #115: Fix DicomRtImportSelfTest (follow Slicer core changes). Fix linux build warning Commit: r:2036|slicerrt:2036

2014-11-19, 18:31:35 - Csaba Pinter

description: changed from “Major shortcomings of subje…” to “Major shortcomings of subje…”

2014-11-19, 20:29:41 - Csaba Pinter

description: changed from “Major shortcomings of subje…” to “Major shortcomings of subje…”

2014-11-19, 20:29:46 - Csaba Pinter

status: changed from “New” to “Accepted”

2014-11-19, 22:46:17 - Csaba Pinter

description: changed from “Major shortcomings of subje…” to “Major shortcomings of subje…”

2014-11-20, 22:13:03 - Csaba Pinter

All the Mantis issues above have been fixed

2014-11-20, 22:13:03 - Csaba Pinter

description: changed from “Major shortcomings of subje…” to “Major shortcomings of subje…”

2014-11-20, 22:13:52 - Csaba Pinter

Fixed #676: Follow Slicer core changes related to subject hierarchy usability Commit: r:2038|slicerrt:2038

2014-11-20, 22:13:52 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

2014-12-02, 19:10:04 - Csaba Pinter

Re #676: Fixed automatic tests failing due to Subject hierarchy changes

Commit: r:2048 slicerrt:2048

2014-12-02, 22:04:49 - Csaba Pinter

Re #676: Fix gel dosimetry to follow SlicerRT changes Commit: r:2049|slicerrt:2049

#677 Allow selecting optCT volumes from nodes

Sometimes the user doesn’t load the data from files, but a saved scene

2015-05-11, 20:13:13 - Csaba Pinter

status: changed from “New” to “Accepted”

2015-05-13, 19:34:58 - Csaba Pinter

status: changed from “Accepted” to “Test”

2015-05-14, 21:48:11 - Csaba Pinter

status: changed from “Test” to “Fixed”

#678 Logic functions not accessible from python

Output argument for error message prevents calling those functions from python

2014-11-13, 20:13:18 - Csaba Pinter

Re #678: Logic processing methods changed to return error string instead of changing an output argument Commit: r:2022|slicerrt:2022

2014-11-13, 20:52:30 - Csaba Pinter

Re #678: Use QList in qMRMLContourSelectorWidget instead of std::vector Commit: r:2023|slicerrt:2023

2014-11-13, 22:42:11 - Csaba Pinter

status: changed from “Accepted” to “Test”

2014-11-14, 14:15:53 - Csaba Pinter

All tests pass, closing as fixed

2014-11-14, 14:15:53 - Csaba Pinter

status: changed from “Test” to “Fixed”

#679 RTSTRUCT import fails with tilted planes

Method to reproduce:

(1) Load rbergen image set [1] (2) Draw contour on single axial slice using editor (3) Put contour into structure set (4) DICOM-RT export (5) Close scene (6) DICOM-RT import

Steps (1)-(4) are known to produce tilted structure set that can be loaded on MIM.

[1] https://www.assembla.com/spaces/slicerrt/documents/dCU1nAoPqr5juiacwqjQWU/download/dCU1nAoPqr5juiacwqjQWU

Discussion about this issue: https://www.assembla.com/spaces/slicerrt/messages/4630663

2014-11-20, 22:48:22 - Csaba Pinter

milestone_id: changed from null to “SlicerRt 0.15”

2014-12-02, 22:49:40 - Csaba Pinter

According to the latest discussions, the volume is not properly loaded, not the structure set. It is needed to fix the scalar volume import plugin, so that in case of a non-identity geometry, the geometry information is converted into a transformation matrix, which is applied to the loaded volume in the scalar volume plugin in the form of a parent transform. Or maybe just an IJK to RAS matrix, it needs to be decided, but I think IJK2RAS would be a better choice as this information is specific to the volume and should not be stored in two different objects that moreover can be detached from each other.

At the Slicer hangout we agreed that Kevin finds out how to assemble such a matrix from the DICOM tags of the volume, and I will apply it in the scalar volume DICOM import plugin.

2014-12-03, 00:32:39 - Andras Lasso

DICOM volume loading with tilted planes used to work well. Is this a recent regression?

2014-12-03, 17:25:25 - Csaba Pinter

description: changed from “Method to reproduce:

(1) L…” to “Method to reproduce:

(1) L…”

2014-12-03, 19:47:13 - Csaba Pinter

I checked and it works well indeed, no need to change. I must have misunderstood something.

2014-12-03, 22:25:37 - Csaba Pinter

Contours can now be created, export works as expected, import gives us back the same data without problems.

2014-12-03, 22:25:37 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2014-12-03, 22:25:37 - Csaba Pinter

status: changed from “New” to “Test”

2014-12-04, 21:45:42 - Greg Sharp

I am not able to confirm your good result. Cannot even do the export any more.

I used to be able to create a structure set in the Subject Hierarchy window. But I can’t do this any more. How can I do it?

2014-12-04, 21:52:49 - Csaba Pinter

It was renamed to contour set about a year ago and can only be created under studies.

2014-12-04, 22:01:51 - Greg Sharp

Awesome. Thanks! I don’t know how I missed it.

2014-12-04, 22:03:31 - Greg Sharp

When I drag my labelmap onto the contour set, it disappears. Is it supposed to do that?

2014-12-04, 22:04:53 - Csaba Pinter

No, it should turn to a contour node. It works well on my computer. Did you update both Slicer and SlicerRT? I fixed it yesterday

2014-12-04, 22:07:10 - Greg Sharp

Updated 20 mins ago. I will give you screenshots (before and after).

2014-12-04, 22:09:26 - Csaba Pinter

Here’s how I do it: http://screencast.com/t/FhQc5PrrcyKc

2014-12-04, 22:11:29 - Greg Sharp

Ah, it does disappear in your video too!

2014-12-04, 22:12:11 - Greg Sharp

Look at 0:33

2014-12-04, 22:16:07 - Csaba Pinter

It turns into a contour node :) This is a feature we’ve had since the old Patient Hierarchy times.

2014-12-04, 22:17:11 - Csaba Pinter

You can get back the labelmap from it any time by right-clicking and choosing Extract labelmap representation (or similar)

2014-12-04, 22:30:02 - Greg Sharp

But why doesn’t it stay in labelmap representation and stay visible? This seems a bug to me.

Anyway, I agree the original problem is resolved. Thanks for fixing!

2014-12-04, 22:30:02 - Greg Sharp

status: changed from “Test” to “Fixed”

2014-12-04, 22:32:19 - Csaba Pinter

It’s still a labelmap essentially, but in a contour node. This is how it has always been. We can discuss this if you want. Thanks for testing!

#680 Save & Reload causes structure colors to be gray

Steps to reproduce

(1) Load Eclipse Prostate phantom data (2) Save scene to disk (3) Close scene (4) Open scene

Color of structures will be gray.

2014-11-21, 00:12:00 - Csaba Pinter

I’m not going to fix this issue in the Contours, but will make sure the new Segmentation doesn’t produce it. Thanks for reporting!

2014-11-21, 00:12:07 - Csaba Pinter

milestone_id: changed from null to “SlicerRt 0.15”

2015-01-13, 21:09:15 - Csaba Pinter

Component: changed from null to “SlicerRt modules”

2015-01-13, 21:09:15 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2015-01-13, 21:09:15 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.15 (DICOM export)” to “SlicerRt 0.17 (Segmentations)”

2015-01-13, 21:09:15 - Csaba Pinter

status: changed from “New” to “Invalid”

#681 Contour ribbons span three slices due to incorrectly computed slice thickness

Test dataset (from QIN) cannot be shared.

2014-11-26, 21:29:54 - Csaba Pinter

CommentContent: changed from “Test” to null

2014-12-12, 22:54:06 - Csaba Pinter

description: changed from “Dataset coming up.” to “Test dataset (from QIICR) c…”

2014-12-12, 23:14:48 - Andrey Fedorov

Csaba, to clarify, the datasets that cannot be shared are not from QIICR. These are segmentations that are being prepared by participants in a QIN phantom segmentation challenge. Indeed, at the moment at least, the access to these datasets is restricted to QIN. We can discuss with Christian at SLC (he will be there) making one dataset publicly available. I really do not see any problem whatsoever in doing this. I am happy to approach the site that produced that dataset directly, I know most of those people.

2014-12-12, 23:22:46 - Csaba Pinter

The issue is that the contours are not stored in order of the planes, and the algorithm does not reorder them. Need to reorder planes before computing distance between adjacent ones.

2014-12-12, 23:22:51 - Csaba Pinter

status: changed from “New” to “Accepted”

2014-12-12, 23:26:36 - Csaba Pinter

@fedorov Thanks for the clarification! As this is the very first dataset with this issue, we would need to use it for testing to make sure RTSS files written this way can be read in the future. I fix it now anyways.

2014-12-12, 23:26:43 - Csaba Pinter

description: changed from “Test dataset (from QIICR) c…” to “Test dataset (from QIN) can…”

2014-12-13, 00:37:40 - Csaba Pinter

image:a-LNoYGMar5ipdacwqjQWU

2014-12-13, 00:37:40 - Csaba Pinter

Attachment added: “20141212_ContourSpacingFix.png”

2014-12-13, 00:41:31 - Csaba Pinter

Test #681: Structure set reading fixed for those datasets where the contours are not listed in order. THe new algorithm orders the planes before computing the slice thickness. Commit: r:2067|slicerrt:2067

2014-12-13, 00:41:31 - Csaba Pinter

status: changed from “Accepted” to “Test”

2014-12-13, 00:42:16 - Csaba Pinter

Re #681: Bump version number for patch release Commit: r:2068|slicerrt:2068

2014-12-13, 00:47:31 - Csaba Pinter

Released SlicerRT 0.14.10, please test and close if OK. Thanks!

2014-12-13, 17:12:42 - Andrey Fedorov

Tested in Dec 13, 2014 nightly, works. Thank you!

2014-12-13, 17:12:42 - Andrey Fedorov

status: changed from “Test” to “Fixed”

2014-12-15, 20:27:28 - Csaba Pinter

Re #681: Fix contour plane thickness inconsistency check in RT struct loading Commit: r:2071|slicerrt:2071

#682 Creating contour by drag&drop in subject hierarchy does not work

Two SH nodes are created and neither of them are really functional

2014-12-03, 22:17:38 - Csaba Pinter

Fixed #682: addNodeToSubjectHierarchy removed from ContourSet SH plugin as it is never called (there are no potential nodes any more, SH nodes are automatically created for supported data nodes). Its functionality is handled by reparentNodeInsideSubjectHierarchy. ContoursLogic::CreateContourFromRepresentation changed so that it sets up the automatically created SH node. Version increased because this has to be released. Commit: r:2052|slicerrt:2052

2014-12-03, 22:17:38 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

#683 Use the enhanced NRRD reader-writer functions

Added enhanced NRRD IO functions (support 4D data, custom fields, fields with special characters in their names): SlicerRtSandbox\MatlabScripts
rrdIO

use these functions in cli_imageread and cli_imagewrite.

2015-01-21, 18:17:06 - Andras Lasso

Already the new NRRD IO functions are used

2015-01-21, 18:17:06 - Andras Lasso

status: changed from “New” to “Fixed”

2015-01-21, 18:20:19 - Andras Lasso

re #683: Updated NRRD reader/writer to latest version Commit: r:2097|slicerrt:2097

2015-01-21, 18:21:33 - Andras Lasso

re #683: Updated extension version to 0.13.0

Commit: r:2098 slicerrt:2098

#684 Add line profile feature to Gel Dosimetry

Use previous work SlicerRt\SlicerRt\sandbox\LineProfile

2014-12-12, 21:57:13 - Csaba Pinter

Test #684: Line profile tool added to GelDosimetry Commit: r:2066|slicerrt:2066

2014-12-12, 21:57:13 - Csaba Pinter

status: changed from “New” to “Test”

2014-12-22, 18:55:24 - Csaba Pinter

status: changed from “Test” to “Fixed”

#685 Split subject hierarchy plugins into VTK and Qt parts

Easiest would be to have a VTK base plugin class and subclass it in the Qt abstract plugin, but not sure it’s doable. The other option is to have a VTK member for the VTK plugin class in the Qt plugin class.

2016-03-24, 17:33:37 - Csaba Pinter

priority: changed from “Normal (3)” to “Low (4)”

2016-07-26, 00:58:13 - Csaba Pinter

The same idea was considered and rejected when implementing the dose engine plugins for EBP. The reasons:

Closing as invalid

2016-07-26, 00:58:13 - Csaba Pinter

status: changed from “New” to “Invalid”

2016-07-26, 00:58:23 - Csaba Pinter

milestone_id: changed from “Future” to “SlicerRt 0.19”

#686 Handling connections better in DICOM export

Current possibility: one plugin offers all the objects to export, and maybe calls other plugins to do the actual export Problem: If we want to export a more complicated study, we cannot do that in one export session Possible fix: The plugins tell the central plugin handler their required connections. It collects them, and exposes some more advanced view to the user when selecting the plugins (step 2. of the export workflow, under the tree)

2015-01-07, 22:26:18 - Csaba Pinter

milestone_id: changed from “Future” to “SlicerRt 0.15”

2015-01-07, 22:29:58 - Csaba Pinter

Plan: http://www.na-mic.org/Wiki/index.php/2015_Winter_Project_Week:DICOM_References

2015-01-07, 22:29:58 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2015-01-07, 22:30:22 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.15” to “SlicerRt 0.16”

2015-01-07, 22:30:35 - Csaba Pinter

We’ll need multi-selection for this.

2015-06-04, 22:09:42 - Csaba Pinter

Moved to 0.19

2015-06-04, 22:09:42 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.18” to “SlicerRt 0.19”

2016-07-26, 00:45:19 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.19” to “SlicerRt 1.1”

#687 Add multiple line profile tool to slicelet, including export

Enable option for user to draw line profile, which can then plot any combination of the optical dose, planned dose, and gamma comparison values about that profile.

Allow for export of all the profiles as well.

2014-12-15, 20:47:52 - Kevin Alexander

Component: changed from null to “GelDosimetry”

2014-12-15, 20:48:19 - Kevin Alexander

milestone_id: changed from null to “GelDosimetry 0.4”

2014-12-15, 21:58:37 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2014-12-15, 21:58:37 - Csaba Pinter

milestone_id: changed from “GelDosimetry 0.4” to “GelDosimetry 0.3”

2014-12-15, 21:58:37 - Csaba Pinter

status: changed from “New” to “Accepted”

2014-12-15, 22:01:48 - Csaba Pinter

OK so what I understand you want:

Also what line resolution would you like as default? (There is a slider in the tool that lets you set how dense the sampling and so the plot and exported data points will be)

2014-12-16, 21:06:34 - Kevin Alexander

Correct. So the three volumes are:

Obviously, if Gamma is not calculated, it would not show on the plot. Gamma values wouldn’t appear very well on a plot of dose values anyways. If there is an easy way to activate/deactivate which profiles are shown/exported, that might be handy.

Line resolution: Start at 0.5 mm, which I believe is the raw resolution of the optical data?

Thanks.

2014-12-16, 21:09:09 - Csaba Pinter

Thanks!

2014-12-17, 22:22:23 - Csaba Pinter

Re #687, Test #689: Fixed automatic VFF node selection; Modified line profile so that it shows both dose volumes and the gamma if available; Lone profile now takes line resolution in mm rather than number of samples. Commit: r:2077|slicerrt:2077

2014-12-17, 23:41:20 - Csaba Pinter

Test #687: CSV export feature added to line profile tool Commit: r:2078|slicerrt:2078

2014-12-17, 23:41:20 - Csaba Pinter

status: changed from “Accepted” to “Test”

2014-12-18, 18:19:30 - Kevin Alexander

CommentContent: changed from “Great! The points parsed and I get the calibration curve. Thanks! I’ll start gathering data for the paper now.

The only minor issue is that the automatic VFF scaling is way off now, so when the calibration VFF is loaded all I see are grey squares for” to null

2014-12-18, 20:27:44 - Csaba Pinter

Have you had the chance to try the line profile and export? Anything to change/fix?

2015-01-14, 17:23:19 - Csaba Pinter

status: changed from “Test” to “Fixed”

#688 New Modus Optical CT VFF files cannot be read

2014-12-17, 15:40:47 - Csaba Pinter

Test #688: Removed restriction for Vff filter value, now any non-empty filter parameter is accepted. Commit: r:2074|slicerrt:2074

2014-12-17, 15:40:47 - Csaba Pinter

status: changed from “New” to “Test”

2014-12-17, 15:41:57 - Csaba Pinter

@kmalexander I removed the restriction, the Vff you sent me is loaded fine. Please close ticket if you think this is a good solution. Do you need a custom SlicerRT release? I’d rather not make a new release just for this. Your alternative is to use the previous versions with Ram-Lak filter.

2014-12-17, 15:46:53 - Kevin Alexander

No new release needed. I’ll just reconstruct them using RamLak. Thanks!

2014-12-17, 15:46:53 - Kevin Alexander

status: changed from “Test” to “Fixed”

2014-12-17, 15:54:30 - Csaba Pinter

Let me know if you need one after all. Thanks!

#689 Parse Calibration Dose Volume Error

VFF now loads fine, however the extension hangs when the ‘Parse Calibration dose volume’ button is pushed. This is using the latest build and the PY files that were sent to me on Dec. 15. Any ideas?

Python 2.7.3 (default, Dec 16 2014, 00:08:49) [MSC v.1500 64 bit (AMD64)] on win32

Pdd data successfully loaded from file ‘Z:/ACADEMIC/Workspaces/Kevin/Gel slicelet/Calibration Test/12MeV.csv’ Traceback (most recent call last): File ‘C:/Users/alexandk.KGH/AppData/Roaming/NA-MIC/Extensions-23830/GelDosimetryAnalysis/lib/Slicer-4.4/qt-scripted-modules/GelDosimetryAnalysis.py’, line 1146, in setCalibrationData autoWindowLevel.ComputeWindowLevel(self.calibrationVolumeNode) TypeError: ComputeWindowLevel argument 1: method requires a vtkMRMLScalarVolumeNode, a vtkMRMLScalarVolumeDisplayNode was provided. Traceback (most recent call last): File ‘C:/Users/alexandk.KGH/AppData/Roaming/NA-MIC/Extensions-23830/GelDosimetryAnalysis/lib/Slicer-4.4/qt-scripted-modules/GelDosimetryAnalysis.py’, line 1163, in onParseCalibrationVolume success = self.logic.getMeanOpticalDensityOfCentralCylinder(self.calibrationVolumeNode.GetID(), radiusOfCentreCircleFloat) File ‘C:\Users\alexandk.KGH\AppData\oaming
A-MIC\Extensions-23830\GelDosimetryAnalysis\lib\Slicer-4.4\qt-scripted-modules\GelDosimetryAnalysisLogic\GelDosimetryAnalysisLogic.py’, line 182, in getMeanOpticalDensityOfCentralCylinder calibrationVolumeImageData = calibrationVolume.GetImageData() AttributeError: GetImageData

2014-12-17, 18:08:27 - Csaba Pinter

Please don’t create a ticket until we confirmed that it’s a bug. We would probably be over number 2000 if all user questions ended up as tickets.

It seems that there was a wrong selection made at some point. Is this an issue only with the new OCT or do you have this with the older ones as well?

2014-12-17, 18:16:44 - Csaba Pinter

I see where it probably goes astray. I’ll change the code to be more robust.

2014-12-17, 18:16:44 - Csaba Pinter

status: changed from “New” to “Accepted”

2014-12-17, 22:22:23 - Csaba Pinter

Re #687, Test #689: Fixed automatic VFF node selection; Modified line profile so that it shows both dose volumes and the gamma if available; Lone profile now takes line resolution in mm rather than number of samples. Commit: r:2077|slicerrt:2077

2014-12-17, 22:22:23 - Csaba Pinter

status: changed from “Accepted” to “Test”

2014-12-18, 18:20:23 - Kevin Alexander

Great! The points parsed and I get the calibration curve. Thanks! I’ll start gathering data for the paper now.

The only minor issue is that the automatic VFF scaling is way off now, so when the calibration VFF is loaded all I see are grey squares for each plane.

2014-12-18, 19:08:00 - Csaba Pinter

Thanks for the update!

You say that it’s the y scaling that’s way off? We’ll probably need to adjust the fitting parameters. I cannot do it without your data, but it’s just playing with the numbers and setting some initialization based on personal hunch. What probably needs to be changed is line 275 and/or 276 in GelDosimetryAnalysisLogic.py (yScale parameter values). The initial value should be OK, as it’s dynamically computed from the maximums. I think it’s the scale that’s too low (line 276).

Can you give it a try? Thanks!

2014-12-18, 19:09:55 - Kevin Alexander

Sorry, I should have been more clear. I mean the visual representation in the three quadrants is solid grey. The automatic image scaling is off. You can’t see any optical information.

2014-12-18, 19:50:46 - Csaba Pinter

I see. Can you open a low priority ticket for the wrong VFF auto window/level issue? I say low priority, because it just means an extra few seconds of mouse operations (let me know if it’s about more), and I need to work on something else for the NA-MIC conference early January.

Also if the problem this ticket was created for is solved, then please close.

Thanks!

2014-12-18, 20:13:01 - Kevin Alexander

status: changed from “Test” to “Fixed”

#690 Wrong VFF auto window/level for new voxel value scaling

VFF auto window/level function is off since switching to new Vista scanner. OptCT values (attenuation values) are now on the order of 0.02.

Need sample VFF files for the different dynamic ranges so that the auto W/L algorithm can be tested on all of them.

Update: Support only the low dynamic range VFFs (0..0.5). The other one was an artificially scaled up format only used in KGH but is not used anymore.

2014-12-18, 20:18:02 - Csaba Pinter

Thanks for adding the ticket. I’ll look at the w/l settings of the VFF you gave me the other day, but probably not in the next few days if it’s ok.

2014-12-18, 20:19:06 - Kevin Alexander

Not to worry - the current functionality of the slicelet is fine and I can get what I need for the paper. Thanks!

2015-02-12, 16:04:25 - Csaba Pinter

priority: changed from “Low (4)” to “Normal (3)”

2015-02-12, 16:05:46 - Kevin Alexander

Just a note: The auto W/L is off for importing any VFF files - not just the calibration gel data.

2015-02-12, 16:11:20 - Csaba Pinter

Not true, the older VFFs with the old voxel value scaling load fine. It’s a problem with VFFs with the new scaling

2015-02-12, 16:13:41 - Kevin Alexander

Sorry - by ‘any’ I meant that its not just the calibration gel files that the auto W/L is incorrect for. The auto W/L is not correct for the plan gel distribution and the calibration gel. Just thought the title of this ticket may have been misleading.

Yes - the old VFFs are auto W/L correctly.

2015-02-12, 16:14:36 - Csaba Pinter

summary: changed from “Wrong VFF auto window/level for calibration” to “Wrong VFF auto window/level for new voxel value scaling”

2015-02-12, 16:18:40 - Csaba Pinter

OK, I changed the ticket name. Thanks!

2015-04-13, 21:12:03 - Csaba Pinter

Re #690: Further loosened the requirements of a valid VFF file due to a new input. Now parameters do not require to have values associated when parsing, and filter is not a mandatory header parameter. Commit: r:2218|slicerrt:2218

2015-06-22, 17:22:17 - Csaba Pinter

milestone_id: changed from “GelDosimetry 0.3 World Congress” to “GelDosimetry 0.4”

2015-07-08, 19:54:38 - Csaba Pinter

description: changed from “VFF auto window/level funct…” to “VFF auto window/level funct…”

2015-08-14, 21:47:15 - Csaba Pinter

description: changed from “VFF auto window/level funct…” to “VFF auto window/level funct…”

2017-04-20, 17:18:23 - Csaba Pinter

Test #690: Added custom auto window/level calculation for the VFF volumes

Slicer’s auto window/level method does not work for floating point volumes. A custom image accumulation is set up that is fed to the same window/level calculator Slicer uses. This pre- and post-processing of the histogram adds a workaround for floating point volumes Commit: r:3149|slicerrt:3149

2017-04-20, 17:18:23 - Csaba Pinter

status: changed from “New” to “Test”

2017-04-20, 18:50:33 - Csaba Pinter

Re #690: Fixed incorrect recovery of original voxel value for window/level Commit: r:3150|slicerrt:3150

2017-04-21, 16:23:45 - Csaba Pinter

Re #690, re #852: Removed custom window/level calculation, as the same method has been integrated to Slicer core (http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=25940), so the VFF volumes have improved auto window/level by default Commit: r:3151|slicerrt:3151

2017-04-21, 16:24:36 - Csaba Pinter

@kmalexander If you consider this a good enough improvement, please close this ticket as Fixed. Thanks!

2017-04-21, 16:27:22 - Csaba Pinter

Re #690: Improved volume node names for loaded VFF files

It was quite hard to decide which volume corresponds to which file, as the file name on the file system was usually different from the file name stored in the VFF metadata. Now the volume node name contains both in the style of ‘[actualFileNameNoExt] ([titleFromVffMetadataNoExt])’ Commit: r:3152|slicerrt:3152

2017-04-21, 18:00:34 - Csaba Pinter

status: changed from “Test” to “Fixed”

#691 DICOM-RT export crash with DICOM color string ‘0x0’

As reported in the plastimatch e-mail list.

https://groups.google.com/forum/#!topic/plastimatch/uYWHizbV-ks

2014-12-24, 14:41:05 - Greg Sharp

assigned_to_id: changed from null to “gregsharp”

2014-12-24, 14:41:44 - Greg Sharp

Fixed #691 Update plastimatch version to address color string crash Commit: r:2084|slicerrt:2084

2014-12-24, 14:41:44 - Greg Sharp

status: changed from “New” to “Fixed”

2014-12-24, 14:42:28 - Greg Sharp

milestone_id: changed from null to “SlicerRt 0.15”

#692 Re-saving of scene with sequence node creates an invalid scene

How to reproduce:

2015-01-07, 22:36:29 - Andras Lasso

re #692: Partial fix Commit: r:2089|slicerrt:2089

2015-01-09, 23:18:59 - Andras Lasso

re #692: Updated scene to work with latest Slicer trunk Commit: r:2090|slicerrt:2090

2015-01-09, 23:20:40 - Andras Lasso

re #692: Fixed sequence node loading Commit: r:2091|slicerrt:2091

2015-09-30, 21:34:06 - Andras Lasso

Not reproducible anymore

2015-09-30, 21:34:06 - Andras Lasso

status: changed from “New” to “Fixed”

#693 CMake 3 warnings

CMake Warning (dev) at /Users/cpinter/Devel/_Experimental/Slicer4cpF/Extensions/CMake/SlicerMacroGetCompilerName.cmake:7 (if): Policy CMP0054 is not set: Only interpret if() arguments as variables or keywords when unquoted. Run ‘cmake –help-policy CMP0054’ for policy details. Use the cmake_policy command to set the policy and suppress this warning.

Quoted variables like ‘EXTENSION_COMPILER’ will no longer be dereferenced when the policy is set to NEW. Since the policy is not set the OLD behavior will be used. Call Stack (most recent call first): /Users/cpinter/Devel/_Experimental/Slicer4cpF/Extensions/CMake/SlicerBlockUploadExtensionPrerequisites.cmake:10 (SlicerMacroGetCompilerName) /Users/cpinter/Devel/_Experimental/SsrtD/Slicer-build/UseSlicer.cmake:285 (include) VffFileReader/CMakeLists.txt:18 (include) This warning is for project developers. Use -Wno-dev to suppress it.

2015-01-14, 19:22:11 - Csaba Pinter

This warning originates from line 10 of Slicer4/Extensions/CMake/SlicerBlockUploadExtensionPrerequisites.cmake, which is SlicerMacroGetCompilerName(EXTENSION_COMPILER)

2015-01-14, 19:25:56 - Csaba Pinter

http://www.cmake.org/cmake/help/v3.1/policy/CMP0054.html

2015-01-14, 23:14:31 - Csaba Pinter

Another CMake warning:

2>CMake Warning (dev) at c:/d/Slicer4/CMake/SlicerMacroBuildQtModule.cmake:172 (add_library): 2> Policy CMP0038 is not set: Targets may not link directly to themselves. 2> Run ‘cmake –help-policy CMP0038’ for policy details. Use the cmake_policy 2> command to set the policy and suppress this warning. 2> Target ‘qSlicerPinnacleDvfReaderModule’ links to itself. 2>Call Stack (most recent call first): 2> c:/d/Slicer4/CMake/SlicerMacroBuildQtModule.cmake:313 (slicerMacroBuildLoadableModule) 2> PinnacleDvfReader/CMakeLists.txt:57 (slicerMacroBuildQtModule)

2015-01-19, 16:56:38 - Csaba Pinter

The warning originates from Slicer core. It needs to be fixed there

http://slicer-devel.65872.n3.nabble.com/CMake-warning-CMP0054-td4033262.html

2015-01-19, 16:56:38 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2015-01-19, 16:56:38 - Csaba Pinter

status: changed from “New” to “Invalid”

2015-01-21, 08:49:55 - jchris

The first warning related to SlicerMacroGetCompilerName is addressed by r23900 [1]

On the other hand, the warning related to policy CMP0038 is explained by the fact the variable MODULE_TARGET_LIBRARIES list qSlicer${MODULE_NAME}Module. After removing this extra line, the setting of the policy CMP0022 at the top could probably be removed.

Hth Jc

[1] http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=23900

2015-01-21, 16:42:49 - Csaba Pinter

Thanks a lot, Jc!

2015-01-21, 16:42:49 - Csaba Pinter

status: changed from “Invalid” to “Accepted”

2015-01-27, 15:34:08 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.15 (DICOM export)” to “SlicerRt 0.16”

2015-01-27, 15:34:25 - Csaba Pinter

summary: changed from “CMake warning in VffFileReader” to “CMake 3 warnings”

2015-01-28, 16:50:12 - Csaba Pinter

I did a clean build of Slicer and SlicerRT trunks, and aside from warnings in the third party libraries LibArchive (CMP0026), curl (CMP0054), GDCM (CMP0054), and SWIG (CMP0054) we don’t have any.

2015-01-28, 16:50:12 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

2015-01-28, 17:05:38 - jchris

Hi Csaba,

Could you provide me more details about the warnings in the thrid party libraries ?

If you are using the latest Slicer master, the curl and LibArchive warnings should be addressed.

See https://github.com/Slicer/curl/commits/curl-7_34_0-maint and https://github.com/Slicer/libarchive/commits/slicer-v3.0.4

2015-01-28, 18:13:39 - Csaba Pinter

I did use the latest Slicer master. Here are the messages I got:

16>—— Build started: Project: LibArchive, Configuration: Release x64 —— … 16>HEAD is now at 453b390… Fix CMP0026 warning related to usage of GET_TARGET_PROPERTY with LOCATION property … 32>CMake Warning (dev) at Modules/ThirdParty/GDCM/CMakeLists.txt:27 (if): 32> Policy CMP0054 is not set: Only interpret if() arguments as variables or 32> keywords when unquoted. Run ‘cmake –help-policy CMP0054’ for policy 32> details. Use the cmake_policy command to set the policy and suppress this 32> warning. 32> Quoted variables like ‘MSVC’ will no longer be dereferenced when the policy 32> is set to NEW. Since the policy is not set the OLD behavior will be used. 32>This warning is for project developers. Use -Wno-dev to suppress it. 32>CMake Warning (dev) at Modules/ThirdParty/GDCM/src/gdcm/CMakeLists.txt:194 (IF): 32> Policy CMP0054 is not set: Only interpret if() arguments as variables or 32> keywords when unquoted. Run ‘cmake –help-policy CMP0054’ for policy 32> details. Use the cmake_policy command to set the policy and suppress this 32> warning. 32> Quoted variables like ‘MSVC’ will no longer be dereferenced when the policy 32> is set to NEW. Since the policy is not set the OLD behavior will be used. … 34>CMake Warning (dev) at CMake/UseSWIGLocal.cmake:260 (IF): 34> Policy CMP0054 is not set: Only interpret if() arguments as variables or 34> keywords when unquoted. Run ‘cmake –help-policy CMP0054’ for policy 34> details. Use the cmake_policy command to set the policy and suppress this 34> warning. 34> Quoted variables like ‘r’ will no longer be dereferenced when the policy is 34> set to NEW. Since the policy is not set the OLD behavior will be used.

2015-01-28, 18:14:23 - Csaba Pinter

Would you like to have the whole build log or is this enough? Thanks!

2015-01-28, 18:15:12 - Csaba Pinter

The curl warning was a false alarm, it only said ‘HEAD is now at 0838470… Merge branch ‘fix-cmp0054-warnings’’

#694 Use CMake ExternalData command to download data for automatic logic tests

This is a relatively new CMake feature that would be nice to use. This will reduce source code size and simplify repository.

2015-04-23, 15:32:29 - Csaba Pinter

Using ExternalData for many files has a big overhead (re-generate MD5 sums and update in CMake files), so for DICOM data it would make sense to try to upload them as zip files and then extract it from the test program. Downloading big files may not be reliable on some internet connections, so caution must be used.

2015-06-04, 22:09:43 - Csaba Pinter

Moved to 0.19

2015-06-04, 22:09:43 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.18” to “SlicerRt 0.19”

2016-07-18, 14:49:25 - Csaba Pinter

priority: changed from “Normal (3)” to “Low (4)”

2016-07-26, 00:45:19 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.19” to “SlicerRt 1.1”

#695 Add support for referenced DICOM series for RT import

See Slicer core change https://github.com/fedorov/Slicer/commit/e8271c1d43664537b5a2e8d65a4ac460da5d0f2e

Add referenced series data in RT loadables, see example https://github.com/fedorov/Reporting/commit/d2b747263a84d6e3b94317fe318b92b5b27766b3

2015-02-12, 15:24:15 - Csaba Pinter

Fixed in rev2125 and rev2131

2015-02-12, 15:24:15 - Csaba Pinter

status: changed from “New” to “Fixed”

#696 Highlight referenced series nodes in subject hierarchy

When selecting a subject hierarchy node that has references to other DICOM series, then highlight those nodes if present in the hierarchy. See NA-MIC week project http://www.na-mic.org/Wiki/index.php/2015_Winter_Project_Week:DICOM_References

2015-01-17, 21:42:26 - Csaba Pinter

Need to set referenced series UIDs centrally in DICOMWidgets::loadCheckedLoadables

2015-01-19, 04:47:52 - Andrey Fedorov

Csaba, I am thinking it may be better to set referenced UIDs by the plugin. Instances referenced may correspond to multiple loadables, or perhaps only some instances would be parsed by the plugin, so setting centrally may not be reliable. What do you think?

2015-01-19, 14:49:12 - Csaba Pinter

Can you give examples? I’m not sure I completely understand.

Also you say instances? The nodes correspond to series. How do we reference instances?

2015-01-19, 22:00:23 - Andrey Fedorov

I see your point better now. You want to reference series instance UID, not UIDs of individual DICOM instances (one series can comprise of multiple DICOM instance).

I was thinking in terms of referencing instance UIDs, similar to what is currently done in Slicer - there is an attribute DICOOM.instanceUIDs that lists all instances that correspond to the individual slices of the volume.

The way references work in DICOM, they do not need to reference the whole series, as I understand. You can have a subset of instances from a series referenced from another DICOM instance. So what I am actually thinking now is that perhaps we should not list the referenced series UID, neither instance UIDs, but should instead maintain a list of Slicer MRML nodes that are referenced by a given node (not sure if this is better to be done at source or destination of reference). This way the reference is direct, and we can always get to the DICOM side of it, since individual MRML nodes should have DICOM.instanceUIDs populated by the plugin at the load time.

If we list all referenced instances (or all referenced series instance UIDs) at the time loadable is loaded, it may be meaningless and we may need to do additional parsing. Example: I have a segmentation object or RT structure set that references a subset of slices from a series, and those slices are not in the local database. Listing any of those UIDs in the MRML node attributes will not be of any use. But if we defer to the plugin, they will be referenced only if a loadable is successfully created.

Sorry if this is not clear, let me know if you would like to chat sometime, and I can try to explain better.

2015-01-19, 22:01:31 - Andrey Fedorov

As aside, it’s weird and confusing that I do not automatically follow a ticket I commented on ….

2015-01-19, 22:12:58 - Csaba Pinter

As I see now we have these options for referencing objects from a MRML node that represents a DICOM series we just loaded:

  1. MRML attributes containing Series UIDs
    • Uniquely identifies the referenced series, MRML nodes loaded from DICOM have their series UID stored so easy to find, Supports loading separately
    • Cannot reference subsets of series (i.e. set of instances)
  2. MRML attributes containing a list of instance UIDs
    • Can reference subsets of series (i.e. set of instances)
    • We’ll have to deal with referencing series separately (some objects only reference series, not instances), Need to find series (in order to find MRML node) based on these instance UIDs
  3. Use MRML references
    • Can referenre anything that is stored in a node (can be whole series or a subset of it)
    • Only works if we load the referencing and referenced objects the same time

I still vote for 1, unless there is a really good reson to be able to reference a set of instances instead of a whole series.

@pieper What do you think?

2015-01-28, 20:26:05 - Andrey Fedorov

Was checking if there are any updates on this issue.

I see your point Csaba about 3- and I agree with you. However, to your point 2-, we will have to deal with this one way or another, since scalar volumes reference instance UIDs, not series. And we really need those references, since we need to establish connection between image slice and instance. Perhaps we should consistently do both 1 and 2 from your list above?

I also agree it would be great if @pieper could chime in here.

2015-01-28, 20:30:09 - Csaba Pinter

Andriy,

Yes, thinking about it again it definitely makes sense to keep the instance UIDs. Not sure how to reference to them though. Maybe keep another UID type (SH has a map for UIDs) and check both when looking for references.

I was also checking on progress and I’m wondering when do you plan to integrate your branch to Slicer? I’d add the derivedItems list to the C++ loadables after the python one is in.

2015-01-28, 20:35:44 - Andrey Fedorov

Right now, ScalarVolume plugin populates DICOM.instanceUIDs attribute in vtkMRMLScalarVolumeNode. This is where Steve decided to put it.

I was waiting to hear from Steve first, that’s why didn’t do anything about integrating it. I guess I could create a pull request to integrate what I have, and we can update the references part whenever we make the decision what is the right way to do it?

2015-01-28, 20:38:33 - Csaba Pinter

Sounds good to me! Storing the inctance UIDs in the volume node is fine for now, but I’m thinking about storing both in SH for consistency and to avoid confusion. Svalar volume DICOM import sets up SH anyway so it should be no problem. We can also keep it both places to be backwards compatible.

2015-01-29, 15:30:56 - Csaba Pinter

@fedorov Thanks for integrating! I see that the loadables have a referencedInstanceUIDs, but apparently no referencedSeriesInstanceUIDs. Not all DICOM objects reference instances, sometimes they reference series (as I sort of implied above). If we want to make it clear what to look for when resolving the reference, then we need referencedSeriesInstanceUIDs. What do you think?

2015-01-29, 22:20:35 - Andrey Fedorov

Sorry, I thought we were talking about MRML node attributes, not loadable attributes.

Sure, but this would be initialized at the DICOM plugin level, not in the DICOMWidgets, right? I can add that in the SEG plugin. But then we yet have to agree once it is initialized on the plugin, where it should go in the MRML node, no?

I talked with Steve today about this, and he mentioned he sent an email with his point of view on this, but I do not see that email! I asked him to comment on this ticket thread. Very confusing. I think we should just get together to discuss this on the next SlicerRT hangout, what do you think?

2015-01-29, 22:40:59 - Csaba Pinter

Yes we were, it was just a related question, but we need to support them on both levels. I think it will need to be supported in the DICOMWidget too so that we populate the referenced list based on both. If your SegObj plugin references instances, then there’s nothing to do in that plugin. But I’ll need the referenced series list, because in RT there are references to series, but no references to instances, so it has to be handled in some way.

Alright, let’s talk about this at the hangout, I’ll invite you and Steve in case he can show up.

2015-01-30, 01:27:03 - pieper

(Hi - I responded to the email from assembla but it was dropped. I think it didn’t like that the email had been forwarded but it didn’t bounce. Anyway here’s the text).

Hi Csaba, Andrey -

Can we have a hangout to step through these issues? I suspect that to really do this correctly we need to have a kind of graph data structure that allows us to make sense of the relationships (like a provenance graph). I think we should try to diagram this by hand for a few of the key use cases.

I suspect in many cases we want to be able to present the user with information in both directions of the references: backward, as in ‘show the two volumes that were registered to create this SRO’ and forward as in ‘show me all segmentations of this volume’. Luckily I think for typical slicer work these graphs are not very big so the are fairly lightweight to construct and traverse.

2015-01-30, 01:35:07 - Csaba Pinter

Hi Steve, Going both directions may be quite slow, but yes. let’s talk about it. I’m free tomorrow after 2PM, Monday morning, or at the Slicer hangout. Andrey cannot make it to the SlicerRT one, so that’s out.

2015-01-30, 14:59:12 - Andrey Fedorov

Today after 2pm should be fine for me too.

2015-01-30, 15:06:57 - pieper

I could probably do 4:30. Would that work for you?

2015-01-30, 15:07:35 - Csaba Pinter

Sounds good to me!

2015-01-30, 15:07:39 - Andrey Fedorov

works for me

2015-01-30, 15:10:08 - Csaba Pinter

I created an event and invited you guys.

@gregsharp You got an invitation too incase you’d like to (and can) participate in this discussion about DICOM reference handling in Slicer.

2015-01-30, 23:09:12 - Csaba Pinter

My meeting minutes:

2015-01-30, 23:09:12 - Csaba Pinter

status: changed from “New” to “Accepted”

2015-01-30, 23:09:12 - Csaba Pinter

CommentContent: changed from “My meeting minutes:

2015-02-02, 22:40:22 - Csaba Pinter

Test #696: SOP instance UIDs are saved for loaded nodes and referenced DICOM instance UIDs are properly stored to allow highlighting of referenced DICOM objects in subject hierarchy Commit: r:2125|slicerrt:2125

2015-02-02, 22:40:22 - Csaba Pinter

status: changed from “Accepted” to “Test”

2015-02-02, 22:42:47 - Csaba Pinter

Highlight feature implemented in Slicer core in http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=23938

2015-02-04, 17:46:13 - Csaba Pinter

For the record, Andriy’s DICOM plugin using references https://github.com/fedorov/Reporting/blob/d2b747263a84d6e3b94317fe318b92b5b27766b3/Py/DICOMSegmentationPlugin.py

2015-02-04, 20:29:17 - Csaba Pinter

Re #696: Added missing DICOM references (RTDose->RTPlan) and implement reference discovery on examine time for the three supported references (RTSS->CT, RTDose->RTPlan, RTImage->RTPlan) so that the DICOM reference prompt window can be used for RT data. It is important to note that it works but it is disabled until the following issue is fixed: http://www.na-mic.org/Bug/view.php?id=3952 Commit: r:2131|slicerrt:2131

2015-02-05, 15:32:48 - Csaba Pinter

Re #696: Renamed variables to match the Slicer convention and the other similar variables’ names

Commit: r:2132 slicerrt:2132

2015-02-23, 20:47:38 - Csaba Pinter

Works for RT, and no issues have been reported in the three weeks since integrating, so closing as fixed

2015-02-23, 20:47:38 - Csaba Pinter

status: changed from “Test” to “Fixed”

2015-03-18, 17:40:08 - Csaba Pinter

Re #696: Re-enable DICOM reference discovery. If the user loads an RT file that references another that is not selected for loading, a window pops up to warn the user and allow selecting the referenced loadable. Commit: r:2179|slicerrt:2179

#697 Memory leak without doing anything

  1. Start Slicer with SlicerRT built with experimental modules
  2. Quit Slicer

I suspect some object around the external beam planning module is not cleaned up, see screenshot of the leak report below.

2015-01-17, 22:51:37 - Csaba Pinter

image:bKSW-KNPSr5kqxacwqjQWU

2015-01-17, 22:51:37 - Csaba Pinter

Attachment added: “20150117_SlicerRT_Leak.png”

2015-02-11, 17:45:19 - Csaba Pinter

Not happening any more, closing

2015-02-11, 17:45:19 - Csaba Pinter

status: changed from “New” to “Invalid”

this should apply to all projects not just SlicerRT core.

2015-01-21, 18:47:12 - Andras Lasso

Adding logos should be no problem in general (if there is space), but why would we remove SparKit? As far as I remember OCAIRO makes maybe 0.5 person contributon to, while SparKit funds 2.5 persons.

2015-01-21, 18:52:08 - wangk

@lassoan, you are correct that SparKit has more funding. however, I got the impression from you guys that you do not want to promote Sparkit in the media. Last time we talked about this and it is concluded that we should promote SlicerRT in all communicatioins. so if there is no need to promote SparKit, then I suggest we can use this space to promote OCAIRO. you can still mention SparKit in the extension acknowledge page. what do you think?

2015-01-21, 18:54:17 - wangk

also I think we should have a unified acknowledge paragraph so it is applied to all the projects we work on. right now the acknowledge statements varies from file to file.

2015-01-21, 19:01:25 - Csaba Pinter

I miss the point of promoting funding sources in the media. Why would we want to do that? We want to promote our product, and we are obligated to acknowledge some of the funding sources. If it was up to me, I wouldn’t even have sparkit in the logos, but the teams who created the products (like PerkLab, UHN, whatever).

2015-01-21, 19:10:31 - wangk

Fair enough. I like the idea of putting team instead of funding in logo. so another option is to put Techna logo there instead of OCAIRO. you can get the logo from www.technainstitue.com. UHN is too general and I think we want to be specific so techna would be better. again, it is up to you, if you like to keep the sparkit, that is ok too.

2015-01-22, 19:38:54 - Andras Lasso

We should be as inclusive as possible and acknowledge any support we get. The only constraint might be space - if there is not enough then we may need to be selective. But on the website, documentations, etc. it should be no problem to display any logo.

2015-01-26, 20:51:59 - wangk

@lassoan,

Yes, I agree. but since we only have this much real estate, so I think we should just include the organizations here (Perklab and Techna in this case to be consistent) the acknowledge section in the module can be used to give credits to the grants.

2015-02-03, 21:11:03 - Csaba Pinter

Test #698: Changed all extension logos to include OCAIRO instead of SparKit Commit: r:2128|slicerrt:2128

2015-02-03, 21:11:03 - Csaba Pinter

status: changed from “New” to “Test”

2015-02-04, 16:04:50 - Csaba Pinter

After a short discussion with Gabor, the original idea (adding OCAIRO instead of SparKit) was implemented. The logo changes will be applied on individual releases of the toolkits, we don’t plan to do a mass extension release just for this. @wangk If you agree, and the logos in the repo look good to you, please close the ticket

2015-02-04, 16:19:11 - wangk

very nice job. I am glad that Gabor supported the change. I will close the ticket.

2015-02-04, 16:19:17 - wangk

status: changed from “Test” to “Fixed”

2015-02-04, 16:24:04 - Csaba Pinter

Thanks, Kevin!

2015-02-11, 18:53:50 - Csaba Pinter

Re #698: Changed PyDevRemoteDebug logo to include OCAIRO instead of SparKit (I missed it when doing the others) Commit: r:2145|slicerrt:2145

#699 Off-center beam representation/polydata when importing

As reported by Ricardo in his message communication, the beams are not centered around the target.

see https://www.assembla.com/spaces/slicerrt/messages/5018543

2015-01-26, 20:39:01 - wangk

description: changed from “As reported by Ricardo in h…” to “As reported by Ricardo in h…”

2015-01-26, 20:41:05 - wangk

Test #699: Fixed the problems for importing dataset showing non centered beams.

This is only a first step to replace the beamslogic with externalbeamplanning logics. Commit: r:2106|slicerrt:2106

2015-01-26, 20:41:05 - wangk

status: changed from “New” to “Test”

2015-01-26, 20:43:32 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.15 (DICOM export)” to “SlicerRt 0.16”

2015-01-26, 20:43:53 - Csaba Pinter

Please don’t create tickets in closed milestones. I moved it to 0.16. Thanks a lot for fixing!

2015-01-26, 20:43:56 - Csaba Pinter

Component: changed from “Slicer core” to “SlicerRt modules”

2015-01-26, 20:47:19 - wangk

sorry, I did not know you have closed 0.15. I thought that is the current milestone you are about to release so I put this under it. thanks.

2015-01-26, 21:03:21 - Csaba Pinter

You’re right, sorry! It was not technically cloesd. Although I released 0.15 and I’m slowly working to make it compatible with Slicer 4.4 stable, this is why I haven’t closed it.

2015-02-11, 17:43:45 - Csaba Pinter

status: changed from “Test” to “Fixed”

#700 Beam geometry is not calculated correctly in external beam planning

the X1, X2, Y1, and Y2 parameters should be doubled to create the beam polydata for correct shape.

2015-01-26, 20:48:52 - wangk

status: changed from “New” to “Accepted”

2015-01-26, 20:49:57 - wangk

Test #700: Fixed the beam shape generation bug.

Also changed the opacity for generating DRR so it displays better. Commit: r:2107|slicerrt:2107

2015-01-26, 20:49:57 - wangk

status: changed from “Accepted” to “Test”

2015-02-11, 17:43:40 - Csaba Pinter

status: changed from “Test” to “Fixed”

#701 Read/write surface meshes in LPS coordinate system

Currently they are read/written in RAS coordinate system which is inconsistent with the rest of the cli_read/write functions, which all use LPS.

2015-01-27, 05:27:45 - Andras Lasso

fixed #701: cli_geometryread.m and cli_geometrywrite.m use LPS coordinate system. This change is not backward compatible, code that used these .m files have to be updated.

Also added a new function, cli_version.m for getting MatlabBridge version. Commit: r:2110|slicerrt:2110

2015-01-27, 05:27:45 - Andras Lasso

status: changed from “New” to “Fixed”

#702 DVH V and D metrics don’t show up

If I add a V or D metric a new column should appear in the DVH metric table but it doesn’t

2015-01-27, 19:43:10 - Csaba Pinter

Fixed #702: DVH special metrics V and D fixed Commit: r:2114|slicerrt:2114

2015-01-27, 19:43:10 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2015-01-27, 19:43:10 - Csaba Pinter

status: changed from “New” to “Fixed”

#703 Rename SlicerRT extension to ‘SlicerRT core’

At least in the extension manager description and the wiki pages. I think the logo is OK.

2015-02-12, 15:26:33 - Csaba Pinter

@lassoan How do you think I should do this? One or more or none of the following:

2015-02-16, 18:12:57 - Andras Lasso

I don’t see how would this help in anything. It should not be too difficult to understand that the SlicerRT kit consists of the SlicerRT extension (containing core features)and several additional extensions (containing specialized features).

2015-02-16, 18:26:22 - Csaba Pinter

We agreed with Kevin to make this change and the last paper I submitted calls the SlicerRT extension SlicerRT core. We can decide not to change anything, but let’s make the decision together. What I think would make sense is to change the extension name (set(EXTENSION_NAME SlicerRTcore)), but nothing else. I don’t insist on doing this either.

2015-02-17, 14:36:47 - wangk

I still think it is not very clear to most of the users. We should clearly say it either on the website or in the documentation that slicerrt is not just the slicerrt extension, it includes all the extensions we have developed.

on the other hand I agree that slicerrt core is probably not very good name. let us discuss this at our next weekly meeting.

Thanks,

Kevin

2015-02-17, 14:41:33 - Csaba Pinter

Well, I think that SlicerRT core is sort of the only possible name for the core extension. There are not many alternatives. SlicerRT base? Not very good. Maybe we could stick to SlicerRT, and as you mention, Kevin, we can add this information on the wikis.

2015-02-18, 17:15:56 - pzaffino

I think that it is preferable to not change the name, but it is just my opinion.

2015-02-23, 02:43:05 - Csaba Pinter

The majority votes on not to change the name. Additional information may be added to wiki pages, however the extensions relying on SlicerRT should already mention the dependency.

2015-02-23, 02:43:05 - Csaba Pinter

status: changed from “New” to “Invalid”

#704 Create Brachy treatment planning module

This is discussed at the 20150128 weekly meeting. Greg thinks it is relatively easy to do the dose calculation and it is also simple to add a python GUI around it. should be good.

#705 Create a Gamma Knife treatment planning module

Same as #704. discussed with Greg and should be relatively easy to do.

2015-01-28, 18:36:57 - wangk

Component: changed from null to “SlicerRt modules”

2015-01-28, 18:36:59 - wangk

milestone_id: changed from null to “Future”

#706 Add extract closed surface and planar ROI points feature to contours

Many users requested this feature lately so I decided to implement it.

2015-01-30, 16:04:31 - Csaba Pinter

Fixed #706: Added extract closed surface and DICOM-RT ROI points representations to model nodes in Contours module Commit: r:2121|slicerrt:2121

2015-01-30, 16:04:31 - Csaba Pinter

status: changed from “New” to “Fixed”

#707 Automatic CT-CBCT registration fails on new datasets

2015-01-30, 20:23:58 - Csaba Pinter

Fixed #707: Fixed CT-CBCT registration parameters for new datasets (works both with older ones and new ones) Commit: r:2123|slicerrt:2123

2015-01-30, 20:23:58 - Csaba Pinter

status: changed from “New” to “Fixed”

2015-01-30, 20:26:33 - Csaba Pinter

Explanation: Maximum step size was too small with the new datasets, because of the larger displacement. Because of the increased max. step size, we needed to decrease the relaxation factor to keep it fast, and increase transform scale to prevent unnecessary rotation.

#708 SlicerRT superbuild skips inner project with VS2012

After I update the source, the outer build does not build the inner one, I have to build it separately. Windows 8.1, VS2012

2015-06-02, 19:25:16 - Csaba Pinter

Test #708: Attempt to fix the issue that VS2012 superbuild skips inner sometimes; Fixed build error from last commit (that occurred in a subsequent clean build) Commit: r:2309|slicerrt:2309

2015-06-02, 19:25:16 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2015-06-02, 19:25:16 - Csaba Pinter

status: changed from “New” to “Test”

2015-06-02, 20:42:43 - Csaba Pinter

According to Andras the Slicer superbuild also tends to skip the inner project when building with VS2012.

2015-06-02, 20:42:54 - Csaba Pinter

status: changed from “Test” to “Accepted”

2015-06-02, 20:43:33 - Csaba Pinter

Jc might have some insight about this, as he is the CMake person for Slicer

2015-06-04, 22:14:26 - Csaba Pinter

Moved to 0.18

2015-06-04, 22:14:26 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.16” to “SlicerRt 0.18”

2015-06-22, 14:43:10 - Csaba Pinter

Test #708: Attempt to fix issue when VS2012 superbuild does not build inner project Commit: r:2329|slicerrt:2329

2015-06-22, 14:43:10 - Csaba Pinter

status: changed from “Accepted” to “Test”

2015-08-11, 14:12:52 - Csaba Pinter

This issue has not come up since the latest fix, the superbuild seems to build the inner project nicely now. I’m closing the ticket.

2015-08-11, 14:12:52 - Csaba Pinter

status: changed from “Test” to “Fixed”

2015-08-11, 14:12:52 - Csaba Pinter

CommentContent: changed from “This issue has not come up since the latest fix, I’m closing the ticket.” to “This issue has not come up since the latest fix, the superbuild seems to build the inner project nicely now. I’m closing the ticket.”

#709 Add Doxygen documentation for SlicerRT source code

Using doxygen will create a need for us to better document the C++ code. Plus we can throw in some extra user manual info into the html.

Plan on how to proceed:

first step is to manually generate the html and push to a website somewhere and have it link to Assembla. need to ask Andras about where to host it.

Next step to automatically generate the html.

at last is to add other user manual stuff to doxygen.

2015-02-04, 19:13:31 - Csaba Pinter

priority: changed from “Normal (3)” to “Low (4)”

2015-02-04, 19:14:02 - Csaba Pinter

I decreased the priority because I think it’s not as important as other features and bugs so it’d be good to keep them a bit separate.

2015-02-11, 17:43:55 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.16” to “SlicerRt 0.18”

2015-06-04, 22:09:43 - Csaba Pinter

Moved to 0.19

2015-06-04, 22:09:43 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.18” to “SlicerRt 0.19”

2015-12-04, 19:21:18 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.19” to “Future”

2015-12-04, 19:21:18 - Csaba Pinter

assigned_to_id: changed from “wangk” to null

#710 Use latest gamma algorithm from plastimatch

New gamma is committed in Plastimatch.

  1. Need to update Plastimatch in SlicerRT and make sure gamma works
  2. Support new options in Gel dosimetry slicelet a) Add option to use linear interpolation (new default) or nearest neighbor (old default) b) Add option to get output text from gamma algorithm after it finishes

Description of the new gamma (KGH comments under each in italics):

**

NOTE: ‘How to reproduce the same gamma results as before?’

1) DO NOT USE –interp-search , –local-gamma, –analysis-threshold, –inherent-resample

2) MUST USE –resample-nn and (conditionally, –compute-full-region) (if you are only concerned about gamma pass rate, –compute-full-region is not needed. Use it only when you want to have the same gamma-map as before.)

2015-02-06, 14:19:01 - Csaba Pinter

description: changed from “New gamma is committed in P…” to “New gamma is committed in P…”

2015-02-06, 14:19:27 - Csaba Pinter

description: changed from “New gamma is committed in P…” to “New gamma is committed in P…”

2015-02-06, 14:19:39 - Csaba Pinter

description: changed from “New gamma is committed in P…” to “New gamma is committed in P…”

2015-02-06, 14:20:20 - Csaba Pinter

description: changed from “New gamma is committed in P…” to “New gamma is committed in P…”

2015-02-06, 14:21:01 - Csaba Pinter

description: changed from “New gamma is committed in P…” to “New gamma is committed in P…”

2015-02-06, 21:10:01 - Csaba Pinter

Re #710: Use latest Plastimatch gamma algorithm in SlicerRT Commit: r:2136|slicerrt:2136

2015-02-06, 21:11:19 - Csaba Pinter

Test #710: Add gamma interpolation feature and ability to get gamma report in gel dosimetry Commit: r:2137|slicerrt:2137

2015-02-06, 21:11:19 - Csaba Pinter

status: changed from “New” to “Test”

2015-02-06, 21:11:50 - Csaba Pinter

Re #710: Increase gel dosimetry version number for release Commit: r:2138|slicerrt:2138

2015-02-11, 21:15:19 - Csaba Pinter

status: changed from “Test” to “Fixed”

#711 Integrate pencil beam algorithm into external beam planning

  1. Make Ricardo’s pencil beam dose computation algorithm a plugin of External Beam Planning module
  2. Use his experiences to improve EBP module interface
  3. Optionally keep the custom python module for wizard-like (slicelet-like) frontend, but keep internals in EBP

2015-02-11, 18:33:10 - rcorredorj

Just for the record, I’d be able to include the mechanism to calculate the pencil beams and the GUI. The particular beamlets’ or pencil beams’ profile should be precalculated or given by the user for a certain modality (photons or protons), as well as the dose calculation algorithm that will give the weights for each beamlet. All this process is very close to what it is described here in this article: Xuejun Gu, Dongju Choi, Chunhua Men, Hubert Pan, Amitava Majumdar, Steve B. Jiang. GPU-based ultra fast dose calculation using a finite pencil beam model. Physics in Medicine and Biology. 2009

#712 Add UseEpsilonValuesUnderAnalysisThreshold to Plastimatch gamma

A problem with using analytics threshold for gamma is that the values below that are set to zero, which, when showing it in Slicer in such a way that the background is transparent makes the values under the threshold also transparent. A possible solution is to use Epsilon (=very small value) insead of 0 for values under analysis threshold.

This could be implemented in Plastimatch gamma as a flag in the algorithm called UseEpsilonValuesUnderAnalysisThreshold or similar.

2015-02-14, 19:24:45 - Csaba Pinter

@gregsharp Do you think this makes sense? Do you mind if I add this feature to Plastimatch gamma? Thanks!

2015-04-01, 18:23:54 - Greg Sharp

Sure, sounds good.

2015-05-20, 16:21:38 - Csaba Pinter

@kmalexander Hi Kev, I’m reading this ticket and I don’t understand it quite well any more. Can you explain what the exact problem is? Thanks!

We at the SlicerRT weekly meeting are a bit confused if this is a problem with transparency, or being able to determine whether a voxel was included in the gamma computation.

2015-05-20, 16:21:38 - Csaba Pinter

CommentContent: changed from “@kmalexander Hi Kev, I’m reading this ticket and I don’t understand it quite well any more. Can you explain what the exact problem is? Thanks!” to “@kmalexander Hi Kev, I’m reading this ticket and I don’t understand it quite well any more. Can you explain what the exact problem is? Thanks!

We at the SlicerRT weekly meeting are a bit confused if this is a problem with transparency, or being able to”

2015-05-21, 23:26:48 - Kevin Alexander

When performing the gamma using a threshold dose value (i.e. 40% of maximum dose in the plandose), the resulting gamma distribution has black holes where gamma wasn’t calculated. It would be nice to have it set to 0 (i.e. green) even though the gamma technically wasn’t computed in those voxels (where the dose is less than the threshold). Make sense? I can generate some screengrabs tomorrow if that would help.

2015-06-04, 22:19:27 - Csaba Pinter

milestone_id: changed from “GelDosimetry 0.3 World Congress” to “GelDosimetry 0.4”

#713 Create ribbons using the actual normal vector of the contour planes

With non-LPS (para-tranversal) contour planes the ribbons are created so that they are ‘slanted’. Need to use the actual normal vector for creating ribbons

2015-02-18, 16:18:50 - Csaba Pinter

This has been fixed in #433. Need to check with that dataset again.

2015-02-18, 17:48:49 - Csaba Pinter

Re #713: Simplified ordered planes and normal vector computation for structure sets. Commit: r:2153|slicerrt:2153

2015-02-18, 18:22:21 - Csaba Pinter

Fixed #713: Turned off default normals for ribbon creation, so that the ribbons are generated with the proper orientation. What is very strange is that the normal that is provided by the reader is the same that is computed by the ribbon filter internally, still, the result is different! May it be because the Slicer one is in this form (x,y,z) and the internal ribbon one is (-x,-y,z)? It worked well before, I wonder if this regression is due to the VTK6 upgrade. Commit: r:2154|slicerrt:2154

2015-02-18, 18:22:21 - Csaba Pinter

status: changed from “New” to “Fixed”

2015-02-18, 18:23:45 - Csaba Pinter

Re #713: Added comment about the issue mentioned in last commit message in the code itself Commit: r:2155|slicerrt:2155

2015-02-19, 15:23:14 - Csaba Pinter

Re #713: The mystery mentioned in rev2154 and 2155 solved, LPS-RAS conversion was simply missed out from normal vector computation code Commit: r:2157|slicerrt:2157

2015-02-19, 15:44:12 - wangk

Well, I thought this should already be in place in the code but apparently we are missing it for some data. Good to know.

2015-02-19, 17:20:28 - Csaba Pinter

It was just for the ribbon normals. So the data was located fine, but the ribbons were not well oriented in case of non-axial ribbon planes. Unfortunately there are still some minor issues, I’ll fix them soon.

2015-02-19, 17:41:38 - Csaba Pinter

Re #713: Reverting to use per-contour normal vectors for ribbonization, to handle cases there the contour planes within a structure are not parallel (also the first normal may be invalid, ant that one is used; majority calculation could solve this issue on the long run if needed) Commit: r:2158|slicerrt:2158

#714 Add option to input calibration function

Add input fields for a linear function (slope and intercept) that would override the current calibration routine, if a user doesn’t want to perform a calibration, but wants to input a pre-determined calibration function.

2015-02-20, 02:32:32 - Kevin Alexander

milestone_id: changed from “GelDosimetry 0.4” to “GelDosimetry 0.3”

2015-05-13, 19:34:24 - Csaba Pinter

priority: changed from “Low (4)” to “Normal (3)”

2015-05-13, 19:34:24 - Csaba Pinter

status: changed from “New” to “Test”

2015-05-13, 19:34:24 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2015-05-13, 19:35:19 - Mattea Welch

Woo hoo!

From: Csaba Pinter (pinter) [mailto:slicerrt@alerts.assembla.com] Sent: Wednesday, May 13, 2015 3:34 PM

2015-05-14, 21:48:31 - Csaba Pinter

status: changed from “Test” to “Fixed”

#715 Crash when loading RT study after closing scene

It seems that pointers to nodes from the closed scene are being used when loading RT study (according to the call stack, RT dose)

2015-02-22, 16:00:13 - Csaba Pinter

Fixed #715: Crash fixed when loading volume node after scene closing; ContourNodeSelector had pointers to the removed nodes cached, now cache is cleared on scene close Commit: r:2167|slicerrt:2167

2015-02-22, 16:00:13 - Csaba Pinter

status: changed from “New” to “Fixed”

#716 DVH metric names include intensity instead of dose

Values calculated right, but the metric names are wrong (Also chart is called Dose Volume Histogram, which is right, so it’s only the metric names)

2015-06-02, 14:37:54 - Csaba Pinter

Fixed #716: DVH metric names for dose volumes fixed; Module-specific constants moved from SlicerRtCommon to the modules Commit: r:2308|slicerrt:2308

2015-06-02, 14:37:54 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2015-06-02, 14:37:54 - Csaba Pinter

status: changed from “New” to “Fixed”

#717 Fix failing tests

The following tests FAILED: 4 - vtkSlicerContoursModuleLogicTest_EclipseProstate (Failed) 15 - py_DicomRtImportSelfTest (Failed) 21 - vtkSlicerDoseVolumeHistogramModuleLogicTest_EclipseProstate_Base (Failed) 29 - vtkSlicerDoseComparisonModuleLogicTest_EclipseEnt (Failed)

2015-02-25, 18:26:08 - Csaba Pinter

Fixed #717: Fixed automatic tests; Default color nodes made singleton so that they are not removed on scene close.

Tests:

2015-02-25, 18:26:08 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

#718 Release SlicerRT 0.17

2015-02-25, 20:30:01 - Csaba Pinter

Re #718: Increased version number for patch release Commit: r:2171|slicerrt:2171

2015-04-23, 14:57:37 - Csaba Pinter

Re #718: Increase SlicerRT patch version number to fix build error due to Slicer core changes (ReferencedNode member not public any more) Commit: r:2225|slicerrt:2225

2015-05-03, 15:06:53 - Csaba Pinter

Re #718: Fix NA-MIC test to work in 4.4.0 release Commit: r:2237|slicerrt:2237

2015-06-04, 22:15:21 - Csaba Pinter

0.16 will be skipped, as the segmentation object work was done before several 0.16 tasks, so 0.17 will be released including the changes in 0.16

2015-06-04, 22:15:21 - Csaba Pinter

status: changed from “New” to “Invalid”

2015-06-04, 22:17:43 - Csaba Pinter

summary: changed from “Release SlicerRT 0.16” to “Release SlicerRT 0.17”

2015-06-04, 22:17:43 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.16” to “SlicerRt 0.17 (Segmentations)”

2015-06-04, 22:17:43 - Csaba Pinter

status: changed from “Invalid” to “Accepted”

2015-06-04, 22:25:02 - Csaba Pinter

Re #718: Release SlicerRT 0.17 Commit: r:2316|slicerrt:2316

2015-06-05, 14:09:12 - Csaba Pinter

Re #718: Fixed linux build error and warnings Commit: r:2318|slicerrt:2318

2015-06-05, 15:13:56 - Csaba Pinter

Re #718: Merged linux fixes from branch; Increased version number to 0.17.1 Commit: r:2320|slicerrt:2320

2015-06-26, 15:17:40 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

#719 Allow loading of multi-component images in MultidimData

See Isaiah’s patch

https://www.assembla.com/spaces/slicerrt/messages/5107703

2015-03-25, 00:20:36 - Andras Lasso

test #719: Applied Isaiah’s patch for supporting color images in multidimdata Commit: r:2188|slicerrt:2188

2015-03-25, 00:20:36 - Andras Lasso

status: changed from “Accepted” to “Test”

2015-09-30, 16:07:55 - Andras Lasso

status: changed from “Test” to “Fixed”

#720 Python wrapping problem with vtkSegmentation

vtkSegmentation is recognized as just a vtkObject in python interactor.

Attempts to fix and workaround applied in https://www.assembla.com/code/slicerrt/subversion/commit/2189

2015-03-25, 20:33:50 - Csaba Pinter

If I created clones of vtkSegmentation than the first time it had the same issues (with name vtkSegmentationn), but it was OK the second time (vtkSegmentationWrapTest)

2015-03-25, 20:34:09 - Csaba Pinter

Problem is not Windows-specific, happens on Mac too

2015-03-26, 17:19:37 - Csaba Pinter

Re #626, re #720: Added skeleton and prototypes for segmentation Widgets classes and resources; Re-added const std::string& as it apparently did not influence python wrapping after all. Commit: r:2190|slicerrt:2190

2015-03-30, 18:09:32 - Csaba Pinter

Probably fixed by rev2193

2015-03-30, 18:09:32 - Csaba Pinter

status: changed from “New” to “Test”

2015-03-30, 22:40:57 - Csaba Pinter

Fixed #720: Removed vtkSegmentationPythonWrapHelper class, as seems to be not needed any more due to correct wrapping of vtkSegmentation Commit: r:2195|slicerrt:2195

2015-03-30, 22:40:57 - Csaba Pinter

status: changed from “Test” to “Fixed”

#721 Build error due to references API change in Slicer core

2015-03-30, 13:08:05 - Andras Lasso

fixed #721: Fixed build errors due to Slicer core change Commit: r:2192|slicerrt:2192

2015-03-30, 13:08:05 - Andras Lasso

status: changed from “Accepted” to “Fixed”

2015-03-30, 13:30:09 - Csaba Pinter

Thanks, Andras!

2015-03-30, 13:30:12 - Csaba Pinter

milestone_id: changed from null to “SlicerRt 0.16”

#722 Allow reading of PLY model files and regions

PLY file format preserves mesh point IDs (in contrast to SVN file format, which does not). Also add helper function/documentation for regions interpretation.

2015-03-31, 05:09:18 - Andras Lasso

test #722: Added to MatlabBridge: reading of PLY model files, example for managing regions

PLY file format preserves mesh point IDs (in contrast to SVN file format, which does not).

Commit: r:2197 slicerrt:2197

2015-03-31, 05:09:18 - Andras Lasso

status: changed from “Accepted” to “Test”

2015-05-23, 14:56:42 - Csaba Pinter

Can this ticket be closed?

2015-05-26, 12:03:39 - Andras Lasso

status: changed from “Test” to “Fixed”

#723 DICOM-RT export produced incorrect file name for dose

This bug was reported by Csaba, need to create a ticket for tagging the commit.

2015-04-08, 16:44:37 - Greg Sharp

fixed #723 Bump plastimatch version to fix Commit: r:2210|slicerrt:2210

2015-04-08, 16:44:37 - Greg Sharp

status: changed from “New” to “Fixed”

2015-04-08, 16:49:01 - Csaba Pinter

Great, thanks!

#724 Computed DVH stat ‘volume’ should account for DoseVolumeOversamplingFactor

In vtkSlicerDoseVolumeHistogramModuleLogic [1], since by default the oversampling factor is 2.0. The computed volume stats (cc) should be divided by DoseVolumeOversamplingFactor^3 to account for the fact the input contour is resampled.

This can be verified by having a structure of exactly 1 pixel for a volume of spacing != 1

Similarly, I also wonder if the computation of the histogram should account for this.

[1] https://www.assembla.com/code/slicerrt/subversion/nodes/2046/trunk/SlicerRt/src/DoseVolumeHistogram/Logic/vtkSlicerDoseVolumeHistogramModuleLogic.cxx

2015-04-10, 11:19:29 - Csaba Pinter

The actual volume of the structure does not change due to the fact that it happens to be rasterized with denser grid (more voxels of smaller size fall into it). The structure should always have the same volume regardless the rasterizing grid (or thus the oversampling factor). The small deviations that we see in the volume and the histogram are due to the data loss during rasterization.

Did I misunderstand your question?

2015-04-10, 16:04:27 - jchris

Say differently, the variable cubicMMPerVoxel should probably be computed with the spacing of the resampled label map, otherwise the voxel count (and by extension the volume) will be off by a factor DoseVolumeOversamplingFactor^3

It means that line 515 [1] could probably be changed from:

double* structureLabelmapSpacing = structureContourNode->GetSpacing();

to

double* structureLabelmapSpacing = consolidatedStructureContourNode->GetSpacing();

[1] https://www.assembla.com/code/slicerrt/subversion/nodes/2046/trunk/SlicerRt/src/DoseVolumeHistogram/Logic/vtkSlicerDoseVolumeHistogramModuleLogic.cxx#ln515

2015-04-10, 17:55:37 - Csaba Pinter

Indeed, the line you cite is wrong, it should be the consolidated structure. I did some debugging and it seems that for some reason the labelmap is invalidated before doing the consolidation step in the DVH computation, and so the labelmap in structureContourNode is re-converted, which causes the consolidatedStructureContourNode spacing to match the original one. This ultimately results in correct volume computation, this is why we did not catch this problem (there are about 10 DVH logic tests).

We decided to redesign the whole contours infrastructure because the applications considerably overgrew the design, as this bug (and dozens of previously fixed complex bugs) proves it. The contours mechanism became so complicated and so many workarounds have been implemented, that fixing this bug would take me several days probably. As I am making good progress with the new segmentations, and will have to rework all these modules that use contours anyways, I propose putting off fixing this and rely on the new, much simpler infrastructure that will be ready in a few weeks now. I would keep this ticket open and double check this issue when releasing segmentations.

What do you say? Thanks for catching this issue!

2015-04-10, 17:55:37 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2015-04-10, 17:55:48 - Csaba Pinter

milestone_id: changed from null to “SlicerRt 0.16”

2015-04-10, 17:55:51 - Csaba Pinter

Component: changed from null to “SlicerRt modules”

2015-04-10, 18:28:48 - jchris

Make sense to wait.

To provide some more context, this bug have been discovered by using label map of exactly one pixel and computing the associated stats. It turn out that the volume was off by a factor 8.

Since we are using the logic and object directly, I guess setting the DoseVolumeOversamplingFactor to 1 would provide us with the expected results.

2015-04-10, 18:41:47 - Csaba Pinter

It seems to be a reasonable workaround in your case, yes.

I tried just fixing the line you mentioned, but then it caused an issue in the logic test that checks the metrics, and as I mentioned every hour spent on fixing this will just delay the release of the new one, which requires update of the module logics that use contours/segmentations.

Sorry for the difficulties and thanks again for reporting!

2015-04-10, 18:41:55 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.16” to “SlicerRt 0.17 (Segmentations)”

2015-04-10, 19:11:29 - jchris

Make complete sense. Looking forward the SegmentationObject feature :)

i will trying it shortly. Currently creating a rebased segmentation-node branch with have all the corresponding changes in a sequential order without the merge commit.

2015-04-10, 19:13:36 - Csaba Pinter

Thanks!

2015-06-22, 17:21:12 - Csaba Pinter

@jchris Can you please test this issue to see if it still needs to be fixed? Thanks!

2015-06-22, 17:25:49 - jchris

Hi Csaba,

Soon I should be able to comment on this. Need to finalize the integration of the updated SlicerRt first.

Thanks

Jc

2015-06-22, 17:40:51 - Csaba Pinter

Thanks!

2015-06-26, 00:14:21 - jchris

The problem has been addressed after updating to a recent SlicerRt

2015-06-26, 00:14:21 - jchris

status: changed from “New” to “Fixed”

2015-06-26, 15:17:18 - Csaba Pinter

Great, thanks! Quite reassuring

#725 Add conversion between labelmap and scalar volumes in Cast Scalar Volume CLI

And add labelmap-scalar toggle function to Subject Hierarchy

2015-06-22, 17:20:22 - Csaba Pinter

Fixed by Andras in http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=24350 and http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=24351

2015-06-22, 17:20:22 - Csaba Pinter

assigned_to_id: changed from null to “lassoan”

2015-06-22, 17:20:22 - Csaba Pinter

status: changed from “New” to “Fixed”

#726 VolumeClip script error due to missing import

Clip volume with ROI does not work

2015-04-30, 19:08:49 - Andras Lasso

fixed #726: Fixed VolumeClip script error (missing import string) Commit: r:2235|slicerrt:2235

2015-04-30, 19:08:49 - Andras Lasso

status: changed from “New” to “Fixed”

#727 Gamma computation progress bar

2015-05-22, 21:57:29 - Greg Sharp

Re #727 Update plastimatch version for gamma progress callback Commit: r:2265|slicerrt:2265

2015-05-22, 21:57:29 - Greg Sharp

assigned_to_id: changed from null to “gregsharp”

2015-05-23, 14:55:32 - Csaba Pinter

Thank you, Greg!

2015-05-28, 15:32:27 - Csaba Pinter

assigned_to_id: changed from “gregsharp” to “pinter”

2015-05-29, 17:52:05 - Csaba Pinter

Re #727: Removed fix for issue that has been fixed in Slicer core Commit: r:2294|slicerrt:2294

2015-05-30, 21:49:48 - Csaba Pinter

Re #727: Added progress bar to gamma dose comparison Commit: r:2300|slicerrt:2300

2015-05-30, 21:50:30 - Csaba Pinter

Fixed #727: Added progress bar to gamma comparison step in gel dosimetry analysis Commit: r:2301|slicerrt:2301

2015-05-30, 21:50:30 - Csaba Pinter

status: changed from “New” to “Fixed”

2015-06-01, 20:12:22 - Csaba Pinter

Re #727: Fixed gamma custom reference dose to treat input as cGy Commit: r:2305|slicerrt:2305

2015-06-01, 20:33:15 - Csaba Pinter

Re #727: Make sure test button is hidden in the release Commit: r:2306|slicerrt:2306

#728 Gel dosimetry user interface changes

The UI contains text that is strictly tied to the KGH workflow. Some of that needs to be changed to make it more general and more straightforward. Also some steps need to be re-organized a bit. See attached PDF files (‘…changes.pdf’ is the one containing the requests, and the ‘…before.pdf’ is what it is currently, to see what needs to be changed)

2015-05-11, 16:07:46 - Csaba Pinter

file:dC3mKq9_Cr5j4cdmr6bg7m

2015-05-11, 16:07:46 - Csaba Pinter

Attachment added: “20150507_Gel_slicelet_changes.pdf”

2015-05-11, 16:07:46 - Csaba Pinter

file:dC3nL49_Cr5j4cdmr6bg7m

2015-05-11, 16:07:46 - Csaba Pinter

Attachment added: “20150507_gel_slicelet_before.pdf”

2015-05-11, 19:09:48 - Csaba Pinter

status: changed from “New” to “Accepted”

2015-05-12, 18:48:28 - Csaba Pinter

Re #728: Moved data assign controls to load data panel; Made the requested changes in load data step Commit: r:2242|slicerrt:2242

2015-05-12, 20:10:21 - Csaba Pinter

Re #728: Use scripted module base classes in gel dosimetry; Use logging; Fixed crash when closing the slicelet (not a proper fix, as some objects are left dangling, but the assign statements in line 50 GelDosimetryAnalysis.py caused crash; not sure when it started though, it used to work) Commit: r:2243|slicerrt:2243

2015-05-12, 20:25:21 - jchris

Hi Csaba,

If you are working on issue related to python and dangling objects. I would suggest we rebase the ‘segmentation-node’ branch against the latest Slicer.

The latest changes related to ownership management added to PythonQt should help.

Hth

Jc

2015-05-12, 20:39:56 - Csaba Pinter

Hi Jc,

This is not related to segmentations, I’m using the latest trunk. The cleanup step where I commented out those two lines broke some time ago, and not sure what caused it.

Thanks!

2015-05-12, 20:40:46 - Csaba Pinter

Although I will need to rebase that branch to get Steve’s recent commits in Editor…

2015-05-12, 22:20:43 - Csaba Pinter

Re #728, re 646, re 677: Steps 1 and 2 are reorganized. All the data are to be loaded and also assigned at step 1. Step 2 includes both registration steps - automatic and landmark - and volume loading and selection is no longer here Commit: r:2244|slicerrt:2244

2015-05-13, 19:04:01 - Csaba Pinter

Re #728: Updated calibration and dose comparison steps based on new UI design Commit: r:2245|slicerrt:2245

2015-05-13, 19:50:13 - Csaba Pinter

Re #728: Fix collapsible button states and grouping, and set persistent selections correctly Commit: r:2246|slicerrt:2246

2015-05-14, 18:17:59 - Csaba Pinter

Re #728: Added icon to gel dosimetry slicelet, set window title and properties, fixes in fiducial selection and testing Commit: r:2248|slicerrt:2248

2015-05-14, 19:40:29 - Csaba Pinter

Re #728: Fixed bugs at the later steps of the workflow Commit: r:2249|slicerrt:2249

2015-05-14, 20:27:34 - Csaba Pinter

Re #728: Fixed bugs at the later steps of the workflow; Changed resource handling Commit: r:2250|slicerrt:2250

2015-05-15, 16:54:01 - Csaba Pinter

Re #728: Use slice annotations scalar bar instead of custom one; Fixed calibration step Commit: r:2251|slicerrt:2251

2015-05-15, 18:26:21 - Csaba Pinter

Test #728: Fixed slicelet closing and slice annotations errors Commit: r:2253|slicerrt:2253

2015-05-15, 18:26:21 - Csaba Pinter

status: changed from “Accepted” to “Test”

2015-05-15, 21:50:26 - Csaba Pinter

@kmalexander If the UI seems good, then please close this as fixed. Thanks!

2015-05-24, 16:05:40 - Kevin Alexander

It looks great, but the automated registration of PlanCT to OBI is still not bang on. Could we add some simple manual shifting options for step 2A? Just sliders or spinboxes to than allow for a shift in the 3 directions. I’m struggling to find a data set that works with only clicking the ‘perform registration’ button and am having to manually tweak the registration. What do you think?

2015-05-24, 16:09:11 - Csaba Pinter

Well, I also suggested the same ‘fix’, so I agree :) Can you create a ticket for that? If everything else is good (this is a UI ticket), then please close this one. Thanks!

2015-05-24, 16:48:11 - Kevin Alexander

Done deal. Well done my friend. A beauty UI.

2015-05-24, 16:48:11 - Kevin Alexander

status: changed from “Test” to “Fixed”

2015-05-24, 16:49:19 - Mattea Welch

I second Kevin’s comment. Looks awesome!

From: Kevin Alexander (kmalexander) [mailto:slicerrt@alerts.assembla.com] Sent: Sunday, May 24, 2015 12:48 PM

#729 Dose colormap is wrong after closing the scene

2015-05-15, 18:23:19 - Csaba Pinter

Fixed #729: Dose color table is found correctly if it exists Commit: r:2252|slicerrt:2252

2015-05-15, 18:23:19 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

#730 Optional manual adjustment for PlanCT to OBI intensity registration

PlanCT to OBI intensity registration is not automatically registering very well. Options to manually tweak registration in 3D using sliders or spinboxes would help (in step 2A of gel extension).

Also do not perform automatic registration if the two input volumes are the same (in some workflows they set it to the same volume node)

2015-05-24, 20:39:02 - Csaba Pinter

Would you like to have controls for rotation too, or translation is enough?

2015-05-24, 20:39:02 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2015-05-25, 16:32:00 - Kevin Alexander

You know - might as well include rotation. Who knows what might happen someday…with a weird dataset or something. Thanks.

2015-05-25, 17:29:07 - Csaba Pinter

description: changed from “PlanCT to OBI intensity reg…” to “PlanCT to OBI intensity reg…”

2015-05-28, 15:30:22 - Csaba Pinter

qMRMLTransformSliders could be used

2015-05-30, 20:05:29 - Csaba Pinter

Test #730: Added translation and rotation adjustment controls to automatic registration results in gel dosimetry Commit: r:2298|slicerrt:2298

2015-05-30, 20:05:29 - Csaba Pinter

status: changed from “New” to “Test”

2015-06-05, 20:34:05 - Csaba Pinter

Re #730: Registration fine-tune controls in Gel Dosimetry now have a fixed single step of half mm (it changed per dataset and could be as high as 10mm) Commit: r:2322|slicerrt:2322

2015-06-22, 17:21:34 - Csaba Pinter

status: changed from “Test” to “Fixed”

#731 DICOM export crash

There is a crash in DICOM export, at the following line: https://github.com/cpinter/Slicer/blob/master/Modules/Scripted/DICOMLib/Widgets/qSlicerDICOMExportDialog.cxx#L263 Also if there is no crash (sometimes it happens), the exportables are the same in the list (i.e. the same series is displayed 3 times instead of showing the 3 series in the study).

The issue is most probably that the exportable objects get deconstructed during passing from python to C++. I downloaded a nightly just before this commit https://github.com/Slicer/Slicer/commit/9b7171d097ad0cfa1fe89780a2ef0758cf2ae80e and indeed, the crash is not there, the exportables are showing up correctly.

2015-05-27, 14:09:28 - Csaba Pinter

Re #731: Instantiate DICOM exportables with a parent so that they are not deconstructed during transfer from python to C++ Commit: r:2281|slicerrt:2281

2015-05-27, 16:59:37 - Csaba Pinter

Slicer core commit for the same thing http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=24276

2015-05-27, 16:59:37 - Csaba Pinter

status: changed from “Accepted” to “Test”

2015-05-27, 16:59:37 - Csaba Pinter

CommentContent: changed from “Slicer core commit for the same thing http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision” to “Slicer core commit for the same thing http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=24276”

2015-05-27, 21:15:42 - Csaba Pinter

Better fix in Slicer core http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=24277

2015-05-27, 21:16:04 - Csaba Pinter

Test #731: Reverting previous quick fix changes following improved exportable handling in Slicer core http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=24277 Commit: r:2282|slicerrt:2282

2015-05-29, 17:50:25 - Csaba Pinter

status: changed from “Test” to “Fixed”

#732 Inconsistent gamma values with mask

A defect for this was identified in plastimatch, and patched. Initial testing is positive.

2015-06-03, 19:35:02 - Greg Sharp

Re #732 Fix plastimatch bug using gamma with mask Commit: r:2310|slicerrt:2310

2015-06-03, 19:35:48 - Csaba Pinter

Woo-hoo! Thanks a lot, Greg!

2015-06-03, 19:38:22 - Csaba Pinter

-1 sounds good to me for out-of-mask gamma voxels

2015-06-03, 19:38:35 - Csaba Pinter

status: changed from “New” to “Test”

2015-06-03, 20:04:24 - Csaba Pinter

I tried it and it works great now! Closing the ticket. Thanks again!

2015-06-03, 20:04:24 - Csaba Pinter

status: changed from “Test” to “Fixed”

#733 Update External Beam Planning to use Segmentations

It still uses contours. The add directory command is commented out in the CMakeLists.txt with a comment

2015-06-24, 17:04:59 - Csaba Pinter

Re #733, re #743: Created branch for external beam planning changes Commit: r:2332|slicerrt:2332

2015-06-24, 17:04:59 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2015-06-24, 17:37:52 - Csaba Pinter

Re #733: Initial commit to change EBP to use segmentations instead of contours Commit: r:2333|slicerrt:2333

2015-06-25, 20:33:02 - Kyle Sunderland

Re #733 Change External Beam Planning to use segmentations Commit: r:2336|slicerrt:2336

2015-06-26, 17:05:30 - Kyle Sunderland

Re #733 Address comments and fix errors for changing External Beam Planning to use segmentations Commit: r:2337|slicerrt:2337

2015-08-12, 17:00:21 - Greg Sharp

Re #733 Merge-sync trunk into branch Commit: r:2397|slicerrt:2397

2015-08-20, 14:56:12 - Greg Sharp

Re #733 Merge-sync trunk into branch Commit: r:2416|slicerrt:2416

2015-09-02, 19:47:02 - Greg Sharp

Re #733 sync merge head into branch Commit: r:2424|slicerrt:2424

2015-09-02, 20:02:22 - Greg Sharp

Test #733 Implement ExternalBeamPlanning using Segmentations instead of Contours (Merge branch to head) Commit: r:2425|slicerrt:2425

2015-09-02, 20:02:22 - Greg Sharp

status: changed from “New” to “Test”

2015-09-02, 21:14:45 - Csaba Pinter

Trunk builds fine with EBP branch using segmentations integrated back in. Closing as fixed. Thanks, Greg!

2015-09-02, 21:14:45 - Csaba Pinter

status: changed from “Test” to “Fixed”

#734 Create isodose contours as percentage of max dose

2015-06-04, 22:12:06 - Csaba Pinter

@wangk I thought about this the other day that it would be useful. What do you think?

#735 Release Gel Dosimetry 0.3

2015-06-05, 13:52:24 - Csaba Pinter

Re #735: Fixed Linux CMake problem in Gel Dosimetry Commit: r:2317|slicerrt:2317

2015-06-05, 17:23:26 - Csaba Pinter

Re #735: Increased curve fitting Y scaling maximum value in Gel Dosimetry; Bumped version number to 0.3.0 Commit: r:2321|slicerrt:2321

2015-06-22, 17:22:22 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

#736 Create system that uses the cloud to find the most similar RT plan

The most similar plan is selected based on whether the anatomical structures closely match the patient’s daily anatomy.

2015-07-27, 16:27:52 - Csaba Pinter

status: changed from “New” to “Accepted”

2016-01-12, 17:12:05 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.18” to “Student projects”

2016-08-10, 22:34:18 - Csaba Pinter

status: changed from “Accepted” to “Test”

2016-09-09, 15:16:11 - Csaba Pinter

Jen finished her work. This ticket can be closed after a code review

@j.andrea When are you available for the code review?

2016-12-23, 21:51:30 - Csaba Pinter

status: changed from “Test” to “Fixed”

#737 Avoid crash in Segmentation displayable manager when no representation name is set

2015-06-19, 16:59:22 - jchris

Fixed #737: Do not crash if segmentation representation name is not set. Commit: r:2324|slicerrt:2324

2015-06-19, 16:59:22 - jchris

assigned_to_id: changed from null to “jchris”

2015-06-19, 16:59:22 - jchris

status: changed from “New” to “Fixed”

2015-06-19, 19:25:33 - Csaba Pinter

Component: changed from null to “SlicerRt modules”

2015-06-19, 19:25:33 - Csaba Pinter

milestone_id: changed from null to “SlicerRt 0.17 (Segmentations)”

#738 Segmentation display node convenience method ‘SetSegmentColor’ does not update the segmentation color table

2015-06-19, 17:05:49 - jchris

Fixed #738: Fix SetSegmentColor method to ensure color table is also updated.

This commit refactors the code so that the convenience methods like ‘SetSegment(...)' call the method 'SetSegmentDisplayProperties(...)'. Commit: r:2325|slicerrt:2325

2015-06-19, 17:05:49 - jchris

assigned_to_id: changed from null to “jchris”

2015-06-19, 17:05:49 - jchris

status: changed from “New” to “Fixed”

2015-06-19, 19:25:53 - Csaba Pinter

Component: changed from null to “SlicerRt modules”

2015-06-19, 19:25:53 - Csaba Pinter

milestone_id: changed from null to “SlicerRt 0.17 (Segmentations)”

#739 Warning ‘No-display-properties-found’ when creating segment

2015-06-19, 17:11:52 - jchris

Fixed #739: Fix ‘No-display-properties-found’ when creating a new segment.

This commit fixes the following message occurring when creating an empty segment:

GetSegmentDisplayProperties: No display properties found for segment with ID Segment_0

It basically ensures the displayable manager update its pipeline only after the segmentation display node properties are fully set. Commit: r:2326|slicerrt:2326

2015-06-19, 17:11:52 - jchris

assigned_to_id: changed from null to “jchris”

2015-06-19, 17:11:52 - jchris

status: changed from “New” to “Fixed”

2015-06-19, 19:26:19 - Csaba Pinter

Component: changed from null to “SlicerRt modules”

2015-06-19, 19:26:19 - Csaba Pinter

milestone_id: changed from null to “SlicerRt 0.17 (Segmentations)”

#740 Warning when associating segmentation display node to segmentation node without segments

Warning: In ../Segmentations/MRML/vtkMRMLSegmentationDisplayNode.cxx, line 444 vtkMRMLSegmentationDisplayNode (0x46af150): DeterminePolyDataDisplayRepresentationName: Empty segmentation!

The following python snippet allows to reproduce the problem:

8<—-8<—-8<—-8<—-8<—-8<—-8<—-8<—- from vtkSegmentationCore import vtkSegmentation, vtkSegmentationConverter from slicer.modulemrml import vtkMRMLSegmentationNode, vtkMRMLSegmentationDisplayNode

segmentationNode = vtkMRMLSegmentationNode() slicer.mrmlScene.AddNode(segmentationNode)

representationName = vtkSegmentationConverter.GetSegmentationBinaryLabelmapRepresentationName() segmentationNode.GetSegmentation().SetMasterRepresentationName(representationName)

segmentationDisplayNode = vtkMRMLSegmentationDisplayNode() slicer.mrmlScene.AddNode(segmentationDisplayNode) segmentationNode.SetAndObserveDisplayNodeID(segmentationDisplayNode.GetID()) segmentationDisplayNode.SetSliceIntersectionVisibility(False) 8<—-8<—-8<—-8<—-8<—-8<—-8<—-8<—-

2015-06-19, 17:19:42 - jchris

Fixed #740: Fix warning setting segmentation display node to segmentation without segments.

This commit fixes the following warning: Warning: In ../Segmentations/MRML/vtkMRMLSegmentationDisplayNode.cxx, line 444 vtkMRMLSegmentationDisplayNode (0x46af150): DeterminePolyDataDisplayRepresentationName: Empty segmentation!

A python snippet that allowed to reproduce the problem was:

8<—-8<—-8<—-8<—-8<—-8<—-8<—-8<—- from vtkSegmentationCore import vtkSegmentation, vtkSegmentationConverter from slicer.modulemrml import vtkMRMLSegmentationNode, vtkMRMLSegmentationDisplayNode

segmentationNode = vtkMRMLSegmentationNode() slicer.mrmlScene.AddNode(segmentationNode)

representationName = vtkSegmentationConverter.GetSegmentationBinaryLabelmapRepresentationName() segmentationNode.GetSegmentation().SetMasterRepresentationName(representationName)

segmentationDisplayNode = vtkMRMLSegmentationDisplayNode() slicer.mrmlScene.AddNode(segmentationDisplayNode) segmentationNode.SetAndObserveDisplayNodeID(segmentationDisplayNode.GetID()) segmentationDisplayNode.SetSliceIntersectionVisibility(False) 8<—-8<—-8<—-8<—-8<—-8<—-8<—-8<—- Commit: r:2327|slicerrt:2327

2015-06-19, 17:19:42 - jchris

assigned_to_id: changed from null to “jchris”

2015-06-19, 17:19:42 - jchris

status: changed from “New” to “Fixed”

2015-06-19, 19:27:01 - Csaba Pinter

Component: changed from null to “SlicerRt modules”

2015-06-19, 19:27:01 - Csaba Pinter

milestone_id: changed from null to “SlicerRt 0.17 (Segmentations)”

#741 vtkSlicerDoseVolumeHistogramModuleLogic::ComputeDvh consider segmentId instead of segmentName

2015-06-22, 14:01:55 - jchris

The DVH_STRUCTURE_NAME_ATTRIBUTE_NAME is set using segmentId instead of segmentName.

2015-06-22, 14:02:11 - jchris

file:bhn5RWgoCr5AaAdmr6bg7m

2015-06-22, 14:02:11 - jchris

Attachment added: “dvh-use-segmentName-insteadof-segmentid.patch”

2015-06-22, 14:02:40 - jchris

@pinter If that makes sense. I will commit the change.

2015-06-22, 14:02:40 - jchris

CommentContent: changed from “@pinter If that make sense. I will commit the change.” to “@pinter If that makes sense. I will commit the change.”

2015-06-22, 14:08:57 - Csaba Pinter

Good catch! Do we only use it to show the structure name of the DVH? Then your fix is perfect, go ahead please.

However if we also want to use it to reference the segment, then segment ID is the right way, in which case we should rename the attribute and the fix should go to where the structure name is displayed (get segment name from segment found by the referenced ID). Looking at the code, I think it’s just for the name currently. I’ll leave it up to you to judge.

Thanks!

2015-06-22, 14:10:59 - Csaba Pinter

Also please use the milestone for the tickets, at least before closing so that the closed tickets are indicated at the right milestone. Right now it is an exceptional state because we have two active SlicerRT milestones (we didn’t know when segmentations would be released and it made sense to keep that one separate), but usually any bugfixes should go into the current SlicerRT milestone,, which is right now 0.18. Thanks!

2015-06-22, 14:11:05 - Csaba Pinter

milestone_id: changed from null to “SlicerRt 0.18”

2015-06-22, 14:18:21 - jchris

Thanks for the feedback

re: milestone

thanks for the note. Moving forward, I will make sure to associate a milestone

re: Use of DVH_STRUCTURE_NAME_ATTRIBUTE_NAME

‘Grepping’ the code, I found it used directly only in qSlicerDoseVolumeHistogramModuleWidget and indirectly to display the plot name in Jquery

Moving forward, if needed we could introduce ‘DVH_STRUCTURE_ID_ATTRIBUTE_NAME’

I will go ahead and commit the change

2015-06-22, 14:21:01 - Csaba Pinter

Thanks, Jc! True, we can add a new one later if needed. Please go ahead and commit.

2015-06-22, 14:33:35 - jchris

Fixed #741: Update DVH logic to associate structure name with histogram.

This commit updates the ComputeDvh() method so that DVH_STRUCTURE_NAME_ATTRIBUTE_NAME is associated with segmentName instead of segmentId. This will ensure that the expected names are displayed on the DVH presented to the user. Commit: r:2328|slicerrt:2328

2015-06-22, 14:33:35 - jchris

assigned_to_id: changed from null to “jchris”

2015-06-22, 14:33:35 - jchris

status: changed from “New” to “Fixed”

#742 Update CreateIsodoseSurfaces() to prevent crash if dose volume has no image data

2015-06-22, 14:36:48 - jchris

file:aDkqQ-goWr5BPJacwqjQXA

2015-06-22, 14:36:48 - jchris

Attachment added: “do-not-crash-if-dose-volume-has-no-image-data.diff”

2015-06-22, 15:09:17 - Csaba Pinter

Great, thanks a lot!

2015-06-22, 17:29:35 - jchris

Fixed #742: Prevent crash in CreateIsodoseSurfaces() if dose volume has no image data. Commit: r:2330|slicerrt:2330

2015-06-22, 17:29:35 - jchris

assigned_to_id: changed from null to “jchris”

2015-06-22, 17:29:35 - jchris

status: changed from “New” to “Fixed”

#743 External Beam Planning to support dose engines as plugins

2015-06-24, 17:04:59 - Csaba Pinter

Re #733, re #743: Created branch for external beam planning changes Commit: r:2332|slicerrt:2332

2015-06-24, 17:04:59 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2015-07-08, 19:27:29 - Csaba Pinter

Meeting with Greg https://www.assembla.com/spaces/slicerrt/wiki/20150708_External_beam_planning_plugins_meeting

2015-08-10, 16:36:50 - Csaba Pinter

External Beam Planning developer’s page https://www.assembla.com/spaces/slicerrt/wiki/External_beam_planning

2016-01-14, 17:18:47 - Csaba Pinter

Plan discussed with @gregsharp: Let Maxime finish his work and integrate EBP in SlicerRT trunk. This should happen at the end of January, then we will start working on the plugins. 0.18 may be (or maybe not) released before starting on this.

2016-04-15, 20:48:28 - Csaba Pinter

status: changed from “New” to “Accepted”

2016-04-18, 18:09:29 - Csaba Pinter

Re #743: Stylistic changes in EBP Commit: r:2781|slicerrt:2781

2016-04-19, 14:50:41 - Csaba Pinter

Re #743: Changes in EBP UI: Plan selector on top, replaced segment selector widget for plan contours with node combobox, capitalization fixes for consistency; Added skeleton for EBP logic test; Stylistic changes in code Commit: r:2783|slicerrt:2783

2016-04-21, 18:14:57 - Csaba Pinter

Re #743: Added tiny patient test data in data repository (it enables tests using CT, dose, and RT structure sets, while it only takes up 13 KB); Moved EBP module up in the module list in the main CMakeLists file so that the include directories contain all the dependant ones (especially SegmentationsLogic - the reason why this change fixes the includes is not known though); Made progress with EBP automatic test; Renamed functions according to the agreement with Greg to make them more descriptive; SH node name postfix is now not added to the names of the folder-like nodes (patient, study, folder) Commit: r:2785|slicerrt:2785

2016-04-21, 18:23:46 - Csaba Pinter

file:aV8044b-4r5Qtddmr6CpXy

2016-04-21, 18:23:46 - Csaba Pinter

Attachment added: “20160419_EBP_NodeReferences.pptx”

2016-04-21, 20:36:52 - Csaba Pinter

Re #743: Removed vtkMRMLExternalBeamPlanningNode and made the vtkMRMLRTPlanNode the ‘parameter set’ node. The reason is that the EBP node had only one input reference (the plan node itself), and also because in case of modules that basically handle a type of node (Volumes, Models, Segmentations, etc.) have that type of node as the main node to select, without a separate parameter set node. Commit: r:2786|slicerrt:2786

2016-04-22, 19:19:50 - Csaba Pinter

Re #743: Given dose volume is now used to store the calculated output total dose instead of always creating a new node for it. The output dose volume is automatically created is a plan is selected that does not yet have one assigned; Improved error reporting from logic to widget; Simplifications in code

Commit: r:2787 slicerrt:2787

2016-04-24, 21:11:16 - Csaba Pinter

Re #743: Refactored beam handling functions that were redundant in beams logic and moved beam functions handling a specific beam in the beam node class; Fixed bug that caused new beams to have wrong beam numbers in their names Commit: r:2788|slicerrt:2788

2016-04-25, 18:46:09 - Csaba Pinter

Re #743: EBP logic test yields same result as doing the same on the UI. It fails due to warning messages from Plastimatch; Fixed bug that made aperture dimensions only depend on the X jaws (Y was not used); Minor change for OOP correctness (vtkMRMLRTProtonBeamNode::UpdateApertureParameters) Commit: r:2789|slicerrt:2789

2016-05-02, 15:23:17 - Csaba Pinter

Re #743: Fixed beam jaw coordinate system issue. Internally the jaw positions were forced to positive numbers (distance to central axis line) which made the code very error-prone and there was another bug with which this bug extinguished each other (that is also fixed here, namely that the jaw positions from the DICOM were erroneously loaded: all positions used X1) Commit: r:2790|slicerrt:2790

2016-05-06, 13:12:46 - Csaba Pinter

Re #743: Added icon for EBP module; Disabled regexp check for EBP test until the Plastimatch warnings are fixed so that the test passes (to make sure the plugin changes do not break dose calculation - if it always fails I will not know when it breaks) Commit: r:2795|slicerrt:2795

2016-05-09, 21:10:09 - Csaba Pinter

Re #743: Fixed UI and dose calculation to handle the new beam jaws convention (using same coordinate system instead of inverting the numbers for the X1 and Y1 jaws). Also fixes EBP logic test Commit: r:2814|slicerrt:2814

2016-05-12, 21:15:58 - Csaba Pinter

Re #743: Improved dose visualization. Dose color table is created from the isodose color table in the Isodose module (not DicomRtImportExport), and no node IDs are stored, but the node is got by name (it is a singleton, and there is no need to have two mechanisms of accessing the node, also it’s bad practice to store node IDs in logic classes). After dose calculation the dose color table is set the same way as when importing a dose volume; Improved dose visualization after dose computation by setting the volume opacity to 0.5 (it was 0 most of the time so the volume did not show up); Code clean up, stylistic changes and removal of unnecessary variables. Commit: r:2830|slicerrt:2830

2016-05-17, 01:27:49 - Csaba Pinter

Re #743, re #764: Moved beam parameters section from EBP module to Beams module. Beams module is now not hidden and has a module UI that handles RT beams. Beam related logic also moved from EBP to Beams.

New widget class is needed for the beams table in EBP that allows quick switch to Beams module to edit selected beam Commit: r:2840|slicerrt:2840

2016-05-18, 18:25:00 - Csaba Pinter

Re #764, re #743: Added custom events for change in different types of beam parameters triggering either transform or geometry update; Fixed switching between EBP and Beams modules; Cleaning up code Commit: r:2848|slicerrt:2848

2016-05-18, 19:29:16 - Csaba Pinter

Re #764, re #743: Fixed plan loading issue (when it was loaded first and there was no study node yet); Added doxygen comments in proton beam header; Make sure reference volume is shown in background after dose calculation Commit: r:2849|slicerrt:2849

2016-06-01, 19:52:25 - Csaba Pinter

Re #743: Separated abstract dose engine class and made the Plastimatch proton engine its subclass. Moved dose engines in a separate DoseEngines subfolder in EBP; Use dose accumulation module instead of Plastimatch functions to accumulate per-beam dose distributions into the total output dose; Fixed beam weight setting from beams table widget; Allow setting beam weight from AddSelectedInputVolumeNode function for dose accumulation, and added convenience functions to get/set beam weight; Removed BeamOnTime member variable from beam node as it is used for preclinical treatments so it does not belong to the base class.

Dose calculation works for one beam, but code needs to be cleaned up, WIP Commit: r:2886|slicerrt:2886

2016-06-01, 21:49:48 - Csaba Pinter

Re #743: Added ‘None’ selection feature to SegmentSelectorWidget for its segment combobox so that lack of target segment selection can be visualized (and thus also noticed); Dose calculation code cleaned up; Added icon for beams module; Minor fixes; Changed EBP test baselines to match current results (they probably changed due to switch to dose accumulation logic instead of Plastimatch functions for accumulating dose - checked result visually and it looks alright) Commit: r:2887|slicerrt:2887

2016-06-03, 18:42:47 - Csaba Pinter

Re #743: Removed unused beam parameters from beam subclass. Similarly to already removed BeamOnTime, NominalEnergy (= energy, kVP) and NominalmA (= dose rate) are parameters for the beam used in PMH’s pre-clinical planning. As the project was shut down, and also these parameters do not belong to the beam base class, they have been removed. Can be added later in a beam subclass if needed Commit: r:2895|slicerrt:2895

2016-06-04, 19:43:17 - Csaba Pinter

Re #743: Move target and isocenter specification from beams to plan: there was an inconsistency between these, as iso.spec. and target were beam parameters, but they could change isocenter, which was a plan parameter. To make it more consistent and robust, these parameters are in the same level (plan). Later, when multiple targets and isocenters will need to be allowed for a plan, the feature will be introduced with the concept of beam groups. For now multiple plans need to be created in such a case and manually accumulate the doses after calculating for each plan; Isocenter specification on the UI became a combobox with label ‘isocenter at target center’, as basically this is the purpose of isocenter specification, however the enumeration in the class member was left as before; EBP UI was rearranged so that all parameters fit in a reasonable space Commit: r:2898|slicerrt:2898

2016-06-05, 20:32:15 - Csaba Pinter

Re #743: Dose engine plugin mechanism added. Plastimatch proton is made to be the only plugin for now. Dose calculation from the GUI works, but EBP test fails Commit: r:2899|slicerrt:2899

2016-06-06, 12:17:03 - Csaba Pinter

Re #743: Fixed EBP test Commit: r:2900|slicerrt:2900

2016-06-06, 20:24:15 - Csaba Pinter

Re #743: Moved logic code from EBP widget to logic (CreateBeamInPlan, CalculateDose); Added progress reporting feature to EBP logic that the widget displays Commit: r:2904|slicerrt:2904

2016-06-06, 22:07:08 - Csaba Pinter

Re #743: Use higher level functions in EBP logic test Commit: r:2907|slicerrt:2907

2016-06-08, 20:12:38 - Csaba Pinter

Re #743, Fixed #825: Added XML support for beam and plan parameters; Fixed dose calculation progress indicator; Use vtkVariant to convert parameters to string for deserialization instead of streams Commit: r:2920|slicerrt:2920

2016-06-09, 02:09:18 - Andras Lasso

re #743: Removed call to retired sliceNode->SetOrientationToReformat() method

The method call was not necessary anyway. Commit: r:2923|slicerrt:2923

2016-06-10, 14:46:52 - Csaba Pinter

Re #743: Removed unnecessary members from beam node and the UI parts that held them; Minor fixes Commit: r:2930|slicerrt:2930

2016-06-10, 19:27:05 - Csaba Pinter

Re #743: Refactored initializing beams: CreateDefaultBeamModel method was split into CreateDefaultDisplayNodes and CreateDefaultTransformNode, and these are called when node is added to a scene (SetScene). CreateDefaultBeamModel does not need to be called any more after creation; Cloning a beam now has its own button in beams table instead of it happening when Add beam button is clicked when a beam is selected (it was not intuitive) Commit: r:2932|slicerrt:2932

2016-06-10, 21:27:53 - Csaba Pinter

Re #743: Fixed beam transform updates, moved update functions from logic to node; Removed beam geometry parameters from SH node attributes, members used instead Commit: r:2933|slicerrt:2933

2016-06-12, 17:26:21 - Csaba Pinter

Re #743: Replace result dose by default; Remove intermediate results for a beam before calculating dose again for the same beam; Moved dose calculation button above the beams table so that it’s always visible, no matter how high the beams table is Commit: r:2939|slicerrt:2939

2016-06-12, 21:02:35 - Csaba Pinter

Re #743: Fixed scene saving and DVH visualization after dose calculation Commit: r:2940|slicerrt:2940

2016-06-13, 00:25:09 - Csaba Pinter

Re #743: Added mock dose engine that allows much faster debugging of EBP and the dose engine infrastructure without having to wait for the lengthy dose computation. It simply paints the volume touched by the beam the prescription dose while adding some noise to it; Fixed bug in dose engine selection; Reverted change in GetTransformBetweenRepresentationAndSegmentation function made in rev2896 that caused regression Commit: r:2941|slicerrt:2941

2016-06-13, 16:03:47 - Csaba Pinter

Re #743: Beams table is now updated when beams are modified; Change GetTransformBetweenRepresentationAndSegmentation in segmentations logic so that it only accepts valid segmentation nodes, and handle the segmentation NULL case on a higher level in CreateSegmentFromLabelmapVolumeNode and CreateSegmentFromModelNode; Removed redundant and unused utility function GetTransformBetweenTransformables in SlicerRtCommon Commit: r:2945|slicerrt:2945

2016-06-16, 18:29:12 - Csaba Pinter

Re #743: Simplified RT image geometry setup, use DICOM references instead of custom attributes Commit: r:2951|slicerrt:2951

2016-07-17, 19:12:24 - Csaba Pinter

Re #743: Updated External Beam Planning to use Qt-based dose engine plugins instead of VTK-based ones WIP.

This enables adding custom UI for the special beam types, and Python wrapping, which is essential for Matlab-based and Python dose engines and useful for command-line ones. vtkSlicerExternalBeamPlanningModuleLogicTest1 is disabled for now, it will be needed to convert to a Python test. Also the existing dose engines do not work as yet, because the special beam types are not handled with the new plugin mechanism. Thus the module is unfunctional for the moment, but it is experimental, and also fix will arrive in a few days. Commit: r:2982|slicerrt:2982

2016-07-18, 04:47:22 - Csaba Pinter

Re #743: Progress towards dose engine specific beam parameter handling in both the beam MRML node and the UI. qMRMLBeamParametersTabWidget was created to support beam parameter handling. Commit: r:2983|slicerrt:2983

2016-07-23, 00:15:50 - Csaba Pinter

Re #743: Dose engine specific beam parameter handling works in both the beam MRML node and the UI level Commit: r:3002|slicerrt:3002

2016-07-23, 01:04:07 - Csaba Pinter

Re #743: Plastimatch proton dose engine works with the new Qt-based plugin mechanism Commit: r:3003|slicerrt:3003

2016-07-25, 12:13:47 - Csaba Pinter

Re #743: Added noise range parameter to mock dose engine (partly so that tab removal can be tested) Commit: r:3011|slicerrt:3011

2016-07-25, 20:37:11 - Csaba Pinter

Re #743: Added test for External Beam Planning in python that performs the same test as vtkSlicerExternalBeamPlanningModuleLogicTest1 WIP

The test fails currently, as the engine-specific parameters are not added to the beam if added through the EBP logic. Commit: r:3017|slicerrt:3017

2016-07-25, 23:46:34 - Csaba Pinter

Fixed #743, fixed #764, fixed #783: ExternalBeamPlanningTest passes; createBeamInPlan moved from EBP logic to dose engine logic so that engine-specific beam parameters can be added as attributes; Dose engine changes are handled by dose engine logic which adds the missing engine-specific parameters to beams under plan in which engine was changed; Visualization tab in Beams module hidden until features are added Commit: r:3018|slicerrt:3018

2016-07-25, 23:46:34 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

#744 Remove unused local variable in isodose logic

2015-06-24, 23:23:10 - jchris

Fixed #744: Remove unused local variable in isodose logic. Commit: r:2334|slicerrt:2334

2015-06-24, 23:23:10 - jchris

status: changed from “New” to “Fixed”

#745 Update isodose logic to report progress

2015-06-24, 23:41:31 - jchris

Fixed #745: Update IsoDose logic to report progress. Commit: r:2335|slicerrt:2335

2015-06-24, 23:41:31 - jchris

status: changed from “New” to “Fixed”

2015-06-25, 02:02:38 - Csaba Pinter

Thanks, Jc! This module has a lot of room to improve…

#746 IGRT self test to restore original database selection

If the test is run, the usual database directory has to be manually restored

2015-07-02, 19:28:45 - Csaba Pinter

Fixed #746: Restore original database selection in IGRT self test Commit: r:2339|slicerrt:2339

2015-07-02, 19:28:45 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

#747 Update Dose Comparison module UI to match the gamma step of the gel slicelet

The dose criteria in the Dose Comparison tool is listed as ‘Gy’ when it is being assigned using the units of cGy. Units label should be modified to reflect this.

Also - the dose criteria assignment should be modified to resemble the gamma comparison in the Gel Dosimetry slicelet. (i.e. where the dose criteria settings are more detailed). It is more intuitive for a user to know what is really being calculated.

2015-07-15, 19:47:11 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.19” to “SlicerRt 0.18”

2015-07-15, 19:47:11 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2015-07-16, 20:41:59 - Csaba Pinter

summary: changed from “Dose Comparison modifications” to “Update Dose Comparison module UI to match the gamma step of the gel slicelet”

2015-07-16, 21:39:59 - Csaba Pinter

Test #747: Updated dose comparison module UI to match the gel slicelet gamma step which is more intuitive; Added linear interpolation option (true by default) Commit: r:2349|slicerrt:2349

2015-07-16, 21:39:59 - Csaba Pinter

status: changed from “New” to “Test”

2015-07-16, 21:40:30 - Csaba Pinter

Re #747: Removed unused variable from gel slicelet Commit: r:2350|slicerrt:2350

2015-07-21, 15:44:32 - Csaba Pinter

image:bHmeM4l78r5zaAacwqjQYw

2015-07-21, 15:44:32 - Csaba Pinter

Attachment added: “20150721_DoseComparisonUI.png”

2015-07-21, 15:45:13 - Csaba Pinter

Fixed #747: Dose comparison with new UI (that matches the gel slicelet’s gamma step UI) functions properly Commit: r:2359|slicerrt:2359

2015-07-21, 15:45:13 - Csaba Pinter

status: changed from “Test” to “Fixed”

#748 Playing in Sequence Browser undoes transform hierarchy

I noticed that the transform hierarchy is ‘undone’ when using the Sequence Browser module with the following steps:

  1. Drop previously computed ImageToProbe transform into Slicer.
  2. Drop previously recorded tracked ultrasound imaging sequence into Slicer as a sequence metafile.
  3. Create the following transform hierarchy: TrackedUltrasoundSequence-ProbeToReference [time=###s]
    • ImageToProbe – TrackedUltrasoundSequence-Image [time=###s]
  4. Open Sequence Browser module (Active browser node: TrackedUltrasoundSequence, Master node: TrackedUltrasoundSequence-Image, all nodes synchronized).
  5. Play the sequence.

When I play the sequence from the Sequence Browser module, the TrackedUltrasoundSequence-Image [time=###s] node is immediately moved out from under the ImageToProbe transform. That is, the transform hierarchy becomes: TrackedUltrasoundSequence-Image [time=###s] TrackedUltrasoundSequence-ProbeToReference [time=###s] - ImageToProbe

This occurs with the latest Slicer nightlies, but not with the 2015-05-12 version.

2015-07-10, 14:35:30 - Matthew Holden

description: changed from “I noticed that the transfor…” to “I noticed that the transfor…”

2015-07-10, 15:40:26 - Csaba Pinter

milestone_id: changed from null to “MultidimData 0.2.1”

2015-09-30, 16:07:32 - Andras Lasso

status: changed from “New” to “Fixed”

#749 Segment morphology operation icons are missing

2015-07-14, 17:01:48 - Csaba Pinter

Fixed #749: Fixed segment morphology operation icons that were missing Commit: r:2344|slicerrt:2344

2015-07-14, 17:01:48 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

#750 Optimize contours to surface algorithm for speed

The C++ algorithm is much slower than than anticipated: it takes about as long as rasterization and then marching cubes combined.

Profiling could reveal some simple reasons for significant performance problems: http://perk.cs.queensu.ca/contents/boundschecker-profiler-and-memory-analyzer

2015-07-15, 20:15:48 - Csaba Pinter

It is especially slow on this dataset (took several minutes): http://slicer.kitware.com/midas3/download/item/205391/WC2015_Gel_Slicelet_Dataset.zip

2015-07-21, 15:43:27 - Csaba Pinter

Attachment added: “20150721_DoseComparisonUI.png”

2015-07-21, 15:43:27 - Csaba Pinter

CommentContent: changed from “image:a6TjGcl78r5AqAdmr6bg7m “ to null

2015-08-17, 22:21:47 - Kyle Sunderland

Re #750: Made optimizations to the contours to surface algorithm that greatly increases the execution speed. The conversion path is still slower than the contour -> ribbon -> labelmap -> surface pathway. Further optimizations are still needed. Commit: r:2414|slicerrt:2414

2015-08-21, 20:59:00 - Kyle Sunderland

Re #750: Made more optimizations to the contours to surface algorithm. The conversion for the gel dataset still takes ~60s, which is still too slow. The main blocker seems to be the GetClosestBranch function, which takes up the majority of the algorithm’s execution time. Commit: r:2419|slicerrt:2419

2015-08-21, 21:02:18 - Csaba Pinter

Nice progress! Thanks for working on this!

2015-08-21, 21:02:18 - Csaba Pinter

status: changed from “New” to “Accepted”

2015-09-18, 19:44:20 - Csaba Pinter

Based on our conversation:

2015-11-25, 19:58:34 - Csaba Pinter

priority: changed from “Normal (3)” to “Low (4)”

2015-11-25, 20:00:01 - Csaba Pinter

As the algorithm is fast enough not to be disruptive, I decrease the priority of the ticket to low. Also since the algorithm is quite complex, especially with handling the special cases, it is not realistic to expect huge performance improvement.

2015-11-25, 20:02:43 - Csaba Pinter

summary: changed from “Contours to surface algorithm is unreasonably slow” to “Optimize contours to surface algorithm for speed”

2015-11-25, 20:02:47 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.18” to “SlicerRt 0.19”

2016-04-18, 04:20:44 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.19” to “SlicerRt 0.18”

2016-06-06, 16:20:58 - Csaba Pinter

Set ticket to fixed as many improvements have been made and the algorithm is of acceptable speed. In case of a dataset that is converted especially slowly a new ticket should be created.

2016-06-06, 16:20:58 - Csaba Pinter

priority: changed from “Low (4)” to “Normal (3)”

2016-06-06, 16:20:58 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

#751 Contours to surface does not account for the top slice thickness

When rasterizing a surface that was created using contours to surface, the top slice seems to be ‘cut off’ compared to when doing the same via ribbons, see attachments.

The reason for this is that the first and last slice also have thickness, but the algorithm simply closes the surface using Delaunay triangulation, thus ignoring some of the volume that was originally included. Instead, a single point should be added one slice above the top slice, in the position of the center of gravity of the contour (one point for each branch), and similarly to the bottom slice. Doing this as a preprocessing step and doing the triangulation of this structure, then omitting the Delaunay step should fix this issue.

2015-07-14, 19:34:06 - Csaba Pinter

image:bkshPgkL8r5BddacwqjQYw

2015-07-14, 19:34:06 - Csaba Pinter

Attachment added: “20150714_LabelmapViaClosedSurface.png”

2015-07-14, 19:34:06 - Csaba Pinter

image:bksjGukL8r5BddacwqjQYw

2015-07-14, 19:34:06 - Csaba Pinter

Attachment added: “20150714_LabelmapViaRibbon.png”

2015-07-14, 19:34:06 - Csaba Pinter

image:bkslaUkL8r5BddacwqjQYw

2015-07-14, 19:34:06 - Csaba Pinter

Attachment added: “20150714_LabelmapViaRibbon_ClosedSurfaceShown.png”

2015-08-13, 22:38:28 - Kyle Sunderland

Re #751: Attempt to account for slice thickness in planar contour to closed surface conversion by extending external contours by a half-slice thickness. This looks unnatural, so it may be beneficial to investigate using either a moving average along the contour to smooth the transition, or to triangulate the external contours to a single point for each, as previously mentioned. Commit: r:2402|slicerrt:2402

2015-08-14, 00:00:40 - Csaba Pinter

Kyle, can you add a screenshot to illustrate how it looks unnatural?

Just noting that this is apparently a feature that exists in many applications, see ‘end-capping’ in the Nelms2015 paper.

2015-08-14, 00:00:40 - Csaba Pinter

status: changed from “New” to “Accepted”

2015-08-14, 01:04:16 - Kyle Sunderland

image:bIzLZWqIar5AZcacwqjQYw

2015-08-14, 01:04:16 - Kyle Sunderland

Attachment added: “20150813_head_surface.png”

2015-08-14, 14:53:26 - Csaba Pinter

It does look a bit funny indeed, but still more correct. 3D interpolation can be really tricky. I think the running average won’t be that much better, although if you have a smart way determining the range of the averaging then it might be good.

2015-12-02, 18:45:31 - Kyle Sunderland

Re #751: Fix incorrect variable type in FixKeyholes(). Commit: r:2512|slicerrt:2512

2016-01-12, 15:02:56 - Csaba Pinter

Suggested approach:

  1. Copy top/bottom contour (as currently)
  2. Convert that one contour to binary labelmap with the reference volume geometry (or supersampled)
  3. Erode until half the area remains. Either a) Calculate distance map and find threshold that gives half the original area (see if vtkImplicitModeling can be used) or b) Calculate area then erode by one voxel iteratively until half the area remains
  4. Convert labelmap to contour and add to structure

2016-05-02, 21:01:48 - Kyle Sunderland

Re #751: Fix error caused by FixKeyholes(). Reverse the direction of the bottom contour, so that the triangles are facing the correct direction. Remove unnecessary arguments from functions. Commit: r:2791|slicerrt:2791

2016-05-02, 22:04:57 - Kyle Sunderland

Re #751: Before triangulating contours, sort them so that the Z value of the contours increases sequentially Commit: r:2792|slicerrt:2792

2016-05-03, 19:40:18 - Kyle Sunderland

Re #751: Fix problem caused by removal of a function in the previous commit. Commit: r:2793|slicerrt:2793

2016-05-03, 20:23:04 - Csaba Pinter

Re #115, re #751: Attempt to fix build error on Mac and Linux Commit: r:2794|slicerrt:2794

2016-05-06, 18:53:59 - Csaba Pinter

Re #751: Commit Kyle’s end-capping code to the planar contours to closed surface converter; Test code is still present for record keeping purposes, another commit very soon will remove those lines. Commit: r:2796|slicerrt:2796

2016-05-06, 18:58:47 - Csaba Pinter

Re #751: Remove time measurement code from planar contour to closed surface converter Commit: r:2797|slicerrt:2797

2016-05-06, 19:47:41 - Csaba Pinter

Re #751: Fixed mistake in previously committed end-capping code that prevented the erosion to be performed more than one time (Kyle’s original code was correct in this sense) Commit: r:2798|slicerrt:2798

2016-05-06, 20:30:22 - Csaba Pinter

Re #751: Removed forced ribbon model usage from module tests that processed structures, because now with end-capping added the labelmap representation of the structures are almost identical Commit: r:2799|slicerrt:2799

2016-05-06, 20:48:30 - Kyle Sunderland

Re #751: Fixed a bug caused by vtkMarchingSquares that creates stray triangles in end capping. Commit: r:2800|slicerrt:2800

2016-05-06, 21:05:56 - Csaba Pinter

status: changed from “Accepted” to “Test”

2016-05-13, 20:35:08 - Kyle Sunderland

Re #751: Attempt to tidy up the code in vtkPlanarContourToClosedSurfaceConversionRule. Commit: r:2834|slicerrt:2834

2016-05-19, 15:24:39 - Kyle Sunderland

Re #751: Perform a decimation step on generated end cap contours. Also, try to address the bug caused by vtkMarchingSquares and vtkStripper. The previous fix caused some contours to be left open. This will likely be a reoccurring issue until the cause is discovered. Commit: r:2856|slicerrt:2856

2016-05-25, 16:29:23 - Csaba Pinter

Re #751: Fix DVH test by adjusting baselines to new values. The structures look identical, but the metrics were off by a tiny fraction Commit: r:2873|slicerrt:2873

2016-05-25, 17:57:02 - Kyle Sunderland

Re #751: Fix the end capping method for calculating contour spacing. The new method calculates the average distance between all contour slices, discarding contours that deviate from the average by >10%, and recalculating the average, which is returned as the spacing. Commit: r:2875|slicerrt:2875

2016-06-06, 13:48:53 - Csaba Pinter

I set this to fixed because end-capping seems to work nicely for our data and the user data issue was also fixed.

@Sunderlandkyl Please keep the test datasets (the few default ones you used for development and all of those that had any problems to fix, both for end-capping only and contours to surface) in one place on your computer. Please send me an email with the two lists of these datasets, marking which of these we have in our SVN (SlicerRt/data) and which we don’t. I’ll add those to the SVN that are anonymized, and add a note file too with the list of data that need to be tested when end-capping (or contours to surface) changes. Thanks!

2016-06-06, 13:48:53 - Csaba Pinter

status: changed from “Test” to “Fixed”

2016-06-06, 18:52:33 - Kyle Sunderland

Re #751: Check to make sure the spacing is not zero, and revert to default spacing if it is. Reapply a change to the keyhole threshold tolerance, so the structures should be loaded correctly. Commit: r:2903|slicerrt:2903

2016-06-06, 19:01:15 - Csaba Pinter

Thanks, Kyle! I’m going to test it once my workig copy compiles again.

2016-06-06, 19:01:15 - Csaba Pinter

status: changed from “Fixed” to “Test”

2016-06-06, 20:26:30 - Csaba Pinter

status: changed from “Test” to “Fixed”

2016-09-08, 22:10:00 - Kyle Sunderland

Re #751: Fix change from commit 3077 in the contour to surface algorithm that caused a Dose Volume Histogram test to fail. The FixLines method in the end capping step is not ideal, and needs to be removed once a better solution is found. Commit: r:3084|slicerrt:3084

#752 Fix node type definitions in node selectors in scripted modules

See http://slicer-devel.65872.n3.nabble.com/Node-types-definition-in-qMRMLNodeComboBox-node-selectors-td4034532.html

2015-07-14, 21:48:34 - Csaba Pinter

Re #752: Update node selector node types in gel dosimetry Commit: r:2345|slicerrt:2345

2015-07-14, 21:49:39 - Csaba Pinter

Fixed #752: Update node selector node types in SlicerRT modules Commit: r:2346|slicerrt:2346

2015-07-14, 21:49:39 - Csaba Pinter

status: changed from “New” to “Fixed”

#753 Show dose volumes only checkbox does not work with segmentations

The attribute filtering in MRML node comboboxes work with only one attribute at a time that can be overwritten by a subsequent addAttribute call. So in the previous implementation with Contours the dose volume attribute was simply overwritten by the labelmap attribute with 0 value. Now that there is no labelmap attribute, this cannot be done, and unfortunately the API does not support removing attributes from filtering.

2015-07-15, 18:59:06 - Csaba Pinter

Added removeAttribute to MRML node comboboxes in commit http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=24425

2015-07-15, 19:00:58 - Csaba Pinter

Fixed #753: Fix show dose volumes only checkbox in modules DVH, DvhComparison and Isodose

Enabled by Slicer core change http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=24425 Commit: r:2347|slicerrt:2347

2015-07-15, 19:00:58 - Csaba Pinter

status: changed from “New” to “Fixed”

#754 Slicer 24141 broke vtkMRMLSequenceBrowserNode

Function RemoveAllNodeReferenceIDs renamed to RemoveNodeReferenceIDs

2015-07-20, 19:48:03 - Adam Rankin

re #754 Function calls renamed to RemoveNodeReferenceIDs

Outstanding issues with labelmap changes Commit: r:2355|slicerrt:2355

2015-07-20, 19:58:37 - Adam Rankin

test #754 adding handling of new vtkMRMLLabelmapVolumeNode case Commit: r:2356|slicerrt:2356

2015-07-20, 19:58:37 - Adam Rankin

status: changed from “New” to “Test”

2015-07-20, 20:00:53 - Adam Rankin

test #754 order matters! logic now checks for vtkMRMLabelmapVolumeNode before vtkMRMLScalarVolumeNode Commit: r:2357|slicerrt:2357

2015-07-20, 20:01:17 - Adam Rankin

@lassoan Would you mind verifying that this is fixed to your satisafaction?

2015-07-20, 20:01:17 - Adam Rankin

assigned_to_id: changed from “rankin” to “lassoan”

2015-07-20, 20:13:36 - Adam Rankin

Nevermind, extension is on github!

2015-07-20, 20:13:36 - Adam Rankin

status: changed from “Test” to “Invalid”

#755 Replace optical density with optical attenuation on gel slicelet UI

Optical attenuation with unit cm^-1 is more accurate than the unitless optical density

2015-07-21, 15:47:25 - Csaba Pinter

summary: changed from “Replace optical density to optical attenuation on gel slicelet UI” to “Replace optical density with optical attenuation on gel slicelet UI”

2015-07-21, 15:49:04 - Csaba Pinter

Fixed #755: Optical density replaced with optical attenuation on gel slicelet UI and in the code; Self test button on slicelet appears when in developer mode, no need for manually showing/hiding it any more for development Commit: r:2360|slicerrt:2360

2015-07-21, 15:49:04 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

2015-07-21, 15:49:21 - Csaba Pinter

image:anC8OAl8ar5ytcacwqjQXA

2015-07-21, 15:49:21 - Csaba Pinter

Attachment added: “20150715_OA1.png”

2015-07-21, 15:49:21 - Csaba Pinter

image:anJqb6l8ar5ytcacwqjQXA

2015-07-21, 15:49:21 - Csaba Pinter

Attachment added: “20150715_OA2.png”

2015-07-21, 15:49:21 - Csaba Pinter

image:anTZ_Ol8ar5ytcacwqjQXA

2015-07-21, 15:49:21 - Csaba Pinter

Attachment added: “20150715_OA3.png”

2015-07-21, 16:00:24 - Csaba Pinter

description: changed from “” to “Optical attenuation with un…”

#756 Hausdorff distance error with 1 slice images

Problem was reported on plastimatch forum.
https://groups.google.com/forum/#!topic/plastimatch/4c6XLe4Emgg

Needs plastimatch version update to fix in SlicerRT.

2015-07-23, 18:10:27 - Greg Sharp

summary: changed from “Hausdorff distance error with 1 voxel slices” to “Hausdorff distance error with 1 slice images”

2015-08-05, 15:47:34 - Greg Sharp

Fixed in revision 2387

2015-08-05, 15:47:34 - Greg Sharp

status: changed from “New” to “Fixed”

2015-08-05, 15:54:38 - Csaba Pinter

Awesome, thanks! Sorry btw for the double brackets issue, it seems to slip through every time. I’m getting used to it myself, but this time it was a student’s code that I integrated. Should have paid more attention.

#757 Create editor module to edit segmentations

The decision is that modifying the Editor module to handle segmentations is too risky (due to the organic codebase and the high chance of regressions on any change), so creating a new editor module for segmentations is necessary.

2015-08-06, 17:51:59 - Adam Rankin

+1

2015-08-06, 18:17:21 - Csaba Pinter

In the meantime editing segments is possible by exporting segment to labelmap volume node, edit in Editor, then import back to segmentation if needed

2016-01-14, 17:20:17 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2016-01-14, 17:20:21 - Csaba Pinter

status: changed from “New” to “Accepted”

2016-01-14, 17:20:24 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.19” to “SlicerRt 0.18”

2016-01-14, 18:52:12 - Csaba Pinter

Re #757: Added Segment editor widget and a highly experimental paint effect WIP Commit: r:2576|slicerrt:2576

2016-01-14, 21:20:41 - Csaba Pinter

Re #757: Fixed Windows build error Commit: r:2578|slicerrt:2578

2016-01-15, 01:37:45 - Csaba Pinter

Re #757: Added missing file Commit: r:2579|slicerrt:2579

2016-01-16, 21:50:39 - Csaba Pinter

Re #757: Changed effect class to Qt and added skeleton for abstract class WIP Commit: r:2582|slicerrt:2582

2016-01-18, 23:41:30 - Csaba Pinter

Re #757: Added effect plugin mechanism to segment editor Commit: r:2585|slicerrt:2585

2016-01-20, 00:43:02 - Csaba Pinter

Re #757: Added second effect class to segment editor WIP Commit: r:2586|slicerrt:2586

2016-01-20, 16:42:09 - Csaba Pinter

Re #757: Added effect parameter set node class; Cleaned up vtkMRMLSegmentationNode; Small fix in attribute reading in all parameter set nodes (initialize variable to prevent build warning) Commit: r:2587|slicerrt:2587

2016-01-20, 22:50:18 - Csaba Pinter

Re #757: Improved effect selection UI mechanism Commit: r:2588|slicerrt:2588

2016-01-21, 20:01:17 - Csaba Pinter

Re #757: Interaction event propagation to effects; Parameter set node handling; Active effect tracking in effect handler singleton Commit: r:2591|slicerrt:2591

2016-01-21, 21:00:48 - Csaba Pinter

Re #757: Added event handling for 3D views Commit: r:2592|slicerrt:2592

2016-01-22, 15:56:30 - Csaba Pinter

Re #757: Refactored segment editor effects to be handled by a factory that clones them for each editor widget. With no central effect handler managing registered and active effects, they are kept track of in each editor widget. Commit: r:2593|slicerrt:2593

2016-01-22, 18:02:05 - Csaba Pinter

Re #757: Fixed issues regarding a segmentation’s reference volume setting and calculation of common geometry Commit: r:2594|slicerrt:2594

2016-01-22, 18:53:44 - Csaba Pinter

Re #757: Set labelmap of selected segment to the effects for editing. Commit: r:2595|slicerrt:2595

2016-01-23, 21:59:49 - Csaba Pinter

Re #757: Progress towards a functional paint effect Commit: r:2597|slicerrt:2597

2016-01-24, 23:44:56 - Csaba Pinter

Re #757: Progress towards a functional paint effect WIP Commit: r:2598|slicerrt:2598

2016-01-25, 22:15:17 - Csaba Pinter

Re #757: Moved editor effect classes from Widgets to EditorEffects; Finished porting of PaintApply function Commit: r:2600|slicerrt:2600

2016-01-25, 23:38:00 - Csaba Pinter

Re #757: Finished porting main functions in paint effect Commit: r:2601|slicerrt:2601

2016-01-26, 16:46:41 - Csaba Pinter

Re #757, re #115: Fixed linux/mac build issue in abstract editor effect Commit: r:2602|slicerrt:2602

2016-01-26, 22:51:26 - Csaba Pinter

Re #757: Implemented editor effect option frames Commit: r:2603|slicerrt:2603

2016-01-27, 16:35:28 - Csaba Pinter

Re #757: Continued implementation of editor effect option frames and parameter storage in MRML Commit: r:2604|slicerrt:2604

2016-01-27, 19:43:14 - Csaba Pinter

Re #757: Fixes in effect parameter storage in MRML Commit: r:2605|slicerrt:2605

2016-01-28, 14:51:12 - Csaba Pinter

Re #757: Fix pain brush actor Commit: r:2606|slicerrt:2606

2016-01-28, 15:59:47 - Csaba Pinter

Re #757: Use temporary edited labelmap that is a copy of the segment binary labelmap padded to encompass the master volume. Editing is disabled until a master volume is selected (master volume is selected to be the reference volume associated to the segmentation, which is not mandatory in case the geometry did not come from a volume, e.g. the default lattice is used) Commit: r:2607|slicerrt:2607

2016-01-28, 20:36:33 - Csaba Pinter

Re #757: Only allow editing when master representation is binary labelmap, and offer change to user if not; Apply temporary padded labelmap back to segment and refresh slice view Commit: r:2608|slicerrt:2608

2016-01-28, 22:18:27 - Csaba Pinter

Re #757: Display is now updated when representations are invalidated on change of master representation; Fixed bug in CalculateEffectiveExtent Commit: r:2609|slicerrt:2609

2016-01-29, 01:41:54 - Csaba Pinter

Re #757: Re-convert representations in edited segment to contain all representations in the segmentation. Prevent invalidation of all non-master representations in all segments when editing a segment. This means that when a segment is edited, its closed surface representation is automatically updated in an effective way. Commit: r:2610|slicerrt:2610

2016-01-29, 15:54:46 - Csaba Pinter

Re #757: Editor widget moved back to widgets. EditorEffects only contains effects now Commit: r:2611|slicerrt:2611

2016-01-29, 21:52:58 - Csaba Pinter

Re #757, re #115: Attempt fixing VS2013 build errors; Added button row to segment editor widget for adding/removing segments, and for creating closed surface model for segmentation that is updated on each editing step (button only visible if closed surface is not present); Added help icon showing information about the active effect; Added Qt designer plugin for segment editor widget Commit: r:2612|slicerrt:2612

2016-01-29, 22:21:07 - Csaba Pinter

Re #757: Fixed issues in segment editor widget related to scene closing Commit: r:2613|slicerrt:2613

2016-01-31, 02:40:49 - Csaba Pinter

Re #757: Implemented label effect base class GUI and MRML; Effects have the selected segmentation and master volume IDs as members (for access instead of going through the slice logics, and as a prerequisite for working with masks) Commit: r:2614|slicerrt:2614

2016-01-31, 15:21:26 - Csaba Pinter

Re #757, re #115: Fixed build error when doing clean build Commit: r:2615|slicerrt:2615

2016-01-31, 18:46:26 - Csaba Pinter

Re #757: Fixed update issues related to label effect base class Commit: r:2616|slicerrt:2616

2016-02-01, 00:00:07 - Csaba Pinter

Re #757: Fixed issues related to editing empty segment Commit: r:2619|slicerrt:2619

2016-02-01, 19:16:20 - Csaba Pinter

Re #757: Work towards editing empty segments Commit: r:2620|slicerrt:2620

2016-02-02, 00:39:14 - Csaba Pinter

Re #757: Editing empty segment is working Commit: r:2623|slicerrt:2623

2016-02-02, 18:38:45 - Csaba Pinter

Re #757: Many minor fixes: padding large images, auto-select newly added segment, master volume selector enabled state and selection when scene is set Commit: r:2624|slicerrt:2624

2016-02-03, 01:04:41 - Csaba Pinter

Re #757: Add effect-specific cursor; Minor fixes Commit: r:2625|slicerrt:2625

2016-02-03, 16:30:14 - Csaba Pinter

Re #757: Replaced effect-specific parameter nodes to an editor-wide vtkMRMLSegmentEditorNode that contains all the effect parameters and the editor widget selections WIP Commit: r:2626|slicerrt:2626

2016-02-04, 19:31:32 - Csaba Pinter

Re #757: Using editor with the one segment editor parameter set node works well; Foundations laid down for using masks Commit: r:2627|slicerrt:2627

2016-02-04, 23:32:08 - Csaba Pinter

Re #757: Added SegmentEditor module that is a simple scripted module containing only a qMRMLSegmentEditorWidget Commit: r:2629|slicerrt:2629

2016-02-04, 23:43:23 - Csaba Pinter

Re #757: Edit selected segment feature in Segmentation now switches to Segment Editor module and selects current segmentation and segment. The user only needs to select effect and start editing Commit: r:2630|slicerrt:2630

2016-02-05, 17:54:00 - Csaba Pinter

Re #757: Fixed issues when closing scene Commit: r:2631|slicerrt:2631

2016-02-05, 18:18:18 - Csaba Pinter

Re #757: Fixed minor GUI issues Commit: r:2632|slicerrt:2632

2016-02-06, 14:45:45 - Csaba Pinter

Re #757: Paint over and paint threshold masking works Commit: r:2636|slicerrt:2636

2016-02-06, 15:58:39 - Csaba Pinter

Re #757: Segmentation display color table is now fully populated with empty segment colors and a mask color for the last index when creating; Segments contain their color index as a tag; Tag infrastructure improved (map instead of vector, all functions implemented) Commit: r:2637|slicerrt:2637

2016-02-07, 14:48:05 - Csaba Pinter

Re #757: Update merged labelmap generation to follow color table changes Commit: r:2638|slicerrt:2638

2016-02-08, 20:29:49 - Csaba Pinter

Re #757: Save/load tags with persistent storage; Fixed bug with empty segment creation in segmentations created by SegmentMorphology Commit: r:2639|slicerrt:2639

2016-02-09, 14:28:28 - Csaba Pinter

Re #757: Fixed DVH tests that were failing because of missing Tags field in the test data. Fixed by making tags optional. Commit: r:2640|slicerrt:2640

2016-02-11, 20:40:41 - Csaba Pinter

Re #757: Removed mask color index (and so the empty entries) from color table before starting on the displayable manager approach; Fixed segmentation python test Commit: r:2645|slicerrt:2645

2016-02-12, 22:52:50 - Csaba Pinter

Re #757: Improved segmentation display to support three per-segment visibility and opacity settings: 3D, 2D fill, 2D outline. The one eye button in the segment table view became three, one for each type. Instead of the one display model representation there is now two: 2D and 3D. WIP Commit: r:2649|slicerrt:2649

2016-02-15, 16:51:26 - Csaba Pinter

Re #757: Working version of the new segmentation 2D displayable manager; Two new actors drive the 2D image display: one for outline and one for fill; Merged labelmap merges all segments, visibility does not play a role any more; Color table entry opacities are not modified any more when segment visibility changes Commit: r:2650|slicerrt:2650

2016-02-15, 17:06:03 - Csaba Pinter

Re #757: Optimizations in segmentation 2D displayable manager; Removed unnecessary EnableTransparencyInColorTable member from segmentation display node; Commit: r:2651|slicerrt:2651

2016-02-15, 17:29:54 - Csaba Pinter

Re #757: Use new displayable manager features in segment editor: show fill for edited segment only, use outline for the others Commit: r:2652|slicerrt:2652

2016-02-15, 19:34:00 - Csaba Pinter

Re #757: When segment table header is clicked in the visibility columns then all segment visibility of that type is changed; Implemented polydata fill (merges all slices at once, disabled for now) WIP Commit: r:2653|slicerrt:2653

2016-02-16, 20:54:59 - Csaba Pinter

Re #757: Added python adaptor class for segment editor effects WIP Commit: r:2656|slicerrt:2656

2016-02-16, 21:57:34 - Csaba Pinter

Re #757: Continued implementation of segment editor effect python adaptor WIP Commit: r:2658|slicerrt:2658

2016-02-18, 17:32:51 - Csaba Pinter

Re #757: Added poly data fill in 2D views Commit: r:2666|slicerrt:2666

2016-02-18, 20:57:38 - Csaba Pinter

Re #757: Added first python scripted segment editor effect skeleton; Scripted effect discovery and python module loading works Commit: r:2669|slicerrt:2669

2016-02-18, 21:52:21 - Csaba Pinter

Re #757: Progress with first python scripted segment editor effect Commit: r:2670|slicerrt:2670

2016-02-18, 22:52:49 - Csaba Pinter

Re #757: First python segment editor effect is discovered and selectable (does nothing yet) Commit: r:2671|slicerrt:2671

2016-02-19, 22:19:34 - Csaba Pinter

Re #757: Implemented threshold effect as first python scripted segment editor effect (not fully functional yet); Added support for layout changes Commit: r:2672|slicerrt:2672

2016-02-20, 00:46:27 - Csaba Pinter

Re #757: Threshold effect works. It is the first python scripted segment editor effect, and serves as an example for other scripted effects Commit: r:2673|slicerrt:2673

2016-02-20, 20:01:51 - Csaba Pinter

Re #757: Scripted label effect adaptor and Draw effect implemented (not fully functional yet); Fixed keystroke handling in effects Commit: r:2674|slicerrt:2674

2016-02-20, 21:30:27 - Csaba Pinter

Re #757: Fixed broken paint over feature Commit: r:2675|slicerrt:2675

2016-02-20, 22:54:19 - Csaba Pinter

Re #757: Draw effect works. It is the first python scripted label effect Commit: r:2676|slicerrt:2676

2016-02-21, 00:36:45 - Csaba Pinter

Re #757: Morphology effect abstract subclass, scripted morphology effect adaptor and Dilate effect implemented Commit: r:2677|slicerrt:2677

2016-02-21, 14:03:37 - Csaba Pinter

Re #757: Erode effect added Commit: r:2678|slicerrt:2678

2016-02-21, 14:42:35 - Csaba Pinter

Re #757: Define default effect order; Use default cursor for effects that don’t need special cursor Commit: r:2679|slicerrt:2679

2016-02-21, 15:54:10 - Csaba Pinter

Re #757: Implemented Use for paint function in threshold effect. Introduced common parameters that are not effect-specific (with attribute names prefixed with the effect name) and can be used for multiple effects. Such common parameters are typically used by base classes, such as label and morphology Commit: r:2680|slicerrt:2680

2016-02-21, 16:23:11 - Csaba Pinter

Re #757: Moved registering of python effects to Segmentations module, where the C++ effects are registered. Otherwise 1. it would be the responsibility of the module that embeds the segment editor widget thus adding extra complexity of those modules, and 2. it would be inconsistent that registration of the two types of effects happen in different places. Commit: r:2681|slicerrt:2681

2016-02-21, 17:48:46 - Csaba Pinter

Re #757: Rectangle effect implemented; Renamed abstract special effect base classes (label, morphology) to better reflect their purpose Commit: r:2682|slicerrt:2682

2016-02-21, 18:12:30 - Csaba Pinter

Re #757: Erase effect added Commit: r:2683|slicerrt:2683

2016-02-21, 19:06:30 - Csaba Pinter

Re #757: LevelTracing effect added Commit: r:2684|slicerrt:2684

2016-02-21, 19:33:52 - Csaba Pinter

Re #757: Fixed crash on scene close Commit: r:2685|slicerrt:2685

2016-02-23, 21:38:35 - Csaba Pinter

Re #757: Added Island effect base class and python adaptor; Added IdentifyIslands effect; Added perSegment flag to abstract effect that will allow effects to operate on the whole segmentation instead of a selected one (like GrowCut and SaveIsland); Moved code that applies changes of edited labelmap to segment into logic (SetBinaryLabelmapToSegment method) Commit: r:2689|slicerrt:2689

2016-02-23, 22:30:40 - Csaba Pinter

Re #757: Fixed deletion of segmentation node virtual branch in subject hierarchy. The solution to the bug that was supposed to be fixed in rev2524 is in Slicer core (see Slicer rev24944), instead here not explicitly removing the segmentation Commit: r:2690|slicerrt:2690

2016-02-29, 17:43:54 - Csaba Pinter

Re #757: Added grow cut effect WIP Commit: r:2693|slicerrt:2693

2016-03-01, 20:36:56 - Csaba Pinter

Re #757: Changed merged labelmap scalar type from unsigned char to short [1]; Added method to vtkOrientedImageData to copy only directions (this also simplifies the class code); Progress toward making GrowCut effect functional; Fixed MRML de-serialization of segmentation node

[1] It was changed in rev2693 but did not work properly Commit: r:2695|slicerrt:2695

2016-03-03, 17:47:47 - Csaba Pinter

Re #757: GrowCut effect works; Added support for non-per-segment effects (such as GrowCut) that operate on the whole segmentation instead of one segment. If such an effect is selected, then segment selection is cleared, and per-segment effects are disabled until a segment is selected again Commit: r:2697|slicerrt:2697

2016-03-03, 18:45:08 - Csaba Pinter

Re #757: Added option for segment editor effects to initiate selecting another effect or deselecting themselves. First use is in Threshold to de-select the effect on apply so that the preview pulsing becomes a solid segment Commit: r:2698|slicerrt:2698

2016-03-03, 21:40:16 - Csaba Pinter

Re #757: Added feature for creation/removal of closed surface representation Commit: r:2699|slicerrt:2699

2016-03-04, 15:41:42 - Csaba Pinter

Re #757: Fixed Qt designer crash that was due to a connect that used the Slicer application to get the layout manager Commit: r:2701|slicerrt:2701

2016-03-04, 20:40:42 - Csaba Pinter

Re #757: Changed segments table visibility controls from three columns back to one, but containing a button with advanced options on long press Commit: r:2702|slicerrt:2702

2016-03-07, 16:30:37 - Csaba Pinter

Re #757: Make segmentation 2D surface visualization more stable (still not completely stable, probably need other way of building the 2D polydata actor) Commit: r:2704|slicerrt:2704

2016-03-07, 18:34:02 - Csaba Pinter

Re #757: Segment visibility buttons not checkable any more to look nicer (the eye icon shows the state anyway); The visibility button is in ‘on’ state if any of the three visibility types are on; Fixed bug when shown representation type comboboxes were empty after importing labelmap to segmentation; Further stabilized 2D poly data visualization: closed cells are added to visualized poly data (instead simply not showing anything if even one cell is closed); Removed unnecessary event invoking for SH segment node adding Commit: r:2705|slicerrt:2705

2016-03-07, 20:07:55 - Csaba Pinter

Re #757: New segments are assigned a color from the generic label color table instead of the invalid gray color; Displayed color for segments are now saved to file and loaded Commit: r:2706|slicerrt:2706

2016-03-07, 22:40:10 - Csaba Pinter

Re #757: Further improvement of segmentation 2D surface fill visualization Commit: r:2707|slicerrt:2707

2016-03-08, 00:54:16 - Csaba Pinter

Re #757: Improved segmentation representation list view: Conversion options consolidated in a tool button that when clicked creates the representation using default parameters, and has a timeout menu with Advanced and Remove actions. Advanced is the same as the Advanced button before (convert using custom parameters), and Remove is a new feature for removing a representation from the segmentation Commit: r:2708|slicerrt:2708

2016-03-11, 21:25:05 - Csaba Pinter

Re #757: Removed parameter set node selector from Segment editor. It reduces complexity of the module, and one parameter set node is expected to be used in the module. Commit: r:2720|slicerrt:2720

2016-03-15, 20:12:09 - Csaba Pinter

Re #757: Attempt to fix python scripted segment editor effects in installed packages; Fixed crash when a segment without name is added to a segmentation with no ID specified Commit: r:2724|slicerrt:2724

2016-03-15, 21:35:00 - Andras Lasso

re #757: Optimized speed of vtkOrientedImageDataResample::CalculateEffectiveExtent

CalculateEffectiveExtent is still the largest contributor to slow response time at effect application for large volumes. It might be possible to further optimize the code but most probably the best would be to allow effects to provide what extent they updated. It would be optional and would only be used by paint, draw, erase, etc. effects (that operate in a small region only).

Commit: r:2725 slicerrt:2725

2016-03-16, 20:27:46 - Andras Lasso

re #757: Segmentation editor performance optimizations Commit: r:2727|slicerrt:2727

2016-03-18, 18:48:53 - Csaba Pinter

Re #757: Fixed segmentation labelmap writing; Fixed SegmentationMorphology automatic tests; Fixes in Segmentations python test Commit: r:2734|slicerrt:2734

2016-03-20, 14:03:45 - Andras Lasso

re #757: Fixed effective extent computation

There are still issues:

2016-03-20, 15:56:08 - Csaba Pinter

Thanks for the fix! The need to expand by 1 is strange indeed.

2016-03-21, 14:55:23 - Csaba Pinter

Re #757: Fixed Segmentations python test Commit: r:2738|slicerrt:2738

2016-03-21, 17:36:28 - Andras Lasso

re #757: Fixed crash in segmentation labelmap writing

Current labelmap was modified on-the-fly, which triggered updates that invalidated the labelmap that was being written.

Changed implementation so that we don’t change the current representation when saving. Commit: r:2740|slicerrt:2740

2016-03-21, 20:12:38 - Andras Lasso

re #757: Multiple extent related fixes.

Remaining problems:

2016-03-21, 20:16:43 - Andras Lasso

re #757: Multiple extent related fixes Commit: r:2742|slicerrt:2742

2016-03-21, 21:36:14 - Andras Lasso

re #757: Added segment editor module icon Commit: r:2743|slicerrt:2743

2016-03-22, 03:30:00 - Andras Lasso

re #757: Fixed current effect’s cursor remaining active after exit from SegmentEditor Commit: r:2744|slicerrt:2744

2016-03-22, 04:04:48 - Andras Lasso

re #757: Fixed problem of effect’s 2D overlay not visible after deactivating and activating the module. Commit: r:2745|slicerrt:2745

2016-03-22, 04:27:18 - Andras Lasso

re #757: Allow segmentation rename in segment editor Commit: r:2746|slicerrt:2746

2016-03-23, 16:20:01 - Andras Lasso

re #757: Create default segmentation node and select default master volume when entering Segmentation editor Commit: r:2747|slicerrt:2747

2016-03-23, 16:22:02 - Andras Lasso

re #757: Fixed slowing down of paint effect

As more and more spheres were added, paint effect was slowing down. The problem was that each time the mouse moved all sphere actors were removed and added back.

Fixed by using a single actor for feedback with a glyph filter (that clones the mouse cursor N times). Commit: r:2748|slicerrt:2748

2016-03-23, 19:42:52 - Andras Lasso

re #757: Fixed segmentation editor initialization Commit: r:2749|slicerrt:2749

2016-03-23, 20:09:40 - Andras Lasso

re #757: Made qMRMLSegmentationEditorWidget methods accessible from python Commit: r:2750|slicerrt:2750

2016-03-24, 13:13:26 - Andras Lasso

re #757: Fixed crash on application exit in qSlicerSegmentEditorEffectFactory::~qSlicerSegmentEditorEffectFactory()

Probably the crash was because register was called from an effect instance that was destroyed earlier than the effect factory. Re-shuffling the order (and also removing hardcoded effect list in the module startup) seems to have fixed the problem. Commit: r:2755|slicerrt:2755

2016-04-04, 14:31:43 - Csaba Pinter

Re #757: Fixed Segmentations python test by adjusting baselines to match current metrics Commit: r:2763|slicerrt:2763

2016-04-07, 20:21:06 - Csaba Pinter

Re #757: Fixed GelDosimetry to follow Segmentation visibility and opacity changes Commit: r:2770|slicerrt:2770

2016-04-07, 20:24:08 - Csaba Pinter

Re #757: Re-add segmentation display method SetSegmentVisibility to set all three kinds of visibility for backwards compatibility and convenience Commit: r:2771|slicerrt:2771

2016-04-15, 19:44:03 - Csaba Pinter

Re #757: Fixed paint over function Commit: r:2779|slicerrt:2779

2016-04-16, 04:16:02 - Andras Lasso

re #757: Small improvements in segment editor

2016-05-08, 01:16:04 - Andras Lasso

assigned_to_id: changed from “pinter” to “lassoan”

2016-05-08, 01:18:50 - Andras Lasso

re #757: Fixed crashes caused by accessing unallocated memory area

Whenever image extents are changed, the image buffer has to be reallocated, as most of the time the assumption is that enough memory is allocated to store the current image extent. Commit: r:2802|slicerrt:2802

2016-05-08, 01:20:07 - Andras Lasso

re #757: Removed unused vtkOrientedImageData::InternalOrientedImageDataCopy method Commit: r:2803|slicerrt:2803

2016-05-08, 01:26:21 - Andras Lasso

re #757: Fixed crash in vtkSegment and improved PrintSelf

Commit: r:2804 slicerrt:2804

2016-05-08, 01:27:59 - Andras Lasso

re #757: Fixed crashes caused by accessing unallocated memory area

Whenever image extents are changed, the image buffer has to be reallocated, as most of the time the assumption is that enough memory is allocated to store the current image extent. Commit: r:2805|slicerrt:2805

2016-05-08, 01:34:05 - Andras Lasso

re #757: Added segment visibility attribute

This allows show/hide of a segment without resetting individual visualization mode settings (3D, 2D solid, 2D outline). Commit: r:2806|slicerrt:2806

2016-05-08, 01:43:32 - Andras Lasso

re #757: Added more utility functions to vtkOrientedImageDataResample Commit: r:2807|slicerrt:2807

2016-05-08, 01:44:31 - Andras Lasso

re #757: Improved vtkSegmentation PrintSelf, allow adding new named segments in one step Commit: r:2808|slicerrt:2808

2016-05-09, 13:24:50 - Andras Lasso

re #757: Reworked segment editor

The edited labelmap is just a modifier image now (containing the last stroke that has to be added/removed/replaced in the existing labelmap). This allows applying the modification to the current segment and its inverse to other segments. This enables a new key feature: masking. Masking can be used to restrict editing to certain regions (inside/outside specific segments) and to control overlap/overpaint.

Also reworked how segment labelmap geometry is determined. Geometry defined in ‘reference image geometry’ conversion parameter is used as edited segment labelmap geometry. If it’s not defined then geometry of existing segments are used. If there were no existing segments either, then the master volume’s geometry is used. If master volume is changed, segment labelmap geometry remains the same and so other various volumes can be used as master volumes (they are resampled to match the segment labelmap geometry).

Painting can now be performed on any slice orientations, as a 3D brush is generated. The 3D brush is shown in all other views (both 2D and 3D). 2D brush thickness is determined by slice spacing.

Painting is now possible on 3D views, too.

Editable intensity range is now available for all effects. It controls what area of the image the selected segment is allowed to be changed. It brings ‘threshold paint’ to other effects, such as rectangle, drawing, etc.

Experimentally, use built-in VTK morphological operators for dilation. Commit: r:2809|slicerrt:2809

2016-05-09, 13:33:06 - pieper

Sounds great Andras! Looking forward to seeing a demo sometime.

2016-05-09, 13:46:34 - Andras Lasso

You can already try it in SlicerRT nightly versions (these new changes will be available tomorrow) but it’ll take a few more weeks to fix all the bugs and optimize performance. We’ll also add new features in the coming few weeks that have become very easy to implement, such drawing on 3D views for removing objects by contouring them in the 3D viewer, logical operators, more morphological operators, etc.

2016-05-09, 14:26:36 - Andras Lasso

re #757: Fixed extra brush appearing in slice views Commit: r:2810|slicerrt:2810

2016-05-09, 14:46:09 - jchris

+1000 :) Impressive work.

2016-05-09, 14:56:55 - Csaba Pinter

Thanks, Jc :)

I think a demo will be very useful once Andras is done with the masking/paint-over features. I created Segment Editor to have the exact same functionality as Editor, with the completely new architecture, just to prove that it works. Now Andras is making it stable and easier to use, exploit the advantages of Segmentations over labelmaps, and an overhaul of the masking feature.

We talked a lot about the masking changes, and I think it would be good if at least you guys also agreed on it.

2016-05-09, 16:30:54 - Andras Lasso

re #757: Fixed remaining problems with extra brush appearing in slice views (by preventing calling updateGUIFromMRML for inactive effects) Commit: r:2811|slicerrt:2811

2016-05-09, 19:16:10 - Csaba Pinter

Re #757: Fixed crash when trying to load older type Segmentation after storage node changes Commit: r:2812|slicerrt:2812

2016-05-09, 20:08:25 - Andras Lasso

re #757: Fixed linux build error (used map::erase return value that has only become standard in C++11) Commit: r:2813|slicerrt:2813

2016-05-09, 21:51:17 - Andras Lasso

re #757: Fixed memory leak Commit: r:2815|slicerrt:2815

2016-05-10, 13:06:24 - Andras Lasso

re #757: Fixed memory leak Commit: r:2816|slicerrt:2816

2016-05-10, 13:32:38 - Andras Lasso

re #757: Automatically create segment display properties for any segment.

Requesting display properties from any segment is always considered a valid request from now on. There is no need for checking output of vtkMRMLSegmentationDisplayNode::GetSegmentDisplayProperties, as it always returns valid properties. This was necessary to allow displaying a segment with default settings without explicitly specifying display settings.

Made segment property reading more robust. Segments can be read if their specification is incomplete (for example, if color is not specified then default color will be used) Commit: r:2817|slicerrt:2817

2016-05-10, 13:35:30 - Andras Lasso

re #757: Update test data sets with new field names (prefixed with SegmentN_ and Segmentation_) Commit: r:2818|slicerrt:2818

2016-05-10, 13:37:48 - Andras Lasso

re #757: Made Segmentation module widget more robust for scene opening/closing/importing

Before the fix, segment list was often empty after scene import and segment display properties were sometimes overwritten by default values. Commit: r:2819|slicerrt:2819

2016-05-11, 02:56:45 - Andras Lasso

re #757: Added SetImageToWorldMatrix(vtkMatrix4x4) method to vtkOrientedImageData. The SetGeometryFromImageToWorldMatrix(vtkMatrix4x4) method name was just too confusing (but kept it for now for backward compatibility). Commit: r:2820|slicerrt:2820

2016-05-11, 03:00:23 - Andras Lasso

re #757: Fixed crash when adding a segment without a name Commit: r:2821|slicerrt:2821

2016-05-11, 03:05:40 - Andras Lasso

re #757: Fixed crash due to double-delete of segment. Removed all manual Register/UnRegister calls - they can be mismatched too easily (if modified events are disabled twice then it deletes the segment or representation from the segmentation). The event broker can safely keep track of all observations. Commit: r:2822|slicerrt:2822

2016-05-11, 03:11:42 - Andras Lasso

re #757: Fixed editor masking errors Commit: r:2823|slicerrt:2823

2016-05-11, 19:03:06 - Csaba Pinter

Re #757: Fixed ExternalBeamPlanning logic test by updating the test dataset to the new storage style Commit: r:2824|slicerrt:2824

2016-05-12, 00:33:56 - Andras Lasso

re #757: Fixed Add Segment button enabled state (now it’s disabled if no segmentation node is selected) Commit: r:2825|slicerrt:2825

2016-05-12, 00:35:00 - Andras Lasso

re #757: Prevent changing focus to another widget when scrolling over the top or bottom of the segment list in qMRMLSegmentsTableView Commit: r:2826|slicerrt:2826

2016-05-13, 18:09:10 - Csaba Pinter

Re #757: Fixed Segmentations python test by adjusting baselines to follow end-capping changes. Need to investigate number of vertices for end-capping part of body model as it’s unreasonably high. Commit: r:2832|slicerrt:2832

2016-05-21, 05:28:29 - Andras Lasso

re #757: Improved vtkOrientedImageDataResample performance

Logic for checking if a transform is identity or not was not correct. Also, now if only the image extents are different then padding is performed instead of resampling. Commit: r:2866|slicerrt:2866

2016-05-21, 05:30:53 - Andras Lasso

re #757: Fixed qSlicerSubjectHierarchySegmentationsPlugin behavior for StartModify/EndModify (batch update, without segment ID) Commit: r:2867|slicerrt:2867

2016-05-21, 11:25:26 - Andras Lasso

re #757: Use Teem’s vtkNRRDReader and vtkNRRDReader for binary labelmap file read/write

These reader/writer classes are used throughout Slicer to read 4D images. Data is stored as list of 3D volumes instead of a 4D spatial volume.

A side effect is that a segmentation can now be loaded as a sequence (useful for testing).

Reader for the old file format is kept for now for backward compatibility (can be disabled by undefining or removing parts marked with #ifdef SUPPORT_4D_SPATIAL_NRRD).

Requires latest nightly Slicer, as the NRRD reader threw error when attempted to read a 4D spatial nrrd (legacy segmentation file format).

Commit: r:2868 slicerrt:2868

2016-05-21, 16:39:19 - Csaba Pinter

Thanks, this is a good feature! I’d not worry about backward compatibility, as it’s only Hillary Elrick who’s using segmentations and she can convert her results easily enough if we tell her how.

2016-05-25, 15:30:59 - Csaba Pinter

Re #757: Fixed subject hierarchy segment visibility function Commit: r:2872|slicerrt:2872

2016-05-25, 21:34:46 - Andras Lasso

re #757: Added convenience functions for setting segment display properties in bulk (for all segments or all visible segments). Also added option to show/hide node selectors in the segment editor widget. Commit: r:2876|slicerrt:2876

2016-05-26, 22:24:30 - Andras Lasso

re #757: Fixed crash when trying to save a segmentation containing only empty segments Commit: r:2878|slicerrt:2878

2016-06-01, 02:11:25 - Andras Lasso

re #757: Fixed module import errors caused by Slicer core changes Commit: r:2883|slicerrt:2883

2016-06-01, 12:49:21 - Andras Lasso

re #757: Added smoothing editor effect (WIP) Commit: r:2884|slicerrt:2884

2016-06-01, 21:56:57 - Andras Lasso

re #757: Median smoothing effect is functional

There is a shift in X axis after smoothing - need to investigate. Commit: r:2888|slicerrt:2888

2016-06-01, 21:58:08 - Andras Lasso

re #757: Fixed saving and reloading of segmentation Commit: r:2889|slicerrt:2889

2016-06-02, 02:43:02 - Andras Lasso

re #757: Fixed segment editor parameter node reset on scene close Commit: r:2890|slicerrt:2890

2016-06-02, 05:00:06 - Andras Lasso

re #757: Force median smoothing kernel size to be odd number (otherwise image shift may occur) Commit: r:2891|slicerrt:2891

2016-06-02, 22:17:17 - Andras Lasso

re #757: Attempt to fix ghost brushes sometimes appearing next to actual brush circle

AbstractEffect::Add/remove actors methods now only add/remove the actors but the abstract effect doesn’t maintain a list of actors anymore. Actors are stored in effect pipelines anyway, so the list in the abstract effect just made ownership of actors and responsibility of removing from renderers less clear. Commit: r:2894|slicerrt:2894

2016-06-03, 19:49:33 - Andras Lasso

re #757: Fixed import of models into transformed segmentation

Optional segmentation node parameter was not given to vtkSlicerSegmentationsModuleLogic::CreateSegmentFromModelNode and so parent transform of the segmentation was ignored. Commit: r:2896|slicerrt:2896

2016-06-06, 16:12:38 - Csaba Pinter

Re #757: Fixed crash in segments table view by making the pointers weak; Did the same as prevention to beams table; Both widgets are now subclass of qMRMLWidget Commit: r:2901|slicerrt:2901

2016-06-06, 17:50:19 - Andras Lasso

re #757: Fixed export of labelmaps in a rotated segmentation geometry Commit: r:2902|slicerrt:2902

2016-06-06, 22:16:17 - Andras Lasso

re #757: Added morphological opening, closing, and Gaussian smoothing to smoothing filter Commit: r:2908|slicerrt:2908

2016-06-07, 02:19:01 - Andras Lasso

re #757: Improved segment editor layout to make instructions more visible. Commit: r:2909|slicerrt:2909

2016-06-09, 01:45:28 - Andras Lasso

re #757: Several segmentations bugfixes

Commit: r:2922 slicerrt:2922

2016-06-11, 03:08:15 - Andras Lasso

re #757: Several segmentations bugfixes

2016-06-11, 03:17:15 - Andras Lasso

re #757: Fixed export to labelmap of segments that are outside the reference geometry extent. The extent of the exported labelmap is the union of the effective extents of the segments. Commit: r:2935|slicerrt:2935

2016-06-11, 03:51:11 - Andras Lasso

re #757: Fixed display of 3D models that are just imported into a transformed segmentation node (it appeared in a wrong position initially until a transform change) Commit: r:2936|slicerrt:2936

2016-06-11, 19:17:22 - Andras Lasso

re #757: Improved smoothing effect GUI (kernel size is displayed also in pixels; long description of methods is added to tooltip) Commit: r:2937|slicerrt:2937

2016-06-11, 21:57:06 - Andras Lasso

re #757: Merged erode and label effects to new ‘Margin’ effect. Added ‘Logical’ effect for union/subtraction/intersection/copy/fill/clear operations (WIP). Commit: r:2938|slicerrt:2938

2016-06-13, 13:20:08 - Andras Lasso

re #757: Replaced qMEMLSegmentsTableView::setMode by several individual methods for setting display properties. Also implemented ‘copy’ operation in logical operations effect.

Many different combinations of displayed header/columns and selection model are needed. A few predefined presets (VisibilityOptionsMode, SimpleListMode, RepresentationMode, EditorMode) was not flexible enough (e.g., in the segment selector in the logical operations effect sometimes needs single, sometimes needs multiple selections; also, color column is useful to show but show/hide or opacity is not needed - to support this at least two more resets would have been needed). Commit: r:2942|slicerrt:2942

2016-06-13, 13:27:21 - Andras Lasso

re #757: Clarified that in binary or fractional labelmaps values <=0 are considered background voxels (outside), values>0 are foreground (inside).

Made small adjustments in the code to better reflect this. ALso added a few NULL-pointer and consistency checks.

Commit: r:2943 slicerrt:2943

2016-06-13, 14:13:24 - Andras Lasso

re #757: Renamed editedLabelmap to modifierLabelmap to more clearly describe its actual role. We need to use modifier labelmap instead of directly modify the edited segment’s labelmap to allow efficiently apply operations to all other segments (e.g., if a paint stroke is performed on one segment then we may want to remove the same stroke from all the other segments). Commit: r:2944|slicerrt:2944

2016-06-16, 14:13:07 - Andras Lasso

re #757: Implemented all ‘Logical’ effect operations (copy/add/remove/intersect with another segment, fill/clear/invert selected segment) and several fixes.

2016-06-16, 22:41:02 - Csaba Pinter

Re #757: Fixed GrowCut segment editor effect that broke due to previous Segmentations and Slicer core changes Commit: r:2952|slicerrt:2952

2016-07-06, 16:49:53 - Csaba Pinter

Re #757: Update SlicerRT to work with Slicer core with the Segmentations infrastructure integrated Commit: r:2972|slicerrt:2972

2016-07-07, 18:03:54 - Csaba Pinter

Re #757: Fixed failing tests that failed due to a side effect of the integration of segmentations into Slicer core: vtkPlanarContourToClosedSurfaceConversionRule was moved to DicomRtImportExport/ConversionRules and from then on was not registered by default when the segmentations logic was created, so it needed to be registered explicitly in these tests Commit: r:2977|slicerrt:2977

2016-07-08, 04:32:00 - Csaba Pinter

Setting it to fixed, as Segment Editor is mostly ready and has been now integrated into Slicer core. Testing has been started by the users, and further commits will be made in the core.

Mantis ticket for the last missing feature (undo/redo): http://na-mic.org/Mantis/view.php?id=4232

2016-07-08, 04:32:00 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

2016-07-08, 05:07:11 - jchris

:+1

@Csaba: Thanks again to everyone at Queen’s for making it happen.

#758 File name issues with double extensions in segmentations storage

2015-09-17, 19:01:37 - Csaba Pinter

priority: changed from “Normal (3)” to “Low (4)”

2016-01-31, 19:44:46 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.18” to “SlicerRt 0.19”

2016-08-29, 15:24:21 - Csaba Pinter

@lassoan ‘s pull request that solves the problem: https://github.com/Slicer/Slicer/pull/574

2016-08-31, 15:38:51 - Andras Lasso

Fix integrated into Slicer rev25326

2016-08-31, 15:38:51 - Andras Lasso

status: changed from “New” to “Fixed”

#759 Memory leak when closing scene after computing DVH

2015-08-06, 19:11:37 - Csaba Pinter

Fixed #759: Memory leak fixed when closing scene after calculating DVH. The leak itself was fixed by replacing vtkMRMLScene::CreateNodeByClass call to ordinary smart pointer new call. Apparently CreateNodeByClass is not safe to use; The lines added to OnMRMLSceneEndClose empty the DVH table after scene is closed (the arrays were still on the UI) Commit: r:2392|slicerrt:2392

2015-08-06, 19:11:37 - Csaba Pinter

status: changed from “New” to “Fixed”

2015-08-06, 21:30:04 - jchris

Hi Csaba,

For the rational behind not using CreateNodeByClass from python, see http://wiki.slicer.org/slicerWiki/index.php/Documentation/Nightly/Developers/Tutorials/MemoryManagement#Python_scripts_and_scripted_modules

Hth

Jc

2015-08-07, 16:28:43 - Csaba Pinter

Thanks, Jc! So it is safe to use then, but it needs to be handled similarly to the functions that return vtkCollections. Good to know!

#760 Segmentations automatic tests

2015-08-07, 19:03:09 - Csaba Pinter

Re #760: Fixed DVH test scenes to use segmentations instead of contours; Removed old contour files, added new segmentation files (planar contour representations) Commit: r:2395|slicerrt:2395

2015-08-11, 16:39:58 - Csaba Pinter

Re #760: Fixed prostate DVH tests. Needed to replace baseline due to changed body contour rasterization (now it pads labelmap correctly even for DVH) Commit: r:2396|slicerrt:2396

2015-08-13, 17:39:56 - Csaba Pinter

Re #760: Fixed crash in DVH tests. Double array nodes reference count decreased below zero; Automatic oversampling values are stored in the DVH parameter set node and read by the test. Commit: r:2398|slicerrt:2398

2015-08-13, 20:32:44 - Csaba Pinter

Re #760: Fixed all DVH tests. Eclipse ENT datasets did not contain the structure Dose5200cGy (it was probably a bug with Contours that it was not calculated by SlicerRT for some reason, have not tested this), which had to be added to the CERR and Eclipse baselines. Because of the additional structure with relatively low acceptance rate due to its extremely small size, tolerance had to be adjusted for three tests. Commit: r:2399|slicerrt:2399

2015-08-13, 20:58:30 - Csaba Pinter

Re #760: Fixed minor bug in DVH module that caused the dose volume name for the last DVH not to appear (this change slightly sped up the calculation too); Made DVH table values non-editable (they are calculated values, so editing them is not desirable) Commit: r:2400|slicerrt:2400

2015-08-13, 22:19:18 - Csaba Pinter

Re #760: Attempt to fix python tests. CMAKE_CFG_INTDIR does not contain the configuration string, so I added all directories similarly to the way it was before, but instead using fix configuration names they are read from CMAKE_CONFIGURATION_TYPES. It seems that DicomRtImportSelf test crashes at exiting when python cleanup is called, need to investigate if it keeps occurring. Commit: r:2401|slicerrt:2401

2015-08-14, 16:45:30 - Csaba Pinter

Re #760: Add function to disable representation. Useful for testing if one wants to use a non-default conversion path without manual UI interaction.

Example usage from python (before loading the dataset): import vtkSegmentationCore vtkSegmentationCore.vtkSegmentationConverterFactory.GetInstance().DisableRepresentation(‘Closed surface’)

Now it is used to make sure the labelmaps are created via ribbon model, to verify that the test baselines match exactly with the old contour ones. Later when direct closed surface conversion is proven to be correct, the tests can be changed to use that. Commit: r:2404|slicerrt:2404

2015-08-14, 23:48:14 - Csaba Pinter

Re #760: Fixed expand operation in segment morphology, now the image will always have enough extent to contain the dilated labelmap in full; Fixed crash when segmentation selected in volumes module with no merged image data Commit: r:2406|slicerrt:2406

2015-08-15, 18:40:25 - Csaba Pinter

Re #760: Fixed Dice volume measurements. It was not voxel count (as it is for the dice outputs) but mm^3 Commit: r:2409|slicerrt:2409

2015-08-15, 19:21:19 - Csaba Pinter

Re #760: Fixed bug introduced in rev2407 (the deep copy to output image overwrites reference geometry if output and reference are the same object) Commit: r:2411|slicerrt:2411

2015-08-15, 22:12:10 - Csaba Pinter

Re #760: Fixed Segment Morphology automatic tests; Replaced both prostate and ENT segmentations not to include closed surface related conversion parameters to prevent errors for not finding it in the converter when loading them Commit: r:2412|slicerrt:2412

2015-08-15, 23:00:26 - Csaba Pinter

Re #760: Fixed Segment Comparison automatic tests; Committed ENT structures that were not added in the previous commit by mistake Commit: r:2413|slicerrt:2413

2015-08-20, 15:51:39 - Csaba Pinter

Re #760: Fixed DicomRtImportSelfTest. It crashed on exit at PythonQt::cleanup() in ctkAbstractPythonManager destructor because slicer.modules.dicom.widgetRepresentation().self().detailsPopup was assigned to variables twice. Not sure why this happens, and also I cannot reliably reproduce it from the python interactor (although when doing only this after starting up Slicer and then exiting causes crash); DicomRtImportSelfTest now also restores originally selected DICOM database Commit: r:2417|slicerrt:2417

2015-08-27, 20:31:10 - Csaba Pinter

Re #760: Added segmentation core test case that creates segmentation with one segment from a closed surface model and converts it to binary labelmap with and without reference geometry Commit: r:2420|slicerrt:2420

2015-08-27, 22:02:34 - Csaba Pinter

Re #760: Added segmentation core test cases for segment operations (add, remove, copy, move) and binary labelmap to closed surface conversion Commit: r:2421|slicerrt:2421

2015-09-01, 22:59:11 - Csaba Pinter

Re #760: Added segmentation python test for more complex test cases. The first out of four planned cases is implemented; Using the various python unit test asserts in the existing python tests so that more meaningful error messages can be generated instead of the simple one given by assertTrue. Commit: r:2422|slicerrt:2422

2015-09-02, 20:48:19 - Csaba Pinter

Re #760: Fixed DVH logic tests on linux/mac Commit: r:2426|slicerrt:2426

2015-09-02, 22:04:04 - Csaba Pinter

Re #760: Added python segmentation test section for testing merging labelmaps of different geometry; Fixed DeterminePolyDataDisplayRepresentationName function’s return type (the char array was removed by the time the return value was got) Commit: r:2427|slicerrt:2427

2015-09-03, 20:22:54 - Csaba Pinter

Re #760: Added python segmentation test section for exporting segment(s) to model and labelmap nodes; Added convenience function for exporting all segments to labelmap in vtkSlicerSegmentationsModuleLogic Commit: r:2428|slicerrt:2428

2015-09-07, 19:38:30 - Csaba Pinter

Re #760: Python tests done for segmentation import/export Commit: r:2433|slicerrt:2433

2015-09-16, 22:12:53 - Csaba Pinter

Test #760: Added segmentation test case for import/export with transforms involved Commit: r:2448|slicerrt:2448

2015-09-16, 22:12:53 - Csaba Pinter

status: changed from “Accepted” to “Test”

2015-09-17, 14:07:30 - Csaba Pinter

Re #760: Fix tests that failed due to recent changes regarding observing master representation Commit: r:2449|slicerrt:2449

2015-09-17, 16:10:04 - Csaba Pinter

Re #760, re #766: Fix tests that failed due to recent changes regarding transform handling. One error source was that the bounding box transformed function TransformOrientedImageDataBounds did not handle non-zero extent starts. The other one was that in many places vtkGeneralTransform is passed as transform, and it was always handled as non-linear. However, it can also be linear transform if all concatenated transforms are linear. Now this is detected and the linear transform control branches are also hit. Commit: r:2450|slicerrt:2450

2015-09-17, 16:19:31 - Csaba Pinter

status: changed from “Test” to “Fixed”

2015-09-17, 16:34:33 - Csaba Pinter

Re #760: Removed duplicate developer section from DicomSroExport module widget

Commit: r:2453 slicerrt:2453

2015-09-17, 17:46:00 - Csaba Pinter

Re #760: Fixed BatchStructureSetConversion test that failed due to invalid download link (it may have changed due to Midas updates). Also fixed directory creation and logging call Commit: r:2454|slicerrt:2454

2015-09-17, 18:32:02 - Csaba Pinter

Re #760: BatchStructureSetConversion now restores originally selected DICOM database. The test crashes on exit when being run as a test, but works fine when started from Slicer. Commit: r:2455|slicerrt:2455

2015-09-17, 18:56:20 - Csaba Pinter

Re #760: Fixed memory leak that occurred when entering Segmentations module Commit: r:2456|slicerrt:2456

2015-09-18, 15:58:24 - Csaba Pinter

Re #760: Fixed isodose logic test that failed due to color names issue introduced by Slicer rev24436 Commit: r:2457|slicerrt:2457

2015-09-18, 18:25:23 - Csaba Pinter

Re #760: Attempt to fix dose comparison generic widget test that failed on linux and Mac due to its high minimum width Commit: r:2458|slicerrt:2458

2015-09-19, 19:47:53 - Csaba Pinter

Re #760: Attempt to fix segmentations python test on Mac. It fails because when exporting a segment to model node, on Windows and Linux it has 588 polygons, but on Mac somehow it has 580 Commit: r:2459|slicerrt:2459

2015-09-23, 17:25:33 - Csaba Pinter

Re #760: Fixed obvious mistake in segmentations python test Commit: r:2462|slicerrt:2462

#761 Generate report for gel dosimetry session

Create full report at the end of the gel workflow. Generate PDF containing the plots, histograms, values etc.

Potentially also save MRB of the scene

#762 Segment comparison fails if the reference extent does not entirely contain the compare image

If the reference segment labelmap extent does not contain entirely the compare extent, then the resample_image function in Plastimatch returns an empty resampled compare image (largest possible region all zeros), thus DIce and Hausdorff yield invalid results.

I’ll apply a fix for this in SlicerRT, but it may be worth fixing in Plastimatch too.

Simplest way to reproduce:

2015-08-15, 15:32:09 - Csaba Pinter

image:dkM57Wq2ir5yo1acwqjQWU

2015-08-15, 15:32:09 - Csaba Pinter

Attachment added: “20150814_SegmentComparisonBug.png”

2015-08-15, 15:33:28 - Csaba Pinter

description: changed from “If the reference segment la…” to “If the reference segment la…”

2015-08-15, 17:27:51 - Csaba Pinter

Test #762: Fixed segment comparison issue with inputs of different geometry. This is rather a workaround, because the issue is in Plastimatch resample_image, but it does not slow down the processing because this way Plastimatch skips resampling. Commit: r:2407|slicerrt:2407

2015-08-15, 17:27:51 - Csaba Pinter

status: changed from “Accepted” to “Test”

2015-08-15, 18:17:15 - Csaba Pinter

Apparently other mismatches also lead to empty compare volumes:

2015-08-17, 16:34:02 - Greg Sharp

This bug may still need attention. The images should be resampled to contain (at least) the union of non-zero voxels in both images. In some cases, this means resampling both images.

2015-08-17, 16:34:02 - Greg Sharp

assigned_to_id: changed from “pinter” to “gregsharp”

2015-08-17, 16:34:02 - Greg Sharp

status: changed from “Test” to “Accepted”

2015-08-17, 23:23:52 - Greg Sharp

This thing is blowing my mind. If I do this (using the original code):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
  /* Print to console */
  printf ('%g %g %g\
', 
    plmRefSegmentLabelmap->itk_uchar()->GetOrigin()[0],
    plmRefSegmentLabelmap->itk_uchar()->GetOrigin()[1],
    plmRefSegmentLabelmap->itk_uchar()->GetOrigin()[2]);

  /* Save to file */
  typedef itk::ImageFileWriter< itk::Image<unsigned char, 3> > WriterType;
  typename WriterType::Pointer writer = WriterType::New();
  writer->SetInput (plmRefSegmentLabelmap->itk_uchar());
  writer->SetFileName ('/PHShome/gcs6/scratch/bug/ref.nrrd');
  writer->SetUseCompression (true);
  writer->Update();



The origin printed to the console is “-248.844 -248.289 -123.75” But when the file is saved, the origin is “(-52.843994140625,-52.289001464844006,-54.75)”

2015-08-17, 23:23:52 - Greg Sharp

CommentContent: changed from “This thing is blowing my mind. If I do this (using the original code):

/* Print to console */ printf (‘%g %g %g
‘, plmRefSegmentLabelmap->itk_uchar()->GetOrigin()[0], plmRefSegmentLabelmap->itk_uchar()->GetOrigin()[1], “ to “This thing is blowing my mind. If I do this (using the original code):

/* Print to console */ printf (‘%g %g %g
‘, plmRefSegmentLabelmap->itk_uchar()->GetOrigin()[0], plmRefSegmentLabelmap->itk_uchar()->GetOrigin()[1], “

2015-08-17, 23:23:52 - Greg Sharp

CommentContent: changed from “This thing is blowing my mind. If I do this (using the original code):

/* Print to console / printf (‘%g %g %g
‘, plmRefSegmentLabelmap->itk_uchar()->GetOrigin()[0], plmRefSegmentLabelmap->itk_uchar()->GetOrigin()[1], “ to “This thing is blowing my mind. If I do this (using the original code): /
Print to console */ printf (‘%g %g %g
‘, plmRefSegmentLabelmap->itk_uchar()->GetOrigin()[0], plmRefSegmentLabelmap->itk_uchar()->GetOrigin()[1], “

2015-08-17, 23:48:51 - Greg Sharp

OK. I figured out the problem. The segmentation uses a non-zero ITK index, which plastimatch ignores. Which is just what you said.

2015-08-17, 23:48:51 - Greg Sharp

CommentContent: changed from “OK. I figured out the problem. The segmentation uses a non-zero ITK index, which plastimatch ignores.” to “OK. I figured out the problem. The segmentation uses a non-zero ITK index, which plastimatch ignores. Which is just what you said.”

2015-08-20, 14:41:13 - Greg Sharp

Test #762 Fix plastimatch to respect ITK region index; remove VTK resampling workaround; convert LPS region center into RAS Commit: r:2415|slicerrt:2415

2015-08-20, 14:41:13 - Greg Sharp

status: changed from “Accepted” to “Test”

2015-08-20, 15:00:00 - Csaba Pinter

Thank you! I’ll test it too and close the ticket.

2015-08-20, 16:15:44 - Csaba Pinter

status: changed from “Test” to “Fixed”

2015-08-20, 20:39:36 - Csaba Pinter

Re #762: Changed segment comparison logic test baselines to match the slightly changed values due to using the resampling function in Plastimach instead of SlicerRT Commit: r:2418|slicerrt:2418

#763 Python wrapping for vtkSegmentation / vtkSegment

It seems these classes are not wrapped, and members cannot be accessed from the python console.

1
2
3
4
5
6
7
8
9
10
>>> s = getNode('3: RTSTRUCT: PROS').GetSegmentation()
>>> s
(vtkObject)0x66d8bf0
>>> s.GetSegment('PTV')
Traceback (most recent call last):
  File '<console>', line 1, in <module>
AttributeError: GetSegment


2015-08-21, 19:01:00 - jchris

Hi Greg,

Try to run:

import vtkSegmentationCore

before calling:

s = getNode(‘3: RTSTRUCT: PROS’).GetSegmentation()

Hth

Jc

2015-08-21, 19:19:48 - Greg Sharp

Wow, it’s like magic. :)

2015-08-21, 19:19:59 - Greg Sharp

status: changed from “New” to “Invalid”

#764 External Beam Planning (master ticket)

Some items to be resolved by this ticket:

2015-09-02, 16:49:08 - Greg Sharp

milestone_id: changed from null to “SlicerRt 0.18”

2015-09-02, 16:49:12 - Greg Sharp

assigned_to_id: changed from null to “gregsharp”

2015-09-02, 16:49:18 - Greg Sharp

status: changed from “New” to “Accepted”

2015-09-02, 16:49:36 - Csaba Pinter

priority: changed from “Normal (3)” to “High (2)”

2015-12-03, 17:14:07 - wangk

Re #764: Get a fresh copy of trunk for ExternalBeamPlanning feature branch. Get rid of the old stale branch content. Commit: r:2513|slicerrt:2513

2015-12-03, 17:17:22 - wangk

Re #764: Delete the old stale feature branch.

Commit: r:2514 slicerrt:2514

2015-12-03, 17:18:30 - wangk

Re #764: Get a fresh copy of trunk for ExternalBeamPlanning feature branch.

Commit: r:2515 slicerrt:2515

2015-12-27, 15:07:11 - maxime.desplanques

Re #764: preparation for the connection with the dose calculation engine Commit: r:2548|slicerrt:2548

2015-12-28, 14:21:49 - maxime.desplanques

Re #764: preparation (step2) for the connection with the dose calculation engine Commit: r:2549|slicerrt:2549

2015-12-30, 11:13:38 - maxime.desplanques

Re #764: connection of the TPS interface with the dose calculation engine - step1 Commit: r:2551|slicerrt:2551

2015-12-30, 14:48:45 - Greg Sharp

Re #764 Skeleton code for moving Markups reference and UI from beam layer to plan layer Commit: r:2553|slicerrt:2553

2015-12-30, 21:08:08 - Greg Sharp

Re #764 More work on moving markups from beam to plan Commit: r:2554|slicerrt:2554

2015-12-30, 21:46:03 - Greg Sharp

Re #764 Fiducial combo boxes removed from beam UI; markups node and isocenter fiducial are now created automatically Commit: r:2555|slicerrt:2555

2015-12-31, 17:12:20 - Greg Sharp

Re #764 Add target volume reference to beam node when it is created Commit: r:2556|slicerrt:2556

2016-01-04, 17:43:46 - maxime.desplanques

Re #764: proton dose calculation connection - active beam lines Commit: r:2557|slicerrt:2557

2016-01-05, 12:23:23 - Greg Sharp

Re #764 Make the Remove Beam button work Commit: r:2558|slicerrt:2558

2016-01-05, 15:58:51 - maxime.desplanques

Re #764: Dose calculation engine is connected Commit: r:2559|slicerrt:2559

2016-01-05, 16:24:58 - Greg Sharp

Re #764 Partial implementation of isocenter placement tools Commit: r:2560|slicerrt:2560

2016-01-05, 22:20:09 - Greg Sharp

Re #764 RTBeam node now handles isocenter position changed event Commit: r:2561|slicerrt:2561

2016-01-06, 17:10:53 - maxime.desplanques

Re #764: Correction of the field size visualization Commit: r:2562|slicerrt:2562

2016-01-06, 19:18:35 - Greg Sharp

Re #764 Fiducial movement event now threaded back to update widget Commit: r:2563|slicerrt:2563

2016-01-08, 17:58:09 - Greg Sharp

Re #764 Intermediate check-in while working on setting isocenter at center of target segment Commit: r:2564|slicerrt:2564

2016-01-10, 00:04:59 - Greg Sharp

Re #764 Update isocenter when target segment is changed Commit: r:2565|slicerrt:2565

2016-01-10, 14:40:49 - maxime.desplanques

Re: #764 small bugs fixed in the External Beam Planning interface Commit: r:2566|slicerrt:2566

2016-01-10, 16:09:56 - maxime.desplanques

Re: #764 small bugs fixed in External Planning Beam interface (step 2) Commit: r:2567|slicerrt:2567

2016-01-10, 16:34:14 - maxime.desplanques

Re: #764 small bugs fixed in External Planning Beam interface (step 3) Commit: r:2568|slicerrt:2568

2016-01-10, 18:55:52 - maxime.desplanques

Re: #764 small bugs fixed in External Planning Beam interface (step 4) Commit: r:2569|slicerrt:2569

2016-01-12, 14:45:52 - maxime.desplanques

Re: #764: Simplification of the code for the proton TPS Commit: r:2570|slicerrt:2570

2016-01-12, 21:51:03 - maxime.desplanques

Re: #764: implementation of the passive scattering beam line dose calculation… Commit: r:2573|slicerrt:2573

2016-01-13, 00:38:57 - Greg Sharp

Re #764 Bump plastimatch version and fix link flags Commit: r:2574|slicerrt:2574

2016-01-25, 20:49:02 - Greg Sharp

Re #764 Re-integrate EBP branch into trunk Commit: r:2599|slicerrt:2599

2016-03-24, 18:19:59 - Csaba Pinter

Re #764: Superficial changes in the EBP module and related classes: cosmetic change in EBP widget so that Plan contours label is in line with the segmentation node (it was not very straightforward what the label was referencing), unnecessary methods removed, bring parts up to coding conventions (VTK best practices, Qt naming conventions (no ‘get’ prefix for getter functions, capitalization), Slicer/RT naming conventions), added comments Commit: r:2756|slicerrt:2756

2016-03-24, 21:02:30 - Csaba Pinter

Re #764: Removed dead code from the Beams module (the widget and the parameter set node were unused); Minor fixes and changes in EBP Commit: r:2757|slicerrt:2757

2016-03-24, 23:00:34 - Csaba Pinter

Re #764: Set up node references between plan and dose computation results. Use them when removing dose results (there is a button for that on the UI) Commit: r:2758|slicerrt:2758

2016-03-24, 23:04:59 - Andras Lasso

Placing computation results below the source data node in subject hierarchy works quite well, too, instead of just using a generic node reference. The advantage is that the reference is well visible to the users, related data are kept together and if parent node is deleted then children are removed, too.

2016-03-24, 23:11:33 - Csaba Pinter

Yes, it will be my next commit in a bit. I added the references because I also need a hard link that cannot be changed by the user.

2016-05-17, 01:22:42 - Csaba Pinter

assigned_to_id: changed from “gregsharp” to “pinter”

2016-05-17, 01:27:49 - Csaba Pinter

Re #743, re #764: Moved beam parameters section from EBP module to Beams module. Beams module is now not hidden and has a module UI that handles RT beams. Beam related logic also moved from EBP to Beams.

New widget class is needed for the beams table in EBP that allows quick switch to Beams module to edit selected beam Commit: r:2840|slicerrt:2840

2016-05-18, 02:31:15 - Csaba Pinter

Re #764: Added beams table widget; Changed subject hierarchy plugins and modules with their own node types (Segmentations, RTBeam, RTPlan) to use the new module-node mechanism in Slicer Commit: r:2845|slicerrt:2845

2016-05-18, 03:52:59 - Csaba Pinter

Re #764, re #414: Use beams table in EBP; Removed parameter set node member from EBP logic class Commit: r:2846|slicerrt:2846

2016-05-18, 04:29:17 - Csaba Pinter

Re #764: Fixes in beams table Commit: r:2847|slicerrt:2847

2016-05-18, 18:25:00 - Csaba Pinter

Re #764, re #743: Added custom events for change in different types of beam parameters triggering either transform or geometry update; Fixed switching between EBP and Beams modules; Cleaning up code Commit: r:2848|slicerrt:2848

2016-05-18, 19:29:16 - Csaba Pinter

Re #764, re #743: Fixed plan loading issue (when it was loaded first and there was no study node yet); Added doxygen comments in proton beam header; Make sure reference volume is shown in background after dose calculation Commit: r:2849|slicerrt:2849

2016-05-18, 19:32:54 - Csaba Pinter

Re #764: Update gel dosimetry slicelet to follow recent changes in SlicerRT Commit: r:2850|slicerrt:2850

2016-05-19, 01:04:13 - Csaba Pinter

Re #764: Isocenter position spinboxes are synchronized with isocenter fiducial position; Center views button added next to isocenter position to jump to isocenter in slice views

Commit: r:2852 slicerrt:2852

2016-05-19, 01:42:43 - Csaba Pinter

Re #764: Prevent selection of plan segmentation node in the beam parameters. Only the segments of the parent plan’s segmentation show up Commit: r:2853|slicerrt:2853

2016-05-19, 03:08:48 - Csaba Pinter

Re #764: Jump to isocenter in slice views when recentered to target structure; Renamed beam’s transform node so that they are identifiable (not made hidden because then the beam node itself would not show up in Data module); Sped up EBP logic test by increasing energy resolution; Layout fix in segment selector widget: message label widget only visible when there is text to display Commit: r:2854|slicerrt:2854

2016-05-19, 22:34:11 - Csaba Pinter

Re #764: Moved ReferenceDosePoint from Beam node to Plan node (and from Beams UI to EBP UI); Moved Smearing from Beam node to ProtonBeam node (and from Geometry page to Beam model page) and renamed it to RangeCompensatorSmearingRadius; Renamed PBResolution to PencilBeamResolution Commit: r:2858|slicerrt:2858

2016-05-20, 20:23:24 - Csaba Pinter

Re #764: Minor fixes and code cleanup Commit: r:2864|slicerrt:2864

2016-05-20, 21:22:27 - Csaba Pinter

Re #764: Reverse isocenter changes (the beam’s Isocenter member seems not to be used after all), a larger revamp is needed; Remove redundant plan reference to output dose node and only use the one the user can change; Removed disabling modified event for beam parameter changes that trigger geometry updates Commit: r:2865|slicerrt:2865

2016-05-27, 19:07:29 - Csaba Pinter

Re #764: Removed redundant isocenter member and reference from RT beam node. Now the isocenter is specific to an RT plan and not the beams (it was inconsistent that the isocenter was stored in three different places and it introduced instability). In the future it will be needed to support different isocenters in a plan, which will be done using beam groups. Commit: r:2880|slicerrt:2880

2016-05-28, 14:35:12 - Csaba Pinter

Re #764: Fixed crash in beams when checking POI markups validity; Prevent unnecessary error logging Commit: r:2881|slicerrt:2881

2016-07-25, 23:46:34 - Csaba Pinter

Fixed #743, fixed #764, fixed #783: ExternalBeamPlanningTest passes; createBeamInPlan moved from EBP logic to dose engine logic so that engine-specific beam parameters can be added as attributes; Dose engine changes are handled by dose engine logic which adds the missing engine-specific parameters to beams under plan in which engine was changed; Visualization tab in Beams module hidden until features are added Commit: r:3018|slicerrt:3018

2016-07-25, 23:46:34 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

#765 EBP: Remove duplicate items that exist in both beam node and EBP node

There are duplicate variables stored in both vtkMRMLExternalBeamPlanningNode and vtkMRMLRTBeamNode. This ticket is to track progress removing the duplicates, and resolving the UI.

2015-09-04, 20:22:36 - Greg Sharp

Re #765 Work on UI in preparation for removing duplicate variables Commit: r:2431|slicerrt:2431

2015-09-04, 20:22:36 - Greg Sharp

assigned_to_id: changed from null to “gregsharp”

2015-09-04, 21:53:11 - Greg Sharp

Re #765 More work on UI Commit: r:2432|slicerrt:2432

2015-09-15, 18:38:44 - Greg Sharp

Re #765 Eliminate crash setting beam target segment Commit: r:2438|slicerrt:2438

2015-09-15, 22:29:32 - Greg Sharp

Re #765 Remove obsolete vtkRTBeamData class Commit: r:2441|slicerrt:2441

2015-09-16, 18:31:08 - Csaba Pinter

Re #765: Added subject hierarchy plugins for External Beam Planning WIP Commit: r:2443|slicerrt:2443

2015-09-16, 18:34:43 - Csaba Pinter

Re #765: Added subject hierarchy plugins for External Beam Planning WIP2 Commit: r:2444|slicerrt:2444

2015-09-16, 21:51:50 - Csaba Pinter

Re #765: Added subject hierarchy plugins for External Beam Planning WIP3 Commit: r:2447|slicerrt:2447

2015-10-15, 18:52:28 - Greg Sharp

Re #765 Add skeleton for RTBeam and RTPlan heirarchy nodes Commit: r:2479|slicerrt:2479

2015-12-08, 21:59:28 - Greg Sharp

Re #765 First cut at implementing proton beam subclass Commit: r:2525|slicerrt:2525

2015-12-09, 18:02:29 - Greg Sharp

Re #765 More work on moving variables from EBP parameter node to Beam node Commit: r:2526|slicerrt:2526

2015-12-09, 20:29:00 - Greg Sharp

Re #765 Continuing work on moving variables from EBP parameter node to Beam/Plan nodes Commit: r:2528|slicerrt:2528

2015-12-10, 15:35:39 - Greg Sharp

Re #765 More work on moving EBP variables from parameter node to plan/beam nodes Commit: r:2529|slicerrt:2529

2015-12-10, 18:56:00 - Greg Sharp

Re #765 Now the add beam button doesnt crash Commit: r:2531|slicerrt:2531

2015-12-11, 16:41:39 - Greg Sharp

Re #765 Cleave AddDefaultModelToRTBeamNode from CreateDefaultRTBeamNode in Beams module logic Commit: r:2532|slicerrt:2532

2015-12-11, 16:57:51 - Greg Sharp

Re #765 Add model to beam when calling AddBeam in EBP module Commit: r:2533|slicerrt:2533

2015-12-11, 23:05:24 - Greg Sharp

Re #765 Some intermediate work on getting table to work Commit: r:2534|slicerrt:2534

2015-12-11, 23:12:47 - Greg Sharp

Re #765 Small update with debug code left in Commit: r:2535|slicerrt:2535

2015-12-14, 21:36:38 - Greg Sharp

Re #765 Add beam button not only doesnt crash, it now creates line in the beams table Commit: r:2536|slicerrt:2536

2015-12-15, 16:17:56 - Greg Sharp

Re #765 Make latest EBP code compile with current plastimatch revision Commit: r:2537|slicerrt:2537

2015-12-15, 21:27:01 - Greg Sharp

Re #765 The Beam Model transform now updates properly when the gantry angle is changed Commit: r:2539|slicerrt:2539

2015-12-16, 18:15:01 - Greg Sharp

Re #765 Very small change, just getting warmed up. Commit: r:2540|slicerrt:2540

2015-12-16, 22:20:56 - Greg Sharp

Re #765 Another minor commit Commit: r:2541|slicerrt:2541

2015-12-16, 22:49:22 - Greg Sharp

Re #765 RTPlan node is automatically created when entering module Commit: r:2542|slicerrt:2542

2015-12-16, 22:56:45 - Greg Sharp

Re #765 Disable unused UI items Commit: r:2543|slicerrt:2543

2015-12-16, 23:10:46 - Greg Sharp

Fixed #765 Disable unused UI items Commit: r:2544|slicerrt:2544

2015-12-16, 23:10:46 - Greg Sharp

status: changed from “New” to “Fixed”

#766 Add support for deformable transforms for segmentations

2015-09-08, 21:45:51 - Csaba Pinter

description: changed from “* Implement vtkSegment::App…” to “* Implement vtkSegment::App…”

2015-09-09, 21:13:16 - Csaba Pinter

Re #766: Apply linear transform on segmentation implemented Commit: r:2434|slicerrt:2434

2015-09-09, 22:43:39 - Csaba Pinter

Re #766: Changed behaviour of PolyDataDisplayRepresentationName. So far in the module widget the user was offered the existing poly data representations to choose from for model display. Now all supported poly data representations are offered, and the chosen one is only shown if available (the rest of the preference rules remained the same, i.e. if no preferred representation is set or if it does not exist, then show master representation if poly data, otherwise show the first poly data representation if any). It has also been renamed to PreferredPolyDataDisplayRepresentationName Commit: r:2435|slicerrt:2435

2015-09-11, 18:39:55 - Csaba Pinter

Re #766: Implementing transform hardening on segmentations WIP

When hardening deformable transforms, the image reslice update in vtkOrientedImageDataResample (line 659) crashes, need to fix. Commit: r:2436|slicerrt:2436

2015-09-15, 21:36:26 - Csaba Pinter

Re #766: Hardening deformable transforms on segmentations works with all representations as master Commit: r:2439|slicerrt:2439

2015-09-15, 22:16:17 - Csaba Pinter

Re #766: Fixed master representation observation issues. Observation was updated in the wrong place (when segment was modified). Now it is added when segment is added, updated when master representation name is modified, and removed when segment is removed Commit: r:2440|slicerrt:2440

2015-09-15, 22:28:37 - Csaba Pinter

status: changed from “Accepted” to “Test”

2015-09-15, 23:09:58 - Csaba Pinter

Re #766: RT modules now handle if the parent transform of the input segmentation node is deformable Commit: r:2442|slicerrt:2442

2015-09-16, 21:51:35 - Csaba Pinter

Re #766: Importing representation (labelmap, model) nodes to segmentation now handles parent transforms, so the imported segment will be located at the same place where the representation was Commit: r:2446|slicerrt:2446

2015-09-17, 16:10:04 - Csaba Pinter

Re #760, re #766: Fix tests that failed due to recent changes regarding transform handling. One error source was that the bounding box transformed function TransformOrientedImageDataBounds did not handle non-zero extent starts. The other one was that in many places vtkGeneralTransform is passed as transform, and it was always handled as non-linear. However, it can also be linear transform if all concatenated transforms are linear. Now this is detected and the linear transform control branches are also hit. Commit: r:2450|slicerrt:2450

2015-09-22, 17:34:00 - Csaba Pinter

Andras also tested segmentations with transforms, but did not find any issues. He had remarks about how subject hierarchy handles transforms, but I’ll create another ticket for that (#769). Closing this as fixed

2015-09-22, 17:34:00 - Csaba Pinter

status: changed from “Test” to “Fixed”

2015-09-22, 17:34:00 - Csaba Pinter

CommentContent: changed from “Andras also tested segmentations with transforms, but did not find any issues. He had remarks about how subject hierarchy handles transforms, but I’ll create another ticket for that. Closing this as fixed” to “Andras also tested segmentations with transforms, but did not find any issues. He had remarks about how subject hierarchy handles transforms, but I’ll create another ticket for that (#769). Closing this as fixed”

#767 Address change in gamma calculation default

Plastimatch will use a different default behavior for percent threshold setting in gamma calculation. This ticket will address this by adding an option for setting the previous behavior if desired.

2015-09-10, 14:50:42 - Greg Sharp

milestone_id: changed from null to “SlicerRt 0.18”

2015-09-10, 14:50:50 - Greg Sharp

assigned_to_id: changed from null to “gregsharp”

2015-09-14, 22:50:11 - Greg Sharp

Test #767 Add checkbox for gamma thresholding based on reference dose only Commit: r:2437|slicerrt:2437

2015-09-14, 22:50:11 - Greg Sharp

status: changed from “New” to “Test”

2015-09-16, 13:59:04 - Csaba Pinter

Great, thanks! I’m closing it as fixed.

The gamma module widget is too wide. Not sure if your commit has changed anything in this (probably not), but I wanted to fix it anyway because the widget test has been failing.

2015-09-16, 13:59:04 - Csaba Pinter

status: changed from “Test” to “Fixed”

2015-09-17, 16:20:30 - Csaba Pinter

Re #767: Fixed does comparison test that failed because it used the new default setting for dose threshold Commit: r:2451|slicerrt:2451

2015-09-17, 16:21:55 - Csaba Pinter

Re #767: Use asymmetric dose threshold instead of the new threshold in gel dosimetry slicelet Commit: r:2452|slicerrt:2452

#768 Use multi-selection for DICOM export

It is now possible to select multiple nodes in subject hierarchy, and it would be good if the user could use that feature to select objects to export to DICOM.

#769 Improve subject hierarchy transform handling

Issues with the current version:

Proposed changes:

2017-07-25, 18:40:48 - Csaba Pinter

Moved to Slicer Mantis because Subject Hierarchy is now in Slicer core https://issues.slicer.org/view.php?id=4401

2017-07-25, 18:40:48 - Csaba Pinter

status: changed from “New” to “Invalid”

#770 Clone node does not work well on segmentations

When a segmentation node is cloned in subject hierarchy, the segmentation itself is cloned correctly, but the display node and the virtal branch (with the segments) is not.

2015-09-22, 20:39:07 - Csaba Pinter

Slicer changes: http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=24573

2015-09-22, 20:39:55 - Csaba Pinter

Fixed #770: Fixed copying of segmentation nodes Commit: r:2461|slicerrt:2461

2015-09-22, 20:39:55 - Csaba Pinter

status: changed from “New” to “Fixed”

#771 Gel slicelet simple markups widget does not work

Due to changes in Slicer core. MRML scene needs to be set explicitly now

2015-09-29, 15:27:28 - Csaba Pinter

Fixed #771: Simple markups widget now works in Gel slicelet; Set SliceRT as extension dependency; Fixed numpy warnings about comparing arrays to None (it was a FutureWarning about elementwise comparison) Commit: r:2463|slicerrt:2463

2015-09-29, 15:27:28 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

#772 Fix uninitialized values and warnings

@pinter If the following changes looks good to you. I will integrate them.

See https://github.com/SlicerRt/SlicerRT/compare/master…jcfr:fix-uninitialized-value-and-warnings

Is it okay to make use of ‘git svn dcommit’ ?

2015-09-29, 18:52:34 - Csaba Pinter

Thanks, these look good to me!

Btw what is wrong with using vtkBooleanMacro in the constructor?

2015-09-29, 18:57:20 - jchris

@pinter Since the macro do a test to check what is the value … it can’t be used to initialize it. Otherwise, it is doing a test on an uninitialised value.

2015-10-01, 15:21:11 - Csaba Pinter

@jchris You can go ahead and integrate. I haven’t used dcommit myself, but there should be no problem. Thanks!

2015-10-01, 15:21:11 - Csaba Pinter

assigned_to_id: changed from null to “jchris”

2015-10-04, 05:06:27 - jchris

Re #772: Fix uninitialized value in vtkSlicerDicomRtImportExportModuleLogic.

This commit fixes the following error reported by valgrind memcheck tool:

==1935== Conditional jump or move depends on uninitialised value(s) ==1935== at 0x3FFEC2CA: vtkSlicerDicomRtImportExportModuleLogic::SetBeamModelsInSeparateBranch(bool) (in /home/jcfr/Projects/MuriPlan-Debug/S-bld/Slicer-build/lib/Slicer-4.4/qt-loadable-modules/libvtkSlicerDicomRtImportExportModuleLogic.so) ==1935== by 0x3FFEC536: vtkSlicerDicomRtImportExportModuleLogic::BeamModelsInSeparateBranchOn() (vtkSlicerDicomRtImportExportModuleLogic.h:89) ==1935== by 0x3FFDBC6F: vtkSlicerDicomRtImportExportModuleLogic::vtkSlicerDicomRtImportExportModuleLogic() (vtkSlicerDicomRtImportExportModuleLogic.cxx:112) ==1935== by 0x3FFDB49A: vtkSlicerDicomRtImportExportModuleLogic::New() (vtkSlicerDicomRtImportExportModuleLogic.cxx:100) ==1935== by 0x3F66C1D7: qSlicerDicomRtImportExportModule::createLogic() (qSlicerDicomRtImportExportModule.cxx:189) ==1935== by 0x8967341: qSlicerAbstractCoreModule::logic() (qSlicerAbstractCoreModule.cxx:280) ==1935== by 0x896692D: qSlicerAbstractCoreModule::initialize(vtkSlicerApplicationLogic*) (qSlicerAbstractCoreModule.cxx:99) ==1935== by 0x8996129: qSlicerModuleFactoryManager::loadModule(QString const&, QString const&) (qSlicerModuleFactoryManager.cxx:170) ==1935== by 0x8995C96: qSlicerModuleFactoryManager::loadModule(QString const&) (qSlicerModuleFactoryManager.cxx:110) ==1935== by 0x406A95: (anonymous namespace)::SlicerAppMain(int, char**) (Main.cxx:212) ==1935== by 0x407218: main (Main.cxx:288) Commit: r:2469|slicerrt:2469

2015-10-04, 05:06:30 - jchris

Re #772: Fix uninitialized value in vtkSlicerDoseVolumeHistogramModuleLogic.

This commit fixes the following error reported by valgrind memcheck tool:

==1935== at 0x431B5E76: vtkSlicerDoseVolumeHistogramModuleLogic::SetLogSpeedMeasurements(bool) (in /home/jcfr/Projects/MuriPlan-Debug/S-bld/Slicer-build/lib/Slicer-4.4/qt-loadable-modules/libvtkSlicerDoseVolumeHistogramModuleLogic.so) ==1935== by 0x431B5F60: vtkSlicerDoseVolumeHistogramModuleLogic::LogSpeedMeasurementsOff() (vtkSlicerDoseVolumeHistogramModuleLogic.h:159) ==1935== by 0x431A5E98: vtkSlicerDoseVolumeHistogramModuleLogic::vtkSlicerDoseVolumeHistogramModuleLogic() (vtkSlicerDoseVolumeHistogramModuleLogic.cxx:104) ==1935== by 0x431A5DB4: vtkSlicerDoseVolumeHistogramModuleLogic::New() (vtkSlicerDoseVolumeHistogramModuleLogic.cxx:93) ==1935== by 0x42A5F327: qSlicerDoseVolumeHistogramModule::createLogic() (qSlicerDoseVolumeHistogramModule.cxx:128) ==1935== by 0x8967341: qSlicerAbstractCoreModule::logic() (qSlicerAbstractCoreModule.cxx:280) ==1935== by 0x896692D: qSlicerAbstractCoreModule::initialize(vtkSlicerApplicationLogic*) (qSlicerAbstractCoreModule.cxx:99) ==1935== by 0x8996129: qSlicerModuleFactoryManager::loadModule(QString const&, QString const&) (qSlicerModuleFactoryManager.cxx:170) ==1935== by 0x8995C96: qSlicerModuleFactoryManager::loadModule(QString const&) (qSlicerModuleFactoryManager.cxx:110) ==1935== by 0x406A95: (anonymous namespace)::SlicerAppMain(int, char**) (Main.cxx:212) ==1935== by 0x407218: main (Main.cxx:288) Commit: r:2470|slicerrt:2470

2015-10-04, 05:06:32 - jchris

Re #772: Fix uninitialized values in vtkSegment.

This commit fixes the following error reported by valgrind memcheck tool:

==1935== Conditional jump or move depends on uninitialised value(s) ==1935== at 0x40B63EC1: vtkSegment::SetDefaultColor(double, double, double) (in /home/jcfr/Projects/MuriPlan-Debug/S-bld/Slicer-build/lib/Slicer-4.4/qt-loadable-modules/libvtkSegmentationCore.so) ==1935== by 0x40B6183A: vtkSegment::vtkSegment() (vtkSegment.cxx:48) ==1935== by 0x40B6173E: vtkSegment::New() (vtkSegment.cxx:42) ==1935== by 0x45C56293: vtkNew<vtkSegment>::vtkNew() (vtkNew.h:66) Commit: r:2471|slicerrt:2471

2015-10-04, 05:06:35 - jchris

Re #772: Fix uninitialized values in vtkMRMLSegmentationDisplayNode.

This commit fixes the following error reported by valgrind memcheck tool:

==1935== Conditional jump or move depends on uninitialised value(s) ==1935== at 0x4240C6F1: vtkMRMLSegmentationDisplayNode::SetEnableTransparencyInColorTable(bool) (in /home/jcfr/Projects/MuriPlan-Debug/S-bld/Slicer-build/lib/Slicer-4.4/qt-loadable-modules/libvtkSlicerSegmentationsModuleMRML.so) ==1935== by 0x4240C7DE: vtkMRMLSegmentationDisplayNode::EnableTransparencyInColorTableOff() (vtkMRMLSegmentationDisplayNode.h:79) ==1935== by 0x423FF5B6: vtkMRMLSegmentationDisplayNode::vtkMRMLSegmentationDisplayNode() (vtkMRMLSegmentationDisplayNode.cxx:51) ==1935== by 0x423FF4C8: vtkMRMLSegmentationDisplayNode::New() (vtkMRMLSegmentationDisplayNode.cxx:45) ==1935== by 0x3FFF03C8: vtkSmartPointer<vtkMRMLSegmentationDisplayNode>::New() (vtkSmartPointer.h:117) ==1935== by 0x41069C1F: vtkSlicerSegmentationsModuleLogic::RegisterNodes() (vtkSlicerSegmentationsModuleLogic.cxx:109) ==1935== by 0x92E4389: vtkMRMLAbstractLogic::SetMRMLScene(vtkMRMLScene) (vtkMRMLAbstractLogic.cxx:285) ==1935== by 0x8966C8A: qSlicerAbstractCoreModule::setMRMLScene(vtkMRMLScene) (qSlicerAbstractCoreModule.cxx:168) ==1935== by 0x45C522A8: qSlicerSegmentationsModule::setMRMLScene(vtkMRMLScene*) (qSlicerSegmentationsModule.cxx:132) ==1935== by 0x899622A: qSlicerModuleFactoryManager::loadModule(QString const&, QString const&) (qSlicerModuleFactoryManager.cxx:181) ==1935== by 0x8995C96: qSlicerModuleFactoryManager::loadModule(QString const&) (qSlicerModuleFactoryManager.cxx:110) ==1935== by 0x406A95: (anonymous namespace)::SlicerAppMain(int, char**) (Main.cxx:212)

It also applies a similar fix for ‘SliceIntersectionVisibility’. Commit: r:2472|slicerrt:2472

2015-10-04, 05:06:37 - jchris

Re #772: Fix ‘sign-compare’ warning in vtkMRMLSegmentationDisplayNode

This commit fixes the following warning:

/path/to/Segmentations/MRML/vtkMRMLSegmentationDisplayNode.cxx: In member function ‘bool vtkMRMLSegmentationDisplayNode::CalculateAutoOpacitiesForSegments()’: /path/to/Segmentations/MRML/vtkMRMLSegmentationDisplayNode.cxx:474:79: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] if (this->SegmentationDisplayProperties.size() != levels->GetNumberOfTuples()) Commit: r:2473|slicerrt:2473

2015-10-04, 05:07:56 - jchris

status: changed from “New” to “Fixed”

2015-10-04, 05:08:09 - jchris

Component: changed from null to “SlicerRt modules”

2015-10-04, 14:29:47 - Csaba Pinter

Thanks, Jc! Btw you can commit all build-related issues to this ticket which is in the Continuous milestone https://www.assembla.com/spaces/slicerrt/tickets/115

#773 Improve Matlab auto-detect on MacOS

2015-09-29, 23:56:57 - Andras Lasso

test #773: Improved Matlab auto-detect on MacOS (based on contribution of Alexis Girault) Commit: r:2464|slicerrt:2464

2015-09-29, 23:56:57 - Andras Lasso

status: changed from “New” to “Test”

2015-10-01, 18:55:44 - Andras Lasso

status: changed from “Test” to “Fixed”

#774 Add command for stopping Matlab process

Some users need to close Matlab gracefully (without killing the process)

2015-09-30, 01:07:52 - Andras Lasso

test #774: Added a command to stop the Matlab process (if running)

Usage: Slicer.exe –launch c:\Users\lasso\devel\MatlabBridgeExtension-win64dbg\lib\Slicer-4.4\cli-modules\Debug\MatlabCommander.exe –exit-matlab

Note that Matlab can be also stopped from the Slicer GUI (or any other Slicer module) by sending the ‘exit’ command through the MatlabCommander module. Commit: r:2465|slicerrt:2465

2015-09-30, 01:07:52 - Andras Lasso

status: changed from “New” to “Test”

2015-09-30, 20:44:36 - Andras Lasso

re #774: Added a flag to stop the Matlab process after completion (based on Alexis Girault’s patch)

If no command is specified then Matlab is not launched, therefore it is safe to run –exitmatlab with an empty command if the goal is to shutdown Matlab. The difference compared to sending an ‘exit’ command to Matlab is that if Matlab was not running and an exit command is sent then Matlab is started and then shut down. Running Matlab Commander with an empty command and –exitmatlab shuts Matlab down if it was running and does not do anything if Matlab was not running.

Commit: r:2467 slicerrt:2467

2015-10-01, 18:53:30 - Andras Lasso

test #774: Added a command to stop the Matlab process on application exit (based on patch contributed by Alexis Girault)

Commit: r:2468 slicerrt:2468

2015-10-01, 18:55:40 - Andras Lasso

status: changed from “Test” to “Fixed”

2015-12-09, 19:41:06 - Andras Lasso

re #774: Fixed build error on linux (patch contributed by Alexis Girault)

Commit: r:2527 slicerrt:2527

#775 Fix windows vtkSlicerDicomRtImportExportModuleLogicPythonD build errors

@pinter Here is the associated fix: https://github.com/SlicerRt/SlicerRT/compare/master…jcfr:fix-build-error-due-to-dcmtk-update

Commit message:

Fix windows vtkSlicerDicomRtImportExportModuleLogicPythonD build errors

This commit fixes windows build error and redefined warnings introduced by the Slicer commit r24586 (ENH: Update DMCTK to use version DCMTK-3.6.1_20150924)

Related Slicer commits:

Error and warning fixed by the commit:

vtkSlicerDicomRtImportExportModuleLogicPythonD - 35 error(s), 10 warning(s)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
2>C:\\S-bld\\DCMTK-build\\config\\include\\dcmtk/config/osconfig.h(175) : warning C4005: 'HAVE_FTIME' : macro redefinition
2>        c:\\s-bld\\python-install\\include\\pyconfig.h(582) : see previous definition of 'HAVE_FTIME'
2>C:\\S-bld\\DCMTK-build\\config\\include\\dcmtk/config/osconfig.h(217) : warning C4005: 'HAVE_GETPID' : macro redefinition
2>        c:\\s-bld\\python-install\\include\\pyconfig.h(593) : see previous definition of 'HAVE_GETPID'
2>C:\\S-bld\\DCMTK-build\\config\\include\\dcmtk/config/osconfig.h(274) : warning C4005: 'HAVE_IO_H' : macro redefinition
2>        c:\\s-bld\\python-install\\include\\pyconfig.h(58) : see previous definition of 'HAVE_IO_H'
2>C:\\S-bld\\DCMTK-build\\config\\include\\dcmtk/config/osconfig.h(570) : warning C4005: 'HAVE_STAT' : macro redefinition
2>        c:\\s-bld\\python-install\\include\\pyport.h(374) : see previous definition of 'HAVE_STAT'
2>C:\\S-bld\\DCMTK-build\\config\\include\\dcmtk/config/osconfig.h(622) : warning C4005: 'HAVE_STRERROR' : macro redefinition
2>        c:\\s-bld\\python-install\\include\\pyconfig.h(64) : see previous definition of 'HAVE_STRERROR'
2>C:\\S-bld\\DCMTK-build\\config\\include\\dcmtk/config/osconfig.h(718) : warning C4005: 'HAVE_SYS_UTIME_H' : macro redefinition
2>        c:\\s-bld\\python-install\\include\\pyconfig.h(59) : see previous definition of 'HAVE_SYS_UTIME_H'
2>C:\\S-bld\\DCMTK-build\\config\\include\\dcmtk/config/osconfig.h(727) : warning C4005: 'HAVE_TEMPNAM' : macro redefinition
2>        c:\\s-bld\\python-install\\include\\pyconfig.h(60) : see previous definition of 'HAVE_TEMPNAM'
2>C:\\S-bld\\DCMTK-build\\config\\include\\dcmtk/config/osconfig.h(736) : warning C4005: 'HAVE_TMPNAM' : macro redefinition
2>        c:\\s-bld\\python-install\\include\\pyconfig.h(62) : see previous definition of 'HAVE_TMPNAM'
2>C:\\S-bld\\DCMTK-build\\config\\include\\dcmtk/config/osconfig.h(974) : warning C4005: 'HAVE_LONG_LONG' : macro redefinition
2>        c:\\s-bld\\python-install\\include\\pyconfig.h(304) : see previous definition of 'HAVE_LONG_LONG'
2>C:\\S-bld\\DCMTK\\ofstd\\include\\dcmtk/ofstd/oftypes.h(111) : error C2146: syntax error : missing ';' before identifier 'Sint64'
2>C:\\S-bld\\DCMTK\\ofstd\\include\\dcmtk/ofstd/oftypes.h(111) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
2>C:\\S-bld\\DCMTK\\ofstd\\include\\dcmtk/ofstd/oftypes.h(111) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int


2015-10-04, 05:12:16 - jchris

assigned_to_id: changed from null to “jchris”

2015-10-06, 17:13:05 - jchris

Fixed #775: Fix windows vtkSlicerDicomRtImportExportModuleLogicPythonD build errors

This commit fixes windows build error and redefined warnings introduced by the Slicer commit r24586 (ENH: Update DMCTK to use version DCMTK-3.6.1_20150924)

Related Slicer commits:

Error and warning fixed by the commit:

vtkSlicerDicomRtImportExportModuleLogicPythonD - 35 error(s), 10 warning(s)

2>C:\S-bld\DCMTK-build\config\include\dcmtk/config/osconfig.h(175) : warning C4005: ‘HAVE_FTIME’ : macro redefinition 2> c:\s-bld\python-install\include\pyconfig.h(582) : see previous definition of ‘HAVE_FTIME’ 2>C:\S-bld\DCMTK-build\config\include\dcmtk/config/osconfig.h(217) : warning C4005: ‘HAVE_GETPID’ : macro redefinition 2> c:\s-bld\python-install\include\pyconfig.h(593) : see previous definition of ‘HAVE_GETPID’ 2>C:\S-bld\DCMTK-build\config\include\dcmtk/config/osconfig.h(274) : warning C4005: ‘HAVE_IO_H’ : macro redefinition 2> c:\s-bld\python-install\include\pyconfig.h(58) : see previous definition of ‘HAVE_IO_H’ 2>C:\S-bld\DCMTK-build\config\include\dcmtk/config/osconfig.h(570) : warning C4005: ‘HAVE_STAT’ : macro redefinition 2> c:\s-bld\python-install\include\pyport.h(374) : see previous definition of ‘HAVE_STAT’ 2>C:\S-bld\DCMTK-build\config\include\dcmtk/config/osconfig.h(622) : warning C4005: ‘HAVE_STRERROR’ : macro redefinition 2> c:\s-bld\python-install\include\pyconfig.h(64) : see previous definition of ‘HAVE_STRERROR’ 2>C:\S-bld\DCMTK-build\config\include\dcmtk/config/osconfig.h(718) : warning C4005: ‘HAVE_SYS_UTIME_H’ : macro redefinition 2> c:\s-bld\python-install\include\pyconfig.h(59) : see previous definition of ‘HAVE_SYS_UTIME_H’ 2>C:\S-bld\DCMTK-build\config\include\dcmtk/config/osconfig.h(727) : warning C4005: ‘HAVE_TEMPNAM’ : macro redefinition 2> c:\s-bld\python-install\include\pyconfig.h(60) : see previous definition of ‘HAVE_TEMPNAM’ 2>C:\S-bld\DCMTK-build\config\include\dcmtk/config/osconfig.h(736) : warning C4005: ‘HAVE_TMPNAM’ : macro redefinition 2> c:\s-bld\python-install\include\pyconfig.h(62) : see previous definition of ‘HAVE_TMPNAM’ 2>C:\S-bld\DCMTK-build\config\include\dcmtk/config/osconfig.h(974) : warning C4005: ‘HAVE_LONG_LONG’ : macro redefinition 2> c:\s-bld\python-install\include\pyconfig.h(304) : see previous definition of ‘HAVE_LONG_LONG’ 2>C:\S-bld\DCMTK\ofstd\include\dcmtk/ofstd/oftypes.h(111) : error C2146: syntax error : missing ‘;’ before identifier ‘Sint64’ 2>C:\S-bld\DCMTK\ofstd\include\dcmtk/ofstd/oftypes.h(111) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int 2>C:\S-bld\DCMTK\ofstd\include\dcmtk/ofstd/oftypes.h(111) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int Commit: r:2474|slicerrt:2474

2015-10-06, 17:13:05 - jchris

status: changed from “New” to “Fixed”

2015-10-07, 15:02:09 - Csaba Pinter

The factory now builds SlicerRT without problems. Thanks very much!

2015-10-07, 15:14:39 - jchris

Great.

Note that the solution I implemented is a suboptimal, moving forward we should look into the plan I described here: https://github.com/Slicer/Slicer/pull/359#issuecomment-144865543

#776 Parallelize DoseComparison

The plastimatch dose comparison module does not run in parallel. Doing so would make it much faster.

2015-10-13, 21:06:30 - Csaba Pinter

Component: changed from null to “Plastimatch”

2015-10-13, 21:06:34 - Csaba Pinter

milestone_id: changed from null to “SlicerRt 0.18”

2016-02-22, 23:13:31 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.18” to “SlicerRt 0.19”

2017-05-01, 21:14:34 - Greg Sharp

milestone_id: changed from “SlicerRt 0.19” to “SlicerRt 0.20 - External Beam Planning”

2017-05-03, 16:53:35 - Greg Sharp

milestone_id: changed from “SlicerRt 0.20 - External Beam Planning” to “SlicerRt 0.19”

#777 Implement ITK image to MRML volume node conversion

And use it in Dose comparison

2015-11-03, 17:11:55 - Csaba Pinter

Fixed #777: Implemented ITK image to MRML volume node conversion; Changed dose comparison to use it instead of copying orientation from reference node after conversion Commit: r:2481|slicerrt:2481

2015-11-03, 17:11:55 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

2015-11-03, 17:41:17 - wangk

Re #777: Fixed compilation error on Max and possibly Linux. Commit: r:2484|slicerrt:2484

2015-11-03, 18:17:38 - Csaba Pinter

Thanks, Kevin!

#778 SlicerRT LANDWARP module: transform function output

In the LANDWARP module of the SlicerRT extension one create a transform, but there is no way to view the transform function. It might be nice if the transform function itself was included as an output.

http://www.na-mic.org/Bug/view.php?id=3166

2015-11-04, 18:59:39 - Greg Sharp

Test #778 Landwarp adds capability to save landmark registration vector field as MRML node Commit: r:2486|slicerrt:2486

2015-11-04, 18:59:39 - Greg Sharp

status: changed from “New” to “Test”

2016-07-18, 14:58:14 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.19” to “SlicerRt 0.18”

2016-07-18, 18:15:27 - Csaba Pinter

@gregsharp This ticket is in Test state for a while. Can it be closed? Thanks!

2016-07-18, 19:02:04 - Greg Sharp

status: changed from “Test” to “Fixed”

2016-07-18, 19:02:07 - Greg Sharp

Yep. I just tested it and it works fine.

2016-07-18, 19:50:22 - Csaba Pinter

Great, thank you!!

#779 LANDWARP should export TPS as native transform

Currently the TPS (thin plate spline) transform is exported as a GridTransform. It could be instead exported as an ITK TPS, without rasterizing into a grid transform.

2015-11-09, 19:31:54 - Greg Sharp

Information from Andras:

You can pass any transform type if you don’t specify the type attribute in the XML.

If you implement your transforms as VTK transforms then we can use them in Slicer (real time apply to any nodes, field visualization, inversion, etc). To be able to use ITK transform reader/writer for new transform types you don’t have to implement the transform computation in ITK, just add a transform class derived from a similar transform (and - if you have additional parameters - override the get/set parameters methods). Everything else will work automatically, transform IO classes will read/write all the transform parameters and use your custom class name to identify the ITK object that has to be instantiated. Of course, it’s even nicer if you implement computation methods in the ITK class, too.

#780 Bounds calculation does not work for segmentations

It always returns (-1,1,-1,1,-1,1)

2015-11-06, 17:37:06 - Csaba Pinter

Fixed #780: Bounds calculation now works for segmentations. GetBounds call was simply not called Commit: r:2491|slicerrt:2491

2015-11-06, 17:37:06 - Csaba Pinter

status: changed from “New” to “Fixed”

#781 Dose volume in-plane spacings are switched

See http://www.na-mic.org/Bug/view.php?id=4075

2015-11-09, 19:57:06 - Csaba Pinter

Fixed #781: Dose volume importer now handles in-plane spacing correctly

See also http://www.na-mic.org/Bug/view.php?id=4075 Commit: r:2492|slicerrt:2492

2015-11-09, 19:57:06 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

#782 Convert to dose volume function silently fails

If the volume the user wants to convert to dose is not under a study, the operation fails with an error message logged. As the error icon is almost always red, and even if not, the user does not notice the change, an error message would help the user identify the problem.

Maybe a more visible effect could be useful on the long run to indicate a new error message. Like a ‘flashing’ of the error icon or similar.

2015-11-13, 16:44:33 - Csaba Pinter

Fixed #782: Added warning message if conversion to dose volume fails due to lack of parent study Commit: r:2493|slicerrt:2493

2015-11-13, 16:44:33 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

#783 Release SlicerRT 0.18

2015-11-13, 18:25:21 - Csaba Pinter

Re #783: Add branch for stable Slicer 4.5 Commit: r:2494|slicerrt:2494

2015-11-13, 18:30:19 - Csaba Pinter

Re #783: Remove branch to re-add with all projects Commit: r:2495|slicerrt:2495

2015-11-13, 18:31:00 - Csaba Pinter

Re #783: Re-add branch for stable Slicer 4.5 Commit: r:2496|slicerrt:2496

2016-05-06, 21:32:57 - Csaba Pinter

Re #783: Fixed IGRT self test that failed due to recent changes both in Slicer core and SlicerRT. There is still a leak that needs to be fixed Commit: r:2801|slicerrt:2801

2016-07-25, 23:46:34 - Csaba Pinter

Fixed #743, fixed #764, fixed #783: ExternalBeamPlanningTest passes; createBeamInPlan moved from EBP logic to dose engine logic so that engine-specific beam parameters can be added as attributes; Dose engine changes are handled by dose engine logic which adds the missing engine-specific parameters to beams under plan in which engine was changed; Visualization tab in Beams module hidden until features are added Commit: r:3018|slicerrt:3018

2016-07-25, 23:46:34 - Csaba Pinter

status: changed from “New” to “Fixed”

#784 Add convenience function to get segment labelmap

Currently there are methods for getting representations, but as the specific ways the labelmaps are processed in the modules (SegmentMorphology/Comparison, DVH, DoseComparison), it is a bit fragmented. It would be nice to

  1. Implement a convenience function for each type of labelmap extraction (used in the modules above)
  2. In a way that it considers parent transforms and such. Maybe add an option to consider parent transform of an object it will be used with (reference volume, whose transform’s inverse will be applied on the extracted labelmap) Probably the best route would be to return a vtkOrientedImageData and include in the documentation how to use it further (e.g. vtkSlicerSegmentationsModuleLogic::CreateLabelmapVolumeFromOrientedImageData)

2016-01-31, 19:44:23 - Csaba Pinter

Fixed #784: Added convenience function to get binary labelmap representation of a segment in a segmentation Commit: r:2617|slicerrt:2617

2016-01-31, 19:44:23 - Csaba Pinter

status: changed from “New” to “Fixed”

2016-01-31, 20:07:46 - Csaba Pinter

Re #784: Making GetSegmentBinaryLabelmapRepresentation smarter by automatically converting only the requested segment to binary labelmap (after creating a temporary copy); Use the new convenience function in the segment related modules (except DVH as it is has a more complicated logic) Commit: r:2618|slicerrt:2618

#785 Use new table node in DVH module

Change DVH module so that it uses the new vtkMRMLTableNode created by Andras and Kevin

2016-02-04, 23:26:45 - Csaba Pinter

Try using it in DvhComparison too

2016-03-11, 20:43:54 - Csaba Pinter

Re #785: Use table node and view in SegmentComparison. The resulting tables are now easily exportable to files using Save file dialog Commit: r:2719|slicerrt:2719

2016-03-11, 21:32:12 - Csaba Pinter

The DVH table contains checkboxes for visualization so those need to be supported. Plan:

2016-03-11, 21:32:12 - Csaba Pinter

status: changed from “New” to “Accepted”

2016-03-15, 16:52:58 - Csaba Pinter

Slicer commits: http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=24969 http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=24970 http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=24971

2016-03-17, 19:24:25 - Csaba Pinter

Re #785: DVH module now uses vtkMRMLTableNode WIP

It involves a major overhaul of the DVH node, module logic, and widget. Chart node now does not need to be created by the user; it is created by default. To do: V/D metrics, CSV export, DVH comparison, automatic tests Commit: r:2728|slicerrt:2728

2016-03-18, 02:05:07 - Csaba Pinter

Test #785: Fixed remaining items in DVH module using table node. V/D metrics, DVH and metric export, visualization, tests all work. Commit: r:2729|slicerrt:2729

2016-03-18, 02:05:07 - Csaba Pinter

status: changed from “Accepted” to “Test”

2016-03-18, 13:50:35 - Csaba Pinter

Re #785: Cleanup of the DVH comparison module code Commit: r:2730|slicerrt:2730

2016-03-18, 14:52:34 - Csaba Pinter

Re #785: Updated DVH comparison module to use DVH metrics table node; Made simplifications in code Commit: r:2731|slicerrt:2731

2016-03-18, 14:56:18 - Csaba Pinter

status: changed from “Test” to “Fixed”

2016-03-18, 21:48:21 - Csaba Pinter

Re #785: DVH metrics table and chart are now placed under the study of the dose volume in subject hierarchy Commit: r:2735|slicerrt:2735

2016-05-26, 17:42:19 - Csaba Pinter

Re #785: Trigger update of DVH metrics table after calculation. This fixes a bug where the bottom row was empty after multiple calculation rounds Commit: r:2877|slicerrt:2877

#786 Add support for open contours

Issue reported in http://www.na-mic.org/Bug/view.php?id=4087 Adding this support will be also useful for future projects.

The open contours are to be loaded to segmentation objects with

2015-11-18, 19:05:22 - Csaba Pinter

description: changed from “Issue reported in http://ww…” to “Issue reported in http://ww…”

2015-11-18, 20:47:15 - Csaba Pinter

Re #786: Fixed crash occurring with single cell contours Commit: r:2501|slicerrt:2501

2016-03-09, 15:47:22 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.18” to “SlicerRt 0.19”

2016-09-09, 15:08:28 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.19” to “SlicerRt 1.1”

#787 Create module for deformable registration of two segments

A convenient module is needed for deformable (and rigid) registration of a segment in two structure sets.

The driving application is prostate MRI/US registration (but the module should be kept as general as possible): MRI image and prostate segment and US image and segment is received as DICOM images and structure sets. Based on the registration of prostate, all other structures in the MRI structure set needs to be deformed to the US volume space. Existing registration module in SlicerProstate should be used/improved as much as possible (to minimize code duplication).

Plan accepted by Andriy Fedorov to consolidate the SlicerProstate voxel-based and SlicerRT segmentations-based approaches:

Additional tasks:

2015-11-22, 21:07:09 - Csaba Pinter

Re #787: Added ProstateMRIUSContourPropagation module for MRI-US fusion, WIP The module so far is not generic, some inputs are (mildly) hard-coded. When its fully functional, the not application dependent parts will be detached to a SegmentRegistration module. Commit: r:2503|slicerrt:2503

2015-11-23, 02:10:35 - Csaba Pinter

Re #787: Added US resampling step Commit: r:2504|slicerrt:2504

2015-11-25, 20:08:06 - Csaba Pinter

milestone_id: changed from null to “SlicerRt 0.18”

2015-11-30, 23:55:19 - Csaba Pinter

Re #787: ProstateMRIUSContourPropagation MRI-US fusion functionally complete Commit: r:2510|slicerrt:2510

2015-12-04, 21:19:57 - Csaba Pinter

Re #787: Added commented code for later use of DICOMUtils convenience functions Commit: r:2521|slicerrt:2521

2016-02-09, 17:21:05 - Csaba Pinter

Re #787: Update prostate contour propagation module to work with latest nightly Commit: r:2641|slicerrt:2641

2016-02-09, 19:44:10 - Csaba Pinter

Re #787: Fixed oriented image data bounds calculation; Fixed reference volume selection in the case the segmentation node also references itself Commit: r:2642|slicerrt:2642

2016-02-10, 15:43:26 - Csaba Pinter

Re #787: Added user interface for running the workflow with any data; Implemented self test Commit: r:2643|slicerrt:2643

2016-02-11, 17:47:13 - Csaba Pinter

Re #787: Minor improvements in MRI-US contour propagation Commit: r:2644|slicerrt:2644

2016-02-11, 22:17:02 - Csaba Pinter

Re #787: Added mode data selectors to MRI-US contour propagation to be able to choose data nodes directly. This was necessary because in the new datasets 1. Everything is under the same patient 2. The ultrasound data is not in the same study. Auto-selection heuristics was implemented to decrease interaction time Commit: r:2646|slicerrt:2646

2016-02-11, 23:04:46 - Csaba Pinter

Re #787: Added segment comparison step to quickly quantify the quality of the distance map based registration of the US and MR prostate structures Commit: r:2647|slicerrt:2647

2016-02-16, 18:56:38 - Csaba Pinter

Re #787: Fixed crash when a segmentation node was cloned Commit: r:2655|slicerrt:2655

2016-02-16, 20:56:09 - Csaba Pinter

Re #787: Fixed bug that caused merged labelmap to be generated when cloning segmentation; Added convenience function to remove all segments from segmentation Commit: r:2657|slicerrt:2657

2016-02-17, 15:28:31 - Csaba Pinter

Re #787: Fixed issues with transforms, 2D image display, and hardening Commit: r:2659|slicerrt:2659

2016-02-17, 20:05:18 - Csaba Pinter

Re #787: Fixed DICOM-RT export issue Commit: r:2664|slicerrt:2664

2016-02-17, 23:42:18 - Csaba Pinter

Re #787: Fixed harden transform issue. The invert call actually inverted the parent transform, not just for the resampling, so when called multiple times the transform changed Commit: r:2665|slicerrt:2665

2016-02-18, 18:33:48 - Csaba Pinter

Re #787: Fix transform issue in MRI-US contour propagation module. The pre-alignment transform is applied to the MR volume as it is the one that should move Commit: r:2667|slicerrt:2667

2016-03-09, 13:47:10 - Csaba Pinter

Re #787: Added evaluation features to prostate MRI-US contour propagation: Two fiducial lists to place fiducials to calculate error metrics, radio buttons to show results with different registration types (none, rigid, deformable); Minor UI changes Commit: r:2709|slicerrt:2709

2016-03-10, 19:39:43 - Csaba Pinter

Re #787: Consolidated segmentation display convenience functions; Added function to set all three types of opacity with one call. Commit: r:2717|slicerrt:2717

2016-03-10, 21:20:37 - Csaba Pinter

Re #787: Implemented fiducial error calculation, the results appear in a table view layout; Visualization is set after registration so that it is easier to see the results Commit: r:2718|slicerrt:2718

2016-03-14, 15:24:06 - Csaba Pinter

Re #787: Show segment comparison results in table layout instead of switching to the segment comparison module Commit: r:2721|slicerrt:2721

2016-03-15, 19:03:14 - Csaba Pinter

Re #787: Show all table rows for fiducial results; Disabled removal of intermediate nodes until the crash on Mac is solved Commit: r:2722|slicerrt:2722

2016-03-15, 19:12:50 - Csaba Pinter

Re #787: Fixed mcrash on Mac when removing intermediate nodes Commit: r:2723|slicerrt:2723

2016-03-23, 23:06:15 - Csaba Pinter

Re #787: Fixed crash when exporting DICOM-RT study with new SH study node; Added comment in vtkSlicerSegmentationsModuleLogic to remind myself that the function in question is not needed any more. Kept it there temporarily so that the CHUM staff can use the module without need of new SlicerRT install. Also see new TODO comment in next commit Commit: r:2753|slicerrt:2753

2016-03-23, 23:08:01 - Csaba Pinter

Re #787: Added DICOM export button in MRI-US fusion module for convenient export, and so that the objects can be resampled to the US reference frame. It creates a new study for the deformed and resampled MRI volume and segmentation, and opens the DICOM export dialog. Commit: r:2754|slicerrt:2754

2016-04-04, 14:47:34 - Csaba Pinter

Re #787: Added simplified SegmentRegistration module for user evaluation. Duplicated code from ProstateMRIUSContourPropagation until decision is made whether to use SegmentRegistration which then can be used from ProstateMRIUSContourPropagation Commit: r:2764|slicerrt:2764

2016-04-05, 16:14:59 - Csaba Pinter

Re #787: Fixed bug in SegmentRegistration Commit: r:2765|slicerrt:2765

2016-04-06, 15:18:11 - Csaba Pinter

Re #787: Work towards exporting structure sets directly into planar contours (from closed surface slice intersections if the master is poly data) WIP Commit: r:2766|slicerrt:2766

2016-04-06, 18:14:19 - Csaba Pinter

Component: changed from null to “SlicerRt modules”

2016-04-06, 18:14:19 - Csaba Pinter

description: changed from “A convenient module is need…” to “A convenient module is need…”

2016-04-06, 18:14:19 - Csaba Pinter

status: changed from “New” to “Accepted”

2016-04-06, 18:18:09 - Csaba Pinter

description: changed from “A convenient module is need…” to “A convenient module is need…”

2016-04-07, 17:03:42 - Csaba Pinter

Re #787: Export structure sets directly into planar contours works Commit: r:2767|slicerrt:2767

2016-04-07, 19:05:17 - Csaba Pinter

Re #787: Revert MRI resampling to US geometry (code is still there in if branch), and enabled direct contour export to DICOM RTSS Commit: r:2768|slicerrt:2768

2016-04-07, 19:14:28 - Csaba Pinter

Re #787: Fixed issue with exporting structures as contours when the anatomical image does not have instance UIDs for the contained slices Commit: r:2769|slicerrt:2769

2016-05-24, 19:23:18 - Csaba Pinter

Re #787: Make PadImageToContainImage function python accessible without the need to specify custom extent. Commit: r:2870|slicerrt:2870

2016-05-24, 21:13:18 - Csaba Pinter

Re #787: Fix segment comparison in ProstateMRIUSContourPropagation module that failed due to recent changes around SlicerRT module parameter nodes Commit: r:2871|slicerrt:2871

2016-06-07, 18:58:26 - Csaba Pinter

Re #787: Update segmentation import commands to follow Slicer core changes Commit: r:2911|slicerrt:2911

2016-06-08, 19:29:30 - Csaba Pinter

Re #787: Update segmentation import commands to follow Slicer core changes Commit: r:2917|slicerrt:2917

2016-07-05, 20:34:16 - Csaba Pinter

status: changed from “Accepted” to “Test”

2016-07-25, 23:13:14 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.18” to “SlicerRt 0.19”

2016-12-19, 14:58:54 - Csaba Pinter

Re #787: Update Prostate MRI-US Contour Propagation and Segment Registration modules to follow Slicer core changes Commit: r:3110|slicerrt:3110

2017-02-22, 14:49:28 - Csaba Pinter

Re #787: Update segment registration modules to follow Slicer core changes. The CropVolume module’s output node name postfix has been changed, and it caused these modules to fail. Commit: r:3119|slicerrt:3119

2017-02-22, 15:09:15 - Csaba Pinter

Re #787: Made previous change more robust against future changes Commit: r:3120|slicerrt:3120

2017-03-10, 22:09:18 - Csaba Pinter

Re #787, re #797: Update MRI-US fusion and SegmentRegistration modules to work with subject hierarchy 2.0 Commit: r:3127|slicerrt:3127

2017-05-27, 03:37:54 - Csaba Pinter

Segment Registration extension added with the two modules. Future tasks related to this will be tracked on its GitHub repo https://github.com/SlicerRt/SegmentRegistration

2017-05-27, 03:37:54 - Csaba Pinter

status: changed from “Test” to “Fixed”

#788 Segmentation GetBounds is incorrect if upper bound is below -1

Because vtkMath::UninitializeBounds sets the bounds to (0,-1,0,-1,0,-1), the ExtendBounds function does not set upper bounds if it’s below the initial -1, so returning an incorrect -1 value.

2015-11-24, 19:26:12 - Csaba Pinter

Fixed #788: Implemented custom UninitializeBounds method to correctly handle bounds below -1 Commit: r:2507|slicerrt:2507

2015-11-24, 19:26:12 - Csaba Pinter

status: changed from “New” to “Fixed”

#789 Detect extreme cases at contours to surface conversion

…and indicate failure instead of unreasonably long computation time or possibly crash. The extreme cases include

2015-11-25, 20:10:10 - Csaba Pinter

Re #789: Fix crash when keyhole step in contours to surface conversion fails. In that case it will result in faulty surface, but at least it will not crash any more. Commit: r:2508|slicerrt:2508

2015-11-25, 21:29:30 - Csaba Pinter

Re #789: Added function to disable a specific segmentation converter role instead of a complete representation. This way it is still possible use a representation, but using other conversion paths; Added threshold in DICOM-RT importer that prevents conversion of a loaded structure set to closed surface if it is extremely large (largest contour more than 800K points or sum of all points more than 3M) Commit: r:2509|slicerrt:2509

#790 Remove VTKv5 support

Following Slicer core change https://github.com/Slicer/Slicer/pull/425

2015-12-03, 17:23:08 - Csaba Pinter

Fixed #790: Removed VTK5 ifdef branches from the code Commit: r:2516|slicerrt:2516

2015-12-03, 17:23:08 - Csaba Pinter

status: changed from “New” to “Fixed”

#791 Add convenience functions to segments subject hierarchy plugin

2015-12-03, 18:32:46 - Csaba Pinter

Fixed #791: Added actions to segment subject hierarchy plugin for showing only selected segment and showing all segments in segmentation Commit: r:2517|slicerrt:2517

2015-12-03, 18:32:46 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

#792 Cloned segmentation nodes model representation and opacities are not preserved

2015-12-04, 20:13:30 - Csaba Pinter

Fixed #792: Fixed segmentation display property propagation when cloning segmentation nodes Commit: r:2518|slicerrt:2518

2015-12-04, 20:13:30 - Csaba Pinter

status: changed from “New” to “Fixed”

#793 Automatically show when converting to a model representation

If user converts to a model representation it is reasonable to show it.

2015-12-04, 20:31:38 - Csaba Pinter

Fixed #793: Automatically show when converting to a model representation Commit: r:2519|slicerrt:2519

2015-12-04, 20:31:38 - Csaba Pinter

status: changed from “New” to “Fixed”

#794 Add exported representation to same subject hierarchy branch as segmentation

2015-12-04, 20:47:18 - Csaba Pinter

Fixed #794: Add exported representation to same subject hierarchy branch as segmentation Commit: r:2520|slicerrt:2520

2015-12-04, 20:47:18 - Csaba Pinter

status: changed from “New” to “Fixed”

#795 Crash when deleting SH branch containing segmentation

2015-12-08, 20:05:36 - Csaba Pinter

Fixed #795: Fixed crash when deleting SH branch containing segmentation

Segmentation module deleted the associated SH node for segmentation that was also deleted by SH plugin logic Commit: r:2524|slicerrt:2524

2015-12-08, 20:05:36 - Csaba Pinter

status: changed from “New” to “Fixed”

#796 Support for structure set series containing both fiducials and contours

Currently if an RTSS series contains both fiducials and contours, only the type of the first instance is created, the others discarded.

2016-01-12, 17:40:02 - Csaba Pinter

Fixed #796: Added support for RTSS that contain both contours and fiducials; Also fixed a crash in contour to surface conversion. Commit: r:2571|slicerrt:2571

2016-01-12, 17:40:02 - Csaba Pinter

status: changed from “New” to “Fixed”

2016-01-14, 21:19:33 - Csaba Pinter

Re #424, re #796: Added Pinnacle SPICE dataset containing both POI (fiducial) and contour in its RTSS Commit: r:2577|slicerrt:2577

#797 Add complete subject hierarchy support for the neurosurgery tutorial wokflow

The neurosurgery tutorial wokflow is one that many people do regularly. To make SH more accepted we need to add plugins supporting this workflow better.

2016-07-18, 14:50:09 - Csaba Pinter

priority: changed from “Normal (3)” to “High (2)”

2017-02-12, 20:22:38 - Csaba Pinter

Re #797: Remove sample scripted subject hierarchy plugins that did not have any function, and only served as samples Commit: r:3117|slicerrt:3117

2017-03-08, 21:26:36 - Csaba Pinter

Re #797: Update SlicerRT to build and mostly work against subject hierarchy 2.0

Further fixes will be needed Commit: r:3122|slicerrt:3122

2017-03-09, 20:52:01 - Csaba Pinter

Re #797: Fixed rest of automatic tests that failed after updating to subject hierarchy 2.0 Commit: r:3123|slicerrt:3123

2017-03-10, 16:53:46 - Csaba Pinter

Re #797: Simplified subject hierarchy item checks after changing the invalid item ID in Slicer core Commit: r:3124|slicerrt:3124

2017-03-10, 16:59:42 - Csaba Pinter

Re #797: Fixed python tests Commit: r:3125|slicerrt:3125

2017-03-10, 22:02:39 - Csaba Pinter

Re #797: Fixed DICOM-RT export Commit: r:3126|slicerrt:3126

2017-03-10, 22:09:18 - Csaba Pinter

Re #787, re #797: Update MRI-US fusion and SegmentRegistration modules to work with subject hierarchy 2.0 Commit: r:3127|slicerrt:3127

2017-03-24, 19:58:15 - Csaba Pinter

Re #797: Various fixes

Fixed IGRT self test with SH 2.0 Fixed crash in DVH when metric checkbox was turned on with empty input Commit: r:3132|slicerrt:3132

2017-03-30, 15:08:06 - Csaba Pinter

With the DWI SH plugins (DTI volume, and plugins for the seeding modules in SlicerDMRI) and the labelmap export option in the segmentations SH plugin, integration is almost complete. The last piece is CLI support for segmentations, so that the labelmap export step (which is now much more convenient with the SH option) can be eliminated completely.

2017-03-30, 15:08:06 - Csaba Pinter

status: changed from “New” to “Accepted”

2017-03-30, 15:08:11 - Csaba Pinter

priority: changed from “High (2)” to “Normal (3)”

2017-07-25, 18:19:50 - Csaba Pinter

Closing this issue as fixed, as the CLI work alone will fix it. Also as the Slicer core tickets are going into the Slicer Mantis, there will be no connection between the tickets anymore.

2017-07-25, 18:19:50 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

#798 Bugs in gel dosimetry due to Slicer and SlicerRT changes

  1. Scalar bar broke due to changes in SliceViewAnnotations. The problem seems to be https://github.com/Slicer/Slicer/blob/master/Modules/Scripted/DataProbe/DataProbeLib/SliceViewAnnotations.py#L77 introduced in rev24418 that negates the support of external layout managers that I added in rev24259, see https://github.com/Slicer/Slicer/blob/master/Modules/Scripted/DataProbe/DataProbeLib/SliceViewAnnotations.py#L27
  2. Gamma mask segment is not shown

2016-01-15, 19:26:32 - Csaba Pinter

Fixed #798: Fixed regressions introduced by changes in Slicer and SlicerRT; Scalar bar is now displayed correctly (in nightly only, a fix was needed in Slicer core); Gamma mask segment now appears Commit: r:2580|slicerrt:2580

2016-01-15, 19:26:32 - Csaba Pinter

status: changed from “New” to “Fixed”

2016-01-15, 19:49:01 - Csaba Pinter

Re #798: Changed fix for segment showing; Changed checks of objects against None to new convention Commit: r:2581|slicerrt:2581

2016-01-16, 20:58:44 - Csaba Pinter

Related Slicer core commit: http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=24872

#799 Add support for passing markup points in files

CLI modules can now read/write markups in csv files. Add support for that in MatlabBridge.

2016-01-16, 23:11:04 - Andras Lasso

re #799: Added helper function for writing fcsv files Commit: r:2583|slicerrt:2583

2017-01-06, 03:53:51 - Andras Lasso

re #799: Added support for reading and writing of pointfile data Commit: r:3111|slicerrt:3111

#800 Add movable separator to Subject hierarchy and Segmentations

The movable separator under the model hierarchy tree in Models module is very useful. It would be nice if the same widget could be used under the SH tree and the SegmentsTable.

2016-02-22, 21:26:23 - Csaba Pinter

Re #800: Added movable separator to Segmentations module UI for the segments table Commit: r:2686|slicerrt:2686

2016-02-22, 22:53:45 - Csaba Pinter

It was decided that Subject hierarchy does not need such a separator as the widget is always resized to the tree view, and it is the main part of the module. As the separator was added to Segmentations, I’m closing the ticket.

2016-02-22, 22:53:45 - Csaba Pinter

status: changed from “New” to “Fixed”

#801 IGRT self test fails

Due to Slicer core changes in 24798

2016-01-21, 18:38:54 - Csaba Pinter

Fixed #801: IGRT self test fixed that failed due to Slicer changes in rev24798, where the TransformBranch feature was moved from the SH node to the logic. Commit: r:2590|slicerrt:2590

2016-01-21, 18:38:54 - Csaba Pinter

status: changed from “New” to “Fixed”

#802 RTPlan import / Subject hierarchy issues

Also belongs to the same topic (re-integration of the EBP changes): DicomRtImportSelfTest fails:

File ‘C:/d/SlicerRT_R/inner-build/lib/Slicer-4.5/qt-scripted-modules/DicomRtImportSelfTest.py’, line 224, in TestSection_4LoadIntoSlicer self.assertEqual( len( slicer.util.getNodes(‘vtkMRMLModelHierarchyNode*’) ), 6 ) … AssertionError: 1 != 6

2016-02-04, 14:05:35 - Csaba Pinter

description: changed from “Issues reported by Csaba vi…” to “- There is a stray markup n…”

2016-02-04, 22:15:44 - Greg Sharp

Re #802 Move RTPlan markups under study within subject hierarchy on dicom import Commit: r:2628|slicerrt:2628

2016-02-05, 18:39:09 - Greg Sharp

description: changed from “- There is a stray markup n…” to “- The RTSTRUCT isocenter pa…”

2016-02-05, 18:42:35 - Greg Sharp

Re #802 Remove code that adds markups for beam isocenters; instead use the markups node referenced by the plan for isocenter Commit: r:2633|slicerrt:2633

2016-02-05, 18:45:22 - Csaba Pinter

Can you please revert the description change? Changing the problem statement goes against the idea of tickets. In the ticket we define the problems, and we shouldn’t remove any items, because we won’t know what to test when we’re done. We can only change ticket descriptions when it becomes invalid, and even then we should document it somewhere what was the original. Please add comments instead. Thanks!

2016-02-05, 18:47:03 - Greg Sharp

OK. But the issue with beam models does belong to this ticket too.

2016-02-05, 18:48:23 - Greg Sharp

description: changed from “- The RTSTRUCT isocenter pa…” to “- Stray markups node outsid…”

2016-02-05, 19:13:18 - Csaba Pinter

Yes, but in the process we shouldn’t delete items from the list this ticket was about.

2016-02-05, 20:49:57 - Greg Sharp

Re #802 Beams now appear with the correct name in SH Commit: r:2634|slicerrt:2634

2016-02-05, 20:52:00 - Greg Sharp

Re #802 Remove extranious debug statement Commit: r:2635|slicerrt:2635

2016-02-17, 15:18:56 - Csaba Pinter

Thanks for fixing the RTImage import! I haven’t tested yet, but I will test everything once I’m finally all done with the segment editor (soo close now). I noticed that the DicomRtImportSelfTest fails. Can you please take a look at it? Most probably due to the different types and number of nodes that are created. Thanks!

2016-02-17, 15:18:56 - Csaba Pinter

status: changed from “New” to “Accepted”

2016-03-16, 15:24:06 - Greg Sharp

Re #802 Fix crash during DICOM-RT import Commit: r:2726|slicerrt:2726

2016-03-21, 15:35:22 - Csaba Pinter

Re #802: Fixes around the RT plan node. Removed unused and seemingly redundant RTPlanName member, and use node name when creating markups POI node. Changes to adhere to coding conventions, simplifications Commit: r:2739|slicerrt:2739

2016-03-25, 18:47:04 - Csaba Pinter

Fixed #802: RTBeam node made subclass of Model node so its model is implicitly displayed and handled correctly, including in subject hierarchy; Fixed DicomRtImportSelfTest Commit: r:2760|slicerrt:2760

2016-03-25, 18:47:04 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

#803 RTImage display is broken

The RTImage does not display correctly. The function vtkSlicerDicomRtImportExportModuleLogic::SetupRtImageGeometry() needs to be adjusted to get the required information from the vtkMRMLRTBeamNode rather than a markups node.

2016-02-12, 23:46:47 - Csaba Pinter

milestone_id: changed from null to “SlicerRt 0.18”

2016-02-12, 23:47:04 - Csaba Pinter

Component: changed from null to “SlicerRt modules”

2016-02-16, 16:39:34 - Greg Sharp

Test #803 Update RTIMAGE import to use attributes from beam instead of isocenter Commit: r:2654|slicerrt:2654

2016-02-16, 16:39:34 - Greg Sharp

assigned_to_id: changed from null to “gregsharp”

2016-02-16, 16:39:34 - Greg Sharp

status: changed from “New” to “Test”

2016-02-22, 23:09:47 - Csaba Pinter

status: changed from “Test” to “Fixed”

#804 When window/leveling RT image Slicer hangs

After DICOM-RT import, Slicer intermittently exhibits performance issues. This has been observed on linux, where CPU usage goes to 100% for a few minutes.

One operation that can sometimes reproduce the problem is to load an RT IMAGE, view the image in slice view, and then change window/level with the mouse.

Occasionally the problem occurs simply by loading a DICOM-RT directory, and using ALT-TAB to change between windows.

2016-02-18, 16:21:58 - Csaba Pinter

Component: changed from null to “SlicerRt modules”

2016-02-18, 16:21:58 - Csaba Pinter

milestone_id: changed from null to “SlicerRt 0.18”

2016-02-22, 23:15:09 - Csaba Pinter

I was able to reproduce this on Windows with window/leveling the RT image. Will look into it.

2016-02-22, 23:15:09 - Csaba Pinter

CommentContent: changed from “I was able to reproduce this with window/leveling the RT image. Will look into it.” to “I was able to reproduce this on Windows with window/leveling the RT image. Will look into it.”

2016-03-19, 17:54:19 - Csaba Pinter

@gregsharp I changed the name of this ticket as I’ve fixed only the one issue I could reproduce. The cases you described may be related, may be not, but if you experience another similar issue in the future, please try to reproduce it best you can and add a ticket for that scenario. Thanks!

2016-03-19, 17:54:19 - Csaba Pinter

summary: changed from “Intermittent performance issues” to “When window/leveling RT image Slicer hangs”

2016-03-19, 17:54:19 - Csaba Pinter

description: changed from “After DICOM-RT import, Slic…” to “After DICOM-RT import, Slic…”

2016-03-19, 17:54:22 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2016-03-19, 18:38:18 - Csaba Pinter

Fixed #804: RT image display and management made simpler: texture pipeline is put in place instead of an intermediate texture volume node. This change also greatly speeds up the planar image display update, thus fixing the performance issue that was reported in this ticket. Commit: r:2736|slicerrt:2736

2016-03-19, 18:38:18 - Csaba Pinter

status: changed from “New” to “Fixed”

#805 Warning on import multiple RT IMAGE with same series

The DICOM-RT import logic assumes that there is a single SOP instance UID for each series. This assumption is incorrect for RT IMAGE, where multiple DRR belong to a single series. Warnings appear on the console, such as below.

Warning: In /PHShome/gcs6/build/slicer-4/Slicer/Libs/MRML/Core/vtkMRMLSubjectHierarchyNode.cxx, line 251 vtkMRMLSubjectHierarchyNode (0x6e69780): AddUID: UID with name ‘DICOMInstanceUID’ already exists in subject hierarchy node ‘6: RTIMAGE: LT LAT PROS-DRR_SubjectHierarchy’ with value ‘1.2.246.352.71.3.2088656855.2381134.20110921150951’. Replacing it with value ‘1.2.246.352.71.3.2088656855.2381138.20110921153147’!

2016-02-18, 16:21:30 - Csaba Pinter

Component: changed from null to “SlicerRt modules”

2016-02-18, 16:21:30 - Csaba Pinter

summary: changed from “Import multiple RT IMAGE with same series” to “Warning on import multiple RT IMAGE with same series”

2016-02-18, 16:21:30 - Csaba Pinter

priority: changed from “Normal (3)” to “Low (4)”

2016-02-18, 16:21:30 - Csaba Pinter

milestone_id: changed from null to “SlicerRt 0.19”

#806 Scripted module generic test fails if loadable module dependency is specified

The problem is that the additional module paths don’t contain the loadable modules, and in case of SegmentEditor, the Segmentations module is needed (temporarily removed so that it passes until this is solved). The only reason the DvhComparison generic test passes, is that its dependency list is empty (incorrectly).

See error log below.

2016-03-03, 19:11:55 - Csaba Pinter

35: Test command: C:\d\S4R\Slicer-build\Slicer.exe ‘–no-splash’ ‘–testing’ ‘–ignore-slicerrc’ ‘–launcher-additional-settings’ ‘C:/d/SlicerRT_R/inn er-build/AdditionalLauncherSettings.ini’ ‘–python-code’ ‘import slicer.testing; slicer.testing.runUnitTest([‘C:/d/SlicerRT_R/inner-build/SegmentEdito r’, ‘c:/d/SlicerRT/SegmentEditor’], ‘qSlicerSegmentEditorModuleGenericTest’)’ ‘–no-main-window’ ‘–disable-cli-modules’ ‘–additional-module-path’ ‘C :/d/SlicerRT_R/inner-build/lib/Slicer-4.5/qt-scripted-modules’ 35: Test timeout computed to be: 1500 35: Session start time …….: 2016-03-03 13:51:13 35: Slicer version ………..: 4.5.0-2016-02-21 (revision 24940) win-amd64 - not installed 35: Operating system ………: Windows / Professional / (Build 9200) - 64-bit 35: Memory ……………….: 16360 MB physical, 18792 MB virtual 35: CPU ………………….: GenuineIntel 3.410 MHz, 8 cores 35: Developer mode enabled …: no 35: Prefer executable CLI ….: no 35: Additional module paths ..: (none) 35: Number of registered modules: 93 35: Number of instantiated modules: 93 35: When loading module ‘BatchStructureSetConversion’ , the dependency ‘DicomRtImportExport’ failed to be loaded. 35: When loading module ‘CLIEventTest’ , the dependency ‘CLI4Test’ failed to be loaded. 35: Initializing terminology mapping for map file C:/d/S4R/Slicer-build/share/Slicer-4.5/ColorFiles/Terminology//GenericAnatomyColors-SNOMED.csv 35: 288 terms were read for Slicer LUT GenericAnatomyColors 35: When loading module ‘CropVolume’ , the dependency ‘ResampleScalarVectorDWIVolume’ failed to be loaded. 35: When loading module ‘DicomRtImportSelfTest’ , the dependency ‘DicomRtImportExport’ failed to be loaded. 35: When loading module ‘IGRTWorkflow_SelfTest’ , the dependency ‘DicomRtImportExport’ failed to be loaded. 35: When loading module ‘SegmentEditor’ , the dependency ‘Segmentations’ failed to be loaded. 35: When loading module ‘TwoCLIsInARowTest’ , the dependency ‘CLI4Test’ failed to be loaded. 35: When loading module ‘TwoCLIsInParallelTest’ , the dependency ‘CLI4Test’ failed to be loaded. 35: Number of loaded modules: 85 35: ——————————————- 35: path: [‘C:/d/SlicerRT_R/inner-build/SegmentEditor’, ‘c:/d/SlicerRT/SegmentEditor’] 35: testname: qSlicerSegmentEditorModuleGenericTest 35: ——————————————- 35: test_acknowledgementText (qSlicerSegmentEditorModuleGenericTest.qSlicerSegmentEditorModuleGenericTest) … ERROR 35: test_application (qSlicerSegmentEditorModuleGenericTest.qSlicerSegmentEditorModuleGenericTest) … ERROR 35: test_categories (qSlicerSegmentEditorModuleGenericTest.qSlicerSegmentEditorModuleGenericTest) … ERROR 35: test_contributors (qSlicerSegmentEditorModuleGenericTest.qSlicerSegmentEditorModuleGenericTest) … ERROR 35: test_file_attribute (qSlicerSegmentEditorModuleGenericTest.qSlicerSegmentEditorModuleGenericTest) … ERROR 35: test_logic (qSlicerSegmentEditorModuleGenericTest.qSlicerSegmentEditorModuleGenericTest) … ERROR 35: test_module_valid (qSlicerSegmentEditorModuleGenericTest.qSlicerSegmentEditorModuleGenericTest) … ERROR 35: test_name_attribute (qSlicerSegmentEditorModuleGenericTest.qSlicerSegmentEditorModuleGenericTest) … ERROR 35: test_setCurrentModule (qSlicerSegmentEditorModuleGenericTest.qSlicerSegmentEditorModuleGenericTest) … ERROR 35: test_setMRMLScene (qSlicerSegmentEditorModuleGenericTest.qSlicerSegmentEditorModuleGenericTest) … ERROR 35: test_settings (qSlicerSegmentEditorModuleGenericTest.qSlicerSegmentEditorModuleGenericTest) … ERROR 35: test_widgetRepresentation (qSlicerSegmentEditorModuleGenericTest.qSlicerSegmentEditorModuleGenericTest) … ERROR 35: 35: ====================================================================== 35: ERROR: test_acknowledgementText (qSlicerSegmentEditorModuleGenericTest.qSlicerSegmentEditorModuleGenericTest) 35: ———————————————————————- 35: Traceback (most recent call last): 35: File ‘C:\d\SlicerRT_R\inner-build\SegmentEditor\qSlicerSegmentEditorModuleGenericTest.py’, line 8, in setUp 35: self.assertTrue(hasattr(slicer.modules, ‘segmenteditor’)) 35: AssertionError: False is not true 35:

etcetc. same thing for each test method

2016-03-03, 19:11:58 - Csaba Pinter

priority: changed from “Normal (3)” to “Low (4)”

2016-04-11, 15:01:03 - Csaba Pinter

Re #806: Temporarily ‘fixing’ Segment Editor generic test until the root cause is fixed. Decided to do so so that the red dashboard indicates real failures Commit: r:2775|slicerrt:2775

2016-04-15, 20:10:27 - Csaba Pinter

summary: changed from “SegmentEditor generic test fails” to “Scripted module generic test fails if loadable module dependency is specified”

2016-04-15, 20:10:27 - Csaba Pinter

description: changed from “The problem is that the add…” to “The problem is that the add…”

2016-04-15, 20:10:27 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.18” to “Future”

2016-06-01, 02:41:28 - Andras Lasso

Fixed the issue by removing WITH_GENERIC_TESTS from slicerMacroBuildScriptedModule and running it manually, by calling slicer_add_python_unittest with additional module paths set:

#—————————————————————————– if(CMAKE_CONFIGURATION_TYPES) set(MODULE_BUILD_DIR ‘’) foreach(config ${CMAKE_CONFIGURATION_TYPES}) list(APPEND MODULE_BUILD_DIR ‘${CMAKE_BINARY_DIR}/${Slicer_QTLOADABLEMODULES_LIB_DIR}/${config}’) endforeach() else() set(MODULE_BUILD_DIR ‘${CMAKE_BINARY_DIR}/${Slicer_QTLOADABLEMODULES_LIB_DIR}’) endif()

Register the unittest subclass in the main script as a ctest.

Note that the test will also be available at runtime.

slicer_add_python_unittest( SCRIPT ${MODULE_NAME}.py # TODO: slicer_add_python_unittest should take care of adding the additional module paths SLICER_ARGS –disable-cli-modules –additional-module-paths ${MODULE_BUILD_DIR} ${CMAKE_BINARY_DIR}/${Slicer_QTSCRIPTEDMODULES_LIB_DIR} )

Fixed in r2883.

2016-06-01, 02:41:28 - Andras Lasso

status: changed from “New” to “Fixed”

2016-06-01, 14:56:39 - Csaba Pinter

Thanks Andras!

2016-08-25, 16:49:18 - Csaba Pinter

Re #806: Fixed DvhComparison generic test with the dependency specified Commit: r:3070|slicerrt:3070

#807 Use Q_FUNC_INFO in Qt error messages to make logging easier

And to prevent copy-paste mistakes

2016-03-09, 13:48:08 - Csaba Pinter

Fixed #807: Replaced manual class and function name logging with Q_FUNC_INFO. This way writing log messages is easier, and copy-paste mistakes are prevented Commit: r:2710|slicerrt:2710

2016-03-09, 13:48:08 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

2016-03-09, 15:07:34 - Csaba Pinter

Re #807: Fixed intermediate data nodes removal in ProstateMRIUSContourPropagation Commit: r:2712|slicerrt:2712

#808 Segment processing tests fail

Due to recent change in generating new segment color.

2016-03-09, 14:58:11 - Csaba Pinter

Fixed #808: Segment comparison and morphology tests failed due to a recent change in generating color for new segments that used the default labels color table. However, this color table is not available for logic tests when the Slicer application is not started. In these cases instead of reporting an error, a random color is generated. Commit: r:2711|slicerrt:2711

2016-03-09, 14:58:11 - Csaba Pinter

status: changed from “New” to “Fixed”

#809 Segmentation PolyData 2D fill visualization not stable

The pipeline that generally worked (was taken from this example http://www.vtk.org/Wiki/VTK/Examples/Python/FilledPolygon):

  1. vtkCutter on the closed surface (generates the lines correctly for 2D outline visualization)
  2. vtkStripper (creates loops)
  3. Set lines as cells in polydata to display However, it resulted in incorrect polygons for thresholded results (MRHead -> Threshold in (Segment)Editor -> Generate model -> Show segmentation as filled polydata). See history of 2D segmentations displayable manager: https://www.assembla.com/spaces/slicerrt/subversion/commits/list/HEAD/trunk/SlicerRt/src/Segmentations/MRMLDM/vtkMRMLSegmentationsDisplayableManager2D.cxx

2016-03-10, 18:12:04 - Csaba Pinter

It seems to be working well in rev2707, except that only one polygon is filled. Maybe the triangle filter only triangulates one of the cells?

2016-03-10, 18:15:38 - Csaba Pinter

Re #809: Disable segmentation 2D polydata fill until a good solution is found Commit: r:2713|slicerrt:2713

2016-07-18, 14:47:30 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.18” to “SlicerRt 0.19”

2016-09-20, 21:32:47 - Csaba Pinter

Fixed in http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=25379

2016-09-20, 21:32:47 - Csaba Pinter

assigned_to_id: changed from “lassoan” to “pinter”

2016-09-20, 21:32:47 - Csaba Pinter

status: changed from “New” to “Fixed”

#810 DICOM export to correctly identify master volume

When performing DICOM-RT import, then DICOM-RT export with Eclipse pelvis sample data, no output files are created. Instead, the following error message appears:

Failed to resample segment BODY to match anatomical image geometry

If RTIMAGE objects are removed from the study before export, then export is successful.

(Formerly called: DICOM Export: RTSTRUCT resampled to wrong volume)

2016-03-17, 15:58:12 - Csaba Pinter

Component: changed from null to “Slicer core”

2016-03-17, 15:58:12 - Csaba Pinter

summary: changed from “RTSTRUCT resampled to wrong volume” to “DICOM Export: RTSTRUCT resampled to wrong volume”

2016-03-17, 15:58:12 - Csaba Pinter

milestone_id: changed from null to “SlicerRt 0.18”

2016-03-17, 15:58:29 - Csaba Pinter

The problem is that if the user wants to export a study with multiple volumes in it, then the RT image may be considered the CT (need to check why, and how to prevent that)

Also see if SH multi-selection can be used for DICOM export

2016-03-17, 15:58:29 - Csaba Pinter

CommentContent: changed from “See if SH multi-selection can be used for DICOM export” to “The problem is that if the user wants to export a study with multiple volumes in it, then the RT image may be considered the CT (need to check why, and how to prevent that)

Also see if SH multi-selection can be used for DICOM export”

2016-03-19, 18:42:52 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.18” to “SlicerRt 0.19”

2017-05-01, 13:56:03 - Csaba Pinter

summary: changed from “DICOM Export: RTSTRUCT resampled to wrong volume” to “DICOM export to correctly identify master volume”

2017-05-01, 13:56:03 - Csaba Pinter

description: changed from “When performing DICOM-RT im…” to “When performing DICOM-RT im…”

#811 DICOM export cannot handle deformable parent transform

If the exported anatomical volume has a deformable transform parent, it is not exported, because SlicerRtCommon::ConvertVolumeNodeToItkImage does not support deformable transforms

2016-03-23, 21:12:48 - Csaba Pinter

Fixed #811: Add deformable transform support to SlicerRtCommon::ConvertVolumeNodeToItkImage, thus enabling exporting anatomical volumes to DICOM with deformable transform parents; Removing unnecessary constants from SlicerRtCommon; Fixed unnecessary error message in planar image logic; Added error messages when conversions fail during DICOM export Commit: r:2751|slicerrt:2751

2016-03-23, 21:12:48 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

#812 DICOM export cannot handle shear in the parent transform

If the exported anatomical volume has a parent linear transform with shear component, the exported volume is incorrect, as it contains only translation, rotation, and scale information from the transform.

Proposed fix: Check at time of DICOM export if the volumes have such parent transforms, and do resampling in those cases instead of simply applying the transform. (vtkSlicerDicomRtImportExportModuleLogic::ExportDicomRTStudy lines 1741 and 1753)

Python code for printing the dot products of the axes (which are 0 for matrices without shear): x = vtk.vtkVector3d(m.GetElement(0,0), m.GetElement(1,0), m.GetElement(2,0)) y = vtk.vtkVector3d(m.GetElement(0,1), m.GetElement(1,1), m.GetElement(2,1)) z = vtk.vtkVector3d(m.GetElement(0,2), m.GetElement(1,2), m.GetElement(2,2)) x.Dot(y) x.Dot(z) y.Dot(z)

2016-03-23, 22:19:21 - Csaba Pinter

Fixed #812: Add support for shear in linear transform parents of volumes exported to DICOM Commit: r:2752|slicerrt:2752

2016-03-23, 22:19:21 - Csaba Pinter

status: changed from “New” to “Fixed”

#813 Nodes outside subject hierarchy following DICOM-RT import

After doing a DICOM-RT import, there is a error popup explaining that nodes have been found outside the hierarchy. See attached image.

2016-03-25, 16:10:04 - Greg Sharp

image:ai9Z3K8Qqr5yoldmr6bg7m

2016-03-25, 16:10:04 - Greg Sharp

Attachment added: “Selection_096.png”

2016-03-25, 16:10:55 - Greg Sharp

Sequence of steps:

  1. Start Slicer
  2. Load Eclipse Prostate phantom from DICOM
  3. Switch to Subject Hierarchy module

2016-03-25, 16:22:49 - Csaba Pinter

You didn’t choose ‘Yes to all’ to enable subject hierarchy. This window (as explained in the text if you have read it) tells the user that SH is not enabled, and if you want to use SH for all the nodes in the scene then something must be done.

2016-03-25, 16:22:49 - Csaba Pinter

status: changed from “New” to “Invalid”

2016-03-25, 16:22:56 - Csaba Pinter

milestone_id: changed from null to “SlicerRt 0.18”

2016-03-25, 16:23:56 - Csaba Pinter

Maybe the text should be different?

2016-03-25, 16:52:53 - Greg Sharp

Yeah, I don’t fully understand. I see all the nodes in the hierarchy widget.
But you are saying they are not actually in the hierarchy? We can discuss next meeting, it is not urgent.

From: Csaba Pinter (pinter) [mailto:slicerrt@alerts.assembla.com] Sent: Friday, March 25, 2016 12:24 PM

2016-03-25, 17:07:27 - Csaba Pinter

You see the nodes because the first half of them are created when you import the DICOM data, and the second half during use of EBP. If you choose ‘Yes to all’ in this dialog, or enable subject hierarchy in application settings, then this dialog will never pop up again (until you delete Slicer.ini), and SH nodes will be automatically created for the supported data nodes.

The reason why SH is not enabled by default (and so SH nodes for the supported nodes are not created, which is what the logic detected and showed the dialog) is that many people don’t use it, and if they deal with for example atlases with a thousand nodes in them, then it slows down Slicer. This may be changed later, but it was a safety ‘feature’.

#814 Labelmap contour interpolation between slices

A feature is needed that

Possible implementation is a SegmentEditor effect that has one button for performing the interpolation, and works as follows:

2016-04-06, 18:44:18 - Csaba Pinter

description: changed from “A feature is needed that

2016-04-18, 04:24:21 - Csaba Pinter

milestone_id: changed from null to “SlicerRt 0.19”

2016-09-09, 15:15:02 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.19” to “Student projects”

2016-10-12, 14:11:38 - Csaba Pinter

Added to Slicer core in http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=25411 Setting to fixed

2016-10-12, 14:11:38 - Csaba Pinter

milestone_id: changed from “Student projects” to “SlicerRt 0.19”

2016-10-12, 14:11:38 - Csaba Pinter

status: changed from “New” to “Fixed”

2016-10-12, 14:11:44 - Csaba Pinter

assigned_to_id: changed from null to “lassoan”

#815 Custom dose difference criteria in dose comparison does not work

Always defaults to 0.01

2016-04-07, 20:34:57 - Csaba Pinter

Test #815: Fixed custom dose difference criteria from always jumping back to 0.01 Commit: r:2772|slicerrt:2772

2016-04-07, 20:34:57 - Csaba Pinter

status: changed from “Accepted” to “Test”

2016-04-10, 16:56:35 - Csaba Pinter

CommentContent: changed from “@kmalexander The feedback was pozitive, so it works on the test data, but please confirm that relaxing the constraints is most probably safe. If it is, then please set the ticket status to Fixed. Thanks!” to null

2016-04-11, 16:54:53 - Csaba Pinter

status: changed from “Test” to “Fixed”

#816 Add local gamma option to dose comparison module

Choi, Gye Won (Diane): ‘ On a different note, my committee brought up the fact that since we hope to use Slicer for future projects as well, it would be nice if Slicer could do local Gamma analysis as well. This is under the impression that local gamma analysis will be more useful when comparing measurements between two different dosimeters, since we want the measurements using two dosimeters to agree at all dose levels, if possible.

Is this an option that can be implemented? Ideally, I would like the Gamma analysis to be able to do a local gamma analysis while excluding points with dose less than a certain global value. ‘

2016-04-14, 23:05:42 - Csaba Pinter

Test #816: Add local dose difference option to Dose Comparison module Commit: r:2778|slicerrt:2778

2016-04-14, 23:05:42 - Csaba Pinter

status: changed from “Accepted” to “Test”

2016-04-15, 18:09:03 - Csaba Pinter

status: changed from “Test” to “Fixed”

#817 Plastimatch warning/error during dose calculation

Plastimatch emits a warning/error during dose calculation. This triggers a failure in the self-test when regular expression is used to detect errors.

After the entry ‘Optimization of the particle number map for any mono-en’ Many instances of ‘WARNING The dose is null in the target interval’

2016-06-01, 14:52:36 - Csaba Pinter

milestone_id: changed from null to “SlicerRt 0.19”

2016-07-28, 15:22:27 - Csaba Pinter

description: changed from “Plastimatch emits a warning…” to “Plastimatch emits a warning…”

2017-03-30, 15:07:59 - Greg Sharp

status: changed from “New” to “Test”

2017-03-30, 15:08:14 - Greg Sharp

assigned_to_id: changed from null to “pinter”

2017-03-30, 15:08:18 - Greg Sharp

Seems fixed. Can you let me know?

2017-03-30, 19:08:17 - Csaba Pinter

py_nomainwindow_ExternalBeamPlanningTest is broken, so I cannot test it with that module. It shows it passes, but actually it fails with these messages 40: When loading module ‘CLIEventTest’ , the dependency ‘CLI4Test’ failed to be loaded. 40: When loading module ‘CropVolume’ , the dependency ‘ResampleScalarVectorDWIVolume’ failed to be loaded. 40: When loading module ‘IGRTWorkflow_SelfTest’ , the dependency ‘BRAINSFit’ failed to be loaded. 40: When loading module ‘TwoCLIsInARowTest’ , the dependency ‘CLI4Test’ failed to be loaded. 40: When loading module ‘TwoCLIsInParallelTest’ , the dependency ‘CLI4Test’ failed to be loaded. I’ll try to fix that.

However, when I run a proton planning from Slicer, there are no warnings, so I guess we can close this.

2017-03-30, 19:08:17 - Csaba Pinter

status: changed from “Test” to “Fixed”

#818 Film Dosimetry Slicelet

Comment out code from 3D Gel Dosimetry Slicelet.

2016-05-12, 16:34:59 - alecr

re #818 Commented out code from 3D Gel Dosimetry slicelet, controlling loading data, registration, 3D Gamma Dose Comparison Commit: r:2827|slicerrt:2827

2016-05-12, 17:20:59 - alecr

re #818

Commented out Tool: Line profile collapsible button. Commit: r:2828|slicerrt:2828

2016-05-12, 19:38:03 - Csaba Pinter

Closed as invalid, as this is a duplicate of #435

2016-05-12, 19:38:03 - Csaba Pinter

status: changed from “New” to “Invalid”

#819 Segmentation module all visible on/off (feature request)

In the segmentation module, you can click visibility on/off for each structure.

It would be nice if clicking the visibility icon on header row would change visibility on/off for all structures. This would make it easy to turn off all structures, then turn on the one you want to look at.

2016-05-25, 15:30:19 - Csaba Pinter

There is a visibility checkbox in the Display section under the segments table that you can use to show/hide the whole segmentation. Does it satisfy your needs?

Also there are visibility tools in Subject hierarchy, such as per-segment and all-segment show/hide, and also context menu action for hiding all segments except one.

2016-06-01, 14:51:58 - Csaba Pinter

milestone_id: changed from null to “SlicerRt 0.18”

2016-06-01, 14:52:25 - Csaba Pinter

@gregsharp Hi Greg! Any comments about my answer?

2016-06-02, 16:07:19 - Csaba Pinter

Based on discussion with Greg, we should eventually add an action to the long-click visibility menu for ‘showing only this egment’. Also possible show all and hide all

2016-06-02, 19:39:14 - Csaba Pinter

priority: changed from “Normal (3)” to “Low (4)”

2016-07-18, 14:47:48 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.18” to “SlicerRt 0.19”

2016-09-09, 15:04:15 - Csaba Pinter

The ‘show only selected segments’ feature was added in http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision

2016-09-09, 15:04:15 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2016-09-09, 15:04:15 - Csaba Pinter

status: changed from “New” to “Test”

2016-09-21, 13:43:56 - Csaba Pinter

@gregsharp Can you please try this feature out?

So to show/hide everything you have the checkbox in the Display option, but it was there before. The new feature is a right-click option for the segments in the table for showing only the selected one. Please close the ticket if this covers what you asked for. Thanks!

2016-09-22, 15:17:30 - Greg Sharp

status: changed from “Test” to “Fixed”

#820 EBP: Aperture offset greater than SAD results in crash

Dose calculation crashes if Aperture offset greater than SAD. Although it’s an impossible scenario it should recover gracefully:

2016-06-09, 15:31:54 - Csaba Pinter

Re #820: Propagate Plastimatch exception message to EBP module UI on dose calculation failure Commit: r:2925|slicerrt:2925

2016-06-09, 15:31:54 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2016-06-09, 15:33:27 - Greg Sharp

Re #820 Plastimatch sends meaningful error message through exception string when source distance shorter than aperture distance Commit: r:2926|slicerrt:2926

2016-06-09, 15:45:59 - Csaba Pinter

status: changed from “New” to “Fixed”

#821 Reloaded segment cannot be edited by the Segment Editor

  1. Save segment as .nrrd file
  2. Close Slicer
  3. Load .nrrd file in as segment
  4. Try to use segment editor; all effects greyed out. Cannot make changes to segment

No error messages related to the module in log.

2016-06-01, 14:51:42 - Csaba Pinter

milestone_id: changed from null to “SlicerRt 0.18”

2016-06-01, 22:03:27 - Andras Lasso

Resolved in r2889

2016-06-01, 22:03:27 - Andras Lasso

status: changed from “New” to “Test”

2016-06-02, 00:23:39 - Csaba Pinter

Thank you, Andras!

@HillaryElrick Can you please try the nightly tomorrow (or later) and close this ticket as Fixed if it also works for you? Thanks!

2016-06-06, 14:33:09 - HillaryElrick

If a volume is added to the scene along with the .nrrd file, the effects now work as normal. The effects tab is greyed out if a segment (.nrrd) is added without a scan to select as the master volume. If this is intended then I can close the ticket as Fixed. Thanks

2016-06-10, 17:26:25 - HillaryElrick

status: changed from “Test” to “Fixed”

#822 Bump plastimatch version

This continuous ticket will track changes needed to keep SlicerRT in sync with plastimatch versions, when this is done for routine maintenance rather than to address a specific issue.

2016-05-17, 14:47:44 - Greg Sharp

Re #822 Update for new plastimatch install/release changes Commit: r:2842|slicerrt:2842

2016-05-17, 14:47:44 - Greg Sharp

assigned_to_id: changed from null to “gregsharp”

2016-09-01, 16:49:07 - Greg Sharp

Re #822 Update a few method names to match plastimatch head Commit: r:3079|slicerrt:3079

2016-09-01, 16:53:09 - Greg Sharp

Re #822 Fix bad git hash problem Commit: r:3080|slicerrt:3080

2017-01-06, 21:07:30 - Greg Sharp

Re #822 Bump version in preparation for project week Commit: r:3113|slicerrt:3113

2017-03-30, 14:46:41 - Greg Sharp

Re #822 Bump plastimatch version for continuing EBP work Commit: r:3133|slicerrt:3133

2017-04-27, 15:27:24 - Greg Sharp

Re #822 Bump plastimatch version and update dose calculation interface to match new version Commit: r:3158|slicerrt:3158

2017-05-13, 12:53:51 - Csaba Pinter

Re #115, #822: Update Plastimatch in attempt to fix Mac build error Commit: r:3175|slicerrt:3175

#823 Segmentation disappears after deselecting volume in slice view

To reproduce just set the volume selection in the slice view to None. After this, the opacity issue appears

Most probably same problem as http://www.na-mic.org/Bug/view.php?id=4251

Original description: Occurs approx. 1/3 of the time when reloading segments

Steps before error:

  1. Save segmentation as .nrrd file
  2. Close and reopen slicer, reload file as segmentation
  3. Load in data via DICOM (CT scan used)
  4. Go to segmentation editor

Unable to see structure through the segment (opacity_bug.png) Changing opacity of segment to 0.1 creates black image (opacity_bug01.PNG)

2016-05-18, 20:37:06 - HillaryElrick

image:bjtr64htGr5PxcacwqjQYw

2016-05-18, 20:37:06 - HillaryElrick

Attachment added: “opacity_bug.png”

2016-05-18, 20:37:06 - HillaryElrick

image:bjttGshtGr5PxcacwqjQYw

2016-05-18, 20:37:06 - HillaryElrick

Attachment added: “opacity_bug01.PNG”

2016-06-01, 14:51:48 - Csaba Pinter

milestone_id: changed from null to “SlicerRt 0.18”

2016-06-15, 17:23:36 - Csaba Pinter

I tested it with the latest version, and could not reproduce it (I followed the steps exactly). Hopefully it was fixed in course of the lot of other fixes Andras applied. I’m closing it as invalid, but if it comes up again, it can be reopened!

2016-06-15, 17:23:36 - Csaba Pinter

status: changed from “New” to “Invalid”

2016-06-15, 19:51:01 - Kyle Sunderland

I encountered this issue and was able to reproduce it by:

2016-06-15, 19:51:01 - Kyle Sunderland

CommentContent: changed from “I encountered this issue and was able to reproduce this issue by:

2016-06-15, 19:57:06 - Csaba Pinter

Thanks, Kyle! I reopened the ticket. Some questions:

  1. Loading what segmentation? That you saved after editing? What is the master of the segmentation you load?
  2. Creating a new segment in the loaded segmentation? Creating new segmentation with binary labelmap master? Or what? Also how is showing/hiding anything in the slice view influences the opacity?

2016-06-15, 19:57:06 - Csaba Pinter

status: changed from “Invalid” to “New”

2016-06-15, 20:01:12 - Kyle Sunderland

  1. No, I just loaded TinyPatient from Dicom. Master was contours.
  2. Conversion of the planar contour -> closed surface -> binary labelmap pathway Upon further inspection, it’s not that the opacity is necessarily wrong, but the background behind the segmentation always appears to be black.

2016-06-15, 20:03:41 - Kyle Sunderland

image:bbAc5mmZqr5Rbfdmr6CpXy

2016-06-15, 20:03:41 - Kyle Sunderland

Attachment added: “tinypatient_visualization_error.png”

2016-06-15, 20:06:15 - Csaba Pinter

Thanks! I’ll investigate

2016-06-16, 14:07:37 - Csaba Pinter

My findings:

Further issue: opacity values coming from DICOM-RTSS are ignored

2016-06-16, 14:23:44 - Csaba Pinter

Correction: Opacity values set when loading DICOM-RTSS are not actually ignored, but only used in 3D, and the opacities in 2D are the default values (0.4). So the opacity value shown in the segments table and what we see in the 2D views are not in sync. But when the user changes segment opacity, then it is applied to both 2D and 3D. This behaviour is inconsistent.

2016-07-25, 23:13:18 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.18” to “SlicerRt 0.19”

2016-09-09, 15:06:41 - Csaba Pinter

description: changed from “Occurs approx. 1/3 of the t…” to “To reproduce just set the v…”

2016-09-09, 15:07:48 - Csaba Pinter

description: changed from “To reproduce just set the v…” to “To reproduce just set the v…”

2016-09-09, 15:14:42 - Csaba Pinter

Component: changed from null to “Slicer core”

2016-09-09, 15:14:42 - Csaba Pinter

summary: changed from “Opacity error when reloading segment” to “Segmentation disappears after deselecting volume in slice view”

2016-10-08, 16:18:51 - Andras Lasso

The problem is that when an image is de-selected, its actor is removed from the renderer and when is displayed again it is added to the top of the actor list. A fix is implemented in CTK, pull request submitted: https://github.com/commontk/CTK/pull/672

2016-10-08, 16:18:51 - Andras Lasso

assigned_to_id: changed from null to “lassoan”

2016-10-08, 16:18:51 - Andras Lasso

status: changed from “New” to “Accepted”

2016-10-11, 15:59:55 - Andras Lasso

Fix integrated into CTK and Slicer.

2016-10-11, 15:59:55 - Andras Lasso

status: changed from “Accepted” to “Fixed”

#824 Model exported from segmentation cannot be shown or saved

Maybe invalid display/storage node

2016-06-06, 16:24:24 - Csaba Pinter

Cannot reproduce so close as invalid. If comes up again, the bug’s details needs to be recorded in another ticket

2016-06-06, 16:24:24 - Csaba Pinter

status: changed from “New” to “Invalid”

#825 Use vtkVariant to convert parameters to string for deserialization

Instead of the lengthy double doubleValue; std::stringstream ss; ss « lineStr.substr(0, commaPosition); ss » doubleValue; doseGy = doubleValue; use doseGy = vtkVariant(lineStr.substr(0, commaPosition)).ToDouble();

The only downside is the lack of error checking. Where it is needed, strings can still be used (if (ss.fail()))

2016-06-08, 19:48:42 - Csaba Pinter

description: changed from null to “Instead of the lengthy …”

2016-06-08, 20:12:38 - Csaba Pinter

Re #743, Fixed #825: Added XML support for beam and plan parameters; Fixed dose calculation progress indicator; Use vtkVariant to convert parameters to string for deserialization instead of streams Commit: r:2920|slicerrt:2920

2016-06-08, 20:12:38 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

#826 Save segmentations into vtm with labelmap master too

Currently vtm (multiblock dataset format) is written for poly data master representations, but a 4D NRRD is written for labelmaps. The problem with 4D nrrd is that it may have huge memory usage especially in case of many segments, because the union of the extents are used. It would be better in this sense to use vtm file (which is an XML pointing to files in a directory with the same name) for labelmaps too, because the segments can be saved one by one. Other advantages:

Implementation: vtkXMLMultiBlockDataWriter::WriteComposite writes the individual blocks into files, but for images it probably uses vti. It will need to be subclassed to use the NRRD writer. It can be done by also subclassing vtkXMLCompositeDataWriter and reimplement CreateWriters so that it creates NRRD writer instead of vtkXMLImageDataWriter

2016-06-18, 09:41:33 - pieper

We should also consider using DICOM as the native representation since it also supports multiple blocks and might have other advantages as well (cross references, interoperability, etc)

2016-06-18, 14:25:52 - Csaba Pinter

We have two parallel ways of saving/loading, and the Save file dialog traditionally saves non-DICOM data, while DICOM export is the one that saves DICOM. Do you propose to export to DICOM using the Save file dialog too?

2016-06-18, 16:23:15 - pieper

Yes, I was thinking that most users wouldn’t know what a .vtm file is, so it wouldn’t make any difference if it was something like a .seg.dcm file instead, even if they hadn’t specifically requested a DICOM export (that is, it’s just an opaque storage format anyway, so why not pick the one that has the best representation for the types of data we want to support). And if we know we want the DICOM export also, then focusing our effort on just one save/restore path would most likely be the more maintainable solution.

2016-06-19, 07:29:47 - Andras Lasso

.vtm is a standard VTK file format. It can be read by any VTK-based application. It’s actually an index file that contains links to a list of simple VTK data files (vtp, vti, …). If an application doesn’t support multi-block data sets, those simple VTK data files can be already loaded by many VTK-based applications.

For proper DICOM read-write we need patient information, references to other nodes, a capable DICOM toolkit, etc, which are all available in Slicer’s DICOM module but not in MRML. So, I think we’ll have both native VTK saving for simplicity and broad compatibility and DICOM saving for DICOM-based workflows.

2016-06-19, 13:39:52 - pieper

I’d still argue that a DICOM file, even a rare one like a SEG or a slightly broken one like a file with empty patient information would be preferable to any of the vtk file formats, particularly for segmentation data since it can encode image orientations and suggested colors for each segment. MRML depends on VTK and ITK, both of which provide enough DICOM support via (the current) DCMTK. I’d also like to see us get to the point where missing patient information is handled that the time of import. For legacy or deidentified data we can create pseudonym patient ID information and use the subject hierarchy to manage groupings (reassigning IDs and references) so that all identified and deidentified data would be handled consistently.

I understand supporting DICOM at this point would involve extra effort so using the .vtm files in the near term may be best. We should discuss with Andrey to get his thoughts.

2016-06-19, 14:27:12 - Andras Lasso

We already store all necessary metadata in standard VTK file formats in custom metadata, so there is no blocking issue, but of course it’s not nice that those are not standardized.

It’s not really a question of which formats we will support, as we must support simple research file formats because we simply have no power of dictating researchers that we work with to switch now if they want to use Slicer. They would just simply not use Slicer. We also want to support DICOM, because we like to be compliant to open standards and many features that we need (and we’ll need in the future) is already nicely specified.

So, the question is how to make user’s life more convenient and keep implementation efforts reasonable while supporting both research and DICOM formats.

One big issue that saving, loading, importing, exporting, and DICOM importing, exporting is all mixed in Slicer. There should be

  1. A single-click save option that would save everything into the Slicer database without information loss. The Slicer database would probably save to DICOM files, which would be indexed by a simple database (it would be similar or the same as the current DICOM database).
  2. An export option that would bring up a similar dialog box as the current save dialog and could save to either DICOM or research formats.

Before this intermix is cleaned up I would not try to add DICOM saving into the current Save data dialog.

2016-06-23, 09:22:58 - Csaba Pinter

Two more ideas that can be independently done and would help in this issue:

I also agree that mixing non-DICOM and DICOM save would not be the best approach; it is already confusing enough that there are two ways of loading and saving data, but at least so far they have been kept separate.

2016-09-21, 13:45:14 - Csaba Pinter

priority: changed from “High (2)” to “Normal (3)”

2017-01-24, 15:02:52 - Csaba Pinter

Related http://www.na-mic.org/Bug/view.php?id=4329

2017-07-25, 18:24:45 - Csaba Pinter

Moved to Slicer Mantis because Segmentations is now in Slicer core https://issues.slicer.org/view.php?id=4399

2017-07-25, 18:24:45 - Csaba Pinter

status: changed from “New” to “Invalid”

#827 Use terminology for segmentations

Associate, display, and modify terminology information for segments in segmentations.

Plans in these wiki pages

2016-06-24, 13:14:16 - Csaba Pinter

Re #827: Added reference terminology color table association for segmentation node Commit: r:2965|slicerrt:2965

2016-07-18, 14:49:46 - Csaba Pinter

priority: changed from “Normal (3)” to “High (2)”

2016-09-13, 01:42:28 - Csaba Pinter

Re #827: Update SlicerRT for coming changes in Slicer related to removal of legacy labelmap for segmentation Commit: r:3087|slicerrt:3087

2016-11-04, 18:53:07 - Andras Lasso

re #827: Fixed build error (due to recent Slicer core changes) Commit: r:3099|slicerrt:3099

2016-12-05, 18:48:58 - Csaba Pinter

Terminology support was added to Slicer core in the following commits: https://github.com/Slicer/Slicer/commit/4bac13a687b39a69e2648f281bd737bae3eaf08c https://github.com/Slicer/Slicer/commit/9c318571b60ddb67944409e73fbe2f352c9076be Bugfixes in different commits

2017-03-24, 19:59:47 - Csaba Pinter

Terminology support has been implemented, tested, and minor issues fixed. Remaining tasks are tracked here: https://github.com/QIICR/QuantitativeReporting/issues?q=is%3Aopen+is%3Aissue+label%3ASlicerTerminology

2017-03-24, 19:59:47 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

#828 Update plastimatch repository location

The plastimatch GForge repository will go off-line in August. The SuperBuild instructions need to be updated.

2016-07-20, 17:17:22 - Greg Sharp

RE #828 Create branch for testing new SuperBuild command

Commit: r:2987 slicerrt:2987

2016-07-20, 17:24:59 - Greg Sharp

Re #828 Update plastimatch repository location and git tag Commit: r:2988|slicerrt:2988

2016-07-20, 21:41:02 - Greg Sharp

Test #828 Update trunk to pull plastimatch from gitlab instead of gforge server Commit: r:2990|slicerrt:2990

2016-07-20, 21:41:02 - Greg Sharp

status: changed from “Accepted” to “Test”

2016-07-20, 21:47:01 - Greg Sharp

Test #828 Update trunk to pull plastimatch from gitlab instead of gforge server Commit: r:2991|slicerrt:2991

2016-07-21, 15:18:36 - Csaba Pinter

status: changed from “Test” to “Fixed”

#829 Add surface-based Hausdorff function to segment comparison

THe current Hausdorff method uses volume voxels but many times vertex-based Hausdorff would be more suitable

2016-07-25, 15:59:00 - Csaba Pinter

Re #829: Added vtkPolyDataDistanceHistogramFilter that calculates distances between poly data vertices and a histogram of the distances.

From: Thomas Vaughan <thomas.vaughan@queensu.ca> Commit: r:3014|slicerrt:3014

2016-07-25, 19:04:50 - Csaba Pinter

Related Slicer core commit http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision

2016-07-25, 23:13:24 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.18” to “SlicerRt 0.19”

2016-07-28, 18:34:47 - Csaba Pinter

Re #829: Added Hausdorff outputs to vtkPolyDataDistanceHistogramFilter Commit: r:3028|slicerrt:3028

#830 Extend external beam planning plugin mechanism to handle python and Matlab engines

null

2016-07-27, 21:20:18 - Csaba Pinter

Re #830: Minor fixes (doxygen comments, TODOs, removal of unused code, etc.) Commit: r:3025|slicerrt:3025

2016-07-27, 23:21:34 - Csaba Pinter

Re #830: Added skeleton of python scripted dose engine; Added message in Beams about how to create new beam; Have Switch to parent plan button always enabled but with different text if there is no beam node; Removed unused code Commit: r:3026|slicerrt:3026

2016-08-03, 01:21:09 - Csaba Pinter

Re #830: Added python scripted dose engine mechanism and mock python dose engine Commit: r:3029|slicerrt:3029

2016-08-10, 20:26:12 - Csaba Pinter

Re #830: Fix proton beam weight problem (it was applied twice) Commit: r:3046|slicerrt:3046

2016-08-10, 22:02:53 - Csaba Pinter

Re #830: Fix minor issues in External Beam Planning; Follow Slicer core changes in IGRTWorkflow_SelfTest Commit: r:3047|slicerrt:3047

2016-08-11, 21:11:53 - Csaba Pinter

Re #830: Improved beam parameters tab behavior, fixed minor issues Commit: r:3049|slicerrt:3049

2016-08-11, 22:41:47 - Csaba Pinter

Re #830: Auto-select structure set and anatomical volume referenced by DICOM for a selected plan Commit: r:3051|slicerrt:3051

2016-08-11, 22:51:20 - Csaba Pinter

Re #830: Fixed dose engine selection issue in EBP after scene is closed Commit: r:3052|slicerrt:3052

2017-05-01, 13:46:52 - Csaba Pinter

Moved to EBP milestone

2017-05-01, 13:46:52 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.19” to “SlicerRt 0.20 - External Beam Planning”

2017-06-28, 09:52:14 - Csaba Pinter

priority: changed from “High (2)” to “Highest (1)”

#831 Fix TODOs in plastimatch dose engine

null

2016-07-28, 15:17:57 - Greg Sharp

Fix TODOs in plastimatch dose engine

2017-03-30, 14:58:50 - Greg Sharp

status: changed from “Accepted” to “New”

2017-05-01, 13:46:52 - Csaba Pinter

Moved to EBP milestone

2017-05-01, 13:46:52 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.19” to “SlicerRt 0.20 - External Beam Planning”

#832 Memory leak after Isodose step in IGRT test

null

2017-08-09, 15:44:46 - Csaba Pinter

Fixed #832: Memory leak in IGRT self test fixed

Also DicomRtImportTest fixed (the total number of loadables including other plugins is irrelevant, so that check was removed) Commit: r:3203|slicerrt:3203

2017-08-09, 15:44:46 - Csaba Pinter

status: changed from “New” to “Fixed”

#833 Crash in plastimatch proton dose calc

Details reported by Csaba described below.

I just wanted to calculate dose with the Plastimatch proton engine, and had a crash. It happened at the marked line in this screenshot https://dl.dropboxusercontent.com/u/3143581/Screenshots/20160808_ProtonCrash.png as the variable i is as large as the size of map_wed_min. I also attached the log. Any ideas based on these?

If you want to debug it, you can load the CT and the structures from the RANDO_PROS study, and initialize the calculation with the snippet below, then simply press calculate.

ebpw=slicer.modules.externalbeamplanning.widgetRepresentation() planCb=slicer.util.findChildren(ebpw, name=’MRMLNodeComboBox_RtPlan’)[0] planNode=planCb.addNode() ct=slicer.util.getNode(‘2: PELVIS CURATIVE’) refCb=slicer.util.findChildren(ebpw, name=’MRMLNodeComboBox_ReferenceVolume’)[0] refCb.setCurrentNode(ct) rtss=slicer.util.getNode(‘vtkMRMLSegmentationNode1’) segCb=slicer.util.findChildren(ebpw, name=’MRMLNodeComboBox_PlanSegmentation’)[0] segCb.setCurrentNode(rtss) targetCb=slicer.util.findChildren(ebpw, name=’MRMLSegmentSelectorWidget_TargetStructure’)[0] targetCb.setCurrentSegmentID(‘PTV’)

addBeamButton=slicer.util.findChildren(ebpw, name=’pushButton_AddBeam’)[0] addBeamButton.click() addBeamButton.click()

b1=slicer.util.getNode(‘NewBeam_1’) b1.SetBeamWeight(0.5) b1.SetGantryAngle(59) b1.SetX1Jaw(-33) b1.SetX2Jaw(31) b1.SetY1Jaw(-34) b1.SetY2Jaw(22)

b2=slicer.util.getNode(‘NewBeam_2’) b2.SetBeamWeight(0.5) b2.SetGantryAngle(303) b2.SetX1Jaw(-33) b2.SetX2Jaw(31) b2.SetY1Jaw(-28) b2.SetY2Jaw(38)

planNode.SetRxDose(60)

slicer.util.selectModule(‘ExternalBeamPlanning’)

2016-08-09, 14:55:24 - Greg Sharp

Test #833 Bump plastimatch version to fix crash in proton dose calculation Commit: r:3041|slicerrt:3041

2016-08-09, 14:55:24 - Greg Sharp

status: changed from “Accepted” to “Test”

2016-08-09, 21:17:43 - Greg Sharp

Re #833 Another possible fix for proton dose calculation crash Commit: r:3045|slicerrt:3045

2016-08-10, 00:49:44 - Csaba Pinter

The crash is gone, dose is successfully calculated

2016-08-10, 00:49:44 - Csaba Pinter

status: changed from “Test” to “Fixed”

#834 Slicer sometimes crashes during patient similarity cloud process

I’m running 3D Slicer (version 4.5.0 nightly from 2016-03-31) and SlicerRT headless on Amazon EC2 instances in the cloud to compare a series of datasets together. I sometimes observe that Slicer will crash while performing a series of contour comparisons using the Segment Comparison module in SlicerRT. This occurs after loading two DICOM-RT datasets, registering two CT images together using the BRAINS general registration, transforming the CT and structure set from one of the datasets with the resulting transform, writing output to a log file, and starting to compare contours from the two datasets together using the Segment Comparison module. The same instance will have successfully analyzed a number of different datasets this way prior to the crash, and running the same test again later will produce a successful result, so the issue isn’t with a single problematic dataset. My logs only unfortunately indicate the step in my dataset comparison process that the crash occurs at. I’ve encountered this problem in about 0.07% of the dataset comparisons I’ve done. I’m not sure exactly what is causing the problem, but before the point where it crashes, I added two calls to force Slicer to process events before starting the segment comparison using qt.QApplication.sendPostedEvents() and qt.QApplication.processEvents(), which may be part of the issue, but are needed to get segment comparisons with the correct values when running on the cloud.

2016-08-15, 22:55:32 - Csaba Pinter

summary: changed from “Slicer sometimes crashes during segment comparison” to “Slicer sometimes crashes during patient similarity cloud process”

2016-08-15, 22:55:42 - Csaba Pinter

I kind of hoped you would follow the guidelines https://www.slicer.org/slicerWiki/index.php/Documentation/SlicerRT/HowToReportAnError

2016-08-15, 22:55:53 - Csaba Pinter

Component: changed from null to “SlicerRt modules”

2016-08-15, 23:20:14 - Jennifer Andrea

description: changed from “I'm running 3D Slicer (vers…” to “I'm running 3D Slicer (vers…”

2016-08-16, 13:37:51 - Csaba Pinter

Thanks, Jen! It will be much easier to fix it in the future if we have all this info captured.

2016-08-25, 13:38:37 - Csaba Pinter

milestone_id: changed from null to “Future”

#835 Dose comparison does not consider multiple levels of parent transforms

It seems that if the transform above a gamma input also has a parent transform, only the direct parent transform is considered.

2017-07-23, 19:10:02 - Csaba Pinter

priority: changed from “Normal (3)” to “High (2)”

#836 Improve segmentation module display section

The display options in segmentations are currently both too general (one overall visibility checkbox) and too granular (per-segment visibility options in table). It would be needed to expose overall visibility options per display type. The proposed changes:

2016-08-31, 14:52:48 - Csaba Pinter

Component: changed from null to “Slicer core”

2016-08-31, 14:52:48 - Csaba Pinter

description: changed from “” to “The display options in segm…”

2016-08-31, 14:52:48 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2016-09-07, 18:15:28 - Csaba Pinter

Put the reusable widget in Libs\MRML\Widgets

2016-09-08, 21:21:10 - Csaba Pinter

Change implemented in Slicer core in revision http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=25338

2016-09-08, 21:21:10 - Csaba Pinter

status: changed from “New” to “Test”

2016-09-20, 19:55:35 - Csaba Pinter

In absence of comments and requests I’m closing this ticket

2016-09-20, 19:55:35 - Csaba Pinter

status: changed from “Test” to “Fixed”

#837 Fiducials not being passed from Slicer to Plastimatch

For an external user, the fiducial points are specified in the UI, but are not being passed to the PlmBspline CLI by slicer.

2016-09-01, 13:48:19 - Greg Sharp

Re #837 Fix problem where warped fiducials edit box does not accept input Commit: r:3078|slicerrt:3078

2016-09-01, 13:48:19 - Greg Sharp

assigned_to_id: changed from null to “gregsharp”

2016-09-01, 14:52:35 - Csaba Pinter

This may be related to #444 (maybe not)

2016-09-02, 13:16:20 - Csaba Pinter

milestone_id: changed from null to “SlicerRt 0.19”

2016-09-02, 22:09:24 - Greg Sharp

Re #837 Add capability to use pointfile for PlmBspline CLI module Commit: r:3082|slicerrt:3082

2016-09-09, 15:09:35 - Csaba Pinter

@gregsharp Is this now fixed? If so, then it would make sense to close it or set it to test. Thanks!

2016-09-22, 15:39:20 - Csaba Pinter

status: changed from “New” to “Accepted”

2017-03-30, 14:59:03 - Greg Sharp

status: changed from “Accepted” to “New”

2017-03-30, 14:59:14 - Greg Sharp

status: changed from “New” to “Fixed”

#838 Failing SlicerRT tests cause dependent extensions not to build

All tests that fail and which sometimes fail (the lengthy IGRT self test sometimes fail due to different reasons) need to be disabled until the problem is resolved. http://www.na-mic.org/Bug/view.php?id=4247

After the above Slicer issue is fixed, the tests need to be re-enabled.

Note: It is definitely not a good thing to disable tests, but due to lack of options it needs to be done so that GelDosimetry and FilmDosimetry can be used on Windows.

2016-09-13, 14:32:27 - Csaba Pinter

description: changed from “All tests that fail and whi…” to “All tests that fail and whi…”

2016-09-13, 15:12:12 - Csaba Pinter

Re #838: Disabled tests that consistently fail on any platform or have a reasonable chance to fail until extension dependency issue is fixed Commit: r:3088|slicerrt:3088

2016-09-13, 15:12:12 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2016-10-14, 15:59:17 - Csaba Pinter

Test #838: Re-enabled tests that failed and were disabled so that dependent extensions start building on Windows. Need to check if GelDosimetry and FilmDosimetry build with failing SlicerRT tests in the nightlies Commit: r:3093|slicerrt:3093

2016-10-14, 15:59:17 - Csaba Pinter

status: changed from “New” to “Test”

2016-10-16, 14:18:48 - Csaba Pinter

Re #838: Unfortunately the windows build for dependent tests still does not start if any test fails. Reverting change so that GelDosimetry and FilmDosimetry extensions are built. Commit: r:3094|slicerrt:3094

2016-10-16, 14:18:59 - Csaba Pinter

status: changed from “Test” to “Accepted”

2017-03-03, 19:32:21 - Csaba Pinter

Re #838: Disabled failing SlicerRT tests so that the dependent extensions build Commit: r:3121|slicerrt:3121

2017-08-11, 15:58:01 - Csaba Pinter

Test #838: Restored disabled tests

Some of these tests will reliably fail, such as the EBP generic widget test, due to the widget being wider than the test threshold. If the dependent extensions (GelDosimetry, SegmentRegistration, etc) build on all platforms despite the failing tests, then the ticket can be closed. Commit: r:3206|slicerrt:3206

2017-08-11, 15:58:01 - Csaba Pinter

status: changed from “Accepted” to “Test”

2017-08-21, 14:47:27 - Csaba Pinter

Re #838: Revert re-enabling of tests

Unfortunately the recent Slicer core change did not address this particular issue Commit: r:3209|slicerrt:3209

2017-08-21, 14:47:44 - Csaba Pinter

status: changed from “Test” to “Accepted”

#839 DICOM-RT examine and loading crashes on Windows

Somewhere between Oct 22 and Oct 27 there was a change in Slicer core (probably, as there were no changes in SlicerRT in that time) that makes DICOM-RT examine and load crash (with stack overflow) on Windows.

Step 1. The crash seemed to happen due to a vtkStringList incorrectly wrapped and passed from DicomRtImportExportPlugin.py::examineForImport to vtkSlicerDicomRtImportExportModuleLogic::ExamineForLoad. There are two arguments of this function, the other being a vtkCollection which is wrapped and passed successfully. However the vtkStringList seems to become invalid during vtkPythonArgs operations.

Step 2. After further investigation it seems that the stack overflow happens due to declaration of too many DCMTK objects on the stack within one function. After splitting the long vtkSlicerDicomRtImportExportModuleLogic::ExamineForLoad function to multiple smaller ones, the stack overflow is gone. There is still a very similar stack overflow when entering vtkSlicerDicomRtReader::LoadRTStructureSet

2016-11-10, 19:54:31 - Csaba Pinter

description: changed from “Somewhere between Oct 22 an…” to “Somewhere between Oct 22 an…”

2016-11-11, 17:34:14 - Csaba Pinter

Fixed #839: Refactored DICOM-RT examine and load to not allocate many DCMTK objects on the stack (by splitting functions and by defining a few variables on the heap). RTSS loading is now fixed, and the two failing tests also pass now (BatchStructureSetConversion and DicomRtImportSelfTest) Commit: r:3102|slicerrt:3102

2016-11-11, 17:34:14 - Csaba Pinter

status: changed from “Accepted” to “Fixed”

2016-11-11, 17:49:55 - Csaba Pinter

Re #839: Fixed memory leak in DICOM-RT import Commit: r:3103|slicerrt:3103

2016-11-11, 17:55:54 - jchris

Hi Csaba,

To track this sort of issue, if you can reproduce in pure c++, it could help to run the test through valgrind –tool=memcheck

Let me know if you want more details,

Jc

#840 Improve batch structure set conversion

Assembla ticket for GitHub pull request https://github.com/SlicerRt/SlicerRT/pull/1

The change adds an argument to allow the input_folder to be an existing database (-x) and each of the patients in that database is processed and the NRRD exported into a new subfolder of the output directory

2017-01-06, 17:14:53 - Csaba Pinter

CommentContent: changed from “Assemble ticket for GitHub pull request https://github.com/SlicerRt/SlicerRT/pull/1

The change adds an argument to allow the input_folder to be an existing database (-x) and each of the patients in that database is processed and the NRRD exported into a” to null

2017-01-06, 17:15:05 - Csaba Pinter

description: changed from “” to “Assembla ticket for GitHub …”

2017-01-06, 17:15:10 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2017-01-06, 17:15:14 - Csaba Pinter

Component: changed from null to “SlicerRt modules”

2017-01-06, 17:15:17 - Csaba Pinter

status: changed from “New” to “Test”

2017-01-06, 17:15:51 - Csaba Pinter

Re #840: Improve batch structure set conversion by adding an argument to allow the input_folder to be an existing database (-x) and each of the patients in that database is processed and the NRRD exported into a new subfolder of the output directory Commit: r:3112|slicerrt:3112

2017-03-24, 20:00:48 - Csaba Pinter

status: changed from “Test” to “Fixed”

#841 Build error in vtkCollisionDetectionFilter

Build of SlicerRT experimental fails with the following error on MSVC 2013.

Error 1 error C2555: ‘vtkCollisionDetectionFilter::GetMTime’: overriding virtual function return type differs and is not covariant from ‘vtkObject::GetMTime’ [C:\gcs6\build\slicer-4\SlicerRT-build\inner-build\SlicerRtCommon\vtkSlicerRtCommon.vcxproj] c:\gcs6\build\slicer-4\slicerrt\slicerrtcommon\vtkCollisionDetectionFilter.h 201 1 inner

2017-03-24, 20:06:03 - Csaba Pinter

Has this been resolved? I can build SlicerRT with no problems now. Thanks!

2017-03-24, 20:06:03 - Csaba Pinter

Component: changed from null to “SlicerRt modules”

2017-03-24, 20:06:03 - Csaba Pinter

milestone_id: changed from null to “SlicerRt 0.19”

2017-03-30, 15:05:53 - Greg Sharp

assigned_to_id: changed from null to “gregsharp”

2017-03-30, 15:06:11 - Greg Sharp

status: changed from “New” to “Test”

2017-05-01, 13:48:38 - Csaba Pinter

According to the dashboard, SlicerRT builds fine on all platforms (except today, because the Plastimatch GitLab host was not found)

2017-05-01, 13:48:38 - Csaba Pinter

status: changed from “Test” to “Fixed”

#842 Generalize percentile computation in vtkPolyDataDistanceHistogramFilter

GetNthPercentile with N between 0 and 100

2017-02-16, 19:29:59 - Thomas Vaughan

Fixed #842 Added generalized percentile functionality to vtkPolyDataDistanceHistogramFilter (and a minor bugfix) Commit: r:3118|slicerrt:3118

2017-02-16, 19:29:59 - Thomas Vaughan

assigned_to_id: changed from null to “thomasvaughan”

2017-02-16, 19:29:59 - Thomas Vaughan

status: changed from “Accepted” to “Fixed”

#843 Add isodose ad DVH actions to RT dose subject hierarchy plugin

2017-03-12, 00:13:52 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2017-03-12, 00:14:48 - Csaba Pinter

Fixed #843: Added isodose and DVH actions to RT dose subject hierarchy plugin Commit: r:3128|slicerrt:3128

2017-03-12, 00:14:48 - Csaba Pinter

status: changed from “New” to “Fixed”

#844 Plastimatch beam model UI tweaks

2017-03-30, 14:59:30 - Greg Sharp

status: changed from “New” to “Accepted”

2017-05-01, 13:46:52 - Csaba Pinter

Moved to EBP milestone

2017-05-01, 13:46:52 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.19” to “SlicerRt 0.20 - External Beam Planning”

2017-05-04, 15:29:44 - Greg Sharp

Re #844 Fix UI bugs selecting beam model and setting aperture spacing Commit: r:3167|slicerrt:3167

#845 Fix incorrect rendering of beam

Beam models do not render correctly. For example, a 45 degree gantry angle renders as a 45 degree couch kick.

Unfortunately it seems it is necessary to do a major review of the IEC transform logic. Tasks:

2017-04-06, 14:17:38 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2017-04-06, 15:26:45 - Csaba Pinter

description: changed from “Beam models do not render c…” to “Beam models do not render c…”

2017-04-21, 19:22:20 - Csaba Pinter

@gregsharp I integrated the Room’s Eye View change that fixed the coordinate frame names, but apparently that fix didn’t affect the beam geometry. So I will do that fix myself. When do you need it? (I’m in paper writing mode now but can work on this when it’s needed)

2017-04-21, 19:44:50 - Greg Sharp

Ah too bad. I would like a day or two before I leave (May 5), so I can make screen captures. So that would mean May 3 or worst case May 4. I really appreciate your help! Thanks!!

From: Csaba Pinter (pinter) [mailto:slicerrt@alerts.assembla.com] Sent: Friday, April 21, 2017 3:22 PM

2017-04-21, 19:55:31 - Csaba Pinter

OK I’ll try to fix it ASAP. If I cannot do that in time with the IEC code I’ll just revert to Kevin’s hard-coded transforms until I can do it properly later.

2017-04-21, 22:01:20 - Csaba Pinter

Re #845, re #415: Fixed gantry rotation + various fixes in REV and IEC logic

Commit: r:3156 slicerrt:3156

2017-04-21, 22:02:54 - Csaba Pinter

@gregsharp One step closer!

2017-04-21, 23:17:35 - Csaba Pinter

@gregsharp I think I’m very close now. One thing I suspect is that the couch angle slider never worked. Can you confirm? Or can you remember when it worked?

2017-04-22, 15:32:50 - Greg Sharp

Thanks Csaba! Yes, I also remember that couch rotation never worked.

From: Csaba Pinter (pinter) [mailto:slicerrt@alerts.assembla.com] Sent: Friday, April 21, 2017 7:18 PM

2017-04-23, 13:03:03 - Csaba Pinter

The question then is how to proceed?

  1. Proper fix: Rearrange the IEC transform logic so that the patient support is basically the RAS coordinate system at isocenter. With this change the beam transform can be accessed with one query, and the linac visualization follows (the whole linac would rotate when the couch angle is changed, so that the patient stays on the couch, and the beam comes from the collimator). This would take more time
  2. Quick&dirty fix: I can add a transform separately to the beam for couch rotation. There would be a disconnect between the linac visualization and the beam.

My conclusion is that if you need couch rotation for the demo, then I’ll do 2, but if not, then I’ll forego the dirty solution and implement 1 in less of a haste a bit later. Important to note that the gantry angle works properly now. Please test it though. Thanks!

2017-04-23, 13:03:03 - Csaba Pinter

status: changed from “New” to “Accepted”

2017-04-25, 21:56:47 - Csaba Pinter

Re #845, re #415: Added FixedReference to RAS transform in IEC, so that the inherent rotation and the isocenter position can be properly taken into account Commit: r:3157|slicerrt:3157

2017-04-29, 16:05:10 - Greg Sharp

Much better. But the gantry angle seems to be flipped. Gantry 90 should be patient left for HFS.

2017-05-01, 13:46:52 - Csaba Pinter

Moved to EBP milestone

2017-05-01, 13:46:52 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.19” to “SlicerRt 0.20 - External Beam Planning”

2017-05-01, 16:17:58 - Csaba Pinter

Hm. I’ll apply the simplest possible fix (hopefully negating the angle value solves this), and we’ll see if it breaks anything else.

2017-05-01, 16:42:19 - Csaba Pinter

Test #845: Fixed incorrect gantry angle interpretation Commit: r:3161|slicerrt:3161

2017-05-01, 16:42:19 - Csaba Pinter

status: changed from “Accepted” to “Test”

2017-05-01, 16:42:49 - Csaba Pinter

@gregsharp Can you please check if the fix solved the issue? Thanks!

2017-05-02, 01:10:55 - Greg Sharp

Excellent :)

2017-05-02, 01:10:55 - Greg Sharp

status: changed from “Test” to “Fixed”

2017-05-02, 01:41:52 - Csaba Pinter

Yaay!

#846 EBP release

Release final version of EBP with functioning plastimatch pencil beam

2017-05-01, 13:46:52 - Csaba Pinter

Moved to EBP milestone

2017-05-01, 13:46:52 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.19” to “SlicerRt 0.20 - External Beam Planning”

2017-08-08, 21:39:48 - Greg Sharp

Re #846 Fix crash in EBP self-test Commit: r:3201|slicerrt:3201

2017-08-08, 21:42:29 - Csaba Pinter

Thank you!

#847 Export Dij matrices to Opt4D format

Need to add a button for this somewhere.

2017-03-30, 14:55:28 - Greg Sharp

milestone_id: changed from null to “SlicerRt 0.19”

2017-03-30, 14:55:34 - Greg Sharp

Component: changed from null to “SlicerRt modules”

2017-03-30, 14:56:05 - Greg Sharp

assigned_to_id: changed from null to “gregsharp”

2017-05-01, 13:46:53 - Csaba Pinter

Moved to EBP milestone

2017-05-01, 13:46:53 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.19” to “SlicerRt 0.20 - External Beam Planning”

#848 Plastimatch dose engine bug incorrect calculation of large overshoot

The engine currently incorrectly computes dose with a large overshoot on one side of the beam. It seems to happen as part of automatic target conformation.

2017-03-30, 15:06:37 - Greg Sharp

status: changed from “New” to “Accepted”

2017-03-30, 22:52:49 - Greg Sharp

Re #848 Intermediate commit working on fixing dose calculation error Commit: r:3134|slicerrt:3134

2017-05-01, 13:46:53 - Csaba Pinter

Moved to EBP milestone

2017-05-01, 13:46:53 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.19” to “SlicerRt 0.20 - External Beam Planning”

2017-05-01, 22:59:49 - Greg Sharp

Fixed #848 Dose is now correctly computed in plastimatch Commit: r:3162|slicerrt:3162

2017-05-01, 22:59:49 - Greg Sharp

status: changed from “Accepted” to “Fixed”

#849 Plastimatch dose engine speedup

The divergent geometry calculation is too slow to use.

2017-05-01, 13:46:53 - Csaba Pinter

Moved to EBP milestone

2017-05-01, 13:46:53 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.19” to “SlicerRt 0.20 - External Beam Planning”

2017-05-03, 17:12:23 - Greg Sharp

Re #849 Reasonable speedup for divergent algorithm Commit: r:3165|slicerrt:3165

#850 Dose calculation as background task

Currently, the UI freezes during dose calculation. It should be performed in a background thread or something.

2017-03-30, 15:06:49 - Greg Sharp

assigned_to_id: changed from null to “gregsharp”

2017-05-01, 13:46:53 - Csaba Pinter

Moved to EBP milestone

2017-05-01, 13:46:53 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.19” to “SlicerRt 0.20 - External Beam Planning”

#851 Add landmark registration option to planning CT to OBI step

The user needs to be able to choose between automatic image-based and landmark

2017-04-03, 19:35:04 - Csaba Pinter

Test #851: Added landmark registration option for PlanCT to OBI registration Commit: r:3135|slicerrt:3135

2017-04-03, 19:35:04 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2017-04-03, 19:35:04 - Csaba Pinter

status: changed from “Accepted” to “Test”

2017-04-06, 14:00:02 - Csaba Pinter

Tested together with @kmalexander and considered satisfactlry. Closing as fixed

2017-04-06, 14:00:02 - Csaba Pinter

status: changed from “Test” to “Fixed”

2017-04-06, 18:19:24 - Csaba Pinter

Re #851: Fixed order of shown volumes after landmark registration of PlanCT to OBI (the wrong volume was in the background)

Also added separators in the code for better readability Commit: r:3140|slicerrt:3140

2017-04-20, 15:16:37 - Csaba Pinter

Re #851: Fixed issues in gel dosimetry

#852 Follow Slicer core changes

2017-04-04, 17:36:56 - Csaba Pinter

Re #852: Follow Slicer core changes regarding the removal of Level member from subject hierarchy items, and storing that information as an attribute (thus the confusing subseries level is removed, level is not mandatory any more, and the API became clearer by adding convenience functions for creating patient/study/folder items) Commit: r:3136|slicerrt:3136

2017-04-04, 17:36:56 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2017-04-04, 19:41:02 - Csaba Pinter

Re #852: Updated gel dosimetry to use subject hierarchy 2.0 Commit: r:3137|slicerrt:3137

2017-04-05, 17:21:32 - Csaba Pinter

Re #852: Updated film dosimetry to use subject hierarchy 2.0 Commit: r:3138|slicerrt:3138

2017-04-13, 20:03:12 - Csaba Pinter

Re #852: Removed unnecessary hideAllContextMenuActions call from showContextMenuActionsForItem after Slicer core changes to simplify context menu handling Commit: r:3145|slicerrt:3145

2017-04-13, 20:50:40 - Csaba Pinter

Re #852: Subject hierarchy plugins style fix Commit: r:3146|slicerrt:3146

2017-04-21, 16:23:45 - Csaba Pinter

Re #690, re #852: Removed custom window/level calculation, as the same method has been integrated to Slicer core (http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=25940), so the VFF volumes have improved auto window/level by default Commit: r:3151|slicerrt:3151

2017-05-31, 17:26:42 - Csaba Pinter

Re #852: Fixed scene traversing so that it does not use the unstable VTK collection iterator.

Also fixed REV logic test that failed to the recent 180 degree rotation in FixedReferenceToRAS transform Commit: r:3188|slicerrt:3188

2017-06-01, 14:56:11 - Csaba Pinter

Re #852: Film dosimetry to follow Slicer core changes

  1. Removing unstable scene VTK collection iterator usage
  2. Simplified observation of SH handling of scene import and resolved items Commit: r:3189|slicerrt:3189

2017-08-07, 20:29:30 - Csaba Pinter

Re #852: Use the options from the settings to assemble patient and study SH item names

Other options were:

#853 Cannot close plot window in gel slicelet

2017-04-05, 19:01:17 - Csaba Pinter

Component: changed from null to “GelDosimetry”

2017-04-05, 19:01:17 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2017-04-05, 19:02:11 - Csaba Pinter

Fixed #853: Fixed unclosable plot windows issue Commit: r:3139|slicerrt:3139

2017-04-05, 19:02:11 - Csaba Pinter

status: changed from “New” to “Fixed”

#854 Add options to pre-align film image in film slicelet

Films can be scanned in a wide variety of orientaitons, and the hard-coded pre-alignment transformations do not cover these setups. It is needed to add controls for rotation and flip, and also fine-tuning after registration

2017-04-07, 16:16:49 - Csaba Pinter

Test #854: Added scan setup alignment and fine-tune controls for calibrated film to plan dose slice registration in film dosimetry Commit: r:3143|slicerrt:3143

2017-04-07, 16:16:49 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2017-04-07, 16:16:49 - Csaba Pinter

status: changed from “New” to “Test”

#855 RTSS export only writes a portion of the segments

Using the IC3DDose 2017 film dosimetry tutorial dataset, exporting the structure set to DICOM-RT (in an attempt to reduce the size of the dataset by only exporting the body and brain structures) results in exporting only the bottom ~75% of the structures.

2017-04-10, 19:29:50 - Csaba Pinter

Fixed #855: Partial RTSS export issue when exporting a certain dataset (IC3DDose2017 film dosimetry tutorial) with poly data master representation fixed. The problem was caused by traversing the wrong axis of the CT volume, and because that axis (LR) was shorter than the correct (IS) axis, only a portion of the segment was exported. Commit: r:3144|slicerrt:3144

2017-04-10, 19:29:50 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2017-04-10, 19:29:50 - Csaba Pinter

status: changed from “New” to “Fixed”

#856 Crash while attempting to load dose volume

Crash in this line: shNode->SetItemAttribute(seriesItemID, vtkMRMLSubjectHierarchyConstants::GetDICOMReferencedInstanceUIDsAttributeName(), rtReader->GetRTDoseReferencedRTPlanSOPInstanceUID());

2017-04-14, 11:26:51 - Andras Lasso

fixed #856: Crash while attempting to load dose volume Commit: r:3147|slicerrt:3147

2017-04-14, 11:26:51 - Andras Lasso

status: changed from “New” to “Fixed”

2017-04-14, 13:06:47 - Csaba Pinter

Thanks Andras! What kind of dose volume was this? I have loaded hundreds of dose volumes with the reader and it worked fine.

2017-04-14, 13:06:56 - Csaba Pinter

Component: changed from null to “SlicerRt modules”

2017-04-14, 13:06:56 - Csaba Pinter

milestone_id: changed from null to “SlicerRt 0.19”

2017-04-14, 13:12:33 - Andras Lasso

MultiPlan TPS. Most probably it was non standard compliant but it still should not crash.

2017-04-14, 14:35:29 - Csaba Pinter

Definitely. Thanks again

#857 Add manual registration adjustment spinboxes for obitomeasured registration step in gel slicelet

2017-04-21, 17:46:02 - Csaba Pinter

Beauty, thanks!

2017-04-21, 17:46:02 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

#858 EBP doesn’t save plan structure set

When saving a scene, the ‘Structure set’ and ‘Target volume’ associated with a plan is not saved.

2017-04-29, 16:41:58 - Greg Sharp

The above is not strictly true. Structure set is restored if EBP module has previously been initialized prior to loading the scene. But is not set in UI when scene is loaded prior to initializing EBP module.

2017-05-01, 13:46:53 - Csaba Pinter

Moved to EBP milestone

2017-05-01, 13:46:53 - Csaba Pinter

milestone_id: changed from “SlicerRt 0.19” to “SlicerRt 0.20 - External Beam Planning”

#859 CT is default value for Output dose volume combobox

This causes the CT volume to get clobbered when computing dose.

2017-04-29, 16:33:46 - Greg Sharp

assigned_to_id: changed from null to “gregsharp”

2017-04-29, 16:33:49 - Greg Sharp

status: changed from “New” to “Accepted”

2017-04-29, 16:35:59 - Greg Sharp

Re #859 Harmonize plastimatch dose calc logic with SlicerRT Commit: r:3159|slicerrt:3159

2017-05-01, 21:14:05 - Greg Sharp

milestone_id: changed from null to “SlicerRt 0.20 - External Beam Planning”

2017-05-01, 22:56:14 - Greg Sharp

Dose is actually correctly registered. I thought it wasn’t because it was all zeros. But that was caused by an incorrect assumption in plastimatch that the target shape was sampled with the same geometry as the CT. (This is now fixed.)

The issue of clobbering is caused by the UI. The CT gets put as the default value for the ‘Output dose volume’ combobox.

2017-05-01, 22:57:04 - Greg Sharp

summary: changed from “EBP computed dose not correctly registered into scene” to “CT is default value for Output dose volume combobox”

2017-05-01, 22:57:04 - Greg Sharp

description: changed from “The dose is being computed,…” to “This causes the CT volume t…”

2017-05-01, 22:59:34 - Csaba Pinter

If you have a suggestion to prevent this, I can implement the change on the UI side.

2017-05-01, 23:10:46 - Greg Sharp

There exists logic to create an new dose output volume (RTPlan_TotalDose) if none is selected. It gets trigged when a plan is set. But somehow I was able to bypass this trigger.

That is all I know so far. Not super urgent, now that I know the workaround.

From: Csaba Pinter (pinter) [mailto:slicerrt@alerts.assembla.com] Sent: Monday, May 01, 2017 7:00 PM

#860 ExternalBeamPlanning automatic test fails

http://slicer.cdash.org/testDetails.php?test=7962358&build=1014708 Seems to be happening since the Plastimatch update.

The reason why I set this to highest, is that the dependent extension (GelDosimetry, FilmDosimetry) don’t get built if there is any test that fails, see #838. So I’ll disable this test until it gets resolved, but we need to make sure we don’t end up disabling each test one by one.

2017-05-01, 13:52:49 - Csaba Pinter

@gregsharp , I know you’re travelling, and I definitely don’t mean to push you. I’ll be travelling in the next two days as well. If I get to this first, I’ll fix it.

2017-05-01, 13:52:49 - Csaba Pinter

CommentContent: changed from “Greg, I know you’re travelling, and I definitely don’t mean to push you. I’ll be travelling in the next two days as well. If I get to this first, I’ll fix it.” to “@gregsharp , I know you’re travelling, and I definitely don’t mean to push you. I’ll be travelling in the next two days as well. If I get to this first, I’ll fix it.”

2017-05-01, 15:30:36 - Csaba Pinter

Re #860: Disable EBP test until it gets fixed, so that the dependent extensions get built (see 838) Commit: r:3160|slicerrt:3160

2017-05-01, 16:18:20 - Greg Sharp

@pinter Not leaving until Friday. Will take a look today.

2017-05-01, 16:40:26 - Csaba Pinter

Thanks, Greg!

I moved the EBP tickets in a new milestone so that the tasks are easier to see, I hope it’s OK!

2017-05-01, 21:21:45 - Greg Sharp

Yes, I was thinking of separating them out as well.

Is there a easy way to run just the failing test?

2017-05-26, 20:46:03 - Csaba Pinter

Fixed #860: ExternalBeamPlanningTest baselines updated, test re-enabled Commit: r:3183|slicerrt:3183

2017-05-26, 20:46:03 - Csaba Pinter

status: changed from “New” to “Fixed”

2017-05-26, 21:11:51 - Csaba Pinter

Re #860: Another fix in ExternalBeamPlanningTest Commit: r:3184|slicerrt:3184

#861 Plastimatch doesn’t build after update on WIndows using superbuild

Need to build Plastimatch manually, then superbuild succeeds.

2017-05-04, 15:34:40 - Csaba Pinter

summary: changed from “Plastimatch doesn’t build after update on WIndows using suprebuild” to “Plastimatch doesn’t build after update on WIndows using superbuild”

2017-08-11, 14:05:25 - Csaba Pinter

assigned_to_id: changed from null to “gregsharp”

2017-08-11, 14:06:48 - Csaba Pinter

@gregsharp if you don’t mind I assign this to you. With the recent Plastimatch updates, building the Plastimatch soultion manually did not always work, so I had to do clean builds. This takes a lot of time, and it would be nice to fix. Not sure when this broke, but the issue seems to be reproducible every time. Thanks!

2017-08-11, 14:26:35 - Csaba Pinter

That said I don’t consider this issue to be critical, it’s just good to be aware of this and have it in the plans.

2017-08-11, 14:33:38 - Greg Sharp

It may take some days. I will need to get access to a 64-bit windows computer.

From: Csaba Pinter (pinter) [mailto:slicerrt@alerts.assembla.com] Sent: Friday, August 11, 2017 10:27 AM

2017-08-11, 14:39:53 - Csaba Pinter

Again, no rush :)

#862 Beam not visible after clone

If you click ‘new beam’, then multiple beams are visible. But when you ‘clone’ beam, only the cloned beam model, not the original is not shown.

2017-05-03, 18:42:39 - Csaba Pinter

assigned_to_id: changed from null to “pinter”

2017-05-03, 18:42:55 - Csaba Pinter

I’ll look at this quite soon!

2017-05-04, 13:56:04 - Csaba Pinter

Re #862, re #415: Partial fix for beam cloning and further cleanup of IEC and RoomsEyeView Commit: r:3166|slicerrt:3166

2017-05-09, 00:01:44 - Csaba Pinter

Cloning related issues have been fixed. Please test and confirm

2017-05-09, 00:01:44 - Csaba Pinter

status: changed from “New” to “Test”

2017-05-27, 03:38:37 - Csaba Pinter

status: changed from “Test” to “Fixed”

#863 Support plan level dose engine parameters

Some beam parameters should be plan-specific, so that they do not need to be changed in every beam individually. For the proton engine, these are the following: every parameter in the Beam model tab except for smearing radius, and the Source distance parameter in the Geometry tab.

Maybe instead of just implementing this option to specify whether a parameter is beam or plan specific, we can implement beam groups (a feature we discussed earlier) at the same time. Notes about this feature:

2017-05-04, 15:31:58 - Csaba Pinter

description: changed from “Some beam parameters should…” to “Some beam parameters should…”

2017-05-04, 15:32:20 - Csaba Pinter

description: changed from “Some beam parameters should…” to “Some beam parameters should…”

#864 DVH does not work if master representation is binary labelmap

Error messages: ‘FindPath failed: source and target representation names are the same - Binary labelmap ComputeDvh: Failed to resample segment binary labelmap’

2017-07-23, 19:09:47 - Csaba Pinter

priority: changed from “Normal (3)” to “High (2)”

#865 Histogram from vtkPolyDataDistanceHistogramFilter are sometimes different

https://app.assembla.com/spaces/slicerrt/subversion/source/HEAD/trunk/SlicerRt/src/SegmentComparison/Logic/vtkPolyDataDistanceHistogramFilter.cxx#ln269

The section that accumulates frequencies for the histogram seems to always return a result that looks reasonable at first glance… but if you re-run it with the same data, you sometimes get a slightly different result. I don’t see any immediate explanation for this behaviour.

2017-07-10, 21:24:21 - Csaba Pinter

milestone_id: changed from null to “SlicerRt 1.0”

2017-07-10, 21:27:50 - Thomas Vaughan

** I refer to the section that computes the histogram. The problem may or may not involve the image accumulation filter itself. I reworded the description to be more clear.

2017-07-10, 21:28:09 - Thomas Vaughan

description: changed from “https://app.assembla.com/sp…” to “https://app.assembla.com/sp…”

#866 DICOM-RT export incorrectly sets SOP Class UID to US volumes

Modality is set correctly here https://github.com/SlicerRt/SlicerRT/blob/master/DicomRtImportExport/Logic/vtkSlicerDicomRtWriter.cxx#L234 and for CT and MRI it works fine. But for US, although the Modality tag is correctly US, but the SOP Class UID still shows ‘CT Image Storage’.

For MRI, the SOP Class UID is also correct, like this (0008,0016) UI =MRImageStorage # 26, 1 SOPClassUID … (0008,0060) CS [MR] # 2, 1 Modality

2017-08-07, 14:45:30 - Greg Sharp

Test #866 Update plastimatch to implement ultrasound SOP class UID Commit: r:3196|slicerrt:3196

2017-08-07, 14:45:30 - Greg Sharp

status: changed from “New” to “Test”

2017-08-10, 18:24:20 - Csaba Pinter

I confirm that the commit fixed the US SOP Class UID. The exported image has these tags:

(0008,0016) UI =UltrasoundImageStorage # 28, 1 SOPClassUID … (0008,0060) CS [US] # 2, 1 Modality

Thank you, Greg!

2017-08-10, 18:24:20 - Csaba Pinter

status: changed from “Test” to “Fixed”

#867 Transform of beam loaded from DICOM is incorrect

The beam node is loaded and set up correctly, and when changing the beam parameters manually the transform is updated, but right after loading it’s incorrect

2017-08-07, 21:05:46 - Csaba Pinter

Fixed #867: Update beam transform explicitly when loading

Transform modified events were invoked before adding to the scene, and processing events in the logic did not happen due to being in batch processing mode, so calling an update method explicitly was necessary after adding the beam to the scene. Commit: r:3199|slicerrt:3199

2017-08-07, 21:05:46 - Csaba Pinter

status: changed from “New” to “Fixed”

2017-08-08, 18:43:58 - Csaba Pinter

Re #867: Fixed failing test Commit: r:3200|slicerrt:3200

2017-08-09, 15:02:28 - Csaba Pinter

Re #867: Fixed failing test Commit: r:3202|slicerrt:3202

#868 Incorrect calculation in Segmentation Comparison module

As reported by Kyle, the segmentation comparison module is giving incorrect numbers. Gotta fix this!

2017-08-09, 22:51:41 - Greg Sharp

Fixed #868 Fix incorrect calculation in segment comparison module Commit: r:3204|slicerrt:3204

2017-08-09, 22:51:41 - Greg Sharp

status: changed from “New” to “Fixed”

2017-08-11, 13:03:30 - Greg Sharp

Fixed #868 Update Hausdorff calculation to ensure that interior voxels at edge of image are considered part of the structure boundary Commit: r:3205|slicerrt:3205

2017-08-11, 18:02:41 - Greg Sharp

Fixed #868 Fix incorrect calculation for volume/set Hausdorff, which is saved in parameter node Commit: r:3207|slicerrt:3207

2017-08-21, 14:38:46 - Csaba Pinter

Re #868: Updated segment comparison test baseline due to change in Hausdorff calculation in Plastimatch Commit: r:3208|slicerrt:3208