Have you implemented OpenMRS? Please participate in the Implementation Site Survey. If you already have, thank you!
Child pages
  • Pre-OpenMRS Hack-a-thon 2009
Skip to end of metadata
Go to start of metadata

Vison and Goals

The Hack-a-thon will aim to up-scale the Jembi developers, the OASIS teams and other developer teams on the OpenMRS technologies and work on some key projects which have been undertaken. Work done on these projects will be the development of aspects of OpenMRS which are being used in the project, i.e. the extension of the HTML Forms module in a manner that gives back to the OpenMRS Community as an example.

We are approaching the week with a tiered approach as to have developers attending. Starting off with a subset of the developers arriving on Sunday and moving directly into some of the “deep” projects. The week will continue with various themes and Objectives for the days, which are aimed at coinciding with the arrivals of the OASIS groups, DHIS as well as BIKA and Cell-life (iDart). [archive:Discussions are still underway to confirm attendance of BIKA and iDart].

Some of the projects Jembi will be bringing to the meeting can be found here: Jembi Projects



The attendance schedules and themes for the days are outlined in the image below:


Each “Theme” will have a set of objectives associated with it; these objectives may (and should) include both the areas of development deliverables and developer education aspects. An example of one of these would be the HTML Forms module where some of the objectives for this theme would be the incorporation of roles based form restrictions, form ‘pop-out’ etc as well as developers understanding the best practice points in extending the module for their own use.

Objective for each “theme” will be spec’d out below as well as being refined throughout the week. Each “Theme” forms part of larger projects which are being worked upon as well as being key to a few core OpenMRS development projects.

In addition to the “Themed” based days the developers have asked for more technical presentations around a few key topics they would like to better understand and which they feel will make them stronger developers not just in OpenMRS but generally. These topics will be outlined below.




General Agenda:

  • Opening / Day review and planning
  • Morning Training session on Developer topics
  • Tea
  • Training Session or Project JAD (Joint Application Design) session (Themed discussion)
  • Lunch
  • Afternoon Development Time [archive:Themed specific]
  • Tea
  • MBO Review (short) Free Development Time (continue dev for themes/projects as needed)
  • Dinners / Evening items
  • Free time

With the above mentioned an outlined agenda for the days is as follows



  • Opening and Welcome [archive:Carl Fourie]
  • General Jembi Overview Presentation [archive:CF]
  • Individual Project Presentation
  • OpenMRS Developer Presentation [archive:DJ, BW, MS, JM]
  • Training session: Developing with OpenMRS Conventions [archive:Justin]
  • Agenda and Week Review [archive:ALL]
  • eKapa JAD
  • Booking Mx JAD
  • HTML Forms JAD
  • Development Time
  • What actually happened



  • Day & Dev Task Review
  • Training Session: Annotation based MVC [archive:Darius] Example
  • Training Session: AOP and Liquidbase [archive:Ben]
  • REPORTING JAD (BIRT, Data Quality Control)
  • Development Time from JAD items.
  • Training / Free Development
  • Short Day Review.
  • What actually happened



  • Day & Dev Task Review
  • Training Session: Extending the OpenMRS Datamodel [archive:Michael]
  • Training Session: Reporting Module [archive:Darius + Michael]
  • DEV Time
  • Tea
  • REPORTING JAD (OMRS Core Reporting)
  • Development
  • Lunch (other groups start to arrive)---
  • Training Session
  • Free Development Time
  • Day Review
  • What actually happened



  • Day & Dev Task Review
  • Training Session: OpenMRS Roadmap and technical review [archive:Justin]
  • Training Session: Core OpenMRS widgets and features [archive:Darius + Ben]
  • SDMX-HD : DXF : Interfaces JAD
  • Development Time / Training
  • Day Review
  • Evening event (possibly BRAAI / BBQ)
  • What actually happened



  • Day & Dev Task Review
  • Training Session: Reusability, leveraging and Managing components [archive:Justin]
  • Training Session: Tutorials (JSTL, taglibs, portlets, classloader issues, Spring trickiness, etc) [archive:lead by Justin supported by OMRS Core]
  • ...Possible extended work on Pharmacy + LIMS
  • Training on:
    • HTML Forms development (How to build, how to extend module) [archive:Daniel Futerman + Darius]
    • BIRT Reports / Reporting (Some key building blocks, main reporting in OMRS) [archive:Justin Miranda + Pascal]
    • MIRTH and interface gateways (using messaging servers) [archive:Ryan Crichton]
  • What actually happened

