Patient Record System Fighting Childhood Cataract in Africa
Patient Record System for fighting Childhood Cataract in Africa.

Background

In Africa, it's estimated that 60% of children die within a year of going blind. Over half of the childhood blindness in Africa is caused by congenital cataracts, which can be corrected if caught early. These children need to be operated as early as possible to ensure that the development of the visual part of the brain has enough and correct visual input. The follow-up examinations are also important, as children's eyes will need new pair of glasses or treatments for optimal correction at different growth stages.

Partnering with Emory Global Vision Initiative, the goal is to design and develop a system to facilitate the cycle of "early referral", "treatment", "follow up" and then "rehabilitation" to fight the childhood blindness problem in Africa.

User Research

I started by understanding how medical staffs from Kilimanjaro Christian Medical Centre (KCMC) in Northern Tanzania accomplish their work practice. Rather than directly asking them about their expectations to the system, I wanted to identify the challenges encountered during their daily tasks and learning their feedback to the existing tools they currently use.

I then came up a workflow diagram to summarize and illustrate the scenarios that users may encounter in the field. And then I walked through the diagram with the Emory and field teams to make sure the diagram captured their works and needs. Finally, based on the data and feedback, I started to look for the feasible technologies to support users' need.

Workflow Diagram - Customer Journey Map from existing experience
User workflows of the existing experience - pediatric ophthalmology in many African countries.

System Design

In the meetings with Emory team and field team in Africa, we narrowed down the scope to bring up a system that makes sure:

  1. better referral
  2. recording examinations
  3. follow-up of the children with cataracts

Medical teams from Emory told us they have plenty of Google Nexus 7 tablets as donations; therefore, it would be good to have some features built running on Android devices.

At first, I ever considered designing the reminder experience similar to the "Google Calendar": an Android application that pops up a notification on Android device's notification bar for the upcoming scheduled events. However, the field team pointed out that the penetration of Android devices is still low in most African countries. In additional, the mobile network coverage is another challenging factor.

Workflow Diagram - Customer Journey Map with proposed system
User workflows of the system requirements - with proposed experiences of our system

Therefore, I decided to design and implement the system with two primary portions, the Data Collection and SMS Service.

  1. Data Collection:

    • Collecting medical data in the hospital.
  2. SMS Service:

    • Patient referral - allow the community workers to send patient referrals by their mobile phones.
    • Follow-up reminder - generating SMS reminders to patients for their referral and follow-up appointments.

1. Data Collection System:

Transform the existing paper medical form into electronic formats:

Existing paper-based medical form - from KCMC Hospital
Existing paper-based medical form - from KCMC Hospital

I took the existing paper-based medical form from Kilimanjaro Christian Medical Centre (KCMC) as the reference, and decided to separate the lengthy medical form into several distinct forms. I grouped similar fields based on similarity and the stages of the medical treatments:

  1. Pre-operative Form
  2. Intra-operative Form
  3. Post-operative Form - Day 1
  4. Post-operative Form - Discharge
  5. Post-operative Form - Follow-up
  6. Follow-up Appointment Form

By doing so, it brings two advantages:

  • Reduce cognitive load - easier to focus without going through too many irrelevant items.
  • Good for data submission - reducing the data redundancy during the transmission.

System Architecture – developed based on Open Data Kit (ODK):

I implemented the system on top of Open Data Kit (ODK), which is a free and open-source software as the base of the project for better sustainability. The ODK system consists of two main components:

  1. ODK Collect (Mobile-end application)
  2. ODK Aggregate (Server-end application)

1. ODK Collect is an Android application that allows users to download and fill out pre-defined data forms (like our medical forms) on android devices, and submit the collected data to the server-end application ODK Aggregate.

ODK Collect supports the following features:

  • Downloads and renders electronic forms into a sequence of input prompts that apply form logic, entry constraints, and repeating sub-structures.
  • Users work through the prompts and can save the submission at any point.
  • Finalized submissions can be sent to (and new forms downloaded from) the server.
  • Runs on Android platform and supports a wide variety of prompts (text, number, location, multimedia, barcodes).
  • Works well without network connectivity.

ODK Collect - Blank form list screen and Patient ID screen
ODK Collect - Blank form list screen (fetched from ODK Aggregate) and Patient ID screen (added at the beginning of each form)
ODK Collect - Utilizing XForm format, record photo with camera and
								 	 		create the multiple-choice questions
ODK Collect - Utilizing "XForm" format, the form can record photo from tablet's camera and create the multiple-choice questions in table format

See screen captured video of collecting patient's data: DEMO VIDEO: INTRA-OPERATIVE FORM - DAY 1

2. ODK Aggregate is the server-end application that manages the forms being uploaded, and the submitted data from the ODK Collect (the android-end application). I deployed ODK Aggregate on Amazon Web Services (AWS) Elastic Compute Cloud (EC2) with Tomcat6 and MySQL database. ODK Aggregate supports the following features:

  • Uploads and manages the electronic forms.
  • Accepts forms submissions from ODK Collect and manage collected data.
  • Visualizes the collected data using maps and simple graphs.
  • Exports aggregated data (e.g. CSV files for spreadsheets or JSON files).
  • Access control to data submissions via user permissions.

ODK Aggregate - Form submission list and Filtering query
ODK Aggregate - Form submission list and Filtering query for data retrieval
ODK Aggregate - Geographic info (by GPS) and Data visualization
ODK Aggregate - Geographic info (by GPS) and Data visualization

For our electronic medical forms, I utilized XLSForm to edit and design the form with Microsoft Excel and convert into XForm for compatible with ODK.

2. SMS Reminder System:

Support patient referral and follow-up appointment reminders:

