Download NeoCliniQ

Install the clinic app on the computer that will hold your records, then install the pharmacy app on the tablet at your counter. The pharmacy finds the clinic computer by itself once both are running.

Clinic computer

Doctor — Windows

Windows 10 or later, 64-bit · run the installer

Download 14 MB

Doctor — Android

Android 9 or later · the same app in a pocket

Download 23 MB

Pharmacy tablet

Pharmacy — Windows

Windows 10 or later, 64-bit · a counter on a PC, run the installer

Download 14 MB

Pharmacy — Android

Android 9 or later · for the counter tablet

Download 26 MB

The first time you open it

The Windows build is not registered with Microsoft yet, so it warns once on first launch. Nothing is wrong with the download and nothing has been detected in it — Windows is saying it cannot yet vouch for who published it.

Setting up

  1. Install the clinic app and follow the short setup. You will be asked for an email address and a code we send to it.
  2. Print the patient QR code the app shows you and put it where patients wait.
  3. Install the pharmacy app on your counter tablet and open it on the same Wi-Fi.
  4. It will find the clinic computer. Enter the pairing code shown under Settings, and the tablet stays connected from then on.

What changed

2.1.72 2026-10-27

  • **The pharmacy switches without a hiccup.** When the doctor’s computer stops answering on the clinic Wi-Fi, the counter asks over the internet straight away, in the same moment, instead of showing “not answering” first.
  • **The doctor app catches up faster after the internet drops.** A failed sync is tried again after 5, 15, 30 and 60 seconds instead of waiting up to two minutes.
  • **Better records for support.** Connection problems are now logged with what failed, on which path and for how long, and when they recovered.

2.1.71 2026-10-27

  • **The pharmacy stays signed in when the Wi-Fi drops.** Signing in on the clinic Wi-Fi now signs in over the internet too, so when the doctor’s computer stops answering the counter carries on over the internet instead of saying “not allowed to bill” and asking for the password again.

2.1.70 2026-10-25

  • **Others, beside chronic conditions and allergies.** The doctor can add tags such as “high body temperature” to a patient. They show everywhere chronic conditions and allergies do.
  • **No more false “account disabled” lock at the pharmacy.** A short internet hiccup is no longer mistaken for a disabled account, so pharmacists are not locked out or signed out when the tablet moves between Wi-Fi and the internet.
  • **Fewer repeat uploads from the doctor app.** A consultation saved several times is now sent once, so a paid visit is no longer re-sent hundreds of times.

2.1.69 2026-10-22

  • **Type the next visit date.** During a consultation the doctor can type the date as DD/MM/YYYY, or tap the calendar icon in the same box to pick it. The quick choices (3 days, 1 week, 2 weeks, 1 month) are still there.
  • **Call a patient from Follow ups.** A phone button beside the WhatsApp button opens the dialer with the patient’s number, in both the doctor and pharmacy apps.

2.1.68 2026-10-21

  • **Follow ups.** A new screen in both apps lists every patient the doctor asked to come back, soonest first. Each row shows the patient’s name, age, visit date and phone number, with a WhatsApp button to message them and a button to open their history. Patients due tomorrow are highlighted in orange.
  • **Mark a follow-up Done or Not done.** Two large buttons on each row. The mark is shared between the doctor’s computer and the pharmacy.
  • **Set the next visit during a consultation.** Pick 3 days, 1 week, 2 weeks, 1 month or any date. The pharmacy sees it on the bill and can add it to the patient’s WhatsApp message.
  • **Patient consent (DPDP Act).** Registering a patient now shows a short notice and asks them to agree. The agreement is recorded, and a patient can withdraw it from their history. The privacy policy and terms of service are linked from both apps.
  • **Deleting a clinic erases everything.** No backup copy is kept unless Neork has switched that on for your clinic.

2.1.66 2026-10-14

  • **Copy from a patient’s history during a consultation.** Drag the mouse across any cell in the History table — symptoms, test results, prescription or notes — then press Ctrl+C (or right-click and Copy) to reuse it in today’s visit.

2.1.65 2026-10-14

  • **Consultations on a second device always reach the pharmacy.** When a doctor used both the desk computer and a phone, and one of them started the day offline, the two could open separate queues for the same day. Everything done on the second one — tokens, consultations, prescriptions and bills — was then refused by Neork and never reached the pharmacy. The queues are now merged instead, and the devices share one queue from the start.
  • **Nothing held back from before is lost.** Changes that were refused for that reason are sent again automatically the next time the Doctor app opens.
  • **A token number that was already taken no longer loses the consultation.** The patient is given the next free number instead.

2.1.64 2026-10-14

  • **Updating no longer means pairing the pharmacy again.** A pharmacy tablet reaching the doctor over the internet now reconnects by itself after the app restarts or updates, instead of showing the doctor as not answering.
  • **A doctor shows as online straight after pairing.** Pairing or re-pairing a tablet while a pharmacist is signed in now signs in to that doctor at once; the sidebar says **Signing in…** rather than **Not answering** while it does.
  • **The tablet rejoins a doctor’s computer that lost its pairing.** If the Doctor app was reinstalled or set up again, the pharmacy signs in and is admitted again by itself. A tablet the clinic removed on purpose stays removed; if it was also paired over the internet, it carries on that way.
  • **The Doctor app reconnects by itself after an update.** If it needs its keys from Neork again it keeps retrying until the internet is back, and opens the clinic as soon as it has them. Setting the computer up again now asks first, because that needs an emailed code.
  • **One change Neork cannot store no longer holds up the rest.** Prescriptions and bills keep flowing between the doctor and the pharmacy over the internet; the one change is simply sent again.

2.1.63 2026-10-08

  • **Updates install themselves on Windows.** The Doctor and Pharmacy apps download a new version in the background and then offer **Install now**; the app closes, updates and reopens on its own. No need to visit the website.
  • **A doctor can correct a consultation until it is paid for.** Tap **Awaiting billing** on the Consultation screen to see the consultations the pharmacy has not collected for yet, and **Edit** to change the medicines or the amount. Once the pharmacy collects payment the consultation is locked.
  • **The doctor's name shows on the pharmacy's dispense screen** when the counter works through the internet rather than the clinic's Wi-Fi.

2.1.61 2026-09-30

  • **Buttons use the app's own typeface.** Button labels were drawn in the phone's or computer's system font instead of Poppins; they now match the rest of the app.
  • **The Pharmacy app asks for less.** It no longer lists microphone or storage access (it never used either), and the camera is optional, so it installs on tablets without one. The camera is used only to scan the pairing code.

2.1.60 2026-09-30

  • **Pharmacist accounts are covered by the licence, like doctors.** Each licence says how many doctors and pharmacists the clinic can have; adding, promoting or re-enabling somebody past that asks the clinic to contact Neork. Settings → Subscription shows both, and whether the WhatsApp add-on is included.
  • **WhatsApp messaging is an add-on.** A clinic whose licence does not include it sees the WhatsApp settings locked, with a note to contact Neork to unlock it.

2.1.59 2026-09-30

  • **WhatsApp messages to patients.** The clinic's super admin connects the clinic's WhatsApp Business number in the doctor app (Settings → WhatsApp settings), using credentials from Meta. Patients then get a welcome when they are registered, their token number, a message when the doctor calls them, and their prescription. Each message uses a template the clinic creates in Meta; the settings screen shows the wording to use and a list of recent messages.
  • **Prescription for the patient.** With WhatsApp on, the Dispense Medicine screen has a box where the pharmacist writes the prescription in plain words, with bold, italic and bullet buttons. It is sent to the patient's WhatsApp when the bill is paid, and shows on the doctor's patient record.

2.1.58 2026-09-29

  • **A pharmacy on the clinic Wi-Fi and one over the internet no longer pick up the same patient.** The doctor's computer now shares which patient each pharmacy has open, through Neork, so the patient disappears from the other pharmacy's queue within seconds and cannot be opened there. Needs the doctor's computer on 2.1.58 and online; if its internet is down, each side still works on its own.

2.1.57 2026-09-29

  • **Two pharmacies over the internet no longer pick up the same patient.** When one pharmacist opens a patient to dispense, that patient disappears from the other pharmacies' queues within seconds, and anyone who taps them in that moment is told another counter is already dispensing. Pharmacies on the clinic Wi-Fi already worked this way. Update every pharmacy app.
  • **Date of birth is typed as DD/MM/YYYY**, day first. The slashes still fill in as you type.
  • **The Dispense Medicine screen leads with the patient**: their name in bold, then age, gender and Patient ID, then the doctor and mobile.

2.1.56 2026-09-29

  • **A clinic can delete itself entirely.** In the doctor app, Settings → Delete this clinic — offered to the super admin only, confirmed with a code emailed to the clinic and the clinic code typed out. Every record is removed from Neork and the computer is emptied back to setup. A complete, sealed backup is saved on that computer first (Documents › NeoCliniQ backups); keep it, because Neork keeps no other copy and it is what brings the clinic back.

2.1.55 2026-09-29

  • **The pharmacy works over the internet again.** Since 2.1.49 a pharmacy paired over the internet could pair but then not sign in or bill — it said the clinic computer "did not answer". Every request after pairing was being refused on the tablet itself because of a character in the device name. Fixed; pharmacies on the clinic Wi-Fi were never affected. Update the pharmacy app to this version.

2.1.54 2026-09-29

  • **The version is always at the bottom of the sidebar.** On the doctor's and the pharmacy's computers it was only shown after opening the menu; it now sits at the foot of the sidebar all the time (v2.1.54), and in full when the menu is open — on both apps, on Windows and Android.

2.1.53 2026-09-29

  • **Windows installs no longer need anything from Microsoft first.** On a PC without the Microsoft C++ runtime the apps would not start (VCRUNTIME140.dll or MSVCP140.dll missing) until it was downloaded and installed by hand. The installers now carry it, so the apps start on any Windows PC, with no administrator password needed.
  • **The pharmacy no longer loses the doctor after a long shift.** A counter's sign-in with the doctor's computer lasts 14 hours; a counter left open overnight passed that and then showed the doctor as "no longer signed in" while the computer was answering perfectly well. It now signs itself back in on its next round, with nothing for the pharmacist to do.

2.1.52 2026-09-28

  • **Dispensing colours now reach the history.** The colours a pharmacist gives medicines while dispensing were being wiped the moment payment was taken, so the medicines icon and the expanded list in the dispense history stayed grey. They are kept now — and the colours on bills already paid are put back automatically when the doctor app next starts.

2.1.51 2026-09-28

  • **No more empty quotation marks on the next-patient card.** When reception left the complaint box blank, the doctor's next-patient card showed a pair of empty quotes under the patient's name. A blank complaint now shows nothing, on the card, the confirm dialog and the consultation.

2.1.50 2026-09-25

  • **Settings → Audit log in the doctor app.** Everything the clinic's apps did — from the doctor's computer and phone, every pharmacy tablet and the cloud, every day since install — kept on the doctor's computer in full. Filter by kind, device or record, and tap a patient code or bill number to follow that one record.
  • **The server keeps a week of it.** The cloud's copy of each clinic's activity log is trimmed every night to the last 7 days (adjustable by Neork), and never before the clinic's own computer has received it. Nothing is removed from the doctor's computer.

2.1.49 2026-09-25

  • **Everything each device does is now on the clinic's activity log.** Patients registered, edited and removed; tokens called, moved and cancelled; consultations opened, prescriptions saved, visits signed and amended; bills opened, priced, paid, settled and cancelled; users, settings and paired devices — from the doctor's computer and phone, every pharmacy tablet, and the cloud. Each entry says which device and who, and never carries a patient's name, a diagnosis, a medicine or an amount.
  • **What reached the cloud is on the log too.** Each record that reaches the cloud, anything the cloud refused and why, what each computer pulled down, and when sync could not run — so a patient created on the doctor's computer and still waiting to reach an internet-connected pharmacy can be seen as exactly that.

2.1.48 2026-09-25

  • **The dispense history shows how each bill was picked.** The medicines icon on each row takes the pharmacist's marks: green when every medicine is marked green, yellow when any is yellow and none red, red when any is red, and the usual grey otherwise. Opening the medicine list shows each line in the colour it was marked; unmarked lines stay as they were.

2.1.47 2026-09-25

  • **A disabled account is told so on a phone too.** When the doctor disables a pharmacist, the Android app now shows the same "This account has been disabled" notice and countdown as the desktop — from whatever screen the pharmacist is on — instead of appearing to lose the doctor's connection.
  • **The date of birth is checked as it is typed.** A month or day that cannot be is not accepted (typing 5 for the month gives 05; month 13 or day 32 cannot be typed), and a date that does not exist — 30 February — or one in the future is flagged the moment it is complete.
  • **The dispense history's date filters no longer hide under the Dates button** on a phone: Today, 7 days, 30 days and All are always all visible, with Dates on the line below beside the range it sets.
  • The patient QR is hidden from the pharmacy's Doctors screen for now.

2.1.46 2026-09-25

  • **Type the date of birth.** Adding or editing a patient, in the doctor app and at the counter, now takes the date of birth typed as YYYY/MM/DD — the slashes fill in as you type — with the calendar still beside it. Or give the age in years and months, or months alone. One of the two is required; a half-typed or impossible date is refused with a reason.
  • **Age and sex stand out on the consultation.** They were a small grey line under the patient's name; they are now bold badges — "29 years", "Female" — at the top of the consultation, on the desk and on a phone.

2.1.45 2026-09-25

  • **Free visits.** The doctor can enter ₹0 for a visit that is not charged, and is asked to confirm before it goes to the pharmacy. The counter can then close it — the button reads "Free visit — Medicine Issued" — so free visits no longer sit in the billing queue for ever.
  • **The whole medicine history at the counter.** The dispense history now goes back to the beginning ("All"), can be sorted by date, patient name, amount or bill number, filtered by how it was paid, and searched by a medicine as well as a name, patient ID or bill number. It shows how many bills and how much they come to, and a bill paid a day after it was opened now appears on the day it was paid.
  • **Bill numbers.** Every bill number can be copied with one tap, and no two bills can share a number any more — including when the counter bills over the internet while the doctor's computer is off, or two counters open the same patient at once.
  • **Fixes.** The clinic's settings (such as the edit window) now reach the cloud correctly. A patient marked as a no-show can be seen again from the Patients list. There is no daily token limit.

2.1.44 2026-09-25

  • **Edit a patient any time.** The doctor can correct a patient's details from the Patients list, the consultation screen or the patient's history, and the counter from its search results — with a visible edit button instead of a hidden menu. The address is now part of the edit. Editing a patient no longer wipes their address, which it silently did before.
  • **Age in months, and date of birth.** A patient's age can be recorded as years and months — a six-month-old is 6m — or worked out automatically from an optional date of birth, so it stays right as they grow. Babies' ages now show on the counter's screens, where they used to be hidden.
  • **Patients the doctor adds reach the counter straight away.** A new patient is sent to the cloud the moment they are added. The counter's name search finds the most recently registered first, and if a search finds nobody under the chosen doctor, the counter now checks the other doctors and says who the patient is registered with.
  • **Security and reliability.** Adding a new computer to a clinic now always requires the code sent to the clinic's email. A patient whose number clashed with one registered elsewhere is renumbered instead of being refused — and changes held back by that clash are retried automatically after this update.

2.1.43 2026-09-24

  • **The dispense history now opens a bill like the dispense screen.** Reopening a past bill shows the full clinical picture — the patient, the doctor, the diagnosis, the symptoms, allergy and chronic-condition flags, and the doctor's notes — above the medicines, not just the medicines and the total.

2.1.42 2026-09-24

  • **The doctor's patient history shows long notes the same way.** A long note in the history table now shows up to twenty lines and opens in full on hover, matching the dispense history — so the doctor and the counter show a note the same amount before hiding the rest.

2.1.41 2026-09-24

  • **More of a long note shows in the dispense history.** The Remarks column now shows up to twenty lines of a note on its own lines, and still opens the whole note on hover (press and hold on a tablet) when it runs longer.

2.1.40 2026-09-24

  • **Long notes no longer stretch the history.** A very long note in the patient history or the dispense-history list is now shown as a short preview and opens in full when you hover over it (press and hold on a tablet), so one big note can't push the rest of the table off the screen.

2.1.39 2026-09-24

  • **A clinic activity log in the admin console.** Each clinic now has an operational audit trail — set up, sign-ins, tokens issued, bills paid, medicines handed over — that starts at install and syncs to the cloud continuously, so the console shows what a clinic's apps did across every device. It records events only: never a patient name, a diagnosis or an amount.

2.1.38 2026-09-24

  • **Dispense history shows the pharmacist's remarks.** The Medicine Dispense History list has a Remarks column, and opening a bill shows the full dispensing record with the earlier remarks kept read-only and a box to add another.
  • **The medicine shelf-picking colours are saved.** Double-tapping a medicine to mark it (green, orange, red) is now remembered and synced — the marks made while dispensing show up again in the history, where they can also be changed by double-tapping.

2.1.37 2026-09-24

  • **Pharmacist remarks on a bill.** The Dispense Medicine screen has a Remarks box; a note written there is saved with the bill and shows up on the doctor's patient record. Double-tap a prescribed medicine to mark it off the shelf — it cycles white, green, orange, red.
  • **Fuller patient history for the doctor.** The Patients list now has a history icon that opens the full-screen visit ledger, and that ledger now shows the doctor's own notes and the pharmacy's note as their own columns.
  • **A new password sticks.** Fixed a case where a pharmacist who set a new password over the internet could be reverted to the temporary one; they now stay signed in after setting it rather than being sent back to the login screen.
  • **Clearer pairing.** When the counter can't find the doctor's computer on the Wi-Fi, it now explains why (same network, guest/public networks, firewall) instead of silently asking for a code.

2.1.36 2026-09-23

  • **A disabled account is signed out at the counter, with a countdown.** If the clinic disables a pharmacist while they are using the counter, it now shows a "This account has been disabled" notice and signs out after 15 seconds — and if the clinic enables the account again within that time, the notice clears on its own and they carry on. The tablet stays paired throughout, so there is nothing to set up again.
  • **A tidier Dispense Medicine screen.** Removed the day's-takings strip from the top of the dispensing screen; the day's total still lives on the day-close screen.

2.1.35 2026-09-23

  • **A patient called in then left goes back to the queue.** When a doctor calls a patient in and leaves the consultation without writing anything, the patient now returns to the waiting queue straight away — the counter no longer keeps blinking green as if they were still with the doctor.
  • **One search box on Register, and it searches as you type.** Enter a mobile number, patient name or patient ID in a single box — names now show results as you type. Each result shows its mobile number, and selecting a patient also lists the rest of the household on that number to send to the doctor together.
  • **Copy a patient ID.** Patient IDs can be copied from the doctor's patient list and the counter's Medicine Dispense History.
  • **Clearer wording.** "Register Patient or Consultation" and "Medicine Dispense History" now read the same on the menu and the screen. Remove is offered only for a patient the clinic can actually remove.

2.1.34 2026-09-23

  • **One search box for register and consultation.** The counter's register screen now has a single box that takes either a phone number or a name (or patient ID) — type a number and the family is looked up as before, or type a name and search. Registering a new patient still asks for their mobile number.
  • **Find a patient by ID or name in Medicine History.** The Medicine History search now matches the patient ID as well as the name and bill number, and each patient ID can be tapped to copy it.

2.1.33 2026-09-22

  • **The pairing screen shows the Wi-Fi search, live.** Alongside the Scan QR / Enter code / address options, the counter now keeps looking for the clinic computer on the Wi-Fi and shows a pulse while it does — a computer switched on after you opened the screen appears on its own, and you can tap it to connect with no code at all.

2.1.32 2026-09-22

  • **A simpler pharmacy pairing screen — three ways in.** Connecting a counter to a clinic now offers just Scan QR, Enter code, and (under Advanced pairing options) type the clinic computer's address. The tablet works out the rest: a scanned QR and a typed code are read as a Wi-Fi or an internet pairing automatically, so there are no separate "internet" options to choose between.
  • **Scan the pairing QR on Windows.** The Windows counter can now use its camera to scan the QR, the same as the Android tablet — not only type the code.

2.1.31 2026-09-22

  • **Registering a patient no longer puts them in the doctor's queue.** Adding a patient at the counter creates their record only — the just-registered person is now listed unticked, so they reach the doctor's queue only when the pharmacist ticks them and presses "Consult doctor".

2.1.30 2026-09-22

  • **Register a patient after a name search finds nobody.** In Register Patient, searching a name that is not on file now opens the add-patient form — pre-filled with that name — instead of a dead end, and clearing the name brings back the results for the number you looked up.
  • **No second clinic on an email that already has one.** Setting up a new clinic is refused when a clinic is already registered with that email, and directs you to “Add this computer to my clinic” instead — so a computer can no longer accidentally create a duplicate clinic.

2.1.29 2026-09-22

  • **"Next patient" always opens someone free.** When two pharmacists both press "Next patient" at the same moment, they now land on different patients automatically — the counter skips anyone already being dispensed at another till instead of stopping on "another counter is dispensing".

2.1.28 2026-09-22

  • **The counter keeps up in real time.** With two tills on the clinic Wi-Fi, a patient one pharmacist opens to dispense now leaves the other till's queue at once, and a patient the doctor calls in appears straight away — the counter stays live instead of waiting for its next refresh.
  • **Opening a patient clears them from your own list instantly**, rather than after the bill screen closes.

2.1.27 2026-09-22

  • **"Dr." before the doctor's name** in the pharmacy's dispense queue, and the doctor's own name — not the words "doctor's figure" — under a bill's amount.
  • **A tidier pharmacy home.** The redundant home button no longer shows while you are already on the home screen, and the separate "Day close" tab has been removed.

2.1.26 2026-09-22

  • **A clearer paired-devices list.** The doctor's Settings now shows each paired counter by platform — Windows or Android — with its network address, device id, when it was last connected and whether it is connected now, instead of every device simply reading "Pharmacy tablet".

2.1.25 2026-09-22

  • **The consultation amount shows straight away.** The amount a doctor enters and signs now appears in the patient's history at once, rather than reading "—" until the pharmacy has billed it.

2.1.24 2026-09-22

  • **Allergy and chronic conditions are always small tags.** Across both apps — including the pharmacy's billing screen — a patient's allergy and chronic-condition flags show as compact tags rather than full-width lines.

2.1.23 2026-09-22

  • **The consultation amount is not lost.** If the doctor enters the amount, opens Add Patient (or steps to another screen) and comes back before sending to the pharmacy, the amount they entered is kept.

2.1.22 2026-09-22

  • **No repeated headings.** The doctor's main screens no longer show the screen name twice, and a patient's flags no longer repeat above the history table.
  • **A dash in every title**, so screens read "Doctor - Consultation" and "Pharmacy - Dispense Medicine".

2.1.21 2026-09-22

  • **Two pharmacists can dispense at once.** When one counter opens a patient to dispense, the other no longer sees them; cancelling returns them to the queue, and a tablet that goes offline mid-dispense releases the patient on its own.
  • **Register from a name search.** Selecting a patient found by name now fills in their mobile number, so they can be registered or issued a token without typing it again.

2.1.20 2026-09-22

  • **A consistent title on every screen**, naming the app and the screen — and the patient where there is one — so it is always clear where you are.
  • **One patient id, everywhere.** Screens now show the patient's code consistently, rather than a bill number with a year in it in some places.

2.1.17 2026-09-22

  • **Clearer licence status.** If a clinic's licence is not active, the doctor app and the pharmacy now say so plainly and pause new work until it is renewed, rather than showing a confusing error or carrying on.

2.1.16 2026-09-22

  • **A clearer pharmacy home.** The counter's home screen is now titled "Pharmacy", with the waiting patients under "Patient Queue" and the prescriptions to hand over under a larger "Dispense Medicine" heading.
  • **Medicine history at a glance.** The medicine history now shows how many medicines each bill issued, and tapping that count expands the full list under the row — no need to reopen the bill to see what was dispensed.

