Open Data Kit and Other Technologies Use of Java in the Third World

65
Open Data Kit and Other Technologies Use of Java in the Third World Steven M. Lewis PhD [email protected]

description

Open Data Kit and Other Technologies Use of Java in the Third World. Steven M. Lewis PhD [email protected]. Computation and the Third World. Information technology has changed our lives That technology has not penetrated the third world to the extent that if penetrates out lives - PowerPoint PPT Presentation

Transcript of Open Data Kit and Other Technologies Use of Java in the Third World

Page 1: Open Data Kit and Other Technologies Use of Java in the Third World

Open Data Kit and Other Technologies

Use of Java in the Third World

Steven M. Lewis PhD

[email protected]

Page 2: Open Data Kit and Other Technologies Use of Java in the Third World

Computation and the Third World

Information technology has changed our lives

That technology has not penetrated the third world to the extent that if penetrates out lives

The constraints of developing for the third world are different

Page 3: Open Data Kit and Other Technologies Use of Java in the Third World

Challenges for the Third World

Connectivity cannot be assumed.

Power cannot be assumed

Services cannot be assumed

Money is a huge issue

Literacy cannot be assumed

Page 4: Open Data Kit and Other Technologies Use of Java in the Third World

Connectivity cannot be assumed

Many Villages are not wired

Wireless may be the only communications

Even this may be unreliable

Page 5: Open Data Kit and Other Technologies Use of Java in the Third World

Power cannot be assumed

Power may not be available

Even when available it may not be reliable

Page 6: Open Data Kit and Other Technologies Use of Java in the Third World

Services Cannot Be Assumed

Systems placed in villages will not be maintained

Parts will not be available

The knowledge to repair any issues cannot be assumed

Page 7: Open Data Kit and Other Technologies Use of Java in the Third World

Money is a huge issue

The cost of a laptop is more than the average yearly income in many countries

In India a cell phone can be bought for $12

A village might have a single cell phone

Page 8: Open Data Kit and Other Technologies Use of Java in the Third World

Literacy Cannot be assumed

Page 9: Open Data Kit and Other Technologies Use of Java in the Third World

What Device is going to have Impact in the third world?

???

Page 10: Open Data Kit and Other Technologies Use of Java in the Third World

Cell Phone Advantages

Very Portable

Cheap and getting cheaper

Solves problems with intermittent and rarely available power

Automatically solve the problem of connectivity

Is sealed, self contained, rugged and very reliable

Page 11: Open Data Kit and Other Technologies Use of Java in the Third World

Moral -

Today we talk about mobile devices as the wave of the future.

In the third world they are the only widely available computing platform

Effective solutions today need to consider the cell phone as the primary platform.

Page 12: Open Data Kit and Other Technologies Use of Java in the Third World

Problem – Matching Fish to Markets on the India Coast

Problem – Fishermen in India can deliver their fish to one of several markets

If a market has more fisherman than buyers, the price for fish will be very low

If there are few fisherman and many then the price will be high

Page 13: Open Data Kit and Other Technologies Use of Java in the Third World

Spread of Cell Phones

Page 14: Open Data Kit and Other Technologies Use of Java in the Third World

Effect of Cell Phones on Fish Prices

Page 15: Open Data Kit and Other Technologies Use of Java in the Third World
Page 16: Open Data Kit and Other Technologies Use of Java in the Third World

Moving Away from Paper

Page 17: Open Data Kit and Other Technologies Use of Java in the Third World

Community Health Workers17 Must bring health care to people

First line of defense

Routine, regular home visits

Know their community

Eyes and ears for local health

Provide education for best practices 

Page 18: Open Data Kit and Other Technologies Use of Java in the Third World

Current methods18

Little, if any, supervision

Paper-based forms – ad hoc design

Long time-lag to usable data

No historical data 

Page 19: Open Data Kit and Other Technologies Use of Java in the Third World

Our Goals19 Standardization of data

Rapid data aggregation and

analysis

Supervision of CHWs

Connection to health records (OpenMRS)

CHW + phone => Flexible, efficient platform for:Better home care (checklists, protocols, etc)

New outreach programs

Outbreak detection

Improved disease surveillance

Page 20: Open Data Kit and Other Technologies Use of Java in the Third World

Open Data Kit

Open-source data collection tool kit Collaboration between Google & UWashingtonForms + GPS + Picture + Barcode + Audio + Video …

Initially targeted at public health applicationsCurrent deployments in Uganda and Kenya http://code.google.com/p/open-data-kit

20

Page 21: Open Data Kit and Other Technologies Use of Java in the Third World

Open Data Kit Toolset

Collect – Android client for data entry

Aggregate – App Engine server for data collection

