Legacy Assembla Tickets
#2 Define SparKit goals for the first 6 months
- Get info from OCAIRO investigators: Using online survey. Managed mainly by Annie Hum.
- Get info from SparKit partners (who made committments)
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:
- wiki, source control, tickets, messages, files => Assembla (done)
- teleconference => WebEx (done)
- dashboard => CDash (available at Queen’s, but maybe Kitware hosting would be better later? - main issues are ugrades and common authentication with Assembla)
2011-05-17, 22:06:54 - Andras Lasso
description: changed from “” to “Solutions for:
- wiki, sour…”
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
- Hire software engineers
- Identify collaborators ** Visit Schreiner/KGH team (observe the workflow for 1-2 days)
- Set up regular meetings (tcon)
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)
- phantom images are needed (patient images are not acceptable, as we want to make these data public test data)
- their own data is needed (acquired and processed by the software that they normally use)
- need a description (name and version of the hardware and software that they used for acquisition and processing)
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)
- phantom images are needed (patient images are not acceptable, as we want to make these data public test data)
- their own data is needed (acquired and processed by the software that they normally use)
- need a description (name and version of the hardware and software that they used for acquisition and processing)
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:
- what this data is (what kind of phantom, …)
- where it is from (at least institution, preferably group, PI, contact person)
- what hardware and software was used to acquire/process/generate the data
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:
- Timestamp for MRML nodes
- Textured models If this two are not needed any more, then we can close the ticket. The timestamp was considered high priority at the time, but never came up again (also I would think it is more needed for IGT then RT, so if it has not come up there either, then it might be an obsolete request). Same for the textured models. What do you think?
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):
- read the DCMRT pages on DCMTK’s wiki
- familiarize yourself with the DICOM standard: read Part 1, skim through Part 3 and Part 5, read throroughly Supplement 11 Get familiar with Slicer4 usage Get familiar with how DICOM importing works in Slicer4 now (unfortunately - or interestingly? - it’s implemented mainly in Python):
- Slicer-4.0\Modules\Scripted\Scripts\DICOM.py
- Slicer-4.0\Modules\Scripted\DICOMLib
- Slicer-4.0-bin\CTK\Libs\DICOM Think about what we want to achieve in the first step (basically image, dose, and structure set import) Think about how we could implement that => Important! create a few powerpoint slides from the results of this step (we’ll use it to guide the discussion)
- how the DICOM-RT import should work from the user perspective (GUI, workflow)?
- what kind of MRML objects should we import the data into (label maps, surface models, annotation objects…)?
- what are the design options? how could we extend the current DICOM importing method without changing it too much?
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
- Create an extension module: DicomRtImport (Csaba)
- Call a method of the DicomRtImport module when the user requests DICOM object loading. Method’s input: UID. If the method finds a structure set then it adds it to the scene. (Csaba)
- Create a VTK filter that can read structure set from a DICOM-RT structure set and has a vtkPolyData output (Kevin)
- Integrate the VTK filter into the DicomRtImport module (Kevin)
-
Add the vtkPolyData to the scene as a MRML model node (Kevin/Csaba)
- Hide the module from the module list
- Make the module pluggable into the DICOM import system
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:
- it assumes that the center-of-gravity of the volume was inside the volume (it is certainly not always correct, e.g., donut shape or bean shape), when the assumption is incorrect then an inverted labelmap is generated
- if the model points do not fully cover the the top and bottom slice then the flood-filling leaks out and the result is an empty labelmap
- open surfaces near highly changing contours may leak and the results is an empty labelmap
- only the points in the polydata are used (connectivity information is not utilized)
- very slow
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:
- We could consider simply use PRAGMA synchronous=OFF (as the DICOM database acts as a cache only, all the information is stored in the DICOM files themselves)
- Do all the insertions in one commit: more complex implementation, but this way we can ensure DB integrity (even in case of a power failure, etc.)
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:
- On all the DICOM browsers the patient name is displayed as Lastname, Firstname (see https://www.assembla.com/spaces/slicerrt/documents/dtiEq-rPSr4A27acwqjQYw/download/dtiEq-rPSr4A27acwqjQYw), so if there is one hardcoded way to display the patient name it should be Lastname, Firstname
- In the SlicerRT test data set there is a patient that has slightly different name in different series: ‘PHANTOM, fourD’ and ‘PHANTOM^FourD^^’. It would be OK to either merge these patients or list as two separate patients. However, currently they appear in the tree as two different patients at the patient level, but all the series appear under the same patient (‘PHANTOM, fourD’). Maybe the patient matching is somewhere implemented a simple string compare on the patient name and some other places it’s an approximate matching (and maybe using other fields, such as patient id and birth date).
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:
- [PHANTOM, fourD] and [PHANTOM^FourD^^] are considered different when the patient branches are created in the tree
- [PHANTOM, fourD] and [PHANTOM^FourD^^] are considered equal when the series items are placed into the patient branch (because all series are placed under the [PHANTOM, fourD] branch)
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:
- Showing the patient name and other fields (date etc.) in a human-readable way could be achieved by implementing and using a new model class for ctkDICOMTableView ** CTK uses a simple QSqlQueryModel instead of which the new model could be set
- Features of the new model ** Parse different columns differently (name, date, etc.) and set this parsed text to the item to show ** Edit fields: Many times the test data has the same and/or meaningless name (test phantom etc.) ** Convert the changed value back to DICOM readable format and write it to the SQL database ** Additionally it would be nice if the header texts could be converted to human readable as well (now they are ‘PatientsName’, ‘StudyDate’, etc.)
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
- The tree view is too small
-
The fields at different levels (patient, study, series, image) are different (patient name makes sense only at patient level, series description makes sense only at series level, …), therefore a tree view is maybe not ideal, but separate lists could be better
- Need to customize the columns for RT (and probably for other IODs as well): ** list of columns ** which DICOM fields are used to fill them (check what is done in CERR, dicompyler, or other open-source implementations + commercial systems) ** which DICOM fields should be stored in the DB (schema changes)
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:
- Should we use a merged patient&study level as the highest hierarchy level? ** Pro: most patients seem to have only one study, there would be less hierarchy levels; patient data in different studies may differ, this way it can be all shown ** Con: does not reflect the actual DICOM data levels
- Should we show a tree (Osirix, K-PACS, CERR, InVivoScope, Dicompyler) or simple lists (DeVide, ClearCanvas, RayStation, MIM, Conquest, AdvSim) ** Pro tree: item selection has better granularity (most list-based solutions allow only patient or study level selection only and load everything that belongs there) ** Pro list: somewhat easier to manipulate (don’t have to click on small [+] buttons)
- Separate first and last name?
- Which fields we should store in the database, which ones we should display, and how to determine the values from the DICOM files? (see analysis in file:DicomPatientBrowserFields.xlsx
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
- Beam numbering does not start at 1
- Beam number is not specified for the referenced plan in the RT image, and there is only one beam
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
- Remove the Parent hierarchy node selector. Just create a new hierarchy node and store a reference to that node in the vtkMRMLIsodoseNode internally, don’t expose the selection to the user.
- If the user changes the levels then remove all the models under that hierarchy node and replace with the new levels.
- Use the dose volume name (e.g., DoseDay1) as name for the model hierarchy and add the reference dose level as well if the mode is percentage (e.g., ‘DoseDay1 Isodose (100% = 48Gy)’)
- Use the levels for naming the models (e.g., ‘10 Gy’ or ‘25 %’)
- We may also update the colormap based on the specified reference value
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
- Remove the Parent hierarchy node selector. Just create a new hierarchy node and store a reference to that node in the vtkMRMLIsodoseNode internally, don’t expose the selection to the user.
- If the user changes the levels then remove all the models under that hierarchy node and replace with the new levels.
- Use the dose volume name (e.g., DoseDay1) as name for the model hierarchy and add the reference dose level as well if the mode is percentage (e.g., ‘DoseDay1 Isodose (100% = 48Gy)’)
- Use the levels for naming the models (e.g., ‘10 Gy’ or ‘25 %’)
- We may also update the colormap based on the specified reference value
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:
- When I switch between Isodose parameter sets the rest of the GUI is not updated
- I have to click ‘Show isodose surfaces’ to make the isodose lines to appear
- Include the name of the isodose ‘Parameter set’ in the Model hierarchy name (instead of ‘RTDOSE - isosurface’ have something like ‘MyIsoDoseParameterNodeName: RTDOSE’)
- Use a somewhat wider range of dose values by default (currently it’s 1, 2, 3, 4, 5, 6 Gy; it could be something like 5, 10, 15, 20, 25, 30 Gy)
- In the output you can print out the generated model hierarchy name (or you can just remove that section)
- Move the display options below the Apply, because Apply is only for the label configuration (everything else is applied automatically, immediately)
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
- Discuss with Steve Pieper
- Propose a solution and confirm it with Steve
- Integrate and merge to trunk
2012-01-30, 20:41:26 - Andras Lasso
- Don’t load and parse DICOM files from each plugin (need to pass DCMTK field set)
- Allow finding of referenced DICOM objects (need access to DICOM database)
- Have a solution for choosing between multiple objects (one plugin can load multiple objects; the same object can be loaded by multiple plugins)
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:
- Save patient, study, series level fields (patient name, study secription, etc.) at the image level. This would allow storage of all information in the DB without any data loss
- At the end of any DB importing or editing go through all the updated patients and save the consolidated (appended descriptions, most recent non-empty patient name, etc.) values at the patient, study, series level
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:
- http://www.medical.siemens.com/siemens/en_GLOBAL/rg_marcom_FBAs/files/brochures/DICOM/syngovia/DCS_syngo_via_VA10A_Annex_RO_10.pdf
- http://www.elekta.com/dms/elekta/elekta-assets/Elekta-Software/pdfs/dicom-conformance-statements/software/LEDDCMXIO0001/XiO%C2%AE%20%7C%20Release%204.61%20%7C%20Document%20No%3A%20LEDDCMXIO0001.pdf
- http://www.nucletron.com/Resources/Documents/CIB-OSL192200%20Oncentra%20IMCON%20conf%20stat.pdf)
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:
- Shall not require Python
- Shall not require linking anything against Matlab libraries
- Should not require restart of Matlab at each script execution
- Should be available from Python and Slicer loadable modules (could be all done through CLI interface)
Implementation:
- CLI executer: an executable file, implemented in C++
- Opens the .xml file that has the same filename as the .exe
- Behaves as a CLI (but one single executable can be used for any number of modules without the need for rebuilding)
- responds to CLI interface description
- creates a proxy .m file that has the interface described by the CLI, reads the parameters from file or from command-line, calls a user-defined function
- if CLI execution is called
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:
- Increase virtual memory size - but max memory for a 32-bit app is limited to 2GB anyway
- Run CLIs in separate process (add a Slicer application option for this on the GUI) - short-term only, helps only CLI modules
- Automatically resample large volumes when they are loaded - it could be useful anyway, for performance improvement
- Build Slicer in 64 bits
- Find out what causes the excessive memory consumption/fragmentation and fix the issue
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:
- 0.653 nothing loaded
- 0.665 QT scripted only
- 0.698 QT loadable only
- 1.136 CLI only
- 1.191 everything loaded
=> 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:
- DICOM import of CT image, RTSS, and dose
- Registration: register two CTs and apply the transform to the dose and contours as well (through converting the contours to labelmaps, applying the transform, then converting back to model)
2012-02-10, 20:00:25 - wangk
Here is the list of basic steps:
- load a DicomRT plan into slicer (including CT image, structure set and dose map)
- create a simple linear transform (change the translation and rotation parameters) using insert transform.
- resample the Original CT image to create the warped CT image using registration->resample image(Brains) module with the newly created transform.
- perform linear registration between original and warped CT image to calculate the transform using General registration (brains) module.
- apply the transform to dose map and labelmap or model from structure set.
- 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
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:
- Load ‘GY TOPAS 1.5T’ dataset (SparKit\ runk\SlicerRt\data\eclipse-8.6.15-phantom-brachy) => Problem: ribbons are not wide enough (there is space between them)!
- Open Model to Labelmap module ** Input volume: Eclipse doses ** Model: 4cm cube ** Output volume: crate new
- Problem: The output volume has holes between the slices!
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:
- for each contour: ** detect slice plane normals ** use the plane normal to decide if its a set of planar contours
- if all the contours are found to be planar and parallel (this should be true for the majority of the cases) then use the ribbon filter to expand the contour lines to ribbons (use the determined plane normal and ribbon thickness as inputs for the ribbon filter)
- if any of the contours are found to be non-planar then return with a warning and import the polylines as is (do not ribbonize)
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.
- Read the referenced UID from the RTSS object
- Determine the file name from the UID (using the Slicer DICOM database)
- Load the file, get the slice thickness
- Use that as the width of the ribbon
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:
- A. Store these additional information as MRML node attributes. Pro: very simple, node type is not changed, so all Slicer modules can operate on the data. Con: are the node attributes are preserved when the node is processed by a CLI or other modules? if the volume is edited then the attributes may need to be updated as well
- B. Create a new MRML custom node type. Pro: any custom data can be stored in the node; proper, typesafe get/set methods and custom storage and display nodes can be developed. Con: need to develop custom modules for edit/display/storage; existing modules may not recognize the custom data type.
- C. Create a new MRML node that stores a pointer to the basic Slicer node (e.g., scalar volume) and stores the custom attributes. Pro: modules can still operate on the basic Slicer node, no additional information may be lost. Con: need to develop custom modules for edit/display/storage; when the basic node is processed/duplicated then it will be not associated with the custom MRML node, so a new one may need to be created and associated manually.
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:
-
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)
-
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
-
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.
-
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:
- select from patient hierarchy tree.
- ask about plugin writer mechanism.
- 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:
- Two new VTK classes in DICOMLib/Logic, one for the loadable and the other for the exportable (vtkSlicerDICOMLoadable, vtkSlicerDICOMExportable)
- A conversion method to each Qt container class, qSlicerDICOMLoadable::convertToVtkLoadable and qSlicerDICOMExportable::convertToVtkExportable ? That way we can convert to VTK in one line.
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:
- simple difference
- gamma index (see details in TG119 documents).
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:
- Unnecessary #include ‘plmreconstruct_config.h’ in 3 files (proj_matrix.cxx, proj_image_dir.cxx, proj_image.cxx) cause build errors => remove the include line
- If Slicer is found then it is assumed that we want to build Plastimatch Slicer modules (and BUILD_SHARED_LIBS is forced to ON and copying of DLLs to certain Slicer directories is forced). Need a separate switch for SLICER_FOUND and for building slicer modules (such as PLM_BUILD_SLICER_MODULES). Only PLM_BUILD_SLICER_MODULES should enable shared lib and building and installing of Plastimatch Slicer modules. PLM_BUILD_SLICER_MODULES should be turned off if the PLM_CONFIG_LIBRARY_BUILD option is ON.
- In FindDCMTK.cmake a couple of find_library calls are incorrect: the PATHS keyword is missing after the library name (e.g., find_library (DCMTK_dcmimgle_LIBRARY dcmimgle ${DCMTK_DIR}/dcmimgle/libsrc …) => find_library (DCMTK_dcmimgle_LIBRARY dcmimgle PATHS ${DCMTK_DIR}/dcmimgle/libsrc …)
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:
- conversion of the structure volumes to cc
- make sure that non-1 foreground labelmap values don’t affect the total mass metric
- decide how the T+, T-, F+, F- voxel numbers are displayed (% would better perhaps)
- make sure it can handle labelmaps generated using different reference volumes (different origin, orientation etc)
- how center metrics are interpreted? in which cooridnate system should we display those?
- perhaps it would be good to move the ITK->VTK image conversion to SlicerRtCommon, although they (the other one is in DoseComparison) work slightly differently
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
- Arrows in 2D view
- Determinant of the Jacobian matrix
- Deformation gradient magnitude
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:
- Density is not really user friendly
- Quasi-random with constant seed?
- Make sphere glyph non-directional
- Hide glyph params by default
- Show glyph params for currently selected glyph only?
- Remove Hedgehog (after documenting it, screenshots, etc.)
- Add tooltips
- Use sliders instead of spinbox wherever it’s possible
- Make sure that default values results in good visualization
- Nicer icons
- Contour surface colors are strange
- Grid is not closed on one side
- Change the color map to
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
Color map:
- Make a color map with 4 labels: ** negligible (0mm by default): transparent ** low (1mm by default): green ** medium (3mm by default): yellow ** high (5mm by default): red
- Set the scale: automatic? hardcoded (changeable in the color module)…?
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:
- (H) Make sure that default values results in good visualization: ** Default grid density is too dense; unit is missing (should be in mm) ** Rename Scale X, Y, Z to Length and Radius (setting Y and Z separately is not needed) ** Arrow Glyph Tip length should be constrained between 0% and 100% ** Arrow Glyph Tip Radius meaning should be clarified in tooltip, maybe changed to % ** Arrow merge Tip & Shaft resolution into one ‘Resolution’ and set the range minimum to 6 ** Sphere no need to specify radius (you can set it with the Scaling parameter) ** Sphere two resolution fields into one ‘Resolution’ and set the range minimum to 6 ** Sphere glyph no need for several scale factors, keep only one (and isotropic scaling) ** Contour: default minimum and maximum values are mismatched (maximum is 0, minimum is 6)
- (H) Contour surface colors are strange (each contour should have a uniform color)
- (M) Move Number of Glyphs and Magnitude threshold parameters to the top
- (M) Add tooltips
- (M) Grid is not closed on one side
- (M) Rename ‘Seed’ parameter to ‘Random seed’ and move it to the bottom (users will modify other parameters more frequently)
- (L) Make sphere glyph non-directional
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) Add a hard threshold on the minimum deformation (nothing below that level is visualized)
- (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
To be discussed:
- I think scale factor does not make sense in: Grid, Block, 2D Grid (only when we project the deformation into another dimension, but with these 3D objects there is no additional dimension to extrude to), maybe just an enable/disable deformation (0 and 1 scaling factor) to allow deformation&color or just color
- Why the 2D arrow glyph is useful?
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:
- 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.
- Fix colours on Glyph Image Slice option output
- Fix orientation of Glyph Image Slice arrow tips at certain angles
- Test transform node input
- Create data for use cases to demonstrate uses of module
- Clean-up and optimization
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:
- [H] Test transform node input (actually it crashes now: load MRHead sample data and use them as reference image, create a simple linear transform and use as deformation field, then click Visualize)
- [H] Fix spacing of 2D visualizations: arrow and grid ribbons should be all organized into slices; slice positions and thickness should be retrieved from the slice viewer (use the current slice position as the center of the ribbon and use the slice viewer spacing as the width of the ribbon)
- [M] Change the slice selector to a standard node selector (same way as in the Reformat module)
- [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.
- [M] Fix colours on Glyph Image Slice option output
- [M] Fix orientation of Glyph Image Slice arrow tips at certain angles
- [L] Create data for use cases to demonstrate uses of module
- [L] Clean-up and optimization
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:
- automatic update: currently the fields are not updated when the MRML node is changed (e.g., open the node inspector for a non-label volume => it will show LabelMap=0; change the volume type to labelmap in the Volumes module; open the node inspector => it will still show LabelMap=0; if you switch to another node and then switch back then the attributes are updated => it will still show LabelMap=1 – it should observe the model and update the attribute names and values whenever the node changes)
- editing: curently you can edit the attribute names and values, which is really cool; however, unfortunately it seems that the changes are not actually saved; it would be great if you could actually save the changed attribute into the node (or if it is not possible then make the widget read-only)
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:
- display a warning message (next to the compute DVH button?) if a non-dose volume is selected
- by default display only dose volumes in the Dose Volume node list (there could be an advanced option to show all volumes in the node list)
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:
- 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) …
- 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
- Find use case
- Help and implement whatever is necessary for that use case (dose accumulation, deformation visualization, …)
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:
- Use Slicer for deformable registration and dose accumulation
- Use Slicer as a hub for conversion between data formats and comparison (not for dose calculation and other complex computations)
- Platform for algorithm prototyping: Matlab interface, Python samples
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
- Bring up DICOM browser
- Select any patient
- Select some loadables and press ‘Load Selection to Slicer’
- Bring up DICOM browser again
- Select any other patient The list of loadables remain the same as the one we loaded objects from
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:
- eclipse-8.1.20-phantom-breast
- eclipse-8.1.20-phantom-ent
- eclipse-8.1.20-phantom-prostate
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
- add a link to the pdf version of the tutorial on https://www.assembla.com/spaces/slicerrt/wiki/SlicerRt_users_guide
- save the ppt version of the tutorial on assembla (in Files: https://www.assembla.com/spaces/slicerrt/documents)
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:
- 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
- ‘export’ loaded data: in the DICOM dialog
- export from patient hierarchy tree could be a shortcut to the export loaded data function in the DICOM dialog
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:
- Set of planar contours: For now we can assume that they are drawn on parallel planes. It would be nice to develop an algorithm that in the future can be extended to deal with contours drawn on different plane orientations, but this is not essential, just something to keep in mind.
- Slice thickness: The contours come from manual drawing on image slices. Each image slice has a thickness. Typically the thickness is the same as the distance between the image slices. Thickness info is needed, e.g., when you extrapolate the surface before the first and after the last contour; also when you need to decide if two contours should be connected by a surface or they belong to two different surface meshes.
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:
- Port algorithm to C++
- Test self-intersecting contours - the goal here is not necessarily to create a nice-looking surface, but to make sure the rasterized labelmap is valid (similarly to the other difficult cases where it is very hard to achieve a qualitatively good surface, the point is just to make sure the algorithm does not fail and the output is usable)
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:
- Please always refer to the ticket number in the commit comment in the following format: re #103: Changed this and that
- I’ve created a data directory and copied all the sample data there. For now you can keep and use the ply files (just move them into the data subdirectory), but note that the PLY files don’t contain the line information, just the points. The only reliable way to identify which point is in which contour is to read it from a file that contains this info. The original VTP files contain this info and using Paraview you can convert to VTK format that can be read into Matlab (e.g., http://www.mathworks.com/matlabcentral/fileexchange/5355-toolbox-graph/content/toolbox_graph/read_vtk.m)
- Remove all hardcoded references to specific filenames from functions (e.g., [vertex, face] = read_ply(‘femoral head rt.ply’);), because functions are meant to be reusable. To test the functions create simple m scripts that contain references to specific file names and call the functions.
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
- uu.se: The comments at the top says: ‘Only reads binary STRUCTURED_POINTS’. So,it’s not very relevant for us.
- toolbox_graph/read_vtk.m: it’s closer to what we need, it seems to be able to read the POINTS, just modify it to read LINES as well
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:
- branching
- keyhole
- self-intersection
2014-01-14, 17:04:37 - Andras Lasso
Boyeong:
- Ask Gabor how much literature review is needed
Csaba:
- Send Python samples for getting the contour points from SlicerRT and displaying the generated mesh as a model in Slicer
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:
- Clean up Boyeong’s code and port it to C++
-
Address remaining problems, see url:https://www.assembla.com/spaces/slicerrt/documents/bYTyMYUiur44_cacwqEsg8/download/bYTyMYUiur44_cacwqEsg8 her report
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”
#108 Add link to SlicerRT tutorial in the extension manager
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:
- Test results are not visible
- The build name does not contain the SVN revision
- The update log (Update Command: ‘/usr/bin/cmake’ ‘-P’ ‘/home/perklab/Devel/Scripts/Perklab-Virtualbox_Linux-64bits_SlicerRt_Release_Continuous.cmake-origin-master-continuous-gitupdate.cmake’) is a bit strange on http://slicer.cdash.org/buildSummary.php?buildid=40315. It’s not a git repo.
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
- Create Patient and Study nodes
- Create CT Series from volume node (need to set UID - it can be anything)
- Create Structure Set Series
- Create ColorTable node
- 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
- Create Contour from Model node
Utility function scripts:
- 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
- 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:
- Labelmap utility function now changes black to white and white to black on volume(gray values remain the same).
- Model sphere now displayed in associated color from color table node.
- CT Series’ DicomLevel now set appropriately (now ‘Series’ not ‘Patient’)
- Structure set series not placed in patient hierarchy correctly
- 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:
- Fix Plastimatch build issues (see https://www.assembla.com/code/slicerrt/subversion/changesets/244)
- Create a SlicerRt custom targets in the SlicerRtSuperbuild that are redirected to SlicerRt targets (especially extension packaging and testing)
- Rename SlicerRtSuperbuild project to SlicerRt (so that the automatic build scripts can find the SlicerRt.sln in the project binary root)
- Test everything on Linux
- Change the build options to enable superbuild by default
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
- Combobox (qMRMLNodeCombobox) to select DVH (vtkMRMLDoubleArrayNode type).
- Controls to set NTCP and TCP parameters if any.
- Button to create the metrics.
- Display results in the module UI
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:
- Association between structure models and corresponding labelmaps
- The color table node under the same Series node as the structure models and labelmaps is used to store their color map
Needed actions:
- Create vtkMRMLPatientHierarchyNode class
- Add PatientHierarchy option to the Data module
- Organize objects loaded by the DICOM module under a patient hierarchy
- Utilize the patient hierarchy in the SlicerRT module classes
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:
- Patient hierarchy is a kind of grouping (Personal note: maybe Patient can be a special type of a general Grouping hierarchy?)
- Create and replay pipelines with these hierarchies (graphs)
- Nicole: Hierarchy nodes are not storable
- Reporting: Maintain the link to the instance UID from the source data (hierarchy attribute -> dicom database element)
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:
- rev 3829 (Gamma dose comparison takes the origin, spacing and direction image parameters into account and creates the gamma difference image in the coordinate frame of the reference dose volume)
- rev 3830 (Set direction cosines to the gamma image from the reference dose image)
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
- move everything to Assembla
- remove Slicer modules from Plastimatch
- for each CLI interface module that is too limited or not convenient to use -> replace it by a loadable module
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:
- vtkMRMLModelNode for the ribbon representation (DicomRtImport module will load the structure into this object)
- vtkMRMLVolumeNode for the labelmap repesentation
- vtkMRMLModelNode for the model representation (when converting back from labelmap to model)
- vtkMRMLVolumeNode for the labelmap bitmap representation
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:
- Loading as ribbon, then DVH computation; the user wants to see the contours in 3D
- Editing contour 1, edit contour 2; see contour 1 while editing contour 2
- Undo/redo
Questions:
- Caching: avoid recompute if switching between multiple representations. Cache different representations?
- Editing: allow editing of a representation. What happens if one is modified? If we show only one to the user then we don’t need to update the other representations immediately.
- How to handle information loss when converting to labelmap?
- How to handle cases when labelmaps are requested at different resolutions (e.g., by different modules). Do we convert from the ‘original’ or convert from the current representation?
- Preserve an ‘original’ representation?
- Undo/redo compatibility
- Multiplicity: how to bundle multiple contours for processing/conversion
Decisions:
- Show only one representation in the editor (it’s the ‘active’ representation)
- Caching: if the ‘active’ representation is modified then invalidate (delete) all the other representations
- Multiplicity: contour hierarchy node (selectable in contour module for changing active representation)
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:
- ‘Active representation’ should be changed to ‘Convert to’ or something similar
- ‘Downsampling factor’ should be renamed to ‘Oversampling factor’ (and describe in tooltip text that a value >1 results in sampling on a finer resolution than the reference volume)
- ‘Target reduction factor’ needs tooltip text that explains this field
- Having a spinbox for ‘Downsampling factor’ and slider&spinbox for ‘Target reduction factor’ is somewhat inconsistent. It might be better to use the same kind of control (I prefer the slider&spinbox)
- ‘Target reduction factor’ two decimals are enough (0.30 instead of 0.333), maybe percentage display would be even more friendly (33%)
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:
- Display the scalar bar in the slice viewers or secondary 3D viewer
- Display labels instead of scalar values (e.g., GenericAnatomyColors labels cannot be displayed)
- Color module crashes if %s is entered in the formatting string
- If the opacity value is changed then the label is overwritten (e.g., ‘R=0.000 G=1.000 B=0.000 A=0.800’)
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.
- Display labels instead of scalar values (e.g., GenericAnatomyColors labels cannot be displayed)
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:
- Display the scalar bar in the slice viewers
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
- Scene
- CMake
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:
- If only the PatientHierarchy logic, mrml and qt are wrapped (in importModulePtyhonExtensions), then it does not crash.
- There is no crash if DoseComparison logic is wrapped only It seems that there is something with the PatientHierarchy module that causes a crash (this is probably not the undeterministic generic test crash though).
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());
- Don’t use hardcoded buffer sizes
-
Don’t use sprintf ever (use either simple string operator+ or streams; sprintf is obsolete and it would crash if the two strings don’t fit in the hardcoded 64 chars)
- In vtkSlicerDoseVolumeHistogramModuleLogic::ComputeDMetrics you may consider using the vtk piecewise linear function. It would simplify the implementation, but I’m not sure about the performance impact.
- Don’t use atof, it’s really fragile and you don’t really know if it failed or not. If no better solution is available in Slicer then copy the StringToInt, StringToDouble, StringToLong functions from PlusCommon.h into SlicerRt common and use that.
- Add automatic tests for dose metric computation (compare our results to some known ground truth)
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
- For the time being we don’t plan to implement compressed labelmap representations, only when the need arises
- Apparently the RLE compression makes the labelmaps smaller than the bitfield labelmap (as far as I know the only consideration of the bitfield representation is the shortage of memory in some cases), and also it is closer to the current Slicer object storage philosophy (one object for one structure instead of an object for a group of structures), so we should consider using that if we decide to move in that direction. There is also a chance that we can use vtkImageStencil directly for this purpose, so the workload is probably much smaller.
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
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:
- Use the Archip2007 definition for 95% HD
- Maybe compute some average HD as defined in Huttenlocher1993, Chalana1997, Klingensmith2000, Gerig2001
- Remove computation of HD for full labelmap / or if we include it then the implementation shall match exactly Crum2006 (or any other journal reference if you find one)
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
- Remove the workaround
- Close this ticket
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:
- Creating blank contour will be possible from the MRML node combobox in Contours node. The user can convert it to a labelmap in Contours module using a suitable reference volume and edit that in Editor
- Drag&dropping a labelmap under a ContourHierarchy in the Patient Hierarchy module will create a new contour node having that labelmap as indexed labelmap representation. ** Color needs to be added to the color table related to the ContourHierarchy
- Probably it’s time to create a Logic class for the Contours module to outsource some conversions and computations into that.
- Recolor labelmap based on the new color value (make that as forground value)
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
We would add a new type for overlapping labels (
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):
- Stable working version of the presented SlicerRT modules
- Self test python module that goes through the steps of the demo and so can be automatically tested. It can serve as a basis for the future demos as well (presenting various use cases without surprises)
- Update tutorial 7 on the tutorial page: http://www.na-mic.org/Wiki/index.php/RSNA2012_Planning
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.
- In vtkDebugLeaksManager destructor, the counter never reaches 0 if StackWalker::ShowCallstack is called (otherwise it does), and so the Finalizing function is not called. There’s a workaround in the current patch we made, but unfortunately that way many more objects are shown as leaking. It would be great if we found out what connection is there between calling ShowCallstack and that counter, and fix this issue. Ideas: ** Use ApplicationVerifier, maybe it unveils a memory corruption or something ** Use mutexes, maybe this issue is related to multitasking
- Filter out certain python calls from the stack trace: PyEval_EvalCodeEx, PyEval_EvalFrameEx, call_function, etc. Write ‘NNN stack frames were skipped’
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:
- Save them in the color table with underscores in the first place (workaround)
- When looking for the color, try to find it both with spaces both with underscores (workaround)
- 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:
- Load RANDO^PROSTATE dataset
- Go to DVH module
- Keep the default selection for the dose volume (PELVIS CURATIVE) and structure set
- Click DVH => crash
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:
- the generated output volume is not a labelmap
- if the volume is generated again then the output labelmap is not updated
- if the contour is ribbon, then the output is not generated and the viewers become unresponsive
- if the contour is closed surface, then the output is strange, it seems to replace the input contour
- the generated contour is not under the same hierarchy
- generate default output contour name automatically from the current contour and operation
2012-11-14, 21:34:30 - wangk
I have tested the following issues and here is my comments:
-
the generated output volume is not a labelmap The module is to morph the contour. so the logical output should be a contour instead of a labelmap. you can then change the representation in contour module.
-
if the volume is generated again then the output labelmap is not updated I checked. it actually creates a new labelmap with a new name. I will think about this.
- if the contour is ribbon, then the output is not generated and the viewers become unresponsive
-
if the contour is closed surface, then the output is strange, it seems to replace the input contour I have change the code so it will check the representation of the contour and will not perform morphology if it is not labelmap.
-
the generated contour is not under the same hierarchy I checked and it seems currently contour are not under hierarchy. only model can have hierarchy. you can verify that.
- generate default output contour name automatically from the current contour and operation I will think about this.
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:
- implement the expand/shrink operation algorithm for each representation (have different algorithm for each representation; or convert the source contour internally to a labelmap, do the expansion, then convert back to the original representation)
- let the user know that this algorithm doesn’t work on the current representation (and maybe offer to convert to the needed representation)
‘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:
- Contours: disable backface culling (body contour may be open and looks strange when looking at from the inside) -> Fixed
- Contours: after doing a ribbon->closed surface->ribbon conversion it’s not possible to switch to closed surface representation (only if I change the oversampling factor) -> Fixed
- Dose Comparison: ‘Selected reference volume is not a dose’ is not displayed until changing the dose volume selection (by default the ‘PELVIS CURATIVE’ volume was selected and there was no warning until I changed the selection) -> Fixed
- Dose accumulation: When an image is transformed the ‘Dose accumulation: image information does not match!’ message is logged only in the error console. The error should be displayed on the module GUI. -> Fixed
- Isodose: slice intersection lines don’t appear on the slice viewers => test it on latest Slicer4 -> Fixed (appears in release mode for sure)
- 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 -> Invalid?
- 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. -> Ticket 187 created
- Plastimatch B-spline registration: does not do anything if sample MRBrainTumor1/2 images are selected as input, warped and vector field outputs are selected, and Register is pressed -> Cannot reproduce
- LANDWARP registration crashes Slicer - try with latest slicer! (even if just two input volumes and an output volume is specified) -> Fixed -> Fixed (CP)
- XFORMWARP: could not test it without landwarp -> Tested, works
- Contours: when changing the ‘Current contour(s)’ selection don’t change the ‘Change active representation section’ (it’s quite difficult to change the active representation of 5 contours, because currently I always have to reselect the ‘Convert To’ item) -> Fixed
SlicerRT enhancements:
- DVH: for intensity volume histograms it would be nicer to have ‘Max intensity’ instead of ‘Max dose (N/A)’ (same for mean and min) -> Fixed
- DoseAccumulation: create default accumulated dose volume name (e.g., Accumulated_Dose1_Dose2_Dose3) -> Fixed
- Contours: after doing a ribbon->closed surface->ribbon conversion the oversampling factor is not editable, but the target reduction facor is; it should be consistent -> Fixed
- Contour Comparison: when ‘Reference volume’ is disabled (I assume that it’s automatically determined) then display on the GUI what reference volume is actually used -> Fixed
- DICOM-RT import: If the same dose volume is loaded twice, its name is not changed (I would’ve expected a _1 postfix in the name) -> Fixed
- Dose Comparison: create a default gamma volume name from the reference and compare dose volume names (DoseComparison_RTDOSE1_RTDOSE2 or GammaVolume_RTDOSE1_RTDOSE2) -> Fixed
Slicer core issues:
- labelmap volumes appear in the foreground/background even if they are hidden in the scene
- labelmap volumes do not appear in the Volumes module even if they are visible in the scene
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:
- Contours…” to “SlicerRT issues:
- Contours…”
2012-11-15, 01:45:11 - Greg Sharp
description: changed from “SlicerRT issues:
- Contours…” to “SlicerRT issues:
- Contours…”
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:
- Contours…” to “SlicerRT issues:
- Contours…”
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:
- Contours…” to “SlicerRT issues:
- Contours…”
2012-11-15, 18:58:30 - Csaba Pinter
description: changed from “SlicerRT issues:
- Contours…” to “SlicerRT issues:
- Contours…”
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:
- Contours…” to “SlicerRT issues:
- Contours…”
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:
- Contours…” to “SlicerRT issues:
- Contours…”
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:
- Contours…” to “SlicerRT issues:
- Contours…”
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:
- Contours…” to “SlicerRT issues:
- Contours…”
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:
- The error should be catched in a different way. Maybe checking the cause of this error if my suspicion is confirmed.
- Display the error message on the GUI (just in the case of Dose Accumulation and Contour Comparison modules)
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:
- 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.
- 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:
- The DVH algorithm automatically determines a good oversampling for the labelmap conversion
- If there already is a labelmap in the processed contour, then it would be re-converted only if the user checks a checkbox on the module UI
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
- Use fixed SVN revision for 4.2
- Be more careful syncing the SlicerRT modules to the Plastimatch updates
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.
- If we freeze Plastimatch for the trunk, then we have to update the revision number in SlicerRT every time something relevant changes.
- If we don’t freeze, then the nightly SlicerRT version doesn’t keep up with the Plastimatch changes (this is the case now) For now, I’ll freeze it for 4.2, but not freeze it for the trunk. Then we can decide to freeze the trunk too.
(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.
- No surprises in the nightly builds / No need to push through a fundamental change in the extension update procedure
- Compliance with the Slicer habits (external dependencies are frozen there)
- We have to modify the Plastimatch revision if a change is made that is required for SlicerRT development, or if fixes a major bug
- No waiting for the Plastimatch build before the SlicerRT build every time there is a commit
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:
- A standalone executable, which uses Plus and DCMTK
- Plus is used to read the input ultrasound sequence metafile (mha) acquired using the Plus toolkit
- DCMTK is used to construct a sequence of CT slices that contain all the mandatory fields (the CT data set in the UsToCtConverterSample/originalCT directory contains some optional, private fields as well, so not all of them have to be included, only those required by the DICOM standard Part 3)
- Some fields are updated in the sample script (pixel data, image size, etc.), but some more fields would need to be updated in the final solution (at least new instance UID should be generated for each slice)
Optional:
- Would be nice to get the pixel spacing from the Plus configuration file (from the ImageToProbeTransform matrix)
- Would be useful to be able to burn in the centerline of reconstructed needle trajectories into the US image pixels to improve the catheter visibility
- Might be useful to support arbitrary image orientation (for freehand tracked US acquisition; by reconstructing an US volume)
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
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:
- Do a clean build on Mac and see if it is still an issue
- Add a new item to the troubleshooting wiki page (https://www.assembla.com/spaces/slicerrt/wiki/Troubleshooting) if it’s not critical, and move this ticket to Future with low priority
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:
- have a fiducial at each control point (source, isocenter, etc.): the user can manipulate (move around) these points or we can lock the fiducials to prevent accidental editing
- develop a custom module that observes these fiducials (source, isocenter, etc.) and creates/updates a model based on these fiducial positions
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:
- In mha_read_header.m describe that AnatomicalOrientation value is ignored and assumed to be LPS. Describe it in the function documentation and note it where you actually override the AnatomicalOrientation value to LPS.
- Specify somewhere how to interpret the TransformMatrix matrix. Also, I would give a more descriptive name to this field. The info structure should be independent from the metaIO format as much as possible (in the future we may write other readers and writers that use the same info structure for other volume file formats).
- Describe the contents of the info structure somewhere. Give a more descriptive name than “info”, maybe “VolumeInfo”, “ImageVolume”, …
- readme.txt is somewhat redundant with the function documentation. Only have readme.txt if you have some high-level, common documentation (such as the description of the “info” structure).
- Add an automatic test script and test data (read, write, read, compare the pixel data and field values, etc. for mha, mhd, compressed, uncompressed)
- Maybe make the mha_read_header.m function a private function within mha_read_volume.m? It would be just more consistent with having a single mha_write_volume.m function. There could be an optional flag for the reading if we want to load the volume data or just the header info.
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:
- Hide non-dose volumes by default (have a checkbox to show all volumes)
- By default select the first dose volume
- Are you sure popup (I don’t really like this)
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
- Add two buttons on the DVH module GUI: one-up and four-up quantitative layouts
- Register the one-up quantitative layout in Slicer core: define the layout and set a constant for it in the Slicer core so that when the scene is saved/reloaded the layout appears correctly
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:
- Contour conversion
- DVH computation (takes long for whole structure sets) [DONE]
- Dose comparison [DONE]
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
- Exports a PlanC study (anatomy, dose, structure set) into MHA files
- Using the metafile writer (https://subversion.assembla.com/svn/slicerrt/trunk/SlicerRt/sandbox/SlicerMatlabBridge/MetaImageIO/)
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.
- Read leaf positions
- Create beam model accordingly
- Add option to position camera to ‘beam’s eye view’
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:
- MLC/Jaw visualization.
- 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
- Show beam-related parameters (angles etc.) in Beams module GUI
- Allow changing these parameters
- Update beam beometry according to the changes
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:
- Python wrapping has problems with the templated function or the .txx include file?
- Python wrapping has problems with the internal classes RoiEntry and BeamEntry?
Sources:
- http://www.vtk.org/Wiki/VTK/Python_Wrapping_FAQ
- http://www.vtk.org/Wiki/VTK/Python_Wrapper_Enhancement
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?
- Should I try to include these classes in the namespace?
- Should I somehow change the order they appear? Is there a way? It looks alphabetical.
- 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
- Show only PatientHierarchy nodes and their leaf nodes
- Add icons to the different node types for easy identification
- Enable show/hide the displayable nodes and their direct parent (which shows/hides all displayable leaf nodes)
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:
- Remove HierarchyTag class and store only a vtkStringArray in the PatientHierarchy nodes
- Create Logic class and move all the utility functions into it
- The DicomRtImportLogic should add the DICOM hierarchy in the logic, so that it knows the name of the hierarchy and the ordered list of tags (Patient, Study, Series…). It does it preferably when the scene is created or some event that happens after instantiating all module logics
- Where the level value is used and compared, the hierarchy from the logic should be used (the hierarchy name is an input to the utility function)
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
- If the input contours don’t contain labelmap representation, then the module does not allow to use them. Thus the user has to go to the Contours module and convert them manually. This does not comply with the ‘easy and automatic contour handling’ that the Contours module was supposed to introduce. It would be better to add a Reference volume field that is used as reference in case an input contour does not contain labelmap representation. See Contour Comparison module as example.
- Review input contour names ‘Reference’ and ‘Input’. Those seem not to mean anything. The reference contour is apparently not a reference to anything, and the input contour is obviously an input.
- When a one-operand operation is selected, disable the second input (whatever name will it have)
- Change line edits to spin boxes. It is tedious to actually enter any number in them
- Maybe add a checkbox ‘Uniform’ and if checked, disable the input fields for the different directions except for one
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
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
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
vtkMRMLNode::PrintSelf(std::basic_ostream<char, std::char_traits1
2
vtkMRMLContourNode::PrintSelf(std::basic_ostream<char, std::char_traits<char> >&, vtkIndent)':
vtkMRMLContourNode.cxx:(.text+0x89): undefined reference to
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.
#223 Linux link error in Contour Comparison module
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
omp_get_num_threads’
dice_statistics.cxx:(.text+0x24): undefined reference to 1
2
Dice_statistics::run() [clone ._omp_fn.0]':
dice_statistics.cxx:(.text+0x18): undefined reference to
GOMP_atomic_start’
/home/perklab/Devel/SlicerRT_R64-bin/Plastimatch-build/libplmutil.a(dice_statistics.cxx.o): In function 1
2
omp_get_thread_num'
dice_statistics.cxx:(.text+0x2ab): undefined reference to
GOMP_parallel_start’
dice_statistics.cxx:(.text+0xa36): undefined reference to 1
2
Dice_statistics::run()':
dice_statistics.cxx:(.text+0xa24): undefined reference to
Dice_statistics::run() [clone ._omp_fn.0]’:
dice_statistics.cxx:(.text+0x33c): undefined reference to 1
2
GOMP_parallel_end'
/home/perklab/Devel/SlicerRT_R64-bin/Plastimatch-build/libplmutil.a(dice_statistics.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 status1
2
GOMP_atomic_end'
/home/perklab/Devel/SlicerRT_R64-bin/Plastimatch-build/libplmutil.a(hausdorff_distance.cxx.o): In function
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
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
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
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
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
- Rectum form the Prostate phantom against Eclipse, change: 95.8%->66.4%
- BRSTEM from the Ent phantom against both, change 100%->65%/43% It is very strange though that other small structures such as optic nerves and lenses perform the same, but these two somehow perform very bad. Full report attached.
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
- The chart appears alright
- During the computation of the second DVH the program crashes and doesn’t provide a call stack. It seems almost hopeless to debug this error. I’m trying further with logging.
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
- Test each type of conversion
- Test automatic transform change
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
- Perform recommended tutorial http://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Extensions/SlicerRT#Tutorials to create two similar but different dose volumes to test gamma computation ** Use this gamma volume as baseline for the test
- Use Dose Accumulation logic test as sample
- Change screenshot on page http://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Modules/DoseComparison and in the 4.2 page as well (the color map changed and the current one is not valid any more)
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.
- Nice main page with ** Talkative title, such as ‘Open-source radiation therapy research toolkit built on the 3D Slicer platform’ ** Good-looking screenshot ** Contact information ** Links to ** Documentation -> Assembla wiki main page ** Download -> Few step description (download and install Slicer from here, open Extension Manager, install SlicerRT) ** Feedback -> Assembla wiki page on how to report bugs and how to use the Messages section ** References -> MedPhys paper reference
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:
- Checkout SlicerRt trunk
- Create VFF plugin folder in the sandbox (VffFileReader)
- Copy sample files (Resources/UI/…ui, q…IO.cxx,h) from Volumes module
- Modify UI to be empty using designer (…\Slicer_Trunk_R64-bin\Slicer-build\Slicer.exe –designer)
- Change …Widget.cxx accordingly
- Modify plugin cxx to accept VFF files and to create and use the Logic class instance
- Create Logic class in Logic directory. Make it a proper VTK class (no pipeline support for now, see SlicerRtCommon\vtkLabelmapToModelFilter.cxx)
- Modify CMakeLists.txt files (to add Logic directory but not the others, etc.)
- Make module hidden (see DicomRtImportModule.h)
- Register plugin in Slicer (see qSlicerVolumesModule::setup() method, where the plugin is added to the IO manager. The same thing needs to be done in the …Module.cxx file)
- Create binary directory, then configure with CMake (like the module in the programming tutorial) and build
- Add new module to Slicer (Edit / App Settings / Modules / Additional module paths)
- Commit After this is done, we only need to work with the Logic class from then on
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
- header ** attributes separated by a semicolon and a following return carriage character (0A) ** keys and values are separated with a number spaces, then an equals sign, then again any number of spaces (0..) ** discard string before the first ‘;’ ** header ends with string 0A 0C 0A (if the string after the current semicolon starts with this, then we have the whole header) ** header attributes ** rank : number of dimensions (let’s handle only 3 dimensions first) ** type=raster is the only type we accept, otherwise abort and report an error (vtkErrorMacro) ** format=slice – || – ** bits : length of one voxel in the image data ** bands : number of image components (e.g. grayscale has 1, RGB has 3) (for now we can only handle 1 band) ** size : dimensions separated by (any number) spaces (let’s expect 3 values here for now) ** spacing : size of each voxel in the output coordinate frame (-> vtkMRMLScalarVolumeNode::Spacing) ** origin : -> vtkMRMLScalarVolumeNode::Origin ** rawsize : check if this number matches the number of bytes after the header closing string (0A 0C 0A) ** data_scale : multiplier of the voxel data (to get actual values) ** data_offset : ? (probably an offset to add to the voxel value before or after applying the scaling) (make sure it’s 0: report an error otherwise) ** HandleScatter=Factor is the only type we accept, otherwise abort and report an error (vtkErrorMacro) ** ReferenceScatterFactor=1 – || – ** DataScatterFactor=1 – || – ** filter = Ram-Lak – || – -> accept extra spaces! ** title : apparently the file path -> extract name starting from last ‘\’ or ‘/’ until the file extension -> name ** date : date
- load image data ** create vtkImageData according to .size ** set spacing to (1,1,1) and origin to (0,0,0) ** length of a voxel is bits/8 * bands (assume bands=1)
- create MRML node (vtkMRMLScalarVolumeNode) ** spacing and origin ** set (and observe) image data ** set name ** set date: SetAttribute(‘Date’,date) (add TODO comment to make it as a constant in SlicerRtCommon) ** add node to the scene
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
- Propagate selection after loading
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
- Every sub-test (morphological operator) should have its own baseline. It is not adequate to check if the output of each test step has more voxels than an arbitraty number (1000 in this case). Ideally the results would be cheched against baseline labelmap volumes, but I think it is adequate to check if the number of non-background voxels in the computed results match the defined baseline (separate number for each step)
- All inputs need to come from the CMakeLists.txt file ** The file defined with full path should be defined with the file name only, as this is why the Data directory is defined ** There should not be burnt-in strings in the source code, such as ‘/PTV_Contour_Labelmap.nrrd’. All these inputs should come from the test definition
- Add another test that contains a volume that is transformed (has a transform node associated), to check the capability to deal with transforms. For simplicity, one additional parameter (e.g. ApplySimpleTransformToInput2) containing whether or not the second inpuit is transformed is enough. Create a very simple transform in the code and apply it, then compare it to the baseline that is got from Slicer by using the very same transform.
- Fix misleading comments in the code
- Remove unused #include directives
- Stick to coding conventions, especially ** Local variables should start with small letters and capitals for the beginning of each word (e.g. contourComparisonLogic) ** Use full words, don’t shorten, e.g. PTV_Labelmap_Exp -> PTV_Labelmap_Expanded
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:
- The transform nodes do not appear in the subject hierarchy tree as individual rows
- Instead, a new column should be added for the transformations applied to each node ** The column contains a listbox containing the names of the available transforms, with the applied one selected if any, otherwise empty selection ** When a branch is transformed (using a context menu action), then the selected transform is applied to all the children nodes of the current node. If a child node is already transformed, then show a popup dialog offering ** Harden current transform and apply the just selected one ** Apply selected transform on applied transform ** Abort ** (‘Replace the current transform to the just selected one’ was one candidate but it seems to make little sense) ** The column width is limited, but the opened listbox has the width of the longset transform name (similar to configuration file selector in fCal)
- A transform is exported as a registration object if the study to be exported contains nodes under that transform
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:
- Create new module pages (links already added)
- Move every page except for the PatientHierarchy from the nightly pages to 4.2
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
- Isocenters and the beams organized under fields (called RT treatment record in the DICOM standard)
- Structure set under the anatomical image
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:
- Naming: Isocenters VS Fields
- Node names are preficed with the type of the node, e.g. ‘PELVIS CURATIVE’ -> ‘Image: PELVIS CURATIVE’, or ‘Bladder_Contour’ -> ‘Structure: Bladder_Contour’
- The objects related to the beams are put under the beam objects. We don’t have DRRs loaded well yet, but conforming to the example, the isocenter would have two children, a DRR and a beam model. The only problem with this approach is that the possibility of changing the visibility of all the objects at once would no longer exist (i.e. ‘set visibility for object type’ -> ‘set visibility of all objects related to a beam’)
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
- The module name does not tell much. RTPlan is a DICOM modality.
- There are no Slicer modules with names like this (one word, capital letters, etc.). They all have human readable nice names
- 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
- Start Slicer ->Load DICOM-RT study -> Switch to Patient Hierarchy module -> the loaded data appears correctly
- Start Slicer -> Switch to Patient Hierarchy module -> Load DICOM-RT study -> the loaded data appears incorrectly: the contours appear at top-level etc.
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
- Dose unit in study node instead of dose volume
- Created isodose models should be placed in the hierarchy
- Use the hierarchy to automatically get rasterization reference volume for contours
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
- Creating contour from regular volume or model
- TODO others
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
- Create a float volume
- Do a smooth (make it an option in the algorithm class)
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:
- Around fractional labelmap summation.
- Around cached intersection modification.
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
- MRML to ITK conversion - done in SlicerRtCommon
- MRML to Plm conversion - done in PlmCommon
- ITK to MRML conversion - no utility function for it
- Resampling utility for MRML - done in vtkVolumesOrientedResampleUtility
- 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:
- Don’t create this utility (the conversion is about 10 lines of code anyway)
- 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:
- ITK->vtkImageData utility in this ticket (basically move it from external beam logic to a SlicerRtCommon and using it in the all the modules)
- 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
) () 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
(gdb) print nodeText.data cannot resolve overloaded method `data’: no arguments supplied
(gdb) print nodeText
$2 = {static null = {
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:
- 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:
- How to create Slicelet skeleton ** Python ** C++
- How to add viewers and specify layouts
- How to invoke other modules
- How to exclude unneeded modules
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:
- 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.
- Load an on-board imager cone beam CT scan (OBI) as a 3D scalar dicom volume, and register it to PLANCT.
- 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.
- Apply dose calibration curves (arbitrary scalar math operations) to MEASURED, yielding MEASUREDDOSE.
- Perform a gamma, chi, etc. test between MEASUREDDOSE and PLANDOSE, yielding another 3D volume COMPARISON.
- Extract statistics from COMPARISON. /Matthew Marsh, KGH/
Tasks
- Design ** Slicelet layout, appearance ** Workflow steps (wizard? tabs?)
- Implement
2013-06-10, 20:13:50 - Csaba Pinter
description: changed from “1. Start by loading a plann…” to “Workflow:
- 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
- Load DicomRT study with a structure set
- Go to Patient Hierarchy module
- Hide structure
- Slice intersections are still there until slice is changed in a 2D viewer
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:
- Make a copy of the default isodose table for each dose distribution loaded and generate a dose color table for that (parameter set nodes are already created for each one)
- [DONE] Enable full editing of the isodose color table ** Make the dose one read-only as much as possible
- Create events and observers for changes in the isodose color tables and re-generate the corresponding dose color table
- Enable using percentages of prescribed dose as well as absolute values
- Use the Eclipse isodose colors as default (80% deep blue, 90% lighter warmer blue, 100% yellow, 105% orange, 110% red)
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
- Tutorials (presentations) ** Handling fractions ** Transform studies ** Dose accumulation ** Creating, editing, visualizing contours ** …
- Re-organize main SlicerRT wiki page, more links to small categories ** Registration (Reg. case library, reg. modules, SH plugin) ** Contour handling and segmentation ** Fractions (organizing data, transform studies, etc.) ** Beams
- Update montage: no whole screenshots, just viewers (no need for all those 2Ds)
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:
- Integrate Contours in Slicer core
- Decide on a common Dice algorithm
- Explore possibilities in converging the two modules toward each other
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
- Patient should be created by adding a new child node under a virtual top-level node
- Add action to create structure set (remove default structure set)
- Update documentation
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:
- Create contours from scratch
- Using the Contours module to manually do contour conversions for non-SlicerRT modules
- Deform structure set using a registration result
- …
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:
- use global environment variable SLICER_MATLAB_EXECUTABLE_PATH
- search for Matlab.exe in PATH directories
- search in default matlab installation paths (‘c:\Program Files\MATLAB\2012a\bin\matlab.exe’, etc.)
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:
- doublearrays (stored in CSV file)
- models (stored in VTP file)
- colormaps (stored in CTBL file, used by model maker)
- output MRML model hierarchy (used by model maker)
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:
- load rt dose from prostate dataset.
- go to isodose module and change number of level to 1, change level value to 20. click apply.
- go to patient hierarchy module, drag the newly created isodose_model and drop onto default structure set node to create new contour.
- 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
- Separate generic portions of the Patient Hierarchy code to a Subject Hierarchy
- Make Patient Hierarchy a seires of subclasses of Subject Hierarchy
- Integrate Subject Hierarchy to Slicer core
- Integrate Contours as well
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
- Need to have some legend or some guide to understand the exact meaning of the colors in the contours
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
- Enable changing 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::
scalar deleting destructor’() + 0x31 bytes C++
qSlicerBaseQTCore.dll!QScopedPointerDeleter1
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::
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:
- In case of vtkObjects subclasses SetObjectMacro has to be used instead of vtkSetMacro
- Unused code pieces can be deleted, the source repository has the whole history
- Error handling: the member variables that are used in the functions need to be checked of they are valid, because it can cause a crash if they are not. An error message needs to be logged too.
- Every C++ object that is initialized has to be deleted at some point. It is not enough to set the pointer to NULL.
- No need to use the Get function for reaching own members
- Coding conventions (http://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Developers/Style_Guide), especially ** The variable names should indicate what they are. Examples: ‘index’ does not mean anything; inputVtkTransformation is an incorrect name for an object with vtkMatrix4x4 type ** Use this-> to indicate that the variable is a member (the code is easier to read) ** Local variable names should start with lower case
- Things that need to be changed (marked with ‘TODO: ‘ in the source code ** Transformation names ‘inputTransformation’ or ‘outputTransformation’ are very dangerous. Please rename all of them to something like frame1Toframe2Transformation (outputImageFromInputTransformation is a bit better but still not good as Image and Input are also ambiguous) ** GetOutputImage function name is quite bad as it does not actually return anything. Please rename the function and all its occurrences (e.g. in error messages)
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:
- Give more unique node names: now Image shows up many times and there is no way to know which one we would like to select.Use the MultiDimension.Value value or the frame index in the name. Use the sequence metafile filename to generate a more meaningful root hierarchy node name (instead of just ‘hierarchy’).
- Only the root hierarchy node should contain MultiDimension.Name and MultiDimension.Unit attributes, the others should only contain MultiDimension.Value
- Change the MetafileImporter module’s category from Examples to MultiDimension
- Register the MetafileImporter into the slicer data importers (so that when you drag-and-drop a mha file then you have the option to import it as a sequence metafile
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:
- Root node properties (parameter name, unit) should be editable using a simple editbox instead of a table. No need to show/edit the root node id.
- Sequence nodes: Add a node name column (since a recent commit the node names are nice). No need to show/edit the root node id. Add an ‘Add’ and ‘Remove’ button to this section (there should be some space for that on the right side).
- Data nodes: No need to show/edit the root node id. Node tags are not usually shown to the user, I think we should replace them by node type (vtkMRMLTransformNode).
- Sequenced node section is redundant. It should be removed and the unsequenced node list should be moved closer to the data nodes section.
- The vertical size of the sequence nodes section and unsequenced node list is too small. Change the size policy to allow dynamic extension up to about 15 rows.
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:
- After unhide the volume doesn’t show up in the slice viewer. Problem with display node? Maybe the rename hack should be applied (modify the node name to something to trigger a refresh in the slice viewer’s list of volumes)?
- It would b nicer to have an eye icon in the data node table and the sequence table to unhide/hide nodes from editors
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:
- We could save some vertical space by placing Parameter Name and Unit editboxes in the same row
- Move eye icon to be the first column (to make it visible even when the node is long)
- Add eye icon to the sequence nodes list as well
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:
- hide the right side (non-data nodes and left/right arrows) by default, as it is done in Application settings / Modules with the ‘»’ icon
- would be nicer to use the same left/right arrows as in the transforms module
- use the ‘trashcan’ and the ‘+ with the tree’ from the annotation module for removing/adding sequence nodes (this one is not related, just would be nice and somewhat more consistent look&feel with other modules)
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:
- move the source code under a src subdirectory under MultiDimension
- rename LoadableModuleTemplate string in directory&file names and in all classes and cmake files to MultiDimension
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:
- It has a well-defined and meaningful name
- 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:
- 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.
- 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
- Add a checkbox to the options widget of the Vff file reader IO plugin.
- The checkbox should say ‘Use voxel spacing and offset’
- By default it should be off (it ignores these metadata)
- Use this flag in the file reader code to decide whether to use the voxel spacing and offset values
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
- Consistent comments ** Same indentation as its block DONE ** Same number of blank lines between the blocks and functions and classes
- AnnotationnWidget ** It causes an error that prevents the slicelet from opening again after closed ** ! Check if the widget works properly if the slicelet is started without the Slicer GUI !
- Consistent step naming DONE ** Step 3 ** ‘Select OBI … ‘ -> ‘A: Select OBI …’ ** ‘MEASURED Dose Volume’ -> ‘B: Load MEASURED Dose Volume’ *** ‘Select MEASURED …’ -> ‘C: Select MEASURED …’
- GUI improvements ** Step 3: Open the first annotation widget automatically DONE ** Step 3: Move Fiducial Selector inside the first sub-step, above the annotation widget, and add another one to the second annotation widget too DONE ** Step 4: Bug: Strange lines under step B) ** Step 4A) Averaging Radius input field is shorter than the above widgets ** Overall: Column spans * don’t create more columns than needed
- Remove unneeded functions
- Write a human readable description about the workflow. Explain non-trivial things like Pdd and so on. DONE (GelDosimetryAnalysis\Doc\GelDosimetryAnalysis_Workflow_Step4Details.txt)
2013-08-13, 20:54:16 - Csaba Pinter
description: changed from “- Consistent comments
- S…” to “* Consistent comments ** Sa…”
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:
- Auto-install dependent extensions in Extension Manager (SlicerRT would depend on Plastimatch) (DONE)
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:
- Auto-ins…” to “Needed features:
- Auto-ins…”
2016-05-26, 18:03:59 - Csaba Pinter
description: changed from “Needed features:
- Auto-ins…” to “Needed features:
- Auto-ins…”
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.
- 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
- 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
- Create isocenters as markups in the DICOM RT import phase ?
- Recognize markups in the PH tree
- Handle drag&drop
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”
#389 would be good to have a link to the software license on the download page
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
- Load a labelmap volume from file
- Drag&drop it under the default structure set in Patient Hierarchy (thus creating a contour)
- Go to DVH module and try to create use the contour as an input
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
- delayDisplay
- clickAndDrag
- TestUtility_ShowVolumes
- TestUtility_ClearDatabase
- TestUtility_AreRtLoadablesFound
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.
- Export button under the tree which when clicked opens an Export window containing the SH tree with checkboxes for the nodes, DICOM tag editor widget for the selected node, and other necessary controls
- Edit DICOM tags ** Re-usable widget that allows editing DICOM tags (stored in prefixed node attributes) of a SH node ** This widget appears in a collapsed box under the SH tree, and also in the export pop-up ** Copy DICOM tags from (confirm overwrite) ** Other SH node ** Series in DICOM database
- Export method in the plugin interface ** DICOM plugin could handle basic things like create study or append to existing study ** The other plugins that depend on DICOM can override the basic method exporting their supported objects (series only)
- In the long term there could be a generic Save function for saving locally (file or DB) and Export could be an uncontrolled export to anywhere
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
- Change EXTENSION_STATUS from ‘Beta’ (to the string that means stable)
#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
- Isolate non-DICOM specific parts
- Migrate infrastructure (plugin mechanism, widgets)
- Rename to SubjectHierarchy
- Extensive automatic testing
- Integrate to Slicer core
Re-create patient hierarchy features as subclasses of the new hierarchy module
- Use the same module (Subject Hierarchy)
- Extend functionality for DICOM and DICOM-RT
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
- Isolate no…” to “Generalization
- Isolate no…”
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
- Create 4.3 branch
- Test
- Release
- Change text on Downloads page of the SlicerRT website
- Update Slicer wiki stable pages
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
- Test …” to “* Create 4.3 branch
- Test …”
2013-10-01, 21:35:56 - Csaba Pinter
description: changed from “* Create 4.3 branch
- Test …” to “* Create 4.3 branch
- Test …”
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:
- While it makes sense to lock the color, is it possible to dynamically change the opacity ?
- Is it possible to ‘re-apply’ without regenerating a set of isodoses ? Somehting like a in-place update.
2014-02-18, 20:46:54 - Csaba Pinter
- Opacity of the isosurface models can be changed like any other model, but not from the isodose module
- 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:
- DoseAccumulation module
- Isodose module
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:
- Please rename variable ‘outputVolumeResliceTransform’ in vtkSlicerDoseAccumulationModuleLogic::AccumulateDoseVolumes to match the convention (every transform should hav ethe name [fromCoordinateSystem]To[toCoordinateSystem]Transform or …TransformMatrix if it is a matrix)
- There is a TODO in vtkSlicerIsodoseModuleLogicTest1.cxx
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
- Update classes that keep pointers to other nodes using the new MRML node referencing mechanism
- Explore the possibility to use the same mechanism for connections inside the Patient Hierarchy instead of the connection attributes and the UIDs ** Consider creating a ‘reference inspector’ widget that is similar to the MRML node inspector that show all the references (or just extend the current node inspector widget)
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:
- When the UI changes, the widget uses its own parameter set node accessor (i.e. the parameter set node combobox selection) instead of the logic
- The parameter set node gets passed to the logic on computation as the function argument of the computation function
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):
- Logic ** Get parameter node as computation function argument
- Widget ** setParameterNode ** Select parameter node in combobox (in case it was not called through signal) ** Set parameters from UI to new node if UI selection was valid but param node selection empty (NULL, etc.) \u000B+ updateButtonsState ** qvtkReconnect Modified ** updateWidgetFromMRML ** setMRMLScene + onEnter ** qvtkReconnect SceneImportedEvent (setMRMLScene only) ** Find parameters node or create it if there is no one in the scene (call setParameterNode) ** onSceneImportedEvent *** onEnter
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):
- Logic ** Get parameter node as computation function argument
- Widget ** setParameterNode / rtBeamNodeChanged / … *** Select” to “Parameter node handling in modules (as established by looking at all the SlicerRT modules and coming up with best practices):
- Logic ** Get parameter node as computation function argument
- Widget ** setParameterNode *** Select parameter node in combobox”
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
- Extend Beams module to expose beam-related parameters and utilize this logic when computing the source position and generating the beam model
- Utilize this logic in the DicomRtImportModuleLogic where the RT Image is transformed into its proper location
- Ask Kevin and Greg about the External beam planning module, what it exposes and how it computes the transforms
- Maybe: Create an interactive module that computes a transform between any two coordinate systems based on the possible parameters (rotation angles etc.)
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
- Gantry rotation from Beams module is fixed by applying the 90 degrees rotation that goes from RAS to FixedReference. Note: This should be a new transform in the logic, as the whole linac needs to be transformed using this as well
- Duplication of definition of transform names removed by declaring static member variables for that in IEC logic and using them from REV logic
- Removed unnecessary error messages (setting NULL beam node is completely valid)
- Fixed typo in include directory variable name, which resulted in not being able to include IEC logic from REV logic
- Renamed CollimatorRotated coordinate system to Collimator. Reasons and concerns (also see TODOs added in the code):
It makes sense that there is a GantryToFixedReferenceTransform that goes from FixedReference to Gantry. Then there is CollimatorToGantryTransform, that goes from Gantry to Collimator. So far so good. Then the problems start:
- The Collimator coordinate frame was called CollimatorRotated. (this has been renamed to Collimator, that’s how it makes sense, because one cannot go to a coordinate frame that does not exist, i.e. Collimator) There are two more transforms, called CollimatorToFixedReferenceIsocenterTransform, and FixedReferenceIsocenterToCollimatorRotatedTransform. If the rename from (1) is applied, then they are called CollimatorToFixedReferenceIsocenterTransform and FixedReferenceIsocenterToCollimatorTransform. The problems here are
- What is FixedReferenceIsocenter? It’s not in the coordinate system list. What do we use it for?
- In the transform chain there is CollimatorToGantryTransform, under that FixedReferenceIsocenterToCollimatorTransform, under that CollimatorToFixedReferenceIsocenterTransform. So this chain goes from Gantry -> Collimator -> FixedReferenceIsocenter -> Collimator. This problem has been also explained in the code in: vtkSlicerIECTransformLogic::FIXEDREFERENCEISOCENTER_TO_COLLIMATORROTATED_TRANSFORM_NODE_NAME vtkSlicerIECTransformLogic::GetTransformBetween (fromFrame == Collimator && toFrame == FixedReference) vtkSlicerRoomsEyeViewModuleLogic::UpdateCollimatorToFixedReferenceIsocenterTransform
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
- Member variable for collision detection matrices were removed from REV logic, and instead of relatively arbitrary transform pairs, the transforms taking part in collision detection are relative to RAS.
- Collisions with patient are now detected properly
- Fixed a few memory leaks
- REV parameter node registered with the scene, and used properly (observed) when exists
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
- When beam is selected, that beam is visualized (others hidden), and IEC transforms updated based on the beam (gantry rotates etc.). Also patient segmentation belonging to the (parent plan of the) beam is shown
- REV module UI made more compact
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
- Load a DICOM-RT study
- Save scene
- Restart Slicer
- Switch to the Patient Hierarchy module
- 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:
- Drag&drop nodes in MRMLTreeView is not possible
#418 Dose color table is corrupted after closing the scene
- Load a dose image
- Close the scene
- Load a dose image -> The used color table is invalid
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:
- HIT-C12-cubePhantom
- HIT-H1-head
#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:
- Acquisition software name and version,
- Organ
- Whether it is phantom
- Any special property that defines why is that dataset special
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
- Move beam node from ExternalBeamPlanning to Beams
- Use beam node when reading beam data (in the reader or importer)
- Use beam node for geometry computations in Beams
- Remove PlanHierarchy node type from ExternalBeamPlanning
- If there is logic that can be considered common, move it to Beams logic
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:
- Return with 0 on success, non-zero on error (Kevin’s classes mostly)
- Have an std::string argument for errorMessage. If it is not empty, then there is an error and it is displayed on the module GUI
- Return with a bool success flag
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):
- add a module in Slicer that can invert/combine transforms as needed: still may require some additional manual configuration and specification of the calibration matrices
- with some heuristics create the needed transforms when the metafile is imported into Slicer: it could work for sequence metafiles generated by Plus, but not a generic solution
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:
- Save the nodes when importing: wouls be simple, but the problem is that at that point we don’t know where could we save the nodes (maybe the user won’t want to save it at all), so not a good solution
- Implement the same behavior as for MRB format saving (hidden nodes are saved with the default settings): would be a nice solution, but requires Slicer core change and the current implementation around MRB saving is very kludgy
- Implement saving of the hidden multidimensional data nodes in the storage node of the root multidimensional node - probably this is the most feasible solution in the short term
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:
- When a structure is loaded and there is no CT (yet or otherwise), then show only the polylines of the contour (maybe with a tubefilter applied) ** Conversion to labelmap is usually not possible this way (disable the conversion?)
- When the corresponding CT is loaded, then get the normal and create the ribbons
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
- Sample film data is needed (from KGH)
- Run the slicelet to see every step supports 2D images
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:
- Numpy features should be used if possible
- Display all 3 curves (experimental (red), PDD (blue), registered experimental (green)). Make sure a legend is displayed.
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:
- Allow the user to pick outliers manually and omit those at fitting
- Add back the input field for order of the polynomial ** Make it a combobox (default value can be 1)
- Show the fitting error (R2)
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:
- 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)
- 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:
- Read the whole code before you commit, and ** Remove unnecessary code (such as the volumes logic related parts from this code) ** Delete code that you were to commit commented (we have SVN so we don’t need commented-out code) ** Remove functions whose body contains only a call like this: this->Superclass::FunctionName. These are unnecessary
- Stick to UI conventions: No camel case, but sentence case
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:
- Add a ‘Show dose volume only’ checkbox that is on by default
- Only show dose volumes if the checkbox is on
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
- Reconsider extension description text
- Announce the release containing subject hierarchy on the Slicer wiki url:http://www.slicer.org/slicerWiki/index.php/Main_Page|main page ** Send email to the devel list (many people at the NA-MIC week asked about trying SH)
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:
- Get the contour boundaries in reference volume IJK coordinate system (vtkConvertContourRepresentations::GetTransformFromNodeToVolumeIjk)
- 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
- 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:
- vtkSlicerContoursModuleLogicTest_EclipseProstate
- vtkSlicerDoseVolumeHistogramModuleLogicTest_EclipseProstate
- vtkSlicerDoseVolumeHistogramModuleLogicTest_EclipseProstate_CERR
- vtkSlicerDoseVolumeHistogramModuleLogicTest_EclipseEnt_CERR
- vtkSlicerDoseVolumeHistogramModuleLogicTest_EclipseProstate_Eclipse
- vtkSlicerDoseVolumeHistogramModuleLogicTest_EclipseEnt_Eclipse
- vtkSlicerContourComparisonModuleLogicTest_EclipseProstate
- vtkSlicerContourComparisonModuleLogicTest_EclipseProstate_Transformed
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:
- There is a separate step (1) for loading planning data, while the other data loading steps are incorporated as substeps of the registration steps
- Step 4/A takes care of way different tasks: Pdd loading and loading and parsing the calibration data
- Step 4/C also takes care of way different tasks: Align curves and generate dose information
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:
- Essentials: Transforms, Volumes
- BrainsFit
- BrainsResample
- Markups
- ?
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:
- in img.ijkToLpsTransform
- in a field in img.metaData
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:
- Visibility of scalar bar in gamma step (sliceAnnotations of layoutManager has scalar bar enabled)
- Mask segment is visible at gamma step
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
- Add step for gamma computation
- Enable using a contour as a mask for the gamma ** Implement in Plastimatch ** Add option to dose comparison loadable module
- Add scalar bar for the gamma volume
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:
- First try just to set the W/L to auto
- Do histogram analysis if the auto W/L doesn’t work and set the W/L values based on predefined rules
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:
- Use the SelfTest class
- Use an external file to specify the inputs ** MRML scene with already loaded DICOM data? ** XML containing file paths and DICOM UIDs and load them as the user would?
- Report registration errors and all quantified results (curve fitting error etc.)
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:
- vtkPlastimatchLandwarpRegistration (or something similar, that shows the wrapped functionality the best) with the contents of the current vtkSlicerPlastimatchPyModuleLogic. If it wraps more than one type of registration, it would be best to split it.
- vtkPlastimatchDicomSroExport. This will call plastimatch functions right? (if not, then it shouldn’t be in this module at all)
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:
- 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:
- Deformation fields: http://www.itk.org/Doxygen/html/classitk_1_1InverseDisplacementFieldImageFilter.html, http://www.itk.org/Doxygen/html/classitk_1_1InvertDisplacementFieldImageFilter.html http://www.itk.org/Doxygen/html/classitk_1_1IterativeInverseDisplacementFieldImageFilter.html
- There is also inverse implementation for certain transforms: http://www.na-mic.org/svn/Slicer3/branches/bess_bspline/Libs/vtkITK/vtkITKBSplineTransform.cxx ::InverseTransformPoint http://www.na-mic.org/svn/NAMICSandBox/trunk/BSplineDeformableTransformInverseCalculator/Source/itkBSplineDeformableTransformInverseCalculator.h
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.
- Kevin verifies if the problem disappears without this piece of code
- If it’s verified I create a custom linux build for Gavin (temporary fix until the release of 0.13)
- 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_
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):
- SH GUI ** Drag&drop ** From potential (add) ** From inside (reparent) ** Plugin selection
- Plugins ** Claim sample nodes (canAdd, canReparent too) ** Auto re-select when modified (so that owner plugin changes)
- DICOM ** Insert series
- RT ** Create contour from representation ** Color table operations (add, reparent, remove) ** Loading order: CT -> RTSS and RTSS -> CT
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
- Plugins generate descriptive names: roles (how the plugin can handle the node) ** These names (role name, generated SH node name, confidence %) should be listed in the context menu instead of the plugin name ** A plugin can offer multiple ways to handle the same node (roles) ** Nodes need to store not just the owner plugin name but the role as well ** Roles assign levels to the nodes too
- Move role selection into sub-menu ** Slicer core change (MRMLTreeView pimpl constructor) ** Use saved tree view source files (20131223)
- Utilization ** RT dose: use the role (of the SH node) instead of the identifier attribute (in the volume)
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
- Add news about the new features to Slicer wiki
- Write emails to collaborators (Niranjan, Aman Anand, Swaroop, etc.)
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
- Make sure all the help links from the module are working
- Add screenshots
- Add use cases and test data
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
- Implement in PlmCommon
- Make sure the image geometry is properly propagated
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.
- We could have PlmCommon, that dynamically linked in the following libraries
- Shared PlmUtil, and deal with packaging the Plastimatch DLLs in installation
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
- Literature review (rasterization, voxelization, binary masks)
- Experiment with modifications to the SlicerRT rasterization method to examine the effects that these decisions have on the resulting labelmap ** This includes comparisons of the dose volume histogram (DVH) curves created from the labelmaps by CERR and the SlicerRT algorithm variations from the previous step ** The DVH curves created by commercially available software such as Eclipse or Pinnacle will also be examined
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
- DVH module automatically switched layout on show/hide DVH plots
- DVH module button state was incorrect when DVHs were imported in scene
- Added string type beam parameter Commit: r:3211|slicerrt:3211
#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
- Plot Z profile (live)
- Read/write nrrd file with multiple volumes
- Read from DICOM (DCE-MRI, cardiac, etc.)
- Import from directory
- Run a CLI with multi-volume input/output
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:
- Specification of key frames
- Standard motion patterns, such as spinning (360deg) or rocking
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.
- Plastimatch has a basic algorithm
- Jayashree has an implementation to remove points along a line (minimize the number of points)
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
- Apply registration on the structure set as well ** Select the structure set at step 2
- Apply ‘slice intersection’ in the 2D viewers for the crosshair
- Join steps 4A and 4B to be in one tab (easier access to the alignment after changing radius)
- Change OBI volume to green palette
- Turn on markup placement persistent mode
Bugs:
- Hide contours when starting the slicelet
- Change the cursor to indicate processing on gamma computation
Nice to have:
- Indicate better which volume is shown in the viewers
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
- Save a scene (with SlicerRT modules present)
- 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
- Load CT data from DICOM of rando ENT phantom.
- Load dose volume (by .nrrd) for rando ENT phantom (day 1 as example)
- In subject hierarchy, create child structure set under study
- Drag dose under new structure set
- In DICOM-RT Export ** select image volume ‘2: ENT IMRT’ ** select structure set ‘NewStructureSet_SubjectHeirarchy’ ** choose output directory ** hit save
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:
- Make sure only the X shift is applied
- Add Y shift for better visual 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
- Minor request: hide the beam model
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:
- vtkMRMLContourNode::SetName
- vtkConvertContourRepresentations::ConvertFromModelToIndexedLabelmap
@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:
- ‘_Contour’ postfix is added if required
- an attempt to set the representation names is always done independently of the state of the contour name
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:
- 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)
- 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
- 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:
- Don’t show the warning message on success (e.g. show success message explicitly instead)
- Target name not functioning
- Style ** Make sure sentence case is used on the UI (‘Target name’) ** Rename structure set to contour set on UI
- Memory leak
- New contour node does not appear in subject hierarchy
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.
- moved EBP’s MRML and SubjectHierarchyPlugins to Beams.
- 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.
- 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.
- Moved all relevant subject hierarchy plugins to beams.
- 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:
- Cast the image to unsigned short on converting to contour (vtkSlicerContoursModuleLogic::CreateContourFromRepresentation)
- 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
- Have an SH tree with a contour set
- Save scene
- 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
typeinfo for qSlicerContoursModuleWidget’1
2
qSlicerSubjectHierarchyContourSetsPlugin::convertRepresentationAction()':
/PHShome/gcs6/build/slicer-4/SlicerRT/Contours/Plugins/qSlicerSubjectHierarchyContourSetsPlugin.cxx:672: undefined reference to
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:
- The plugins in extensions will be turned ON by default -> Remove dicomWidget.detailsPopup.advancedViewButton.setChecked(True) calls from python tests
- 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
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
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
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
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:
- setting a SortingValue for the hierarchy nodes
- setting increasing numbers in an item role that I set as sortRole for the model
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
- Only appears for contour sets, and only if the contour set has a volume parent
- Creates a contour similarly to how it is done in the existing feature
- Assigns it the parent volume as reference volume
- Creates an empty labelmap based on the reference volume
- 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.
- Use a vtkMRMLSegmentationNode instead a hierarchy of model nodes. This step is debated. On one hand it may offer easier implementation, on the other hand isodose surfaces are not segmentations, so logically don’t belong in one.
- Make sure the dose volume and the isodose segmentation reference each other
- When Apply is clicked, then check if an isodose set is referenced by the dose. If yes, then update it (keep the ones that did not change, remove the ones that did)
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.
- 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!
- 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.
- 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
- Use labs page
- Screenshots ** Major features ** Plugins: offered options and results
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
- Add description there
- Make sure all cases are handled well by this function
- Add RT-related cases (CT-CBCT etc.)
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
- Ideally this will allow flexible registration between sequence/images.
- output should be a sequence of transform and/or volume.
- 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.
- If oriented image data then the file should be a 4D NRRD file with dimension set as ‘segment’
- If poly data then the file should be vtkMultiBlockDataset
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:
- Associate a volume with a position N for each view independently
- Simpler pipeline management introducing PipelineItem
- Improve and simplify MRML reference system
Remarks:
- The slice widget controller has not been updated to add/remove layer
- ‘Only’ Available from either python/cpp ‘
2014-05-14, 17:54:57 - Csaba Pinter
JC: ‘ Regarding the management of contours - there are few possible approaches:
-
One volume label per contour and then blending in the slice viewer using the multi layer support: Pros: > Easy to hide/show contour and manage contour independently > Possible to have overlapping contour (lung and also tumor in the lung) Cons: > Increased memory usage. Eash contour will be associated with label map having the size of the original volume. Not aware of any ‘smart’ image container allowing to reduce the memory footprint. > When drawing a contour, will have to teach the brush to also delete on other label map > Volume rendering do not support multiple label map
-
One volume label for all contours: Pros: > Lower memory footprint > Already supported by current infrastructure > Easy to ensure there is no ‘overlapping’ contour > Volume rendering will render all contours (all labels within one label volume) Cons: > Hard to show/hide all contour at once. Threshold could be used. ‘
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:
- Contour labelmaps still cannot be displayed in 2D views
- To make them work, the steps described below would be necessary (by Adam)
- There is no good and easy workaround either, so for the time being we allow easy creation of labelmeps from contours so that users can display them as volumes until segmentation node is done and integrated
’ 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
- can this be done without identifying what type of node is present? I think so vtkMRMLSliceLayerLogic contains most direct links to vtkMRMLVolumeNode direct access
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:
- The problem is caused by the faulty nodeIndex method in subject hierarchy scene model
- qMRMLSceneSubjectHierarchyModel::nodeIndex should be implemented so that it returns a good index regardless filtering (as though there was no proxy filter)
- Unit test has to be written that tests these cases ** Simple way to reproduce each issue is needed ** Use same PopulateScene method for all tests to make them test all scenarios on the same basis
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.
- No VFF but DICOM ** We could move the VFF loading UI parts to step 1 (rename it to ‘Load data’), and add role selectors for the two volumes. Thus the calibration and measured volumes could come from both DICOM and VFF ** The alternative is to have different ‘modes’ for the slicelet, but that will get messy really soon (after having to add a third mode) *** Probably on the long run if we have more ‘modes’, then we could have configuration files that the user loads up after startup, like a parameter set node that defines the inputs, axes names (see below), etc.
- Need to change the names on axes ** Optical density -> R1
- T1 map: signal intensity -> relaxation rate from multiple T2 time points ** Find out if t1 map computation is available in the 3rd party sw
- Send workflow chart to Mattea, she will mark the changes (for MR and general)
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
-
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).
-
MRI compatible workflow attached (.png); Details outlined in ‘Workflow_changedetails.txt’.
-
Set up meeting to discuss specific changes needed.
-
PLANCT is in .ini file format for pre-clinical workflow. Changes added to workflow .png file.
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).
-
MRI compatible workflow attached (.png); Details outlined in” to “* 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).
-
MRI compatible workflow attached (.png); Details outlined in”
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:
- Write adaptor C++ class, such as DirectoryListWidget in ExtensionWizard, or QTGUI\qSlicerScriptedFileDialog; use setPythonSource for the plugins
- 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
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:
- Implementation of SortingValue is not consistent. In parenting the sorting values are handled as integers that can be increased freely, and in SetIndexInParent it is handled as a floating point value ranging from 0 to 1. Also I think the implementation of the latter is faulty. Fixing this mechanism is needed before this ticket can be fully addressed.
- Tree is not updating when order is changed, module needs to be switched and back, then the change appears. I could add back force update, but it not a good solution. Triggering a call of nodeIndex and using the SortingValue API would be a good solution, but for that fixing it is necessary (see above)
- Drag&drop is not possible with the current code, as reparent only considers nodes, ont indices or positions. This is not a huge issue though, as the move up/down buttons are satisfactory.
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:
- Drag&drop in Models does not change either SortingValue or nodeIndex
- It seems to work only because the scene is never reset, and it does not work in SH because it is set to NULL on module exit and reset when re-enter
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
- CurrentNode stored in plugin handler
- Context menus (maybe just hide the select role sub-menu and only expose those of the basic actions that make sense)
- Reparenting obviously
- DICOM references (referenced nodes for all selected nodes should be highlighted)
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
- Add news about the new features to Slicer wiki
- Write emails to collaborators (Niranjan, Aman Anand, Swaroop, etc.)
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:
- 2014 Summer ** url:http://www.na-mic.org/Wiki/index.php/2014_Summer_Project_Week:Contours|NAMIC Summer 2014 Contour project ** url:http://www.na-mic.org/Wiki/index.php/2014_Project_Week_Breakout_Session:_Contours|NAMIC Summer 2014 Contours breakout session (slides, notes)
- 2015 Winter ** url:http://www.na-mic.org/Wiki/index.php/2015_Winter_Project_Week:Segmentations|NAMIC Winter 2015 Segmentations project ** url:http://www.na-mic.org/Wiki/index.php/2015_Winter_Project_Week_Segmentations_Breakout|NAMIC Winter 2015 Segmentations breakout session (slides, notes) Segmentation IOD from standard to be supported: url:http://dicom.nema.org/medical/dicom/2014a/output/pdf/part03.pdf|See C.8.20 Surface segmentation IOD from standard to be supported: url:http://dicom.nema.org/medical/dicom/2014a/output/pdf/part03.pdf|See C.8.23
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
- The plans have changed slightly
- 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:
- Load rando^prostate CT
- Load rando^prostate RTSS
- Run this: lmn=slicer.util.getNode(‘Femoral Head Lt_Labelmap’) id=lmn.GetImageData() sl=slicer.modules.segmentations.logic() nl=sl.CreateLabelmapVolumeFromOrientedImageData(id, ‘nl’)
- Select the new ‘nl’ labelmap node as labelmap, go to S: -54.5mm on the axial view to see the femur => femur head should show up in blue
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:
- 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.
- 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
- Port SlicerRt/sandbox/ContourInterpolation/src/ContoursToSurface.py to C++ and clean up
- 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)
- 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 ‘
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
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:
- DicomRtImportSelfTest
- DicomSroExport
- DvhComparison
- PlmMismatchError
- PlmRegister
- PlmVectorFieldAnalysis
- NAMIC_Tutorial_2013June_SelfTest
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.
- Summary of base classes
ScriptedLoadableModule:
• Adds
Source code of base classes: https://github.com/Slicer/Slicer/blob/master/Base/Python/slicer/ScriptedLoadableModule.py
- 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.
- Go through all use cases and fix errors
- Create list of use cases for manual and automatic tests
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
- When transforming: VTKv6\Common\ ransforms\vtkTransform.cxx:194) - InternalUpdate: doing hack to support legacy code. This is deprecated in VTK 4.2. May be removed in a future version.
- After the generic self test: VTKv6\endering\OpenGL\vtkOpenGLPolyDataMapper2D.cxx:63) - No input!
- After cloning markups node (when copying references): Slicer4\Modules\Loadable\Markups\MRMLDM\vtkMRMLMarkupsDisplayableManager3D.cxx:548) - OnMRMLMarkupsDisplayNodeModifiedEvent: no node! After some investigation none of the above seems to be attributed to subject hierarchy. There was one crash in reparenting segments, will be fixed soon.
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:
- Adding a label to Slicer scalar colorbar with the units (e.g. set on top of the bar a text with the units (Gy) )
- 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.
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
- Porting the algorithm from Python to C++
- Verification of the ported algorithm using the same datasets we used, hopefully new ones too (Jen might have some new data); Document failing scenarios, finding patterns (typical cases where it is expected to fail)
- Utilization of the new algorithm in SlicerRT; Offering the current data handling in failing cases (a button in Contours module and an action in Subject hierarchy for contours for re-creating surface model with the ribbon-labelmap-closed surface way we use now)
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
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.
- Study description
- Study instance UID
- Study date
- Series description
- Series number
- Series modality
- More tags?
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.
- 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
- 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).
- 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”>
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
- ModelMaker support is not yet implemented but would be nice to add children of the model hierarchy node under the labelmap
- 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:
- Potential nodes and transforms in subject hierarchy: http://www.na-mic.org/Bug/view.php?id=3891
- Parse local data plugin (Create hierarchy from loaded directory structure action in scene): http://www.na-mic.org/Bug/view.php?id=3892
- Volume visibility control broken: http://www.na-mic.org/Bug/view.php?id=3893
- Creating generic folders (which I can use at any level, for example to to categorize patient groups) is very difficult: creating dummy patient&study&series and then creating a subseries, and then drop it to the desired level: http://www.na-mic.org/Bug/view.php?id=3898
- Two scrollbars in tree when many nodes are loaded: http://www.na-mic.org/Bug/view.php?id=3895
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:
- It would be really complex to maintain two parallel tracks of plugins for the same engines - both of them would need to be registered but from different plugin handlers for each track, connected by qvtk events, etc.
- With the python tests, Qt-based code can be tested nearly as efficiently as VTK (especially with the main window turned off)
- Using qvtk features the same event handling can be performed as in VTK
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:
- 3 plots in the chart view if all the above volumes are present
- No line profiles are ever needed for other volumes
- Export the currently shown plot to CSV
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:
- Planned Dose
- Optical Gel Dose (after calibration of course)
- Gamma
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:
- Create a scene with sequence nodes
- Save scene
- Load scene
- Save scene
- Load scene => fails to load image data and crashes
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:
- 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)
- 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
- 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:
- Consensus: Instance UIDs always present, we should not rely on the Series UID (= ignore it) ** Steve: In some cases we don’t have the whole series, only a list of instances
- Possible ways of keeping references: ** Naming convention: ‘-label’ (Steve) ** MRML node references *** Problem with the above ones if that if you don’t load them then you load the connection, whereas if you use the UID itself then it’s persistent (Csaba) ** Create DICOM UIDs (hash) for every new object, in its own subclass (Steve) (‘DICOM’ifying MRML’, will be the way in the longer term) ** Custom DB or any kind of table containing the references (UID to UID(s)) ** Dummy SH nodes for unloaded referenced objects (old way of RT import)
- Andriy use case: Reporting, add associated MRML ID in the MRML node (MRML to MRML references, see above * Csaba)
- Steve: Best would be just to use the DICOM DB (involves reading files from disk * Csaba) ** If we just have an MRB then we cannot use the DICOM DB, but we’d like to support references; This could be a known limitation
- Use TagCache to get the references?
- Potential implementations ** Reach back to the DB to check for references (unexplored) ** Store the referenced instance UIDs found in loadables and use those in SH for highlighting and on-demand loading *
- Decision: Due to the fact that we are still stuck with MRML and we need to support certain use cases, we’ll implement the most pain-free and guaranteed solution (*) ** In longer term it will be great if we don’t have this barrier between DICOM and MRML, database and files and memory
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:
- Consensus: Instance UIDs always present, we should not rely on the Series UID (= ignore it)
- Steve: In some cases we don’t have the whole series, only a list of instances
- Possible ways of keeping references:
- Naming” to “My meeting minutes:
- Consensus: Instance UIDs always present, we should not rely on the Series UID (= ignore it) ** Steve: In some cases we don’t have the whole series, only a list of instances
- Possible ways of keeping references: ** Naming”
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
- Start Slicer with SlicerRT built with experimental modules
- 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”
#698 Change project icon to use OCAIRO logo instead of Sparkit logo
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:
- Change logo
- Change official extension name (just set(EXTENSION_NAME SlicerRT) to set(EXTENSION_NAME SlicerRTcore) or similar)
- More maybe? (I don’t think changing directory names or anything like that is necessary)
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.
- Need to update Plastimatch in SlicerRT and make sure gamma works
- 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):
*
-
–interp-search: It tries to find the point with minimum gamma value by using normal vector btw. two candidate points. It takes longer time, but gamma pass rates are markedly improved. Resampling dependency is also markedly reduced by using this option. We like this option. It would be interesting to try it out and see how fast it really is.
-
–analysis-threshold: it was hard=coded previously (0.1) Now, it is adjustable. If not given, 0.1(10%) will be used. This is good. Allow user to set the threshold.
-
–resample-nn: when the comparing image is resmapled wrt. the reference image, nearest neighbor will be used for interpolation. (this was previous algorithm used. w/o this option, linear interpolation will be used. Would it be messy to have some option (i.e. checkbox) that allows the user to select either nearest neighbour or linear interpolation? This gives the user the choice of interpolation based on the relative resolutions of the measured and reference data sets.
-
–local-gamma: local reference dose will be used to calculate dose differnce percent. W/o this option, global-gamma will be used. (given reference dose or maximum dose will be used to define dose difference %) This option is good and should be included as an alternative (however, default should still be GLOBAL). Reference dose input field should allow user to select either 1) Maximum dose of the entire reference dose distribution, or 2) User defined dose quantity, 3% of which will be taken as the dose criteria. The wording of all of this NEEDS to be cleaned up as it previously was a tad confusing!
-
–inherent-resample
: Before entering the gamma evaluation, super-sampling can be done using this option. It was found that it will not affect that much if the 'interp-search' option is used. _ Assuming this means that coarse measured data is re-sampled to a finer resolution?? So – if the user chooses NOT to use interp-search, then this should allow for an option that interpolates the data to the resolution of the reference distribution._ -
–output-text
: text report can be acquired. The report includes used options, voxel counts, gamma histogram, etc. _This would be a great feature! Definitely include: used options (resolutions of each of the measured and reference distributions, the dose analysis threshold, dose and distance criterias), voxel counts, gamma histogram, relevant pass rates…._ -
–compute-full-region: W/o this option, gamma values will not calculated for the dose points below the analysis threshold. In the previous version, the software computed full region by default, which took very long time in 3D gamma calculation. Like it. This would be a good option to have as a checkbox.
-
–output-failmap
: export a failmap (binary) after the gamma evaluation _So this exports an additional volume with pass/fail for each voxel? Could be a nice feature, but not crucial._
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
- Make Ricardo’s pencil beam dose computation algorithm a plugin of External Beam Planning module
- Use his experiences to improve EBP module interface
- 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:
- DicomRtImportSelfTest: Failed because of the auto subject hierarchy node creation, the RT image SH nodes were only created when launching Slicer application that had that option set (this is why it passed in that case), the test never created them
- vtkSlicerContoursModuleLogicTest_EclipseProstate: Converted labelmap is shifted in the IS direction by half voxel (it should not be, but it has been like this for a while), and for some reason the ribbon to labelmap conversion flips rasterizing into one adjacent (random) side to the other, so there is a full voxel shift in the output labelmap. This will be fixed in Segmentations, for now only the baselines were updated
- vtkSlicerDoseVolumeHistogramModuleLogicTest_EclipseProstate_Base: Contour conversion issue above, baselines ere updated
- vtkSlicerDoseComparisonModuleLogicTest_EclipseEnt: Analysis threshold actually works now (so far it didn’t), so the baseline had to be changed Commit: r:2169|slicerrt:2169
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
- Changed const std::string& arguments to simple std::string (change back if turns out that it has no effect, but it seems working better this way)
- Temporary helper class vtkSegmentationPythonWrapHelper to facilitate python usage of vtkSegmentation when wrapping is incorrect
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
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
- Common API for dose calculation engines
- Register plugins to EBP module
- Each plugin adds a tab on the UI
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:
- Drop previously computed ImageToProbe transform into Slicer.
- Drop previously recorded tracked ultrasound imaging sequence into Slicer as a sequence metafile.
- Create the following transform hierarchy:
TrackedUltrasoundSequence-ProbeToReference [time=###s]
- ImageToProbe – TrackedUltrasoundSequence-Image [time=###s]
- Open Sequence Browser module (Active browser node: TrackedUltrasoundSequence, Master node: TrackedUltrasoundSequence-Image, all nodes synchronized).
- 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:
- Speed is improved, the algorithm is now slightly faster than the planar->ribbon->labelmap->surface path. Still would be nice to further improve speed, as in the past the user did not have to wait for the whole path, only for the planar->ribbon conversion, so loading was done faster. Please spend a bit more time profiling and trying to see if there is room for making it faster.
- In terms of the ‘long concentric tubes’ scenario, which takes about 20-30 times more time than if it was a regular dataset. It is probably not possible to detect it quickly before conversion (at an assessment phase), but it might be detected while converting (like detecting that the certain control branch in the code is hit way more times than it should), the algorithm could fire an event with a message that the UI displays to the user so that they don’t think the application hang.
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:
- Copy top/bottom contour (as currently)
- Convert that one contour to binary labelmap with the reference volume geometry (or supersampled)
- 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
- 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.
- Use qMRMLSegmentsTableView for selecting and managing segments (analogous to per-structure box in Editor module)
- Initiate editing from segmentation module (Edit button) and subject hierarchy (Segment action for volumes) ** Subject hierarchy core Segment plugin to create segmentation instead of labelmap, start editing, save geometry to new segmentation #578
- Create labelmap representation and use existing Editor effects to edit it
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:
- ResampleOrientedImageToReferenceGeometry may clip the volume if we don’t expand the extent by 1.
- When painting into a segmentation that contains segments with different geometries then painting sometimes does not work (nothing appears and/or crashes) Commit: r:2737|slicerrt:2737
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.
- Fixed vtkOrientedImageDataResample::TransformExtent by extending making sure the entire voxel fits in the transformed voxel, not just the center.
- Fixed vtkOrientedImageDataResample::PadImageToContainImage to compute the containedImage’s extent in the input image extent’s frame.
- Fixed appending labelmap by keeping (or expanding) the inputImage extent (earlier it was clipped to the common extent). Also replaced vtkImageMath (a very inefficient filter) by a dedicated function for performing maximum operation in-place.
- Fixed crash in CalculateEffectiveExtentGeneric by adding image data null-pointer check.
Remaining problems:
- Paint effect cannot handle image geometry that differs from the reference image
- Draw and rectangle effects look good in the slice but drawing thickness should be retrieved from the slice’s spacing (slice viewer knows it, it may be manually set) Commit: r:2741|slicerrt:2741
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
- Added null-pointer checks to segmentation editor
- Made 2D fill semi-transparent by default
- Removed highlighting of selected segment during editing (it was not really useful but it made customization of segment display difficult, as settings were kept being overwritten) Commit: r:2780|slicerrt:2780
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
- Fixed crash due to double-delete when deleting a representation (the representation map already contained a smartpointer, which deleted the object)
- Improved PrintSelf so that NodeInfo module can print detailed information about the segment contents
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
- Fixed editing of imported segments: imported segments are added to the segmentation as they are, but when they are edited they are resampled using the reference geometry spacing, origin, direction; also, editing is fixed by always extending the edited labelmap, mask, etc. so that all the segments are covered. This extent expansion is not used when generating merged labelmap: the merged labelmap is generated using the exact reference geometry.
- Fixed storage of segments that are outside the extent of reference geometry extent (the extent is expanded to include all segments)
- Fixed oversampling factor application.
- Fixed merging of volumes with different scalar types.
- Optimized merged labelmap computation speed (implemented as a new processing mode in MergeImage method), works on any scalar type.
- Fixed copying segments when a segment with same id already exists (it happens very often, fixed by renaming segment ID to be unique in the new segmentation).
Commit: r:2922 | slicerrt:2922 |
2016-06-11, 03:08:15 - Andras Lasso
re #757: Several segmentations bugfixes
- Fixed reading and writing of segments that are outside the reference geometry extent. Kept exporting to labelmap and displayed merged labelmap generation features to use reference geometry extent for now.
- Simplified vtkSegmentation::AddEmptySegment (reduced code duplication with vtkSegmentation::AddSegment)
- Added a ‘NULL’ effect (arrow button) to deselect active effect, as it was too difficult to click the same effect to deactivate it (and based on user feedback it was not intuitive either). There were also some cases when multiple effect activation events were generated on a single click.
- Moved segmentation editor binary labelmap master representation check to the time when an effect is activated. Earlier the master representation was verified when the segmentation node was selected but users sometimes change the master representation, so a more frequent check is needed. Commit: r:2934|slicerrt:2934
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.
- Fixed vtkOrientedImageDataResample::MergeImage extent handling (custom extent can only shrink the common image extent)
- Fixed loading problem of Python editor effects. For some users file returns invalid path (only a single backslash after the user name, e.g., C:\\Users\\SomeUser\AppData\\…). Converting it to linux-style path by changing backslashes to forward slashes fixed the problem.
- Made Python editor effect loading simpler (they have to be listed in SegmentEditorEffects.init.py.in only once and if any of the effects fail to load then detailed error is logged and other effects may still be loaded.
- Changed behavior of segment editor widget so that the modifier labelmap is never automatically reset (it cause unintended side effects in plugins) but only when self.scriptedEffect.defaultModifierLabelmap() is called. The last cached modifier labelmap can be always retrieved using self.scriptedEffect.modifierLabelmap(). Commit: r:2950|slicerrt:2950
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
- After the first click on save the extension is seg.seg.nrrd ** qSlicerSaveDataDialogPrivate::populateNode re-uses the same QFileInfo instance, and it is being changed during certain function calls. this->createFileFormatsWidget(storableNode, fileInfo)) call (line 465) changes the correct extension and the createFileNameItem call a few lines below gets the corrupted one
- Rando segmentations when saved as volume lose the beginning of their file names
- .seg.nrrd is defaulted to regular volume instead of segmentation (need to select Segmentation instead of Volume to load it as segmentation)
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
- Fix failing tests due to contours to segmentation migration
- Add automatic tests for segmentations
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:
- Load TinyPatient (can be found in the data folder in the SVN)
- Choose Tumor for reference and Body for compare in Segment Comparison
- Click Compute (Hausdorff and Dice both fail)
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:
- Load RANDO Prostate dataset
- Expand Bladder by 5mm uniform in Segment Morphology
- Calculate Dice in Segment Comparison with Expanded_5_5_5_Bladder as reference and 3: RTSTRUCT: PROS / Bladder as compare I did not dig very deep, but it’s as though the resample_image function does not handle non-zer largest possible region index (makes it always 0 although it should be non-zero)
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:
-
Resolve issue of Segmentation node defined in both plan UI and Beam UI
-
Remove duplicate items that exist in both beam node and EBP node
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
- Implement vtkSegment::Apply…Transform methods
- Add deformable support in vtkSlicerSegmentationsModuleLogic::ApplyParentTransformToOrientedImageData
- Implement function that calculates the new extents based on multiple volume border points (3 subdivision on each edge) in Transforms module
- Import representation to segmentation to handle parent transforms ** Apply model’s transform on poly data and the inverse of segmentation’s transform
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.
- On multi-selection, all context menu options are disabled except for Delete. It will be needed to implement handling of ‘multi-enabled’ actions
- The selected series could be in different studies or could be outside any study. How to auto-fill the patient/study fields?
#769 Improve subject hierarchy transform handling
Issues with the current version:
- Full transform name is not visible, only the first several letters. The field width also does not increase when the module is made wider (due to Qt limitation).
- Having to double-click on the transform field in order to change the parent transform is a lot of interaction.
- Access of transform hardening is inconsistent. In Data module it is in the context menu, on SH it is in the Transforms menu (bottom of the menu after double clicking)
Proposed changes:
- Instead of the transform name, show an icon if the node is transform. There could be different icons for linear and deformable transforms.
- Open the transform menu with a single left-click on the icon. The transform menu would be the same as now. (Note: I think the user might be confused about the right-click context menu and the left-click transforms menu, but we could give a hint in a tooltip that appears for the icon or the empty transform cell)
- Add harden transform in the right-click context menu for nodes that are transformed
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:
- r24136 (STYLE: Update CTK to fix warning related to wrapping of CTKDICOM module)
- r23955 (COMP: Workaround to fix HAVE_STAT redefined warning in SlicerDICOMExportDialog)
- r23952 (COMP: Workaround to fix HAVE_STAT redefined warning in qSlicerCoreApplication)
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:
- r24136 (STYLE: Update CTK to fix warning related to wrapping of CTKDICOM module)
- r23955 (COMP: Workaround to fix HAVE_STAT redefined warning in SlicerDICOMExportDialog)
- r23952 (COMP: Workaround to fix HAVE_STAT redefined warning in qSlicerCoreApplication)
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
- Implement a convenience function for each type of labelmap extraction (used in the modules above)
- 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:
- Have a delagate that displays vtkBitArray as checkbox and vtkStringArray as simple text (could be further improved to support colors)
- When saving a vtkBitArray to file, the type should be specified as a qualifier after the column name such as ‘selected [type=bool]’ ** Further improvement later could be specifying display type as well: ‘color [type=double|display=color]’ (because double arrays can be positions etc. too)
- Observing the vtkBitArray separately is possible to change the display when the user checks a checkbox
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
- Non-planar contour ** Contains the raw contour points ** Converter is needed to closed surface
- Closed surface containing the tube model ** What should be the radius of the tube? Half of the slice thickness calculated from the planar contours from the other contained structures? Constant 1mm? -> Start with 1mm, it will be a conversion parameter
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:
- CP1. Temporarily copy parts of the computation code from DMBR to SegmentRegistration to decrease the amount of conversions and preprocessing (and have less intermediate nodes afterwards)
- CP2. Move SegmentRegistration to SlicerRT until Segmentations gets integrated into Slicer core (as it depends on Segmentations, and it will go to the core really soon)
- CP3. Make sure the Fedorov paper and all contributions are properly acknowledged throughout the code and wiki pages
- CP4. Integrate Segmentations, SegmentEditor, and SegmentRegistration into Slicer core (we are confident that it is robust and powerful enough to become the new standard for handling structures on the long term - I am aware that many people have doubts, I’ll write a technical note paper soon and try to prove its necessity more formally)
- AF5. Integrate the minimum subset of the DMBR algorithm that fully functional to BRAINS (move SegmentationSmoothing or only its ITK algorithm into BRAINS too?)
- AF6. Update the DMBR SlicerProstate module to use the BRAINS implementation (this yields a very thin module with only the UI for labelmap and volume selection, and visualizing the results)
- CP7. Update SegmentRegistration to use the BRAINS implementation (same kind of thin module with same functionality, but it would instead work with Segmentation nodes)
Additional tasks:
- Allow extraction of strictly rigid transform (currently the two output transformations are the Deformable and an Affine)
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
- Special cases for most of a structure, e.g. 90% or more keyholes or branching contours
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
- Show only selected segment, hide all others in segmentation
- Show all segments in segmentation
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
- 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
- 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
- Stray markups node outside of plan
- The RTSTRUCT isocenter parent does not have icon
- The beams group cannot be shown/hidden with the parent node
- The beam node names are meaningless (RTBeam_* instead of ‘AP PROS’ etc.)
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):
- vtkCutter on the closed surface (generates the lines correctly for 2D outline visualization)
- vtkStripper (creates loops)
- 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:
- Start Slicer
- Load Eclipse Prostate phantom from DICOM
- 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
- Interpolates contours between slices (series of 2D labelmaps -> 3D labelmap)
- Linear and higher order interpolation as well
- Arbitrary gap between the slice contours
Possible implementation is a SegmentEditor effect that has one button for performing the interpolation, and works as follows:
- Creates contours from the sparse labelmap slices
- Runs PlanarContourToClosedSurface on the contour set
- Converts surface to labelmap
- Writes labelmap back to segment
2016-04-06, 18:44:18 - Csaba Pinter
description: changed from “A feature is needed that
- …” to “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:
- Fix crash in logic, log error
- Set maximum for aperture offset in UI to follow current value of SAD
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
- Save segment as .nrrd file
- Close Slicer
- Load .nrrd file in as segment
- 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:
- Save segmentation as .nrrd file
- Close and reopen slicer, reload file as segmentation
- Load in data via DICOM (CT scan used)
- 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:
- Loading a segmentation
- Creating a binary labelmap
- Changing the 2D representation to binary labelmap
- In the slice view, change the volume to ‘None’
- The opacity should now be incorrect, regardless of the volume in the slice view.
2016-06-15, 19:51:01 - Kyle Sunderland
CommentContent: changed from “I encountered this issue and was able to reproduce this issue by:
- Loading a segmentation
- Creating a binary labelmap
- Changing the 2D representation to binary labelmap
- In the slice view, change the volume to ‘None’
- The opacity should now be” to “I encountered this issue and was able to reproduce it by:
- Loading a segmentation
- Creating a binary labelmap
- Changing the 2D representation to binary labelmap
- In the slice view, change the volume to ‘None’
- The opacity should now be incorrect,”
2016-06-15, 19:57:06 - Csaba Pinter
Thanks, Kyle! I reopened the ticket. Some questions:
- Loading what segmentation? That you saved after editing? What is the master of the segmentation you load?
- 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
- No, I just loaded TinyPatient from Dicom. Master was contours.
- 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:
- Opacity values in the segmentation displayable manager are right
- Setting the displayed volume in the slice view to None somehow breaks opacity handling in that particular slice view (if I set it to None in only one, then only in that one slice view will the segmentation obscure the volume completely)
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:
- The resulting NRRD files can be loaded as labelmaps individually if needed
- vtm can be the file extension for segmentations in Slicer, and we could get rid of the extension problems too (#758)
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
- 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).
- 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:
- Making DICOM export more accessible. Right now it is kind of obscure, because you can reach it from DICOM browser by clicking the Export button, and from Subject hierarchy by right-clicking the series or study to export. Maybe adding a fourth button on the Save/Load toolbar for DICOM export would make sense (in that case Subject hierarchy would need to be enabled and the MRML scene parsed when clicking that, because right now unless the user clicks ‘Yes to all’ when first visiting Subject hierarchy, the SH nodes are not created)
- Integration of DICOM SEG import/export to core
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 Winter Project Week project: http://www.na-mic.org/Wiki/index.php/2016_Winter_Project_Week/Projects/SlicerTerminologyEditor
- 2016 Summer Project Week project: http://www.na-mic.org/Wiki/index.php/2016_Summer_Project_Week/Segmentation_Editor_and_Terminology
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:
- Make the display widget re-usable
- Move the Views, Slice intersection thickness, and Representation options to an Advanced groupbox, collapsed by default
- Instead of the overall visibility and opacity, we’d have two columns, one for Slice and the other for 3D. In Slice, there would be visibility and opacity for fill and outline, and one visibility and opacity each in the 3D column. The overall opacity is not necessary, but the overall visibility is.
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
- Default beam model should be divergent geometry
- Non-functioning beam models (cartesian, Hong) should be removed
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:
- Write automatic test for Room’s Eye View to make sure that the next steps do not change the otherwise correct behavior. Test should tweak the geometric parameters for the linac parts, and verify that the resulting bounding boxes of the models have not changed
- Review and fix vtkSlicerIECTransformLogic::CoordinateSystemIdentifier enum, as most items in there (all except for FixedReference) are transform names instead of coordinate frame names
- Complete overhaul of vtkSlicerIECTransformLogic::GetTransformBetween. It is entirely hard-coded, and slow
- Once these changes were made so that Room’s Eye View still functions correctly, test the beam transformation again
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
- Gantry rotation from Beams module is fixed by applying the 90 degrees rotation that goes from RAS to FixedReference. Note: This should be a new transform in the logic, as the whole linac needs to be transformed using this as well
- Duplication of definition of transform names removed by declaring static member variables for that in IEC logic and using them from REV logic
- Removed unnecessary error messages (setting NULL beam node is completely valid)
- Fixed typo in include directory variable name, which resulted in not being able to include IEC logic from REV logic
- Renamed CollimatorRotated coordinate system to Collimator. Reasons and concerns (also see TODOs added in the code):
It makes sense that there is a GantryToFixedReferenceTransform that goes from FixedReference to Gantry. Then there is CollimatorToGantryTransform, that goes from Gantry to Collimator. So far so good. Then the problems start:
- The Collimator coordinate frame was called CollimatorRotated. (this has been renamed to Collimator, that’s how it makes sense, because one cannot go to a coordinate frame that does not exist, i.e. Collimator) There are two more transforms, called CollimatorToFixedReferenceIsocenterTransform, and FixedReferenceIsocenterToCollimatorRotatedTransform. If the rename from (1) is applied, then they are called CollimatorToFixedReferenceIsocenterTransform and FixedReferenceIsocenterToCollimatorTransform. The problems here are
- What is FixedReferenceIsocenter? It’s not in the coordinate system list. What do we use it for?
- In the transform chain there is CollimatorToGantryTransform, under that FixedReferenceIsocenterToCollimatorTransform, under that CollimatorToFixedReferenceIsocenterTransform. So this chain goes from Gantry -> Collimator -> FixedReferenceIsocenter -> Collimator. This problem has been also explained in the code in: vtkSlicerIECTransformLogic::FIXEDREFERENCEISOCENTER_TO_COLLIMATORROTATED_TRANSFORM_NODE_NAME vtkSlicerIECTransformLogic::GetTransformBetween (fromFrame == Collimator && toFrame == FixedReference) vtkSlicerRoomsEyeViewModuleLogic::UpdateCollimatorToFixedReferenceIsocenterTransform
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?
- 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
- 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
- After landmark registration of PlanCT to OBI, the structures were not transformed
- Visibility settings of volumes, fiducials were not optimal for each step
- Disabled slice fill visibility for the structures for better visibility of dose Commit: r:3148|slicerrt:3148
#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
- Removing unstable scene VTK collection iterator usage
- 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:
- Calling the DICOMPlugin.py implementation (addSeriesInSubjectHierarchy): Errors when including PythonQt.h (problems with typedefs and macros)
- Create C++ function in a logic class and call it both from vtkSlicerDicomRtImportExportModuleLogic and DICOMPlugin.py (possible fix in the future) Note that addSeriesInSubjectHierarchy cannot be added in DicomRtImportExportPlugin.py, because inserting into the hierarchy in most cases happens in the middle of processing, as adding RT-specific tags and such needs to be done afterwards Commit: r:3198|slicerrt:3198
#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:
- Beam groups: plan contains one or more beam groups, a beam group contains one or more beams
- Properties defined for each beam group, which the contained beams share ** Plugin dose engine ** Isocenter ** Target segment ** Isocenter specification
- Rethink beam cloning
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