I implemented the backend for a few early health exchanges (BHIX, NMHIC, NYCLIX, etc). Things change, my observations are a few years old, so YMMV.
#1 - Players are loathe to share their data. Much integration is now occurring because of consolidation, vs interchange.
#2 - Patient privacy can only be protected one of three ways.
a) globally unique identifiers which are then used to hash / encryption the data (translucent database style).
b) centralized storage, ala thumb drive or dropbox.
c) better laws with real teeth.
I don't see a, b, or c on the horizon.
People freaked over RealID. Medicare for All isn't in the cards yet. So no GUIDs.
Centralized storage ala UK's NIH is contingent on single payer, aka Medicare for All. Not in the cards at this time.
As for privacy protections in the law with some real enforcement, well, that'd require consensus that our government should protect the rights of humans.
#3 - I worked very hard on ETL (extract transform load), atomizing HL7 into RDBMS and then back out again. Here's a free idea:
Don't bother. Just log the incoming HL7 (2.x, 3.x, misc other formats like CCA). Then index it with Lucene or equiv. Finally, map/reduce it to process queries.
I was very proud of our backend datastore. I could go on and on about auditing, making various queries performant, modeling, etc. Alas, every player wants to see their data their way, and canonical strategies just aren't feasible across multiple customers.