What is an OWA?
How to write an OWA
Installing & Creating an OWA
Editing an Existing OWA
This section features an overview of when OWAs can be used in OpenMRS development.
Open Web Apps (OWAs) are similar to standard websites, but are packaged apps that are contained in a zip file. They can be accessed online but can also be installed and downloaded to a device to work offline. OWAs can also access APIs, mainly the OpenMRS REST API, that allow the device to use features like a calendar or camera offline, compared to some websites that do not allow this access.
OpenMRS like many open web apps follows an MVC architecture. MVC stands for Model, View and Controller. The Model is where data objects are stored. The model does not interact with the view at all. As seen in figure 1.1, the model only interacts with the controller. The controller, is where all the business logic takes place. The view is what is displayed to the user. The view is where the client interacts with the app. The view interacts with both the controller and the model. The view sends requests to the controller which then sends information back to the view.
Currently, the new OWAs for OpenMRS should be written in React. OWAs that are written in Angular should be organized into components to help facilitate the migration to the most recent version of Angular.
To learn more about Angular, React, and jQuery, go to https://radar.openmrs.org.
This section features dependencies needed to install and work on an OWA along with languages commonly used.
npm install -g yo
These tools are recommended for the development environment.
Link to see how to install and create an OWA: https://wiki.openmrs.org/display/docs/Open+Web+App+Development+Workflow#OpenWebAppDevelopmentWorkflow-2.InstalltheOpenWebAppsmodule
Observation Admin OWA
The purpose of Obsadmin OpenMRS Open Web App is for a Data Manager who might want to clean up a patient’s data. This will allow a Data Manager to go in a fix incorrectly recorded data. All of the code for the OWA can be found in the GitHub repository for the project, and the repository includes instructions to download, install, and test the OWA.
Concept Dictionary OWA
The purpose of this OpenMRS OWA is providing a single place to add, edit, manage, and view concepts within OpenMRS. It is built using Angular, and can be deployed using NPM. All of the code for the OWA can be found in the GitHub repository for the project, and the repository includes instructions to download, install, and test the OWA.
System Administration OWA
The System Administration OWA aims to migrate the legacy functionalities to the modern open web apps. It increases the user experience and feasibility of the legacy functionalities, extends the usage of the legacy functionalities with REST APIs, extends the administrative features using existing functionalities, and improves the problems which are identified in the legacy UI model.