docs: def get_volume_pixeldata(sorted_slices):
      """
      the slice and intercept calculation can cause the slices to have different dtypes
      we should get the correct dtype that can cover all of them
      
      :type sorted_slices: list of slices
      :param sorted_slices: sliced sored in the correct order to create volume
      """
      slices = []
      combined_dtype = None
      for slice_ in sorted_slices:
          slice_data = _get_slice_pixeldata(slice_)
          slice_data = slice_data[numpy.newaxis, :, :]
          slices.append(slice_data)
          if combined_dtype is None:
              combined_dtype = slice_data.dtype
          else:
              combined_dtype = numpy.promote_types(combined_dtype, slice_data.dtype)
  
      # create the new volume with with the correct data
      vol = numpy.concatenate(slices, axis=0)
  
      # Done
      vol = numpy.transpose(vol, (2, 1, 0))
      return vol