Automate Blue Button Initiative Pull Workgroup Meeting March 12, 2013 Meeting Etiquette • • • • Remember: If you are not speaking, please keep your phone on mute Do not put your phone on hold. If you need to take a call, hang up and dial in again when finished with your other call o Hold = Elevator Music = frustrated speakers and participants This meeting is being recorded o Another reason to keep your phone on mute when not speaking Use the “Chat” feature for questions, comments and items you would like the moderator or other participants to know. o Send comments to All Panelists so they can be addressed publically in the chat, or discussed in the meeting (as From S&I Framework to Participants: appropriate). Hi everyone: remember to keep your phone on mute All Panelists 2 Agenda Topic Time Allotted Welcome and Announcements 5 minutes HIMSS Summary and Recap 5 minutes Review Summary Endpoint & Search Endpoint 10 minutes Patient directed exchange vs. Patient mediated exchange (Adrian G.) 20 minutes Next Steps for ABBI Pull 5 minutes 3 HIMSS Summary and Recap • Bill Clinton & Farzad M. had a BlueButton+ mention in their keynote speeches. \o/ • Quest Diagnostics announced that they are going to adopt BlueButton+ [both Care 360 (point of care) and Gazelle (mobile app)] – THIS IS BECAUSE OF YOUR HARD WORK!!!! • Thanks to all great demonstrations at the interoperability showcase (4 kiosks, 100’s of people / traffic through the demonstrations). • BlueButton+ presentations were also conducted on the Interoperability Showcase stage (huge turnout!); leadership (Pierce G-J) also participated in a panel on consumer engagement. • Adrian G. connected with the MITRE consent team about moving BB+ into HIE. • Demonstrations of C-CDA Generation / from the data side was very good. Some were generating ~80% on the C-CDA ScoreCard. • NEW: Keith has additional POCs to add for potential data holders. • FIHR: Some discussion in HL7 booth, but not much activity at that venue. • ACTION: (ABBI Community) Let us know if you are doing follow-up blogs / etc. about HIMSS demo results and we’ll cross post / tweet Next Steps / Agendas for ABBI Pull • Feb 28 2013 Meeting – (Keith) Endpoint API Pieces [2-28-2013] – BlueButton+ for Pull Summary Discussion [2-28-2013] – Josh – quick review of demo from Push [2-28-2013] • March 12 2013 Meeting – Review Endpoint API Pieces from 2-28 – (Adrian) – Patient directed exchange vs. Patient mediated exchange – (Keith) Comments on OAuth Documentation • https://abbi-motorcycleguy.rhcloud.com/ABBI/api/doc/OAuth2-0.htm Endpoint APIs (Summary Endpoint, Search Endpoint) • Assumptions – Focus on the single patient record for view / download – BB with structured data – Format is C-CDA (C-CDA required, plus other options) – Use OAuth Workflows Summary Endpoint Discussion • Summary Endpoint • Definition: The thing that you would get to support the MU requirements for View / Download – Assumption: Document will contain MU core data, in a viewable format, in a the ‘standard’ (C-CDA) format – Question: MU specifies the content of the C-CDA in a TOC situation, that is the C-CDA represented by the summary endpoint? – Response: There is a C-CDA required to give the Pt for V/D (electronically); this doesn’t prevent providers from including all of the content from the TOC document. • “Certified systems need to be able to generate C-CDA for data portability” – Comment (Carlos): Not sure what the summary endpoint does for me? – Response: Record provides the total set of data available, so that it can be explored to find the data relative to the app / search query being used. Search Endpoint Discussion • Search Endpoint – Capability will be based on HL7 FHIR Restful Search API • Group agreed with that specification and has an action to migrate it to the API documentation that has been produced thus far and continue to work out the OAuth details. • Comment: FHIR is also currently working on those ‘better’ endpoints (e.g. query for blood pressure, HW, O2, Rx, etc. but is just a bit behind the ‘give me the whole document’ work) – Format can be specified; C-CDA should be required, but with other options (e.g. I want html, I want C-CDA, I want XML) • Question: What about Data Segmentation? • Response: Recommend looking at what UMA has done with permissions bundling re: scope + authorization. Also – segmentation is under the data holders control and up to them for how they apply their access policies and permissions. Propose: 1 – Change the role of the master patient index so that it is populated in a way that is transparent to the user (e.g. no probabilistic component) 2 – Be associated with a Direct email address (regardless of issuerer) Note: Phase 1 is live, and pure Direct. Central HIE will be available via web server. Tech: exchange creates & publishes certificates (acting as a HISP). Q: Where would the master index reside? A: Utilize infrastructure (@ State HIE) in a way that addresses privacy and does not expose them to high risk. Discussion • OAuth tokens are representations of a patients authorization (e.g. a consent) for sharing information. • Recommend moving away from policy and instead use the available OAuth 2.0 technology to express ‘patient has consented’. • BB+ Pull Scope: define the technical and content standards (in an Implementation Guide) to access and provide patient summary data. • Concern: is ability to capture patient consent and send it to a central location out of scope? Yes. • Comment: Recommend focus on how OAuth 2.0 will be implemented to support ABBI Pull. • Summary: There is interest in adding a patient component (@ State HIE), but we can address again as we move forward through the development of the IG; it is worth having the discussion down the road Discussion (cont’d) • Guidance re: OA 2.0 – work with existing systems that are implementing, etc. – What libraries are people using to implement OAuth 2.0 on the client / application side that might be worth targeting for the authorization piece? – (Josh M.) None – am building static Java apps (nothing that requires a server side library) – (Gordon R.) Using Spring Security – (Adam G.) From IOS end, H-reader (app from HIMSS) doing a similar process to what Josh described -minimal code that forms the request by hand. • ACTION: (Community) Please provide any code samples of using OAuth 2.0 [Send to jenniferbrush@esacinc.com] Next Steps / Actions • ACTION: (All) Send OAuth code samples to Jenny to share with the team (jennifer.brush@esacinc.com) • ACTION: Update Summary Document on Search / Summary Endpoint (Keith) – https://abbi-motorcycleguy.rhcloud.com/ABBI/api/doc/ • ACTION: Contact POCs from HIMSS after work group has stable API document (e.g. mid-April) • Josh’s idea re: simplifying access for Push • Adrian – on agenda for next time (March 12): Patient directed exchange vs. Patient mediated exchange • Meet up during Interoperability Showcase @ HIMSS face-to-face. • Next meeting is March 26 Meeting Reminders • Meeting Reminders – The next PULL Workgroup Meeting is Tuesday, March 26, 2013 @ 3:00 pm Eastern. – Event: Consolidated CDA telecon/presentation on April 2 @ 12:00 Eastern • Useful Links – http://wiki.siframework.org/Automate+Blue+Button+Initiative • Contact Information – Initiative Coordinator: Pierce Graham-Jones (pierce.grahamjones@hhs.gov) – Presidential Innovation Fellow: Ryan Panchadsaram (ryan.panchadsaram@hhs.gov) – Project Manager: Jennifer Brush (jennifer.brush@esacinc.com) – S&I Admin: Apurva Dharia (apurva.dharia@esacinc.com) 13 Appendix – Reference Slides from Previous Meetings • Appendix – Reference Slides from Previous Meetings Pull IG Discussion and Updates • Pull Implementation Guidance (IG) – Summary Comments • Facilitators: Josh Mandel & Adrian Gropper • (google doc) https://docs.google.com/document/d/1ZPeZfVf-qa_8CdPx2oXXCxc9jZ0NxYcdYZv3J7LSzo/edit – OAuth Workflows (Updated!) • Facilitator: Keith Boone • (embedded doc) ABBI Pull Challenge • ABBI Pull Challenge: We need dataholders to commit to being reference implementers of Pull. – Comment (Keith): Organizations are focused on meeting requirements for MU II; find it difficult to tie it to ABBI Pull, AND they need it ‘yesterday’. Makes it difficult to find organizations with the capacity to be reference implementers. – Solution: Consider additional messaging/marketing language to promote ABBI Pull as facilitating MU II (e.g. V/D/T). “5% of patients need to V/D/T their data.” – How to make Pull + Authorization ‘easy’? – Comment (Adrian): ‘Hang-out’ summary – the concerns that Keith has expressed hearing from his customers was similar to what was expressed during the meeting earlier today. They are focused on meeting increasingly difficult MU requirements and what is ONC doing to help. Recommend presenting ABBI as a way to create effective ACO’s. – Comment (Keith): ABBI Pitch from last week (as a source for language / marketing material): http://motorcycleguy.blogspot.com/2013/02/abbi-pitch.html – Challenge: Recruit and identify dataholders to participate as RI in Pull what do we tell them they need to be able to do / implement? What is the ask? • • • • • (Adrian) PPR’s ask to data holders is to put the decision of V/D/T in the hands of the physician and the patient, rather than the institution and the EHR vendor. (Josh) When we talk about data holders, we are talking about vendors [too]. Consider the hook of programmatically extracting a C-CDA from their systems. (Ryan) Some vendors have APIs that they have opened up OAuth as Pull. (Pierce) Greenway announced they have a consumer API they are providing access to. (Keith) There are more vendors that support CDA than C-CDA right now. Perhaps we can ask them to focus on CDA (now) and C-CDA in the future. Provide a patient with a way to pull their current medical summary or search for the documents they have available. (Adrian) Mass gave $1M for vendors to create the APIs into the HIE; some vendors kept their interfaces proprietary instead. Pull Implementation Guide – Outline DRAFT • Giving a patient a web address to PULL from – Unique URL for pull functionality • Authentication – Existing login credentials, using OAuth • Authorization – – – – OAuth How long do authorizations last / ability to cancel Synchronization of request / granting access What does a sample patient consent to PULL look like • API guidelines – Generalize across APIs presented to the group – Date ranges (Send me everything, send me info for last 3 years, send me only the latest, etc.) – Frequencies and triggers • Comment: potentially confusing? Our original scope statement was on-demand (~n times) – Document types • Trusting third parties with PULL access – Trust framework necessary for a dataholder to implement PULL. What are criteria for being included in trust group? How is it governed and managed? • Audit Capability (based on BB logging?) OAuth Workflows (Keith Boone) • OAuth 2.0 with ABBI – Locating Endpoints – Registering Your Application – Obtaining the Authorization Token – Obtaining an Access Token – Making ABBI Requests Comments / Feedback (Carlos Eberhardt 20130128) • 1) Are we only allowing dynamic client registration for OAuth? The doc gave me that impression. It's not used much in the wild as far as I know and is fairly complex. I realize it is an attempt to solve the many apps/many providers problem, and for that purpose is as good as anything I've come across (although I haven't looked far and wide). But, should we also consider a non-dynamic client registration and allow developers to deal with the OAuth they are used to if they choose? This might make their apps less flexible but I believe that should be the developer's choice, not someone else's. I would start with instructions on attaining keys that way, then introduce the dynamic registration. • 2) I think we should make the doc a bit friendlier. I realize it's an early draft so perhaps I'm jumping the gun on this. Getting adoption is a big goal, so making the documentation as accessible as possible should be a priority. That means no word docs, no "download and read." Here are a couple of examples of friendlier developer documentation. – http://developer.github.com/v3 – https://developers.tradeking.com/documentation/getting-started – http://developer.wordnik.com/docs (not much auth-related, but a fancy UI) • I would suggest using the wiki to start the documentation rather than working in an offline doc format, just to get used to it. It's easier than trying to convert it later, in my experience. Comments / Feedback (Josh Mandel - 20130122) • I think most of Keith's proposal is spot-on and represents a tremendous effort in producing a concrete, readable document. So please forgive me for focusing on two points of dispute. But there are two key areas where I would push back (and see my inline comments for more detail): • 1. The "registrar" component is a major source of unnecessary complexity. It's a new invention that (as far as I can tell) hasn't been used in the context of OAuth registration before. (Please correct me if I'm wrong here.) And the registrar is necessarily a trusted component that talks to multiple apps, their instances, and authorization servers. At its heart, any added security offered by registrar relies on "mechanisms not described by this specification" to verify "a legitimate instance" of an application. And I have trouble seeing how this would happen in an environment with diverse apps running on multiple platforms. My recommendation is to eliminate the registrar component from ABBI's specification, and simply have each authorization server provide dynamic client registration services per IETF's draft-ietf-oauth-dyn-reg spec. • 2. I maintain that ABBI should provide first-class support for pure browser-based apps that are incapable of maintaining a secret. For such apps, security essentially comes from being hosted at pre-registered HTTPS URLs. Browser-based apps should use OAuth 2's "implicit grant" workflow to obtain tokens. For this type of app, implicit grant is not less secure than other workflows -- and to my mind (and no pun intended) it makes *explicit* the fact such apps are operating as public clients. Notes (Page 1) General Discussion • Note: Keith found out more about dynamic app registration and will be editing that section to reflect the new information. – Comments about app registration? – Assumes a collection of endpoints • WG Admin – Suggestion to move this group to Bi-weekly? (once every two weeks) – No objections. • • • • • Comment (Chris B): Would like to suggest that the group also consider Notifications (similar to comment from Push WG 1-28-2013 – will copy comment from other meeting); don’t currently have known examples. Comment (Fred): Doesn’t seem like the structured endpoints need to change; you are pushing a very small bit of content and we should have a discussion about what that content looks like, but for now it’s a small amount of data. Notification may say nothing more than a change has occurred and you might want to go pull it. Push notification would necessarily go to a server, then that server would dispatch individual push notifications to each device. Comment (Ryan): ACTION – research the equivalent somewhere. Agree that notification should be discussed and on the table. Comment (Adrian): Alternative way to look at notification (not to surprise the patient) when pull is set up and someone (provider) uses it, it would be pleasant for all of us to be notified as patients that the on-demand pull authorization has been exercised. [Similar to being told someone has changed / attempted to change your password for a given secure site? Message via email.] Notes (Page 2) OAuth Endpoints Document • • • • Notes: We’ve noticed that much of the agreement from the group is around the pattern of access. E.g. OAuth, some mechanism for apps to dynamically access, etc. Area where we are seeing less consensus is actually describing what these endpoints look like. Key question is ‘who is going to build this?’ Although we always want to find a balance between standardization and innovation, one of the ways to maximize those for this effort is to avoid being proscriptive about the endpoints, let the community experiment with the guidance, and see what comes out of the community over the next few months. Push’s success is in part because of the paradigm of assembling things off the shelf in a particular way. Pull only has OAuth on the ‘shelf’, so pointing to endpoints might be difficult. Recommend focusing on the “Pattern of Access” using OAuth and delegation. Thoughts? Recommend sending out this discussion starter in an email for discussion. Comment (Adrian): re: Endpoint discovery, I did suggest early on that we link endpoint discovery to DIRECT email addresses at the endpoint. That would in effect bring in the benefits of DIRECT (which are already being worked through on the Push side). This could be used then to boot-strap the OAuth connection. Screen mock-ups were used to demonstrate how that could happen. This remains one possibility if we are willing to discuss endpoints giving themselves a DIRECT address. Response: It is difficult to prescribe a path that no one is taking yet. Perhaps we could take the endpoint description and keep them, but focus on the OAuth component which we know is going to be the popularized way of making that connection (e.g. like RHex Project). We certainly wouldn’t say using DIRECT to boot-strap is bad, but we need to wait for those innovations to happen. Notes (Page 3) OAuth Endpoints Document • • • • • Comment (Adrian): Agree, however, to the extent that we (ONC) would issue guidance saying that the accounting for disclosures should be part of a patient accessible screen on the portal, the rest sort of falls into place and you don’t have to specify much else, because that brings information about what endpoints will be shared, and with who. I don’t think we need very prescriptive standards beyond OAuth 2.0 and DIRECT; however, what’s missing is specificity around the consent mechanism as reflected in the accounting for disclosures – that policy guidance isn’t standard for implementation issues. This issue of specifying accounting for disclosures for patients has come up in the HIE committee meeting today and remains a problem. [Paul Tang Rule: “If you’re surprising the patient, you aren’t doing a good job”] -- At the HIE meeting today, there was discussion around the problem of consent (opt-in/opt-out) when you try to do health information exchange on a national scale. Everyone has the issue of dealing with a finite number of endpoints within their geographic location. But as soon as you talk about larger regions, like a whole country – people are stuck in terms of adjusting and arriving at common governance and common policy for how to handle it. Comment (Ryan): If there aren’t answers to question around policy for disclosure, we certainly have the ability to ask them. Comment (Adrian): If we took the accounting for disclosures and the Paul Tang rule and presented it to the appropriate committee in the right way, then all of the other pieces about defining an endpoint could fall into place. Question (Ryan): Have you thought about what the disclosure / accountability screen would look at, what are the metadata items on there that would be disclosed? Comment (Adrian): State level requirements re: not disclosing particular information (e.g. HIV), then there is patient preference – as candidates for authorization (for data segmentation). Any conversations about data segmentation must come from both perspectives. Notes (Page 4) OAuth Endpoints Document • Comment (Chris B): Data Segmentation is tough. Issue for example, taking HIV history. There are multiple components of the record when considering how/who to allow to look at or not look at pieces of the record. May be a Pandora’s box to open this issue. • Comment (Pierce): Agree and we should keep in scope with our use cases / charter and focus on segmentation on document level and time. Individual providers can define particular pieces and how to assemble those documents. • Comment (Adrian): Agree with document level data segmentation. Not only who and when can be exchanges, but what it was. • Deadline is by next week’s meeting (Tues, Feb 12) See “Normal” PPT view for all meeting notes (in Notes section below) See “Normal” PPT view for all meeting notes (in Notes section below) • Slides from 2-28-2013 follow Blue Button + Pull Summary • OAuth 2 • Dynamic Discovery • Separate patient alert best practice depending on whether their chosen BB+ endpoint is associated with a Direct Trust Bundle or not. This too applies to both Push and Pull • Other issues: such as Notification and enhancements based on RHEx-style OpenID Connect can be moved to a future release Discussion (Misc) (from 2-28-2013) • Functionality – – – – List of Authorized Data Users Disclosures “Portal should have this functionality, within these parameters” Document it sufficiently to get a Stage I Implementation Guideance. • Endpoints for each? (list of auth data users and disclosures, above) • Q: Are these a Special / administrative scope? • Comment: When a patient logs into their BB+ enabled portal at a dataholder, they should see a unified list of authorized data users and disclosures that don’t differentiate b/w push & pull (no reason to split the list) functionality of the portal, as opposed to admin API • UMA may address the ‘list’ part; disclosures is not that far behind