In production
ZanLIS
A national laboratory information system for Zanzibar.
ZanLIS is a SENAITE-based laboratory information management system (LIMS) supporting laboratory workflows for Zanzibar’s Ministry of Health. It brings sample referrals, result recording, and reporting into a connected system, addressing work that previously depended heavily on paper records and manual data entry.
My role
Since August 2024, I have worked as a software engineer with Ubunifu Solutions, maintaining and extending ZanLIS. My contributions span clinical integrations, instrument interfacing, and laboratory analytics, alongside project coordination and user training.
The work involves collaboration with UCC, UCSF, and UNICEF. In October 2025, project coordination moved from PATH Tanzania to UCSF Global Programs Tanzania; I now work with UCSF in this implementation context.
Connecting clinical systems
Laboratory work needs to connect with the systems used by clinics and referral facilities. My integration work includes:
- CTC: Integration with the Care and Treatment Clinic system, working with UCC to support HIV/AIDS patient data exchange.
- SHAMS: Culture-test referrals to designated testing facilities.
- ZanEMR: Electronic orders and results between clinicians and the laboratory at the same facility.
I built the ZanLIS Laboratory Exchange Processor to accept requests from these systems, map them into ZanLIS, and return supported results and rejection feedback. Each integration follows its own clinical workflow; a same-facility order is different from a sample referral between facilities.
Handling interruptions and repeated requests
Integration work also means handling delayed responses, unavailable services, and repeated submissions. The processor tracks requests and outcomes, protects against duplicate processing, and supports automatic retries and operator-led recovery.
The implementation uses a transactional outbox: a request's state and the intent to dispatch its background work are saved together. If the message broker is unavailable, the work remains recorded for later dispatch. Workers still check for repeated work because delivery can happen more than once.
Bringing instrument results into the workflow
I built the machine-interfacing API in ZanLIS to receive results from instruments such as GeneXpert and Abbott through TilleLab middleware. This provides an automatic result-upload path, reducing the need to copy instrument results into the system by hand.
Making laboratory data usable
Operational records also need to support reporting across laboratory instances. I architected a data warehouse solution to bring that data together for analysis.
- Collecting and preparing data: An ETL pipeline extracts laboratory data, transforms it, and loads it into ClickHouse.
- Preparing reporting views: Aggregated views in ClickHouse organize the data for analysis.
- Presenting the information: Apache Superset dashboards cover sample activity, results, and turnaround time. These measures reflect different lifecycle events, so their totals cannot be treated as a single group of samples moving through a funnel.
Newer warehouse work adds validation at the extraction boundary so an unexpected source payload cannot quietly become a successful empty import. It also records failed extraction windows for targeted recovery. This redesign is implemented, but the latest retained deployment record does not establish it as live.
Supporting the people using the system
My work extends to requirements gathering with Ministry of Health stakeholders, testing, deployment, and user training. On-site visits provide troubleshooting and support, helping connect engineering decisions to how laboratory staff actually use the system.
Current state
As of the September 2026 deployment review, ZanLIS was deployed at 12 laboratory sites across Unguja and Pemba: ten public-service sites and two Public Health Laboratory sites. This is a deployment count, rather than a measure of active usage or integration coverage at every site.
The existing warehouse covers the public deployment. Analyzer connections and clinical integrations vary by site, and newer facility-routing and warehouse changes have separate release and acceptance work. My ongoing work covers maintenance, integration reliability, and extending these capabilities.