Francophone Africa's medical lab market: 60+ major labs in Senegal, 90+ in Ivory Coast. Digitalizing the patient journey (booking → collection → results) lags and represents a massive opportunity.
TL;DR
- Stack: Next.js + online booking + home collection + secure results portal.
- Pre-defined panels (bundles) accelerate conversion: "General checkup 35K XOF".
- Strict GDPR + SN Law 2008-12 patient data compliance.
Digital lab architecture
`
[Patient]
↓
[Lab site]
├── Test catalog + pre-defined panels
├── Online booking (center + home)
├── Prescription upload
├── Wave/OM payment
└── Patient portal (secure results)
[Backend]
├── Test catalog (250+ types)
├── Technician slots
├── Sampling material stock
├── Analysis workflow
└── Biologist validation before sending
`
Step 1 — test catalog + panels
`prisma
model Test {
id String @id @default(cuid())
code String @unique
name String
category String
description String
priceXof Int
fastingRequired Boolean
fastingHours Int?
delayHours Int
prescriptionRequired Boolean
isActive Boolean @default(true)
}
model TestPackage {
id String @id @default(cuid())
slug String @unique
name String
description String
testIds String[]
totalPriceXof Int
isPopular Boolean
}
model Booking {
id String @id @default(cuid())
patientId String
type String
scheduledAt DateTime
testIds String[]
packageId String?
totalAmount Int
paidAt DateTime?
prescriptionUrl String?
status String
technicianId String?
homeAddress String?
resultsUrl String?
resultsValidatedAt DateTime?
resultsValidatedBy String?
}
`
Step 2 — pre-defined panels (#1 conversion lever)
`tsx
const POPULAR_PACKAGES = [
{
name: 'General checkup',
description: 'CBC, glucose, urea, creatinine, transaminases, cholesterol',
tests: 6,
fastingRequired: true,
delayHours: 24,
individualSum: 42000,
packagePrice: 35000,
discount: '-17%',
},
{
name: 'Diabetic checkup',
description: 'Fasting glucose, HbA1c, post-meal glucose, creatinine',
tests: 4,
fastingRequired: true,
individualSum: 28000,
packagePrice: 22000,
discount: '-21%',
},
{
name: 'Pre-marriage checkup',
description: 'Blood typing, hemoglobin electrophoresis, HIV/HBV/HCV/syphilis serology',
tests: 7,
fastingRequired: false,
individualSum: 58000,
packagePrice: 45000,
discount: '-22%',
},
{
name: 'Pregnancy checkup',
description: 'CBC, glucose, toxoplasmosis/rubella/CMV serology, blood typing, RAI',
tests: 8,
fastingRequired: true,
Need a professional website?
Kolonell builds websites that attract clients, optimized for the Sénégalese market. Free quote in 2 minutes.
individualSum: 75000,
packagePrice: 58000,
discount: '-23%',
},
];
`
Panels = 65-75% of bookings — easy to understand + visible savings.
Step 3 — home collection workflow
Premium service in high demand (elderly parents, busy professionals):
`tsx
'use client';
export default function HomeCollectionBooking() {
return (
steps={[
{ name: 'Tests', component: SelectTestsStep },
{ name: 'Address', component: AddressStep },
{ name: 'Date/time', component: SlotStep },
{ name: 'Patient', component: PatientStep },
{ name: 'Prescription', component: PrescriptionUploadStep },
{ name: 'Payment', component: PaymentStep },
]}
/>
);
}
`
Home fees: +5,000-10,000 XOF per zone.
Step 4 — secure results
`
[Analyses complete]
↓
[Biologist validation]
↓
[Digitally signed PDF generation]
↓
[Encrypted storage]
↓
[Patient SMS + WhatsApp + email notification]
↓
[Patient logs in via magic link]
↓
[Download PDF + history access]
`
`tsx
export default async function ResultsPage({ params }) {
const session = await getSession(params.token);
if (!session) return redirect('/expired');
const booking = await getBookingForPatient(session.patientId, params.bookingId);
if (!booking || !booking.resultsUrl) return
return (
📄 Download signed PDF 👨⚕️ Share with my doctorYour results
);
}
`
Step 5 — AI interpretation (with disclaimers)
With Claude API, provide patient explanation of values (no diagnosis):
`tsx
async function explainResult(test, value) {
const response = await anthropic.messages.create({
model: 'claude-sonnet-4-6',
max_tokens: 300,
messages: [{
role: 'user',
content: `Test "${test.name}" returned ${value} (reference ${test.normalRange}).
Explain to the patient in plain English what this test measures (in 100 words) and the importance of consulting their doctor for interpretation. DO NOT diagnose. End with "Consult your doctor for interpretation."`,
}],
});
return response.content[0].text;
}
`
Step 6 — physician partnerships
Doctors prescribe: sign partnership allowing direct prescription to lab + secure result retrieval.
Workflow:
- Doctor logged into platform
- Generates signed digital prescription
- Patient receives direct lab booking link (pre-filled)
- After analyses, doctor receives results notification
- Optional follow-up consultation
Real case — Mermoz Lab Dakar
| Metric | Before | After 12 months |
|---|---|---|
| Bookings/month | 280 | 720 |
| Pre-defined panels (% bookings) | 0 | 68% |
| Home collection (% bookings) | 0 | 22% |
| Avg results delay | 36h | 18h |
| Patient NPS | 38 | 72 |
| Monthly revenue | 8.4M XOF | 22.6M XOF |
Common pitfalls
- Plain unencrypted email results — illegal GDPR/Law 2008-12. Always secure magic link.
- No biologist validation — legally mandatory. Workflow can't be 100% auto.
- Long-term unencrypted storage — health data = special GDPR category.
- Non-transparent pricing — losing 50% bookings vs transparent competitors.
- Home collection without quality control — kit + cold chain critical.
FAQ
Q: Mandatory biologist validation delay?
A: Always required. But can be <1h for simple panels with optimized workflow.
Q: Home in all Dakar?
A: Per lab. Plateau-Almadies-Mermoz-Yoff generally covered. Suburbs more expensive or uncovered.
Q: Competition?
A: Bio24 (CI), Pasteur Lille Senegal, Mérieux. Far from saturated on digital tier.
Conclusion
Digitalized medical lab = 2-3× booking volume of traditional lab. 8-20M XOF stack for clean MVP. 12-18 month ROI. Critical legal compliance = entry barrier and defensible advantage for serious players.
Mohamed Bah
Fondateur, Kolonell
Passionate about digital and entrepreneurship in Africa, Mohamed has been helping Sénégalese businesses with their digital transformation since 2020. Founder of Kolonell, he believes every SME deserves a professional and accessible online présence.
