Pre-OpenMRS Hack-a-thon 2009
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
[edit]
Theme
The attendance schedules and themes for the days are outlined in the image below:
http://archive.openmrs.org/wiki/Image:Hack_a_thon_theme_2009.png
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.
[edit]
Agenda
[edit]
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
[edit]
Monday
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
[edit]
Tuesday
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.
[edit]
Wednesday
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
[edit]
Thursday
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
PHARMACY + LIMS JAD
Development Time / Training
Day Review
Evening event (possibly BRAAI / BBQ)
[edit]
Friday
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]
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.
[edit]
Objectives for Themes
[edit]
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.
[edit]
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?)
[edit]
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
[edit]
BIRT
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)
[edit]
Data Quality Control
Strategies for Implementing Data Quality Control in OpenMRS
Included in reporting or new module?
[edit]
SDMX-HD | DXF
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
[edit]
LAB Systems
Roadmap for LAB integration in OpenMRS
Features and Functionality
Module Design and Use Cases (including Process Flow)
[edit]
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.
[edit]
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).
API SAVE HANDLERS
[edit]