• Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
  • This type of PHR is great but is Google a real player in the PHR field? MS HealthVault has moved to the front of this effort. Has Google decide to move this effort to the next level or is this just another one of there science projects? Either way, it is a great way to get the word out to consumers.



    Jeff Brandt
    www.comsi.com
    Are you sure you want to
    Your message goes here
  • For those interested in the code example at the end of this presentation, it can be found here:

    http://code.google.com/p/chiefmedicalofficer/source/browse/#svn/tags/HelloGoogleHealth-0.1
    Are you sure you want to
    Your message goes here
No Downloads

Views

Total Views
3,955
On Slideshare
0
From Embeds
0
Number of Embeds
8

Actions

Shares
Downloads
0
Comments
2
Likes
11

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Chief MedicalS Officer O p e n o u r c e G o o g l e H e a l t h P r o j e c t Nov 11, 2009 Google Technology User Group (GTUG) Googleplex 43, Mountain View, CA USA
  • 2. Overview O u r S t o r y : G TA P, G T U G , a n d “ G e e W i z ” G o o g l e H e a l t h a n d P H R A r c h i t e c t u r e B u i l d i n g a G o o g l e H e a l t h A p p l i c a t i o n J u s t E n o u g h G o o g l e H e a l t h A P I B o l d P r e d i c t i o n s f o r t h e F u t u r e Chief Medical Officer
  • 3. GTAP Google Technology Apprentice Program Mentor Student Student Mentor Student Student Student Chief Medical Officer
  • 4. Mentors Program Mentors Tom Wilson / Bess Ho e-Patient Mentor Jen McCabe Contributing Developers Chip Vanek Laura Klemme Ray Valdes Chief Medical Officer
  • 5. Students Design Michael Klemme Priya Chawathe Priyanka Naik Rylan Valdes Programming Jason Boyle Chief Medical Officer
  • 6. Doctor Tricorder
  • 7. Meanwhile...
  • 8. Brainstorming Ideas Inspired by Star Trek’s Vision of Future! “Bridge To Sick Bay! The family PHR needs to be more like Star Trek. Make it so.” The CCR data format is based on clinical ontology. CCR is XML, can be transformed into a more family-friendly format.
  • 9. The Summer Project
  • 10. The Summer Project Build a better PHR. Create a framework for experimenting with new PHR UIs. Test different transforms of health data to create new UI scenarios. Combine multiple individual health profiles into a single family health profile. Chief Medical Officer
  • 11. Application Framework Google Health ATOM Feed GData API XML XQuery/ XSLT JSON JavaScript (JQuery) Web Mobile Titanium Framework HTML / CSS / JS iPhone Android Chief Medical Officer SDK 3.0 SDK 1.5
  • 12. Experiments Google Health Google Health Raw Data Raw Data ATOM Feed ATOM Feed Python XSLT Extracted Data Extracted Data XML XML Python Python Rearranged Data Rearranged Data XML JSON JavaScript JavaScript (JQuery) Display Data Display Data HTML HTML CMO CMO Chief Medical Officer
  • 13. Next Google Health Raw Data ATOM Feed Java Extracted Data API Extracted Data XML XML Google XSLT Collections Display Data Rearranged Data HTML XML Fragments CMO XPath Display Data Flex CMO Chief Medical Officer
  • 14. UI Experiment: Mobile Beta SDK Framework Ideal for Beginner Developers iPhone Android Chief Medical Officer
  • 15. UI Experiment: Mobile HTML / CSS / JavaScript SDK Framework iPhone SDK 3.0 Android SDK 1.5 Objective-C / Cocoa Touch Java Native Mobile App Chief Medical Officer
  • 16. UI Experiment: Mobile Chief Medical Officer
  • 17. UI Experiment: Mobile Best iPhone Health App Chief Medical Officer
  • 18. PHR Architecture
  • 19. Google Health Data Model CCR Record GData Feed Patient Atom Elements Medications Procedure Immunizations CCR Fragment Allergy Conditions CCR Fragment Diagnosis Immunization Procedures CCR Fragment Chief Medical Officer
  • 20. A View of Your Health Record today time ALLERGY CONDITION IMMUNIZATION PROCEDURE MEDICATION LABTEST category
  • 21. A View of Your Health Record today time ALLERGY CONDITION IMMUNIZATION PROCEDURE MEDICATION LABTEST category
  • 22. A View of Your Health Record today time ALLERGY CONDITION IMMUNIZATION PROCEDURE MEDICATION LABTEST category
  • 23. A View of Your Health Record today time ALLERGY CONDITION IMMUNIZATION PROCEDURE MEDICATION LABTEST category
  • 24. Health Data Retrieval XML URL/medication URL/immunization URL/condition Google Health APIs HTTP/REST Google Health Data Store Chief Medical Officer
  • 25. Profile View https://www.google.com/health Using your Google Account Collect Store Manage Share Add / Delete Default Add / Delete Profile Profile Profile + Conditions + Procedures + Medications + Tests + Allergies + Immunizations Chief Medical Officer
  • 26. GData API Model Google Health APIs Atom Publishing Protocol Simple Format Simple Protocol Atom Syndication Format HTTP Google Extensions Data Model Query Concurrency Authentication Chief Medical Officer
  • 27. GData Layers Never Delete! AuthSub/OAuth/ClientLogin Security / Token Management GET PUT UPDATE DELETE Embedded CCR Entires Raw Data ATOM Feed REST Interface Google Health API Google Health Chief Medical Officer Data Store
  • 28. PHR Platform Architecture UI & UXP Specifications Web Mobile HTML / CSS / JavaScript iPhone / Android Architecture & Platform XSLT Google Health API Google App Engine Authentication Chief Medical Officer
  • 29. XSLT Transformation Google Health CMO CCRg XSLT/XPath Medications Extract data by criteria Immunizations Conditions Diagnosis Procedures Organized Formatted Fragmented Chief Medical Officer
  • 30. Security PHI v. non-PHI - know what this is! Leave PHI issues to Google (as much as possible). The PHR application is a secure data conduit from one authorized party to another. You are NOT authorized, and neither is the QA department.
  • 31. The Sandbox Public Private Production Developer’s Sandbox https://www.google.com/health https://www.google.com/h9 Digitally signed secure=0 tokens or client login https://www.google.com/health https://www.google.com/h9 Register domain with Google & http://localhost is already registered Google Health. Upload X.509 certificate on h9 to sign requests https://www.google.com/health/feeds/ https://www.google.com/h9/feeds/ Chief Medical Officer
  • 32. Register Domain Google Health API Public Terms and Conditions Production https://www.google.com/health Must read agree to API Register domain name with Google Terms of Service Register domains & sub domains with Google Health separately Create a self-signing X.509 public certificate via Manage Domains Tool Create different digital signatures for AuthSub request & OAuth request Chief Medical Officer
  • 33. Certificate Public Production https://www.google.com/health Register domain name with Google Register domains & sub domains with Google Health separately Create a self-signing X.509 public certificate via Manage Domains Tool Create different digital signatures for AuthSub request & OAuth request Chief Medical Officer
  • 34. Keys Public Production https://www.google.com/health OpenSSL utility Java’s keytool utility Register domain name with Google Register domains & sub domains with Google Health separately Create a self-signing X.509 public certificate via Manage Domains Tool private key public key Create different digital signatures for AuthSub request & OAuth request Chief Medical Officer
  • 35. Signature Public Production https://www.google.com/health Create a self-signing X.509 public certificate via Manage Domains Tool private key public key public certificate 1024-bit RSA key signature encoded in an X.509 certificate in PEM format Chief Medical Officer
  • 36. AuthSub AuthSubSessionToken Public Production AuthSubRevokeToken “Authorization” header AuthSub requests signature AuthSubTokenInfo Authorization: AuthSub token="token" sigalg="sigalg" data="data" sig="sig" GET /accounts/AuthSubSessionToken HTTP/1.1 Content-Type: application/x-www-form-urlencoded User-Agent: Java/1.5.0_06 Host: https://www.google.com Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2 Connection: keep-alive Authorization: AuthSub token="token" data="GET https://www.google.com/ accounts/AuthSubSessionToken 1148503696 15948652339726849410" sig="MCwCFrV93K4agg==" sigalg="rsa-sha1" Chief Medical Officer
  • 37. OAuth OAuthGetRequestToken Public Production OAuthAuthorizeToken OAuth requests signature OAuthGetAccessToken Chief Medical Officer
  • 38. Signature Method Public Production https://www.google.com/health Migrating from AuthSub to OAuth No need to re-register with Google Specify the signature method AuthSub OAuth Secure Tokens = Access Tokens Chief Medical Officer
  • 39. Building Google Health Applications 1 Create security framework 2 Create test account on h9 3 Populate h9 account with initial test data Chief Medical Officer
  • 40. Building Google Health Applications 4 Use gdata API to read your h9 CCR record Parse, format, and display data 5 from CCR 6 Build a new CCR fragment Write back to Google Health by sending 7 new CCR fragment to REST API Chief Medical Officer
  • 41. Code Example Retrieve and rearrange Google Health Data. Combine multiple individual profiles into a family profile, and display by category.
  • 42. Data Transform Google Health CMO Mom Allergies Allergies Mom Medications Dad Immunizations Kid Dad Medications Allergies Mom Medications Dad Immunizations Kid Kid Immunizations Allergies Mom Medications Dad Immunizations Kid Chief Medical Officer
  • 43. Data Transform Google Health CMO Mom Allergies Allergies Mom Medications Dad Immunizations Kid Dad Medications Allergies Mom Medications Dad Immunizations Kid Kid Immunizations Allergies Mom Medications Dad Immunizations Kid Chief Medical Officer
  • 44. Data Transform Google Health CMO Mom Allergies Allergies Mom Medications Dad Immunizations Kid Dad Medications Allergies Mom Medications Dad Immunizations Kid Kid Immunizations Allergies Mom Medications Dad Immunizations Kid Chief Medical Officer
  • 45. Data Transform Google Health CMO Mom Allergies Allergies Mom Medications Dad Immunizations Kid Dad Medications Allergies Mom Medications Dad Immunizations Kid Kid Immunizations Allergies Mom Medications Dad Immunizations Kid Chief Medical Officer
  • 46. Data Transform Google Health CMO Mom Allergies Allergies Mom Medications Dad Immunizations Kid Dad Medications Allergies Mom Medications Dad Immunizations Kid Kid Immunizations Allergies Mom Medications Dad Immunizations Kid Chief Medical Officer
  • 47. Data Transform Google Health CMO Mom Allergies Allergies Mom Medications Dad Immunizations Kid Dad Medications Allergies Mom Medications Dad Immunizations Kid Kid Immunizations Allergies Mom Medications Dad Immunizations Kid Chief Medical Officer
  • 48. Data Transform Google Health CMO Mom Allergies Allergies Mom Medications Dad Immunizations Kid Dad Medications Allergies Mom Medications Dad Immunizations Kid Kid Immunizations Allergies Mom Medications Dad Immunizations Kid Chief Medical Officer
  • 49. Data Transform Google Health CMO Mom Allergies Allergies Mom Medications Dad Immunizations Kid Dad Medications Allergies Mom Medications Dad Immunizations Kid Kid Immunizations Allergies Mom Medications Dad Immunizations Kid Chief Medical Officer
  • 50. Data Transform Google Health CMO Mom Allergies Allergies Mom Medications Dad Immunizations Kid Dad Medications Allergies Mom Medications Dad Immunizations Kid Kid Immunizations Allergies Mom Medications Dad Immunizations Kid Chief Medical Officer
  • 51. Data Transform Google Health CMO Mom Allergies Allergies Mom Medications Dad Immunizations Kid Dad Medications Allergies Mom Medications Dad Immunizations Kid Kid Immunizations Allergies Mom Medications Dad Immunizations Kid Chief Medical Officer
  • 52. Data Flow Google Health ATOM Feed JAVA API XML CCR DATA STRUCTURES XSLT XPATH Display Document Display Elements Chief Medical Officer
  • 53. Data Structures: Maps Profile Dictionary Key Profile Name Map URL REST ID GData Value Query Profile Data Key Profile Name GData Map Feed XSLT CCRg Display Value Chief Medical Officer
  • 54. Using Multimaps (Google Collections Library) Display CCR Key Category Profile Name Map Key Mother Value MultiMap Family Value CCR Father Health Profile Child Chief Medical Officer
  • 55. Code Demonstration Eclipse 3.4 / Java 1.6 GData Library Google Collections Library
  • 56. Google Health Wish List Create Profile API - for a “build my family profile” UI XQuery API - finer grained queries for specific clinical data Chief Medical Officer
  • 57. Bold Predictions Chief Medical Officer
  • 58. Bold Predictions (which should surprise no one) Chief Medical Officer
  • 59. Bold Predictions (which should surprise no one) A typical family will have at least one member who acts as a“chief medical officer,” managing the family’s health records. Chief Medical Officer
  • 60. Bold Predictions (which should surprise no one) A typical family will have at least one member who acts as a“chief medical officer,” managing the family’s health records. Managing the family’s medical records will be as easy as managing the family’s finances. Chief Medical Officer
  • 61. Bold Predictions (which should surprise no one) A typical family will have at least one member who acts as a“chief medical officer,” managing the family’s health records. Managing the family’s medical records will be as easy as managing the family’s finances. Children born in hospitals with EMR systems today will have lifetime PHRs as adults. Chief Medical Officer
  • 62. References Google Health API: http://code.google.com/apis/health/ http://groups.google.com/group/googlehealthdevelopers CCR: http://ccrstandard.com http://code.google.com/apis/health/ccrg_reference.html http://sourceforge.net/projects/ccr-resources/ Chief Medical Officer
  • 63. References CMO Project: http://code.google.com/p/chiefmedicalofficer/ GAE: https://chiefmedicalofficer.appspot.com Chief Medical Officer
  • 64. Thank You. Any Questions? Chief Medical Officer