Archive for the ‘Open Source Software’ Category.

Developing an Analytics Dashboard for Maternal Care

Copy of a posting I made on the Digital Campus blog yesterday:

Over the last few months, alongside the protocol forms the Health Extension Workers (HEWs) are using to record maternal care patient encounters on their smartphones, we have been developing an analytics dashboard to allow HEWs, midwives, their supervisors and the local health bureaus to track the progress of pregnant mothers, their medical & pregnancy risk factors, and a range of key performance indicators.

Providing information back to HEWs and their supervisors about their performance, we hope will help to increase the number of ANC visits according to the recommended schedule, and provide information for local health bureaus to better prioritize resources and training. The current performance indicators include the percentage of ANC visits made on time, number of protocols submitted, PNC visit made on time and immunization records for both mother and baby.

Analytics Scorecard home page

For the HEWs, we can also provide information about the upcoming appointments, deliveries to assist them to plan their time better. Guidelines from the Ethiopian Ministry of Health encourage all pregnant mothers to give birth at local health centres, so we can use the ANC visit information to inform local midwives on expected delivery dates. Local health bureaus and HEW supervisors are able to compare the performance between different health posts or districts.

We are trying to be careful that this doesn’t become used as a EMRS (electronic medical records system) – there are already plenty of MRS’s available – rather we are looking at ways in which the HEWs can see advantages to recording their patient visits on their smartphones, by providing them with relevant, timely and easy to understand information about the patients in their area. In the future we may look at how to integrate with an MRS system (e.g. OpenMRS), but currently this is not the focus of what we’re trying to achieve.

For the technically minded, the analytics dashboard runs by accessing the ODK Aggregate database directly. We’ve looked at several different data collection tools (especially those focused on medical information collection), but all would require either direct database access (as we have done with ODK) or extraction of the data via an API (which would generally mean exporting to another database then accessing the dashboard from this). We’re still in the process of getting the HEWs and their supervisors up and running with accessing all this information via the web application and smartphone – we also still have some development work to do. Currently our researchers in Mekelle are printing regular reports to give to supervisors and HEWs, also, as this is a research project, it’s important that all the information (from protocols) can be stored as a hard-copy with the rest of the normal patient records at the health posts.

We’re currently developing an application so HEWs are able to access their task/performance information directly on the smartphones – which will work offline when there is no GPRS connection available, and update automatically when a connection is available (most likely using an HTML5 application, rather than a specific Android application)

Screen shots from prototype mobile browser version (personal data has been pixelated)

Using a smartphone platform to deliver this type of information is a good balance & compromise between other platform choices we could have made. Using PCs/laptops/netbooks would involve much more technical support, training and maintenance, and likely to have other issues such as access to electricity, portability etc. Smaller, low-spec phones would not allow us to present the information in such a clear and easy-to-use way.

For those interested the code for the analytics dashboard is available to download from GitHub at: https://github.com/alexlittle/Digital-Campus-Analytics

Moodle upgrade and new version of COE course

The other day I tidied up my Moodle server installs, I had got a Moodle 1.9 and a Moodle 2.0 running, then a couple of months ago my ISP upgraded the version of PHP (to 5.3.x) so I’m now able to run the more recent versions of Moodle. Rather than keeping separate systems running I now just have one Moodle 2.2 (at: http://moodle.alexlittle.net – http://moolde2.alexlittle.net is no longer functioning).

So our Certificate in Online Education (COE) course can now be downloaded in Moodle 2.2 format. The course content still refers to pre-2.0 versions of Moodle – so we’ve got some updating to do on this, but will let you know once this been completed.

Code releases

I’ve just posted up 3 new repositories onto GitHub:

Digital-Campus-Protocols: These are the protocols (forms) we’re using for the Maternal Care project in Tigray.

Ethiopian-Pregnancy-Calculator: code for the pregnancy calculator Android app

Amharic-Keyboard: code for the Amharic/Ge’ez Keyboard for Android

All these are released under open source/creative commons license – so please feel free to clone and develop further :-)

