Abstract
Currently, in order to extend the functionality of OpenMRS, you have to create an OpenMRS Module. This requires a fair amount of Java, Spring, Hibernate, JSP knowledge as well as knowledge of the OpenMRS Java API design. Furthermore, modules are often tied to particular OpenMRS version and are sometimes dependent on specific versions of other modules. All of these facts increase the barrier to extending the functionality of OpenMRS. With the OpenMRS REST API becoming more mature, it makes sense to be able to allow developers with just HTML and JavaScript knowledge to extend the functionality of OpenMRS. The goal of this project is to enable the use Open Web Apps (OWA) with OpenMRS (as has been done for DHIS2). OWA is a packed HTML/CSS/JavaScript into a zip package with a manifest.webapp file (a json), describing the OWA. The module allows packaging of the OpenMRS reference application components as an OWA that can be used by other OWA or modules.
Objectives
- It should be possible to upload an Open Web App to OpenMRS via the UI and the App should function as expected (expand the owa module).
- Build the core OpenMRS reference app element into components (suggestion to use Google Polymer)
- Add the components into the polymer designer (see packaged as an OWA - designer.zip)
- Use the polymer designer to create a webpage from the components
- Package the designed page as an OWA and downloadable as a zip
- Allow OWA to be pushed, downloaded, uploaded to/from Modulus.
- Build functionality from other modules (charting, reporting etc.) as Open Web App
- Build new workflows using the polymer designer and then released as an OWA
Suggest timeline
- Get to know my fellow peers and co-workers
- Throughout this period, I will as always be available on IRC to further discuss the proposal with members of the OpenMRS community so that I will be able to adjust or add things that I may have not thought of before.
- I will be actively engaged in discussions with my mentor to further understand and agree on the scope and requirements of the project.
May 19 – August 18:
- Make UI improvements to the OWA module
- Add core UI elements, like CSS, Reference app Style guidelines, buttons into a commons open web apps (call it: owa-commons)
- Add registration elements into the owa-commons
- Add patient dashboard elements into the owa-commons
Midterm:
- Add the elements into the designer
- Add owa to be deployed from within omod files
- Allow owa-commons to be installed from Modulus
- Extra credits if time remains
Resources
- Modules
- REST Web Services API For Clients
- https://developer.mozilla.org/en-US/Apps/Quickstart/Build/Intro_to_open_web_apps
- http://www.dhis2.org/doc/snapshot/en/user/html/ch28.html
10 Comments
Saptarshi Purkayastha
The module is ready for alpha release... Just need to make some minor UI changes, which Namrata Nehete is working on as we speak. What would be important as part of the GSoC to build a commons open web app that will allow other apps reusable OpenMRS components
user-2b8cf
Hi All,
I'm a B. Eng Software Engineering Undergraduate from University of Westminster. This is my first time in GSOC.
I was going through the ideas page and I'm quite attracted to this project idea.
I'm a proficient Java developer and I would like to involve this developer community.
Power Mukisa
HI Namrata Nehete, Saptarshi Purkayastha, I picked interest in this project, for gsoc. I cloned the project (https://github.com/sunbiz/openmrs-module-owa) onto my local machine, but am not really sure how to go on with it (deploy it, etc). Please advise on how i can "expand the owa module" as stated in the first objective.
Thanks
Power Mukisa
hey Namrata Nehete , Saptarshi Purkayastha, i installed the openmrs-standalone project, but failed to add the openmrs-owa module to the project. I get this error (below) when i try. please advise on how i should go on with this, because i want to see how the owa module is executed with the openmrs project, to understand how to contribute to it.
Error:
An Internal Error has Occurred
org.openmrs.module.ModuleException
Power Mukisa
Fixed the issues. There was another program messing with the tomcat. So i finally added the module to the openmrs project.
I just need a little clarification; From the core openmrs reference app element, which components should i make using polymer? What are the major components required to build an openmrs module?
Namrata Nehete
Hi Power Mukisa,
Replied to your email and gave you one small task.
Burke Mamlin
On the 2015-05-21 Developers Forum, Darius Jazayerimentioned that he would love to see OWA support real-time changes during development of the app (similar as is done in the UIFramework module).
Darius Jazayeri
Namrata Nehete, Saptarshi Purkayastha, andSandeep Raparthi, I would really really like to see this module released. I would like to start playing with this, and ideally teach the AngularJS tutorial at theOpenMRS Worldwide Summit 2015. Can this be released in the next week?
Namrata Nehete
Darius Jazayeri, We will be releasing v1 of OWA module tomorrow.
Pascal Brandt
I've tried the module and it works well! Looking forward to the release
.