Genesys+ · the Genesys health information exchange

The patient moves.
The record moves with them.

Genesys+ connects every clinic already running Genesys EMR into one exchange. Offline-first sync, a single patient identity across facilities, FHIR at the border, and consent the patient grants from WhatsApp in under a minute.

1identity per patient
24hdefault grant, 7 days maximum
6languages at parity
0reads without a grant
Reddington Hospital Ikejaalready running Genesys EMRSubol Hospital Limitedone patient identityMedbury Medical Services, Lekkiconsent-gatedKaaf Specialist HospitalFHIR at the border Reddington Hospital Ikejaalready running Genesys EMRSubol Hospital Limitedone patient identityMedbury Medical Services, Lekkiconsent-gatedKaaf Specialist HospitalFHIR at the border
Architecture

Five layers between a clinic in Ikorodu and a consultant in Kano.

Each layer runs on the .NET stack Genesys facilities already operate. Nothing here asks a clinic to change how it works when the network is down.

01

Sync agent

A background worker beside each facility's EMR. Events batch locally and push when a link appears.

02

Patient index

Deterministic matching on hashed NIN, verified phone and demographics. One human, one identifier.

03

FHIR gateway

Every resource crossing a facility boundary is HL7 FHIR R4, authenticated at the border.

04

Consent engine

Scoped, time-boxed grants the patient issues from WhatsApp. No grant, no record.

05

Audit

One immutable line per access: who, what, where, when, and the consent proof behind it.

Lose power or lose the link and the clinic runs as it always did. Events queue locally and push exactly once when the connection returns.

Registration

Register at the hospital before you leave the house.

A first-time patient tells Jenny which facility they are going to. She verifies the NIN, takes the details the front desk would have written on a card, and opens the file in that hospital's Genesys EMR before the patient arrives.

MATCHED

Already on the network

Attached to the existing identifier. No second file is created and the history stays in one piece.

NEW

A genuine first visit

No record anywhere on the exchange. An identifier is issued and the registration written to the record.

NEEDS REVIEW

Close, but not certain

A shared phone, a transposed date, a common name. Held for a person. Nothing merges automatically and nothing duplicates automatically.

Arriving in 20 min
PATIENTAdaeze Okonkwo, 34F GLOBAL IDNG-HIE-4471-0289 STATUSMATCHED · EXISTING QUEUEB-12 · outpatient

Pre-registration replaces the re-keying. It never replaces seeing the patient: the desk still confirms identity in person, against identification.

Data subject access

“Please send me my medical records.” One message. No queue, no photocopier, no fee.

A patient in Lagos can ask Genesys+ for their own history the same way they message a friend. Jenny verifies them with a code, assembles the record from every facility that holds a piece of it, and sends back a password-protected document on a link that expires.

Under the NDPA a patient can request the data held about them. That right existed before Genesys+ and is not created by it. What changes is that it stops being a written application and a wait, and every disclosure is logged against every contributing facility.

Verified, not assumed

A 6-digit code checked against the number on the index, valid for 5 minutes.

The link expires

15 minutes. Nobody at the hospital can extend it or reissue it on the patient's behalf.

Jenny · Genesys+
online
Good morning. Please send me my medical records.09:14
Good morning. First, a 6-digit code to confirm it is you. Reply with it.09:14
48291609:15
Verified. I found records at 4 facilities. Everything, or just the last 12 months?09:15
Everything please09:15
Here is your full history: 11 encounters, 6 lab reports, 9 prescriptions. The link expires in 15 minutes.09:16
Telemedicine and adherence

See a doctor without the journey. Then be reminded of every dose and every follow-up.

Jenny · Genesys+
07:55
Ferrous sulphate 200mg. Take it now, with food and not with tea. 6 days left in the course.07:55
Taken
Remind in 1h
Your follow-up with Dr. Nwosu is tomorrow at 14:30. Tap to join from here.14:00
That is the end of your course. No more reminders for this prescription.09:00

Jenny books the consult, joins the clinician to the patient's full cross-facility record, and holds the schedule afterwards. Appointments arrive as a calendar invite. Medication arrives as a message at the hour it is due, in the patient's language, with the days remaining in the course.

