Hi everyone,
Small update from our side after doing an initial proof of concept.
We were able to get a local DHIS2 instance running and connect tablets to it over a local Wi-Fi network.
What we tested so far:
Local DHIS2 instance running on a laptop
DHIS2 version tested locally: 2.41.8.2
Setup: Windows laptop with Ubuntu/WSL + Docker
Network: laptop hotspot / local Wi-Fi
Devices: Android tablets connected to the local Wi-Fi
We confirmed that the tablets could reach the local DHIS2 instance and that Tracker data could be created against the local server. Specifically, we tested creation/upload of:
Tracked entity
Tracker event
So at a basic proof-of-concept level, this worked:
Laptop/local server → local Wi-Fi → Android tablet → local DHIS2 Tracker data
This is encouraging, but we are now trying to understand whether this is a safe and scalable field architecture before investing in hardware or building this into our real clinic workflow.
Hardware question
Because many of our clinics have no power during the clinic day, we are trying to identify the most realistic low-budget hardware setup.
We initially considered a mini PC, but the power requirement is a challenge because it needs an external battery or power station. For a low-budget pilot, a refurbished business laptop may actually be more practical because it already includes:
battery
screen
keyboard
Wi-Fi
troubleshooting access
built-in backup power
Possible low-budget setup:
Local server: refurbished laptop with 16GB RAM and SSD
Router: small travel router
Router power: USB power bank
Backup: external SSD
Tablets: Android Capture connected to local DHIS2
More robust setup:
Local server: mini PC or dedicated laptop
Router: travel router
Power: portable power station
Backup: external SSD
Tablets: Android Capture connected to local DHIS2
For those with field experience: would you recommend starting with a laptop-based local server, or is a mini PC + battery setup worth the extra complexity?
Metadata and version control
Another major concern is metadata consistency.
Our assumption is that the central server should remain the source of truth for metadata. The local server would only be a temporary clinic instance.
The safer workflow seems to be:
1. Central DHIS2 remains the source of truth for metadata
2. Local server is prepared before clinic using central metadata
3. No metadata changes are made locally during clinic
4. Data is collected locally
5. After clinic, data is exported/imported back into the central server
We are concerned that if metadata changes happen on both central and local servers, this could create UID mismatches, option set problems, program stage changes, or import errors later.
Questions:
Should the local server always run the exact same DHIS2 version as the central server?
Should metadata changes be frozen during the field period?
Is there a recommended way to prepare a local server with the correct metadata, users, org units, programs, and Tracker configuration before clinic?
Preloading data from the central server
For the workflow to be useful, we would likely need to preload relevant data before going to clinic, such as:
patients from the communities being visited
active enrollments
recent events
program metadata
organisation units
users/user roles
The intended workflow would be:
Before clinic:
central server → export relevant community/patient subset → local server
During clinic:
tablets connect to local server and collect/update Tracker data
After clinic:
local server → export new/updated Tracker data → import back to central server
We are trying to understand the safest way to do this. Should this be done through the Tracker API, metadata/data package export, a database copy, or another recommended approach?
Our biggest concerns are:
TEI duplicates
enrollment conflicts
event UID conflicts
Tracker ownership issues
updates made on central while the local clinic server is also collecting data
safe import of local Tracker data back into production
At this stage, our thinking is:
central server remains the source of truth
local server is temporary
metadata is not edited locally
only the relevant community/program subset is loaded locally
all imports back to central are tested first with dryRun
Does this sound like a reasonable direction, or is this likely to create major Tracker sync/import problems?
Any advice on hardware, metadata alignment, preloading Tracker data, and safely importing local clinic data back into the central server would be very helpful.
Thanks again,
Hannah
Floating Doctors Panama