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
)