Pharmacy Management Platform for a Kenyan Pharmacy Chain
Designed and built a clickable pharmacy management platform for a Kenyan chain of 40 retail and hospital outpatient pharmacies: a prescription queue, a dispensing workspace with batch picking by expiry, safety checks, bilingual labels and the controlled drugs register, batch-level stock, and an expiry dashboard that suggests what to do with every batch at risk.
Most of our work is under NDA. Per agreement, we can share the work but not the company details - all names and identifying information shown here have been changed.
Outlet dashboard, prescription queue, dispensing workspace, stock on hand and expiry dashboard. Each of the 18 demo prescriptions opens its own dispensing workspace.
The earliest-expiring usable batch is preselected, choosing a later one needs a reason, and expired, recalled or quarantined batches are greyed out and cannot be picked. Scanning the pack confirms product and batch.
Approve stays locked until every major or contraindicated alert has a pharmacist decision, every picked line is scanned and any controlled drug entry is signed with the pharmacist's PIN.
25 products, 18 patients, 18 prescriptions with 9 safety alerts and 36 batches at the Kilimani outlet, plus 23 near-expiry batches across 10 outlets of the chain.
Each Mbuyu outlet ran its own copy of a desktop point-of-sale tool that knew products but not batches. Controlled drug entries went into paper registers, fridge temperatures onto a sheet on the door and expiry dates into an exercise book. Head office heard about recalls on WhatsApp and phoned 40 outlets to find the batch, about KES 14.6 million of expired stock was written off in a year, and insurance claims were rejected when the dispensed quantity did not match the pre-authorisation.
Mizani follows a medicine through the chain by batch and expiry. Dispensers work a prescription queue with wait-time targets, pick batches first-expiry-first-out, pass interaction and allergy checks, print labels in English and Kiswahili and sign controlled drug entries before handover, while the stock and expiry pages show what each outlet holds and what to do with stock that will not sell in time.
Mbuyu Pharmacies runs 31 retail pharmacies in Nairobi, Mombasa, Kisumu, Nakuru and Eldoret and 9 outpatient pharmacies inside private hospitals. Each one is licensed by the Pharmacy and Poisons Board, dispenses against prescriptions from many prescribers and is paid by M-Pesa, cash, private insurers and SHA.
A Pharmacy and Poisons Board recall names a product and its batches. With stock held only by product, nobody could say within a day which outlets held a recalled batch, and slow movers sat in one branch while another ran out.
Under the Narcotic Drugs and Psychotropic Substances (Control) Act, every receipt and supply goes into a register per drug and strength with a running balance, and entries are never deleted. Two outlets had balances that did not match the register at a PPB inspection.
Allergies, interactions with medicines dispensed at another outlet, duplicate therapy, doses for children and pregnancy cautions all had to be caught by the person at the counter, with no shared patient history across the chain.
Private insurers such as Jubilee, AAR and Britam work through intermediaries and pre-authorisations, SHA replaced NHIF from late 2024 with rules still evolving, and co-pays are collected at the counter. A quantity that differs from the pre-authorisation gets the claim rejected.
Mapped 12 roles from pharmacist and pharmaceutical technologist to stores, procurement, quality lead, insurance desk and data protection officer, 47 screens including 2 patient pages, and the data model for products, batches, an append-only stock ledger, prescriptions, safety alerts, controlled drug registers, recalls, cold chain readings and claims. Wrote down the rules the design follows: the Pharmacy and Poisons Act, medicine classification, the controlled drugs Act, label content, PPB pharmacovigilance and recalls, the Kenya Data Protection Act, SHA, KRA eTIMS and GS1 barcodes.
Built 5 key screens on a production dashboard kit: the outlet dashboard with KPIs, queue, stock alerts, expiry and a compliance strip; the prescription queue with an e-prescription inbox and wait times that turn amber after 15 minutes and red after 20; the dispensing workspace with patient card, batch picker, safety checks, label preview, counselling and controlled drug entry; stock on hand with a product quick view; and the expiry dashboard with suggested actions. All actions run on local state.
Integration with M-Pesa through the Safaricom Daraja API, KRA eTIMS invoices, insurance and SHA claims through intermediaries such as Smart Applications or Slade360, e-prescriptions over HL7 FHIR, a licensed drug interaction database, fridge temperature loggers, SMS through Africa's Talking and the chain's ERP. Access by role and outlet, PIN-locked counter terminals, a tamper-evident audit log, and the remaining screens: point of sale, claims, receiving, transfers, counts, purchasing, recalls, cold chain, pharmacovigilance, head office and the patient pages.
Alerts carry a severity from minor to contraindicated, and each major or contraindicated alert needs a decision: proceed with reason, contact prescriber or do not supply. The status rail shows who did each step from intake to collection.
Batches are listed by expiry with their shelf location, the first usable one is already picked, and a later choice asks why. When stock is short, the workspace supplies what is there and records an owing balance.
Directions print in English and Kiswahili from a reviewed phrase library, with cautionary labels such as "Do not drive if drowsy", the outlet's details and a QR code to the medicine leaflet. The counselling checklist covers how to take, side effects, storage and missed doses.
The expiry dashboard compares days of cover with days to expiry, marks in red stock that will not sell in time and suggests selling through, transferring to a faster outlet, returning to the supplier, discounting or quarantine. Discounts are offered for over-the-counter items only, never for prescription-only medicines.

Built a multi-department clinic operations console with appointment management, department load tracking, staff performance, resource utilisation and an AI assistant for staff queries - shipped from clickable AI prototype to production in 14 weeks.

Designed and built a clickable booking and intake platform for a group of GP, physiotherapy and psychology clinics in regional Victoria and southern NSW: a day calendar by practitioner or room, pre-visit forms reviewed before the visit, and a clinician-only queue that puts every risk answer in front of a clinician against a response target.
Enterprise Software Engineering - Human + AI
Contact Us
© 2026 - Copyright. All Rights reserved Oceanlab
Location
Global Headquarters
21 Merchant Road, 3rd Floor, Singapore 058267
Main corporate office and leadership operations
North America Office
548 Market Street, PMB 12345, San Francisco, CA 94104
Client operations and business development
India Office
402 Shivalik Shilp II, SG Highway, Ahmedabad 380015
Engineering and delivery center
Enterprise Software Engineering - Human + AI
Contact Us
Locations
Global Headquarters
21 Merchant Road, 3rd Floor, Singapore 058267
Main corporate office and leadership operations
North America Office
548 Market Street, PMB 12345, San Francisco, CA 94104
Client operations and business development
India Office
402 Shivalik Shilp II, SG Highway, Ahmedabad 380015
Engineering and delivery center
© 2026 - Copyright. All Rights reserved Oceanlab