One system from the counter to the trial balance: dispensing, inventory, claiming, the till, the accounts, the branches and the reporting that tells an owner which of them is working. It is built around what a pharmacist actually does at eleven on a Saturday morning, not around what is easy to write. Everything that differs between countries is a jurisdiction pack, so the same software follows whichever rules your pharmacy actually trades under.
No card, no call, no password to remember. Every screen, real data you can change, nothing switched off. When the four hours are up the account stops and everything you entered is kept.
Scripts, repeats, OTC and pharmacist-initiated supply. Function keys match the ones your staff already use, so nobody relearns their job.
Short of stock? Hand over what you have, owe the rest, and let the system tell you the morning a delivery arrives which patients can now be called.
Real-time claims where the funder supports it. When the line drops the medicine still goes out and the claim waits in a queue you can see, rather than being lost.
First-expiry-first-out, batch and expiry tracked to the unit, expired stock refused at the point of sale rather than found at stocktake.
A waybill for anything leaving the shop, and a controlled item cannot be closed off without the recipient's identity recorded at the door.
Double-entry underneath, posted automatically from sales and stock receipts. Trial balance, ageing, VAT return and a balance sheet that actually balances.
Most of this came out of watching people use it on a counter rather than out of a roadmap.
Dispensaries are dark at six in the morning and lit by one strip light at nine at night. Light, dark, or follow the machine, from the top bar. Every colour in it was measured against the surface it is painted on, including the schedule badges, which is the one label nobody can afford to squint at.
EcoCash, Omari and InnBucks, each offering only the currencies it actually settles in. Type a 071 number with EcoCash selected and it says so, because a decline at the counter with a customer watching is the expensive way to find out.
An installed till checks for a new version, tells whoever is standing at it what changed, and installs it when they say so. No reinstalling over the top, and nothing downloads unless it carries our signature. An update that cannot be verified is not a broken update, it is no update, which is the safe way for it to fail.
Log a pharmacist out between customers and they lose the basket, so the timeout gets switched off and the machine then sits signed in all day with every action attributed to whoever opened the shop. This locks: the work survives, and a four-digit PIN says who is back at the keyboard.
Four hundred of them, including the whole vocabulary from the system
most pharmacies in this region are coming off. Type 12a and get
“take 1-2 tablets”; the list opens as you type and Enter
takes one. Nobody has to be retrained to type, because the shorthand is
muscle memory measured in years and everything else on a dispensary
screen can be learned in a morning.
A cashier opens the dispensary on over-the-counter medicine and is not offered the tabs they may not use; only a pharmacist reaches Dangerous Drugs. Five roles, nineteen permissions, every one of them yours to move, and any of them grantable to one named person with a reason and an end date, because the locum who covers Saturdays should not carry Saturday’s authority into Tuesday.
Every line is screened against the rest of the script and against what the patient has actually been dispensed in the last six months, and the dose is read out of the directions and checked against a maximum. Neither runs on a button, because a safety check somebody has to remember is one that gets skipped on the afternoon it was written for.
A manufacturer withdraws a batch. In one search: how much is still on your shelf to quarantine, which supplier and order it came from, and every patient who received some, with a telephone number.
Dispensed is not collected. Bags waiting behind the counter, oldest first, with the ones a week old flagged for a telephone call and the ones over a month flagged to go back to stock.
Stock near expiry is valued at what it will realistically fetch rather than at cost, so the balance sheet stops overstating the business every month and then taking a lump when somebody gets round to a write-off.
Every screen, in the order somebody actually meets them, arranged by the job they do rather than by the menu. A cashier never has to scroll past the claiming chapter.
Most pharmacy software sold in this region was written for somewhere else and had the local rules bolted on afterwards, which is why it always feels like it is arguing with you. RX5000 is built the other way round. Dispensing, stock, the till, the accounts and the reporting are the same wherever the shop is. Everything genuinely local is a jurisdiction pack, chosen once when the pharmacy is set up. Here is what that pack carries for a pharmacy trading in Zimbabwe.
| What is different | How RX5000 handles it |
|---|---|
| MCAZ distribution categories | Medicines are classified HR, P, PIM, PP, PP10, N and SR, the letters on the label, not schedule numbers borrowed from another country. PIM in particular has no equivalent elsewhere. |
| Two currencies, one till | USD and ZiG side by side, each tender recorded at the rate in force, change given in either, both drawers reconciled separately. |
| ZIMRA fiscalisation | All three routes are supported: an Approved Supplier device, a hosted service, or a direct interface. A filed receipt is credit noted, never voided. |
| AHFoZ claiming | One claim format, routed to whichever switch the funder uses. Tariff and diagnosis errors are caught before submission, not a fortnight later when the money has not arrived. |
| Poor connectivity | The till does not stop when the line does. Claims queue, fiscal receipts queue, and everything is refiled when the connection comes back. |
A pharmacy is a clinical practice, a retail shop, a debtors book and a small logistics operation wearing one name over the door. Run those on four systems and the reconciling is somebody's whole week. Here they are one system, and each layer already knows what the others did.
Scripts, repeats, over the counter and pharmacist initiated supply, on the function keys your staff already use. Interaction and dose screening, counselling recorded, and a controlled register that can say who checked what.
Batch and expiry to the unit, first expiry first out, expired stock refused at the point of sale rather than found at stocktake. Reorder levels, supplier orders, receiving by scan, and stock moved between branches with both shelves adjusted as it goes.
Real time where the funder supports it. When the line drops the medicine still goes out and the claim waits in a queue you can see. Remittances matched, shortfalls aged, and the scheme calendar telling you which cut off is three days away.
Front shop sales, lay by, cash up per drawer and per currency, petty cash, card and mobile money reconciled against what the bank actually settled rather than what the till hoped.
Double entry underneath, posted automatically from sales and stock receipts rather than typed again at month end. Trial balance, ageing, creditors, VAT return and a balance sheet that balances.
Staff records, roles, and a permission for each act rather than a password everybody shares. A locum's authority can be given with a reason and an end date, and the register says who dispensed rather than which login happened to be open.
Several branches on one set of books, each holding its own stock and its own till. Compare them on one scorecard, move stock between them, freeze one, and see the estate without signing into each shop.
Eighty nine reports, plus the questions an owner actually asks: which lines make eighty percent of the turnover, what is sitting and not moving, which repeats are overdue, what a repeat patient is worth against a walk in, and which branch is carrying the group.
Ask where something is, how a thing is done, or what a code means, and it draws the steps and takes you to the screen. It reads a map of the application and your own figures under your own permissions, so it cannot show anybody something they could not already open.
We look at how your dispensary actually runs, which schemes you claim from, and how many tills you have. Half an hour, on site or on a call.
Products, NAPPI codes, suppliers, scheme terms and outstanding balances. You start with your shop, not with sample data.
For the first weeks RX5000 runs beside your current system rather than instead of it. Nobody bets a pharmacy on a switchover weekend.
We handle the switch and ZIMRA side with you. Until each one is proven end to end it stays marked unproven in the product. No guessing.
The signal to switch is your assistants preferring the new till. If they do not, we have not finished.
You keep dispensing. Claims that cannot be sent are held in a queue you can see and count, and go out together when the line returns. Fiscal receipts queue the same way with their sequence and hash chain intact.
The function keys are deliberately the same ones they use now. F1 mixture, F3 no-claim, F11 claim later, and so on. The one place we differ is F12: it still finishes a script, but it asks first, because a fiscalised receipt can only be reversed by credit note.
Yes. A small program on the till talks to the receipt printer, the cash drawer and the card terminal. Barcode scanners behave as keyboards and need no setup.
Not whoever happens to be logged in. Those actions ask for a password, and for a void or a discount it must be a second person's. The manager types their own password on the assistant's till. Every attempt is recorded, including the refused ones.
Taken from inside the product, and verified before they are kept: the copy is opened, integrity-checked and its contents compared against the live database. One that fails is deleted rather than left for you to discover on the day you need it.
It checks a set of well-established, high-severity pairs and flags duplicate therapy. It states plainly that this is not a full clinical database, and a clear result is worded "none of the pairs this system holds" rather than "no interactions", because the second sentence is not true and a pharmacist should never be misled into relying on it. A licensed interaction database can be connected.
Every grid exports to a spreadsheet, and the database is a single file you can copy. It is your pharmacy's data.
A pharmacy counter is not a web page. It talks to a receipt printer, a cash drawer and a fiscal device, and it has to keep serving patients when the line goes down. The desktop application runs against the pharmacy's own server on the premises, so a ZOL outage is an inconvenience rather than a closed shop.
Windows 10 and 11, 64-bit. 3.5 MB, installs per machine, no runtime to install alongside it.
Download for WindowsPrefer an MSI for Group Policy? RX5000 1.6.26 MSI.
Debian and Ubuntu (.deb), plus an AppImage that runs anywhere without installing. Built on each release.
Download for LinuxNothing to install. The same application, without the printer and cash drawer support.
Open in a browser
The Windows build downloads here and points at
http://localhost:8177 out of the box, which is the
single-machine pharmacy. On a counter with its own server, put the address
in server.txt beside the executable or set
RX5000_SERVER; nothing needs rebuilding. Linux and macOS builds
are produced on each release and live on the releases page, because a Linux
bundle has to be built on Linux and a Mac one on a Mac.
A pharmacy is not software you buy from a page. Message us and we will walk your counter through it, or set up a trial on your own stock file.
Choose Try it for 4 hours on the sign-in page. No password, nothing switched off: a real pharmacy with real demonstration data. Dispense something, void it, look at what the ledger did.