Integrating CFL’s Messages Module into O3

Primary mentor

Backup mentor

Assigned to


The CFL Messages module allows configuring a Message Service. Message Service is a combination of: schedule (an SQL script really) according to which the system should send messages to patients; Apache Velocity scripts which generate specific messages.

In practice, using the Messages module in conjunction with SMS module, system administrators can create visit reminders, missed visit reminders (send message a day after scheduled visit date), pill reminders (send text message everyday for x days) just through configuration (albeit complex configuration).

The integration between other OMRS functionality is made via schedule SQL query, so no coding is required in the other modules to use it as source of data for schedule.

Some general documentation regarding the module can be found here.

The goal of the project could be:

  1. Making an O3 UI patient-based calendar with visualisation of a schedule, showing when a message from a particular Message Service is going to be sent to the Patient. There is 2.x style customised UI for it, not useful for O3.

  2. Making an O3 UI, aimed at system administrators, to facilitate configuration of Message Services - create new one, upload SQL queries, configure configuration options.

Required Skills

  • Familiarity with REST interfaces
  • Familiarity with OpenMRS
  • React

Project Rating and Length


175 hours


  • Abstract Goal
    • Making Messages module easier to use for O3-based OpenMRS distributions by providing an O3-compatible UI.
  • Mandatory Goal
    • Making an O3 UI design for Patient's calendar - an overview of an expected messages
      • Patient's message calendar page design, reviewed and shared here.
    • Implementing O3 ESM with the page. 
  • Optional Goal
    • Making an O3 UI design for Patient's Messages configuration - current Manage Messages and Create Messages combined
    • Implementing O3 ESM with the page.
    • Making an O3 UI design for global Messages configuration
    • Implementing O3 ESM with the page.

Not an objectives

  • Ensuring the Messages module is included in OpenMRS 3.x Reference Application is not an objective of this project.