+ All Categories
Home > Documents > Welcome! Santiago Gutierrez · CS342/MED253 Building for Digital Health Lecture 7B: (continued)...

Welcome! Santiago Gutierrez · CS342/MED253 Building for Digital Health Lecture 7B: (continued)...

Date post: 22-May-2020
Category:
Upload: others
View: 5 times
Download: 0 times
Share this document with a friend
65
CS342/MED253 Building for Digital Health Lecture 7B: (continued) Getting Started with GCP https://cs342.stanford.edu cs342-aut1920.slack.com Welcome! Santiago Gutierrez Oliver Aalami Mike Hittle Fall 2019
Transcript
Page 1: Welcome! Santiago Gutierrez · CS342/MED253 Building for Digital Health Lecture 7B: (continued) Getting Started with GCP  cs342-aut1920.slack.com Welcome!

CS342/MED253 Building for Digital HealthLecture 7B: (continued) Getting Started with GCP

https://cs342.stanford.edu

cs342-aut1920.slack.com

Welcome! Santiago GutierrezOliver Aalami

Mike Hittle

Fall 2019

Page 2: Welcome! Santiago Gutierrez · CS342/MED253 Building for Digital Health Lecture 7B: (continued) Getting Started with GCP  cs342-aut1920.slack.com Welcome!

Overview for today● Assignment #5 overview (HealthKit)● More on the backend for your apps!

○ Using Google Cloud Platform● Stanford University Research IT support● Getting Started with your projects / resources

https://cs342.stanford.edu

cs342-aut1920.slack.com

Page 4: Welcome! Santiago Gutierrez · CS342/MED253 Building for Digital Health Lecture 7B: (continued) Getting Started with GCP  cs342-aut1920.slack.com Welcome!

FHIR serves two technical roles in healthcare IT

FHIR as an API specification FHIR as a data model

Page 5: Welcome! Santiago Gutierrez · CS342/MED253 Building for Digital Health Lecture 7B: (continued) Getting Started with GCP  cs342-aut1920.slack.com Welcome!

{

"resourceType": "Procedure", "id": "example", "status": "completed", "code": { "coding": [ { "system": "http://snomed.info/sct", "code": "80146002", "display": "Appendectomy (Procedure)" } ], "text": "Appendectomy" }, "subject": {

"reference": "Patient/example_patient" }, "performedDateTime": "2013-04-05", "performer": [ { "actor": {

"reference": "Practitioner/example_practitioner", "display": "Dr Cecil Surgeon" } } ], "reasonCode": [ { "text": "Generalized abdominal pain 24 hours. Localized in RIF with rebound and guarding" } ], "followUp": [ { "text": "ROS 5 days - 2013-04-10" } ]}

Patient

Practitioner

subject

Procedure

performer

Reference

Page 6: Welcome! Santiago Gutierrez · CS342/MED253 Building for Digital Health Lecture 7B: (continued) Getting Started with GCP  cs342-aut1920.slack.com Welcome!
Page 7: Welcome! Santiago Gutierrez · CS342/MED253 Building for Digital Health Lecture 7B: (continued) Getting Started with GCP  cs342-aut1920.slack.com Welcome!

04Hands-on Lab

Page 8: Welcome! Santiago Gutierrez · CS342/MED253 Building for Digital Health Lecture 7B: (continued) Getting Started with GCP  cs342-aut1920.slack.com Welcome!

How to access the lab?

● https://explore.qwiklabs.com/

● Create a New Account using your @stanford.edu email

● Login using your @stanford.edu email and password

● Select the Course: CS 342: Building for Digital Health (MED 253)

● Lab: Introduction to Healthcare FHIR APIs

NOTE: The lab will not be available after Tuesday, 19th November

Page 9: Welcome! Santiago Gutierrez · CS342/MED253 Building for Digital Health Lecture 7B: (continued) Getting Started with GCP  cs342-aut1920.slack.com Welcome!

© 2016 Stanford Byers Center for Biodesign

What is a “backend”?