Free Development time is time that isn’t heavily focused on JAD outputs, i.e. may fine-tune some aspects of HTML Forms or so on.


Objectives for Themes


HTML Forms

  • Development:
    • Inclusion of Roles based forms [archive:Pascal] (chosen to do in OMRS Core post 1.5 release)
    • Inclusion of Daniels work into module (in HTMLForms 1.5)
    • Create Pagination for entered forms – managed by GP (in HTMLForms 1.5)
    • Create Grouping / sorting ability for forms (form, date,provider) (in HTMLForms 1.5)
    • Formalize Pop-out into Core module [archive:Pascal] (in HTMLForms 1.5) need to add handler for actual form completion [archive:cancel button with alert window]
    • Polish module and CSS. (in HTMLForms 1.5)
  • Developer Training:
    • Expected means of extending HTML Forms module,
    • Outlining the limitations and where we draw the line in terms of customizing the form module too far.


Booking Management

  • Discussion of Booking management within OpenMRS, how this is currently done
  • Proposed methods of implementing this (integration with logic service to define rules for return?)


Reporting Core OMRS

  • Extension of the Core Reporting to merge with SDMX-HD requirement
  • How and where OMRS Reporting Core will influence BIRT Reporting
  • Extension Point for OMRS Reporting Core
  • Scope, intended feature/functionality list and limitations of OMRS Core from Development Point of View (What is it meant to do? No not designed to do that.)
  • Strategy for dataset implementations (what do we need to build for implementations)
  • Review of current indicator implementation and figure out next steps



  • Overview of BIRT and design considerations resulting in choosing it as the presentation layer for reporting
  • Roadmap relating to BIRT and OpenMRS
  • What can and can't be done with OpenMRS 1.4 data exports
  • As above for OpenMRS 1.5 / 1.6
  • Strategies for rapid report development (possible use of BIRT libraries)
  • Moving away from the CSV data sets (supporting alternative dataset types via XML streams, Web Services and custom ODAs)
  • Better integration between BIRT Designer and OpenMRS (through ODAs and plugins)
  • Better integration between OpenMRS and BIRT Engine (for rendering reports)


Data Quality Control

  • Strategies for Implementing Data Quality Control in OpenMRS
  • Included in reporting or new module?



  • Extension of current library to allow for alternate format export.
  • Clean Interface for expansion on library.
  • Well defined library and API
  • Road Map and feature set for SDMX-HD


LAB Systems

  • Roadmap for LAB integration in OpenMRS
  • Features and Functionality
  • Module Design and Use Cases (including Process Flow)


Pharmacy and Inventory

  • Outline of vision for pharmacy in OpenMRS (1.6)
  • Best practices in integration with 3rd Party Pharmacy Systems
  • List of potential Pharmacy Systems.


Training Sessions

  • BIRT Tutorial
  • HTML Forms
  • Annotation based MVC: Example code and a quick tutorial would be
  • Use of Liquidbase in OpenMRS: General theory about the power Liquidbase gives OpenMRS and how it is used in
  • Extending the OpenMRS datamodel: Best practices on extenting the OpenMRS
  • Core OpenMRS widgets (Patient Lookup) and JavaScript Frameworks: General discussion and best
  • Developing with OpenMRS Conventions (Testing,
  • AOP: Examples and
  • Reporting Module: Design ideas behind the 1.5 reporting framework (and how it relates to previous reporting methods), Roadmap and Technical Overview
  • Discussion on reusability and how to leverage/manage components.
  • Tutorials on other development issues (JSTL, taglibs, portlets, classloader issues, Spring trickiness, etc).


Scratch Pages for the Week