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 file 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)