RDQA Metadata Transfer
Program Metadata Tansfer
The metadata from a DHIS2 program contains items necessary for rendering within the enabled DHIS2 server. The DHIS2 server includes an Import/Export tool to generate a JSON or CSV file with all configurations in the server. However, certain attributes may need cleaning to prevent errors during import to the target server. These attributes typically involve references to users that don’t exist in the target server. To streamline the process and avoid manual deletion of each attribute, we can use the Program Configuration App (PCA). You can read more about the PCA here.
The PCA offers the same options as the Import/Export tool available within DHIS2 but automates the process to eliminate any references to organization units, users, or user groups that may cause errors in the target server.
To export the program using the PCA:
Open Program Configuration App within DHIS2.
Search for 'RDQA' using the filters.
Click on the three dots in the upper-right corner of the RDQA Program.
Select 'Backup/Restore'.
Choose 'Export JSON Metadata'.
Select ‘Another Server’ in the target server
Click on the ‘Download’ file
Log in into the target server
Open the Import/Export tool
Select the ‘Metadata Import’ Section
Upload the file and select the JSON generated in the previous steps
Click on the ‘Start dry run’ button
Check the Summary Table to ensure that there are no issues.
Once the process has been completed without any problems, click on the ‘Start Import’ button.
Verify that the RDQA already exists on the server using the Maintenance App.
Dashboards Transfer
RDQA Program has some Dashboard used to review the Program and review the data over time, those Objects are not included in the RDQA Metadata, so we need to use the Import/Export tool in the source server.
Log in into the source server
Open the Import/Export tool
Select Metadata Dependency Export
Select ‘Dashboard’ in the Object Type field
Type ‘RDQA’ on the object field
Check the followings options
JSON
Uncompressed
Skip sharing and access settings
Click on the ‘Export Metadata Dependencies’ button
we need to open the JSON file using any tool to modify code, we recommend use VSCode , once the file has been opened, we need to eliminate the following attributes:
lastUpdatedBy
createdBy
Once the JSON file has been cleaned, we import the JSON in the target File
Verify the Summary Report to ensure there are no issues
Verify the Dashboard has been created properly
Organisation Units Tranfer
The metadata or data may include some organizational units that don’t exist on the target server. In the case of events with different organizational units, issues may arise when attempting to import them.
To export the organization, we need to use an API request. You can use either Postman or the browser, but make sure to have an extension to change the text to JSON format.
Filters:
https://{serverSource}/api/organisationUnits.json
https://{serverSource}/api/organisationUnits.json?filter=id:in:[organisationUnit1,organisationUnit2]
https://{serverSource}/api/organisationUnits.json?filter=level:in:[5,6]
Parameters | Description |
---|---|
serverSource | Server where the Organisation Units will be retrieved Example: https://play.im.dhis2.org/ |
id | Organisation Units ID |
level | Organisation Unit level, this retrieves a more than one Organisation Units |
Searching for Organisation Unit IDs
https://play.im.dhis2.org/dev/api/organisationUnits.json?filter=id:in:[Rp268JB6Ne4,cDw53Ej8rju]&fields=*&paging=false
Reponse
{ "organisationUnits": [ { "code": "OU_651071", "name": "Adonkia CHP", "created": "2012-02-17T15:54:39.987", "lastUpdated": "2017-05-22T15:21:48.515", "translations": [], "favorites": [], "sharing": { "external": false, "users": {}, "userGroups": {} }, "shortName": "Adonkia CHP", "dimensionItemType": "ORGANISATION_UNIT", "legendSets": [], "parent": { "id": "qtr8GGlm4gg" }, "children": [], "path": "/ImspTQPwCqd/at6UHUQatSo/qtr8GGlm4gg/Rp268JB6Ne4", "openingDate": "2010-01-01T00:00:00.000", "dataSets": [ ], "programs": [ ], "users": [], "leaf": true, "dimensionItem": "Rp268JB6Ne4", "displayShortName": "Adonkia CHP", "displayName": "Adonkia CHP", "access": { "manage": true, "externalize": false, "write": true, "read": true, "update": true, "delete": true }, "favorite": false, "href": "https://play.im.dhis2.org/dev/api/organisationUnits/Rp268JB6Ne4", "displayFormName": "Adonkia CHP", "id": "Rp268JB6Ne4", "attributeValues": [], "organisationUnitGroups": [ { "id": "f25dqv3Y7Z0" } ], "level": 4, "ancestors": [ { "id": "ImspTQPwCqd" }, { "id": "at6UHUQatSo" }, { "id": "qtr8GGlm4gg" } ] }, { "code": "OU_278371", "name": "Afro Arab Clinic", "created": "2012-02-17T15:54:39.987", "lastUpdated": "2017-05-22T15:21:48.518", "translations": [ { "locale": "en_GB", "property": "SHORT_NAME", "value": "Afro Arab Clinic" }, { "locale": "en_GB", "property": "NAME", "value": "Afro Arab Clinic" } ], "favorites": [], "sharing": { "external": false, "users": {}, "userGroups": {} }, "shortName": "Afro Arab Clinic", "dimensionItemType": "ORGANISATION_UNIT", "legendSets": [], "parent": { "id": "qtr8GGlm4gg" }, "children": [], "path": "/ImspTQPwCqd/at6UHUQatSo/qtr8GGlm4gg/cDw53Ej8rju", "openingDate": "2008-01-01T00:00:00.000", "dataSets": [ ], "programs": [ ], "users": [], "leaf": true, "dimensionItem": "cDw53Ej8rju", "displayShortName": "Afro Arab Clinic", "displayName": "Afro Arab Clinic", "access": { "manage": true, "externalize": false, "write": true, "read": true, "update": true, "delete": true }, "favorite": false, "href": "https://play.im.dhis2.org/dev/api/organisationUnits/cDw53Ej8rju", "displayFormName": "Afro Arab Clinic", "id": "cDw53Ej8rju", "attributeValues": [], "organisationUnitGroups": [ { "id": "f25dqv3Y7Z0" }, { "id": "RXL3lPSK8oG" } ], "level": 4, "ancestors": [ ] } ] }
Download the file and save with JSON format.
Import the Organisation Units on the target server
Log in into the target server
Open the Import/Export tool
Select Import Metadata
Import the Organisation Units
Verify the Organisation Units using the Maintenance App