9

• database / persistence layer

• server-side logic - (scheduling, pre-processing, triggers)

• ETL - extract/transform/load piping

• authenticationhardware / compute + networking

https://cs342.stanford.edu

cs342-aut1920.slack.com

Page 10: Welcome! Santiago Gutierrez · CS342/MED253 Building for Digital Health Lecture 7B: (continued) Getting Started with GCP  cs342-aut1920.slack.com Welcome!

© 2016 Stanford Byers Center for Biodesign

Client-Server Model vs Serverless

10

https://www.gocd.org/2017/06/26/serverless-architecture-continuous-delivery/

Page 11: Welcome! Santiago Gutierrez · CS342/MED253 Building for Digital Health Lecture 7B: (continued) Getting Started with GCP  cs342-aut1920.slack.com Welcome!

© 2016 Stanford Byers Center for Biodesign 11

Page 12: Welcome! Santiago Gutierrez · CS342/MED253 Building for Digital Health Lecture 7B: (continued) Getting Started with GCP  cs342-aut1920.slack.com Welcome!

What is Protected Health Information (PHI)? ● ~18 identifiers

https://cs342.stanford.edu

cs342-aut1920.slack.com

Page 13: Welcome! Santiago Gutierrez · CS342/MED253 Building for Digital Health Lecture 7B: (continued) Getting Started with GCP  cs342-aut1920.slack.com Welcome!

© 2016 Stanford Byers Center for Biodesign 13

source: https://uit.stanford.edu/guide/riskclassifications

HIPAA-Compliant+ BAA agreement in-place

Page 14: Welcome! Santiago Gutierrez · CS342/MED253 Building for Digital Health Lecture 7B: (continued) Getting Started with GCP  cs342-aut1920.slack.com Welcome!

© 2016 Stanford Byers Center for Biodesign

GCP Available Services: https://cloud.google.com/security/compliance/hipaa/

Page 15: Welcome! Santiago Gutierrez · CS342/MED253 Building for Digital Health Lecture 7B: (continued) Getting Started with GCP  cs342-aut1920.slack.com Welcome!

© 2016 Stanford Byers Center for Biodesign

SDK & tools

Page 16: Welcome! Santiago Gutierrez · CS342/MED253 Building for Digital Health Lecture 7B: (continued) Getting Started with GCP  cs342-aut1920.slack.com Welcome!

© 2016 Stanford Byers Center for Biodesign

SDK & tools

What is an SDK?

• Software Development Kit

• In our case, the Firebase SDK is a collection of tools (pre-packaged functions and methods) that let’s us easily code using Firebase.

• https://firebase.google.com/docs/ios/setup

Page 17: Welcome! Santiago Gutierrez · CS342/MED253 Building for Digital Health Lecture 7B: (continued) Getting Started with GCP  cs342-aut1920.slack.com Welcome!

© 2016 Stanford Byers Center for Biodesign

SDK & tools

Page 18: Welcome! Santiago Gutierrez · CS342/MED253 Building for Digital Health Lecture 7B: (continued) Getting Started with GCP  cs342-aut1920.slack.com Welcome!

© 2016 Stanford Byers Center for Biodesign

SDK & tools Authentication

Page 19: Welcome! Santiago Gutierrez · CS342/MED253 Building for Digital Health Lecture 7B: (continued) Getting Started with GCP  cs342-aut1920.slack.com Welcome!

© 2016 Stanford Byers Center for Biodesign

SDK & tools Authentication

Page 20: Welcome! Santiago Gutierrez · CS342/MED253 Building for Digital Health Lecture 7B: (continued) Getting Started with GCP  cs342-aut1920.slack.com Welcome!

© 2016 Stanford Byers Center for Biodesign

SDK & tools Authentication

NoSQL Database

Page 21: Welcome! Santiago Gutierrez · CS342/MED253 Building for Digital Health Lecture 7B: (continued) Getting Started with GCP  cs342-aut1920.slack.com Welcome!

