UI Framework Bake-Off Requirements

In order to compare different UI frameworks, we need to complete the following example in all of them:

[edit]

Set up the project

First, create a new clean project in your framework. Add the openmrs API JAR file however the framework. (You may use the 1.6.0 version, but you may need to wait for the spring-3.0 branch to be merged into trunk, and use that.)

[edit]

Patient dashboard, with tabs

Create a "patient dashboard" that has a header showing the patient's name and ID, and two tabs:

  • Demographics, showing the patient's age, sex, and address(es)
  • Encounters, showing a table of the patient's encounters.
    • Requirement: this "encounter table" must be a reusable widget. If the framework supports it, make it a native component. If not, make a taglib, or use a <jsp:include .../> or something similar.)

(Having a patient search page is optional. It's sufficient to ask people to go to openmrs/patient.form?patientId=123. Having a login page is optional. You're allowed to hardcode a Context.authenticate("admin", "test").)

More details: http://archive.openmrs.org/wiki/Image:Bake-off_requirement_1_-_dashboard.png

[edit]

Pluggable module

Next, create a "module" that adds another tab to the patient dashboard. This doesn't need to be a real OpenMRS module, but you need to show that starting your application with a JAR file in some /modules folder adds one more tab The tab should be called "Weights" and it should show:

  • a table of all encounters that have a weight
    • this must be implemented by re-using the encounter table component created for the encounters tab.
  • a graph of weight / time

More details: http://archive.openmrs.org/wiki/Image:Bake-off_requirement_2_-_module.png