The consult is not finished until the schedule is set. The value of a remote consultation is that the patient leaves it with every dose already in their phone.

Rescheduling propagates

Moving it in the thread moves the clinic booking and the whole reminder series together.

An explicit ending

Reminders stop with a final message rather than trailing off and leaving a patient guessing.

A “taken” reply records that a button was pressed. It is a useful signal about engagement and a poor one about ingestion, and it is never charted as administration.

Introducing

Jenny

At the centre of the network. Every clinic, every record, every consent, one assistant standing in the middle of it.

facility nodeslive syncconsent-gated
Move your cursor
The assistant

One assistant, in the thread and in the record.

She speaks to patients on WhatsApp and to clinicians in the record, and she is the same assistant in both places, working from the same verified data.

Jenny never diagnoses, never prescribes, and never answers from outside the record. Where she is unsure, she says so and routes to a human clinician.

Six languages

English, Yorùbá, Hausa, Igbo, Nigerian Pidgin and French, at parity rather than as a translation layer bolted on afterwards.

Every line cited

A brief names the source encounter for each statement, and the clinician can open it. A line without a source is not a line she writes.

Coverage stated

A summary assembled from three of four facilities is a summary with a hole in it, and it says so rather than reading as complete.

Underneath

What runs underneath Jenny. Model-agnostic by design.

Jenny is one assistant over many models. A Semantic Kernel service in C# routes each task to the cheapest model that can do it safely. Triage runs on a small open model in-country. Long histories go to a high-context model, and swapping any of them changes nothing about how Jenny behaves.

Stripped before it leaves

A pre-processing stage removes names, identifiers and phone numbers before the request body is assembled, not before it is sent. It is not promptable and cannot be configured off.

Filtered before it searches

Retrieval is scoped to one patient identifier before the search executes, so another patient's history is never in the set being read from. That is a structural property rather than a probability.

Agent output is decision support. It is drawn from the record, cites the source encounter, and is never the final clinical judgement.

The record

One timeline, assembled from every facility the patient has visited.

Not four records side by side. One history, in date order, with the source facility named on every entry, and the live grant and its expiry in the header the whole time it is open.

14 Jun 2026
Outpatient consultationFatigue, palpitations. FBC ordered.Reddington Hospital Ikeja · this visit
02 Jun 2026
Pharmacy dispenseFerrous sulphate 200mg, 30 days. Folic acid 5mg.Kaaf Specialist Hospital, Lagos
17 Mar 2026
Laboratory · haematologyHb 9.1 g/dL. MCV low. Iron studies consistent with deficiency.Medbury Medical Services, Lekki
08 Jan 2026
Antenatal follow-upUncomplicated. Delivered 41 weeks.Subol Hospital Limited, Lagos
Reddington · in viewSubol · in viewMedbury · in viewKaaf · sync stale, 3 days
INTERACTION

Ciprofloxacin ordered here overlaps ferrous sulphate dispensed at Kaaf Specialist on 02 Jun. Absorption reduced. Separate doses by two hours.

Both sides of this collision live at different facilities. A single-facility EMR sees neither.

Illustrative interface. Not live client data.

Trust

A national exchange only works if nobody has to take it on faith.

NDPA obligations are built into the pipeline rather than bolted onto it, and the controls are the kind that can be demonstrated in a room rather than described in a brochure.

The gate, not the filter

Clinical data is unreachable without a live grant. A bug in an interface cannot widen access, because the widening is not the interface's to do.

Append only

The audit log rejects edits and deletions outright. Every read carries the grant that authorised it, exportable for a regulator.

No override exists

No role at any facility, including ours, can release a cross-facility record without a patient grant. The control does not exist to be found.

The desk never waits

Lose power or the link and the clinic runs as it always did. Events queue locally and push exactly once when the connection returns.

0Reads served without a grant. Any other number is a P0 incident rather than a metric to watch, and the platform reports it on its own dashboard.
Join the exchange

Put your facility on Genesys+.

If you already run Genesys EMR, joining is a sync agent and a consent policy. Jenny comes with it. We will walk your team through both.