def _order_wsi_level_map()

in ez_wsi_dicomweb/slide_level_map.py [0:0]


def _order_wsi_level_map(levels: Mapping[Any, Level]) -> Mapping[int, Level]:
  """Level map sorted levels based on level index instance frame offset."""
  # Sort levels based on level index.
  sorted_levels = collections.OrderedDict()
  levels_sorted_by_pixel_area = sorted(
      [(level, level.height * level.width) for level in levels.values()],
      key=lambda x: x[1],
      reverse=True,
  )
  for index, sorted_level in enumerate(levels_sorted_by_pixel_area):
    level, _ = sorted_level
    # Sort instances in each level based on frame_offset
    level = dataclasses.replace(level, level_index=index + 1)
    instances = level.instances
    sorted_instances = collections.OrderedDict()
    instance_offsets = sorted(list(instances.keys()))
    for frame_offset in instance_offsets:
      sorted_instances[frame_offset] = instances[frame_offset]
    frame_number_min = instance_offsets[0] + 1
    max_frame_offset = instance_offsets[-1]
    frame_number_max = (
        max_frame_offset + sorted_instances[max_frame_offset].frame_count
    )
    sorted_levels[level.level_index] = dataclasses.replace(
        level,
        frame_number_max=frame_number_max,
        frame_number_min=frame_number_min,
        instances=sorted_instances,
    )

  return sorted_levels