Modules in DHIS 2
This is an overview of the modules in the system.
Core modules
dhis-api
The dhis-api module defines all the model objects the system uses and the Java interfaces that all other modules must implement. The API represents the contract the system has to fullfill, as well as the entry point the different modules use to communicate with eacother. When one of the modules want to talk to another module, they will refer to an instance of one of the Java interfaces in the API module. This way no module needs to know how any other modules are implemented, just what services they can provide.
dhis-services
The dhis-services module contains all the modules that implement the functionality described in the dhis-api module. Each module mirror one of the base packages found in the API module, for example org.hisp.dhis.organisationstore. The name of the module signifies what sort of implementation it contains. Currently there are two types: Default implementations and Hibernate implementations. The first is used when the module does not depend on any specific framework, usually when it doesn't offer persistance. The latter is used when the implementation uses Hibernate to persist model objects.
- dhis-service-aggregationengine-default
- dhis-service-core
- dhis-service-datamart-default
- dhis-service-datamart-sql
- dhis-service-dataprovider-hibernate
- dhis-service-dataset-hibernate
- dhis-service-expressionengine-default
- dhis-service-importexport-default
- dhis-service-indicatorstore-hibernate
- dhis-service-minmax-hibernate
- dhis-service-organisationunit
- dhis-service-user-hibernate
- dhis-service-validationengine-default
dhis-support
- dhis-support-hibernate
- dhis-support-test
- dhis-support-transaction
- dhis-support-webwork
Other core modules
- dhis-i18n
- dhis-useradminandsecurity
- dhis-options
- dhis-populator
Web modules
The dhis-web module contain the modules that make up the web based graphical user interface (GUI) to DHIS 2. The GUI code is based on WebWork and Velocity. Note that this is only one possible GUI implementation. It is possible, for example, to implent a Swing-based GUI. It would probably reside in a dhis-swing package or similar.
For more information about the web modules see the DHIS 2.0 web solution.
dhis-web-commons
The dhis-web-commons module contains classes and resources that all other web modules may use and depend on.
- dhis-web-commons
- dhis-web-commons-resources
Service functionality modules
These modules usually offer more complex interfaces to the services provided by the core.
- dhis-web-dataentry
- dhis-web-importexport
- dhis-web-datamart
- dhis-web-birtviewer
- dhis-web-dataview
- dhis-web-reporttool
- dhis-web-useradminandsecurity
- dhis-web-validationrule
dhis-web-maintainance
The dhis-web-maintainance module contains all the modules that give the user an interface for viewing, creating, updating and deleting model objects, such as organisation units, data elements and the like. Thus, these modules mirror the [CRUD] operations in the service layer. The child modules typically supply one HTML form for each of the CRUD operations.
- dhis-web-maintainance-datadictionary
- dhis-web-maintainance-dataset
- dhis-web-maintainance-organisationunit
- dhis-web-maintainance-user
dhis-web-portal
The dhis-web-portal module connects all the other web modules together in a common GUI. It supplies the module menu part of the GUI as well as managing communication between the different web modules.