2.1.15 2026-09-22

  • **The clinic's subscription, on the counter too.** The pharmacy's Doctors screen now shows each paired clinic's plan and when it ends — the same trial-or-subscribed status and days-left the doctor sees, so the counter is not the last to know a licence is running out.

2.1.14 2026-09-21

  • **Your subscription, in Settings.** The doctor app's Settings now shows your plan (trial or subscribed), when it ends and the days left — and how many doctors your licence covers against how many you have added.
  • **One licence, a set number of doctors.** A clinic's licence covers the pharmacy and an agreed number of doctors. Adding a doctor beyond that is refused with a clear message; disabling a doctor who has left frees their place. Clinics licensed before this stay uncapped until a count is set.
  • **A tidier patient list.** The doctor's Patients screen is laid out as a table with headings on a computer, and stays readable on a phone.
  • **Paired devices name themselves correctly.** A pharmacy signed in from a computer now reads as a PC rather than a tablet in the paired-devices list.

2.1.12 2026-09-21

  • **Edit a patient.** From the pharmacy's patient list (Register Patient or Consultation) and the doctor's Patients search, you can now correct a patient's name, number, age or gender. Changing the number keeps them findable by it.
  • **Remove a patient.** A patient created by mistake can be removed, with a confirmation. A patient who has already been seen or billed is kept — their bills and prescriptions name them — and the app says so.
  • **The doctor's notes reach the counter.** When dispensing, the pharmacist now sees the doctor's own notes on the visit, alongside the diagnosis.

2.1.11 2026-09-21

  • **"Doctor called" then "With the doctor".** When the doctor calls a patient in, the counter's queue card blinks green and reads "Doctor called"; once the doctor starts typing the consultation it settles to "With the doctor" and stops blinking.
  • **Tidier counter screens.** The queue's status tags line up (the remove X no longer shifts them); Medicine History is now "Medicine Issue History", shown as a table of name, patient ID and date; and a doctor-priced bill shows one amount instead of repeating it as a separate total.
  • **Cleaner register + sign-in.** In Register Patient or Consultation the complaint box appears only once a patient is chosen to consult, and the button reads "Add someone else on this number". The pharmacy sign-in drops the "same details" note and the false "sign in again" warning.
  • **Doctor app: the Add patient form lines up**, and the consultation's redundant history button was already removed.

2.1.10 2026-09-21

  • **Pharmacy login no longer says a clinic is offline when it isn't.** If the doctor's computer changed address (a router reboot, a new Wi-Fi lease) or the LAN was briefly unreachable, sign-in now re-finds it and, for a clinic paired both ways, connects over the internet instead of wrongly reporting it offline.
  • **Simpler pharmacy sign-in.** The connection panel and internet-code box are gone from sign-in — a single 'Wi-Fi pairing & internet code' button takes you to the pairing screen, where both already live.
  • **Sync status in the sidebar.** The connectivity panel now shows when things last synced — the doctor app shows the clinic's cloud sync, and the pharmacy shows when it last pulled the doctors' queues.

2.1.9 2026-09-20

  • **The sidebar closes an inner screen.** On both apps, choosing a destination while viewing a patient, a consultation or a bill now takes you there instead of leaving the screen open behind the change.
  • **Clearer billing card.** The patient line now reads "Patient ID: …" and "Doctor: …" rather than a bare code, and the "doctor not answering" notice no longer appears twice on a phone.
  • **Honest pharmacy connectivity on the doctor app.** A counter paired over the internet now reads "Paired over the internet" rather than a confident "connected", and "On Wi-Fi" clears quickly once the counter stops answering — so the two apps agree.
  • **Tidier consultation and sign-in.** The redundant "Patient history" button is gone (the history and conditions are already on the consultation page), and the sign-in screen is less cluttered.

2.1.8 2026-09-20

  • **Settings reads cleaner.** The long explanations under Clinic, Billing, Your account and Pharmacy devices are gone, and Cloud sync now just shows when it last synced. Paired devices are one list with no duplicates — each tablet shows how it is reached (Local Wi-Fi, Internet, or both), whether it is Windows or mobile, and the computer's own address.
  • **Clearer empty states and labels.** The consultation screen now says "Nobody is waiting for consultation" and "Nobody else is waiting in queue". In the pharmacy the "Register Patient or Consultation" title no longer gets cut off on a phone.
  • **The pharmacy sidebar works from an inner screen.** Choosing a destination on the rail while viewing a patient's history or a bill now takes you to that screen instead of leaving you where you were.
  • **Registering a walk-in is clearer.** When a number already has patients, the counter shows the list to tick — the name, gender and age fields stay hidden until you type an unregistered number or choose "Someone else on this number". And "Consult doctor" only lights up once somebody is selected.

2.1.7 2026-09-20

  • **The pharmacy sign-in shows the clinic connection, and takes an internet code.** A counter whose doctor is not on the same Wi-Fi is no longer stuck: the sign-in screen has an expandable section showing how each paired doctor is reached (on the Wi-Fi, over the internet, or not answering) — open by default when nothing answers — with the six-digit internet code box folded inside, so you can connect over the internet without leaving the screen.

2.1.6 2026-09-20

  • **No more “not caught up” nag on a normal morning.** The sign-in screen only mentions how long since this computer last synced when it has genuinely been a couple of days or more — a normal overnight gap says nothing.
  • **“Register / Token” is now “Register Patient or Consultation”** — the menu says what the screen does instead of jargon.
  • **Adding another family member leaves a clean slate.** After you register someone on a number, the form clears back to just that number and scrolls to the top — ready for the next person — and the one you just added flashes green so you can see it landed.

2.1.5 2026-09-19

  • **Adding a patient starts with the mobile number.** On the doctor's Add-patient screen the number comes first and the rest of the form stays disabled until it is entered; once it is, anyone already registered on that number is listed (so you can see you are adding a fourth family member, not re-adding the first), and gender is a row of buttons — Female / Male / Other — rather than a dropdown.
  • **Pharmacy Register / Token: one button that reads the situation.** Enter a number and, if it is a new person, the button is “Register patient” (it adds them and re-lists the family); if the patient already exists, it becomes “Consult doctor” to put the ticked patients in the queue. The number field now prompts “Register by mobile number”.
  • **A reason when you remove someone from the queue.** Taking a patient out of the queue now asks to confirm, with an optional “Reason” — no show, left, wrong number — kept on the record. It is optional; leave it blank and nothing is stored.
  • **Several doctors at one counter, told apart.** When the counter serves more than one doctor, token numbers carry a letter (A for the first, B for the second, …), the Queue and Medicine History screens gain a searchable “which doctor” filter, and each patient can be sent to a chosen doctor that is remembered as their default next time. With a single doctor nothing changes.

2.1.4 2026-09-19

  • **Consultation screen: just the queue and who’s next.** The “Seen today” list and its count are gone — the screen shows who is in the queue, who is next and their history, and nothing else. Two figures remain: In the queue and Awaiting billing.
  • **Pause a consultation you’ve opened.** Called someone in and been interrupted? Pause the consultation to put them back in the queue — the draft is kept, so calling them back reopens exactly what you had typed.
  • **Pharmacy: issuing medicine is simpler and safer.** The doctor’s prescription is shown exactly as written — read-only, with how many to dispense — and it can no longer be edited or substituted at the counter. A single button, “Payment received and Medicine Issued”, takes the payment and records the medicines as handed over in one tap, then a slide-up sheet prints or sends the patient’s copy. The patient’s mobile, age and gender sit at the top.
  • **Pharmacy: the counter is “Issue Medicine”, in two columns.** On the left, per doctor, who they are consulting and the live queue with token numbers — next patient on top. On the right, the prescriptions waiting: tap one to issue the medicine and collect the cash.
  • **Pharmacy: Medicine History with a calendar.** The old Prescriptions tab is now “Medicine History”, with quick spans and a calendar to pick a day or a date range.
  • **Pharmacy: a simpler Register / Token screen.** Pared back to registering a patient or issuing a token — the prompt sits on the fields themselves, with no repeated heading — and the sidebar shows at a glance which doctors are reachable.
  • **Easier to open the side menu on a phone.** The pull-out tab at the edge of the screen is larger and clearer.

2.1.3 2026-09-18

  • **Tidier figures on the Consultation screen.** Dropped the “Waiting now” count (the queue below already shows it) and put the three that remain in the order that reads: In the queue, Awaiting billing, Seen today.
  • **Pharmacy: a prescribed medicine is dispensed or substituted, never dropped.** The × that took a doctor’s medicine off a bill is gone. When the shop doesn’t have something, “Dispense something else” records what was handed over instead — so nothing a doctor signed quietly disappears from the counter.
  • **Pharmacy: a warmer start when you set up the counter.** Connecting a tablet now opens with a plain welcome and the app’s own branding, and asks for nothing technical until you tap “Connect to a clinic”.
  • **Pharmacy: every tab is named.** The Prescriptions screen now carries a clear heading, like the rest of the counter.

2.1.2 2026-09-18

  • **“Pair over the internet” opens beside the menu.** Instead of a cramped QR inside the narrow sidebar, the pairing QR and code now open in a proper panel to the left of the menu, with room to scan.

2.1.1 2026-09-18

  • **Live pharmacy connectivity, at the top of the menu.** A dot at the top of the sidebar shows, at a glance, whether a pharmacy is connected — green when a tablet is on your Wi‑Fi, blue when a counter is reaching you over the internet, amber when one is paired but not answering, grey when there is none. Open the menu and it says so in words, with an expandable “Pair over the internet” section that shows the QR and code whenever you need to connect one.

2.0.4 2026-09-18

  • **A way back on both setup paths.** Whichever you picked on the welcome screen — “Set up a new clinic” or “I’m already registered” — a plain “Back” button now returns you to the choice, right up until the code has been emailed. Same button, same place, on both.

2.0.1 2026-09-17

  • **A clearer sidebar.** The menu on the right now shows an icon for each screen instead of a single letter, and the screen you are on is marked with a clear blue outline — so where you are reads at a glance. The Consultation screen also gets a bigger, plainer heading.

2.0.0 2026-09-17

  • **A guided setup, start to finish.** Opening the doctor app for the first time now asks one plain question — set up a new clinic, or are you already registered? — and walks you through the rest a step at a time instead of dropping you onto a form.
  • **Connecting a pharmacy is part of setting up.** Right after your clinic is created, a screen helps you link the pharmacy: on the left it looks for one on your Wi-Fi (install the Pharmacy app on an Android phone or tablet, on the same network), and on the right there is a QR and a code to connect one over the internet. You continue once a pharmacy has connected, or skip it if you don't have one yet.
  • **A new Consultation screen is where the day happens.** It replaces the old Today screen: the queue on the left, and on the right the patient you are seeing next with their history below. The separate Queue tab is gone — it is all on one screen now.
  • **Adding a patient is simpler.** Just the details that matter, and two buttons at the end: Add patient, or Add patient and consult now. The explanatory notes that cluttered the boxes are gone.
  • **You are the doctor by default.** Setting a clinic up no longer asks whether you see patients — the account that owns the clinic is a doctor too. (An administrator who does not consult can still be set up under Users.)
  • **Clearer throughout.** Every screen now has a heading that names it, the menu highlights where you are, and the wording is consistent across the app. The patient QR poster has been retired for this version.

1.40.4 2026-09-17

  • **Passwords can be short and all numbers now.** A clinic that wanted a quick five-digit PIN a busy counter can type was refused — the minimum was ten characters. It is five now, everywhere a password is chosen, and it may be all digits: nothing insists on a letter or a symbol. That is the clinic's call to make, and it is theirs.
  • **The password an administrator hands out is a five-digit number.** It was a fourteen-character jumble that had to be read across a desk and typed without a slip; a short number is easier to pass on and still one-time — the account must replace it before doing any clinical work, exactly as before.
  • **The counter no longer asks for the temporary password twice.** Setting up a pharmacist used to mean signing in with the issued password and then, on the very next screen, typing that same password again before choosing a new one. It now asks only for the new password — signing in already proved who is at the tablet — and there is one field fewer to fumble on a first day.

