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