How to properly create a volumeNode after registration using SITK ?

The question is basic, but I don’t know what is failing.
Here is the code :

resampled = sitk.Resample(moving_image, fixed_image, final_transform, sitk.sitkLinear, 0.0, moving_image.GetPixelID())
volume = self.sitk_to_vtk(resampled)
self.transfer_volume_metadate(volume, volume)
self.add_volume(volume)

    def transfer_volume_metadate(self, original_volume, moved_volume) -> None:
        spacing =  original_volume.GetSpacing()
        origin =  original_volume.GetOrigin()
        ijk_to_ras_direction_matrix = vtk.vtkMatrix4x4()
        original_volume.GetIJKToRASDirectionMatrix(ijk_to_ras_direction_matrix)

        # Apply the metadata to the target volume.
        moved_volume.SetSpacing(spacing)
        moved_volume.SetOrigin(origin)
        moved_volume.SetIJKToRASDirectionMatrix(ijk_to_ras_direction_matrix)

    def add_volume(self, volume) -> None:
        volume.SetName(self.volume_name_edit.text)
        mrmlScene.AddNode(volume)
        slicer.util.setSliceViewerLayers(volume, fit=True)

Here is what I obtain with those parameters :


The stopping condition is :

Optimizer stop condition: GradientDescentOptimizerv4Template: Convergence checker passed at iteration 38.
 Iteration: 38
 Metric value: -0.40111932866211414

If I change in the function transfer_metadata the first parameter by fixedImageData, I obtain something more coherent


Optimizer stop condition: GradientDescentOptimizerv4Template: Convergence checker passed at iteration 72.
 Iteration: 72
 Metric value: -0.40737172935316895

Well, I don’t know which one is the correct way to construct the final registered volume, and from the registration something is happening, it stops before 100 steps.
Any kind heart to help me with this ?