1.40.3 2026-09-17

  • **A form stops objecting to a field the moment you start fixing it — and now every field does it the same way.** After a form was refused, the name cleared its red as soon as you typed a second letter, while the mobile number stayed red counting up until the tenth digit — the same behaviour underneath, but two rules that come true at different moments, and it read as one field being fussier than the other. Now the red goes the instant you touch a refused field, name and number alike; the form is still refused until the button is pressed again with everything filled in. The trade is that the number no longer counts the digits up as you type — it simply clears — which is the consistency that was asked for. #50

1.40.2 2026-09-17

  • **The way to set up a different clinic is a plain button now, not a greyed link.** It arrived in 1.40.1 as a muted line at the foot of the sign-in screen, and somebody who signed out to start a clinic over looked straight past it. Same place, same double-confirmation before anything is erased — just visible.

1.40.1 2026-09-17

  • **A way to hand a computer to a different clinic — or start one over — without reinstalling.** Once a clinic was set up on a computer, the only screen it ever showed again was sign-in; there was no route back to setup. A quiet *Set up a different clinic on this computer* link at the foot of the sign-in screen now opens that door. It asks twice, because it removes the current clinic from that machine entirely — every patient, visit, prescription and bill, and everyone’s login — and there is no online copy to restore it from. After it, the computer is a fresh one and lands on the welcome screen, ready to register a new clinic.

1.40.0 2026-09-17

  • **The counter talks to the doctor's own computer on the clinic Wi-Fi now, even when it was only ever paired over the internet.** A tablet set up from home or another branch used to go through the control plane for ever, and on a clinic Wi-Fi with no internet at all it could not reach the doctor one router away. It now finds that computer the moment it is on the same network, signs in to it directly, and prefers it from then on — so billing keeps working with the broadband unplugged, which is the whole point of an offline-first counter.
  • **A doctor's computer that moved is found again on Android.** Discovery on the Wi-Fi had never worked on a real phone — a socket the operating system refused took the whole scan down in silence, so a counter whose doctor's computer changed address after a router reboot reported “not answering” all day with the machine sitting on the same network. It re-finds it now, at both pairing and every time it goes quiet.
  • **Every password field has an eye to read it back.** Sign-in had one; the screens where you *choose* a password — change your password, an administrator issuing one, the counter replacing a temporary one, first-run setup — did not, which is the worse half: mistype a password you are inventing and you were locked out of an account made a second ago with no way to see what you typed.
  • **The counter refuses a number that is not a mobile before the desktop has to.** `1234567890` is ten digits and no mobile; the walk-in form now says so in the same words the doctor's computer would, rather than accepting it and having the bill refused a step later.
  • **Two fixes to what the counter's home screen shows.** A long row no longer cuts off the medicine count or who took the payment, and a visit the doctor did not put a figure on now reads “yours to set” rather than “not set” — the amount is one typed total, and where the doctor did not price it the counter does.
  • **Escape leaves the change-my-password screen**, the way it leaves every other screen in the doctor app — the only way out had been a Cancel link below the fold of a page long enough to scroll.

1.39.0 2026-09-15

  • **A clinic that has been confirmed once keeps working on its own network until the date it is paid through.** It used to stop seven days after this computer last reached us, whatever the licence said — so a clinic paid through the 30th whose broadband died on the 15th was refused on the 22nd, eight days inside a period it had paid for, by a screen that said in as many words that nothing was wrong with its licence. Nothing about the counter changes: the pharmacy tablet has always billed over the Wi-Fi without asking about a licence, and still does. A computer that has not checked in for five days now says so in a banner over a working clinic, and the days it counts are the days to the licence’s own end rather than to a deadline nothing enforces.
  • **Medicine issued is its own act at the counter now.** There was one act — closing the bill — and it stood for both dispensing and payment, which a clinic cannot unpick afterwards. Both of the cases where they come apart are ordinary: medicines handed over against *Pay later* are stock gone and money owed, and a bill paid at the till for something the pharmacy has to order in is the reverse. The button sits on the bill and stays on the paid panel, works before the money or after it, and records who handed the box over and when. Pressing it twice keeps the first time — that is somebody checking, not a second dispensing.
  • **The pharmacist sees the symptoms, not only the diagnosis.** A pharmacist handing over a box is the last person to see the patient, and one word of finding is not what catches a wrong one. It is on the bill they open for the person in front of them — deliberately not on the waiting list, which anybody standing in the shop can read over a shoulder.
  • **A consultation stays editable for one hour, not two.** That is what was asked for. A clinic that has set its own window in Settings keeps it, and a visit already signed keeps the window it was signed under — changing the setting has never reopened a locked record and still does not.
  • **A prescription line can be written in words.** The grid asks for a dosing pattern and a duration so it can work the dispense quantity out, draw the schedule at the counter and print the patient's copy as instructions — and there was no way past it, so a prescription that does not fit that shape could not be written at all. *In words* is now the fifth option on every line, last, after the four that give you all of the above.
  • **The doctor's own Add patient form asks for the sex.** The counter's has always had one selected, so the same patient came out with a sex when reception registered them and without one when the doctor did.
  • **The counter warns when a doctor has rewritten a prescription it is already holding.** Opening a bill keeps the prices, substitutions and removals the pharmacist has already made, which is why it does not rebuild itself when the prescription changes underneath — so it says so instead, in red, and names what the doctor now prescribes rather than sending somebody to the consulting room to ask. Nothing on the bill is touched; the pharmacist decides.
  • **A bill still loading no longer reads as a bill with nothing on it.** Opening a prescription takes two round trips to the clinic’s computer, and for that moment the screen was showing the warning it uses for medicines that failed to arrive — which then disappeared by itself. It says “Opening this bill” now, and the three sentences about an empty prescription wait until there is an answer to describe.
  • **Enter saves a chronic condition or an allergy.** It only took the Save button before, on a dialog with one field in it. And an empty one says what is missing rather than refusing in silence.
  • **A computer whose clock ran away no longer locks itself out for good.** A failing CMOS battery can wake a machine years in the future, and NeoCliniQ remembered that date as the latest time it had ever seen — so once somebody set the calendar right, every launch afterwards looked like the clock had been wound back, and the clinic was refused permanently under a message telling them to connect to the internet. Connecting did not help, because nothing brought that remembered date back down. Now the first check-in with Neork sets it straight. And a clock set to a date before the licence was issued is refused outright rather than believed — a day of ordinary drift is fine, a month is not.
  • **Setting a password and resetting one now mean different things.** A password an administrator types in *is* that account’s password — they sign in with it and are not asked to change it, which is what a clinic putting a shared counter tablet on a password of its own choosing actually wants. Being handed a password on purpose and then told at the next sign-in to replace it was the app arguing with what had just been done. **Reset password** is unchanged and is still the one to use for handing somebody a login they should own: it generates a temporary password, shows it once, and the person chooses their own the first time they sign in.
  • **The counter goes back to the clinic’s own Wi-Fi as soon as it can, instead of staying on the internet all day.** The doctor’s computer has always been the path and the internet only the fallback, but the counter decided which to use once, when the app opened — so a tablet started before the Wi-Fi had come up, or carried in from outside, went through our server for the rest of the shift with the desktop one router away. It now checks on the same thirty-second round it already uses to look for new prescriptions, and switches back by itself. Nothing to press, and no extra work for a counter already on the Wi-Fi. The reverse case is fixed too: a desktop that goes to sleep mid-shift used to leave the counter failing against it until the app was restarted, and now falls over to the internet on the next round.
  • **Saving a consultation can no longer wipe the parts of it you did not retype.** Internally, saving wrote all four boxes — symptoms, test results, findings and notes — every time, so any code that saved just one of them silently cleared the rest off the record. The consultation screen has always sent the whole form, so no clinic was affected; what changed is that the destructive version can no longer be written by mistake. Found by running forty-five patients through a clinic on a real network with two counters billing at once, where eight bills reached the pharmacist with no finding on them.
  • **The quantity on the bill is the quantity the patient pays for.** A medicine dosed by interval — *every 6 hours for 6 days* — showed **Qty 24** on the counter, took a rate, and then priced the line as though it were **one**. Twenty-four tablets handed over and one charged for, with the right number on screen the whole time. Found on a real phone billing a real clinic over the Wi-Fi.
  • **The counter will not close a bill for a figure it did not offer.** The button said *Take ₹331.49* and the bill closed at **₹0.00** — the doctor’s amount had been cleared on their computer after the screen opened, so there was nothing left to charge and nothing said so. It now stops, names both figures, and takes nothing until somebody looks again. The doctor’s app also no longer clears that amount when a consultation is amended.
  • **What reception writes down now reaches the doctor.** The walk-in screen has a box for what the patient says is wrong, labelled as reaching the doctor before the patient does — and it reached nothing at all. Every consultation opened on “Patient described: Nothing entered” however carefully the desk had typed it. The counter had always sent it; the clinic’s computer never read it.
  • **A bill closed on Pay later no longer says it was paid.** The button offered to “Take ₹250.00” and the panel afterwards announced “Paid · Taken by pay later” over money nobody had handed over — one screen after the app itself said it counts as owed, never as takings. The takings were always right; the two screens a pharmacist reads were not. It now says “Close, ₹250.00 owed” and “Owed — no payment taken”.
  • **The counter asks whether a patient is female, male or other, instead of assuming.** It defaulted to female with no unset state, so a token could be issued without anybody having looked — and a man registered at a busy desk went onto the record as female and stayed there. The doctor’s own screen has required it since 1.39.0; two doors onto one record cannot disagree about which fields are mandatory.
  • **Dispensing a substitute no longer invents a quantity.** On a bill the doctor priced — where no line shows a quantity and the total is the doctor’s figure — substituting a medicine added a “Qty 1” box that multiplied nothing and explained nothing, directly under a dialog promising the quantity would stay the same. It still appears where it decides what is charged.
  • **The queue no longer contradicts itself.** Calling a patient in made the heading read “3 Waiting” above a filter reading “Waiting 4”, about the same people at the same moment. Somebody whose name has been called is still in the waiting room, and both now count them that way.
  • **Reopening a signed consultation shows what is on it.** Inside the hour a visit stays amendable, the form came up empty — no symptoms, no test results, no notes, no amount — beside a history row still holding them. The screen saves as a doctor types, so those blanks were written over the signed record, and the finding was gone before Save amendment refused the empty form. Three things changed: the form is filled in from the visit, a signed record is no longer saved by typing alone (the amendment is the button), and the refusal for an empty Symptoms box comes before anything is written.
  • **A prescription nobody changed is no longer rewritten.** Correcting the symptoms on a signed visit made the counter show a red warning that the doctor had changed the prescription, listing the same medicines already on the bill. That warning is there to stop a withdrawn medicine being handed over, and one that fires on every amendment is one a busy counter learns to ignore.
  • **A line the doctor typed is shown as they typed it.** `Tab Pantoprazole 40mg 1-0-0 empty stomach, 10 days` was coming back as `… — after food` on the doctor's screen, the counter's, the receipt and the patient's copy — the words added by a default that belongs to the old dosage grid, not by the doctor. Lines already saved with it are read honestly too.
  • **The patient's copy no longer prices medicines at zero.** Where the doctor sets one amount for the visit there are no per-medicine prices, and the printed copy was showing `×1 ₹0.00` beside every medicine above a total the patient had just paid — a medicine they bought, itemised as free. The 80mm receipt did the same. Both now show the medicine and the total, and nothing that is not true.
  • **Money owed can be collected.** A bill closed as *Pay later* stayed owing for ever: when the patient came back with the cash there was no way anywhere in NeoCliniQ to record it, and the day's till was over by the amount with nothing to account for it. Tapping an owed bill now asks how it is being paid and takes it. The bill keeps its number and its date, and the money is counted on the day it actually arrived — so the day it was billed still shows it as owed, and the report somebody already reconciled does not change underneath them.
  • **Taking a medicine off a bill hands the pricing back to the counter.** Where the doctor set one amount for the visit, removing a medicine the pharmacy does not have went on charging the full figure — the patient paying for something never handed over. It now works the way a substitution already did: the amount becomes the counter's to set, starting from the doctor's figure.
  • **The counter's doctor light tells the truth.** It counted the computers this tablet had signed in to, so it stayed green and said *1 doctor* while the screen underneath said the clinic could not be reached. It counts what actually answered.
  • **A doctor's computer that changes address is found again.** After a router restart the clinic computer often comes back on a different address, and the counter had no way to follow it — it reported *not answering* all day with the computer on the same Wi-Fi, and the only remedy was to pair again. The tablet now looks for it by name and writes the new address down.
  • **Resetting somebody's password asks first.** It happened on a single click, next to Edit, and it cannot be undone — the old password stops working immediately. It says whose password and what it costs before it does anything.
  • **A visit costs one typed amount.** The counter used to price a bill medicine by medicine wherever the doctor had not named a figure — a rate box on every line, and a total that followed them. There is one box now, under the medicines, and one figure on the bill: what the patient pays for the visit. It is the same figure whichever of the two types it, and it is called the consultation amount on both screens.
  • **Pay later is gone from the counter.** A bill is closed when it is paid — cash, UPI or card. Money a clinic is already owed from an earlier release can still be collected: tapping the owed bill asks how it is being paid and records it.
  • **A mobile number has to be a mobile number.** Ten digits was the whole rule, so `0123456789` was accepted — the trunk 0 somebody types out of habit, with a digit of the real number lost off the end. A patient saved under it cannot be found again, because that number is how a returning patient is looked up, and their copy goes nowhere. Numbers now have to start with 6, 7, 8 or 9, and a real number typed with a 0 or +91 in front of it is still accepted as itself.
  • **The amount box holds an amount.** Typing `abc-99.999` into Consultation amount was accepted in full, and signing then read it as no number at all — so the visit was priced, signed, and reached the counter with no figure on it, with nothing on either screen saying so. Both amount boxes now take digits and at most two decimal places, and a figure too long to be a bill stops rather than scrolling.
  • **Cloud sync says what is waiting to go up, not only what has come down.** A computer that had not reached Neork all day — with every visit and bill of that day held safely on it — reported *“Caught up with the clinic’s records”* above an amber line saying it could not reach the clinic. Each sentence was true of its own half; together they read as “the day is safely away”. It now says how many changes are waiting, and that they are safe here until it can send them.