© 2016 Stanford Byers Center for Biodesign

Page 22: Welcome! Santiago Gutierrez · CS342/MED253 Building for Digital Health Lecture 7B: (continued) Getting Started with GCP  cs342-aut1920.slack.com Welcome!

© 2016 Stanford Byers Center for Biodesign

SDK & tools Authentication

NoSQL Database

and more!

Page 23: Welcome! Santiago Gutierrez · CS342/MED253 Building for Digital Health Lecture 7B: (continued) Getting Started with GCP  cs342-aut1920.slack.com Welcome!

© 2016 Stanford Byers Center for Biodesign

Serverless Architecture

23

• Because Managing Servers... • sucks• is expensive• is inefficient • a distraction• less secure• not necessary

Page 24: Welcome! Santiago Gutierrez · CS342/MED253 Building for Digital Health Lecture 7B: (continued) Getting Started with GCP  cs342-aut1920.slack.com Welcome!

© 2016 Stanford Byers Center for Biodesign

SDK & tools Authentication

NoSQL Database

and more!Backend Architecture

Page 25: Welcome! Santiago Gutierrez · CS342/MED253 Building for Digital Health Lecture 7B: (continued) Getting Started with GCP  cs342-aut1920.slack.com Welcome!

© 2016 Stanford Byers Center for Biodesign

Resource: https://cloud.google.com/security/compliance/hipaa/

Page 26: Welcome! Santiago Gutierrez · CS342/MED253 Building for Digital Health Lecture 7B: (continued) Getting Started with GCP  cs342-aut1920.slack.com Welcome!

© 2016 Stanford Byers Center for Biodesign

S-SMART Study

Page 27: Welcome! Santiago Gutierrez · CS342/MED253 Building for Digital Health Lecture 7B: (continued) Getting Started with GCP  cs342-aut1920.slack.com Welcome!

© 2016 Stanford Byers Center for Biodesign

S-SMART Study

CARE-IT Study

Page 28: Welcome! Santiago Gutierrez · CS342/MED253 Building for Digital Health Lecture 7B: (continued) Getting Started with GCP  cs342-aut1920.slack.com Welcome!

© 2016 Stanford Byers Center for Biodesign 28

Page 29: Welcome! Santiago Gutierrez · CS342/MED253 Building for Digital Health Lecture 7B: (continued) Getting Started with GCP  cs342-aut1920.slack.com Welcome!

© 2016 Stanford Byers Center for Biodesign

S-SMART Study

CARE-IT Study

Page 30: Welcome! Santiago Gutierrez · CS342/MED253 Building for Digital Health Lecture 7B: (continued) Getting Started with GCP  cs342-aut1920.slack.com Welcome!

© 2016 Stanford Byers Center for Biodesign

S-SMART Study

CARE-IT Study

- managed VPC

Page 31: Welcome! Santiago Gutierrez · CS342/MED253 Building for Digital Health Lecture 7B: (continued) Getting Started with GCP  cs342-aut1920.slack.com Welcome!

© 2016 Stanford Byers Center for Biodesign

S-SMART Study

CARE-IT Study

- managed VPC

Stanford UIT:● Defines how services can

communicate with each other, securely, so you don’t have to.

● Already understands your system, which means your studies get expedited DRA review.

● Helps you get started with premium GCP services at a low-cost — and helps you scale up when needed.

Page 32: Welcome! Santiago Gutierrez · CS342/MED253 Building for Digital Health Lecture 7B: (continued) Getting Started with GCP  cs342-aut1920.slack.com Welcome!

© 2016 Stanford Byers Center for Biodesign

What is a DRA?

• Data Risk Assessment• Collaboration between Information Security Office (ISO)

and the University Privacy Office(UPO) - unsung heros• Usually involves a lawyer• Usually involves an engineer or other tech expertise

• Required by the IRB• More people requiring care and fewer people paying into system

• Thorough review of the data you collect and methods of storage and transfer

• Data flow diagram

• Form, documentation submission

• Interview/Meeting(s)

