Skip to content
Basic decision support through Arden Medical Logic Modules for educational purposes.
JavaScript Java CSS Groovy
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

OpenMRS ArdenReminders Module


OMOD module for OpenMRS. Provides very basic decision support as Clinical Reminders on the Patient Dashboard, generated from Arden Medical Logic Modules (version 2.5) through Arden2ByteCode. Intended for educational purposes, not for clinical use.

Building from Source

You need Java 1.6+ and Maven 2.x+ installed. Use the command 'mvn package' to compile and package the module. A .omod file will be in the omod/target folder in the project directory.

Alternatively you can add the snippet provided on the Creating Modules page to your omod/pom.xml and use the mvn command:

mvn package -P deploy-web -D deploy.path="../../openmrs-1.8.x/webapp/src/main/webapp"

It will allow you to deploy any changes to your web resources (such as .jsp or .js files) without re-installing the module. The deploy.path argument is used to specify the location of your OpenMRS installation.


  1. Build the module to produce the .omod file.
  2. Use the OpenMRS Administration > Manage Modules screen to upload and install the .omod file.

Alternatively, if uploads are not allowed from through the web-interface, you can drop the .omod into the ~/.OpenMRS/modules folder (where ~/.OpenMRS is the Application Data Directory that your OpenMRS instance is using).
After placing the file there simply restart OpenMRS/tomcat and the module will be loaded and started.


After installing the .omod file, look for an Arden Reminders section on OpenMRS's Advanced Administration page to manage your Medical Logic Modules. Medical Logic Modules for which "Evoke" is enabled will be run when viewing a patient's Patient Dashboard and any messages generated by Arden WRITE statements will be reported in the Clinical Reminders widget. You may execute SQL queries on your OpenMRS database inside Arden curly braces blocks {} to retrieve any data required for your logic. All instances of the string __CURRENT_PATIENT_ID__ inside an Arden curly braces block will be replaced with the patient's ID, thus allowing for patient-specific queries:


    patient_exists := READ EXIST { SELECT * FROM patient WHERE patient_id=__CURRENT_PATIENT_ID__; };


The Arden MLM statement for importing callable MLMs is supported; pass the quoted name of an MLM as it occurs on the Overview list as an identifier:


    my_mlm := MLM 'My MLM';

    my_mlm_output := CALL my_mlm;

You can’t perform that action at this time.