1.38.0 2026-09-15

  • **The side menu on a phone runs the full height again, with the destinations at the bottom where the rail already keeps them.** It had become a short panel floating in the middle of the screen, so the letters a thumb was resting on moved the moment their names appeared. The whitespace that was still being reported was neither of the gaps it looked like: the panel was asking to be kept clear of the status bar and the gesture bar while sitting nowhere near either, so it drew an empty band the height of each — above the logo and under the version line. It is charged once now, and a clinic with more destinations than the phone is tall scrolls rather than overflowing. #36
  • **The side menu closes before Sign out asks its question.** The menu is drawn over everything, including dialogs, so the confirmation opened underneath the panel that had just launched it — half covered, with its buttons behind the menu. Every action in that menu now puts it away first, which is what choosing a screen has always done. #28
  • **The tab that pulls the menu out takes a finger, and can be moved.** It was an 18dp sliver — half of what a fingertip needs — pinned to the middle of the right-hand edge, over whatever the screen underneath happened to put there. It is the same width to look at and a proper target to hit, and dragging it up or down leaves it where you put it for the rest of the session. #28
  • **Signing in no longer shows the last session's bad news.** Reported after an account was disabled and re-enabled: the counter came back with three flags saying the clinic could not be reached, above a header saying the doctor was connected. Both were honest — the header is worked out as the screen draws, and the flags were whatever the last round had recorded, which was a round taken while the account was still disabled. Handing the tablet over now puts that screen down with it, and a sign-in waits for its first round before showing the counter. It is the plainer rule too: what the last pharmacist was billing is not the next one's to read. #47
  • **"Billed today" is today's bills.** It was every bill the clinic had ever closed, under a heading that says otherwise and beside a count of them — so a patient billed last week appeared again each morning, and a patient with two visits appeared twice. Past prescriptions is unchanged and still looks back as far as its filter is set to. #33

1.37.0 2026-09-15

  • **A computer that has been switched off for a while now says so on the sign-in screen.** It could not before, so a colleague added on another machine — or a password reset elsewhere — was refused as though the password were wrong, and the clinic went looking for a typing mistake, then a forgotten password, then an administrator. It says how long ago this computer last caught up, which is a fact about the machine: no screen here will ever tell you whether a particular person works at the clinic. #15
  • **The pharmacy no longer blames the password when no clinic computer answered.** A desktop that is switched off, asleep or on another network produced “Username or password is incorrect” under the box, with a much quieter note underneath saying it was not answering. With one paired doctor that was the whole screen. #15
  • **And signing in can no longer hang.** A role or permission this build had not heard of — which is what a newer clinic server sends — left the button reading “Signing in…” for ever, disabled, with nothing said. Unknown ones are ignored now, and the screen always comes back with a reason. #15
  • **A password an administrator set for you must be replaced at the pharmacy too.** The doctor’s computer has always insisted; the counter never even knew, so a pharmacist could work indefinitely on somebody else’s password while every bill was recorded under their name. The counter now asks for a new one before anything else, on the clinic Wi-Fi or over the internet. #15
  • **Permissions given or taken away from one person are honoured over the internet.** They were only read on the clinic’s own Wi-Fi, so a pharmacist granted billing as an exception signed in and found it missing, and one who had it taken away was shown a screen that then refused them. #15
  • **Setting up a clinic now asks whether you will be seeing patients yourself.** The first account was always made a doctor as well as an administrator — right for a practice of one, wrong for a clinic with its own doctors, where the administrator appeared at the pharmacy counter as somebody to bill against and in the patient’s QR flow as somebody bookable. It is ticked by default. Existing clinics can already correct it under Users → Edit. #29

1.36.3 2026-09-14

  • **A prescribed line with nothing to say now says nothing.** The quantity box stayed on the bill reading “Not stated”, with a bare “after food” above it — under a medicine already reading *dolo 650 1-0-1 after food*, because the doctor had typed the whole dosage into the name. Two lines of the counter screen spent saying that a line of the prescription was silent, and repeating half of the line above them. The line is now the medicine and the way to dispense something else, and nothing more.
  • **A dosage that was recorded is still drawn in full.** The rule is how many and how long — food on its own is neither, but *after food, 10 days, with water* is a real instruction and survives untouched, timing or no timing.
  • **And where the counter prices the bill, a line the doctor did not dose asks for its quantity again.** There the number decides what is charged, and nothing else can supply it — without it a rate would quietly multiply by one.

1.36.2 2026-09-14

  • **The counter reads a prescription; it does not rewrite it.** The quantity was still an editable box on a line a doctor had written — the last one left after the medicine itself stopped being a field. A prescribed line is now read through: the medicine, the dosing as the doctor drew it, and the quantity the dosage works out to.
  • **A line the doctor did not dose says so, instead of offering a box.** It used to show an empty quantity field there, so that a figure would plainly be the pharmacist’s rather than an invented one. It now says “Not stated” and leaves it: a medicine with no dosage is one to ask about, or to dispense something else for, and that action is directly underneath it.
  • **Dispensing something else still hands the quantity back**, because that is the pharmacist saying what was actually given — so the one line that needs a person still has one.
  • **“Paired through Neork” in Settings now reads “Paired via internet”**, which is the choice a doctor is actually making: this Wi-Fi, or the internet.

1.36.1 2026-09-14

  • **A form no longer goes red at somebody who is halfway through filling it in.** The name field went quiet after one letter and the mobile number stayed red until the tenth digit — the same mechanism, with rules that come true at different moments, so the two fields looked like they were behaving differently. Nine keystrokes of red on the way to an ordinary number is how people learn to ignore red. Nothing is marked wrong now until the button is pressed and the form actually refuses — and from then on each message follows its own field as it is corrected, clearing itself the moment the field is right. #50
  • **The clinic setup screens do the same.** They checked only when the button was pressed and then never again, so a field you had corrected kept the sentence it was refused with. #50

1.36.0 2026-09-14

  • **A signed consultation can be corrected again, for as long as the clinic said.** The edit window, the countdown and the Save amendment button have been on the consultation screen since it was built — and nothing anywhere opened a consultation that was already signed, so none of it could be reached at any window length. Signing completes the token, a completed row in the day’s list was not tappable, and that tap was the only way in. Finished rows now carry an **Edit** button for as long as the record is still open. #49
  • **And the window is the one the clinic configured.** Settings offered a number that nothing read: every visit was stamped with two hours whatever the setting said, so a clinic that chose one hour was working to a figure the app had invented. The signature now asks the clinic’s own setting at the moment it is signed — the same moment, and the same setting, the cloud has always used. #49
  • **An amendment no longer restarts the clock.** Saving a correction went through the same code as the original signature, which stamps the time of signing — so a record could have been kept open indefinitely by amending it, and the window would have meant nothing. Correcting a visit keeps its original signature and its original window, and is refused once that window has closed rather than failing quietly. #49
  • **Every correction is written down.** The patient record and the file panel have always shown “amended 2×” against a visit, and nothing on the computer had ever recorded one. Each change now says when it was made and who made it — a prescription that changed after the patient left with the first version is a fact somebody may have to explain. #49
  • **Correcting a record does not put the patient back in the queue.** They have gone home; only the record is being changed. #49

1.35.0 2026-09-12

  • **Reset password says "Reset password" again.** On the users list the two actions were sharing the column equally however long their labels were, so *Edit* sat in half a column it filled a quarter of and *Reset password* was cut to *Reset p…* in the other half. Widening the column could never have fixed it — every extra pixel was shared out equally again. Each action now takes the room its own words need, and the column is measured from those words rather than guessed at.
  • **A patient's condition no longer bursts out of its chip.** A chronic condition written out in full — "Type 2 diabetes mellitus with diabetic nephropathy" — overflowed its own flag on the patient list by a wide margin. The chip shrinks now, at every width, in both apps.
  • **Four labels that stopped mid-word on a phone.** Patient search read *Name, patient code or mobi…*; the walk-in screen cut the question it asks about the problem; closing the day cut *Cash counted in draw…*, losing the word that says where to look. Each is short now, with the detail on the line below it, which wraps.
  • **The consultation-length setting fits a 360-pixel phone.** Its two buttons, the figure and the word beside them ran thirteen pixels past the edge; the unit steps down a line when there is no room for it.
  • **Every screen is now laid out at desk widths as well as phone widths before release, and checked for words that stop mid-sentence.** The check that catches a clipped label only ran at phone width and only looked at form fields, so a button cut on a 1280-pixel window was invisible to it. It runs at five widths now and reads buttons and status chips too — which is what found the four above. Six screens that were in no width check at all were added to it.

1.34.1 2026-09-11

  • **On a phone the menu tab floats over the screen and costs it nothing.** It was still a child of the layout, so even at 18 pixels it was 18 pixels off every screen underneath it, all day, for a control used a few times an hour. The navigation now takes no width at all on a phone: the tab is painted over the page, and the page is as wide as the phone.

1.34.0 2026-09-11

  • **An administrator can set a password, rather than issue one.** Reset password mints a temporary one and shows it once — right for handing somebody a login, wrong for a counter tablet a clinic wants on a password of its own choosing. **Set a password** is on every row in Users. The account is still asked to choose its own the first time it signs in with it, because somebody who knows a colleague's working password can act as them and every prescription and bill is attributed by user.
  • **One row per tablet in Pharmacy devices, not one per sign-in.** Signing in is what admits a counter, and with nothing to recognise a tablet by, every shift change added another identical entry. A tablet now says which tablet it is, and the row it already has is reused — with what kind of device it is beside it, so an administrator deciding what to revoke can tell two counters apart. A revoked tablet is deliberately not given its old row back.
  • **The counter's Walk-in screen says it registers patients too.** It always could — the button was at the very bottom, under the fields, and somebody wanting to add a patient for another day had no reason to look there. The screen now says so at the top.

1.33.0 2026-09-11

  • **The sidebar opens over the screen at every width, and never takes room from it.** At a desk it used to widen in place from 76 to 208 pixels, pushing the page aside every time somebody looked at the navigation — so the same screen laid out two different ways depending on whether a menu was open. Its footprint is now constant — a tab on a phone, a strip of letters everywhere else — and the names appear over the page, as they already did on a phone.
  • **The users list picks its layout from the room it actually has.** It was choosing the five-column table whenever the screen was not phone-sized, and then squeezing it into whatever was left after the sidebar and the margins — on a tablet that came out as a role chip wrapped mid-word and a name cut to "sreesa…". Below the width the table needs it shows the cards instead, which say the same things and fit.

1.32.1 2026-09-11

  • **Disabling an account now ends the shift it is in the middle of.** A pharmacist already signed in went on using the counter until they happened to sign out. Nothing was getting through that should not have — both the clinic's computer and Neork check the account on every single request, and had been refusing it — but the counter took the refusal, printed a line beside whatever it was doing, and stayed on the screen. It now drops every session on that tablet and returns to sign-in, saying why. The pairings are untouched: which computers a tablet knows is a fact about the tablet, not about who is standing at it. #47
  • Hovering **Reset password** on the Users table shows the whole label, and whose password it is. The column is fixed, so at a narrow window the label has to shorten somewhere — the tooltip answers it wherever the window happens to be. #46

1.32.0 2026-09-11

  • **A patient's age is now required, on both forms.** It is on the prescription and is what a dose is judged against, so a record without one leaves whoever reads it guessing. The doctor's Add patient and the counter's walk-in both ask for it and both refuse without it, so the two collect the same patient. #43
  • **An error under a field goes as soon as the field is put right.** Typing a name into a box that was refused for being empty left the red border and the old message sitting there until the button was pressed again. This was fixed in 1.30.3 and now has a test on each of the three fields, so it stays fixed. #44

1.31.2 2026-09-11

  • **The counter now sees a patient's allergies and chronic conditions.** They were recorded by the doctor and reached the doctor's file and nowhere else — and the counter is the last person to touch the medicine before the patient does. A critical allergy is a red line across the bill; the rest sit beside it as chips, critical first. Works on the clinic's own Wi-Fi and over the internet, because the two must not disagree about a clinical fact. #41
  • **"Awaiting billing" on the doctor's dashboard counts.** It always read 0 — the screen had a place for the number and nothing ever gave it one — while the counter showed two people waiting. It now falls as the counter takes payment, and it counts the same thing the counter's list does: a visit leaves when it has been paid for, not when a pharmacist merely opens it. #40
  • The patient count at the foot of the Patients screen is no longer hidden behind the New patient button. #42

1.31.1 2026-09-11

  • **Each action on a user's row is offered once, under the heading it belongs to.** Edit and Reset password were buttons on the row *and* items in the menu beside it, which is the kind of duplication that makes somebody wonder whether the two do the same thing — the menu now holds only what the row does not, which is disabling. They also start at the left of the Action column rather than some way right of it, and the column is wide enough to write "Reset password" out rather than cutting it to "Reset p…". #39

1.31.0 2026-09-11

  • **The doctor sets what a visit costs, and the counter takes it.** The consultation amount is now asked for at the signing step by default, and at the counter it is shown and cannot be edited — the medicines are listed with their dosing and their quantities and **no prices at all**, because the clinic charges one amount rather than a price per line.
  • **Dispensing something else hands the amount back.** A substitution means what was handed over is not what was priced, so the amount becomes the counter's to set — starting on the figure the doctor wrote, since a substitute is usually the same price. The bill then records that the pharmacy set the total, which is what `amountSource` has always been for.
  • A clinic that prices at the counter turns this off under Settings → Billing, and everything works as it did: the counter prices each line and the doctor's figure, if there is one, is offered as a suggestion.

1.30.3 2026-09-11

  • **A patient's mobile number is ten digits, and now the form holds that both ways.** It only ever refused numbers that were too short, so eleven digits saved without a word — and that is not cosmetic: a returning patient is found by the **last ten** digits, so a record stored with an extra one is found by a number it does not display, and the next person to type the real number creates a second record for somebody who already exists. The eleventh keystroke now does nothing, and a pasted number with a stray digit is trimmed rather than silently taken. #38
  • **The message under the field follows what is typed.** It was worked out when the button was pressed and then left on screen, so typing another digit left the old count behind — reported as "123456 says that has 5". A number with +91 or a leading zero still fits, because that is how a number pasted from a contact card arrives. #38

1.30.2 2026-09-11

  • **The gender picker on Add patient opens on "Select".** It is a real option rather than a placeholder, so it also does the thing a placeholder would not: gender is optional on that form, and somebody who picked the wrong one had no way back to nothing. A patient saved without touching it still has no gender recorded — a default there would be the record inventing a fact about somebody. #37

1.30.1 2026-09-11

  • **The menu a phone pulls out is a panel now, not a full-height column.** It was pinned top to bottom and kept the desk rail's arrangement — mark at the top, destinations pushed to the bottom near the hand — which on a phone left several hundred pixels of empty panel between them. It is as tall as what is in it, comes out of the tab, and the logo is centred over the letters instead of sitting hard against the edge. At a desk the rail is unchanged, destinations still at the bottom where they were asked for. #36

1.30.0 2026-09-11

  • **A clinic can now reset its own super admin's password, by email.** They are the clinic's administrator, so "ask an administrator" was a circle — the only way through was a phone call to Neork. Under "Forgotten your password" the app now asks Neork to send a six-digit code to the address the clinic registered with, and the code is typed into the clinic's own computer.
  • **It is not a reset link, and that distinction is the whole design.** The code cannot be used from the email; it has to be typed into the machine holding the records. It authorises rather than resets — the new password is chosen on that computer and never reaches Neork, who still cannot see a password or a hash. Single use, ten minutes, five attempts, and a new code kills the old one.
  • **And the reset now actually lets somebody back in.** Neork's existing authorisation only marked the account as needing a new password, which forces a change *after* signing in — and somebody who has forgotten their password cannot sign in to be forced. Both routes now end with the person choosing a password on the spot, without being asked for the old one.
  • The sign-in screen carries whatever username was already typed into the reset, so nobody types it twice.

1.29.29 2026-09-11

  • **Taking the last line off a bill no longer says the doctor prescribed nothing.** The counter had two sentences for an empty list — nothing prescribed, and nothing arrived — and a line the pharmacist removed is a third thing it was reading as the first. It now names what was taken off, says the doctor's prescription itself is untouched, and points at the way back: removals are not saved until payment, so leaving without taking payment and opening the bill again restores them. #35
  • The × on a bill line is now labelled with the medicine's name rather than "Remove this line", so three of them down a bill are not three identical labels.

1.29.28 2026-09-11

  • **The Qty and Rate boxes on a bill line have room between them**, and the same amount of it on both sides of the rate. Two outlined boxes 12dp apart read as one control cut in half, while the identical 12dp between the rate and the amount beside it read as plenty — so the row was tight on one side and airy on the other. The rate box keeps its width; the change came out of the amount column. #34

1.29.27 2026-09-11

  • **Opening a patient's record no longer leaves a "Cancelled" line in today's queue.** Picking somebody out of the Patients list starts a walk-in, and leaving it without writing anything withdrew the token — correctly, but the withdrawn row stayed on the list, on the doctor's screen and on the counter's. So a patient who was read and then genuinely queued appeared twice, once Cancelled and once Waiting, under a cancellation nobody had made. Those rows are now removed outright, on every machine. Anything typed — a complaint, a note, a medicine, a vital — still keeps the patient in the queue as before. #33
  • **A search at the counter that matches nobody now says so.** It left the doctor's name on screen over a blank space, which reads as a queue that failed to load rather than a search that found nobody. It names what was typed, offers to clear it, and says when it is the status filter rather than the search that is hiding everybody. #32

1.29.26 2026-09-11

  • **User management is a table**, as asked for: number, name, user name, roles and the actions on each row, with Add user above it. A phone keeps the cards — five columns cannot hold a real name at 360dp — with the same fields and the same actions.
  • **An account can be edited.** Until now it could be created, have its password reset and be disabled, and nothing else — so somebody whose role was wrong on the day they were added stayed wrong, and the only way through was a second account with a second sign-in and a history split between two people who are one person. Name, roles and department can now be changed in place. The username cannot: it is what somebody types to sign in and what a paired counter holds its session against. #29
  • The clinic's last administrator still cannot be edited out of managing users, and says so rather than failing quietly — the one refusal here that would otherwise need a support call and somebody editing a database.

1.29.25 2026-09-11

  • **The counter's two "waiting" counts now say what each is waiting for.** "Waiting to be billed" counts prescriptions the doctor has signed and sent; the live queue's count is people who have not been seen yet. Both were right and neither said what it meant, so three against one read as a mismatch. The queue line now says "1 waiting to be seen", and each section carries a line naming what it counts. #31
  • A billing row whose doctor name did not reach the counter drew an empty gap between two separators — `NEOCLI-000001 · · 1 medicine` — which reads as a field that failed rather than one that is simply absent. It is now left out. #31

1.29.24 2026-09-11

  • **A prescription now says when it was billed.** Reopening one at the counter showed the bill number, the clinic and no date at all — so a patient on their second prescription this month, or ringing about the tablets they were given, could not be matched to the right record. It reads "11 Sep 2026, 11:08 am" under the bill number; a bill closed as money owed shows when it was raised instead. #30
  • **The doctor's patient file dates each past consultation to the minute**, not just the day. Two consultations in one day are ordinary — somebody sent back after a test, a dose changed in the afternoon — and a file that dated both to "11 September 2026" could not say which came second. #30

1.29.23 2026-09-11

  • **On a phone the sidebar is now a tab you pull out, and it opens over the screen rather than beside it.** It held a strip of the width all day on every screen — a bill, a prescription, a queue — for navigation used a few times an hour. Tap the tab at the right-hand edge, or swipe it in; tapping anywhere else puts it away. At a desk it is unchanged.
  • **The doctor app now has Refresh and Sign out**, at the foot of the sidebar, where the counter has carried both for some time. There was no way to sign out of the doctor app at all, which on a shared computer means every record is attributed to whoever signed in first. #28
  • **The version this app is running is shown at the foot of the open sidebar**, in both apps. The counter had no settings screen and so showed its build nowhere at all, which makes the first question of any report — which version is this? — unanswerable from the tablet. #26
  • **Forgetting a doctor on the counter now asks first.** It is one tap beside the patient-QR button, it removes every way this tablet has of reaching that clinic, and putting it back means pairing again. #27
  • **The pharmacy bill has a consultation fee box, and "add a line" is gone.** A blank line a counter could name anything and price anything was a wide door, and what it was actually used for was the one charge a pharmacy adds that is not a medicine. The fee goes on the bill as its own line, is added to the total, and appears on the receipt by name.
  • **The counter and the printed sheet no longer say "Dosage not recorded" or print an "after food" tag.** The doctor writes the instructions as free text now, so there is no dose schedule to be missing — the notice would have appeared on every line, and a warning on every line is not a warning. What the doctor actually wrote is shown, unchanged.
  • **A patient the doctor adds now goes into today's queue.** The screen adds them with a token and shows the queue, with a tick to turn that off for somebody being registered for another day. Registering and queueing are two different acts in this product, and the doctor's own screen only ever did the first.
  • **Walk-in says "Add new patient" when a number matches nobody**, above the details, so it is clear the fields below register somebody rather than confirm them. The fields the form refuses without are now bordered in blue as well as starred.
  • **The doctor's Settings now lists counters that paired over the internet.** It only ever listed the tablets that paired over the clinic's own Wi-Fi, so a pharmacy that had been billing for days through Neork read as "No tablet has paired with this computer yet".
  • **The six-digit code and QR for pairing a counter on this Wi-Fi are gone from the doctor's Settings.** A pharmacist typed a code read across the room and was then asked for a username and password anyway, so it gated nothing. They find the clinic on the tablet and sign in with their own account. The internet code, for a pharmacy that is not on this network, is unchanged.
  • **"My patients" is gone from the doctor's patient filters.** It did not work. The filters are All patients, Seen this month, and With chronic flags.
  • The Users screen now writes "Username — pharma123" rather than the username on its own, which was being read as the person's name.

1.29.22 2026-09-10

  • Pairing a doctor's computer from the sign-in screen now shows it on the list straight away. That list is where a counter pairs for the first time, before anybody has signed in — and it was built once when it opened, so a clinic paired from inside it did not appear. The pairing had worked every time; the screen simply was not told. On a tablet that reads as a failure, and the natural response is to pair the same computer again. The counter's own copy of this list was fixed a few releases ago and this one, in the same file, was missed.
  • When pairing falls back to asking for a code, the reason is now written to the device log. Falling back is a working way through, so a counter that quietly stops offering the code-free path looks like nothing at all — which is how this went unnoticed. Nothing new appears on screen.

1.29.21 2026-09-10

  • **Anyone using "Use the doctor's figure" at the counter should install this.** Choosing it confirmed the doctor's amount on screen and then took the counter's own total instead. The button went on offering the old figure, and the payment used that. Two things were wrong: the total shown was always the sum of the priced lines and never the amount the bill actually held, and saving the lines — which happens automatically the instant before payment — resets the amount to that sum, undoing the choice a moment before the money is taken. The button now names the amount that will be taken, and the choice survives the save. Typing a rate afterwards still takes the decision back, because pricing the lines is the pharmacy setting the amount. Found by billing a prescription on a real phone.

1.29.20 2026-09-10

  • Searching the Wi-Fi for a doctor's computer now works where it previously could not work at all. The search joins the network's discovery group on every network adapter the machine has, in one go — and on Windows a single adapter that refuses (the ones WSL, Hyper-V, VirtualBox and VPN software install) made the whole search fail before it sent anything. The failure was caught and reported as "no clinic found", which looks exactly like a clinic that is switched off, so it has read as a Wi-Fi problem for a long time. A refusing adapter is now skipped and the others are asked on their own. Proven on a Windows machine that had never once discovered a clinic and now finds it.

1.29.19 2026-09-10

  • The counter now takes an Android multicast lock while it searches for clinic computers. Android's Wi-Fi driver discards multicast traffic unless an app holds one, and mDNS announcements are multicast — so a search could join the group, wait, and hear nothing, while typing the same computer's address worked perfectly. The permission for this has been in the app since discovery was built; nothing was ever taking the lock. This is necessary, and on the network I could test on it was not sufficient: searching still finds nothing there, and I would rather say so than let a release note imply otherwise. Pairing by typed address and by QR is unaffected and remains the reliable path.

1.29.18 2026-09-10

  • A doctor's computer paired at the counter now appears on the list straight away. It was saved correctly, but the screen was rebuilt only after every already-paired clinic had been contacted again — and one that is switched off is a wait of several seconds each — so a pharmacist was returned to a list that did not contain the clinic they had just paired, with nothing on screen to say anything had happened. The natural conclusion is that it failed, and the natural response is to pair it again. Found by pairing a real phone with a real desktop.

1.29.17 2026-09-10

  • The counter's "Billed today" no longer reports an empty till when it could not ask. With a doctor's computer switched off it said "No bills closed yet today" — a statement about money already taken, which reads to a pharmacist as a payment that failed to register. It now names the clinic it could not reach and says what is missing from the count. This is the fifth screen in the same family and the last one the counter has: the two empty states above it and the two on other tabs were fixed earlier today.

1.29.16 2026-09-10

  • The doctor's queue screen now says when records from the cloud have stopped arriving, instead of that being visible only in Settings. A doctor opening the app at eight in the morning does not go looking in Settings, and this is the question issue #3 has turned on for five rounds: a computer that is behind and a computer that has the record and draws it wrong need opposite fixes and looked identical from every angle. It waits ten minutes before saying anything, because a single round that ends short is almost always the server gaining a row while the sync was running — and a clinic told about those learns to ignore the line that matters. #3

1.29.15 2026-09-10

  • On the counter's Doctors screen, a clinic's name is no longer crushed into a column six characters wide. The status badge and the two buttons beside it took nearly the whole row on a phone, so "Hill Palace Clinic" came out stacked as Hill / Pala / ce / Clini / c. Nothing overflowed and nothing was cut off, so no check could see it. On a phone the badge and buttons now sit under the name, which is what that row exists to show; on a wider screen there is room and they stay beside it.

1.29.14 2026-09-10

  • Repairs a fault introduced in 1.29.12: the counter stopped refreshing altogether. Adding "which clinics could not be asked" to the closed-bill lookup left one line converting the result to its old shape — which the compiler accepted and which failed the instant it ran, before any of the new data was stored. The queue, the unreachable list and the day's figures all quietly stopped updating on a screen that looked perfectly normal. Anyone on 1.29.12 or 1.29.13 should install this. That whole style of conversion is gone from the refresh, and the refresh now has a test, which it never had.

1.29.13 2026-09-10

  • Today's queue on the counter no longer says "Nobody is in the queue" when it could not ask. A doctor whose computer is simply switched off was dropped in silence, so the screen showed the reassurance with no flag anywhere on it — while a doctor whose computer actively refused was reported correctly. The screen had always handled this properly; the list of unreachable clinics reaching it was empty. This is the same one-line omission as yesterday's Past prescriptions fix, and every one of the counter's four merges is now checked for it by test rather than screen by screen.

1.29.12 2026-09-10

  • Past prescriptions no longer says "Nothing was billed in this period" when it could not ask. With every doctor's computer switched off, the counter's own record of what it had billed came back empty and the screen reported that as a fact about the clinic's takings — so a pharmacist looking for a receipt to reprint was told none existed. It now names each clinic it could not reach and says plainly that this is not the same as nothing billed. Bills from the doctors that did answer are still listed, rather than the whole screen going blank.

1.29.11 2026-09-10

  • Nine more places where the apps could not finish their own sentence on a phone. A label, a hint or a heading that is wider than the space it sits in is quietly cut with an ellipsis — no warning, nothing in any test — so the counter offered "Find a prescriptio…" and "Or search by name or …", the doctor's grid headed a column "Day…", and the first screen of setup explained the clinic code in a sentence that stopped mid-word. Labels are short now and the detail sits in the helper line below, which wraps.
  • The phone check in both apps now fails when either app cuts off its own words, so this class cannot come back. It deliberately leaves data alone: a patient with a long name should be shortened in a list row, because the app cannot make that name shorter and the row has other things to say — what it can always shorten is its own copy. The counter's half of that check had also been measuring screens under the wrong theme since it was written, which is why none of this showed up there.

1.29.10 2026-09-10

  • A message under a form field is no longer cut off mid-sentence. Found by signing in to the doctor app with a pharmacist's account: it is refused, correctly, with "This account is for the pharmacy counter. Sign in on the pharmacy app, or ask your clinic administrator for a doctor account." — and what appeared on screen was "This account is for the pharmacy counter. Sign in …". The half that was cut is the half naming the remedy. Every field in both apps can now use up to three lines to explain itself.

1.29.9 2026-09-10

  • The NeoCliniQ mark now sits at the top of the sidebar in both apps, on every screen a clinic works on. It appeared on the screens that introduce the app — welcome, setup, sign-in — and then vanished for the whole working day. The sidebar has had a place reserved for it since the destinations moved to the bottom; nothing was ever passing it, and it was additionally hidden on a phone, which is where it was asked for. #25

1.29.8 2026-09-10

  • Settings now has a Cloud sync section saying whether this computer is caught up with the clinic's records, how far behind it is if it is not, and when it last checked — with a Check now button. When a bill paid at the counter over the internet did not appear on the doctor's side there was no way to tell a computer that was behind from one that had the record and was drawing it wrong, and those need opposite fixes. The control plane cannot answer it either: it records what it sent a device, not what the device stored. #24
  • A record the cloud sends that this version cannot store no longer stops everything behind it. It used to abandon the whole page of changes and try the same one again on every round — for ever, and in silence — so every later change, including bills and substitutions, would never arrive. Such a record is now set aside, counted where somebody can see it, and applied by a later version that understands it, so nothing is lost and nothing is stuck.

1.29.7 2026-09-10

  • The doctor's Patients screen now updates while the doctor is looking at it. It worked out which patients to show once, when the screen opened, and then only when somebody typed in the search box or changed a filter — so a patient registered at the counter arrived on the computer, went into the doctor's records, and still did not appear on the screen in front of them. This is the fourth attempt at that report and the first one at the screen itself; the three before it were all real faults further back, and each delivered a correct list to a screen that would not look at it. #23

1.29.6 2026-09-10

  • The navigation buttons sit at the bottom of the side rail instead of the top, in both apps. The rail runs down the right-hand edge, and the bottom of that edge is where a thumb already is on a tablet and where the pointer already is on a desk — the top corner is the furthest point on the screen from both. The logo stays at the top, and tapping any empty part of the rail still opens the names.

1.29.5 2026-09-10

  • One record the clinic computer cannot read no longer empties the pharmacist's list of waiting prescriptions. Sending the list opens every patient and doctor name on it, and a single record written under keys that computer no longer holds failed the whole request — so the counter reported the doctor as unreachable and prescriptions that had been sent simply did not arrive. A record like that is now named as unreadable on its own row, with its patient code, and everything else is sent as normal. Same fault as the doctor's own patient list in 1.29.4. #8

1.29.4 2026-09-10

  • One patient record that this computer cannot read no longer hides every other patient. The Patients list is built by decrypting every record, and a single one that would not open — written before a computer re-activated and took new keys, or arrived from a device that held different ones — stopped the whole list being rebuilt. Nothing was reported anywhere, so the list simply kept whatever it already had and no patient registered afterwards ever appeared. That record is now listed as unreadable, with its patient code beside it, and everybody else is where they should be. #22

1.29.3 2026-09-10

  • Opening a patient from the Patients list to read their history no longer puts them back in the waiting queue. Selecting a patient starts a consultation — that is what makes the list useful — and the token it creates is real, so backing out was releasing a patient nobody had queued. That is why a patient could show as Completed and Waiting at the same time. A consultation left with nothing written is now withdrawn; one with anything typed still goes back to the queue, because a doctor interrupted mid-sentence must find the patient still there. #20

1.29.2 2026-09-10

  • The doctor's visit history now says what the patient actually went home with. The column was headed "Prescription" and listed what the doctor wrote, so a medicine the pharmacy substituted never appeared — the doctor read back their own prescription with no sign anything had changed. A changed line now reads "Crocin 650 (instead of Dolo 650)": both what was given and what it replaced, because either on its own is a worse record. #21

1.29.1 2026-09-10

  • A counter on the clinic's own Wi-Fi no longer needs a pairing code. It finds the doctor's computer, and signing in is what pairs it — because only an account the doctor created can sign in, so the six digits were being read across a room in order to reach a screen that then asked for a username and a password anyway. The tablet still appears under Settings → Pharmacy devices and can still be revoked.
  • A counter that reaches its doctor over the internet still uses a code, because our server cannot see which network anybody is standing on. A clinic computer that has not been updated still asks for one too — the counter asks it rather than guessing, so a clinic running two versions keeps working.
  • Worth knowing: with no code on the Wi-Fi, the account is what controls access. Removing somebody means disabling their account under Users, not revoking a tablet — anyone with a working login can pair a new one. Sign-in attempts from a device that is not yet paired are limited per device to keep the clinic network from being a comfortable place to guess passwords.

1.29.0 2026-09-10

  • A patient registered at the counter now reaches the doctor's Patients list without a wait. 1.28.9 made the list follow this computer's records, which was half of it; the other half was that while the doctor sits on the Patients tab the app only checked with the server every two minutes, because that screen was not counted as one a counter can change. It is now — so over the internet a new patient appears within seconds, and over the clinic Wi-Fi they appear immediately as before. #19

1.28.9 2026-09-10

  • A patient registered at the counter now appears in the doctor's Patients list straight away. The list was built when the app started and again when the doctor switched to that tab — and switching to a tab you are already on does nothing, so a doctor sitting on the Patients screen while reception registered somebody never saw them at all. It follows the records now, so a patient added at the counter, or one that arrived from another device, turns up without anybody navigating anywhere. #19

1.28.8 2026-09-10

  • A patient name with no letters in it is refused wherever it arrives, not only where somebody types it. The rule was written into the two Flutter screens, so anything else that creates a patient went straight past it — and a patient was registered as "777", which then reads as their name on the queue, the prescription, the bill and the receipt they take home. The rule now lives in the shared rules layer and is applied by the doctor's computer itself, so an older counter, or any other client on the clinic Wi-Fi, cannot get around it. #18
  • The same check now also guards the patient QR flow and the server behind it, so somebody registering themselves from the waiting room is held to it too. That half reaches clinics when the control plane is next deployed.

1.28.7 2026-09-10

  • The counter stays signed in. It was deciding whether somebody was signed in from whether a doctor's computer answered at that instant — so a laptop asleep, a Wi-Fi still reconnecting, or a slow first call over the internet put a pharmacist back at the sign-in screen holding a session that was perfectly good. On Android, Back on the counter tab closes the app, and reopening ran exactly that check. Only the server actually refusing a session signs anybody out now; a doctor that cannot be reached is named on the screen behind, where that news belongs. #17
  • A disabled pharmacist account is no longer also called a wrong password. The correct sentence — "This account has been disabled. Ask your clinic administrator." — was shown under the form while "Username or password is incorrect." sat under the password field at the same time. The generic one now appears only when there is nothing better to say. #7

1.28.6 2026-09-10

  • The counter finds the doctor's computer on the clinic Wi-Fi again. The desktop was announcing itself on only one network adapter — whichever the computer's routing table happened to prefer — and on any machine with a VPN, WSL, Hyper-V or a virtual network adapter that is not the Wi-Fi. So the clinic advertised itself perfectly into an adapter nothing was listening on, while a tablet three feet away searched the Wi-Fi and found nothing. It now announces on every adapter the computer has. Checked on a real phone on real Wi-Fi: the old build showed "Can't find the clinic computer", this one lists the clinic with its address and version.
  • "1 clinic computers are on this Wi-Fi" now reads "One clinic computer is on this Wi-Fi".

1.28.5 2026-09-10

  • Windows is an installer now, not a zip. It installs for the person running it, into their own profile, so there is no "do you want to allow this app to make changes" prompt and no administrator password is needed — a receptionist can install it. It makes a Start menu entry and, if asked, a desktop shortcut, and it uninstalls from Settings like any other program. Upgrading over a running copy asks to close it and reopens it afterwards.
  • The first-run "Windows protected your PC" screen is a different thing and is still there. That is SmartScreen, and it is not removed by a certificate we sign ourselves — it trusts reputation attached to a certificate a public authority issued. Click More info then Run anyway; it stops once the build has a signing certificate behind it.
  • The title bar is the app's own white with black text, on both apps. It used to be whatever accent colour the computer was set to — purple on the machine this was reported from, and a different colour on the next clinic's.
  • Both apps now say when a newer version has been published, as one line at the top of the screen with the version named and a way to open the download page. Nothing is downloaded or installed behind anybody's back, and a clinic with no internet sees nothing at all rather than an error.
  • The desktop was telling the counter and Neork it was version 1.28.1 while running 1.28.4, and telling Neork it was version 1.0.0 every time it activated or recovered its keys. Both are fixed, and the counter now knows its own version too — a pharmacist reporting a fault can say which build they are on.

1.28.4 2026-09-10

  • A placeholder no longer reads as something already filled in. Removing every grey from the apps left a hint drawn in exactly the ink of typed text — so the pairing screen appeared to hold the code 000000, and the address box appeared to hold an address belonging to no clinic. Hints are italic now, and the two that were plausible values for their own field are gone.
  • The day close no longer offers the expected cash as the answer in the box asking what was counted. The figure is on the row below, where it can be compared with rather than agreed to.
  • A doctor's computer that nobody has signed in to yet is no longer labelled "Not answering". Nothing had been sent to it, and the label sent a pharmacist to look at a machine in another room while the line underneath said to sign in.
  • The counter's navigation letters work. Every destination showed a key on it and the app listened for none of them, so on Windows all six were labels for keys that did nothing. Escape returns to the counter, as it returns to Today on the desktop.
  • Day close and Doctors no longer draw the same letter on the rail. Doctors is O.
  • A counter that could not reach a doctor no longer prints two full stops in the middle of the sentence saying so.
  • And the correction to the line above it: on the Paired doctors screen reached from sign-in, where nothing has been attempted yet, 1.28.2 called every clinic "Not answering". That is the same fault the fix was about, arrived at from the other side — it now takes evidence to say a computer went quiet.
  • On the same screen: a doctor's computer that answered and refused the password is no longer badged "Not answering". It said "Username or password is incorrect." in the line underneath while the badge said the machine was silent — the two sent a pharmacist to opposite ends of the building. It reads "Refused" now, which is the distinction the billing queue has always drawn.

1.28.1 2026-09-09

  • The counter app carries the same look as the desktop — it always shared the design system, so the typeface, the white grounds, the square corners, the ruled sections and the logo palette were already there. Two places that styled themselves rather than reading the tokens are fixed: the brand band's heading, and the shared-number panel's corner.

1.28.0 2026-09-09

  • The app is the colours of its own logo: every button, link and focus ring is the blue the NeoCliniQ mark is drawn in, rather than the deeper blue borrowed from the admin console.
  • The sign-in screen shows the mark beside the name instead of the name on its own.
  • On the Users screen the roles and the ⋮ menu line up in columns down the list. A person with one role gave a narrower block than a person with two, so the right-hand edge was ragged.
  • The navigation rail has no chevron at the top of it. Clicking anywhere in the rail still opens and closes the names, and a letter still navigates.

1.27.1 2026-09-09

  • A patient's name has to contain letters. "46546" was accepted silently and became that person's name on the queue, the prescription, the bill and the receipt. Refused now, on the doctor's form and at the counter, with a message saying what is wrong. #16
  • Names in Malayalam, Hindi or Tamil pass exactly as ones in English, and a name that carries a number — "Baby 1" — is still a name. The rule is that a name needs letters, not that digits are forbidden.

1.27.0 2026-09-09

  • A more businesslike look throughout: square corners in place of the large rounded ones, visible edges on every card and field, ruled section headings, and a table header that reads as one.
  • Page headings are a fifth of the size they were — they name the screen rather than dominating it — and forms are tighter, so more of a clinic's day fits on one screen.
  • What did not change: text stays at 15 and buttons at 44dp. Those are floors for a tablet held at a counter, and the test that guards them refused the first attempt at making everything smaller.

1.26.2 2026-09-09

  • Escape closes the full-screen history. It is a screen opened and closed while reading, and the only way out was the back arrow.
  • The age field on the New patient form is labelled "Age" and shares the row rather than being pinned at a fixed width. It read "Age (o…" at every width the form has ever been drawn at; below 520dp gender and age now take a line each.

1.26.0 2026-09-09

  • Both apps are set in Poppins, and every ground is white — the grey desk with a rounded window floating on it is gone, and so is the shadow under it.
  • No grey text anywhere. Captions, hints and labels are the same near-black as everything else a doctor reads.
  • The consultation is one column. The patient's file has left the left-hand side: the chronic conditions and allergies now sit in the page, under the history and above the form.
  • The history table carries a Vitals column, shows the five most recent visits with the rest scrolling under them, and opens full screen for reading a whole file at once.

1.25.1 2026-09-09

  • The history table's Amount column is no longer cut off at the right edge. It measured itself from the window rather than from the space it actually had beside the patient's file.
  • The keyboard hints under the patient list say what the keys do: Enter opens the patient, and Escape goes back to Today. They still read "open record" and "Esc clear", neither of which had been true since those keys changed.

1.25.0 2026-09-09

  • The consultation is laid out as a prescription pad: the patient's history as a table across the top — date, visit, symptoms, prescription, amount — and under it today's date, what the patient described, then symptoms beside test results, prescription beside notes, and the amount.
  • The medicine is typed. One a line, in the doctor's own words, instead of the dose steppers and the four dosing modes. A prescription written by an earlier build opens as the sentence it always printed as, and is left exactly as it was stored unless the doctor edits it.
  • The queue has left the consultation. The whole column beside it is the patient — their conditions, their allergies and every previous visit.
  • Opening a patient from the Patients list goes straight to their history and the prescription, rather than a read-only record with a button on it.
  • Tab walks the boxes one at a time in the order they are written, and Shift+Enter sends to the pharmacy — it was Ctrl+Enter. Plain Enter opens the next line of the prescription.

1.24.7 2026-09-09

  • A computer that has been added to a clinic but has not received its staff accounts yet now says so — "This computer has not seen that account yet. Connect to the internet once." It was answering every correct password with "username or password is incorrect", which sends a clinic looking for a broken password instead of a network. #15

1.24.6 2026-09-09

  • Signing in no longer minds the case of a username. Usernames are stored in lower case, and sign-in compared what was typed exactly — so "Sreesankar" was refused for an account called "sreesankar", with the same message a wrong password gets. Reported as users not being able to log in.
  • The same rule now covers adding a user, so one person cannot end up with two accounts differing only in capitals, and a password reset authorised by Neork reaches the account it names.

1.24.5 2026-09-09

  • The doctor is told when the pharmacy gives something other than what was prescribed. It shows on the queue row and in the visit record — no interrupting dialog, since the doctor is usually with somebody else by then, and it arrives on the next sync when the counter is on mobile data. #3

1.24.4 2026-09-09

  • The consultation screen has its back button again. It was lost when the screen moved onto the new shell — Escape still worked, which is not the same thing on the screen a doctor spends the day in. #14
  • A patient appears under My patients as soon as their consultation is signed. The list was rebuilt when the Patients tab was opened, so a consultation started from a patient's record — which returns to the tab it was already on — left it a consultation behind. #13

1.24.3 2026-09-09

  • Opening a prescription at the counter no longer takes the patient off the billing queue. A bill is created the moment one is opened, and any bill at all counted as billed — so opening somebody and pressing back lost them, with no payment taken and nothing said. They stay on the list until the bill is paid. #9
  • A medicine is one suggestion however it was typed. "dolo" and "Dolo" were learned as two, which showed as duplicate chips and split the count that ranks the autocomplete. #10
  • The counter tells a pharmacist whose account has been disabled that it has been, instead of "username or password is incorrect" — which sends them looking for a typing mistake that is not there. #7
  • Registering a patient from inside a consultation says where the phone number came from, and offers to clear it. It starts on the patient the doctor is with so a family member is a name and an age; unexplained, it read as the last patient's number stuck in the form. #11

1.24.2 2026-09-09

  • The walk-in form marks Mobile number as required, so the one field that stops a token being issued no longer looks optional. #5
  • After issuing a walk-in token the screen names the patient it is for. The small line under the number was the doctor and clinic; the patient's name was not shown at all. #4
  • The Refresh button shows a spinner while it checks, instead of looking like nothing happened. #6

1.24.1 2026-09-09

  • The desktop apps show the NeoCliniQ mark instead of the Flutter logo — in the title bar, the taskbar, alt-tab and pinned shortcuts. #1

1.24.0 2026-09-09

  • Both apps take the admin console's design system: a grey desk with one floating window, an icon rail, and larger display headings.
  • The consultation screen puts the queue and the patient's history beside the prescription at desk width, rather than behind a panel that covers what you are typing into.
  • Keyboard throughout: T/Q/P/U/S reach the sections, P puts the cursor in patient search, Escape returns to Today, and Ctrl+Enter sends a consultation to the pharmacy.
  • Tab crosses a prescription row medicine, days, instructions, then the three doses; the arrow keys set before or after food.
  • You can change your own password from Settings, which previously needed an administrator to reset it for you.
  • Past consultations show vitals without having to open each one.