OpenMRS Developer Training Week 8-12 February-2010

OpenMRS Developer Training Week 8-12 February-2010

Location

A free-of-charge developer training week will be hosted by the Regenstrief Institute at 410 W. 10th Street, Indianapolis, IN, USA, 46202

Room 1110: Monday, Tuesday, Thursday, Friday
Room 1130: Wednesday

Portions of the workshop will be webcast for those unable to attend in Indianapolis. see below for viewing information

Participation Survey

Please help us make better training materials in the future and complete this short anonymous survey if you participated in the event:

Prerequisites

  • Have an installed OpenMRS on a laptop

  • Have an installed Eclipse workspace

  • See

FAQ's

  • Where are the training locations? See this

    for both training locations and places to eat in the area.

  • What should I bring? See the requirements in the above section. You should bring a laptop in order to fully participate in the training. If you don't yet know enough about OpenMRS on Monday, it should be possible to learn enough on Monday to install it on your laptop Monday evening in advance of Tuesday's training.

  • Will wi-fi be available? Yes. Connection information will be available on Monday morning when you arrive.

  • Are there any handouts or advance training materials? No, there will be no official handouts for the workshop. However, if you are not very familiar with OpenMRS, you may want to see the resources for the

    .

  • Will food be provided? Lunch will be on your own. All participants are invited to

    next to Regenstrief for lunch on Monday. See the agenda for more information about lunch. Other dining options are available nearby, and vending machines are available in the building.

  • Are there any evening events scheduled? Not at this time, although it is possible that people may arrange an ad-hoc meetup or two.

Agenda

This is in early draft form and will likely change significantly.

Monday, 8 February 2010

9:00 AM

Opening Speech

  • Training overview

  • Setting of Expectations

  • Request for feedback

9:10 AM

OpenMRS Background

  • History of OpenMRS

  • Overview of OpenMRS

9:30 AM

Datamodel Walkthrough

  • Quick discussion on main sections of data models and how they relate to the webapp

10:30 AM

Technical Overview

  • API Layer vs Web Layer

    • API: Java Domain Objects

    • API: Service/business vs Database layers

    • Web: MVC Architecture

  • Modules

11:00 AM

Lunch at Buggs Temple 2nd Floor (optional, self-pay)

1:00 PM

How to use the OpenMRS API in a Unit test

  • Description of OpenMRS unit tests (which use junit)

  • Where are unit test methods?

  • A look at how the API is laid out and how to make simple calls

  • How to run unit tests

2:00 PM

Intro to Module Framework

  • Basic Module structure

2:45 PM

A basic module controller + jsp page

3:15 PM

Coffee/Tea/Diet Coke Break

3:30 PM

Workshop

  • Hands-on work with a hw assignment and getting attendees comfortable with modules

4:45 PM

After action review

Tuesday, 9 February 2010

9:00 AM

Datamodel Changes in OpenMRS Core

  • We use liquibase for incremental changes

  • Data Model Update Conventions

9:30 AM

Datamodel Changes in a Module

  • The Module Architecture uses the simplified sqldiff.xml

10:00 AM

JSP and HTML Overview

11:00 AM

Simple hibernate mapping overview

12:00 PM

Lunch at Buggs Temple 2nd Floor (optional, self-pay)

1:15 PM

How to write module controllers using annotations

2:30 PM

Using the API to Change the Database in a Module Controller

3:15 PM

Coffee/Tea/Diet Coke Break

3:30 PM

Workshop
Hands-on work with a hw assignment and getting attendees more in-depth with modules

  • Build on the RoomTemperature module: http://svn.openmrs.org/openmrs-modules/devexamples/jspexample/branches/jspexample-with-custom-object# Add a jsp page to add a new RoomTemperature object to the table.

    • Involves adding a method to the JspExampleService/JspExampleDAO

    • Involves adding a method to ExampleController.java to accept data

    • Involves adding html to a jsp page that can submit data to the new method# Add a jsp page that displays all objects in the RoomTemperature table

    • Involves adding a method to the JspExampleService/JspExampleDAO to get all RoomTemperature objects

    • Involves adding a new jsp page to list off all RoomTemperature objects

    • Involves adding a method to ExampleController.java controller class
      Solution to homework: http://dev.openmrs.org/changeset/12023

4:45PM