DHIS2 Flutter SDK

Introduction

DHIS2 Flutter SDK is a library that abstracts the complexity of interacting with DHIS2 web api. It aims to be an starting point to build Flutter apps for DHIS2, covering some tasks that any Flutter app should implement, like metadata and data synchronization.

Main goals:

  • Abstract DHIS2 web api. There is no need to perform api queries against the server. The SDK includes methods to interact with the web api.
  • Work offline. It implements a simplified version of DHIS2 model that is persisted in a local database (SQLite). It ensures that all the metadata required to perform data entry tasks is available at any time to build the data entry forms. Data is saved locally and upload to the server when connectivity is available.
  • Ensure DHIS2 compatibility. It encapsulates the changes between DHIS2 versions so the app does not have to care about them. In case the SDK introduces some changes to accommodate a new DHIS2 version, the app can safely detect these changes at compile-time.

Documentation

Developer-oriented documentation can be found in Documentation section in DHIS2 web. It is intended to be used by developers.

Contributing

Contributing Guidelines

Read through our contributing to learn about our submission process, coding rules and more.

Want to Help?

Want to file a bug, contribute some code, or improve documentation? Excellent! Read up on our guidelines for contributing.

Code of Conduct

Help us keep DHIS2 Flutter SDK open and inclusive. Please read and follow our codeofconduct.

Community

Join the conversation and help the community.

Libraries

