A walkthrough of building new apps on top of the Indivo iOS framework, as well as integrating it with existing apps to cloud-enable them.
By Pascal Pfiffner, MD Ph.D., Children's Hospital Informatics Program
2. Goals
⢠Drop-in to existing Cocoa projects
⢠Provide a low entry barrier into PHR
⢠Make Indivo a viable choice for App developers
who want to move their usersâ data into the cloud
3. The framework
⢠Handles authentication (OAuth)
⢠Provides Indivo objects (automatic XML handling)
⢠Knows where an object comes from (REST paths)
⢠Provides messaging functionality
4. Handling OAuth
⢠Class INServerCall to encapsulate requests
⢠Uses MPOAuth, an OSS OAuth framework for
iOS, transparently
⣠OAuth is handled for you
5. From Schema to Cocoa
⢠The developer should not have to deal with XML
serialization/deserialization
⣠Provide classes for all Indivo document types
⢠We have to write Objective-C classes for all types
⣠A generator creates Cocoa classes from Indivoâs
XSD and SDMJ schemas
6. Self-aware objects
⢠Document objects know their record
⢠Records know their server
⢠Framework knows the server actions
⣠REST methods can be inferred for all tasks
7. iOS framework
Abstract logic into Cocoa objects
selectRecord:
Server Record
addDocumentOfClass:
fetchReportsOfClass:
push:
Docs replace:
archive:
...
14. Growth Charts App
Data Models
CHPatientSource selectPatient:^{ }
CHPatient ageAtDate:
measurementSetsContainingDataTypes:
CHMeasurementSet date
CHMeasurement value
CHMeasurement value
CHMeasurement value
15. Growth Charts App
Local Data Source
⢠Override selectPatient:
⢠Instantiate a CHPatient
⢠Read CSV data as measurement sets
16. Growth Charts App
Indivo Data Source
⢠Call Indivoâs selectRecord: method
⢠Within the callback block:
⢠Fetch patient demographics
⢠Create CHPatient with record demographics
⢠Fetch patientâs vitals
⢠Convert Indivo vitals into measurement sets
17. Growth Charts App
Indivo-Enabled (read-only)
⢠2 lines + app setup ďŹle to setup Indivo server
instance
⢠9 lines to convert IndivoRecord to CHPatient
⢠21 lines to convert Indivo vitals into
CHMeasurementSet
18. Documentation
⢠Take a look at README.md
⢠Checkout the sample medication app
⢠Technical documentation available online:
http://docs.indivohealth.org/projects/indivo-x-ios-
framework/en/latest/
20. Version 2.0 Îą
Available with the other Indivo sources from:
https://github.com/chb/IndivoFramework-ios
Checkout branch dev_two (tag hackathon_2012)