{"id":19005092,"url":"https://github.com/dhis2/dhis2-helix-etl","last_synced_at":"2025-09-16T05:15:44.761Z","repository":{"id":66280242,"uuid":"234090836","full_name":"dhis2/dhis2-helix-etl","owner":"dhis2","description":"Data pipeline for Helix to DHIS 2 integration","archived":false,"fork":false,"pushed_at":"2021-01-18T08:20:44.000Z","size":35,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-07-30T03:59:36.784Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dhis2.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-01-15T13:50:31.000Z","updated_at":"2021-01-18T08:20:47.000Z","dependencies_parsed_at":null,"dependency_job_id":"2e276e9e-61ef-4268-b1f7-0b4225da0e0f","html_url":"https://github.com/dhis2/dhis2-helix-etl","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/dhis2/dhis2-helix-etl","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dhis2%2Fdhis2-helix-etl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dhis2%2Fdhis2-helix-etl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dhis2%2Fdhis2-helix-etl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dhis2%2Fdhis2-helix-etl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dhis2","download_url":"https://codeload.github.com/dhis2/dhis2-helix-etl/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dhis2%2Fdhis2-helix-etl/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":275364760,"owners_count":25451517,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-16T02:00:10.229Z","response_time":65,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-08T18:26:12.762Z","updated_at":"2025-09-16T05:15:44.730Z","avatar_url":"https://github.com/dhis2.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# DHIS 2 Helix DXP Data Pipeline\n\n## Requirements\n\nThe data pipeline is written in Node.js and requires a Node.js runtime.\n\n## Configuration\n\nFirst set up `config.json` with the required information, then run the script with Node:\n\n    node index.js\n\nThis script will load data from Helix, transform it based on the profile mapping and push data to the DHIS2 instance defined in the configuration.\n\nThe `config.json` configuration file is in JSON format and looks like this:\n\n```json\n{\n  \"dhis2\": {\n    \"url\": \"http://localhost/dhis\",\n    \"username\": \"admin\",\n    \"password\": \"district\"\n  },\n  \"profiles\": [\n    {\n      \"name\": \"DHIS2 Sample data\",\n      \"url\": \"https://unicef.sdmxcloud.org/ws/public/sdmxapi/rest/data/UNICEF_TEST\",\n      \"transformation\": [\n        {\n          \"dataElementId\": \"UNICEF_INDICATOR\",\n          \"period\": \"TIME_PERIOD\",\n          \"organisationUnit\": \"COUNTRY\",\n          \"dataDimensions\": [\n            {\n              \"categoryOptionCombo\": \"OBS_VALUE\",\n              \"value\": \"VALUE\"\n            },\n            {\n              \"categoryOptionCombo\": \"LOWER_BOUND\",\n              \"value\": \"LOWER_BOUND\"\n            },\n            {\n              \"categoryOptionCombo\": \"UPPER_BOUND\",\n              \"value\": \"UPPER_BOUND\"\n            }\n          ]\n        }\n      ]\n    }\n  ]\n}\n```\n\nThe `dhis2` section contains information about the instance where data should be pushed. This includes the URL, username and password required to connect.\n\nThe `profiles` section represents each set of data to import into DHIS 2. Each profile refers to a helix endpoint and a `transformation` for the data.\n\nThe `transformation` consists of the key (`dataElementId`, `period`, `organisationUnit`) which relates directly to entities in DHIS 2, and a value. The value will be executed as javascript with variables based on the Helix payload. This means in our current example, we pick the certain properties that represents the diffent references to the entities in DHIS 2. We expect `dataElementId`, `organisationUnit` and `categoryOptionCombo` all refer to valid codes in DHIS 2. This is a property that can be configured for each entity in DHIS 2.\n\nEach data dimension refer to each of the three values which are required (observed value, lower bound and upper bound) which are disaggregated into different category option combos. This means that each row of data from Helix will result in three DHIS 2 datavalues.\n\nAdditionally, the period must be in the correct format. If we are working solely with years, four digits is sufficient.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdhis2%2Fdhis2-helix-etl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdhis2%2Fdhis2-helix-etl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdhis2%2Fdhis2-helix-etl/lists"}