core/annotations/column.annotation
core/annotations/entity.annotation
core/annotations/index
core/annotations/reflectable.annotation
core/annotations/relation.annotation
core/database/database.util
core/database/database_config
core/database/database_manager
core/models/d2_touch.model
core/utilities/query_builder
core/utilities/query_expression
core/utilities/repository
core/utilities/repository_util
d2_touch
modules/auth/auth.module
modules/auth/entities/user.entity
modules/auth/entities/user_authority.entity
modules/auth/entities/user_group.entity
modules/auth/entities/user_group_user.entity
modules/auth/entities/user_organisation_unit.entity
modules/auth/entities/user_role.entity
modules/auth/models/auth-token.model
modules/auth/models/login-response.model
modules/auth/queries/user.query
modules/auth/queries/user_authority.query
modules/auth/queries/user_group.query
modules/auth/queries/user_group_users.query
modules/auth/queries/user_organisation_unit.query
modules/auth/queries/user_role.query
modules/auth/user.module
modules/auth/utilities/auth.util
modules/data/aggregate/aggregate.module
modules/data/aggregate/entities/data_value.entity
modules/data/aggregate/entities/data_value_set.entity
modules/data/aggregate/models/data_value_set_import_summary
modules/data/aggregate/queries/data_value.query
modules/data/aggregate/queries/data_value_set.query
modules/data/data_store/data_store_entity.module
modules/data/data_store/entities/data_store.entity
modules/data/data_store/queries/data_store.query
modules/data/tracker/entities/attribute_reserved_value.entity
modules/data/tracker/entities/enrollment.entity
modules/data/tracker/entities/event.entity
modules/data/tracker/entities/event_data_value.entity
modules/data/tracker/entities/tracked-entity.entity
modules/data/tracker/entities/tracked_entity_attribute_value.entity
modules/data/tracker/entities/tracked_entity_instance_relationship.entity
modules/data/tracker/models/enrollment_import_summary
modules/data/tracker/models/event_import_summary
modules/data/tracker/models/geometry
modules/data/tracker/models/response
modules/data/tracker/models/tracked_entity_instance_import_summary.model
modules/data/tracker/queries/attribute_reserved_value.query
modules/data/tracker/queries/enrollment.query
modules/data/tracker/queries/event.query
modules/data/tracker/queries/event_data_value.query
modules/data/tracker/queries/tracked_entity_attribute_value.query
modules/data/tracker/queries/tracked_entity_instance.query
modules/data/tracker/queries/tracked_entity_instance_relationship.query
modules/data/tracker/tracked_entity_instance.module
modules/engine/engine.module
modules/engine/http/http.module
modules/engine/program_rule/d2-functions.util
modules/engine/program_rule/d2.util
modules/engine/program_rule/event_rule_engine
modules/engine/program_rule/models/event_rule_result.model
modules/engine/program_rule/models/math_expressions
modules/engine/program_rule/models/tracker_rule_result.model
modules/engine/program_rule/run-d2-expression.util
modules/engine/program_rule/tracker_rule_engine
modules/engine/program_rule/utilities/date.utils
modules/engine/program_rule/utilities/program_rule_engine.util
modules/engine/program_rule/utilities/rules-engine.util
modules/engine/program_rule/utilities/trim-quotes.utils
modules/engine/shared/utilities/data_value_entities.util
modules/engine/shared/utilities/raw.query
modules/engine/validation_rule/models/validation_rule_action.model
modules/engine/validation_rule/models/validation_rule_result.model
modules/engine/validation_rule/validation_rule_engine
modules/file_resource/entities/file_resource.entity
modules/file_resource/file_resource.module
modules/file_resource/models/file_content_type.model
modules/file_resource/queries/file_resource.query
modules/metadata/dashboard/dashboard.module
modules/metadata/dashboard/entities/dashboard.entity
modules/metadata/dashboard/entities/dashboard_item.entity
modules/metadata/dashboard/queries/dashboard.query
modules/metadata/dashboard/queries/dashboard_item.query
modules/metadata/data_element/data_element.module
modules/metadata/data_element/entities/data_element.entity
modules/metadata/data_element/queries/data_element.query
modules/metadata/dataset/data_set.module
modules/metadata/dataset/entities/data_element_category_option_combo.entity
modules/metadata/dataset/entities/data_set.entity
modules/metadata/dataset/entities/data_set_element.entity
modules/metadata/dataset/entities/data_set_element_option.entity
modules/metadata/dataset/entities/data_set_section.entity
modules/metadata/dataset/entities/data_set_section_data_element.entity
modules/metadata/dataset/entities/data_set_section_greyed_field.entity
modules/metadata/dataset/entities/validation_rule.entity
modules/metadata/dataset/queries/data_element_category_option_combo.query
modules/metadata/dataset/queries/data_set.query
modules/metadata/dataset/queries/data_set_element.query
modules/metadata/dataset/queries/data_set_element_option.query
modules/metadata/dataset/queries/data_set_section.query
modules/metadata/dataset/queries/data_set_section_data_element.query
modules/metadata/dataset/queries/data_set_section_greyed_field.query
modules/metadata/dataset/queries/validation_rule.query
modules/metadata/option_group/entities/option_group.entity
modules/metadata/option_group/option_group.module
modules/metadata/option_group/queries/option_group.query
modules/metadata/option_set/entities/option_set.entity
modules/metadata/option_set/option_set.module
modules/metadata/option_set/queries/option_set.query
modules/metadata/organisation_unit/entities/organisation_unit.entity
modules/metadata/organisation_unit/organisation_unit.module
modules/metadata/organisation_unit/queries/organisation_unit.query
modules/metadata/program/entities/attribute_option.entity
modules/metadata/program/entities/program.entity
modules/metadata/program/entities/program_relationship.entity
modules/metadata/program/entities/program_rule.entity
modules/metadata/program/entities/program_rule_action.entity
modules/metadata/program/entities/program_rule_variable.entity
modules/metadata/program/entities/program_section.entity
modules/metadata/program/entities/program_section_attribute.entity
modules/metadata/program/entities/program_stage.entity
modules/metadata/program/entities/program_stage_data_element.entity
modules/metadata/program/entities/program_stage_data_element_option.entity
modules/metadata/program/entities/program_stage_section.entity
modules/metadata/program/entities/program_stage_section_data_element.entity
modules/metadata/program/entities/program_tracked_entity_attribute.entity
modules/metadata/program/entities/tracked_entity_attribute.entity
modules/metadata/program/program.module
modules/metadata/program/queries/attribute_option.query
modules/metadata/program/queries/program.query
modules/metadata/program/queries/program_relationship.query
modules/metadata/program/queries/program_rule.query
modules/metadata/program/queries/program_rule_action.query
modules/metadata/program/queries/program_rule_variable.query
modules/metadata/program/queries/program_section.query
modules/metadata/program/queries/program_section_attribute.query
modules/metadata/program/queries/program_stage.query
modules/metadata/program/queries/program_stage_data_element.query
modules/metadata/program/queries/program_stage_data_element_option.query
modules/metadata/program/queries/program_stage_section.query
modules/metadata/program/queries/program_stage_section_data_element.query
modules/metadata/program/queries/program_tracked_entity_attribute.query
modules/metadata/program/queries/tracked_entity_attribute.query
modules/metadata/program/utilities/program_rule_action_type.util
modules/notification/entities/message.entity
modules/notification/entities/message_conversation.entity
modules/notification/notification.module
modules/notification/queries/message.query
modules/notification/queries/message_conversation.query
modules/sync/models/error_message.model
modules/sync/utilities/query-request.util
modules/sync/utilities/query-resource.util
modules/sync/utilities/sync.util
shared/entities/base.entity
shared/entities/geometry.entity
shared/entities/identifiable.entity
shared/models/import_action.model
shared/models/import_conflict.model
shared/models/import_count.model
shared/models/import_status.model
shared/models/import_summary.model
shared/models/request_progress.model
shared/models/translation.model
shared/queries/base.query
shared/utilities/dhis-url-generator.util
shared/utilities/dhis_uid_generator.util
shared/utilities/http-details.util
shared/utilities/http_client.util
shared/utilities/import_strategy.util
shared/utilities/merge_mode.util
shared/utilities/object.util
shared/utilities/orgunit_mode.util
shared/utilities/query_filter.util
shared/utilities/query_filter_condition.util
shared/utilities/query_model.util
shared/utilities/query_row.util
shared/utilities/save_option.util
shared/utilities/sort_order.util