OpenMRS+ Architecture Document

This commit is contained in:
mahfuj 2024-12-23 14:22:26 +06:00
parent 3d487d7153
commit a4f0f5f981

View File

@ -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.