docs: def dcminfo(dcmvar, verbose=True):
      ''' Get basic info about the DICOM file/header.
      '''
  
      if isinstance(dcmvar, basestring):
          if verbose:
              print 'i> provided DICOM file:', dcmvar
          dhdr = dcm.dcmread(dcmvar)
      elif isinstance(dcmvar, dict):
          dhdr = dcmvar
      elif isinstance(dcmvar, dcm.dataset.FileDataset):
          dhdr = dcmvar
  
      dtype   = dhdr[0x08, 0x08].value
      if verbose:
          print '   Image Type:', dtype
  
      #-------------------------------------------
      #> scanner ID
      scanner_vendor = 'unknown'
      if [0x008, 0x070] in dhdr:
          scanner_vendor = dhdr[0x008, 0x070].value
  
      scanner_model = 'unknown'
      if [0x008, 0x1090] in dhdr:
          scanner_model = dhdr[0x008, 0x1090].value
  
      scanner_id = 'other'
      if any(s in scanner_model for s in ['mMR', 'Biograph']) and 'siemens' in scanner_vendor.lower():
          scanner_id = 'mmr'
      #-------------------------------------------
  
      #> CSA type (mMR)
      csatype = ''
      if [0x29, 0x1108] in dhdr:
          csatype = dhdr[0x29, 0x1108].value
          if verbose:
              print '   CSA Data Type:', csatype
  
      #> DICOM comment or on MR parameters
      cmmnt   = ''
      if [0x20, 0x4000] in dhdr:
          cmmnt = dhdr[0x0020, 0x4000].value
          if verbose:
              print '   Comments:', cmmnt
  
      #> MR parameters (echo time, etc) 
      TR = 0
      TE = 0
      if [0x18, 0x80] in dhdr:
          TR = float(dhdr[0x18, 0x80].value)
          if verbose: print '   TR:', TR
      if [0x18, 0x81] in dhdr:
          TE = float(dhdr[0x18, 0x81].value)
          if verbose: print '   TE:', TE
  
  
      #> check if it is norm file
      if any('PET_NORM' in s for s in dtype) or cmmnt=='PET Normalization data' or csatype=='MRPETNORM':
          out = ['raw', 'norm', scanner_id]
  
      elif any('PET_LISTMODE' in s for s in dtype) or cmmnt=='Listmode' or csatype=='MRPETLM_LARGE':
          out = ['raw', 'list', scanner_id]
  
      elif any('MRPET_UMAP3D' in s for s in dtype) or cmmnt=='MR based umap':
          out = ['raw', 'mumap', 'ute', 'mr', scanner_id]
  
      elif TR>400 and TR<2500 and TE<20:
          out = ['mr', 't1', scanner_id]
  
      elif TR>2500 and TE>50:
          out = ['mr', 't2', scanner_id]
  
      #> UTE's two sequences: UTE2
      elif TR<50 and TE<20 and TE>1:
          out = ['mr', 'ute', 'ute2', scanner_id]
  
      #> UTE1
      elif TR<50 and TE<20 and TE<0.1 and TR>0 and TE>0:
          out = ['mr', 'ute', 'ute1', scanner_id]
  
      #> physio data
      elif 'PET_PHYSIO' in dtype or 'physio' in cmmnt.lower():
          out = ['raw', 'physio', scanner_id]
  
      else:
          out = ['unknown', cmmnt]
  
      return out