• Takes 2 weeks to ∞

32

Page 33: Welcome! Santiago Gutierrez · CS342/MED253 Building for Digital Health Lecture 7B: (continued) Getting Started with GCP  cs342-aut1920.slack.com Welcome!

© 2016 Stanford Byers Center for Biodesign

S-SMART Study

CARE-IT Study

- managed VPC

Page 34: Welcome! Santiago Gutierrez · CS342/MED253 Building for Digital Health Lecture 7B: (continued) Getting Started with GCP  cs342-aut1920.slack.com Welcome!

© 2016 Stanford Byers Center for Biodesign

Study

S-SMART Study

- managed VPC

CARE-IT Study

Study Study Study

Study Study Study

Study StudyStudy

Page 35: Welcome! Santiago Gutierrez · CS342/MED253 Building for Digital Health Lecture 7B: (continued) Getting Started with GCP  cs342-aut1920.slack.com Welcome!

© 2016 Stanford Byers Center for Biodesign

Page 36: Welcome! Santiago Gutierrez · CS342/MED253 Building for Digital Health Lecture 7B: (continued) Getting Started with GCP  cs342-aut1920.slack.com Welcome!

© 2016 Stanford Byers Center for Biodesign

Page 37: Welcome! Santiago Gutierrez · CS342/MED253 Building for Digital Health Lecture 7B: (continued) Getting Started with GCP  cs342-aut1920.slack.com Welcome!

© 2016 Stanford Byers Center for Biodesign

Create *one* GCP/Firebase Instance per team this will be used for your own personal testing only

37

1. Go to http://firebase.google.com2. Click “Go To Console” (top right)

3. “Add Project” named SSMART, or CARE-IT4. Disable Google Analytics (not in BAA)

5. “Create Project” & wait 30 sec…6. “Continue” and under “develop,” click on ”database” -> ”create”7. Select “test mode” (RIT will manage rules)

8. Deploy to location “us-east-1” and click “done.”

Page 38: Welcome! Santiago Gutierrez · CS342/MED253 Building for Digital Health Lecture 7B: (continued) Getting Started with GCP  cs342-aut1920.slack.com Welcome!

© 2016 Stanford Byers Center for Biodesign

Authentication (sign-in methods)enable the email/password provider WITH passwordless sign-in

38

Page 39: Welcome! Santiago Gutierrez · CS342/MED253 Building for Digital Health Lecture 7B: (continued) Getting Started with GCP  cs342-aut1920.slack.com Welcome!

© 2016 Stanford Byers Center for Biodesign

SDK & tools

Page 40: Welcome! Santiago Gutierrez · CS342/MED253 Building for Digital Health Lecture 7B: (continued) Getting Started with GCP  cs342-aut1920.slack.com Welcome!

© 2016 Stanford Byers Center for Biodesign

SDK & tools Authentication

Page 41: Welcome! Santiago Gutierrez · CS342/MED253 Building for Digital Health Lecture 7B: (continued) Getting Started with GCP  cs342-aut1920.slack.com Welcome!

© 2016 Stanford Byers Center for Biodesign

patient goes through

onboarding & consent

patient inputs their email address

check your email to finish log-in

Password-less Login (Google Identity)

Page 42: Welcome! Santiago Gutierrez · CS342/MED253 Building for Digital Health Lecture 7B: (continued) Getting Started with GCP  cs342-aut1920.slack.com Welcome!

© 2016 Stanford Byers Center for Biodesign

There are numerous benefits to signing in by email:

● Low friction sign-up and sign-in.

● Lower risk of password reuse across applications, which can undermine security of even well-selected passwords.

● The ability to authenticate a user while also verifying that the user is the legitimate owner of an email address.

● A user only needs an accessible email account to sign in. No ownership of a phone number or social media account is required.

● A user can sign in securely without the need to provide (or remember) a password, which can be

cumbersome on a mobile device.● An existing user who previously signed in with an email identifier (password or federated) can be

