Open Standards and Protocols are what this space needs, along with regulations requiring vendors to allow interoperability for free or a nominal fee.
Open Source software, on the other hand, won't really solve any problems. Someone has to write the software and vet it. EHR software isn't an itch people typically want to scratch. Of course, an EHR platform could leverage Open Source software for development. A Web-based EHR could use an entire Open Source stack and even contribute libraries for protocol support.
Open Source is great for infrastructure components, not so great for user-facing applications. At some level in the stack, someone needs to do the UX work, testing, and validation to create an application people can actually use.
I would never advocate for a fully Open Source solution for EHRs or any other complex, user-facing software, but I would put incentives in place to leverage as much Open Source in the stack as possible. Plus, any company that does that right will have much cheaper dev costs and will be able to undercut the competition a bit (though for supported software, dev costs are usually only 10-20% of the costs, with support, marketing, sales, etc taking up the bulk of the costs).
-Chris