This page provides a high-level (introduction) view of the OpenIMIS targeted (modular) architecture.
The transition (transformation) plan from current (2018) OpenIMIS implementation to this architecture is described in a separated page: Modular Transformation.
Modularity Levels
Modularity (and its integration counter-part) is considered at 3 distinct levels:
- Solution level, considering the solution as a coherent assembly of Software Components, like Client Registry, Shared Health Record system, Universal Health Coverage,...
- Software Component level, where components are decomposed into (activated or not) modules dedicated to fulfil the expected scope for them
- Entity level, where each concept hosted by a Software Component can be particularised to the specific needs of an implementation.
Solution level
At Solution level, the roadmap clearly position OpenIMIS as a component of OpenHIE platform.
The expected modularity at that level is achieved by:
- conforming to the OpenHIE platform standards (enforced via the OpenHIE Integration Layer)
- adopting the FHIR existing standards to expose OpenIMIS - managed concepts
Software Component & Entity levels
Software Component and Entity levels modularity are fully in the scope (controlled by) of OpenIMIS.
OpenIMIS is built modular "from the core on": even low level features (like login,...) and central features (like Insurance Scheme management,...) are built as a plugins of a core platform.
The core platform provides generic components (building blocks) to be used by / particularised in the various plugins and is split in 3 layers:
- Frontend(s) layer
- Backend layer
- Database layer
Although OpenIMIS is an assembly of components (themselves assemblies of plugins), deployments of OpenIMIS doesn't impose a distributed deployment.
The choice of isolating the various (server-side) components to dedicated infrastructure is taken according to each project's needs.
Within a project, scaling up by distributing components as the load increases is a very standard (and easy) operation:
OpenIMIS is NOT
- multi-tenant