code: def pre_process(self, request, datastore: Datastore):
      self.cleanup(request)
  
      cache_dir = os.path.join(self.get_cache_dir(request), "train_ds")
      source = request.get("dataset_source")
      max_region = request.get("dataset_max_region", (10240, 10240))
      max_region = (
          (max_region, max_region)
          if isinstance(max_region, int)
          else max_region[:2]
      )
  
      return split_dataset(
          datastore=datastore,
          cache_dir=cache_dir,
          source=source,
          groups=self._labels,
          tile_size=self.tile_size,
          max_region=max_region,
          limit=request.get("dataset_limit", 0),
          randomize=request.get("dataset_randomize", True),
          crop_size=self.patch_size,
      )
  
imports: import logging
  import os
  import numpy
  import torch
  from ignite.metrics import Accuracy
  from lib.handlers import TensorBoardImageHandler
  from lib.utils import split_dataset
  from monai.handlers import from_engine
  from monai.inferers import SimpleInferer
  from monai.losses import DiceCELoss
  from monai.transforms import Activationsd, AsDiscreted, EnsureChannelFirstd, EnsureTyped, LoadImaged, RandFlipd, RandRotate90d, RandTorchVisiond, ScaleIntensityRangeD, ScaleIntensityRanged
  from monailabel.interfaces.datastore import Datastore
  from monailabel.tasks.train.basic_train import BasicTrainTask, Context
label_desc: Use image node_id 5 for calling the SegmentationNuclei obj's underlying member method code with example usage: obj.pre_process(request, datastore) and returns: split_dataset