Submit – multi-transport layer async data transfer

Manage – remote management tools for config

Tasks – assignment of tasks to specific workers

DB – connect forms to existing DBs for browse/update

Viz – visualization of data on graphs/maps

Super – supervisory dashboard for mobile supervisors

Planner – day planning tools for workers

SMS – communication/notification with community

21

Page 22: Open Data Kit and Other Technologies Use of Java in the Third World

Open Standards –in JavaXforms – W3C

Same data collection forms can run on any platform

Standard HTTP client/server APIs

Allows for different server implementations

Android

Open source platform with multiple implementations by different vendors (HTC, Samsung, …)

Example: DataDyne/Episurveyor & Open Data Kit

Same forms (but different capabilities)

Data can be submitted to either server

Allows deployments to use mix of platforms

22

Page 23: Open Data Kit and Other Technologies Use of Java in the Third World

ODK Collect

A tool build on top of XForms

Using JavaRosa (XForms for Mobile Devices) for data collection and submission on the Android

Page 24: Open Data Kit and Other Technologies Use of Java in the Third World

What is XForms

XForms is an XML standard developed by W3C for specifying Forms in XML

Example

Oberon forms

Page 25: Open Data Kit and Other Technologies Use of Java in the Third World

JavaRosa: XForms on Mobile Devices

JavaRosa

Supports a supports a subset of the xform standard

Questions are asked one per screen

Supports many phones

Written in Java ME

Page 26: Open Data Kit and Other Technologies Use of Java in the Third World

Open Data Kit- ODK Collect

Android library written to support JavaRosa Forms.

Supports Standard Types – text, number date, select, multiselect

Supports Bar Code, Picture, GPS inputs

Supports upload to a server running ODK Aggregate

Page 27: Open Data Kit and Other Technologies Use of Java in the Third World

A Little About The Android

Page 28: Open Data Kit and Other Technologies Use of Java in the Third World

Android should be on Java Developer's Radar

Its native language is Java

It supports full JDK 1.6

The platform is open source

Well known tools such as Eclipse and IntelliJ have Android plug-ins

Application distribution is much less controlled

Build it and they will come!

Page 29: Open Data Kit and Other Technologies Use of Java in the Third World

ODK Form demonstration

Page 30: Open Data Kit and Other Technologies Use of Java in the Third World
Page 31: Open Data Kit and Other Technologies Use of Java in the Third World
Page 32: Open Data Kit and Other Technologies Use of Java in the Third World
Page 33: Open Data Kit and Other Technologies Use of Java in the Third World
Page 34: Open Data Kit and Other Technologies Use of Java in the Third World
Page 35: Open Data Kit and Other Technologies Use of Java in the Third World

Form Elements

Language SectionDefine Keys for all Supported Languages

Instance SectionDefine Structure of the data

Binding SectionAnnotate requirements

Define Conditions

Input SectionDefine Controls

Page 36: Open Data Kit and Other Technologies Use of Java in the Third World

Language Section <itext>

<translation lang="english" >

<text id="Male" ><value>Male</value></text>

<text id="Female" ><value>Female</value></text>

<text id="Sex" ><value>Sex</value></text>

</translation>

<translation lang="german" >

<text id="Male" ><value>M&#xfffd;nnlich</value></text>

<text id="Female" ><value>Weiblich</value></text>

<text id="Sex" ><value>Sex</value></text>

</translation>

</itext>

Page 37: Open Data Kit and Other Technologies Use of Java in the Third World

An Aside on Translation

Google has a very nice API for translation

Machine translation is good for a first cut

Is also good for field use where a translation is needed and not translator is available

Automatic tools to add needed entries to multiple language bundles are easy and worthwhile.

My tools build the language section from language bundles

Page 38: Open Data Kit and Other Technologies Use of Java in the Third World

Translate Code

import com.google.api.translate.Translate;

import com.google.api.translate.Language;

public static final String WEB_SITE = "http://code.google.com/p/i18n-translator/";

public String[] translate(String[] input, Language from, Language to) throws Exception

{

Translate.setHttpReferrer(WEB_SITE );

System.setProperty("http.proxyHost", "proxy");

System.setProperty("http.proxyPort", "8080");

return Translate.execute(input, from, to);

}

Page 39: Open Data Kit and Other Technologies Use of Java in the Third World

Instance Section <instance>

<Student2_Registration><Name/><Sex/>

<FemaleQuestions> <StartedMenstruating/> <Pregnant/> <StartMensesAge/> <Child jr:template=""> <Name/> <Sex/> <Age/> </Child> </FemaleQuestions> <MaleQuestions> <Circumcised/> <MasterbationRate/> </MaleQuestions>

