Bahmni EMR has follows a typical web application client-server architecture.
Client-side code base organisation
Bahmni EMR is made of multiple pieces of client-side code, see below. The main web app is delivered through the Bahmni Apps project.
- Client-side code repos:
- Git hub repo links:
- https://github.com/Bahmni/openmrs-module-bahmniapps (Angular JS)
- https://github.com/Bahmni/form-controls (React)
- https://github.com/Bahmni/implementer-interface (ReactBahmni Apps (AngularJS, code base here)
- Form Controls (React, code base here)
- Implementer Interface (React, code base here)
- Git hub repo links:
- Most of the client side code is in Angular Js AngularJS while some parts of it is implemented using React. Therefore a prior knowledge of AngularJS will definitely help understand the code base.
- openmrs-module-bahmniapps : This is where almost the entire code for Bahmni EMR resides. Please also refer this to know how to make/deploy code changes to this code base.
...
- to the wiki page 'Setting up Bahmni Dev Environment' to get going as a developer with Bahmni.
Bahmni EMR is articulated around so-called 'apps', with each app being accessible via its own tile on the main landing dashboard:
The code for each app in bahmni apps can be found in the corresponding folder subfolder based on the app name in openmrs-module-bahmniapps/ui/app/<appname> (unless it is a custom display control. A prior understanding of Angular JS will aid in understanding the code base.).
The service layer (*Service.js) talks to the transacts with the server via Rest or Web API in the modules either REST or other web services APIs provided by the backend modules that are deployed in /opt/openmrs/modules in on the server.
Server
...
-side code
The server side artifacts of Bahmni EMR is made of Openmrs Core plus a set of OpenMRS modules.
Technologies, Tools, Frameworks: Java, MySql, Maven, Spring, Hibernate.
To understand the server side code we need to understand the openmrs OpenMRS modular architecture. Here are few links which can help:
...
The different modules that come by default with Bahmni installation can be found that that are part of the default Bahmni distribution can be found here.