class_docstr: Wrapper for Enhanced MR Storage SOP Class
  
  Tested with Philips' Enhanced DICOM implementation.
  
  The specification for the Enhanced MR image IOP / SOP began life as `DICOM
  supplement 49 <ftp://medical.nema.org/medical/dicom/final/sup49_ft.pdf>`_,
  but as of 2016 it is part of the standard. In particular see:
  
  * `A.36 Enhanced MR Information Object Definitions
    <http://dicom.nema.org/medical/dicom/current/output/pdf/part03.pdf#sect_A.36>`_;
  * `C.7.6.16 Multi-Frame Functional Groups Module
    <http://dicom.nema.org/medical/dicom/current/output/pdf/part03.pdf#sect_C.7.6.16>`_;
  * `C.7.6.17 Multi-Frame Dimension Module
    <http://dicom.nema.org/medical/dicom/current/output/pdf/part03.pdf#sect_C.7.6.17>`_.
  
  Attributes
  ----------
  is_multiframe : boolean
      Identifies `dcmdata` as multi-frame
  frames : sequence
      A sequence of ``dicom.dataset.Dataset`` objects populated by the
      ``dicom.dataset.Dataset.PerFrameFunctionalGroupsSequence`` attribute
  shared : object
      The first (and only) ``dicom.dataset.Dataset`` object from a
      ``dicom.dataset.Dataset.SharedFunctionalgroupSequence``.
  
  Methods
  -------
  image_shape(self)
  image_orient_patient(self)
  voxel_sizes(self)
  image_position(self)
  series_signature(self)
  get_data(self)
docstr: Initializes MultiframeWrapper
  
  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: ["Initializes","MultiframeWrapper","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):
      """Initializes MultiframeWrapper
  
      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.
      """
      Wrapper.__init__(self, dcm_data)
      self.dcm_data = dcm_data
      self.frames = dcm_data.get("PerFrameFunctionalGroupsSequence")
      try:
          self.frames[0]
      except TypeError:
          raise WrapperError(
              "PerFrameFunctionalGroupsSequence is empty."
          )
      try:
          self.shared = dcm_data.get("SharedFunctionalGroupsSequence")[
              0
          ]
      except TypeError:
          raise WrapperError("SharedFunctionalGroupsSequence is empty.")
      self._shape = None
  
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 MultiframeWrapper object from inherited base classes: Wrapper with example: obj = MultiframeWrapper(dcm_data)