Health
PlatformDomainAcademyDesign SystemFeedback
v1.7
v1.7
  • 👋Introducing Health
    • Release Notes
      • HCM v1.7 Release Notes
        • Release Checklist
        • Eligibility Checklist
        • Service Build Updates
      • HCM v1.6 Release Notes
        • Service Build Updates
        • Release Checklist
        • Migration from v1.5 to v1.6
      • HCM v1.5 Release Notes
        • Migration from v1.4 to v1.5
        • Service Build Updates
        • Release Checklist
      • HCM v1.4 Release Notes
        • Migration from v1.3 to v1.4
        • Service Build Updates
        • Release Checklist
      • v1.3 Release Notes
      • v1.3 Tech Release Summary
        • Master Data Management Service (MDMS) & Configuration Updates
        • Test Cases
        • Service Build Updates
      • v1.2 Release Notes
      • v1.0 Release Notes
  • Product Roadmap
  • 💙HEALTH CAMPAIGN MANAGEMENT
    • Understanding Health Campaign Management (HCM)
    • Value Proposition
  • 🎯HCM PRODUCT SUITE
    • Functional Specifications
      • Campaign Type Setup
      • Campaign Setup
      • Inventory
      • Boundary Hierarchy
      • Beneficiary
      • Boundary Data Specs
      • Draft System User Setup
      • Role Action Mapping
    • Building Blocks & Services
    • Health Products
      • HCM App
        • User Manual
          • Single Round Campaigns
            • Registration & Delivery
              • Registration & Delivery: IRS
          • Multi-Round Campaigns
            • Registration & Delivery
            • Download Beneficiary Data
          • Common Functions
            • User Management
            • 2D Voucher Scanning
            • Proximity-Based Search
            • Voucher-Based Registration and Distribution
            • Tracking Beneficiary Referrals
            • Tracking Side-Effects for Beneficiaries
            • Tracking Adverse Events
            • Health Facility Referral
            • Raising Complaints
            • Resolving Complaints
            • Inventory Management
              • User Manual
                • Stock Management
                • Stock Reconciliation
                • View Reports
                • Bale Scanning
            • Attendance Management
            • Payments
              • Guide to HCM Payments
            • Community Living Facilities
              • Product Requirement Document
          • Support Functions
            • Language Selection
            • Login
            • Forgot Password
            • Project Selection
            • Hamburger Menu
            • Help
            • Sync
            • Checklist
      • Campaign Management Dashboard
        • User Manual
        • Configurations
          • MDMS Configurations and s3 assets
          • IRS Dashboard Chart Configurations
        • Kibana Dashboard Integration With DSS Module
          • Auth Proxy Setup and Configuration for Kibana
        • SMC Dashboard
      • Microplanning
      • HCM Console
      • Health Payments
        • MDMS Configurations
        • Attendance Update and Approval Process
          • Project Selection
          • Register Inbox
          • View Attendance:Edit And Approve
        • Bill Generation Process
          • Project And Bill Aggregation
          • Bill Generation
          • My Bills
  • 🚀REFERENCE IMPLEMENTATIONs
    • Mozambique
      • LLIN Overview
      • Customisation
      • Rollout
  • 🧰TECHNOLOGY
    • Architecture
      • High Level Design
        • Health Campaign System High Level Design
        • Design Decision Log
      • Low Level Design
        • Registries
          • Individual
          • Household
          • Product
          • Facility
          • Attendance
          • Expense
        • Services
          • Project
          • Stock
          • Referral
          • Muster Roll
          • Expense Calculator
      • Field App Architecture
        • UI Packages
          • Closed HouseHold package
          • Registration & Delivery Package
            • Eligibility Checklist
            • Communal Living Facilities
          • Referral Reconciliation Package
          • Inventory Management Package
          • Attendance Management Package
          • DIGIT Scanner Package
          • Digit Showcase Package
          • Digit Data Model Package
          • DIGIT DSS Package
          • Complaints Package
          • Survey Form Package
          • Sync Service Package
    • Standards
    • Security
    • Interoperability
  • 🪝SETUP
    • Planning an HCM Implementation
    • Establish Project & Team
    • Gathering Requirements
    • Installation
      • Install Using GitHub Actions in AWS
      • System Data Setup
      • Project Data Setup
      • Setup Mobile App
      • Setup Kibana Dashboard
        • Create or Edit Existing Dashboards
      • Server Cleanup
    • Configuration
      • Configuring HCM to Campaign and Country Needs
      • Service Configuration
        • Individual Registry
        • Household Registry
        • Product Registry
        • Facility Registry
        • Stock & Inventory
        • Project Services
        • Referral Management
        • Attendance
        • Complaints
          • QA Sign-Off
            • Test Cases
        • User Management
          • QA Sign-Off
        • Muster Roll
        • Expense Service
        • Expense calculator
      • UI Configuration
        • Stock Management
        • Language Selection
        • Login
        • Forgot Password
        • Project Selection
        • Dashboard Configuration
          • Dashboard UI Enhancements
          • HCM Dashboard Master Promotion Guide
        • Attendance Management
          • Attendance Package Extraction and Interaction with HCM Application
    • Quality Assurance Testing
      • Regression Test cases
        • HCM Product
        • HCM Console
        • Microplanning
      • Eligibility and CLF Test cases
      • Console v0.3.1
      • Micro planning v0.2
      • HCM Payments v0.1
  • 🔵COMMUNITY
    • Source Code
    • Committee
      • Digital Product Advisory Committee Charter
      • Idea Management Process
      • Sessions
        • November 2023 Session
        • August 2024 Session
          • Minutes of the Meeting
        • December 2024 Session
    • HCM Declarative Statements & FAQs
