def METHOD_NAME(
    grouped_fields: Dict[str, list], submission: "Submission", register
) -> Dict[str, Dict[str, Any]]:
    from openforms.logging import (  # local import to prevent AppRegistryNotReady
        logevent,
    )
    @elasticapm.capture_span(span_type="app.prefill")
    def invoke_plugin(
        item: tuple[str, str, list[str]]
    ) -> tuple[str, str, dict[str, Any]]:
        plugin_id, identifier_role, fields = item
        plugin = register[plugin_id]
        if not plugin.is_enabled:
            raise PluginNotEnabled()
        try:
            values = plugin.get_prefill_values(submission, fields, identifier_role)
        except Exception as e:
            logger.exception(f"exception in prefill plugin '{plugin_id}'")
            logevent.prefill_retrieve_failure(submission, plugin, e)
            values = {}
        else:
            if values:
                logevent.prefill_retrieve_success(submission, plugin, fields)
            else:
                logevent.prefill_retrieve_empty(submission, plugin, fields)
        return plugin_id, identifier_role, values
    invoke_plugin_args = []
    for plugin_id, field_groups in grouped_fields.items():
        for identifier_role, fields in field_groups.items():
            invoke_plugin_args.append((plugin_id, identifier_role, fields))
    with parallel() as executor:
        results = executor.map(invoke_plugin, invoke_plugin_args)
    collected_results = {}
    for plugin_id, identifier_role, values_dict in list(results):
        assign(
            collected_results,
            Path(plugin_id, identifier_role),
            values_dict,
            missing=dict,
        )
    return collected_results