code: def get_ids(search_term, **kwargs):
      use_text_word = kwargs.pop('use_text_word', True)
      if use_text_word:
          search_term += '[tw]'
      params = {'term': search_term,
                'retmax': 100000,
                'retstart': 0,
                'db': 'pubmed',
                'sort': 'pub+date'}
      params.update(kwargs)
      tree = send_request(pubmed_search, params)
      if tree is None:
          return []
      if tree.find('ERROR') is not None:
          logger.error(tree.find('ERROR').text)
          return []
      if tree.find('ErrorList') is not None:
          for err in tree.find('ErrorList').getchildren():
              logger.error('Error - %s: %s' % (err.tag, err.text))
          return []
      count = int(tree.find('Count').text)
      id_terms = tree.findall('IdList/Id')
      if id_terms is None:
          return []
      ids = [idt.text for idt in id_terms]
      if count != len(ids):
          logger.warning('Not all ids were retrieved for search %s;\n'
                         'limited at %d.' % (search_term, params['retmax']))
      return ids