see if this is a magic item id (i.e. questionId).
        If so, grab the item and set the params.
        If not, just pass through to the original Mongo ItemLookupSession
        :param item_id:
        :return:

def get_item(self, item_id):
        """ see if this is a magic item id (i.e. questionId).
        If so, grab the item and set the params.
        If not, just pass through to the original Mongo ItemLookupSession
        :param item_id:
        :return:
        """
        authority = item_id.authority
        mgr = self._get_provider_manager('ASSESSMENT', local=True)
        if self._proxy is not None:
            ils = mgr.get_item_lookup_session(proxy=self._proxy)
        else:
            ils = mgr.get_item_lookup_session()
        ils.use_federated_bank_view()
        if authority == MAGIC_AUTHORITY:
            magic_identifier = unquote(item_id.identifier)
            params = json.loads(magic_identifier.split('?')[-1])
            orig_identifier = magic_identifier.split('?')[0]
            original_item_id = Id(
                namespace=item_id.namespace,
                authority=self._catalog.ident.authority,
                identifier=orig_identifier
            )
            orig_item = ils.get_item(original_item_id)
            orig_item.set_params(params)
            return orig_item
        else:
            return ils.get_item(item_id)