Before getting to your question, note that vtk.util.numpy_support has been superseded by the vtk.numpy_interface that was developed for Paraview:
from vtk.numpy_interface import dataset_adapter
vtk_array = dataset_adapter.numpyTovtkDataArray(linear_array, "PixelData")
This interface requires you to provide a name for the VTK array, and 'PixelData' is a natural name for DICOM data. The older vtk.util.numpy_support is not scheduled for removal from VTK, but it is unlikely to receive any improvements or even basic maintenance in the future.
For the SetInputConnection() issue, you can use vtkTrivialProducer to bridge the gap:
self.image_producer = vtkTrivialProducer()
self.image_producer.SetOutput(self.image)
then
some_algorithm.SetInputConnection(self.image_producer.GetOutputPort())