Reporting actual versions of packages defined in a runlist

Looking for pointers on how to think about this use case.

I want to discover what versions of the software packages specified in
runlist recipes are actually on the nodes.

My first thought was to access this information using a report handler, but
although the package provider identifies the candidate/installed version
and prints it out during the chef-client run, it doesnt seem to store it
anywhere that the report handler could use.

My second thought was to use Ohai. I know there are Ohai plugins that will
report the status of all installed packages. But how could I tie that to
which are the results of resources in the recipes?

Has anyone done something similar to this?

Thanks,
Christine Draper