def are_instances_concatenated()

in ez_wsi_dicomweb/slide_level_map.py [0:0]


  def are_instances_concatenated(self, instance_uids: List[str]) -> bool:
    """Determines whether all instances in the list are concatenated.

    Args:
      instance_uids: A list of SOP Instance UIDs to check

    Returns:
      True if the instances are concatenated or if only one or fewer instance
      uids are provided. Otherwise returns False.
    """
    instance_uids_set = set(instance_uids)
    instance_uid_to_concat_id = {}

    for level in self._level_map.values():
      for instance in level.instances.values():
        if (
            instance.dicom_object.get_value(tags.SOP_INSTANCE_UID)
            in instance_uids_set
        ):
          if not instance.dicom_object.get_value(_CONCATENATION_UID):
            return False
          instance_uid_to_concat_id[
              instance.dicom_object.get_value(tags.SOP_INSTANCE_UID)
          ] = instance.dicom_object.get_value(_CONCATENATION_UID)

    return (instance_uid_to_concat_id.keys() == instance_uids_set) and (
        len(set(instance_uid_to_concat_id.values())) == 1
    )