JavaScript Ecosystem
This page will be used to document the progress of the currently active project to manage and develop JavaScript tooling for OpenMRS.
Project Lead | @Pascal Brandt |
Contributors | All feature requests and code contributions welcome! |
- 1 Overview
- 2 Projects
- 2.1 General Tooling
- 2.1.1 Open Web Apps Module
- 2.1.2 Yeoman Generator
- 2.1.3 JavaScript Library
- 2.2 Community Contributions
- 2.1 General Tooling
- 3 Style Guide
- 3.1 Linter
- 3.2 Vanilla JavaScript/Other
- 3.3 AngularJS
- 4 Resources
- 4.1 Documentation
- 4.2 JIRA Projects
- 4.3 Calls
Overview
This project aims to curate and harmonise the JavaScript work being done in the OpenMRS community and facilitate the development of broadly useful tooling.
Projects
The following projects exist in the OpenMRS JavaScript ecosystem.
General Tooling
The JavaScripts projects below are supported by the OpenMRS community and are intended to be general enough to be usable by anyone wanting to build OpenMRS applications using JavaScript. You can also us the OpenMRS SDK to create and deploy an OpenMRS Open Web App.
Open Web Apps Module
The Open Web Apps Module allows developers to build JavaScript/HTML/CSS-only apps that interact with the OpenMRS REST API and have them be statically served using the OpenMRS web application.
Yeoman Generator
The OpenMRS Open Web App Yeoman Generator is able to scaffold out the required boilerplate code and build tooling for an OpenMRS Open Web App. This allows you to get up and running almost instantaneously with building pure JavaScript/HTML/CSS applications on top of the OpenMRS platform.
JavaScript Library
The openmrs.js JavaScript library aims to be a JavaScript wrapper to the REST API with added functionality for common tasks.
Community Contributions
Many community members have already built excellent applications using JavaScript on top of the OpenMRS platform. Please feel free to add your work to this list:
Bahmni: OpenMRS distribution that integrates with other tools that aims to be an out-of-the-box hospital system
KenyaEMR: OpenMRS distribution for Kenya
eSaude EMR PoC: OpenMRS Point of Care application for Mozambique
ng-amrs: Angular.JS based UI application that is used by Clinicians, Patient care providers and other users
Concept Dictionary OWA: Concept dictionary functionality implemented as an OWA
Reference Application UI Library: It contains common utilities for developing OpenMRS UI
add your work here
Style Guide
OpenMRS uses the following JavaScript style guides.
Linter
Right now we are using ESLint for linting, since it's widely used, the project is highly active and it's very configurable. We recommend that you configure the build to fail on linting errors in order to keep code consistent and of high quality.
Vanilla JavaScript/Other
If you are using plain JS, React or some other framework, we recommend using the Airbnb JavaScript style guide. Airbnb provides ESLint configs for ES2015, as well as ES5 (see eslint-config-angular/legacy).
See the openmrs.js repo for an example usage in an ES2015 environement.
AngularJS
If you are developing an AngularJS application, please use John Papa's Angular Style Guide.
This ESLint plugin implements the recommended style guide. See the concept dictionary OWA repo for an example of how to use the plugin with Gulp.
Resources
The following links may be useful for JavaScript application developers.
Documentation
JIRA Projects
Calls