upgraded to sign in with just the email. For example, a user who has forgotten their password can still sign in without needing to reset their password.

https://firebase.google.com/docs/auth/ios/email-link-auth

Password-less Login

Page 43: Welcome! Santiago Gutierrez · CS342/MED253 Building for Digital Health Lecture 7B: (continued) Getting Started with GCP  cs342-aut1920.slack.com Welcome!

© 2016 Stanford Byers Center for Biodesign

Authentication (sign-in methods)additional steps for iOS devices

43

we want you to focus on your appswe will provide as much source code as we can

Page 44: Welcome! Santiago Gutierrez · CS342/MED253 Building for Digital Health Lecture 7B: (continued) Getting Started with GCP  cs342-aut1920.slack.com Welcome!

© 2016 Stanford Byers Center for Biodesign

Authentication (sign-in methods)additional steps for iOS devices

44

we will follow official Firebase documentationa couple slides later to implement thishttps://firebase.google.com/docs/auth/ios/email-link-auth

Page 45: Welcome! Santiago Gutierrez · CS342/MED253 Building for Digital Health Lecture 7B: (continued) Getting Started with GCP  cs342-aut1920.slack.com Welcome!

© 2016 Stanford Byers Center for Biodesign

Link your app to this project“Project Overview” -> “iOS”

45

Page 46: Welcome! Santiago Gutierrez · CS342/MED253 Building for Digital Health Lecture 7B: (continued) Getting Started with GCP  cs342-aut1920.slack.com Welcome!

© 2016 Stanford Byers Center for Biodesign

Add Firebase to your iOS appenter your iOS bundle ID

46

Page 47: Welcome! Santiago Gutierrez · CS342/MED253 Building for Digital Health Lecture 7B: (continued) Getting Started with GCP  cs342-aut1920.slack.com Welcome!

© 2016 Stanford Byers Center for Biodesign

Add Firebase to your iOS appenter your iOS bundle ID

47

Page 48: Welcome! Santiago Gutierrez · CS342/MED253 Building for Digital Health Lecture 7B: (continued) Getting Started with GCP  cs342-aut1920.slack.com Welcome!

© 2016 Stanford Byers Center for Biodesign

Add Firebase to your iOS appenter your iOS bundle ID and “register app”

48

Page 49: Welcome! Santiago Gutierrez · CS342/MED253 Building for Digital Health Lecture 7B: (continued) Getting Started with GCP  cs342-aut1920.slack.com Welcome!

© 2016 Stanford Byers Center for Biodesign

Add Firebase to your iOS appCopy the .plist config file to your project (root)

49

Page 50: Welcome! Santiago Gutierrez · CS342/MED253 Building for Digital Health Lecture 7B: (continued) Getting Started with GCP  cs342-aut1920.slack.com Welcome!

© 2016 Stanford Byers Center for Biodesign

S-SMART Study

CARE-IT Study

- managed VPC

Stanford UIT:● Defines how services can

communicate with each other, securely, so you don’t have to.

● Already understands your system, which means your studies get expedited DRA review.

● Helps you get started with premium GCP services at a low-cost — and helps you scale up when needed.

Page 51: Welcome! Santiago Gutierrez · CS342/MED253 Building for Digital Health Lecture 7B: (continued) Getting Started with GCP  cs342-aut1920.slack.com Welcome!

© 2016 Stanford Byers Center for Biodesign

Add Firebase to your iOS appUsing CocoaPods (package manager)

51

https://cocoapods.org/

Page 52: Welcome! Santiago Gutierrez · CS342/MED253 Building for Digital Health Lecture 7B: (continued) Getting Started with GCP  cs342-aut1920.slack.com Welcome!

© 2016 Stanford Byers Center for Biodesign

Add Firebase to your iOS appUsing CocoaPods (package manager)

52

Page 53: Welcome! Santiago Gutierrez · CS342/MED253 Building for Digital Health Lecture 7B: (continued) Getting Started with GCP  cs342-aut1920.slack.com Welcome!

© 2016 Stanford Byers Center for Biodesign