mQuiz: Importing from Moodle quizzes & GIFT format

I’ve just put up a new version of the mQuiz website and mQuiz Android app.

The key update is that you can now import quizzes in the GIFT format (which Moodle also uses). So if you already have a Moodle quiz then you can export it in GIFT format and upload to run in mQuiz – I’ve uploaded the 4 quizzes from our Certificate in Online Education course to demonstrate. Alternatively you can write your own quiz in GIFT format directly.

This now allows to create quizzes with more interesting question types than only single-option multiple choice, such as multi-option multiple choice, numerical, essay, short answer and true/false.

Any feedback on this is much appreciated!
Update (5th Dec 2011)… I’ve just added the facility to display feedback…

mQuiz: lots of updates….

Over the last few days I’ve made quite a lot of updates to the mQuiz server and Android application

mQuiz server updates

  • Graphs and better info about quiz responses – note that if you created the quiz then any responses you submit will not count towards average scores etc.
  • A download queue, so you can share quizzes with a link…. e.g. clicking on this link will add the ‘European Capitals’ quiz to your download queue, and will be downloaded next time you start the client phone app. You can use this even if you haven’t yet installed the phone app. As soon as you install and log in to the client, the quiz will be scheduled for download.
  • Quizzes can now have download/submissions turned on/off. Allows a quiz to be under development, and not downloadable to any clients, also by turning submissions off you can stop people sending in more results.
  • The leaderboard on the homepage now works. You’ll only appear once you have submitted results from at least 3 different quizzes (sorry, quizzes you created don’t count!).
  • Homepage much improved (I think anyway!).

mQuiz Android updates

  • You now need to register/login when you first open the client app. You’ll need valid login details to download quizzes, submit responses etc.
  • The download scheduler is implemented – so the client will automatically download any quizzes you’ve selected on the server. The scheduler only runs when you have the mQuiz client open and you can set how often it will check for quizzes in the preferences (from the mQuiz main page click on the menu button and select ‘preferences’).
  • Manage quizzes: you can now remove installed quizzes as well as just download them. Note that this will remove all your scores too (though results already send to the server will be kept).
  • The download quiz page now won’t try to download quizzes that are already installed
  • After you complete a quiz you now have the option to share your results via twitter, email, text message, facebook etc.

There’s still quite a lot I’d like to do to tidy up the client code, and all the other features I’d like to add too! Any feedback on the above, or the app generally, much appreciated :-)

mQuiz: running quizzes on your mobile

Once again, I’ve been getting a bit slack with posting to my blog, seem to have got a bit distracted with writing project proposals and other work. So here’s a quick update on something I’ve been developing over the last couple of weeks… a smartphone application to easily create, deliver and take short quizzes and assessment activities. Firstly, a quick demo:

There are many quiz apps on Android market, but none that I found will allow you to easily create your own quiz questions (not without programming a new Android app). True, there are ways to do this, for example, to create your quiz in Moodle, then access via one of the mobile Moodle apps. But I wanted something that you could run on your phone offline and didn’t have the overhead of setting up a Moodle installation.

