docs: def get_3Ddata(self, start=0, stop=None, step=1):
          """
          Function make 3D data from dicom file slices
          """
          data3d = []
          dcmlist = self.files_in_serie
          # print('stsp ', start, stop, step)
  
          # raw_max = None
          # raw_min = None
          # slope = None
          # inter = None
  
          # get shape 2d
  
          # sometimes there is render in series
          if len(self.files_in_serie) > 1:
              data = self._read_file(dcmlist[0])
              data2d1 = data.pixel_array
              data = self._read_file(dcmlist[1])
              data2d2 = data.pixel_array
              if (data2d1.shape[0] == data2d2.shape[0]) and (data2d1.shape[1] == data2d2.shape[1]):
                  pass
              else:
                  dcmlist.pop(0)
  
          if stop is None:
              stop = len(dcmlist)
  
          # printRescaleWarning = False
          for i in xrange(start, stop, step):
              onefile = dcmlist[i]
              data = self._read_file(onefile)
              new_data2d = data.pixel_array
              # new_data2d, slope, inter = dcmtools.get_pixel_array_from_pdcm(data)
              # mport pdb; pdb.set_trace()
  
              if len(data3d) == 0:
                  shp2 = new_data2d.shape
                  data3d = np.zeros([len(dcmlist), shp2[0], shp2[1]],
                                    dtype=new_data2d.dtype)
                  slope, inter = dcmtools.get_slope_and_intercept_from_pdcm(data)
  
  
  
              # first readed slide is at the end
  
              if (data3d.shape[1] == new_data2d.shape[0]) and (data3d.shape[2] == new_data2d.shape[1]):
                  data3d[-i - 1, :, :] = new_data2d
              else:
                  msg = "Problem with shape " + \
                        "Data size: " + str(data3d.nbytes) + \
                        ', shape: ' + str(shp2) + 'x' + str(len(dcmlist)) + \
                        ' file ' + onefile
                  logger.warning(msg)
                  print(msg)
  
              logger.debug("Data size: " + str(data3d.nbytes)
                           + ', shape: ' + str(shp2) + 'x' + str(len(dcmlist))
                           + ' file ' + onefile)
          data3d = misc.use_economic_dtype(data3d, slope=slope, inter=inter)
          # if original_dtype == np.uint16 and data3d.dtype == np.int16:
          #     data3d = data3d.astype(np.int32)
              # or just force set slope=0.5, inter = 0
          # new_data2d = rescale_pixel_array(data2d, slope, inter)
          # if printRescaleWarning:
          #     print("Automatic Rescale with slope 0.5")
          #     logger.warning("Automatic Rescale with slope 0.5")
          # data3d = dcmtools.rescale_pixel_array(data3d, slope=slope, inter=inter)
  
          return data3d