code: def _login_xnat(self):
      # Get CSRF token
      url = "{}/data/JSESSION?CSRF=true".format(
          self.api_url,
      )
      csrf_response = self._request_get(url)
      if not csrf_response.ok:
          logger.error("XNAT:: Could not get XNAT CSRF token")
          raise Exception("Could not get XNAT CSRF token")
      content = csrf_response.content
      self.xnat_csrf = content.decode("utf-8").strip().split("=")[1]
  
      # Log in to XNAT
      url = f"{self.api_url}/data/JSESSION?XNAT_CSRF={self.xnat_csrf}"
      login_response = self._request_post(url)
      if not login_response.ok:
          logger.error("XNAT:: Could not log in to XNAT")
          raise Exception("Could not log in to XNAT")
  
      logger.info("XNAT:: Logged in XNAT")
  
imports: import io
  import logging
  import os
  import pathlib
  import shutil
  import time
  from typing import Any, Dict, List, Optional
  from urllib.parse import quote_plus
  from xml.etree import ElementTree
  import requests
  from requests.auth import HTTPBasicAuth
  from monailabel.datastore.utils.convert import nifti_to_dicom_seg
  from monailabel.interfaces.datastore import Datastore
  from monailabel.utils.others.generic import md5_digest
label_desc: Use image node_id 33 for calling the XNATDatastore obj's underlying member method code with example usage: obj._login_xnat() without return types