class_docstr: Evaluate with Free Response Operating Characteristic (FROC) score.
  
  Args:
      data: either the list of dictionaries containing probability maps (inference result) and
          tumor mask (ground truth), as below, or the path to a json file containing such list.
          `{
          "prob_map": "path/to/prob_map_1.npy",
          "tumor_mask": "path/to/ground_truth_1.tiff",
          "level": 6,
          "pixel_spacing": 0.243
          }`
      grow_distance: Euclidean distance (in micrometer) by which to grow the label the ground truth's tumors.
          Defaults to 75, which is the equivalent size of 5 tumor cells.
      itc_diameter: the maximum diameter of a region (in micrometer) to be considered as an isolated tumor cell.
          Defaults to 200.
      eval_thresholds: the false positive rates for calculating the average sensitivity.
          Defaults to (0.25, 0.5, 1, 2, 4, 8) which is the same as the CAMELYON 16 Challenge.
      nms_sigma: the standard deviation for gaussian filter of non-maximal suppression. Defaults to 0.0.
      nms_prob_threshold: the probability threshold of non-maximal suppression. Defaults to 0.5.
      nms_box_size: the box size (in pixel) to be removed around the pixel for non-maximal suppression.
      image_reader_name: the name of library to be used for loading whole slide imaging, either CuCIM or OpenSlide.
          Defaults to CuCIM.
  
  Note:
      For more info on `nms_*` parameters look at monai.utils.prob_nms.ProbNMS`.
docstr: Prepare the ground truth for evaluation based on the binary tumor mask
docstr_tok: ["Prepare","the","ground","truth","for","evaluation","based","on","the","binary","tumor","mask"]
code: def prepare_ground_truth(self, sample):
      """
      Prepare the ground truth for evaluation based on the binary tumor mask
  
      """
      # load binary tumor masks
      img_obj = self.image_reader.read(sample["tumor_mask"])
      tumor_mask = self.image_reader.get_data(
          img_obj, level=sample["level"]
      )[0][0]
  
      # calculate pixel spacing at the mask level
      mask_pixel_spacing = sample["pixel_spacing"] * pow(
          2, sample["level"]
      )
  
      # compute multi-instance mask from a binary mask
      grow_pixel_threshold = self.grow_distance / (
          mask_pixel_spacing * 2
      )
      tumor_mask = compute_multi_instance_mask(
          mask=tumor_mask, threshold=grow_pixel_threshold
      )
  
      # identify isolated tumor cells
      itc_threshold = (
          self.itc_diameter + self.grow_distance
      ) / mask_pixel_spacing
      itc_labels = compute_isolated_tumor_cells(
          tumor_mask=tumor_mask, threshold=itc_threshold
      )
  
      return tumor_mask, itc_labels
  
file_path: MONAI/monai/apps/pathology/metrics/lesion_froc.py
imports: from __future__ import annotations
  from typing import TYPE_CHECKING, Any, Iterable
  import numpy
  from monai.apps.pathology.utils import PathologyProbNMS, compute_isolated_tumor_cells, compute_multi_instance_mask
  from monai.config import NdarrayOrTensor
  from monai.data.wsi_reader import WSIReader
  from monai.metrics import compute_fp_tp_probs, compute_froc_curve_data, compute_froc_score
  from monai.utils import min_version, optional_import
label_desc: Use image node_id 3 for calling the LesionFROC obj's underlying member method code with example usage: obj.prepare_ground_truth(sample) and returns: tumor_mask,  itc_labels