Add Firebase to your iOS appInitialize

53

Page 54: Welcome! Santiago Gutierrez · CS342/MED253 Building for Digital Health Lecture 7B: (continued) Getting Started with GCP  cs342-aut1920.slack.com Welcome!

© 2016 Stanford Byers Center for Biodesign

Sample Study 💻everything we have covered so far in action

demo on our GitHubuse our resources to polish your apps and add additional functionality!

Page 55: Welcome! Santiago Gutierrez · CS342/MED253 Building for Digital Health Lecture 7B: (continued) Getting Started with GCP  cs342-aut1920.slack.com Welcome!

© 2016 Stanford Byers Center for Biodesign

https://github.com/cs342/CardinalKit-CS342-StudySample

Page 56: Welcome! Santiago Gutierrez · CS342/MED253 Building for Digital Health Lecture 7B: (continued) Getting Started with GCP  cs342-aut1920.slack.com Welcome!

© 2016 Stanford Byers Center for Biodesign

Saving data to FirestoreFollow official documentation https://firebase.google.com/docs/firestore/manage-data/add-data

56

Page 57: Welcome! Santiago Gutierrez · CS342/MED253 Building for Digital Health Lecture 7B: (continued) Getting Started with GCP  cs342-aut1920.slack.com Welcome!

© 2016 Stanford Byers Center for Biodesign

Accessing data to FirestoreFollow official documentation https://firebase.google.com/docs/firestore/manage-data/add-data

57

Page 58: Welcome! Santiago Gutierrez · CS342/MED253 Building for Digital Health Lecture 7B: (continued) Getting Started with GCP  cs342-aut1920.slack.com Welcome!

© 2016 Stanford Byers Center for Biodesign

Authentication (sign-in methods)additional steps for iOS devices

58

Additional setup for email linkshttps://firebase.google.com/docs/auth/ios/email-link-auth

Page 59: Welcome! Santiago Gutierrez · CS342/MED253 Building for Digital Health Lecture 7B: (continued) Getting Started with GCP  cs342-aut1920.slack.com Welcome!

© 2016 Stanford Byers Center for Biodesign

SDK & tools Authentication

NoSQL Database

and more!Backend Architecture

Page 60: Welcome! Santiago Gutierrez · CS342/MED253 Building for Digital Health Lecture 7B: (continued) Getting Started with GCP  cs342-aut1920.slack.com Welcome!

© 2016 Stanford Byers Center for Biodesign

SDK & tools Authentication

NoSQL Database

and more!Backend Architecture

Web SDK

Page 61: Welcome! Santiago Gutierrez · CS342/MED253 Building for Digital Health Lecture 7B: (continued) Getting Started with GCP  cs342-aut1920.slack.com Welcome!

© 2016 Stanford Byers Center for Biodesign

Page 62: Welcome! Santiago Gutierrez · CS342/MED253 Building for Digital Health Lecture 7B: (continued) Getting Started with GCP  cs342-aut1920.slack.com Welcome!

© 2016 Stanford Byers Center for Biodesign

Our last guest lecture of the quarter!Upcoming Tuesday (Nov 12)

Page 63: Welcome! Santiago Gutierrez · CS342/MED253 Building for Digital Health Lecture 7B: (continued) Getting Started with GCP  cs342-aut1920.slack.com Welcome!

Attendance● Please be on time so we can start class promptly!● https://tinyurl.com/cs342-attendance

https://cs342.stanford.edu

cs342-aut1920.slack.com

Page 64: Welcome! Santiago Gutierrez · CS342/MED253 Building for Digital Health Lecture 7B: (continued) Getting Started with GCP  cs342-aut1920.slack.com Welcome!
Page 65: Welcome! Santiago Gutierrez · CS342/MED253 Building for Digital Health Lecture 7B: (continued) Getting Started with GCP  cs342-aut1920.slack.com Welcome!

Stanford Byers Center for Biodesign318 Campus Drive, E100Stanford, CA 94305


Recommended