...

Page 40: Open Data Kit and Other Technologies Use of Java in the Third World

Binding Section

<bind nodeset="/Student2_Registration/Name" type="string" required="true()" />

<bind nodeset="/Student2_Registration/Sex" type="select1" required="true()" />

<bind nodeset="/Student2_Registration/FemaleQuestions" relevant="selected(/Student2_Registration/Sex, 'Female')" />

<bind nodeset="/Student2_Registration/MaleQuestions" relevant="selected(/Student2_Registration/Sex, 'Male')" />

<bind nodeset="/Student2_Registration/Birthday" type="date" required="true()" />

Page 41: Open Data Kit and Other Technologies Use of Java in the Third World

Input Section <input ref="/Student2_Registration/Name" >

<label ref="jr:itext('What_isYourName')" />

</input>

<select1 ref="/Student2_Registration/Sex" >

<label ref="jr:itext('What_isYourSex')" />

<item>

<value>Male</value>

<label ref="jr:itext('Male')" />

</item>

<item>

<value>Female</value>

<label ref="jr:itext('Female')" />

</item>

</select1>

...

Page 42: Open Data Kit and Other Technologies Use of Java in the Third World

Tools

PurcForms a GWT based tool for editing XForms

ODK Forms Designer a GWT tool specifically targetted to ODK

Annotation Based Generator

Page 43: Open Data Kit and Other Technologies Use of Java in the Third World

ODK Aggregate

Infrastructure for Storing results

Build on top of Google App Engine

Demo http://lordjoedev.appspot.com/

Page 44: Open Data Kit and Other Technologies Use of Java in the Third World

Deployments44 Kenya

HIV,300

CHWs

Tanzania e-IMCI, 5 clinicians

Page 45: Open Data Kit and Other Technologies Use of Java in the Third World
Page 46: Open Data Kit and Other Technologies Use of Java in the Third World

Sample Applications

Page 47: Open Data Kit and Other Technologies Use of Java in the Third World
Page 48: Open Data Kit and Other Technologies Use of Java in the Third World

Sample Applications

Page 49: Open Data Kit and Other Technologies Use of Java in the Third World

Sample Applications

Page 50: Open Data Kit and Other Technologies Use of Java in the Third World
Page 51: Open Data Kit and Other Technologies Use of Java in the Third World

Crisis Management - Haiti

Page 52: Open Data Kit and Other Technologies Use of Java in the Third World

Person Finder Demo

http://haiticrisis.appspot.com/

Page 53: Open Data Kit and Other Technologies Use of Java in the Third World

Person Finder Results

Page 54: Open Data Kit and Other Technologies Use of Java in the Third World

Other Applications

Page 55: Open Data Kit and Other Technologies Use of Java in the Third World

Open MRS

Page 56: Open Data Kit and Other Technologies Use of Java in the Third World

Patient Search

Page 57: Open Data Kit and Other Technologies Use of Java in the Third World

Open MRS

Demo

Page 58: Open Data Kit and Other Technologies Use of Java in the Third World

I-TechI-Tech (International Training and Education Center for Health

Health Workforce Development

Operations Research and Evaluation

Prevention, Care, and Treatment of Infectious Diseases

Health Systems Strengthening

http://www.go2itech.org/what-we-do

Page 59: Open Data Kit and Other Technologies Use of Java in the Third World

Where is the Java?

MRS and LIMS

“In every country where I-TECH works, health needs and program goals are best met when local laboratories and services are reliable, consistent, and readily available.”

Electronic Medical Record Systems (MRS)

Laboratory Information Management Systems (LIMS)

[ http://www.go2itech.org/what-we-do/heath-systems-strengthening/laboratory-systems-strengthening/laboratory-systems-strengthening ]

Page 60: Open Data Kit and Other Technologies Use of Java in the Third World

Summary

In the first world the cell phone is the wave of the future

In the third world the cell phone is currently the main line computing device.

Cell phones can make a huge difference in the absence of viable alternatives.

The University of Washington has a very active program in this area

Page 61: Open Data Kit and Other Technologies Use of Java in the Third World

Getting Involved

Work with the CHANGE group at the University of Washington

Subscribe to the developers mailing lists for ODK and JavaRosa

Contribute time and code.

Page 62: Open Data Kit and Other Technologies Use of Java in the Third World

Project Links

Open Data Kit

Open MRS

University of Washington Change Center

Crisis Mappers

Page 63: Open Data Kit and Other Technologies Use of Java in the Third World
Page 64: Open Data Kit and Other Technologies Use of Java in the Third World

ODK Use

Page 65: Open Data Kit and Other Technologies Use of Java in the Third World

Demo

http://demo.openmrs.org/