OpenMRS highlevel architecture

Hi @ralphy I think your diagram is pretty close, may be I can shade some light on a few things here and there.

In the Presentation layer, I think those are more like actual implementations rather than the technologies and frameworks being used, the technologies are primarily HTML, CSS, Javascript along with some libraries and JSP for the legacy UI while for the reference application it is GSP (groovy). The REST API is really another layer atop of the service layer and supports both JSON and XML.

The glaring thing that is missing is spring which is kind of like the glue that brings most things together by providing the MVC framework, dependency injection, AOP, transaction management and its integration with hibernate provides the data access layer. FHIR sits on top of the service layer while HL7 is part of the service layer and isn’t used for access to the database. Hibernate is the actual DAO implementation that we use to access the database which also in turn uses JDBC at its core.

Tomcat is just one of the application servers where OpenMRS can be hosted and it isn’t part of the service layer, in fact it isn’t part of OpenMRS.