Please note, this is a contributed module from community. Bahmni, as of v0.92, does not bundle/package this as part of it distribution. Please contact "Possible Health" team for additional information. |
Assuming you have Bahmni installer latest version installed and running successfully. (Tested with 0.89 version, should work with previous version as well)
Download and install dhis-integration rpm from https://github.com/Possiblehealth/possible-artifacts/blob/master/90-artifacts/dhis-integration-1.0-1.noarch.rpm (or build latest yourself from here: https://github.com/Possiblehealth/dhis2-integration)
yum install dhis-integration-1.0-1.noarch.rpm |
Update the properties file for DHIS2 integration app, located at '/etc/dhis-integration/dhis-integration.yml', with right configuration.
Key | Description | Example |
---|---|---|
openmrs.root.url | Url to access Openmrs service | http://localhost:8050/openmrs/ws/rest/v1 |
bahmni.login.url | When user isn't logged in, then user is redirected to this url. | https://ehr.possible.org/bahmni/home/#/login?showLoginMessage |
reports.url | Bahmni reports url. Used for downloading reports. | https://ehr.possible.org/bahmnireports/report |
reports.json | This file contains configurations of DHIS2 reports. | /var/www/bahmni_config/openmrs/apps/reports/reports.json |
dhis.config.directory | This folder contains DHIS2 integration configurations program wise. | /var/www/bahmni_config/dhis2/ |
dhis.url | The DHIS2 government server instance url. | Ex. 1: http://100.100.100.100:8080/ Ex. 2: http://200.100.20.30:8888/hmistest/ Note that the url could be at domain or ip address level (ex1) or could be at a specific path(ex2) |
dhis.user | The username to access DHIS2 instance. | username |
dhis.password | The password for the DHIS2 user. | password |
openmrs.db.url | Mysql connection url to access "openmrs" database. Set valid user and password in the url. | jdbc:mysql://localhost/openmrs?user=openmrs-user&password=password |
submission.audit.folder | All DHIS2 submissions are stored in this directory. Ensure the directory exists and "bahmni" user has access to it, or configure a different directory. | /dhis-integration-data |
server.port | Server config. Port for server to listen to. | 8040 |
server.context-path | Server config. Mapping incoming requests. | /dhis-integration/ |
log4j.config.file | Server config. Properties file for logger of dhis-integration server. | log4j.properties |
Download and place the ssl.conf file.
cd /etc/httpd/conf.d/ wget https://raw.githubusercontent.com/Possiblehealth/possible-config/89662e8e823fac3dbcaf111aa72713a63139bb03/playbooks/roles/possible-dhis-integration/templates/dhis_integration_ssl.conf |
Configure Bahmni landing page to show DHIS2 integration app.
Insert the following in "/var/www/bahmni_config/openmrs/apps/home/extension.json" file
"possible_dhis_2_integration": { "id": "possible.dhis2Integration", "extensionPointId": "org.bahmni.home.dashboard", "type": "link", "label": "DHIS2 integration", "url": "/dhis-integration/index.html", "icon": "fa-book", "order": 11, "requiredPrivilege": "app:reports" } |
Ensure Bahmni reports service is installed and running successfully.
service bahmni-reports status ##should be running |
Restart ssl and dhis-integration services.
service httpd restart service dhis-integration restart |
Now the DHIS2 integration app is available on landing screen, given that the user has reporting privileges.
Once you open the app you land on DHIS integration app page, where you select the month and year for given program, type a comment and submit report.
Put the following configuration in the concatenated report to make it DHIS2 program.
"DHISProgram": true, |
Example: Safe motherhood program
DHIS configuration file should have the following structure.
{ "orgUnit": "<orgUnitId | find it from DHIS instance>", "reports": { "<name of 1st sub report | find it from reports.json>": { "dataValues": [ { "categoryOptionCombo": "<category option combination id | find it from DHIS instance>", "dataElement": "<data element id | find it from DHIS instance>", "row": <row number of the cell | find it from output of the SQL report>, "column": <column number of the cell | find it from output of the SQL report> }, { "categoryOptionCombo": "<category option combination id | find it from DHIS instance>", "dataElement": "<data element id | find it from DHIS instance>", "row": <row number of the cell | find it from output of the SQL report>, "column": <column number of the cell | find it from output of the SQL report> }, ............more data element mappings............ ] }, "<name of 2nd sub report | find it from reports.json>": { "dataValues": [......] }, "<name of 3rd sub report | find it from reports.json>": { "dataValues": [......] }, ............more sub report mappings............ } } |
Key | Description |
---|---|
orgUnit | This is the organisation unit ID from DHIS |
reports | This is list of reports which are the inner reports of concatenated report of the program. Each report name is a unique key in this object. 'Antenatal Checkup' is one of the inner reports configured in concatenated report, for example. |
dataValues | This is list of data element mappings. Each mapping maps a cell in SQL output to a dataElement in DHIS. |
categoryOptionCombo | This is the 'category option combination id' of the dataElement in DHIS. |
dataElement | This is the 'data element id' of the dataElement in DHIS. |
row and column | This 'row and column' numbers refers to a particular cell in the output of configured SQL. |
Notes: To find out the orgUnit Id, dataElement Id, category option combo Id do the following: