Open Web Application for Order Entry
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.
.github Add PR template Aug 23, 2018
tests OEUI-294 : Add ability to navigate directly to Order Labs or Order Dr… Oct 24, 2018
.eslintignore OEUI-96: Fix lint error: error Using exported name 'axiosInstance' as… May 3, 2018
.eslintrc OEUI-98: Fix linting issues and proptype validations (#55) May 8, 2018
.hound.yml OEUI-29:Initial project setup (#3) Mar 16, 2018
.travis.yml Update .travis.yml Jun 19, 2018
LICENSE OEUI-29:Initial project setup (#3) Mar 16, 2018
bintray.json Update bintray.json Jun 19, 2018
jest.config.js OEUI-220: Implement sorting and Filtering (#152) Aug 24, 2018
package-lock.json fix failing bamboo build (#216) Dec 12, 2018
webpack.config.js fix failing bamboo build (#216) Dec 12, 2018

Build Status Coverage Status Codacy Badge



This repository contains the openmrs-owa-orderentry OpenMRS Open Web App.

The OpenMRS Order Entry UI is an application to support (drug) orders through UI For further documentation about OpenMRS Open Web Apps see Open Web App Wiki Order Entry UI OWA wiki.


Local setup instructions

# Get the project
git clone

# Move into the project directory
cd into openmrs-owa-orderentry

# Install the dependencies
npm install

# Create config.json

Create a config.json file in the top level directory following this template:

    'LOCAL_OWA_FOLDER': '/Users/name/openmrs-standalone-2.4/appdata/owa/',
    'APP_ENTRY_POINT': 'http://localhost:8081/openmrs-standalone/owa/orderentry/index.html'

"LOCAL_OWA_FOLDER" should point to the "owa" directory of your locally running OpenMRS instance, and
"APP_ENTRY_POINT" should point to the entry point of your app

## Linux/SDK example

For example in a link environment where I have OpenMRS running on port 8080 via the SDK in
directory "/home/mgoodrich/openmrs/haiti", I set config.json as follows:


## Windows/Standalone example

Locate the 'appdata/owa' directory and type the following command to get the path to the 'appdata/owa' directory and copy it to the clipboard.
pwd | pbcopy

An example of the path is: /Users/name/downloads/openmrs-owa-orderentry/appdata\owa

Modify the path to look like: /Users/name/downloads/openmrs-owa-orderentry/appdata\\owa/

Copy the path. Edit config.json as follows:
  "APP_ENTRY_POINT": "http://localhost:8081/openmrs-standalone/owa/openmrs-owa-orderentry/index.html"

Note: Start your cohort builder standalone server locally. Make sure you tomcat port is 8081, if not, change the APP_ENTRY_POINT localhost port to be the same as your tomcat port.

# Run the app
npm run watch

Production Build

You will need NodeJS 6+ installed to do this. See the install instructions here.

Once you have NodeJS installed, install the dependencies (first time only):

npm install

Build the distributable using Webpack as follows:

npm run build:prod

This will create a file called file in the root directory, which can be uploaded to the OpenMRS Open Web Apps module.

Local Deploy

To deploy directly to your local Open Web Apps directory, run:

npm run build:deploy

This will build and deploy the app to the /Users/name/openmrs-standalone-2.4/appdata/owa directory.
To change the deploy directory, edit the LOCAL_OWA_FOLDER entry in config.json. If this file does not exists, create one in the root directory that looks like:

  "LOCAL_OWA_FOLDER": "/Users/name/openmrs-standalone-2.4/appdata/owa"

Note: This could be different depending on your installed version and install location.

Live Reload

To use Browersync to watch your files and reload the page, inject CSS or synchronize user actions across browser instances, you will need the APP_ENTRY_POINT entry in your config.json file:

  "LOCAL_OWA_FOLDER": "/Users/name/openmrs-standalone-2.4/appdata/owa",
  "APP_ENTRY_POINT": "http://localhost:8081/openmrs-standalone/owa/openmrs-owa-orderentry/index.html"

Run Browsersync as follows:

npm run watch


Install npm packages dependencies as follows:

npm install --save <package>

To use the installed package, import it as follows:

//import and assign to variable
import variableName from 'package';

To contain package in vendor bundle, remember to add it to vendor entry point array, eg.:

entry: {
  app : `${__dirname}/app/js/owa.js`,
  css: `${__dirname}/app/css/owa.css`,
  vendor : [
    ...//other packages in vendor bundle

Any files that you add manually must be added in the app directory.


HTTP access control (CORS)

You may experience problems due to the Access-Control-Allow-Origin header not being set by OpenMRS. To fix this you'll need to enable Cross-Origin Resource Sharing in Tomcat.

See instructions here for Tomcat 7 and here for Tomcat 6.


Before using the Order Entry Open Web Application, the administrator should make the following one time configurations using the admin portal.

  1. Create an Encounter Type called Order Entry or any other name.
  2. Create a setting orderentryowa.encounterType whose value should correspond to the name given to the Encounter Type created above.
  3. Create an Encounter Role called Clinician or any other name.
  4. Create a setting orderentryowa.encounterRole whose value should correspond to the name given to the encounter role created in 3 above.
  5. Create a date format, setting orderentryowa.dateAndTimeFormat as the name, with a value of the date format, e.g. DD-MMM-YYYY HH:mm, in the global properties

NB: Not having any of the above configurations will result into an error notice. Please check more information here


In order to release, set a new version in package.json, bintray.json and app/manifest.webapp. Once you commit and push changes to github, go to and create a new release named after the version you want to release. Travis CI should pick up a newly created tag and deploy the release to Bintray at


MPL 2.0 w/ HD