Clinic OS
YilaCMS is the part that replaces what you run today: the front desk, the consulting room, the dispensary, the till, the stockroom and the roster. This page is the detail — what each part actually does, and what it does not do yet, so you can tell whether it is better than what you have.
The shape of it
Staff do not use the whole system; they use their station. YilaCMS is organised that way, and a receptionist never has to walk past the dispensary to find the queue.
Registration list, resource calendar, dispensing hand-off and the till. Book by dragging on the calendar or by typing a phone number and pressing Enter. Walk-ins get a temporary record in one screen and are merged into a full one later. Patients can also register themselves from a QR code you print and put on the counter.
The structured TCM record — chief complaint, inspection, tongue, the three pulse positions on each wrist, pattern, treatment principle, formula — plus treatment orders, MC and memos. Every prescription line is a field, not a sentence, which is what makes it repeatable next visit.
A therapist desk of its own: what was assigned in the consultation, who is doing it, what was actually performed, and what is still owed on a package.
Stock
This is usually where clinic systems stop. Ours runs the full path and each step is its own screen: purchase order, receiving, stock-in, batch, transfer out, supplier.
Stock is held per batch rather than as one running total, which is the only way expiry and cost are answerable rather than estimated. Suppliers get their own portal to see the orders you raised for them.
Movement log, low stock, near expiry, batch listing, medicine cost, and consumption by medicine. These are the ones that decide what you order on Monday.
Medicines, materials, retail lines and suppliers each have their own import mapping. You are moving thousands of rows out of another system; typing them again is not a plan.
Herbs and granules, consumables, and retail products are configured separately, because they are counted, costed and dispensed differently.
One thing to know before you compare: batch quantity counts units as you receive them, not grams in the drawer. If you dispense loose herbs by weight, ask us how that maps to how you buy — it is a real conversation and we would rather have it before you sign than after.
Money
Taking payment is the easy half. The half that costs you evenings is proving at the end of the day that what the system says matches what is in the drawer and the terminals.
Multiple payment channels on one bill, package and voucher redemption, void and refund with the audit trail kept rather than the row deleted.
Daily settlement against channels as its own screen, so the discrepancy is found on the day it happens and not at month end.
Practitioner and therapist commission calculated from what was actually performed and billed, settled as its own run.
Daily cashflow, revenue, sales, refunds, physician and therapist performance, work hours — each a report you can open, not a tile you cannot drill into.
People
Roles are not a fixed list of seven. You create the ones your clinic actually has — a clinic manager, a senior therapist, a part-time receptionist — name them in Chinese and English, and set permissions module by module.
Permissions are granted per clinic, so a manager at one branch is not automatically a manager at all of them. Rosters, monthly schedules and leave sit in the same place.
Reports
Appointments and cancellations, patient visit history, diagnosis lists, follow-up and revisit lists, birthdays, membership and package expiry, medicine usage and cost, stock batches, finance and refunds, physician, therapist and assistant performance, and the user operation log. Each one is its own screen with its own filters, running against your data.
The honest part: the seven category overview pages — the dashboard you would land on when you click Finance or Inventory in the report centre — are still placeholders. You reach the reports from the report centre list, and every one of the twenty-nine works. We would rather tell you that now than have you find it in week two.
Underneath
Every business row carries the clinic it belongs to, and every query is filtered by it. Multi-branch was not added later as a switcher on top of a single-clinic database, which is the difference between a group that works and a group that leaks.
Deleting is soft by default. A voided bill, a removed patient, a cancelled appointment stays recoverable and stays in the audit trail.
The list you actually need in order to decide. If something here is load-bearing for you, say so before you sign and we will tell you where it really stands.
Send us an export. We will map it — by hand, for your system — into a tenant on our staging environment only you can see, and you can check your own patients, your own prescriptions and your own stock against the originals before anyone talks about a cutover date.