code: def load(self, data):
      d = dict(data)
  
      hash_key_prefix = md5_digest(
          "".join([d[k] for k in self.hash_key])
      )
  
      # full dictionary
      if not self.keys:
          return self._load(f"{hash_key_prefix}")
  
      # set of keys
      for key in self.keys:
          d[key] = self._load(f"{hash_key_prefix}_{key}")
          if d[key] is None:
              logger.info(
                  f"Ignore; Failed to load {key} from Cache; memory:{self.in_memory}"
              )
              return None
  
          # For Invert Transform (reset id)
          if self.reset_applied_operations_id and isinstance(
              d[key], MetaTensor
          ):
              for o in d[key].applied_operations:
                  o["id"] = "none"
      return d
  
imports: import copy
  import logging
  import os
  import pathlib
  from typing import Hashable, Sequence, Tuple, Union
  import torch
  from expiring_dict import ExpiringDict
  from monai.config import KeysCollection
  from monai.data import MetaTensor
  from monai.transforms import Transform
  from monai.utils import ensure_tuple
  from monailabel.utils.others.generic import md5_digest
  from monailabel.utils.sessions import Sessions
label_desc: Use image node_id 3 for calling the CacheTransformDatad obj's underlying member method code with example usage: obj.load(data) and returns: d, self, None