View Issue Details

IDProjectCategoryView StatusLast Update
0003598Slicer4Module DICOMpublic2014-05-26 09:08
ReporteralexyAssigned Topieper 
PrioritynormalSeverityminorReproducibilityhave not tried
Status assignedResolutionopen 
Product VersionSlicer 4.3.1-2 
Target VersionFixed in Version 
Summary0003598: DICOM reader fro Grid Transofrms needs to create a hierarchy of Transform nodes, including pre and post transforms
Description

Currently DICOM pre and post Grid transforms are ignored.

TagsNo tags attached.

Activities

wangk

wangk

2014-02-25 06:15

developer   ~0010630

I have already created a dicom reader plugin in SlicerRT extension to load the Dicom SRO including the deformable SRO. it creates the pre, post and grid transform nodes and it is relatively easy to put them in a hierachy. what is missing is the orientation information for the grid transform.

should we close this ticket?

pieper

pieper

2014-02-25 11:55

administrator   ~0010638

Hi Kevin -

Do you think that plugin could be migrated to the trunk? For the qiicr project we are moving slicer toward more native support of things like SRO.

-Steve

wangk

wangk

2014-02-26 05:26

developer   ~0010642

Hi Steve,

Yes, it would be nice that Slicer can support SRO natively. right now I only tested the plugin with rigid registration. I am working on deformable SRO and once Alex adds the support for orientation information in grid transform node, I can test the deformable SRO import. I have not worked on the spatial fiducial registration object so far as I do not have any example data.

what is the proper way to migrate it into slicer trunk? should I create a git branch and submit a pull request?

Thnaks,

Kevin

pieper

pieper

2014-02-26 05:33

administrator   ~0010644

Yes, exactly - if you put the pull request through github we can review it and commit it to svn with the --add-author-from flag so that your commit history is credited to you (and it will show up correctly when the slicer trunk migrates to native git).

lassoan

lassoan

2014-05-14 12:25

developer   ~0011854

Pull request sent that implements oriented grid transforms:
https://github.com/Slicer/Slicer/pull/132

All the other transforms should be possible to set by either appending linear transform nodes before/after the grid transform, or changing the grid origin, direction, spacing, and displacement vectors in the grid transform.

lassoan

lassoan

2014-05-16 13:21

developer   ~0011879

Oriented grid transform support merged into trunk:
http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=23185

alexy

alexy

2014-05-16 14:15

developer   ~0011881

Steve and Kevin, does the solution satisfy your requirements?

pieper

pieper

2014-05-16 14:17

administrator   ~0011882

I haven't tried, but I'll trust it if someone else has time to verify and close the bug.

lassoan

lassoan

2014-05-16 14:22

developer   ~0011883

I've talked to Kevin this week and he said that this should be enough for him. I think we can close this feature request and reopen if it turns out that we missed something.

wangk

wangk

2014-05-20 05:41

developer   ~0011911

I will take a look at it this week and report back to you guys. Once it is verfied I will proceed to create a branch for DICOM-SRO import plugin and you guys can review it.

Thanks,

Kevin

wangk

wangk

2014-05-26 06:43

developer   ~0011952

I have checked the oriented grid transform code and it works properly for dicom deformable SRO import. However, we may still need a few utility functions such as getting ijk2ras transform or converting ijk2ras transform to origin, spacing and orientation etc. If you guys think it is not relevant, then we can close the ticket. I will create another ticket to track the development of dicom SRO import plugin.

Thanks.
-Kevin

lassoan

lassoan

2014-05-26 06:56

developer   ~0011953

Utility functions are already available in vtkMRMLVolumeNode (you can just set the origin, spacing, orientation and get the IJK to RAS transform or vice versa), so I don't think we should add it to the transform logic.

Kevin, please create the new ticket and then we will close this one.

wangk

wangk

2014-05-26 07:11

developer   ~0011954

I see. I know there is code in vtkMRMLVolumeNode for that, it just feels not so clean to use vtkMRMLVolumeNode methods for vtkMRMLOrientedGridTransform. Anyway, I will create a new ticket.

thanks,
-Kevin

lassoan

lassoan

2014-05-26 09:08

developer   ~0011956

If you work with volumes then there is nothing wrong with using volume node. Anyway, the computations are trivial and only a few lines of code so you can just do it in your importer module.

Issue History

Date Modified Username Field Change
2014-02-25 05:50 alexy New Issue
2014-02-25 05:50 alexy Status new => assigned
2014-02-25 05:50 alexy Assigned To => pieper
2014-02-25 06:15 wangk Note Added: 0010630
2014-02-25 11:55 pieper Note Added: 0010638
2014-02-26 05:26 wangk Note Added: 0010642
2014-02-26 05:33 pieper Note Added: 0010644
2014-05-14 12:25 lassoan Note Added: 0011854
2014-05-16 13:21 lassoan Note Added: 0011879
2014-05-16 14:15 alexy Note Added: 0011881
2014-05-16 14:17 pieper Note Added: 0011882
2014-05-16 14:22 lassoan Note Added: 0011883
2014-05-20 05:41 wangk Note Added: 0011911
2014-05-26 06:43 wangk Note Added: 0011952
2014-05-26 06:56 lassoan Note Added: 0011953
2014-05-26 07:11 wangk Note Added: 0011954
2014-05-26 09:08 lassoan Note Added: 0011956