In openIMIS, (nearly) everything is a plugin: even "low level" (and mandatory) features follow this principle.
In other words, even the following features are implemented as (interchangeable) plugins:
- Login (authentication)
Beyond these low level plugins, several plugins will be dedicated to configuration / administration
- openIMIS (as a whole) configuration
- User & Roles management
The real business needs will be implemented in dedicated plugins:
- Payers
- Locations & Health Facilities
- Medical Services and Items
- Medical Services and Items Price Lists
- Insurance Products
- Person & Families
- Policies
- Contributions
- Claim
Plugins (can) provide several types of archetypes, dedicated to the various openIMIS layers: openIMIS Mobile FE, openIMIS Web FE, openIMIS Online BE, openIMIS Batch BE,...
openIMIS can be deployed with an extra layer dedicated to implement a FHIR API, based on openIMIS core (base) modules.
Today the FHIR API is a unique module, but there is a open point on splitting it into separate modules (per FHIR resource?):
Code (static) analysis as well as unit tests coverage metrics of each module is automated via travis-ci and codeclimate. You can log into these tools via your github login. If you are registered in openIMIS github, you'll have access to openIMIS build job and code quality metrics.