Offline medication dispensing — doses always saved, even without signal
At a patient's home, in a hospital, in a basement on the side away from the cell tower. That is exactly when you need to dispense medicine — and exactly when the signal tends to vanish.
Since version 1.7.0, mojApteczka saves a dose confirmation instantly on the device — no waiting for the server, no spinning loader. Pending dispenses queue up locally and automatically sync to the cloud the moment you come back online. Even closing the app or a dead phone battery will not lose a recorded dose.
How to dispense a medicine without internet
The process is identical to online dispensing — a missing signal does not block any step:
- open the medicine card in your kit,
- tap the dispense icon,
- choose the dose (fractional is supported too) and the recipient,
- confirm — the screen responds instantly, stock updates locally,
- when signal returns (or you open the app online), the queue automatically flushes pending dispenses to the cloud.
You do not have to click, resume, or "remember for later". An operation leaves the pending list only when the server confirms receipt.
What happens to pending dispenses
The key difference between mojApteczka 1.7.0 and a typical online-first app: the queue of pending operations is persistent. It is not a RAM variable that disappears on process kill — it is a disk-backed store inside the operating-system sandbox, encrypted at rest.
In practice:
- Closed the app during the visit? The queue lives on disk, waiting for the next launch.
- Phone died in the car? Charge, open mojApteczka — the queue resumes syncing as soon as there is signal.
- Drove through a dead zone for 20 minutes? Quietly, in the background, the queue sends operations in batches.
- Using a shared kit? Your offline dispenses become visible to other family members only after your device syncs — but they appear without conflicts, even if someone else dispensed the same medicine in the meantime.
Why local-first, not "everything on the server"
The classic online-first model ships every operation to the server and waits for acknowledgement — it works great as long as the internet works. But when caring for a patient, the internet often does not work: old houses, basements, brick-walled hospitals, long drives between towns. Waiting for the server in that moment means one of two bad outcomes:
- a spinning loader — the caregiver has no idea if the dose was recorded,
- lost operations — after a timeout the app gives up, and the dose vanishes from history.
Neither is acceptable for medication tracking. So in mojApteczka a confirmation saves locally first — fast, reliably, regardless of network — and cloud sync is a background process that finishes when it can.
Surviving app kill and a dead battery
The Facebook 1.7.0 announcement promised: "no lost dose — closed the app? dead battery? pending dispenses send themselves later." That is not a marketing flourish; it is a consequence of the architecture:
- the queue is persisted to disk immediately on confirmation (write-ahead),
- OS restart / device reboot does not touch the queue data,
- reopening the app reads and continues the queue,
- if background connectivity is available, syncing resumes without your intervention.
In other words: the only scenario in which a pending operation is lost is uninstalling the app before sync. If you see an operation with "queued" status in history, simply open the app online for a moment — it will flush to the server.
Privacy — pending operations stay on the device
While an operation is in the queue, it does not leave your phone. That is a direct consequence of the local-first model — what you dispensed, to whom and when, sits inside the OS sandbox, protected by biometric screen lock (Face ID / Touch ID). Only a successful sync moves the operation to the mojApteczka cloud in the EU (Frankfurt, AWS).
If you lose a phone without signal, even the last minutes of dispensing (still un-synchronised) remain encrypted inside the iOS sandbox. That is the same protection standard we apply to offline SPC documentation and the pharmacy map.
Availability
Offline mode for dispensing is currently available in the mojApteczka iOS app (from version 1.7.0). The Android version is planned — the same local-queue model will ship there in subsequent releases. The web version is inherently server-connected; if you need offline behaviour, use the mobile app.
How it connects with other features
Offline dispensing is one of the three pillars of "mojApteczka works without internet":
- Dispensing medicines — a comprehensive description of the feature, including fractional doses, recipient picking, and history,
- Offline SPC documentation — summary of product characteristics for 8,000+ medicines, available offline after the first sync,
- Offline pharmacy map — pharmacy locator that works after the first bundle download,
- PDF report for the doctor — includes both synced and pending operations after the next sync,
- Dosage reminders — run locally, independent of signal.
Important limitation
The pending-dispense queue does not survive an app uninstall. If you have un-synchronised operations and need to change phones or reinstall mojApteczka, open the app with active connectivity before uninstalling — a brief moment online is enough for the queue to flush. After reinstalling, sign back in, and your dispense history (already in the cloud) will be available on the new device.
Note: the dispense feature is a tool for recording doses. It does not replace a doctor's or pharmacist's advice on dosing, frequency, or administration method — offline just as much as online.
Offline dispensing in mojApteczka turns the moment "at the patient's, no signal" from a potential trap into something you stop thinking about. The screen responds instantly, the queue syncs itself, no dose is lost — regardless of whether you are at home, in a hospital, or on the road.
Frequently asked questions
- Can I dispense a medicine without internet in mojApteczka?
- Yes. Since version 1.7.0, a dose confirmation saves instantly on the device even without connectivity. Pending dispenses are stored safely in a queue and automatically synchronised to the cloud when the connection returns.
- What happens if I close the app with a pending dose?
- Nothing gets lost. The queue of pending dispenses is persisted to disk on the device. Re-opening the app — even the next day — resumes the queue, and the dispenses will flow to the cloud as soon as you have signal.
- What if my phone dies while a sync is pending?
- No recorded dispense is lost. The queue data lives on disk (not in RAM), so a restart after charging has no effect on history completeness. Synchronisation resumes when signal returns.
- Can I see which operations are still un-synchronised?
- Yes. In the dispense history, pending operations carry a clear status marker ("queued" or similar). When the sync succeeds, the marker disappears.
- How long can an operation wait in the queue?
- There is no hard time limit. The queue can hold pending dispenses for days or weeks and will sync as soon as signal returns. In practice, though, it is worth syncing as early as possible so that PDF reports and shared kits reflect the current history.
- Can I use a shared kit offline?
- You can dispense medicines and save operations locally. Other members of a shared kit will see those dispenses only after your device syncs to the cloud. Once both sides sync, all operations are reconciled — even if two people dispensed the same medicine in parallel.
- What happens if I uninstall the app before syncing?
- Uninstalling the app removes local data, including the pending queue. If you have unsynced dispenses, open the app with an active connection before reinstalling — a brief moment online is enough for the queue to flush.
- Which devices support offline mode?
- Offline dispensing is currently available in the mojApteczka iOS app (from version 1.7.0). The Android version is planned. The web version is inherently server-connected, but in the mobile app you can confirm doses anywhere.
Download the iOS app and record doses even without signal
See pricing plans →