def check_summary_fields(self):
        """Returns a list of summary fields that **may** need to be updated.

        Summary fields may need to be updated whenever there have been
        modifications to the dataset's samples since the summaries were last
        generated.

        Note that inclusion in this list is only a heuristic, as any sample
        modifications may not have affected the summary's source field.

        Returns:
            list of summary field names
        """
        summary_schema = self.get_field_schema(
            flat=True, info_keys=_SUMMARY_FIELD_KEY
        )

        update_indexes = []
        samples_last_modified_at = None
        frames_last_modified_at = None
        for path, field in summary_schema.items():
            summary_info = field.info[_SUMMARY_FIELD_KEY]
            source_path = summary_info.get("path", None)
            last_modified_at = summary_info.get("last_modified_at", None)

            if source_path is None:
                continue
            elif last_modified_at is None:
                update_indexes.append(path)
            elif self._is_frame_field(source_path):
                if frames_last_modified_at is None:
                    frames_last_modified_at = self._max(
                        "frames.last_modified_at"
                    )

                if frames_last_modified_at > last_modified_at:
                    update_indexes.append(path)
            else:
                if samples_last_modified_at is None:
                    samples_last_modified_at = self._max("last_modified_at")

                if samples_last_modified_at > last_modified_at:
                    update_indexes.append(path)

        return update_indexes
Returns a list of summary fields that **may** need to be updated.

        Summary fields may need to be updated whenever there have been
        modifications to the dataset's samples since the summaries were last
        generated.

        Note that inclusion in this list is only a heuristic, as any sample
        modifications may not have affected the summary's source field.

        Returns:
            list of summary field names
        
fiftyone/core/dataset.py