Technical Development Summary – Final Month of Notice Period
This document outlines the features and enhancements developed during the final month of the notice period. Each section below details specific functionality, technical implementations, and database-related changes that were introduced to improve system efficiency, data integrity, and feature coverage in the ZM mobile and backend systems.
1. Mobile Immunization Van Feature Enhancement
Objective:
To enhance data tracking for mobile immunization vans by including geographic coordinates (latitude and longitude) for each vaccination event and optimize data reporting via the data warehouse.
Changes Implemented:
-
Stored Procedure Migration:
-
The existing stored procedure
ImmunizationVanRegistrywas previously located in the active transactional databaseunfepi. -
It has now been migrated to the data warehouse database
unfepi_dwhfor improved performance and analytical processing without impacting live transactions.
-
-
Functional Modification:
- The stored procedure was enhanced to include new fields:
latitudeandlongitudefor each vaccination record, enabling geolocation-based reporting and analytics for mobile van operations and included in the downloadable CSV report.
- The stored procedure was enhanced to include new fields:
2. Rota3 Vaccine Feature Implementation
Objective:
To introduce a new vaccine (Rota3) that is selectively administered in specific geographic regions, starting with the South district of Karachi.
Key Enhancements:
-
Vaccine Master Table Update:
-
A new vaccine entry for Rota3 was added with
vaccine_id = 35. -
A new flag
isLocationBasedwas introduced in thevaccinetable to distinguish vaccines that are location-specific.
-
-
Location-Based Filtering:
-
A new mapping table
vaccine_locationwas created to control vaccine visibility by geographic location. -
The table structure includes:
-
vaccine_id: References the specific vaccine (e.g., 35 for Rota3). -
location_id: Refers to the location where the vaccine is applicable (e.g., 34324 for South district, Karachi).
-
-
-
Vaccination Schedule & Dependency Configuration:
-
Vaccine Gap Table (
vaccine_gap): Entries added for Rota3 to define the time intervals such as birthdate gap, previous vaccine gap, etc. -
Vaccine Prerequisite Table (
vaccine_prerequisite): Rota2 is set as a mandatory prerequisite for Rota3. -
Settings Table: Relevant configurations for Rota3 were registered to enable system-wide support.
-
-
End-User Impact:
- Only vaccinators operating in the South district of Karachi will see the Rota3 vaccine option on the ZM mobile application.
3. Offline Sync Data API Optimization
Objective:
To improve the performance of child and women data synchronization APIs used in offline scenarios by decoupling large procedures and optimizing nested logic.
Improvements Made:
-
Stored Procedure Refactoring:
-
The existing procedure
SyncDataChildrenwas split into two separate procedures:-
getChildBiography: Retrieves demographic and basic profile information. -
getChildVaccination: Retrieves immunization history and events.
-
-
Similarly,
SyncDataWomenwas split into:-
getWomenBiography -
getWomenVaccination
-
-
-
Codebase Optimization:
-
Java class
DataServiceHelper.javawas refactored:- Functions
getAllUpdatedNewChildUpdatedandgetAllUpdatedNewWomenUpdatedwere optimized to reduce nested loops and enhance runtime efficiency.
- Functions
-
-
Benefits:
-
Improved data retrieval speed.
-
Reduced server load during synchronization.
-
Better modularity and maintainability of backend logic.
-
4. Tracking Feature Modification (On Hold)
Objective:
To shift the granularity of tracking records from visit-based to vaccine-based to enhance monitoring and auditing accuracy.
Implementation Details:
-
Database Schema Update:
-
A new column
vaccinationRecordNumwas added to thetrackingtable. -
This allows linkage of tracking entries to individual vaccination records rather than aggregated per visit.
-
-
Behavioral Change:
-
Previous Behavior: A single tracking record per visit, regardless of how many vaccines were administered.
-
New Behavior: A separate tracking entry will be created for each vaccine administered during a visit.
-
-
Status:
-
Currently on hold due to the need for backfilling historical data.
-
Task pending: Populate
vaccinationRecordNumfor historical entries in thetrackingtable.
-
5. Vaccination-MCCT Visit Linking Feature
Objective:
To resolve inconsistencies in visit and vaccination record mapping, especially in scenarios involving multiple visits by a child on the same day.
Technical Solution:
-
New Bridge Table:
vaccination_mcctvisit-
Purpose: Establish a direct one-to-one mapping between a vaccination event and a corresponding visit record.
-
Columns:
-
vaccinationRecordNum: Unique identifier for the administered vaccine. -
visitRecordNum: Identifier for the child’s visit on a particular date.
-
-
-
Problem Addressed:
-
In the prior implementation, multiple visits on the same day by the same child could lead to incorrect linkage due to missing granularity in the mapping.
-
This new table ensures accurate correlation between individual vaccination records and their associated visits.
-
-
Benefits:
-
Resolves data integrity issues for reporting and audit.
-
Improves traceability of vaccination data across multiple visit scenarios.
-