class_docstr: Class to wrap general DICOM files
  
  Methods:
  
  * get_data()
  * get_pixel_array()
  * is_same_series(other)
  * __getitem__ : return attributes from `dcm_data`
  * get(key[, default]) - as usual given __getitem__ above
  
  Attributes and things that look like attributes:
  
  * affine : (4, 4) array
  * dcm_data : object
  * image_shape : tuple
  * image_orient_patient : (3,2) array
  * slice_normal : (3,) array
  * rotation_matrix : (3,3) array
  * voxel_sizes : tuple length 3
  * image_position : sequence length 3
  * slice_indicator : float
  * series_signature : tuple
docstr: Initialize wrapper
  
  Parameters
  ----------
  dcm_data : object
     object should allow 'get' and '__getitem__' access.  Usually this
     will be a ``dicom.dataset.Dataset`` object resulting from reading a
     DICOM file, but a dictionary should also work.
docstr_tok: ["Initialize","wrapper","Parameters","--","--","--","--","--","dcm_data",":","object","object","should","allow","'get","'","and","'__getitem__","'","access",".","Usually","this","will","be","a","``","dicom.dataset.Dataset","``","object","resulting","from","reading","a","DICOM","file",",","but","a","dictionary","should","also","work","."]
code: def __init__(self, dcm_data):
      """Initialize wrapper
  
      Parameters
      ----------
      dcm_data : object
         object should allow 'get' and '__getitem__' access.  Usually this
         will be a ``dicom.dataset.Dataset`` object resulting from reading a
         DICOM file, but a dictionary should also work.
      """
      self.dcm_data = dcm_data
  
imports: import operator
  import warnings
  import numpy
  from nibabel.optpkg import optional_package
  from ..onetime import auto_attr
  from ..openers import ImageOpener
  from .None import csareader
  from .dwiparams import B2q, nearest_pos_semi_def, q2bg
label_desc: Use image node_id 1 to create a new Wrapper object  with example: obj = Wrapper(dcm_data)