Powered by GitBook

https://creativecommons.org/licenses/by/4.0/

On this page
  • Features
  • Getting Started
  • Integrating with the HCM Application

Was this helpful?

Export as PDF
  1. TECHNOLOGY
  2. Architecture
  3. Field App Architecture
  4. UI Packages

Digit Data Model Package

PreviousDigit Showcase PackageNextDIGIT DSS Package

Was this helpful?

Link to the Pub Package:

The digit_data_model package is a comprehensive data modeling library for the project. It defines various classes, enums, and functions used throughout the project. The package is written in Dart and is primarily used in Flutter applications.

Features

  • Data Models: The package provides a set of predefined data models like DataModel, EntityModel, EntitySearchModel, AdditionalFields, AdditionalField, ClientAuditDetails, AuditDetails, etc. These models are used to structure the data in the project.

  • Model Provider: The package includes a ModelProvider abstract class that can be implemented to provide a list of models. It also includes a ModelProviderRegistry class to register and retrieve all model providers.

  • Data Model Type Enum: The package defines a DataModelType enum that represents the different types of data models in the project.

  • Mapping Annotations: The package uses the dart_mappable package to generate mapping code for the classes. This helps in converting the data models to and from JSON.

  • Data Repositories: The package provides abstract classes for data repositories, DataRepository, RemoteRepository, and LocalRepository, which can be extended to create repositories for different data models. It also includes error handling with InvalidApiResponseException.

  • Sql Store: The package includes a SqlStore class that can be used to store data in a SQLite database.

Here are the key features it provides to other packages:

  • Database Connection: It provides a connection to the SQLite database. This connection is opened when the database is first accessed.

  • Table Definitions: It defines the tables in the database. These tables correspond to various entities in the project.

  • Database Operations: It provides methods for querying and manipulating the data in the tables. These methods can be used to perform CRUD (Create, Read, Update, Delete) operations on the data.

  • Schema Version: It provides the schema version of the database. This can be used to handle database migrations.

  • Drift Integration: It uses the Drift package for interacting with the SQLite database. This provides a reactive persistence library for Flutter and Dart.

Getting Started

To use this package, add the following dependency to your pubspec.yaml file:

dependencies:
  digit_data_model: ^latest

Integrating with the HCM Application

To integrate this package with the HCM Application, run the main function located in health-campaign-field-worker-app/tools/digit_data_model_imports.dart.

This will automatically add the necessary imports, mapper initializers, and repository initializations to the required files.

Below are some examples of how you can use this package:

  • Extend the EntityModel or `EntitySearchModel class and implement the required methods:

class ExampleSearchModel extends EntitySearchModel {
  ExampleSearchModel({
    required this.employeeId,
    required this.attendanceDate,
    required this.status,
  });
}
 class ExampleAdditionalFields extends AdditionalFields {
  ExampleAdditionalFields({
    required this.field1,
    required this.field2,
  });
}
  • Extend the `LocalRepository` class and implement the required methods:

class ExampleLocalRepository
        extends LocalRepository<ExampleModel, ExampleSearchModel> {
    ExampleLocalRepository(super.sql, super.opLogManager);
    }
  • Extend the `RemoteRepository` class and implement the required methods:

 class ExampleRemoteRepository
        extends RemoteRepository<ExampleModel, ExampleSearchModel> {
  ExampleRemoteRepository(super.apiClient, super.opLogManager);
    }
🧰
Logodigit_data_model | Flutter packageDart packages