Platform Module (Maven archetype) and Open Web Apps

Application Name: Platform Version Number: 2.0.1

Question: I’m a total beginner and I just need some clarification. I have created a module using the maven archetype and it works just fine in the admin section of openmrs.

Now I want to create a user interface for my module in the openmrs homepage. Can I use Open Web Apps for that? If so, can you point me in the right direction (some link to tutorials maybe) as to how I may be able to achieve what I need to do? Any help would be appreciated! :slight_smile:

What is the functionality you’re attempting to build?

If you’re going to add a new screen, and you can do this by using the existing back-end API via REST, you can do this with just an Open Web App.

Writing an Open Web App is like writing any JS application. An example of one is here: https://github.com/rkorytkowski/openmrs-owa-conceptdictionary

I see. So, are you saying that I can use Open Web Apps together with the module I created with Maven?

My advice would depend on your answer to this question.

Broadly:

  • a module allows you to extend the OpenMRS API, and inject server-side code.
  • a module may also provide a user interface (but in the long term we want to move away from doing this)
  • an open web app can only provide a user interface; it cannot inject server-side code. (This is our preferred UI approach when possible)
  • you may also include an open web app inside a module, if you need to extend the API and add a UI.

The module I’m working on is quite broad, but right now I’m trying to build a patient registration functionality. I think your 2nd or 4th bullet point is what I need to do but I haven’t a clue how.

Have you looked at the existing Reference Application, and its Registration App (which is configurable)?

I think this is the most modern (and only?) example of a module that defines its UI in an OWA: https://github.com/openmrs/openmrs-module-metadatamapping