added support for multiple providers mapped by their encounter role, updated unit tests to match