OpenMRS Developer Training Week 8-February-2010
Contents |
Regenstrief Institute is hosting a free-of-charge developer training week at Regenstrief Institute, 410 W 10th St, Indianapolis, IN USA 46202 in Room 1110 (Room 1130 Myers Auditorium at Wishard Hospital Room 1130 on Wednesday). Portions of the workshop will be webcast for those not able to attend in Indianapolis; viewing information is below.
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 Step-by-Step Installation for Developers
- Medium level of Java proficiency
FAQ's
- Where are the training locations? See this Google Map 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 PANACeA_Training_Workshop.
- Will food be provided? Lunch will be on your own. All participants are invited to Creation Cafe 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, Feb 8th
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 Datamodel Walkthrough - Quick discussion on main sections of Data Model and how they relate to the webapp
10:30 Technical Overview - API Layer vs Web Layer
- API: Java Domain Objects
- API: Service/business vs Database layers
- Web: MVC Architecture
- Modules
11:00 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 Intro to Module Framework 2:45 A basic module controller + jsp page - Demo of adding a jsp page to OpenMRS via a module
- SVN checkout the following project: http://svn.openmrs.org/openmrs-modules/devexamples/jspexample/trunk
3:15 Coffee/Tea/Diet Coke Break 3:30 Workshop - Hands-on work with a hw assignment and getting attendees comfortable with modules
4:45 After Action Review
Tuesday Feb 9th
9:00 AM Datamodel Changes in OpenMRS Core - We use liquibase for incremental changes
- Data Model Update Conventions
9:30 Datamodel Changes in a Module - The Module Architecture uses the simplified sqldiff.xml
10:00 JSP and HTML Overview 11:00 Simple hibernate mapping overview 12:00 PM Lunch at Buggs Temple 2nd Floor (optional, self-pay) 1:15 How to write module controllers using annotations - Spring Annotations
- http://static.springsource.org/spring/docs/2.5.6/reference/mvc.html#mvc-annotation
- My Favorite Patients MVC Example
- Other examples: Annotation-driven_Spring_MVC and Annotation_MVC_Example_for_Cape_Town
- An example of doing a display+submit+validate+re-edit workflow (using the session) can be found in the requestaccounts module
2:30 Using the API to Change the Database in a module controller - SVN checkout the following project: http://svn.openmrs.org/openmrs-modules/devexamples/jspexample/branches/jspexample-favorite-patients/
3:15 Coffee/Tea/Diet Coke Break 3:30 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 1) 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 2) 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:45 After Action Review
Wednesday Feb 10th
In case of snow, call 317 423-5500 for HITS building open/close status
- NOTE: Wednesday will held in
Room 1130Myers Auditorium at Wishard HospitalRoom 1130
9:00 AM Demonstration of yesterday's homework 9:30 AM Intro to Extension points in a module - Module Extension Points
- Do an svn update on http://svn.openmrs.org/openmrs-modules/devexamples/jspexample/branches/jspexample-with-custom-object and look at the "example.jsp" page.
- Specific changes for extension points: http://dev.openmrs.org/changeset/12016
10:00 Overview of Interfaces/Classes needed for services 11:15 API Save Handlers 12:00 Sandy/Jesse have volunteered to order Jimmy Johns (optional, self-pay) 1:15 Intro to JQuery Framework 1:45 Intro to DWR - OpenMRS DWR
- See http://dev.openmrs.org/changeset/12027 for the changes to the jsp-with-custom-object dwr changes
2:30 Coffee/Tea/Diet Coke Break - Coffee break Image 10-feb-2010 2:45 HTML Form Entry Walkthrough - Creating a simple form in the HTML Form Entry module
- HTML_Form_Entry_Module_HTML_Reference
3:30 Workshop - Given an example paper form, redesign it in an html form entry form
4:45 After Action Review
Thursday Feb 11th
9:00 AM Review of html formentry homework from yesterday 10:00 The OpenMRS Community : Developers Conference Call The weekly developer's conference call is an important part of the community process. The conference room will be dial into the call and cover weekly topics. 2010-02-11 Developers Conference Call
11:00 Lunch at Buggs Temple 2nd Floor (optional, self-pay) 1:00 PM What is AOP? How and when to use Aspect Oriented Programming in a module
2:00 Advanced debugging techniques in core and modules 2:30 OpenMRS Trac tickets 3:30 Workshop: Patient Notes Exercise 4:45 After Action Review
Friday Feb 12th
9:00 AM Workshop: Patient Notes Exercise 10:25 Overview of Workshop 11:30 Break for lunch (various locations) 1:15 PM Whirlwind tour of other things people are doing with OpenMRS 2:00 Look at a complicated module, and then dive into its code - Which module? Formentry, htmlformentry ?
3:00 Coffee/Tea/Diet Coke Break 3:15 Running the unit tests 3:30 Authentication/authorization - How are privileges defined?
- How do API method specify authorization requirements?
- How do jsp pages require authorization requirements?
4:00 Code Review Overview of the Code Review process and an example using a current ticket with a patch attachment
4:45 After Action Review
Ideas for topics
- How do the initialization filters work? -Ben 7 (30min)
- Concept dictionary management ? -Ben 4
- How to rebrand OpenMRS as an implementer 2
- Intro to eclipse 2
Participating Remotely
If you are not able to travel to Indianapolis, Indiana University has secured several channels to participate remotely. Although it will not be feasible to participate in the hands-on practice activities, we will still broadcast as much of the workshop as possible to maximize your learning opportunities.
Audio only
A US telephone conference number will be provided to listen-in to the event and ask questions. For those in other countries, User:Mjdowney will arrange a Skype link to the conference throughout the week. Please contact him on Skype to be connected to the call. Please mute your telephone/microphone/speakerphone unless and until you have a question.
- Dial +1 812 856 7060
- Enter the video bridge number followed by the # (pound, hash, octothorpe, square) symbol: 118 #
H.323 Videoconferencing
- Note: On Monday, many participants who joined via H.323 did not mute their audio. This led to significant disruptions to other participants on H.323 and the online streaming video who heard music and side conversations instead of the training discussions. Do not join with H.323 unless (a) you know how to mute your system's microphone, and (b) you do so unless and until you have a question. Please do not use Ekiga clients to connect; they are not compatible with Indiana's video bridge server. If you can not meet these requirements, your best option is to use the web stream (see below) and call in to the audio number (see above) if you would like to ask questions.
Video of the presenters, participants, as well as any on-screen demonstrations and presentations will be broadcast over IU's H.323 videoconferencing bridge. Many institutions use H.323-based videoconferencing equipment in meetings rooms, such as Polycom or Tandberg. A list of open-source H.323 endpoint software is also available. See IU's H.323 connecting information for details and the IP address. The event will be broadcast in video bridge 118 throughout the week. Your H.323 software will allow you to view live video in the conference room, the PC used to display applications, and can also broadcast video from your location. In some cases, audio is not broadcast over the H.323 software and you will need to call in with the telephone number above.
Online web stream
Alternatively, if you are not able to run H.323 software, a web stream of the event will also be available at the URL's below. We are currently looking at alternative stream platforms, but for now you will need either Microsoft Silverlight or Windows Media Player. Moonlight is an open-source implementation of Silverlight for Linux platforms, but is has not yet been tested. VLC is working too as you can see here.

