From a4f0f5f981efe7c54938df08f3f32119e68da27a Mon Sep 17 00:00:00 2001 From: mahfuj Date: Mon, 23 Dec 2024 14:22:26 +0600 Subject: [PATCH] OpenMRS+ Architecture Document --- openmrs.md | 73 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) diff --git a/openmrs.md b/openmrs.md index 7e73ade..a1cf82c 100644 --- a/openmrs.md +++ b/openmrs.md @@ -179,5 +179,78 @@ However, the online centralized solution is being tested in three hospitals to a We can view hospital-wise total patient information and billing information through the SHR dashboard. It's contain hospital-wise patient OPD registration, Emergency registration, provider-wise consultant patient data, male-female ratio, area-wise diagnosis information, laboratory test-wise billing information, department-wise collection information, Bed occupancy rate, facility-wise bed status, etc. But it's not public. Because it contains sensitive information, only an authorized user can view hospital-wise patient data. SHR dashboard url: http://shrdashboard.dghs.gov.bd:5985/ +**FAQs: What is OpenMRS+ architecture??** + +# OpenMRS+ Architecture + +## Core Components + +### OpenMRS+ Overview +OpenMRS+ is composed of four services integrated using ATOM feeds. Each service publishes key state changes, and background jobs consume these feeds to sync across systems. + +### Application and Reporting Architecture +The architecture facilitates integration between application services: +- **Source** publishes state changes via RSS-like ATOM feeds. +- **Destination** services consume these feeds via background jobs. + +#### Integration Examples: +| Source | Destination | Source Resource | Destination Resource | +|------------|-------------|------------------|---------------------------| +| OpenMRS | Laboratory | Patient | Patient | +| OpenMRS | Odoo | Patient | Customer | +| OpenMRS | Laboratory | Lab Order | Draft Accession | +| OpenMRS | Odoo | Orders | Quotation | +| Laboratory | OpenMRS | Results | Encounter (lab results) | +| OpenMRS | Laboratory | Concept | Sample types, Lab Test | +| OpenMRS | Odoo | Concept | Drug | + + + +## OpenMRS Architecture + +### Technical Overview +OpenMRS is a Java-based framework with a modular architecture that includes a core application and optional modules to extend functionality. + +#### Key Layers: +1. **User Interface (Presentation):** Built on Spring MVC, DWR, JSP, JavaScript, and AngularJS for newer implementations. +2. **Service Layer:** Manages business logic using Spring AOP and Dependency Injection. +3. **Data Access Layer:** Uses Hibernate and Liquibase to abstract and manage relational database interactions. + +### Modular Architecture +OpenMRS modules allow extension of core functionality without waiting for system-wide releases. These modules have similar architecture to the core and consist of UI, service, and data access layers. + +### Authentication and Authorization +OpenMRS enforces data confidentiality through a granulated permissions system: +- **Privileges:** Actions like "Add Patient" or "Update Concept". +- **Roles:** Collections of privileges, with optional inheritance. +- **Users:** Assigned roles to determine system access. + +## Associated Frameworks and Technology Stacks + +### Hibernate +- Provides object-relational mapping between database tables and domain objects. +- Enforces lazy loading for performance optimization. + +### Spring MVC +- Implements the Model-View-Controller design pattern. +- Uses annotations and JSP files for the legacy user interface. + +### Build Management +- **Tool:** Apache Maven. +- **Artifacts Maintained:** + - Releases (Maven and Ant-built). + - Snapshots for development versions. + - Modules and third-party libraries. +- Maven repository: [SonaType Nexus](http://mavenrepo.openmrs.org/nexus/). + +## Summary +- **Core System:** Modular architecture with extensibility. +- **Key Layers:** Presentation, Service, and Data Access. +- **Frameworks:** Spring, Hibernate, Maven. +- **Security:** Role-based access control for confidentiality and system security. + +--- +For additional details, explore the OpenMRS DataModel and architecture at [OpenMRS University](https://openmrs.org). + **Conclusion** The implementation of OpenMRS+ across 100 public hospitals in Bangladesh demonstrates how tailored technological solutions can address infrastructure challenges and improve healthcare outcomes. The initiative showcases a pragmatic approach to overcoming connectivity limitations through the dual deployment modalities—on-premise servers and centralized online solutions—positioning Bangladesh as a leader in leveraging digital technology for enhanced public healthcare. \ No newline at end of file