Sie sind auf Seite 1von 36

Indivo iOS Framework

Pascal B Pffner Kenneth D Mandl


Intelligent Health Laboratory Children's Hospital Informatics Program Boston Children's Hospital Harvard Medical School

Writing medical apps

Medical Data

Connecting medical apps


To some sources you just cant connect EHRs To other sources you can but its a ton of work What we need is low hacktivation energy

Frameworks

Indivo
Personally Controlled Health Record

Indivo PCHR

Full-featured backend for personally controlled health record (PCHR) data App platform with an extensive API Comes with a substitutable front end Open Source (github.com/chb)

Patient portal for research projects

Why a patient portal?


Key technology for engaging patients Valuable source of data for phenotype and outcomes A channel for providing value back to the patient, to facilitate recruitment and retention Efcient method for obtaining low-cost, timely data A means for patients to manage their own consents for research

Indivo deployments

Boston Childrens Hospital genomics research CARRAnet rheumatologic childhood diseases Harvard IBD network intestinal bowel disease TuAnalyze diabetes network Wake Forest School of Medicine DICOM sharing

Why Mobile?

Mobile
bdconf Dallas, Sep 2012

35% of Americans have no internet access at home

hispanic: 49%, blacks: 51%, w/ disabilities: 59%

20% have no desktop internet access at all

hispanic: 32%, blacks: 29%, w/ disabilities: 46%, w/o diploma: 57%

Mobile internet use: 31% (2009) 55% (2012) 31% of all Americans only or mostly use the internet on their phones

If your services are not available on mobile devices, they

do not exist
for those people

Karen McGrane

Writing Indivo Apps

All you need to do is


Perform an OAuth handshake Determine correct REST paths Deserialize incoming XML or JSON Correctly serialize outgoing XML or JSON

All you need to do is


Perform an OAuth handshake Determine correct REST paths

lather, rinse, repeat Deserialize incoming XML or JSON


Correctly serialize outgoing XML or JSON

Goals

1. High quality mobile experience for Indivo users 2. Framework for easier development of patientfacing apps

Python iOS

client:

web apps

framework:
iOS (mobile)

iOS framework

Handles authentication (OAuth) Knows where an object comes from (REST paths) Knows Indivo objects anatomy (XML handling)

Authentication
OAuth

User
Taps a connect button

App Developer
selectRecord:

Framework
request app starting page

Indivo X
returns HTML for either login screen or a record list

Logs in displays HTML in embedded web view Selects a record receives callback with record id returns record id upon record selection

requests request token

returns request token

receives request token

asks to authorize the token

app previously authorized? NO YES

Approves app

displays HTML in embedded web view

authorizes app and approves request token

receives verier

requests access token callback is called and "activeRecord" property is ready

returns access token

receives access token

Handling OAuth

Server call class to encapsulate all requests All OAuth signing is done transparently Knows when user interaction (login and App approval) is needed and provides a UI

Authentication is handled for you

App ow

[indivo selectRecord:^{

}];

indivo.activeRecord

Object Handling
REST paths & serialization

From schema to Cocoa

The developer should not have to deal with XML serialization/deserialization

Provide Cocoa classes for all Indivo data models

We have to write Objective-C classes for all types Indivos data models can be extended, what about those?

Include a generator that creates Cocoa classes from Indivos data models

Self-aware objects
Document objects know their record Records know their server Framework knows the object actions

REST methods can be inferred for all tasks

Abstract logic into Cocoa objects

selectRecord:

Server

Record

addDocumentOfClass: fetchReportsOfClass:

push:

Docs

replace: archive: ...

Integrating Indivo into Existing Apps


Pediatric Growth Charts

Example: growth data

Example: growth data

Growth charts app

Standalone iOS growth charts app Built modular with extendability in mind, but started with only a local data source

Indivo-enable the app

Integrating Indivo

Select child call Indivos selectRecord: method Create child instance with Indivo demographics Convert Indivo vitals into app format data sets

Growth charts app


Indivo-enabled (read-only)

Add Indivo framework 2 lines (+credentials) to setup Indivo server instance 9 lines to convert Indivo record to apps child object 21 lines to convert Indivo vitals into apps measurement set objects

SMART
Outlook

iOS framework

Released with SMART 0.6 Write apps that run against EHR data Same convenience as the Indivo framework Sister Android framework in the works

The End
github.com/chb/IndivoFramework-ios pascal.pffner@childrens.harvard.edu

Das könnte Ihnen auch gefallen