{"id":19004944,"url":"https://github.com/dhis2/dhis2-java-sdk","last_synced_at":"2025-04-22T18:50:43.565Z","repository":{"id":37965267,"uuid":"486990768","full_name":"dhis2/dhis2-java-sdk","owner":"dhis2","description":"Java SDK for DHIS2","archived":false,"fork":false,"pushed_at":"2025-03-31T20:53:53.000Z","size":575,"stargazers_count":9,"open_issues_count":10,"forks_count":3,"subscribers_count":11,"default_branch":"main","last_synced_at":"2025-04-17T10:24:52.318Z","etag":null,"topics":["android","dhis2","integration","java","sdk"],"latest_commit_sha":null,"homepage":"https://developers.dhis2.org/docs/integration/dhis2-java-sdk","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","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":"LICENSE","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,"zenodo":null}},"created_at":"2022-04-29T13:54:10.000Z","updated_at":"2025-01-02T09:57:51.000Z","dependencies_parsed_at":"2023-11-22T10:54:37.036Z","dependency_job_id":"e1e07b3b-a7da-44e1-a1c6-7a9ef6ed269c","html_url":"https://github.com/dhis2/dhis2-java-sdk","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dhis2%2Fdhis2-java-sdk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dhis2%2Fdhis2-java-sdk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dhis2%2Fdhis2-java-sdk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dhis2%2Fdhis2-java-sdk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dhis2","download_url":"https://codeload.github.com/dhis2/dhis2-java-sdk/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250303142,"owners_count":21408550,"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","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":["android","dhis2","integration","java","sdk"],"created_at":"2024-11-08T18:25:26.691Z","updated_at":"2025-04-22T18:50:43.545Z","avatar_url":"https://github.com/dhis2.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# DHIS2 Java SDK\n\n![Maven Central](https://img.shields.io/maven-central/v/org.hisp.dhis.integration.sdk/dhis2-java-sdk)\n![Sonatype Nexus (Snapshots)](https://img.shields.io/nexus/s/org.hisp.dhis.integration.sdk/dhis2-java-sdk?server=https%3A%2F%2Foss.sonatype.org)\n![Build Status](https://github.com/dhis2/dhis2-java-sdk/workflows/CI/badge.svg)\n\nDHIS2 Java SDK is a _lightweight_ library that hides the nuts and bolts of DHIS2 Web API interactions behind a fluent Java API and type-safe resource models. It is powered by [OkHttp](https://square.github.io/okhttp/) and compatible with Android.\n\n## Minimum Requirements\n\n- Java 8\n\n### Android\n\n- Android 5.0 (API Level 21)\n\n## Binaries\n\n### Maven Release Distribution\n\n#### Java API\n```xml\n\u003cproject\u003e\n    ...\n    \u003cdependencies\u003e\n        \u003cdependency\u003e\n            \u003cgroupId\u003eorg.hisp.dhis.integration.sdk\u003c/groupId\u003e\n            \u003cartifactId\u003ejackson-resource-model\u003c/artifactId\u003e\n            \u003cclassifier\u003e[v40.2.2|v40.0|v2.39.1|v2.38.1|v2.37.7|v2.36.11|v2.35.13]\u003c/classifier\u003e\n            \u003cversion\u003e3.0.1\u003c/version\u003e\n        \u003c/dependency\u003e\n        \u003cdependency\u003e\n            \u003cgroupId\u003eorg.hisp.dhis.integration.sdk\u003c/groupId\u003e\n            \u003cartifactId\u003edhis2-java-sdk\u003c/artifactId\u003e\n            \u003cversion\u003e3.0.1\u003c/version\u003e\n        \u003c/dependency\u003e\n        ...\n    \u003c/dependencies\u003e\n\u003c/project\u003e\n```\n\n#### Android API\n```xml\n\u003cproject\u003e\n    ...\n    \u003cdependencies\u003e\n        \u003cdependency\u003e\n            \u003cgroupId\u003eorg.hisp.dhis.integration.sdk\u003c/groupId\u003e\n            \u003cartifactId\u003eandroid-jackson-resource-model\u003c/artifactId\u003e\n            \u003cclassifier\u003e[v40.2.2|v40.0|v2.39.1|v2.38.1|v2.37.7|v2.36.11|v2.35.13]\u003c/classifier\u003e\n            \u003cversion\u003e3.0.1\u003c/version\u003e\n        \u003c/dependency\u003e\n        \u003cdependency\u003e\n            \u003cgroupId\u003eorg.hisp.dhis.integration.sdk\u003c/groupId\u003e\n            \u003cartifactId\u003edhis2-java-sdk\u003c/artifactId\u003e\n            \u003cversion\u003e3.0.1\u003c/version\u003e\n        \u003c/dependency\u003e\n        ...\n    \u003c/dependencies\u003e\n\u003c/project\u003e\n```\n\n### Maven Snapshot Distribution\n\n```xml\n\u003cproject\u003e\n    ...\n    \u003cdependencies\u003e\n        ...\n        \u003cdependency\u003e\n            \u003cgroupId\u003eorg.hisp.dhis.integration.sdk\u003c/groupId\u003e\n            \u003cartifactId\u003edhis2-java-sdk\u003c/artifactId\u003e\n            \u003cversion\u003e3.0.2-SNAPSHOT\u003c/version\u003e\n        \u003c/dependency\u003e\n        ...\n    \u003c/dependencies\u003e\n    \n    \u003crepositories\u003e\n        \u003crepository\u003e\n            \u003cid\u003eoss.sonatype.org\u003c/id\u003e\n            \u003curl\u003ehttps://oss.sonatype.org/content/repositories/snapshots\u003c/url\u003e\n            \u003creleases\u003e\n                \u003cenabled\u003efalse\u003c/enabled\u003e\n            \u003c/releases\u003e\n            \u003csnapshots\u003e\n                \u003cenabled\u003etrue\u003c/enabled\u003e\n            \u003c/snapshots\u003e\n        \u003c/repository\u003e\n        ...\n    \u003c/repositories\u003e\n\u003c/project\u003e\n```\n\n## Basic Usage Examples\n\nCreate a client that authenticates with a personal access token:\n\n```java\nimport org.hisp.dhis.integration.sdk.Dhis2ClientBuilder;\nimport org.hisp.dhis.integration.sdk.api.Dhis2Client;\n...\n...\n    \nDhis2Client dhis2Client = Dhis2ClientBuilder.newClient( \"https://play.dhis2.org/40.2.2/api\", \"d2pat_apheulkR1x7ac8vr9vcxrFkXlgeRiFc94200032556\" ).build();\n```\n\nCreate a client that authenticates with basic credentials:\n\n```java\nimport org.hisp.dhis.integration.sdk.Dhis2ClientBuilder;\nimport org.hisp.dhis.integration.sdk.api.Dhis2Client;\n...\n\nDhis2Client dhis2Client = Dhis2ClientBuilder.newClient( \"https://play.dhis2.org/40.2.2/api\", \"admin\", \"district\" ).build()\n```\n\nFetch an organisation unit:\n\n```java\nimport org.hisp.dhis.api.model.v40_2_2.OrganisationUnit;\n...\n    \nOrganisationUnit organisationUnit = dhis2Client.get( \"organisationUnits/{id}\", \"fdc6uOvgoji\" ).transfer()\n            .returnAs( OrganisationUnit.class );\n```\n\nFetch all organisation units:\n\n```java\nimport org.hisp.dhis.api.model.v40_2_2.OrganisationUnit;\n...\n    \nIterable\u003cOrganisationUnit\u003e organisationUnits = dhis2Client.get( \"organisationUnits\" )\n        .withoutPaging().transfer().returnAs( OrganisationUnit.class, \"organisationUnits\" );\n\nfor ( OrganisationUnit organisationUnit : organisationUnits )\n{\n    ...\n}\n```\n\nFetch organisation units over multiple pages:\n\n```java\nimport org.hisp.dhis.api.model.v40_2_2.OrganisationUnit;\n...\n    \nIterable\u003cOrganisationUnit\u003e organisationUnits = dhis2Client.get( \"organisationUnits\" )\n        .withPaging().transfer().returnAs( OrganisationUnit.class, \"organisationUnits\" );\n\nfor ( OrganisationUnit organisationUnit : organisationUnits )\n{\n    ...\n}\n```\n\nFetch all organisation units IDs over multiple pages:\n\n```java\nimport org.hisp.dhis.api.model.v40_2_2.OrganisationUnit;\n...\n    \nIterable\u003cOrganisationUnit\u003e organisationUnits = dhis2Client.get( \"organisationUnits\" )\n            .withField( \"id\" )\n            .withPaging().transfer().returnAs( OrganisationUnit.class, \"organisationUnits\" );\n\nfor ( OrganisationUnit organisationUnit : organisationUnits )\n{\n    ...\n}\n```\n\nFetch organisation units belonging to the third level of the organisation unit hierarchy over multiple pages:\n\n```java\nimport org.hisp.dhis.api.model.v40_2_2.OrganisationUnit;\n...\n    \nIterable\u003cOrganisationUnit\u003e organisationUnits = dhis2Client.get( \"organisationUnits\" )\n            .withFilter( \"level:eq:3\" )\n            .withPaging().transfer().returnAs( OrganisationUnit.class, \"organisationUnits\" );\n\nfor ( OrganisationUnit organisationUnit : organisationUnits )\n{\n    ...\n}\n```\n\nCreate a Tracked Entity Instance:\n\n```java\nimport org.hisp.dhis.api.model.v40_2_2.AttributeInfo;\nimport org.hisp.dhis.api.model.v40_2_2.Body;\nimport org.hisp.dhis.api.model.v40_2_2.EnrollmentInfo;\nimport org.hisp.dhis.api.model.v40_2_2.ReservedValue;\nimport org.hisp.dhis.api.model.v40_2_2.TrackedEntityInfo;\nimport org.hisp.dhis.api.model.v40_2_2.TrackerImportReport;\n...\n\nString uniqueSystemIdentifier = dhis2Client\n    .get( \"trackedEntityAttributes/HlKXyR5qr2e/generate\" ).transfer()\n    .returnAs( ReservedValue.class )\n    .getValue().get();\n\nTrackerImportReport trackerImportReport = dhis2Client.post( \"tracker\" )\n    .withResource( new Body().withTrackedEntities( Arrays.asList( new TrackedEntityInfo()\n        .withOrgUnit( orgUnitId )\n        .withTrackedEntityType( \"MCPQUTHX1Ze\" )\n        .withEnrollments( Arrays.asList( new EnrollmentInfo()\n            .withOrgUnit( orgUnitId )\n            .withProgram( \"w0qPtIW0JYu\" )\n            .withEnrolledAt( new Date() )\n            .withOccurredAt( new Date() )\n            .withAttributes( Arrays.asList(\n                new AttributeInfo().withAttribute( \"HlKXyR5qr2e\" ).withValue( uniqueSystemIdentifier ),\n                new AttributeInfo().withAttribute( \"oindugucx72\" ).withValue( \"Male\" ),\n                new AttributeInfo().withAttribute( \"NI0QRzJvQ0k\" ).withValue( \"2023-01-01\" ) ) ) ) ) ) ) )\n    .withParameter( \"async\", \"false\" )\n    .transfer()\n    .returnAs( TrackerImportReport.class );\n\nif ( !trackerImportReport.getStatus().equals( TrackerImportReport.StatusRef.OK ) )\n{\n    ...\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdhis2%2Fdhis2-java-sdk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdhis2%2Fdhis2-java-sdk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdhis2%2Fdhis2-java-sdk/lists"}