I now have a prototype website (at http://mquiz.org – very surprised this domain name was easily and cheaply available!), where you can create your own (multiple-choice) quizzes. Anyone with an Android smartphone can install the client application and download any of the quizzes created and submit/share their results. To download the client app see: https://market.android.com/details?id=org.digitalcampus.assessment or search for ‘mquiz’ in the market.

I’m planning to make some nice graphs/charts etc on the site so you can track responses to quizzes better. For example to see how many people have been taking your quiz, the scores they are getting, even identify which questions most people get right/wrong.

It’s very much a work in progress, so things are likely to change rapidly – not all the pages on the website are written yet even. Some of the key functions I’d like to work on are:

  • Nicer analytics pages/graphs on the website
  • Client app for other mobile OSs – thinking about porting to PhoneGap to make it easier to develop for multiple mobile platforms.
  • More than just multiple choice – it would be good to support something like the GIFT format to make it easy for people to import existing quizzes
  • Better sharing of quizzes – so you could email/sms someone a link to a quiz for them to opt to have it downloaded to their phone next time they open the client app
  • Visibility/submission permissions – currently all quizzes created are publicly available and anyone can submit responses (even anonymously), would like to have the option to restrict quizzes to particular users/groups
  • … probably much more to add to this list!

The code for the phone client app and the server app is available on GitHub, see: http://mquiz.org/developer/ for details.

Any feedback/suggestions much appreciated (as would any help with the development!)

Ethiopian Pregnancy Calculator Android Application

As I’ve mentioned before many of the Health Extension Workers (HEWs) we’re working with have trouble using the Gregorian calendar. Much of the work we’re doing with the HEWs depends on them having a good idea of the expected date of delivery for pregnant women. To help the HEWs calculate the expected delivery date, in Ethiopian date format, for the pregnant women they are working with, we have developed a small application which gives them the expected delivery date based on the date of the last menstrual period.

With the application the HEW can enter the last menstrual period in Ethiopian date format and it will give them and the pregnant woman the expected delivery date in the date format they are used to using in their day-to-day lives.

We’ve made the application available for anyone to download and use on their Android phone – just download the app and install on your Android smartphone.

I should give a big thanks to the developers of Joda Time (a java library for working with alternative calendaring systems) which made the development of the application so much easier!

Any feedback or comments welcome. If anyone is interested in developing the application further then we’re very happy to give access to the source code – just contact me :-)

Exporting Xforms from EpiSurveyor to OpenDataKit Aggregate

I’ve been looking at some of the mobile data collection tools and applications available as we’re still undecided which will be the most appropriate for our needs. So far we’ve mainly been using EpiSurveyor, but we’d also like to try out using OpenDataKit (ODK) (ODKAggregate server and ODKCollect client).

We already have several forms created in EpiSurveyor that we’d like to try out in ODK, so I’ve just been looking at how the forms can be moved from one system to another. Given that EpiSurveyor uses a slightly customised version of ODKCollect as it’s client, I’d assumed that the form definitions would be exactly the same. Unfortunately it seems not, but I have worked out how to export a form definition from EpiSurveyor to ODKAggregate with fairly minimal hassle.

1) Export the form from EpiSurveyor web client (log into http://www.episurveyor.org, select the form, then click ‘Export’ button and select XForm format)
2) Once the form has been downloaded you need to open it in a text editor and edit it very slightly…
Change the section:

<xf:instance>
<data>
[Likely there will be some field definitions in this part]
</data>
</xf:instance>

to be:

<xf:instance>
<data id="Whatever_id_you_would_like">
[Likely there will be some field definitions in this part]
</data>
</xf:instance>

basically all you need to do is add an id attribute to the <data> tag, just make sure this is different to all the other form ids on your ODKAggregate server. Then save this file.

3) Now log into you ODKAggregate server, go to Management -> Forms List -> New Form. In the pop, select your edited form and click ‘Upload Form’

4) Your form is now available on your ODKAggregate server (and so to your ODKCollect client handsets)

Moving the data over is also possible but a little more fiddly – need to do more editing on the EpiSurveyor CSV download to be able to import into ODKAggregate database.

Hope this helps someone else, but would also be interested to hear if anyone knows a simpler way to achieve this?

Mobile application development

Over the last few weeks we’ve been working on the development and design of several mobile applications for data collection, telediagnosis and for mLearning, especially to support Ethiopian Health Extension Workers. There are already many systems and toolkits available (especially for mobile data collection), but from the ones we have tested so far none do exactly what we need. So our first step is to review the existing systems against our requirements (see our wiki for more information), to find which would be most suitable taking into account how well designed and supported the system is, plus how much development work we’ll need to put in.

We’re also beginning to design a more integrated platform for the different components – reusing existing open source toolkits/components and standards wherever possible. It’s going to take a while to refine our ideas and then to actually build and test the system, but I’m going to start off by looking at how to create a mobile app for assessing the skills/knowledge of the HEWs.

eLearning Services Presentation

An overview of our experiences and approach to providing elearning services, training and certification: