Please find below a quick brainstorm of a course structure on OpenMRS Dev with a focus on extending the reference application. This is by no mean exhaustive; the topics, section grouping and order can certainly be improved (please feel free to shout).
COURSE OVERVIEW: the key objective of the course is to equip a developer to confidently customize and extend the reference application. This is not a detailed course on implementation, but it will touch on how to configure OpenMRS (it’s important to know what’s available before attempting to do dev). The course focuses on how to implement actual use cases from the field. The development of the core platform is out of the scope of this course.
SECTION 1 – Introduction to OpenMRS
- What is OpenMRS (quick overview on health informatics, EMRs and OpenMRS)
- Why Open MRS (background and context where OpenMRS emerged, why it thrives, etc.)
- OpenMRS Community (and values)
- Resources and communication tools
- Why and how to contribute (roadmap and growth path)
SECTION 2 – OpenMRS Overview
- OpenMRS flavors (quick mention of other projects based on OpenMRS platform)
- Introduction to the reference application
- Installation of the reference application
- Quick demo of the reference application (main flows)
- Extend OpenMRS through modules (quick demo + pointer to a list of available modules)
SECTION 3 – OpenMRS Architecture
- Layered architecture
- Data Model
- Modular architecture
SECTION 4 – OpenMRS configuration
- Updating metadata; process to get new concepts added to OpenMRS, etc.
- To code or not to code? (note on how to know when it is necessary to write code vs configure OpenMRS or re-use an existing module)
SECTION 5 – Configure development environment
- OpenMRS SDK: installation and basic operations
- Configure eclipse
- How to set up remote debugging
- Etc.
SECTION 6 – Extend patient registration
- Add new fields without coding? (not sure if this is possible)
SECTION 7 – Introduction to module development
- Types of module; when to use what
- How to create a basic platform module
- How to create a basic reference app module
- How to create a basic OWA module
SECTION 8 - Introduction to form entry module
- How to install the form entry module
- Add concepts/observations to a form
- Add UI components/widgets to the form (through tags)
SECTION 9 – Dev new page (including the extension of the DB)
- Back-end & front-end components: liquibase DB script, DAO, Service, Controller, JSP/GSP
- Demo creation of a basic page for each CRUD operation
SECTION 10 – Create widgets for the dashboard
SECTION 11 – Create configuration pages
SECTION 12 – OpenMRS Security
SECTION 13 – Create reports
SECTION 14 – Internationalization and localization
SECTION 15 – Customize look and feel
SECTION 16 – Practical implementation project
- That helps practice all the sections of the course