OpenMRS has a modular architecture that allows modules to be easily added or removed from the system. Modules have full access to the system and can modify or enhance the behavior of the system. For example, the Sync Module adds the ability for an OpenMRS server to synchronize its data with other OpenMRS servers; the HTML Form Entry Module provides a way to create web-based forms for collecting data; and, the Flowsheet Module adds a new way for viewing information. Modules also provide a mechanism for adapting OpenMRS to local needs.
Some modules may be under development, but not yet published in the module repository. Many of these can be seen by searching github for repositories named openmrs-module-*.
You can learn how to write your own module.
Some of the available modules are documented here:
Note: some modules listed here have 'stub' documentation; they may not be fully documented. You can check out the source code and module repository for a better understanding of the module. Please edit the wiki page to add content if you do so! If you have questions or are looking for support, try these - Implementers: How to get support.