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