# What attributes to write from CompositeTransform Object to which DICOM tags?

**URL:** https://discourse.itk.org/t/what-attributes-to-write-from-compositetransform-object-to-which-dicom-tags/4376
**Category:** Beginner Questions
**Created:** [August 28, 2021, 6:22am UTC](https://discourse.itk.org/t/what-attributes-to-write-from-compositetransform-object-to-which-dicom-tags/4376 "2021-08-28T06:22:31Z")
**Posts on this page:** 2
**Page:** 1

<div class="post-metadata">

### Author: ![wafflesaregreat](https://discourse.itk.org/user_avatar/discourse.itk.org/wafflesaregreat/32/2252_2.png) [@wafflesaregreat](https://discourse.itk.org/u/wafflesaregreat)
#### Post date: [August 28, 2021, 6:22am UTC](https://discourse.itk.org/t/what-attributes-to-write-from-compositetransform-object-to-which-dicom-tags/4376/1 "2021-08-28T06:22:31Z")

</div>

Hi everyone, I’m just wondering what kind of information should be written to DICOM meta tags. Ideally, everything regarding the translation and rotation matrices should be written for Image Fusion/Registration purposes but I’m a little lost as to which tags are relevant to which information.

```auto
itk::simple::CompositeTransform
 CompositeTransform (0000018CF08DE930)
   RTTI typeinfo: class itk::CompositeTransform<double,3>
   Reference Count: 1
   Modified Time: 92272
   Debug: Off
   Object Name: 
   Observers: 
     none
   Transforms in queue, from begin to end:
   >>>>>>>>>
   Euler3DTransform (0000018CF0A24B80)
     RTTI typeinfo: class itk::Euler3DTransform<double>
     Reference Count: 1
     Modified Time: 92259
     Debug: Off
     Object Name: 
     Observers: 
       none
     Matrix: 
       1 0 0 
       0 1 0 
       0 0 1 
     Offset: [-6.24571, 0.00429469, -52.5]
     Center: [6.25701, 0.00700536, 1733.5]
     Translation: [-6.24571, 0.00429469, -52.5]
     Inverse: 
       1 0 0 
       0 1 0 
       0 0 1 
     Singular: 0
     Euler's angles: AngleX=0 AngleY=0 AngleZ=0
     m_ComputeZYX = 0
   >>>>>>>>>
   VersorRigid3DTransform (0000018CF0A23B00)
     RTTI typeinfo: class itk::VersorRigid3DTransform<double>
     Reference Count: 1
     Modified Time: 92268
     Debug: Off
     Object Name: 
     Observers: 
       none
     Matrix: 
       0.99841 -0.0163883 -0.0539281 
       0.017555 0.99962 0.0212323 
       0.0535596 -0.0221453 0.998319 
     Offset: [92.0196, -21.8661, 11.5732]
     Center: [6.25701, 0.00700536, 1733.5]
     Translation: [-1.47477, 15.0499, 8.99422]
     Inverse: 
       0.99841 0.017555 0.0535596 
       -0.0163883 0.99962 -0.0221453 
       -0.0539281 0.0212323 0.998319 
     Singular: 0
     Versor: [-0.0108493, -0.0268842, 0.00848972, 0.999544]
   End of MultiTransform.
<<<<<<<<<<
   TransformsToOptimizeFlags, begin() to end(): 
      0 1 
   TransformsToOptimize in queue, from begin to end:
   End of TransformsToOptimizeQueue.
<<<<<<<<<<
   End of CompositeTransform.
<<<<<<<<<<

```

Looking at the dicom website [C.20.2&nbsp;Spatial Registration Module](http://dicom.nema.org/medical/Dicom/2016b/output/chtml/part03/sect_C.20.2.html)  
I suspect that the Transformation Matrix(3006,00C6) and Type(0070,030C) are important but I’m unsure of the terminology of DICOM tags.

---

<div class="post-metadata">

### Author: ![zivy](https://discourse.itk.org/user_avatar/discourse.itk.org/zivy/32/1726_2.png) [@zivy](https://discourse.itk.org/u/zivy)
#### Post date: [August 29, 2021, 6:40pm UTC](https://discourse.itk.org/t/what-attributes-to-write-from-compositetransform-object-to-which-dicom-tags/4376/2 "2021-08-29T18:40:03Z")

</div>

Hello @wafflesaregreat,

This is likely more of a question for a DICOM forum. From the transformation information you provided you have two rigid transformations, possibly combine into one (manually) to set the minimal amount of information in the DICOM header, but I believe a sequence of matrices is also supported by the standard.

The only SimpleITK/ITK specific information you need is the structure of the transformation, as described in the [fundamental concepts](https://simpleitk.readthedocs.io/en/master/fundamentalConcepts.html#transforms), all components are accessible via `Get*` methods.