For patient referral, the SMS Service allows the community workers to send patient's name and contact phone for referring patients with regular mobile phone. The medical team in hospital can review the referral list on the web UI and check the visiting status to see whether or not the patient has visited hospital.

For follow-up appointment, the medical team can schedule a future appointment for the patient by submitting the 6. Follow-up Appointment Form on ODK Collect. And then the SMS reminders will be generated and sent to patient's contact phone about their upcoming appointment. The medical team in hospital can also tracks the history of visiting status regarding the missed/visited appointments on the web UI.

System Architecture – developed based on RapidSMS:

RapidSMS - architecture overview
RapidSMS - architecture overview

I leveraged an existing open-source software called RapidSMS and design the UI and logic on top of it. RapidSMS is built with Python and Django for dynamic data collection, logistics coordination and communication by using basic SMS mobile phone technology.

I designed the overall system architecture and deploying RapidSMS and ODK Aggregate at the same Amazon Web Service EC2 server. By doing so, RapidSMS can automatically generate SMS reminders by pulling out patient's data that previously been sent through ODK on the Android tablet from the same MySQL database.

I started UI design with the low-fidelity wireframe using Balsamiq Mockups. On the navigation bar, two buttons are served for switching between "Appointments" list and "SMS Referrals" list. On the left hand side, I envisioned having drop down menus for selecting the data filters to query the list shown on the right hand side. On the top of the list, a button is served for exporting the filtered list as a spreadsheet (CSV) file.

Lo-fi mockup for Appointment SMS Service - Desktop View
Lo-fi mockup for Appointment SMS Service - Desktop View
Filtering appointment list data by Visiting Status
Filtering appointment list data by "Visiting Status"

Since the medical team will be inputing the medical data with Android tablet, the web UI of the SMS Service should be responsive design to work great on the Android tablet.

Lo-fi mockup for Appointment SMS Service - Mobile View
Lo-fi mockup for Appointment SMS Service - Mobile View
Expanding the menu for showing navigation options
Expanding the menu for showing navigation options
Filtering appointment list data by Visiting Status
Filtering appointment list data by "Visiting Status"
Filtering SMS patient referral list by Visiting Status
Filtering SMS patient referral list by "Visiting Status"

After all parties agreed on the lo-fi mockups, I started to work on implementing the system accordingly. The SMS Service is now running on the same Amazon AWS (EC2) with ODK Aggregate. By doing so, the SMS and ODK service can runn collaboratively with shared database for updating the "visiting status" of "Appointment List" and "SMS Referral List".

Final Desktop View UI for SMS Service - Appointment List
Final Desktop View UI for SMS Service - SMS Referral List

For mobile view, with Twitter bootstrap, it is easy to change the layout according to the screen resolution. Here I list several screenshots of how the UI looks like on a Android Nexus 7 tablet.

Final Mobile View UI for SMS Service - Appointment List
Final Mobile View UI for SMS Service - Appointment List
Expanding the menu for showing navigation options
Expanding the menu for showing navigation options
Export and download the filtered appointment list as CSV file
Export and download the filtered appointment list as CSV file
Filtering SMS patient referral list by Visiting Status
Filtering SMS patient referral list by "Visiting Status"

Usability Evaluation

Since conducting the usability evaluations in remote settings could miss lots of feedback and context information, I decided to apply the surrogate users models (proxy user) and recruited participants from Emory Global Vision Initiative for usability evaluation.

Benchmark Tasks:

The system consists two primary portions, the Data Collection portion for collecting medical data, and the SMS Service portion for patient referrals and sending reminders to patients for their follow-up visits.

For the usability evaluation, I followed the workflow diagram and created multiple benchmark tasks for different stages of the treatments and asked the participant to go through the task with a fictitious patient named, "George Burdell".

Quantitative questions:

Average scores and variance for 7 point Liker scale
Average scores and variance for 7 point Liker scale

Seven Likert scale - (1: Least agree, 7: Totally Agree)

  1. I think the sentences/descriptions on the system are simple and natural.
  2. I feel that the text and the font size are visible and readable.
  3. I think I can easily correct errors when using this system.
  4. Sometimes I don’t understand what the system is showing.
  5. Do you think this system is useful?

I calculated the average score and the standard variation for the answers of these five questions as shown in the bar chart to identify where can be further improved.

Please see detail evaluation analysis in the project report:
PROJECT REPORT

Qualitative questions:

Open-end questions - (If yes, please specify.)

  1. I understand the system's feedback based on my interaction with it.
  2. I feel that there are some parts of the system are inconsistent.
  3. Sometimes I want to do a specific task but I don’t know how to.
  4. What was the difficulty for performing each of these tasks?
  5. What other suggestions do you have for this system?

I conducted semi-structure interviews to gather feedback. The questions were mostly open and qualitative in nature.

Please see detail evaluation analysis in the project report:
PROJECT REPORT

Future Works

Refined patient-centric medical record portal

Our system currently depends on ODK Aggregate to access patients' medical records. To review patients' medical record, the physician must go through below steps:

  1. Specify the medical form
  2. Filter the form submissions by Patient ID

From the discussions with the medical teams, the on-going works include designing a refined UI portal that dedicates to access patient's medical record. The ideal experience will allow the physician to view medical record about an individual patient at once without switching among different medical forms.

Interaction Flow Chart

Interaction Flow Chart - Patient-centric medical record UI
Interaction Flow Chart - Patient-centric medical record UI

Project Links

  1. Project Report:
    PROJECT REPORT
  2. Patient Record System (ODK Aggregate, userID/password available upon request):
    PATIENT RECORD SYSTEM
  3. SMS Service (RapidSMS - for Patient Referral and Appointment Reminder, userID/password available upon request):
    SMS SERVICE
Gatech MS-HCI MS Project Poster
Gatech MS-HCI MS Project Poster