1. Who is who
- LiveDr Roland is the CCT lead. He is both a CCT doctor and the CCT manager. T-242, T-249
- LiveThe "CCT Admin role" is a limited admin role for the CCT team. A person with it uses the CCT planning page and the CCT Set Up screen as an admin, and nothing else of the admin area. Full admins give or remove the role on Admin › Staff › Med Admin (the "CCT Admin" sub-category). T-242, T-250
- LiveAdmins (full admins of the app) can do everything a CCT Admin role holder can. T-242
- LiveManager and clinician. In the change rules (section 3):
- a manager is a full admin or anyone with the CCT Admin role;
- a clinician is any active CCT team member whose CCT role is not Admin or Operations (so doctors, and nurses, therapists or social workers if they are added to the team);
- a non-clinician admin (a manager who is not on the CCT clinical team) can plan, call and ask, but cannot set safety limits, approve, decline or override;
- a CCT team member who is Admin or Operations and has no admin role can read, but cannot change a visit;
- a person who is both manager and clinician (Dr Roland) is treated as a clinician wherever the rules differ.
- LiveEach doctor edits their own patient list. A doctor who does not have the CCT Admin role can change only their own day plan and their own roster sessions, and visits that are theirs or of their own patients. Any CCT doctor may change the details on any patient card (see “Any CCT doctor can edit any patient card” below); whose list a patient is on stays as the next two rules say. "Own patients" means: they are the patient’s preferred doctor, or the patient is planned with them (from a week ago on), was seen by them in the last 30 days, or has a "no date yet" visit with them. A doctor can add to their day only a patient who is already theirs or planned for them. The database refuses anything else and the screens say why; "View as" cannot be used to change another doctor’s plan. Admins and the CCT Admin role (Dr Roland too) may change anyone’s. T-341
- LiveAdding a patient to a doctor’s list is the CCT Admin’s. Only an admin or the CCT Admin role makes a new card or sets a card’s preferred doctor (that is whose list the patient is on). A doctor cannot put a patient on their own list or on another doctor’s. T-341
- LiveOne door for a new patient. A new patient card is made only by the New patient wizard on the CCT Admin page (Initials and Postal code; it also sets the first-visit window). The database refuses a new card sent any other way — an older phone or Waypoint, or a card made in a browser while signed out — with the words “New patients are added by the CCT Admin with the New patient wizard (CCT Admin page). This card was not saved.”; what was sent is kept in the database’s log for the CCT Admin. Changes to an existing card are not affected (the phones already in use included). T-381
- LiveTaking a patient off a doctor’s list needs a reason. Clearing or changing the preferred doctor, archiving the card, or setting it to Discharged or Deceased is done by the CCT Admin (or an admin) or by that patient’s own doctor, always with a reason from the list (Discharged from CCT care, Care moved to another doctor or team, Assigned to the wrong doctor, Admitted to hospital, Deceased, Moved out of area, Patient declined, Duplicate card, Other) and a few words. One entry goes in the patient’s communication log: who, when and why. A card is never deleted outright; it is archived. On the phone see “On the phone” below. T-341
- LiveOff the list: no typed words when the reason says it all. Duplicate card, Admitted to hospital and Moved out of area (and Deceased) need no typed words; Other, Assigned to the wrong doctor, Care moved to another doctor or team, Discharged from CCT care and Patient declined still need a few. When the card’s status is Admitted, Discharged or Deceased, that reason comes already chosen (still changeable). The database checks the same rule. On the phone too (phone: store build seq 23). T-381
- LiveEvery change to a patient card needs a reason. Anyone who changes a card — any detail, the safe limits, a new card, archiving — gives a reason, the CCT Admin too. Saving asks first, from a short list: New information from the patient or family, Correcting a mistake on the card, Contact details changed, Address or access changed, Visit plan changed, Clinical review, Assigned to a doctor’s list, Other (Other needs a few words; words are optional for the rest). Taking a patient off a list uses its own list and always a few words (above). The database refuses a change without a reason and says why. The change and the reason go in the patient’s communication log as ONE entry per save: who, when, what changed, why. A new card’s reason is its referral (“New referral”), filled in by the form. Values the app works out by itself (travel times, the card colour, “last seen”) need no reason and are not logged; a change made by the system with no one signed in (an import, a scheduled job) is not blocked and is logged “By system”. Visit changes keep their own reasons. On the phone see “On the phone” below; until the phone apps are updated from the store, a card change made in an older phone app is refused with the database’s words. T-343
- LiveA card change: the reason comes chosen from what changed. When everything changed on the card is of one kind, saving asks with the reason already chosen: the mobile, email or family contact → Contact details changed; the address, unit, lift or access → Address or access changed; how often, how long or which days → Visit plan changed. One click (or Enter) saves; the reason can still be changed. A mix of kinds, the status, the safe limits or the notes ask as before, with nothing chosen. The database still needs a reason for every card change (T-343). Waypoint and the card on the CCT Admin page. On the phone too (phone: store build seq 23). T-381
- LiveAny CCT doctor can edit any patient card. The details on a card and its safe limits can be changed by any CCT doctor (a CCT clinician), not only the patient’s own; every change goes in the patient’s communication log with who, when and the reason. A CCT team member who is not a clinician (Operations) sees the card read only. Adding a patient to a list (a new card, setting the preferred doctor) stays the CCT Admin’s, and taking one off stays the CCT Admin’s or the patient’s own doctor’s. Plans, sessions and visits stay each doctor’s own. T-344
- LiveOn the phone: the same reasons and the same rights. In the phone app (/m, and the iOS and Android apps once they are updated from the store), saving a patient card that changes something asks “Why are you changing this?” first, with the same list and words as Waypoint (Other needs a few words); “Cancel: change nothing” saves nothing. A save that changes nothing asks nothing. A new card goes up with “New referral” (no extra question), and making a new interval the regular one at the end of a visit goes up with “Visit plan changed”. Deleting (archiving) a card asks a second time and then the reason for taking the patient off the list, with a few words; only the CCT Admin or the patient’s own doctor (the card’s preferred doctor) can, and for anyone else Delete is shut and says why. “+ New patient” is the CCT Admin’s; for anyone else it is shut and says why. A CCT team member who is not a clinician (Operations) sees the card read only. The phone has no preferred-doctor or Discharged / Deceased control, so Delete is its only way to take a patient off a list. When the phone cannot ask the database who you are (offline), nothing is shut and the database decides. Needs a store build. T-343, T-341, T-344
- LiveThe CCT planning page (desktop app) is for Dr Roland and the admin team: patient list, the week's sessions, the selected session and the planning tools. Everyone else who opens it sees the week calendar only. Its menu name is "CCT Admin" (was "CCT Roster" until 24 Oct 26). T-249, T-251, T-337
- Live"CCT Roster" is renamed "CCT Admin" in the menu, tab, heading and messages. The role keeps its name and reads "CCT Admin role" wherever both appear (Admin › Med Admin, messages). T-337
- LiveWaypoint (the /cct/ page) is for Dr Roland's medical team: My week (my sessions and patients), the Session planner (map and route) and Communications. A doctor who is not an admin sees no patient list there; the map takes its space. T-282, T-284
- LiveA "RosterEngine" link in Waypoint. Everyone signed in to Waypoint (every CCT doctor, not only the managers) has a "RosterEngine" link at the top. It opens the main app on the tab they last had open there; if that tab is one they cannot open, or nothing is remembered, it opens Home. Each person's last tab is remembered for them, so on a shared computer you never land on the last person's tab. No new sign-in is needed. Inside the CCT Admin page's patient card the link is not shown. T-345
- LiveThe "RosterEngine" link also returns to the sub-tab. Inside a tab that has sub-tabs, the link opens the sub-tab each person last had open there: on the CCT Admin page, Roster or Admitted to Hospital; its Performance (Admin › CCT Performance) rather than CCT Set Up; any Admin sub-tab, at either level. A sub-tab that person cannot open, or one no longer there, is ignored and the tab opens as it always did. Each person's sub-tab is remembered for them alone. The old CCT Roster address still opens the Roster. The link keeps opening RosterEngine in the same browser tab. T-345
- LiveView as. A full admin or a CCT Admin role holder can pick a doctor in Waypoint and see that doctor's week and messages, read only. T-282
- LiveCCT Performance page is for admins and the CCT Admin role. Rows per doctor are seen by Dr Roland and the admins only; doctors never see a per-doctor row. A patient is overdue the day after their last visit plus their review interval (no grace days). T-255
- LiveHome Medical and IHH are always counted and reported separately, never as one combined number. A patient is not under both at the same time. On the CCT Performance page, "Visits per home session" shows one rate for Home Medical and one for IHH (each service's visits divided by that service's sessions held), with ASH sessions and visits on cards with no service said on their own lines; the demand card gives the budget and the visits needed per session for each service. In the question box, a count of sessions ("how many sessions next week", "sessions per doctor") is given per service, and "visits per session" for the whole team is one rate per service. One doctor's own rate is split the same way: on the Performance page's team table each doctor has one row per service (Home Medical visits in Home Medical sessions, IHH in IHH), each set against that service's own team range, and in the question box "visits per session by doctor" gives one row per doctor per service, with a middle value per service. T-340
- LiveTime to first visit leaves out patients referred before the visit history began, on the CCT Performance page and in the question box, until the older history is loaded. The visit history begins on the date of the oldest visit on record. Both screens say how many patients were left out ("2 referred before 29 Jun 26 left out"), because for them the first visit on record may not be the first visit. T-340, T-328
- Live"Changes and calls" panel on CCT Performance, for admins and the CCT Admin role only (the database refuses anyone else). Counts only: no patient, no name and no message text. Four parts: visit changes in the period by kind and by reason, and how many were allowed as a clinical exception; card changes by the reason given (a change made by the system, one made before reasons were asked for, and one whose reason is not on today's list are counted apart); change requests waiting now, by how long they have waited (under 1 day, 1 to 2 days, 3 to 7 days, over 7 days) and how many were escalated, with how many were raised and decided in the period and the middle time to decide; and calls (confirmation calls by outcome, and calls logged on a card, in and out, by what they were about). T-340, T-327
- LiveASH (All Saints Home) is counted in sessions. All Saints Home is a nursing home that buys home-medical consult time: SLH doctors see its residents on site, in half-day sessions with no patients listed in the session. On the CCT Performance page ASH has its own line, “ASH (All Saints Home)”: the ASH sessions held in the period (a doctor on the roster, the session over, the doctor not on leave), week by week, by calendar month (a month cut by the period, or still running, says so) and by doctor, alphabetical. Never a visits-per-session rate, because there are no patients in an ASH session to count. T-340 D4
- LiveDemand against capacity is judged over a window that grows with the history. “What the team did” (visits done and home sessions held a week, for each service) is counted over the last 4 weeks while the visit history (from the oldest visit on record) is under 12 weeks, then over the last 12 weeks; the switch happens on its own. The window counts back from today whatever period is chosen, never from before the week visits began. The demand card says which window it used and why, and, while it is 4 weeks, the day it will move to 12. T-340 D4
- LiveA doctor’s “Logged same day” needs 10 taps to show and 30 for a percentage. On the CCT Performance team table, a doctor’s share of visits tapped Completed or Missed on the visit’s own day shows once 10 of their visits carry a tap time, as “x of y” (under 10: “too few”), and as a percentage only from 30. These minimums are a starting point and will be revisited once there is baseline data. T-340 D4
- LiveManager view | Clinician view. A person who is both can switch which buttons the screen shows. The switch changes only the screen; the database applies the same rules in both views. T-316
- LiveOne view choice across the CCT pages. The same Manager | Clinician switch on the CCT Admin page, on the patient card (in Waypoint and inside the CCT Admin page) and in Waypoint, remembered once per person and followed at once by any page already open. The CCT Admin page opens in Manager view and Waypoint in Clinician view until the person picks. Only a person who is both a manager and a clinician sees the switch. A change request addressed to you (named or copied) shows Approve / Decline in either view. T-337
- LiveNew patients come in through one door. A new patient is added on the CCT Admin page with New patient (the wizard), never in Waypoint: Waypoint no longer offers “+ Add patient” when signed in, so every referral gets its first-visit window and its notice to a doctor. In the wizard only the Initials and the Postal code must be typed; the referral date (today unless changed), where it came from and the contact mobile are optional (a mobile that is given must be 8 digits). The service reads “IHH (Palliative)”, and the “First visit within” box is wide enough to read. T-381
- LiveA new referral reads “First visit by …” and Auto-fill places it in time. On the CCT Admin page a new patient’s card says “First visit by Thu 29 Oct” (urgent ones in the warning colour; “First visit overdue” once the window has passed) and is sorted on that date. Auto-fill treats the first-visit window as the patient’s due window and places the patient on a session inside it, the preferred doctor first; it no longer skips a new referral until the window has passed. T-381
- LiveManager view: a person who is also a clinician decides without switching. In Waypoint’s Manager view, a person who also holds the clinician role can approve or decline a visit-change request and set a patient’s limits without switching to Clinician view. A person who is only a manager still cannot: the buttons are not shown, and the database refuses anyway. T-381
2. Planning visits
The week
- LiveWeek planner. Drag a patient onto a session (each session has a named doctor). "Copy last week" starts from last week's plans; "Clear plans" empties this week's sessions (the roster itself is not changed). Each patient card shows the last visit (how many days ago, by which doctor) and marks a card already planned this week. T-249, T-251, T-252
- LiveThe session clock. Morning (AM) 08:30 – 12:30, afternoon (PM) 13:30 – 17:30, the same on every CCT page. A route opened from a PM session starts at 13:30. T-332
- LiveA session opened from My week is half a day. In Waypoint, opening one session (for example the morning) from My week shows only that session’s visits; a change made there never touches the doctor’s other half-day: the afternoon’s visits and their booked times stay as they were. Taking a visit off the open session takes it off the day. T-377
- LiveOpening Waypoint books nobody. Opening or reloading Waypoint never puts a patient on anyone’s Visit List: a visit is booked only when a person adds it. T-378
- LiveOne list: the CCT Admin page shows the doctor’s own Visit List too. Each Home Medical or IHH session on the CCT Admin page now shows, and counts, the visits on that doctor’s own Visit List for the day (the phone and Waypoint list, where every reschedule lands), marked Visit List. A visit goes in the morning session if its booked time is before 13:30, otherwise the afternoon; a visit with no time, or with no session in its half-day, goes in the doctor’s first session that day; a visit the roster already placed in a session stays there. The × and the time button of a Visit List visit change it on the doctor’s list (with a reason, as always). For now Optimise, Reverse, Clear session and Move session change only the patients the roster itself placed, and the page says so. T-376
- LiveOne list for each doctor’s day. A doctor has ONE list of visits for each day: the Visit List on the phone and in Waypoint. The CCT Admin page’s sessions show that list. A visit with a booked time goes in the morning session if the time is before 13:30, otherwise the afternoon; a visit with no time stays in the session it was booked into; with neither, it goes in the doctor’s first session that day. Everything done on the CCT Admin page — adding or removing a patient, Optimise, Reverse, Clear session, Move session, Auto-fill, Copy last week — changes the doctor’s own list, so the doctor sees it on the phone straight away. A phone or page that has not been updated yet, saving the doctor’s day, never removes a visit someone else booked after it last synced, and no out-of-date save brings back a visit that was cancelled or released meanwhile: only its own changes are saved. When two doctors swap sessions in one save, their patients swap too. When the hospital app moves to one list, every patient already booked on a session joins the doctor’s list in that session’s half (morning or afternoon), with no message sent. T-376 T-381
- LiveA session needs a doctor before patients go on it. A patient cannot be added to a session with no doctor; give the session a doctor first. T-376
- LiveChanging a session’s doctor moves its visits. The visits of that half-day move to the new doctor’s list. When a doctor is marked on medical leave and the session loses its doctor, the visits stay shown in that session (still on the sick doctor’s list) until a cover doctor is given; then they move to the cover doctor. Moving a session to the other half of the same day keeps its visits and notes the change in each patient’s log (“AM → PM”). T-376
- LiveTwo people changing the same day. A change made on the CCT Admin page or in Waypoint carries the list as it was when the person looked at it, and only what that person changed is applied. A visit someone else booked on that day in the meantime stays on the list; it is never taken off by a change made on an older copy. In Waypoint, with one session of the day open, a visit booked into the other half of the day stays in that half and does not join the open route. T-376
- LiveVisits not in any session are listed. A visit on a doctor’s list on a day when that doctor has no Home Medical or IHH session (for example, imported before the roster was made) is listed under the week on the CCT Admin page as “Not in a session”, with the day, the doctor, the patient and the booked time, and a button to the card. Give the doctor a session that day, or move the visit with Change visit…. T-376
- LiveA visit outside a session on a doctor’s leave day is flagged. In the “Not in a session” list under the week, a doctor who is on leave that day (all day, or the morning or afternoon) is marked “on leave …: move these visits”, and “Patients planned” counts these visits too. A visit cannot be added to a doctor’s list on a leave day from any screen or by an import: the database refuses it (T-346; checked again for an import on 28 Oct 26). T-381
- LiveNo visits on a public holiday or a weekend. A patient cannot be added to a doctor’s list on a public holiday, a Saturday or a Sunday, from any screen or by an import, as the roster has no session then; the refusal names the day (“… is a public holiday (Deepavali): no CCT visit is booked on it. Choose a working day.”). Taking a patient off such a day is always allowed. T-381
- LiveDates in dialogs read dd Mmm yy. Session details, Change doctor and Add slot show the day as “Tue 27 Oct 26”, as every other date on the CCT pages. T-381
- LiveRemoving a session, or resetting the week to the template, asks what happens to its booked visits. One question names the booked visits and offers both: Cancel them (each with a reason, the same check as cancelling one visit, all or none; the doctors are told) or Keep them on the doctor’s Visit List (nothing is cancelled; they show under the week as “Not in a session”, or in the doctor’s other session that day, until someone moves them). Nothing else is asked after it. A visit already past stays on the doctor’s list. A roster restore that removes and re-creates sessions cancels nothing: the visits stay on the doctors’ lists and show in the restored sessions. T-376 T-381
- LiveReset to template always asks first. Even when the week’s services already match the template, Reset names how many sessions and doctors it removes and waits for a yes; it no longer wipes the week’s doctors in one click. T-381
- LiveA public holiday shows a session that still has visits. A session saved on a public holiday whose doctor still has visits that day is shown on the holiday (“Public holiday · the doctor’s session still has N booked visits — move them”, with the patients to open), not hidden behind “— closed —”. Nothing can be added there; open the card and move the visit. T-381
- LiveChanging or clearing a session’s doctor: the reason comes chosen. When the session has booked visits, Clear doctor asks with “Session doctor cleared” already chosen and Change doctor with “Session doctor changed” (still changeable; “Other” needs a few words), so one click confirms. The checks come first: a doctor on leave that half-day is shown greyed as “On leave” (there is no override for leave), and a doctor already in another session that half-day is refused before any reason is asked. T-313 T-381
- LiveA CCT Admin can mark a CCT doctor on medical leave. “On medical leave” on a session is offered to full admins and CCT Admins. It files a 1-day MC as pending (for the usual approval), takes the doctor off that day’s CCT sessions (their visits are held for cover) and asks the doctor to apply: the “Medical leave — please apply” message comes from RosterEngine (the system), whoever marked it. A CCT Admin can do this only for a CCT doctor; anyone else is for an admin. T-381
- LiveA refusal says why. When the database refuses a session change because the doctor is on leave that half-day, or because an All Saints Home session has no patient list, the page shows its reason (for example “Dr X is on Annual leave that AM”) instead of “try again in a moment”. T-381
- LiveAuto-fill due places each overdue and due patient into a session with room (which session: the preferred doctor, then the shortest drive, below). It:
- never books a patient twice: anyone already booked in a later week (looked ahead 90 days) or on a doctor's Waypoint day plan is skipped and named in the message;
- leaves a session that has already started alone (AM after 08:30, PM after 13:30 today);
- says what it placed and what it skipped, for example "No IHH session this week";
- never picks a patient marked Admitted, On hold, Discharged or Deceased (dropping one on a session by hand asks first);
- if it cannot read the other weeks, it places nobody and says so.
- LiveFinding a patient. While you type a search, the "Match the selected session's service" box is ignored, so a patient is never hidden by a session you clicked earlier. T-332
- LiveAuto-fill also skips a patient with a "no date yet" visit that is due or upcoming. T-332, T-340
- LiveAuto-fill: the preferred doctor, then the shortest drive. Auto-fill chooses each patient's session this way (until 24 Oct 26 it was "the last doctor first"):
- The preferred doctor first. If the card names a preferred doctor and that doctor has a session with room on or before the patient's safe limit (the due date plus the days the visit may move later: the card's own limits, else the default for its review frequency, section 3), the patient goes with that doctor, without asking.
- Within 2 working days, no question. If the preferred doctor's first session is past the safe limit but at most 2 working days after another doctor's first session, the preferred doctor is still kept, without asking.
- Held for next week. If the preferred doctor has no session this week but has one later that is inside the safe limit (or within those 2 working days), the patient is held for that doctor: nothing is booked, and the message says for whom and when.
- Otherwise Auto-fill asks. The patient is listed under Auto-fill's message with the preferred doctor's first session and a suggested session with another doctor who can see them sooner. Nothing is booked for that patient until you press a button: Use the suggested doctor, Keep the preferred doctor and book late (past the safe limit, so only a clinician may choose it; anyone else uses Change visit… on the card, which sends the request), or Leave unplaced. Each answer is saved with its reason, who instead of whom and why, in the patient's log.
- No preferred doctor on the card: the patient's usual doctor (most visits in the last 180 days, at least 3) is preferred where the drive is about the same; never asked about.
- Shorter rounds, not even sessions. Among the sessions allowed, Auto-fill picks the one that adds the least driving to that doctor's round, trying the patient at every place in the round (the measured drive times on the cards, not a straight line). It keeps a session under 85% full where it can, but does not spread patients out to even the sessions: some sessions fill up, others stay light.
- It also counts days after the due date, a visit too early for the safe window, the card's own AM / PM and days, a session with no doctor, and each doctor's usual areas for that half-day (learned from completed visits and the doctors' own day plans, by postal sector only; a doctor needs at least 5 completed visits before it counts).
- It then puts each session it touched in the shortest driving order, and says for every patient why: the day, the doctor, "(preferred)" or "(usual doctor)", the stop number, the areas before and after, the minutes of driving it adds and how full the session is.
- It never uses a session whose doctor is on leave that half-day (the message lists them), never books a patient who already has a future booking, never adds to a session that has started, and never changes a patient card.
- LiveAuto-fill: four follow-ups and the request it raises itself. Auto-fill also does this:
- Pick another doctor…. Beside Use, Keep and Leave unplaced, a patient Auto-fill asks about has Pick another doctor…: a list of this week's sessions with room for that patient (any CCT doctor, the right service, not started, the doctor not on leave that half-day), each saying how full it is and whether it is past the safe limit. The same checks as the other answers apply: past the safe limit only a clinician books it; for anyone else Auto-fill sends a request (below), never a silent booking.
- The preferred doctor is told. When a patient is booked with someone other than the preferred doctor, Auto-fill also posts one short entry in the patient's comms log To the preferred doctor (it shows as NEW for them): "Your patient (initials and postal code) was booked with Dr (name) on (date, AM/PM) because (reason)". One entry per patient each time Auto-fill runs; none when the booking is with the preferred doctor.
- After the preferred doctor: the usual doctor, then the last visiting doctor. If the card names no preferred doctor (or the preferred doctor is not the one booked), the usual doctor counts for the patient; with no usual doctor, the doctor of the most recent completed visit counts instead. Neither is ever asked about. The message says "(usual doctor)" or "(last visiting doctor)".
- Leave is checked for every week a hold can reach. A patient is held for the preferred doctor only on a session whose doctor is not on leave that half-day, in any later week up to the patient's safe limit (half days count: the doctor is at work for the other half). If a week's leave cannot be read, nobody is held for a session that week, and the message says so.
- Keep, book late, by someone who is not a clinician, sends the request. Auto-fill books the patient on the suggested session and sends the request to move the visit to the preferred doctor's later session (the same request, routing and log entry as Change visit…). The message says the visit is waiting for the doctor's answer; nothing moves until a clinician decides. A clinician's Keep still books late straight away, as a clinical exception.
- LiveDrive times come from the app’s own route server. When a patient or a starting place is added, Waypoint and the phone measure the drive times to and from every other place on the list on the app’s own route server, reached only by a signed-in CCT member — no longer on the free public OSRM demo server abroad. What leaves the page: the postal code goes to OneMap (Singapore government) to find the block; the block’s map coordinates, with those of the other places on the list, go to the app’s own route server. Never a name, initials or unit number. The map’s route lines come from the same server. If it does not answer, the drive times are straight-line estimates and the page says so; nothing is sent to the public server instead. The phone apps installed from the App Store and Google Play keep using the public server until the next store build. T-351
- LiveEvery leg has its own drive time. When a route shows a leg whose patients have no drive times stored on their cards (a card from the HMS list or the New patient wizard), Waypoint and the phone ask the app’s own route server for that day’s stops in one go, show its times and distances, and keep them on that device. Until it answers, or if it cannot, each leg is a straight-line estimate and the page says so — never the same 10 minutes for every visit. Optimise waits for the measured times before it orders the visits (phone: store build seq 23). T-388
- LiveEach doctor's routes are recorded. For every doctor, day and half-day the app keeps the order of the areas visited (the first two digits of the postal codes, nothing about the patient): from completed visits in the order they were tapped, and from the doctor's own Waypoint day plan. Only CCT staff can read the summary; Auto-fill uses it to keep patients on a doctor's usual round. T-342
- LiveThe calendar: details on hover, time and order on the right. On the CCT Admin page, pointing at a visit in the week (or at its initials) shows what it is and why: the visit type (for example "Urgent / subacute review"), why it is planned (a provisional schedule agreed on a date, the review frequency and how due it is, or no visit on record yet), its place in the doctor's round and its time (the expected arrival, and the booked time if one was set). The time and the order are not printed on the calendar itself (it would be crowded): the session panel on the right lists each visit in order with its number, arrival time, booked time, type and why. The arrows that change the week sit beside the week's dates. In Waypoint, arrows beside the session's day move it to the previous or next working day (weekends and public holidays are stepped over). T-349
- LivePatients under each doctor. The week can list each session's patients (initials and postal code, in visit order) under the doctor's name: on a wide screen automatically, on any screen with "Show patients". T-308
- LiveNo session for a doctor who is on leave that half-day. A doctor cannot be put on a CCT session, given patients in one, or have a session dragged onto a morning or afternoon they are on leave. A full day of leave blocks both the morning and the afternoon; a morning off blocks only the morning; an afternoon off only the afternoon (on a leave of several days, a half-day mark on the first day is the morning off, on the last day the afternoon off). "On leave" is the leave the CCT week planner shows: approved leave, and medical, hospital or sick leave still waiting for approval; a "no on-call" or "no weekend" day is not leave. While you drag, a half-day the doctor is away is not a drop target and says why ("Dr X is on leave that morning (AM), 27 Oct 26 (Annual leave). Choose another doctor or another session."). The database refuses it on every path: the CCT Admin page, Solve CCT, pin or assign, moving a session, changing a visit's doctor, a doctor's day in Waypoint, and the phone. There is no override. A session that was planned before the leave was filed is never moved or deleted: it is marked "Doctor on leave — needs cover" on the CCT Admin page (and listed on CCT Performance) until someone covers it. Removing or re-ordering the patients already in such a session (or in that doctor’s day in Waypoint) is always allowed; only adding a new patient is refused (a bug fix: the database had refused a re-order or a removal there; fixed 24 Oct 26). Restoring an old roster snapshot is refused as a whole if any restored session would fall on a doctor's leave. Solve CCT reads leave the same way (a half day no longer takes the doctor's other half; a no-call day no longer takes the day). T-346
- LiveNo patients in an ASH (All Saints Home) session. An ASH session is a half-day at the nursing home with no patient list, so no patient can be planned into one: not by dragging a patient onto it, not by Auto-fill, not by “Pick another doctor…”, not by the “Back home” booking on the Admitted to Hospital list, and not by Change visit… or moving a whole session. A session that has patients cannot be changed into an ASH session. While you drag, an ASH session is not a drop target and says why: “ASH (All Saints Home) sessions have no patient list — choose a Home Medical or IHH session.” The database refuses it on every path, in the same words. Auto-fill looks only at Home Medical sessions for a Home Medical patient and IHH sessions for an IHH patient (before this, it treated an ASH session as fitting any patient). Patients planned into an ASH session before this rule are never moved or deleted: the session is marked “ASH — no patient list: move these patients” on the CCT Admin page until someone moves them (taking them out, or re-ordering them, is always allowed). Days before today are a record and are left alone. Waypoint’s day planner saves to the doctor’s day, not to a roster session, so it is not affected. T-340 D4
Words, dates and the look of the CCT pages
- Live"Visit length" is the one word for how long a visit takes: the CCT Admin page's stops say "visit length 30 min" and Waypoint's Session planner says "Visit length" (both said "consult" before). The phone app still says "Expected consult time" until the next store build. T-340 C9, T-330
- LiveWaypoint's week controls are on the right. In My week, "Show patients", the week arrows and Today sit on the right of the title, as on the CCT Admin page. T-340 C10, T-330
- LiveIHH is written "IHH (Palliative)" where its full name is shown (the service on a card, on Waypoint and on the phone); a short tag still says "IHH". T-340 C11, T-330
- LiveDates on a patient card and in the communication log read dd Mmm yy, with the weekday in front where the card shows it: "Tue 13 Oct 26", and "Fri 23 Oct 26 · 13:58" for a message. Waypoint and the phone app (the phone's store apps at the next store build). T-340 C12, T-330
- LiveOne look across the CCT pages: the same font pair (Fraunces for headings, Inter for text, JetBrains Mono for figures) and the same primary blue on the CCT Admin page, Waypoint and the phone's CCT screens. T-340 C13, T-330
Visit length and time
- LiveVisit length. Until 24 Oct 26 the card held one length that every visit used; now each visit has its own (next rule). T-321, T-324
- LiveA length per visit. A first visit is 60 minutes and a routine visit 30 minutes unless changed. Any visit can be 15, 30, 45, 60, 75 or 90 minutes. An odd length already on a card (say 35) is kept and shown as "custom". Every length change is logged. The phone uses each visit's own length too (the store apps need a new build). T-324, T-325
- LiveSet time. The time of a booked visit can be set on the same day and session. It needs a reason, is not counted as a reschedule, and is logged ("time set 10:30"). T-323
- LiveSet time asks a reason only for a confirmed visit. When the nurse’s call has confirmed the visit (or the visit is marked “Family confirmed”), Set time says the patient or family were told a time and may expect it, and asks why; any other visit’s time is saved at once and logged (old → new, “not asked: the visit was not confirmed”). The same on the card’s Edit of a planned visit. The database checks the call itself. As drags on the phone (T-361). Waypoint and the CCT Admin page. On the phone too (phone: store build seq 23): its Set time row shows a Reason box only for a confirmed visit. T-381
Visits with no date yet, and provisional schedules
- Live"No date yet." Plan a visit without a date by choosing one of five shortcuts: within this week, next week, back to the regular frequency, next month, in 3 months. Weeks are always Monday to Friday. The card shows its state: Due now, Planned, Met, Lapsed or Upcoming. T-286
- LiveGiving it a date closes it. When the visit is planned on a day inside that range ("Plan this visit" or Set time), the "no date yet" row is closed and the log says so. T-326, T-323
- LiveProvisional schedule at the end of a visit. The doctor records what was agreed with the patient: a date (and time), or "in N weeks / months". A date stays provisional until the manager or doctor puts it on a plan. The doctor can also make it the patient's regular review interval. T-299, T-296
- LiveThe review due date comes from, in order: an open provisional schedule or "no date yet" visit; else the last completed visit plus the review frequency; else the referral date plus the review frequency; else the booked day. T-309
New patients
- LiveAdding a card in Waypoint ("+ Add patient") is for admins and the CCT Admin role. Every card is shared with the whole CCT team on every device. T-245, T-284
- Live"New patient" on the CCT planning page. A manager makes the card (initials, postal code and unit only, plus contact and referral). Its safety limits read "awaiting clinician" until a clinician sets them. T-309
Admitted to hospital: the holding list
- LiveMarking a patient Admitted to hospital frees their visits. A patient is marked Admitted to hospital in any of three ways: the card's status, a call logged on the card as "Patient admitted to hospital", or a visit cancelled with that reason. Each time, a dialog first names every visit still booked ahead (day, time or AM / PM, doctor) and nothing changes until you confirm. Then: the card is marked Admitted to hospital (one entry in its log, with the reason); every visit ahead is cancelled with the reason "Patient admitted to hospital" (one entry each in the log, the doctors told, as for any cancellation); and the patient goes on the Admitted to Hospital list. The usual rules still apply to each visit: a patient whose limits say "no cancel" needs a clinician (a request is sent and the visit stays booked until it is decided), and a doctor without the CCT Admin role cannot release another doctor's visit of a patient who is not theirs (it stays booked and the dialog says so). T-349
- LiveThe call-again date. Every patient on the list has a date to call again: 2 weeks from the day they were marked unless changed in the dialog or on the list (any day from today to 180 days ahead). Logging a call on the card (anything but "No answer" or "Wrong number") while the patient is still in hospital moves it to 2 weeks after that call, unless a later date was already set. The patient card shows the date, read only. T-349
- LiveThe Admitted to Hospital page. A sub-tab of the CCT Admin page, beside Roster and Performance, with the number of patients on it. One row per patient: initials and postal code, service, doctor, admitted since (the day it was marked in the app; the hospital admission date itself is not known to the app), the last call (date, outcome, by whom) and the call-again date. Sorted ready for next call by default: patients back home first, then the call-again date, overdue first, then the soonest; it can also be sorted by admitted since, patient or doctor. From a row: open the card, log a call (the card's own Log a call), change the call-again date, release visits still booked, or mark the patient back home. T-349
- LiveBack home. "Back home" puts the card back to Active (one entry in its log) and suggests a visit in the next 2 weeks near the visits already booked: Auto-fill's own choice (the preferred doctor first, then the session that adds the least driving to a doctor's round, the card's safe limits and AM / PM in the score), never a session that has already started and never one whose doctor is on leave that half-day. You can book the suggestion, choose any other session on the Roster, or plan any date and time on the card. The patient stays on the list, marked "Back home — to book", until a visit is booked (or done) on or after the day they came home. T-349
- LiveEvery way of setting the status keeps the list right. A card marked Admitted to hospital anywhere (the phone included) is on the list; a card set back to Active becomes "Back home — to book"; a card set to On hold, Discharged or Deceased, or archived, leaves the list. Only the three ways above, on the CCT Admin page and in Waypoint, release the visits ahead after the dialog; on the phone the status alone changes (its visits are released from the list's "Release…" button) until the next store build. Auto-fill never books a patient marked Admitted to hospital. T-349
- LiveDeceased or Discharged releases every booked visit. Marking a patient Deceased or Discharged (on the card in Waypoint, or on the card opened from the CCT Admin page) opens one dialog that names every visit still booked ahead, whichever doctor holds it. Nothing changes until it is confirmed. Then every one of those visits is released (cancelled with the reason "Patient deceased" or "Discharged from CCT care", one entry each in the patient’s log); a death or a discharge does not wait for the patient’s limits or for the doctor who holds the visit. An open visit with no date is closed. The preferred doctor gets one New entry, and every doctor who held one of those visits is copied. Any other way the status is set (an older phone, for example) releases the visits too. On the phone the card’s Status opens the same sheet, naming the same visits (phone: store build seq 23); the Visit List and the Patients list show a card’s status when it is not Active. T-381
- LiveDeceased: the reason is Death; date and cause are optional. The patient comes off the list as a discharge with the reason "Death"; no typed words are needed. The dialog offers the date of death and the cause of death; neither is required. Discharged still needs a few words saying why. On the phone too (phone: store build seq 23). T-381
- LiveAdmitted to hospital on the phone (store build seq 23) frees visits as Waypoint does. Setting a card’s Status to Admitted to hospital on the phone opens one sheet: the booked visits this person may release are named and released (each “Patient admitted to hospital”), any that need a clinician are named (a request each, still booked until decided), and another doctor’s visits are named as kept; a call-again date (2 weeks unless changed); the patient goes on the Admitted to Hospital list. A database without this step: the status is saved as before. T-381
- LiveOn hold needs a reason and a date to reactivate. Putting a patient On hold asks why (Overseas travel, Patient or family asked for a break, Staying elsewhere for now, or Other with a few words) and a reactivation date (30 days ahead unless changed; up to a year). The visits booked before that date are released; visits on or after it stay. The patient is listed on the Admitted to Hospital page as On hold; on the reactivation date the card switches back to Active by itself (a daily job at 00:10, watched like every scheduled job), with one log entry “On hold ended — reactivation date reached”, and the Admitted to Hospital page lists the patient as “On hold ended — call to book” until a visit is booked. "Resume and book" sets the card Active earlier and suggests a visit, as Back home does. On the phone the card’s Status → On hold asks the same reason and date and names the visits released and kept; Status → Active resumes it (phone: store build seq 23). T-381
- LiveWho puts a patient On hold, and who brings them back. Only the CCT Admin or the patient’s own doctor (the card’s Preferred doctor) can put a patient On hold, change the hold’s date or reason, or set an On hold patient Active again — the same people as for Deceased or Discharged. Another CCT doctor still sees the card and can change its other details. In Waypoint the card’s Status does not offer On hold (or Active, for an On hold patient) to anyone else, and “Resume, then book” says who resumes; on the phone, Save says so (phone: store build seq 23); the database refuses anyone else on every screen, an older phone included. The daily job that ends a hold on its reactivation date is not affected. T-385
- LiveA patient who is not Active is not booked. A Deceased patient is never booked (the database refuses it from any screen or import). A Discharged, Admitted or On hold patient is not booked either: the screen offers the way back in one tap (Discharged: the CCT Admin sets the card Active again, a re-referral; Admitted: Back home; On hold: Resume), then books. This replaces "Add anyway" on the CCT Admin page and on Waypoint, and Waypoint’s Plan a visit now asks too. On the phone, Not at home does not open Change visit for a Deceased or Discharged patient, and says why; an Admitted or On hold patient’s kept visit can still be moved (phone: store build seq 23). T-381
Deceased, Discharged and On hold
3. Changing a visit
Every change (move, cancel, change of doctor) goes through one checked dialog that asks for a reason and shows which days are safe.
- LiveThe safe window. A visit may move from (due date − "earlier" days) to (due date + "later" days). In the date picker safe days are green with a ✓, unsafe days red with a ✗. Weekends and public holidays are not offered. T-311
- LiveDefault limits by review frequency. These are placeholders, waiting for the clinical team to confirm them. Read from the test database on 24 Oct 26 (none confirmed yet):
Only a clinician can change these defaults. T-309, T-312Review frequency Later (days) Earlier (days) Reschedules in 90 days First visit 2 0 1 Urgent 2 0 1 Weekly 3 2 2 Monthly 7 7 2 Quarterly 14 14 3 - LiveLimits for one patient are set by a clinician on the card (Visit preferences › Safe changes): later and earlier 0 – 60 days, 0 – 20 reschedules, an optional note, and "no cancel" (cancelling this patient always needs a clinician). Managers can read them but not change them. T-309, T-311
- LiveThe reschedule cap. Once a patient has had the allowed number of reschedules in the last 90 days, the next one needs a clinician. T-311
- LiveA cancel, then a new booking, counts as a reschedule. Booking a patient whose visit was cancelled in the last 14 days counts as one reschedule toward the cap (logged “Booked again after a cancel”). At the cap a clinician may book it (marked as an exception). When anyone else books it at the cap, it becomes a request to a clinician: the patient is not booked, the screen says so (“Not booked: sent to … to decide”), and the request carries the day, the doctor and the time asked for. It goes to the doctor of that visit (then the usual doctor, the CCT lead, the escalation backup, as every request), and shows in the requests waiting for a clinician. Approve books it, with the time asked for, as the clinician’s exception (the day’s checks still apply: leave, a holiday or weekend, the patient’s status); Decline leaves it unbooked and tells the person who asked. A second try while one is waiting makes no second request. A clinician who books the patient meanwhile closes the request (the person who asked is told). An older phone or page that does not ask for a request is still refused, in the database’s words. There is no safe-window check on the new booking. Moving a visit, and cancels for Deceased, Discharged, On hold, Admitted or Replaced, do not count this way. Every screen, the phone included, because the database does it. T-381
- LiveWhat needs a doctor and what does not.
- Inside the safe window, under the cap: done at once by a manager or a clinician.
- Outside the window, over the cap, or cancelling a "no cancel" patient: needs a clinician.
- A change of doctor never needs a clinician (a reason is still asked).
- LiveA manager's change that needs a clinician becomes a request. Nothing moves. The screen says who it was sent to ("Sent to Dr X. Nothing has changed yet."). Who it goes to is the next rule. T-311, T-312, T-338
- LiveOnly clinicians approve or decline — and the person a request was escalated to. A clinician approves (as a clinical exception) or declines; both are one tap and a few words are optional — an approval with no words is recorded with the reason "Approved" (T-350). When a request was escalated (next rule) to Dr Roland or Dr Kevin Awyong, that person may approve or decline THAT request even if not set up as a CCT clinician — no other request. The manager sees the answer, the doctor's name and reason under "Answered by a doctor". T-311, T-338
- LiveOnly clinicians override. A clinician who makes an out-of-limit change sees a warning, gives a reason and clicks to confirm; it is applied at once and flagged as a clinical exception. A non-clinician can never override. T-311, T-338
- LiveAn overdue visit may move EARLIER without a doctor. Anyone with the CCT Admin role may move an overdue visit to an earlier date (closer to its due date) without asking a doctor. The reschedule cap and "no cancel" still need a clinician. Operations staff still cannot change visits. The log says it was allowed without a clinician, and these days show green in the date picker. T-336
- LiveWho a request goes to, and leave escalation. For a request from a non-clinician:
- first the doctor of the visit, else the patient's usual doctor (from the card); the usual doctor is copied;
- if that doctor is on leave today or on the day of the visit (or no CCT doctor is named), it goes to Dr Roland (the CCT lead), and the original doctor is copied so they see it on their return;
- if Dr Roland is on leave too, it goes to Dr Kevin Awyong (the escalation backup);
- if everyone in that chain is on leave, it still goes to Dr Roland, and the entry says nobody was available;
- "on leave" is the leave the CCT week planner shows (approved leave, and a pending MC / hospital / sick leave); a half day does not count (the doctor is at work for the other half); "no on-call" and "no weekend" days are not leave;
- the request in the log and the Change dialog say who it goes to and why ("Dr X is on leave until 30 Oct 26 — this will go to Dr Roland, the CCT lead.").
- LiveYour own visits only. A doctor without the CCT Admin role moves, re-assigns, cancels or times only a visit on their own day or session, or a visit of their own patient; a whole session only when it is theirs. A visit of another doctor’s patient on another doctor’s day shows "Another doctor’s visit: the CCT Admin or that doctor changes it." T-341
- LiveMoving a whole session. "Move session…" (or dragging a session to another day / AM-PM) moves every patient in it as a group. A preview shows each patient's verdict (inside the limits, needs a doctor, cannot move, and why). You can choose "all or nothing". Each patient is checked, logged and their doctors told. T-314
- LiveA reason is always captured where a person acts. Dragging a booked patient to another day asks (Move / Add another / Do nothing) and a move asks for a reason. A first booking asks nothing. Editing a card asks for a reason (section 1, T-343; this sentence said “optional” until 25 Oct 26). T-311, T-313, T-343
- LiveMore than one visit booked by hand. A patient may have more than one visit booked, for example an ad hoc review today and the routine review 2 months later. When a visit is booked by hand (dragging a patient onto a session on the CCT Admin page, the Session planner in Waypoint, "Plan a visit" on the card) and the patient already has a later visit, the app asks first: keep both (book this visit as well), or bring the later visit forward to this day instead (the checked Move dialog opens on that visit with the day filled in: the safe limits and a reason apply). On the CCT Admin page an earlier visit is offered as "Move" in the same question. Auto-fill keeps its own rule: it never books a patient who already has a future booking. The database itself has no one-visit rule; before T-349 the question was skipped on a week still from the CCT Set Up template, and Waypoint and the card never asked. T-349
- LiveAny future appointment is named, with three answers. Booking a patient by hand (CCT Admin page, Waypoint’s Session planner, the card’s Plan a visit) who already has a LATER visit booked — however far ahead (before, only the next 62 days were looked at on the CCT Admin page) — names every later visit and offers exactly: Cancel the future appointment — with more than one, Cancel the future appointments (N) — (this visit is booked first, then ALL the later visits are cancelled together, each “Replaced by another visit”, no typing; every cancel is checked first and if one would be refused or needs a clinician (the patient’s limits), none is cancelled, everything stays, and the page says which visit and why; a booking that went to a clinician as a request is not a booking, so nothing is cancelled), Cancel this booking (keep the future appointment), or Keep all appointments. This replaces Keep both / Bring forward / Do nothing. On the CCT Admin page a visit on the same day or before is still offered as Move (a reason and the limits, as before). On the phone, Change visit (after Not at home) asks the same when the new day is before another booked visit; Enter means Keep all appointments (phone: store build seq 23). T-381
- Live"Change visit…" from the card. A visit held by a roster session has "Change visit…" on the card's Visits row, and the card line on the CCT Admin page says the next visit ("Next: Tue 3 Nov AM · Roland — Change…"). Both open the same checked dialog for THAT visit, in any week (move or cancel; the limits, the reason, requests and notices are unchanged). The dialog has a time of day on the new day ("2pm", "2.30 pm", "14:30"), so "Thursday 2 pm" is one change; a time outside the session (AM 08:30–12:30, PM 13:30–17:30) is said, not refused (the doctor must agree). A visit that only a roster session holds keeps that time on the new day (a day-plan stop holds it). Set time also takes "2pm" and warns outside the session; a stop whose route arrives more than 30 minutes before the booked time says so. T-333
- LiveVisit outcome on the phone. On the phone's Route, a stop's button is "Visit outcome…" with three choices. Completed: as before (the visit is recorded and the end-of-visit sheet asks about the next visit). Not at home: the visit is recorded as not done ("Missed · Not at home", for the next doctor to read) and the phone goes straight to Change visit: pick the next day (and a time if agreed); the database checks it before anything is saved, with the same safe limits, the leave block and the request to the doctor as everywhere else. Running late: one entry in the patient's log for the CCT Admin team, with the expected time. Telling the family or the next patient from the phone is planned, not built. T-350
- Live“Route” is now “Visit List” on the phone, and a visit has four outcomes. The tab reads Visit List; Stats sits at the bottom of it instead of being its own tab. Each stop’s ▲▼× row is gone: the order is changed by dragging the ≡ handle only, and a visit comes off the day through Visit outcome → Cancel (the fourth choice, with a reason: T-368). Reverse and Clear session are gone from the phone. T-354, T-363
- LiveDragging a visit on the phone. On Today’s visits and the Visit List, hold the ≡ handle, drag, and let go: the visit follows the finger, a line shows where it will land, and it moves the moment it is released; the change is written to the patient’s communication log (the moved visit’s new time, with the reason “Other” for a plain drag). If the database refuses it, the visit goes back and the phone says why. A visit the nurse’s call has confirmed warns first (“may not be home at the new time”) and asks why from the time-change reasons before “Reorder anyway”; its log entry says “visit was confirmed, but rescheduled by user”. T-355, T-357, T-361
- LiveOptimise works around confirmed visits. A visit the nurse’s call has confirmed keeps its booked time; Optimise re-orders only the other visits, around it (the day waits for a confirmed visit if it would arrive early). When there are confirmed visits, pressing Optimise first says which ones keep their time (“Confirmed visits keep their booked time: TSK 10:00”) with Proceed / Cancel. If the confirmed visits cannot all be kept (two too close for the drive between them), nothing is changed and the message says which clash and by how much. Optimise also runs on its own when a visit comes off the day (cancelled, or moved to another day), and says “Visits optimised”; the doctor may still drag visits afterwards. A visit whose time moves by 15 minutes or more gets one entry in its communication log; smaller shifts are not logged. Live on the phone’s Visit List and Waypoint’s Session planner (where adding a visit also re-optimises). Not yet on the CCT Admin page, which orders roster sessions rather than the doctor’s day plan — that is an open decision for Kevin. T-362
- LiveOptimise runs at once. No Proceed / Cancel question any more: Optimise (and Reverse) run straight away and the message says which confirmed visits kept their booked times (“1 confirmed visit kept its booked time (TSK 10:00)”). The rule that confirmed visits keep their time stays. Waypoint and the CCT Admin page. On the phone too (phone: store build seq 23). T-381
- LiveThe phone: the morning and the afternoon are two routes. The Visit List shows a Morning (AM) route and an Afternoon (PM) route, each from its own start (the morning from the start chosen on the session card, 08:30 unless changed; the afternoon from 13:30) and back to its end place. A visit’s half-day is the one-list rule: its booked time (before 13:30 = morning), else the session it was booked into, else the session chosen on the session card; a visit with no time says AM or PM. Optimise, a drag and the times that follow them stay inside each half: an afternoon visit is never given a morning time (the database refuses that too). Phone: store build seq 23. T-381
- LiveThe phone records a visit under the signed-in doctor. The session card’s Clinician box is fixed to the doctor signed in on the phone, as on Waypoint; Completed, Not at home and a logged visit are recorded under that name. Before, the box could be changed and a visit was recorded under another doctor’s name. Phone: store build seq 23. T-381
- LiveThe phone changes a day by the difference. When the phone changes a doctor’s day (a drag on the Visit List), it says what it saw, so the database applies only the difference and keeps a visit someone else booked meanwhile, as Waypoint and the CCT Admin page already do. Phone: store build seq 23; the apps already in the stores still replace the day. T-376, T-381
- LiveDragging a visit on the phone (store build seq 23) asks why only if it is confirmed. As Set time: moving a visit the nurse’s call has confirmed asks why; moving any other visit asks nothing and is logged “not asked: the visit was not confirmed” (it used to be logged as “Other”). T-381
- LiveBooked times follow the day. After a visit is dragged or the day is optimised, the booked time of every visit that is not confirmed becomes its new expected time (logged only when it moves 15 minutes or more). A confirmed visit keeps the time agreed with the patient. T-364
- LiveCancelling a visit on the phone needs a reason. Visit outcome → Cancel asks why (Patient declined, admitted to hospital, deceased, moved out of area, duplicate booking, clinical decision, Other with a few words) and goes through the same checked change as Waypoint: the safe limits, one entry in the patient’s log, and a request to a clinician when the limits say cancelling needs one. T-368
- LiveSet time and length on the phone. A Route stop can set the time ("2pm", "2.30 pm" or "14:30") and the length (15 to 90 minutes) of that one visit, with a reason, as on Waypoint; a time outside the AM (08:30–12:30) and PM (13:30–17:30) sessions is said, not refused. The route's session card has AM 08:30 and PM 13:30, the same session clock as the other CCT pages. The patient card on the phone has the same fields as Waypoint (status, housing, a second contact, preferred doctor, days and time, the window the family can receive us), with the same rules: any CCT doctor may change it and is asked why; only the CCT Admin sets the preferred doctor; only the CCT Admin or the patient's own doctor takes a patient off a list. T-350
- LiveNavigate from the phone. On the phone's Route, each stop not yet done has Navigate: choose Waze, Google Maps or Apple Maps (Apple Maps on an iPhone only) and the app starts directions to that stop. "Navigate the rest of the day" sends the stops not yet done, in route order from the next visit, to Google Maps or Apple Maps (Waze takes only one place at a time); a day of more than 10 stops is split into parts of 10 (stops 1–10, 11–20, …) — open the next part when you reach the end of one. Only the postal code leaves the phone, as the word Singapore and the six digits: never the patient's name, initials, unit number or any label. Once sent, the trip is kept by that app under the doctor's own account (Google and Waze keep trip history; Apple says it does not tie it to the account). Each doctor's app is remembered on that phone and offered first; tap another to change it (no account setting). The iOS and Android apps offer only the navigation apps installed on the phone, from the next store build; the web phone page (/m) offers them all. Whether each app finds the right building from a postal code alone has not yet been tried on a real phone. T-350 #4
4. The communication log
- LiveEntries. Each patient card has Internal communications: date and time, author, message. Entries cannot be edited or deleted. A reply makes a thread, at most 4 levels deep. Each message shows From, To, CC, date and time, the message, and pills for why you see it. T-279, T-283, T-287, T-288
- LiveTo and CC. Send to "any doctor", to a named doctor, or to a role (Nurse, Therapist, MSW, Admin, Operations). Copy (CC) up to 8 team members by name and / or roles. Roles other than doctors are labels until those staff have logins. T-282
- LiveAll roles can post to the communication log. Anyone on the CCT team may write in it, whatever their role (Doctor, Nurse, Therapist, MSW, Admin or Operations); someone not on the CCT team is refused. The roles are one list kept in the database, and the To, CC and filter lists in Waypoint are read from it. Home Nursing and Home Therapy are already on the list, switched off: switching one on (with Kevin's word) makes it appear in To, CC and the filter with no change to the apps. A role that is switched off cannot be written to or copied. Note: once switched on, a Home Nursing or Home Therapy member counts as clinical for the change rules, because the rule is "every role except Admin and Operations". T-340, T-279
- LiveUrgent. An entry can carry a red Urgent flag. An urgent entry addressed To a named doctor is also pushed to that doctor’s phone (see Urgent push). T-279, T-284, T-335
- LiveNEW and "seen on". Each entry is NEW for a doctor until that doctor has seen it, even if others have; then it reads "seen on dd/mm/yy". Filters: New, Direct to Me, My Patients (I am the usual doctor), My List (seen by you in the last 30 days or planned with you in the next 30). A patient is in one of the two lists, not both. T-285
- Live"My Patients" means the same everywhere. In the communication log (Waypoint and the phone: the My Patients and My List filters, what counts as NEW and the receipts) a patient is yours when you are the preferred doctor, or the usual doctor (most completed visits in the last 180 days, at least 3, no tie), or the next planned visit is with you — the same meaning as the question box. My List stays: seen by you in the last 30 days or planned with you in the next 30, and not already in My Patients. T-340
- LiveMy Patients shows every message about your patients. In Waypoint and on the phone, the My Patients filter now lists every message about your patients, whoever it was sent to (for example a nurse writing to the CCT Admin about your patient). One you have not read is marked NEW there, from the last 30 days. The New filter and the red count on Messages are unchanged: they still count only what is meant for you (To you, a copy to you, or to your role). T-359
- LiveCommunications Log on Home. On the Home page (the phone app and the desktop RosterEngine) a “Communications Log” section appears just above “Your upcoming” when something is new. It shows counts only: “N new messages to you” — new messages addressed to you by name (not a copy to you, not a message to your role) — and, for a CCT doctor, “N new messages about your patients” — unread messages about your patients, whoever they were sent to, from the last 30 days. Both count messages a person wrote; the automatic entries (such as “Visit booked”) are not counted, as Messages hides them by default. An urgent one is counted in red. Tapping a line opens Messages on Direct to me / My patients (on the desktop, Waypoint’s Communications). Reading the message (Mark read) takes it off the count. The “about your patients” line has a switch in the phone app’s Settings → Notifications (“New messages about my patients”): on by default, saved to your account so it applies on the desktop too. The section is not a push notification. T-359
- LiveSystem entries. The app writes short system entries for changes, requests, calls and limits. They are dashed and grey, and "Hide system entries" hides them (remembered). Requests waiting for you are pinned at the top with a "N requests waiting, jump to it" strip. T-311, T-312
- LiveEvery doctor involved is told. When a visit moves or changes doctor, the doctor it leaves, the doctor who receives it and the usual doctor all get a notice; the manager gets the doctor's answer. Any change to a card or a visit leaves an entry saying who did it (a named person, or "system"). T-312, T-313
- LiveRead receipts. A doctor presses Acknowledge on a system entry; the log records "Log read receipt by Dr X on dd Mmm yy, hh:mm". To disagree, the doctor starts a new thread with the manager ("Disagree – start a thread"). T-312
- LiveEvery decision point is logged. Each request (with where it went and why), approval, decline, clinical exception, earlier move of an overdue visit, move, cancel, time or length change, change of doctor, limit change and Auto-fill booking writes exactly one clear entry: who, when, what, why. Move session writes one entry per patient and ONE notice for the doctors (To one, the others copied); a session’s doctor, half-day or day changed through the session itself (Change doctor, On medical leave, Solve, the grid) writes one notice per patient. A request that is overtaken (its visit moved, re-assigned or cancelled by someone else) is closed, and that change's own entry says so and copies the person who asked. T-338
- LiveThe communication log on the phone. The iOS and Android apps have a Messages view (its button shows how many entries are NEW for you, red when one is urgent) with the same filters as Waypoint (New, Direct to me, My patients, My list, All) and "Hide system entries". Each message is one card: Urgent / New / Seen pills, the date and time (dd Mmm yy · HH:MM), the patient's initials (tap them to open the patient's card on its Log tab), From, To and CC. A patient card has Details and Log; the Log is newest first and says who has seen each entry. You can reply, write a new message (To one person or role, CC others, Urgent), mark an entry read, and Acknowledge a system entry sent to you. The phone uses the same database calls as Waypoint, so both show the same thing. It needs a connection; the phones get it with the next store build. T-334, T-350
- LiveOn the phone, a request is never hidden. When system entries are hidden (the default), the phone’s Messages still shows every open Approve / Decline request addressed to you, pinned at the top; the other system entries stay hidden. Waypoint is unchanged: with system entries hidden its log leaves requests out and the banner “N requests waiting · Jump to it” leads to them. T-365
- LiveApprove or decline a request from the message. A request for you (a visit change past the safe limit, T-338) shows in the log with two buttons. Decline is one tap and Approve is one tap: no reason is asked for either, and a few words are optional. An approval with no words is recorded with the reason "Approved" (it is still a clinical exception, flagged in the log). The decision goes back to the sender and into the log exactly as it does from Waypoint, which has the same two buttons on its request; who decides and where a request goes (T-338) do not change. T-350, T-338
- LiveUrgent push. An Urgent entry addressed To a named doctor is also sent to that doctor's phone as a notification, through the same notification service the app already uses; tapping it opens the message. A request that needs the doctor's decision is sent the same way. The notification says only who it is from, never the patient or the message (it passes through Apple / Google). It reaches only doctors with the app and notifications on; urgent ones also come in the quiet hours. An entry to "any doctor" or a role is not pushed. T-335
- LiveOnly “admitted” and “a concern” calls reach the doctor’s phone. A logged call whose outcome is “Patient admitted to hospital” or “A concern” is urgent and pushed to the doctor’s phone, at any hour. “Wrong number”, “wants to reschedule” and “wants to cancel” are still flagged and NEW in Messages, but are not pushed. T-381
- LiveEvery “new” number counts what its list shows. With “Hide system entries” on, Waypoint’s Communications count and each card’s count leave the system entries out, exactly as the list does; switching it changes the counts at once, and the count no longer jumps between two numbers. With it off, everything NEW is counted, as before. The phone does the same: its Messages count and a card’s Log count leave hidden system entries out (an open request is still counted, as Messages still lists it) (phone: store build seq 23). T-381
- LiveA cleared doctor is written in words. When a visit’s doctor is cleared (for example On medical leave) and the visit waits for cover, its entry reads “Dr X → no doctor yet (awaiting cover)”, not “Dr X → ?”. T-381
- Live“Seen on” reads dd Mmm yy; Waypoint fits a phone. In Waypoint an entry you have read says “seen on 20 Oct 26” (it said 20/10/26), as the phone does. On a phone-width window Waypoint’s tabs wrap onto two lines, so the Communications count and “N requests” are always in view; “My week” no longer carries a NEW badge. T-381
5. Calls
- LiveNo confirmation call for a Deceased or Discharged patient. "☎ Calls" never lists a patient marked Deceased or Discharged, so no family is rung to confirm a visit that will not happen. T-381
- LiveConfirmation calls. Before a doctor goes out, a manager rings the patient, usually 1 – 2 working days before (the call window is a setting of 1 – 5 days; it is 2 today). "☎ Calls" lists who to ring, tomorrow first. T-310, T-312
- LiveLogging the call. Outcomes: Confirmed, No answer, Wants to reschedule, Wants to cancel, Wrong number; and who you spoke to. "Wants to reschedule" opens the Change dialog on that visit. Doctors see the result on each stop in My week (green = confirmed, ⚠ = visit soon and not confirmed, red = wants a change). T-310
- Live"Log a call" on the card for any call, in or out (including calls the patient or family make to us): the outcome (information given, visit confirmed, wants to reschedule, wants to cancel, admitted to hospital, a concern for the doctor, no answer, wrong number, other), who called or answered, a note. It writes one row and one system entry in the card's log, to the doctor of the next visit (else the usual doctor), the usual doctor copied; "wants to reschedule / cancel", "admitted", "a concern" and "wrong number" are flagged. After "wants to reschedule / cancel" the card offers the checked dialog for the next visit (one click; nothing is changed for you). Admins, the CCT Admin and CCT clinicians may log a call; every CCT person can read them. T-333
6. The question box
- LiveAsk the patient cards in plain words, typed or by voice (for example "patients not seen for more than 2 months"). The cards sort and filter to the answer. T-318
- LiveRule-based, no AI model at answer time. The box follows written rules. When it does not understand a word it says which word and offers what it can do; it does not guess. A small AI model was tested and not used. T-318, T-329
- LiveIt sees what the app sees. It can answer from the cards, visits, sessions, the change log, requests and the communication logs, reading only what your own sign-in can already read. Message and reason text is never sent to an AI model. T-331
- Live"Urgency" means how overdue the review is: most overdue first, then weekly before monthly before quarterly. Such an answer is marked "check this". T-321
- LivePer-doctor figures stay open to everyone who can use the box (a team of 3 doctors). Revisit if the team grows. T-328
- LiveMove, cancel or time ONE visit by typing or voice ("move ZTL's visit from Tue 3 Nov to Thu 5 Nov 2pm", "cancel ZAH's visit on Friday, admitted") opens the checked Change dialog (or Set time) filled in, with "From your words: …". Nothing changes until you click, and every check, limit, reason and request applies as usual. When anything is unclear it asks with buttons, it never guesses: two patients with the same initials, two upcoming visits, a weekday that could be this week or the visit's week, a weekend or public holiday, no session that day, two sessions that day. A reason is filled only when the words clearly say one from the list (never "Other"). Only people who may change visits get it ("You cannot change visits" otherwise). By voice, initials and postal codes are taken only when the speech runs on this computer (as before); "this visit" means the card in front of you. Changes of many visits at once ("cancel all…") are refused as before. The sentence is never sent to an AI model, and the question log keeps it with patient details hidden. T-333
- LivePlaces: areas, districts and landmarks. The box understands Singapore places, typed or by voice: planning areas and neighbourhoods ("in Toa Payoh", "West Coast", "Katong"), the regions ("east side", "the north", "north east"), postal districts ("district 20", "D15"), everyday names ("AMK", "CBD", "Jurong" = Jurong East and West), and landmarks: near an MRT or LRT station, a hawker centre or a polyclinic means within 800 m (about a 10-minute walk) of it ("near Bishan MRT", "around Tampines interchange"). A card is placed from its own postal code, planning area and map pin, on your screen; nothing about a patient is sent anywhere (the place list is public data, kept in the app). Overlaps are normal: one card is in its region, area, district and near several stations at once. When a word could mean two things ("near Bishan": the area or the station) the box asks; it never guesses. Cards it cannot place (no map pin for "near") are left out and the answer says how many. T-347
- Live"My patients" (also "mine", "for me", "assigned to me") means the patients where I am the usual doctor OR the preferred doctor OR the doctor of the next planned visit, and the chips say so. A young service has few usual doctors (that needs 3 visits in 180 days), so the usual doctor alone left the list nearly empty. Another doctor's patients ("Dr Lim's patients") still means the usual doctor, marked as assumed. Since Kevin's "A" (24 Oct 26) the SAME meaning is used everywhere: the Communications filters (My Patients; My List = seen in the last 30 days or planned in the next 30, and not My Patients) and Waypoint's "My patients" button in the planner's patient list, which asks the database rather than working it out itself. T-340 B5, T-327
- DEV onlyWeekly review. Every Monday at 09:00 the questions the box could not answer are reviewed and rule fixes proposed. Fixes are built only after Kevin agrees. The question log hides patient details and never stores answers. The hospital app keeps no question log yet (switched off there), so the review reads the test site's questions only. T-322, T-320
7. Decision log
Every decision that shaped the CCT rules, newest last within each day. Kevin's words are quoted as written. "not recorded" means the source does not hold his exact words.
| Date | Kevin's words | What was built | T-number | Status |
|---|---|---|---|---|
| 14 Oct 26 | Create a new admin role 'CCT Admin' and enable Dr Roland for this role … Only these 2 screens please. | The CCT Admin role: the CCT planning page and CCT Set Up as an admin, nothing else. | T-242 | Live PRD 14 Oct 26 |
| 14 Oct 26 | There should not be a need to export or import them.· One CCT list, shared by the team | Patient cards live in the database: one list for the team on every device. | T-245 | Live PRD 14 Oct 26 |
| 14 Oct 26 | allow a CCT Manager (Dr Roland) to … Plan home care sessions across the week | The week planner: drag patients onto sessions, session details and costs, history. | T-249 | Live PRD 14 Oct 26 |
| 14 Oct 26 | adjust the Med Admin modal to have the 'CCT Admin' sub-category | Admins give or remove the CCT Admin role on the Med Admin page. | T-250 | Live PRD 14 Oct 26 |
| 14 Oct 26 | Move the Week Planner to the top row, rename it CCT Roster and remove the old CCT Roster. For non-admin users (regular doctors) show only the calendar. | The planner became the CCT Roster tab; regular doctors see the calendar only. | T-251 | Live PRD 14 Oct 26 |
| 14 Oct 26 | just show the last visit - how many days ago and by which Doctor | Cards show the last visit and mark a card already planned this week. | T-252 | Live PRD 14 Oct 26 |
| 15 Oct 26 | Agree Roland and the Admins only· No grace | CCT Performance: per-doctor rows for Dr Roland and admins only; overdue = last visit + interval. | T-255 | Live PRD 20 Oct 26 |
| 19 Oct 26 | a large modal … tabbed notebook interface· OK good, build this into DEV please | The tabbed patient card, including Internal communications (append-only) and patient status. | T-279 | Live PRD 20 Oct 26 |
| 20 Oct 26 | Utilise the same patient card modal when the user double-clicks on a card please. | The same card opens from the planning page; Admitted / On hold / Discharged / Deceased are never "due". | T-280 | Live PRD 20 Oct 26 |
| 20 Oct 26 | allow named doctors to be selected as individual recipients, but keep the generic 'doctor' option. add also a 'CC' option | Waypoint home for doctors (My week, planner, Communications); named recipients and CC; View as. | T-282 | Live PRD 20 Oct 26 |
| 20 Oct 26 | cap logs to just a nest of 4 deep threads | Replies; threads at most 4 levels deep. | T-283 | Live PRD 20 Oct 26 |
| 20 Oct 26 | when a non-admin user is logged in, do not show the patient list on the LEFT side | No patient list in Waypoint for doctors who are not admins. | T-284 | Live PRD 20 Oct 26 |
| 20 Oct 26 | If the message has been seen by others BUT not the doctor, it would be 'NEW'. | NEW / "seen on" pills; Filters New, Direct to Me, My Patients, My List. | T-285 | Live PRD 20 Oct 26 |
| 20 Oct 26 | allow blank date fields, but provide shortcuts· Always work week Mon to Fridays | "No date yet" visits with five shortcuts, stored so they can be filtered. | T-286 | Live PRD 20 Oct 26 |
| 20 Oct 26 | For each relevant message, show: From: To: CC: Date and Time | One plain layout per message. | T-288 | Live PRD 20 Oct 26 |
| 20 Oct 26 | CCT and Waypoint changes(the scope of the push to PRD) | The CCT and Waypoint batch promoted to the hospital app. | T-290 | Live PRD 20 Oct 26 |
| 20 Oct 26 | Hold the IOS and Android updates please, i want to refine the CCT workflow first. | No new store build until the CCT workflow is refined. | T-292 | In force (store builds on hold) |
| 21 Oct 26 | We should allow the manager to make these changes. | Captured: the manager may change details of a patient in a doctor's list. | T-298 | Not built yet |
| 21 Oct 26 | OK agreed, build it out in DEV, test and ensure it works as expected | Provisional schedule at the end of a visit; a date stays provisional until planned. | T-299 | Live PRD 24 Oct 26 |
| 21 Oct 26 | add additional rows below the Doctor's name to show the patient initials and postcode, sorted by sequence of visit | Patients under each doctor in the week (wide screens, or "Show patients"). | T-308 | Live PRD 24 Oct 26 |
| 21 Oct 26 | New Patients - creation of new card. what data is needed | "New patient" on the planning page for managers. | T-309 | Live PRD 24 Oct 26 |
| 21 Oct 26 | get a confirmation call by the admin/manager before the doctor heads out. Typically 1-2 days before. | Confirmation calls: the Calls list, outcomes, cues on each stop. | T-310 | Live PRD 24 Oct 26 |
| 21 Oct 26 | These boundaries need to be set up by the clinical team as they know the patient's condition best. | Safe windows, reasons, clinician-set limits, requests, approve / decline, system entries with show / hide. | T-311 | Live PRD 24 Oct 26 |
| 22 Oct 26 | not recorded (his answers to the 9 + 5 questions in the T-309 morning summary) | Notices to every doctor involved, read receipts, short wording, requests first, audit everywhere, whole-session moves, time of day, Manager | Clinician view, doctor dropdown. Kept: call window 1 – 5 days; public holidays not offered; "clinician" = any CCT member not Admin / Operations; default limits stay "placeholder" until the clinical team sets them. | T-312 | Live PRD 24 Oct 26 |
| 22 Oct 26 | I want a natural linguistic interface to query and search and sort the patient cards. | The question box on the planning page (typed and voice). | T-318 | Live PRD 24 Oct 26 |
| 23 Oct 26 | Build the set time please. | Set time on a booked visit (reason, not a reschedule, logged). | T-323 | Live PRD 24 Oct 26 |
| 23 Oct 26 | First visit is default to 60 mins. Routine visit is default to 30 mins. But allow users to change. 15min increment | A length per visit: 15 – 90 minutes in 15s; defaults 60 first / 30 routine. | T-324 | Live PRD 24 Oct 26 |
| 23 Oct 26 | run an evaluation if we can simplify the voice/natural language query to be able to run on a small LLM | Evaluated: no small model was good enough; the box stays rule-based. Kevin's decision on the result: not recorded. | T-329 | Evaluation only (nothing built) |
| 23 Oct 26 | harmonize the UI design for the CCT Roster and the Waypoint functions | One set of colours, focus ring and sizes on both pages (this page uses them too). | T-330 | Live PRD 24 Oct 26 |
| 24 Oct 26 | yes go ahead with the Wave 0 PRD hotfix | Auto-fill never books twice and leaves a started session alone; one session clock; search ignores the service match while typing. | T-332 | Live PRD 24 Oct 26 |
| 24 Oct 26 | For now, its just a team of 3 doctors … keep it open | Per-doctor figures in the question box stay open to all its users; no lock. | T-328 | Live PRD 24 Oct 26 |
| 24 Oct 26 | load the audit, communication log and change log into the engine. The engine should see what the app sees | The question box reads the change log, requests and communication logs (only what your sign-in can read). | T-331 | Live PRD 24 Oct 26 |
| 24 Oct 26 | Both(typed and voice move / cancel commands) | Change visit from the card and the card line (any week), a time of day in the Change dialog ("2pm"; a time outside the session is said), the next visit on the card line, Log a call on the card (one row, one log entry), typed / voice commands that open the checked dialog filled in and never change anything without the click; ambiguity asks back. | T-333 | Live PRD 24 Oct 26 |
| 24 Oct 26 | as long as its an admin no need to have a doctors decision to move an overdue visit to an earlier date· "admin" means anyone with the CCT Admin role | A CCT Admin role holder may move an overdue visit earlier without a doctor. | T-336 | Live PRD 24 Oct 26 |
| 24 Oct 26 | we need to add the communication log function into the apps first | The communication log in the iOS and Android apps: a Messages view with the four filters, the patient card's Log tab, reply / new message with To, CC and Urgent, read receipts. | T-334 | Live PRD 24 Oct 26 (web /m; store apps at the next build) |
| 24 Oct 26 | push such messages to the IOS/Android | An Urgent entry To a named doctor (and a request for their decision) goes to that doctor's phone through the existing notification service; tap opens the message; no patient details in the notification. | T-335 | Live PRD 24 Oct 26 |
| 24 Oct 26 | unify the views so that it is consistent and allow buttons to switch between the two· rename the CCT roster menu title to "CCT Admin" | One Manager | Clinician choice on every CCT page, the switch on the patient card too; Approve / Decline on a request addressed to you in either view; "CCT Roster" becomes "CCT Admin" (the role reads "CCT Admin role"). | T-337 | Live PRD 24 Oct 26 |
| 24 Oct 26 | If the doctor in question is on leave, escalation path is Dr Roland, and if Dr Roland is on leave, escalation path is Dr Kevin Awyong· only clinicians override. ensure all decisions points are logged into the communication log | Requests go to the visit's doctor, else the card's doctor; on leave (today or the visit day) to the CCT lead, then the escalation backup (both settings); the backup may decide what is escalated to them; the Change dialog and the request say who and why; every decision point writes exactly one entry; an overtaken request is closed; one session-move notice. | T-338 | Live PRD 24 Oct 26 |
| 24 Oct 26 | Set it for a Monday morning about 9am | A weekly Monday 09:00 review of the questions the box could not answer. | T-322 | Scheduled (first run Mon 26 Oct 26; DEV's question log only) |
| 24 Oct 26 | ok push to PRD at the next logical opportunity | The CCT DEV work (T-309 to T-339) goes to the hospital app as one batch once the open builds land and are checked, with the three release checks; a store build after. | T-340 A1 | Live PRD 24 Oct 26 (first promotion, dev as of e4249d4c; A2 – D4 with the second, dev as of a5bf1fe1) |
| 24 Oct 26 | lets leave them out for now, I am trying to get historical data | Time to first visit leaves out patients referred before the visit history began (the oldest visit on record), on the question box and the CCT Performance page, and both say how many were left out. Built on DEV 24 Oct 26. | T-340 A2 | Live PRD 24 Oct 26 |
| 24 Oct 26 | Streamline to Doctors own patients first and the next 14 days of plans. The rest would be load on demand. | The phone keeps the doctor's own patients and everyone on their plans from 7 days back to 14 days ahead (the database's own "my patients" rule, T-341); the rest load on demand ("Show all patients", or a day outside the window). The 7 days back were added so a visit done in the past week can still be marked. Web /m now; the store apps at the next store build. | T-340 A3 | Live PRD 24 Oct 26 |
| 24 Oct 26 | not recorded (the default for T-327 #9 taken) | "Changes and calls" panel on CCT Performance for admins and the CCT Admin role, counts only: visit changes by reason and exceptions, card changes by reason, change requests and their age, calls. Built on DEV 24 Oct 26. | T-340 B4 | Live PRD 24 Oct 26 |
| 24 Oct 26 | not recorded (the default for T-327 P2-13 taken) | In the question box, "my patients" = usual OR preferred OR next planned with me, said in the chips. Built on DEV 24 Oct 26. | T-340 B5 | Live PRD 24 Oct 26 |
| 24 Oct 26 | B5 widened: A(Waypoint's My Patients / My List filters and the phone's Messages "My patients" use the same meaning as the question box) | "My patients" in the communication log = preferred OR usual OR next planned with you, for Waypoint and the phone together (one place in the database). | T-340 | Live PRD 24 Oct 26 |
| 24 Oct 26 | count separate and display/report separately for now. Patients do not get a combined Home medical and IHH at the same time. | Home Medical and IHH counted and reported separately: CCT Performance (visits per home session, the budget and the visits needed, per service) and the question box (session counts and the team's visits per session, per service). Built on DEV 24 Oct 26. | T-340 B6 | Live PRD 24 Oct 26 |
| 24 Oct 26 | not recorded (no change) | Lapsed provisional schedules stay out of "waiting for a date". | T-340 B7 | Live PRD 24 Oct 26 |
| 24 Oct 26 | not recorded (no change) | The question box's three log rules stay as built. | T-340 B8 | Live PRD 24 Oct 26 |
| 24 Oct 26 | agree, but add this to the mobile app build list | "Visit length" as the one word: the CCT Admin page and Waypoint now; the phone's wording is on the next store build list (T-292). | T-340 C9 | Live PRD 24 Oct 26 |
| 24 Oct 26 | yes(week arrows and Today to the right in Waypoint) | Waypoint's My week: Show patients, the week arrows and Today on the right of the title. | T-340 C10 | Live PRD 24 Oct 26 |
| 24 Oct 26 | yes("IHH (Palliative)") | "IHH (Palliative)" on Waypoint and the phone (was "IHH (home palliative)"). The CCT Performance page's own wording was left to the work being done on that page at the same time. | T-340 C11 | Live PRD 24 Oct 26 |
| 24 Oct 26 | yes(dd Mmm yy dates) | dd Mmm yy on a card's dates and in the communication log on Waypoint ("Tue 13 Oct 26", "Fri 23 Oct 26 · 13:58") and on the phone's cards. | T-340 C12 | Live PRD 24 Oct 26 |
| 24 Oct 26 | Yes(one font pair, one primary blue) | The CCT Admin page's own pair everywhere (Fraunces headings, Inter text, JetBrains Mono figures; Waypoint was Archivo / IBM Plex) and one primary blue (#1a5fd0; the question bar's navy became it). Kevin did not name a pair; this one was chosen because it is the RosterEngine app's own, so the patient card inside the CCT Admin page matches the page around it. | T-340 C13 | Live PRD 24 Oct 26 |
| 24 Oct 26 | A(one meaning of "my patients" everywhere) | Waypoint's "My patients" button in the planner's patient list now shows the database's "my patients" (usual OR preferred OR next planned with me; the same definition as the Communications filters and the question box). It used to be the page's own rule (preferred doctor, seen in 30 days, on my day plans in the next 30 days): a patient only seen recently by me now drops out, and a patient whose next visit is my roster session comes in. | T-340 B5 | Live PRD 24 Oct 26 |
| 24 Oct 26 | no necessary | A morning route past 12:30 is not flagged in the planner. | T-340 C14 | Not built (by decision) |
| 24 Oct 26 | yes(the live Auto-fill counts "no date yet" plans) | The hospital app's Auto-fill will skip patients with a "no date yet" visit, with the A1 promotion. | T-340 C15 | Live PRD 24 Oct 26 (with A1) |
| 24 Oct 26 | yes(the T-308 defaults) | Kept: the wider week at 2560 px, weekly card = Routine, Post-discharge / Telephone from Waypoint's day plan, the minutes pill only when tight. | T-340 D1 | Live PRD 24 Oct 26 |
| 24 Oct 26 | no further HMS import expected, when we launch this to the CCT team | The HMS import questions are closed; no further import. | T-340 D2 | In force (closed) |
| 24 Oct 26 | All roles can post to the communication logs. we expect this to involve the Home Nursing and Home Therapy teams in the future | Anyone on the CCT team may post, whatever their role; the roles are a list in the database, with Home Nursing and Home Therapy on it switched off, ready to switch on. Built on DEV 24 Oct 26. | T-340 D3 | Live PRD 24 Oct 26 |
| 24 Oct 26 | ok discuss when you are ready | The four CCT Performance questions (T-255) to be discussed. | T-340 D4 | Not built yet (to discuss) |
| 24 Oct 26 | not recorded (Kevin asked for the details again) | Provisional schedule phases 2 and 3 (T-299): details to be sent again. | T-340 D5 | Not built yet (to discuss) |
| 24 Oct 26 | each CCT doctor can edit their own patient list within Waypoint. If cases need to be added, it should be done by CCT Admin. if cases need to be removed, it should be done by the CCT Admin or the Doctor with adequate reasons provided.· chose Caseload only | The database now holds the line: own plans, own cards and own visits only; adding a patient to a list is the CCT Admin’s; taking one off is the CCT Admin’s or the doctor’s, with a reason, logged. | T-341 | Live PRD 24 Oct 26 |
| 24 Oct 26 | Should the CCT Admin also give a reason to take a patient off a list? A please. Everyone touching patient cards need an audit trail and a reason | Every card change needs a reason from everyone, the CCT Admin included: a short list plus words (needed for Other), asked on Save in Waypoint and in the CCT Admin page’s card; the database refuses a change without one; the reason goes in the one log entry of the save. Phone prompt: next store build. | T-343 | Live PRD 24 Oct 26 |
| 24 Oct 26 | Who may edit a card: own and covered patients, or only the card’s own doctor? Any doctor can edit a patient card. All updates must be logged into the communications log. | Any CCT doctor edits any card’s details and safe limits, every change logged with its reason (T-343); the list rules (add = CCT Admin, remove = CCT Admin or own doctor) stay; plans and visits stay own. | T-344 | Live PRD 24 Oct 26 |
| 24 Oct 26 | The seq 21 store build lacks the phone reason prompt and the archive reason: upload it, or build them first? A please. Lets build what we can. | The phone app asks the same reasons as Waypoint before every card change (the card list) and before an archive (the caseload list and a few words), sends them as Waypoint does, shuts Delete and “+ New patient” for those not allowed (with why), and shows the card read only to CCT Operations. Waits for a store build. | T-343 + T-341 (phone) | Live PRD 24 Oct 26 (web /m; store apps at the next build) |
| 24 Oct 26 | Should Waypoint get a "CCT Admin" link back, managers only? Yes Waypoint should get its own link back to RosterEngine globally (remember CCT Doctors use waypoint) and only Dr Roland is the clinician+admin for now on that team. So it should bring user back to the RosterEngine page, and ideally from where they last left rosterengine. | A "RosterEngine" link at the top of Waypoint for everyone signed in; it opens the main app on the tab each person last had open (Home if that tab is not theirs to open). | T-345 | Live PRD 24 Oct 26 |
| 24 Oct 26 | Should the link also remember the sub-tab (e.g. CCT Admin › Roster or Performance)? A | The link returns each person to the sub-tab they last had open (CCT Admin: Roster, Admitted to Hospital, Performance; every Admin sub-tab); one they cannot open, or an unknown one, is ignored. Built on DEV 24 Oct 26. | T-345 A | Live PRD 24 Oct 26 |
| 24 Oct 26 | Open RosterEngine in the same browser tab, or switch to one already open? B(the same tab, as built) | Unchanged: the link opens RosterEngine in the same browser tab. | T-345 B | Live PRD 24 Oct 26 |
| 24 Oct 26 | Should the app stop a CCT session being added for a doctor on leave? In theory, if Doctor is on leave, a session cannot be added with that doctor on that day (or period) the doctor is away.· yes half-day leave does not stop a session for the other remaining half day that the doctor is working. check the solver rules. The drag and drop workflow should also respect this, so that user cannot drag a doctor and his list onto a period when the doctor is not available. So yes, BLOCK it.· on which leave counts: A. yes, check the solver logic to ensure it is correct. Solver should not assign a CCT doctor to a day for sessions when the doctor is not available.· on leave still waiting for approval: Yes leave that is pending, should block new sessions being assigned.· on restoring an old roster snapshot that would land a session on leave: B please(refuse the whole restore) | Blocked in the database on every path, by the half-day; drag and drop shows the half-day as not allowed; sessions planned before the leave are flagged "Doctor on leave — needs cover", never moved; Solve CCT reads leave the same way (not yet on the live solver). Pending medical, hospital and sick leave blocks too. A snapshot restore that would put a session on leave is refused as a whole. | T-346 | Live PRD 24 Oct 26 |
| 24 Oct 26 | An overdue patient whose preferred doctor is later than another doctor: ask every time, or keep the preferred doctor when the difference is small? no need to ask if within 2 working days | Auto-fill keeps the preferred doctor without asking when that doctor can see the patient by the safe limit, or within 2 working days of another doctor's first session; beyond that it lists the patient and books nothing until the CCT Admin answers (Use the suggested doctor / Keep, book late: a clinician's call / Leave unplaced). A preferred doctor with a session next week inside the limit holds the patient. | T-342 | Live PRD 24 Oct 26 |
| 24 Oct 26 | Shorter rounds or even sessions? shorter sessions, do not even out | Auto-fill picks the session that adds the least driving to the doctor's round (measured drive times, the patient tried at every place in the round), keeps a session under 85% where it can, and does not even out the load; then orders each session it touched by drive time and says why for each patient. | T-342 | Live PRD 24 Oct 26 |
| 24 Oct 26 | No preferred doctor on the card: treat the usual doctor as a soft preference, never asked about? agree | With no preferred doctor, the usual doctor (most visits in 180 days, at least 3) counts for the patient but is never asked about. The route record (each doctor's areas by day and half-day, postal sector only) feeds the choice. | T-342 | Live PRD 24 Oct 26 |
| 24 Oct 26 | Ensure all decisions points we make to code the app and write the rules are logged into this document. | This page, the "Workflow rules" links and the standing instruction to keep it. | T-339 | Live PRD 24 Oct 26 |
| 24 Oct 26 | Auto-fill's question offers Use / Keep, book late / Leave unplaced. Add a fourth answer, Pick another doctor… (choose any eligible doctor and session)? A: leave it out; B: add it. B | Pick another doctor… lists this week's sessions with room for the patient (the right service, not started, the doctor not on leave); the same checks as the other answers, and past the safe limit a request for anyone who is not a clinician. | T-342 | Live PRD 24 Oct 26 |
| 24 Oct 26 | When Auto-fill books a patient away from the preferred doctor, is the one visit-change entry enough? A: yes; B: also post a short note To the preferred doctor. B | Auto-fill also posts one comms-log entry To the preferred doctor (NEW for them): "Your patient … was booked with Dr … on … because …"; once per patient each run, none when the booking is with the preferred doctor. | T-342 | Live PRD 24 Oct 26 |
| 24 Oct 26 | After the preferred doctor, which doctor counts as a soft preference? A: the usual doctor only; B: the usual doctor, then the doctor of the last visit. B | The soft chain is: preferred doctor, then the usual doctor, then the last visiting doctor (most recent completed visit), then none. Only the preferred doctor is ever asked about. | T-342 | Live PRD 24 Oct 26 |
| 24 Oct 26 | Leave is checked for this week and next week only, so a hold two weeks out is not leave-checked. A: check every week a hold can reach; B: leave it as it is. A | Auto-fill reads the leave for every later week up to the furthest safe limit, all at once, and never holds a patient for a session whose doctor is on leave that half-day (half days respected); an unreadable week holds nobody and is said. | T-342 | Live PRD 24 Oct 26 |
| 24 Oct 26 | Someone who is not a clinician presses Keep, book late (past the safe limit). A: send them to Change visit… on the card; B: Auto-fill raises the request itself. B | Auto-fill books the suggested session and raises the request to move the visit to the preferred doctor (the same request, routing and log entry as Change visit…); the message says it is waiting for the doctor's answer. A clinician's Keep still books late at once. | T-342 | Live PRD 24 Oct 26 |
| 24 Oct 26 | Review singapore geography and common ways to "zone" postal codes into locally accepted areas. There will be some overlap. But lets see if we can improve the search. Also, since we are doing this, also group postal codes around common landmarks - eg MRT stations etc | The question box understands planning areas, neighbourhoods, regions, postal districts and everyday names, and "near" a station, hawker centre or polyclinic (800 m); it asks when a place word is ambiguous. Also fixed three of Kevin's spoken questions of 24 Oct ("West Coast", "no schedule visit", "not seen a visit for two weeks"). | T-347 | Live PRD 24 Oct 26 |
| 24 Oct 26 | Lets also push the Waypoint functions into the next build for IOS and Android too.· A - everything critical for their mobile work. So sequencing, map routing, completed visit workflow, next appointment workflow, comms log, patient card details for updates. | The phone app gets Waypoint's communication log, request decisions, visit outcomes, Change visit, Set time and length, the session clock and the full patient card. | T-350 | Live PRD 24 Oct 26 |
| 24 Oct 26 | crafted so that it is a yes/no or approve/reject response in the message log. the sender/system gets the response with minimal taps by the doctor. | Approve / Decline on the request in the phone's log: Decline one tap; Approve one more tap on a reason (the database records why). Same call and log entry as Waypoint. | T-350 | Live PRD 24 Oct 26 |
| 24 Oct 26 | roll this into the "Completed Visit" button, but rename, so that users can choose what happened to a scheduled visit - Completed, Not at home, Running Late | "Visit outcome…" with Completed / Not at home / Running late. Running late writes one log entry; a note to the patient app or the next patient is a later item. | T-350 | Live PRD 24 Oct 26 |
| 24 Oct 26 | yes re-use the current messaging/push function | Urgent named entries are pushed through the existing notification service (T-335). | T-350 | Live PRD 24 Oct 26 |
| 24 Oct 26 | hold this for now. do more research to see if we can actually push into Waze or Google Maps or Apple Maps for turn by turn navigation | Not built: research only. | T-350 | Not built (research) |
| 24 Oct 26 | agreed(Set time and visit length on the phone) | Set time and length of one visit on the phone's Route, as on Waypoint. | T-350 | Live PRD 24 Oct 26 |
| 24 Oct 26 | This should be part of the logical flow if a visit is not completed - eg patient not home, it should then lead to the next reschedule function | Not at home leads straight into Change visit, checked by the database. | T-350 | Live PRD 24 Oct 26 |
| 24 Oct 26 | agreed(My week on the phone: a later build) | Not built: later. | T-350 | Not built (later) |
| 24 Oct 26 | D please. Provide options - different doctors might want different navigation apps | Navigate on each phone Route stop to Waze, Google Maps or Apple Maps (Apple on iPhone only); the rest of the day to Google Maps or Apple Maps, 10 stops per link; the doctor's app remembered on the phone and offered first. | T-350 #4 | Live PRD 24 Oct 26 (web /m; store apps at the next build) |
| 24 Oct 26 | C | What leaves the phone (answer C of the options): the stop's postal code only, as the word Singapore and the six digits — never the name, initials, unit number or a label. A test checks every link the app can build. | T-350 #4 | Live PRD 24 Oct 26 (web /m; store apps at the next build) |
| 24 Oct 26 | C | Data protection review (answer C of the options): none needed — a postal code, opened by the doctor in the doctor's own navigation app. | T-350 #4 | Live PRD 24 Oct 26 (web /m; store apps at the next build) |
| 24 Oct 26 | A, no need for taps(Approve on a request: one tap, no reason asked) | Approve is ONE tap on the phone and in Waypoint, like Decline; the words under a request are optional for both. With no words the database records "Approved" as the reason; words that are given are recorded as written. Same decision log entry, same routing, the sender gets the answer. Built on DEV 24 Oct 26. | T-350 #1 | Live PRD 24 Oct 26 |
| 24 Oct 26 | A(one doctor's visits per session split by service too) | One row per doctor per service (Home Medical / IHH) on the CCT Performance team table and in the question box's "visits per session by doctor"; each service against its own team range; never one combined number for a doctor. Built on DEV 24 Oct 26. | T-340 B6 | Live PRD 24 Oct 26 |
| 24 Oct 26 | A. release the slot, holding list with call-again date, patient card goes to a holding list - marked "Admitted to Hospital". Yes display a last call status and update. Lets have a separate page for "Admitted to Hospital" cases so that the Admins can see the status, and sort by "ready for next call"· A please(where: a sub-tab of the CCT Admin page) | Marking a patient Admitted to hospital (card, call, or a cancelled visit) releases every visit ahead after a dialog that names them; the Admitted to Hospital sub-tab with the call-again date, the last call, sorted ready for next call; Back home suggests a visit in 2 weeks and the patient leaves the list once it is booked. | T-349 | Live PRD 24 Oct 26 |
| 24 Oct 26 | OK, can(more than 1 scheduled visit) · Also OK(flag a later appointment: double booking or bring it forward) | A visit booked by hand beside a later one asks: keep both, or bring the later one forward (the Move dialog). Auto-fill unchanged. | T-349 | Live PRD 24 Oct 26 |
| 24 Oct 26 | OK(Waypoint arrows for the session date) · Might be crowded. Suggest use the RIGHT panel to show details such as time and sequence.· OK(hover details; the week arrows beside the date range) | Waypoint: arrows beside the session's day. CCT Admin page: hovering a visit shows its type, why, its place in the round and its time; the right panel shows them beside each visit; the week arrows sit beside the dates. | T-349 | Live PRD 24 Oct 26 |
| 24 Oct 26 | build A in DEV, test the performance, and let me know· OK the delay is acceptable, proceed to fix this leak please | Drive times and route lines from the app’s own route server for signed-in CCT members, not the public demo server; about 0.9 s per lookup; straight-line estimates, said on screen, if it does not answer. | T-351 | Live PRD 24 Oct 26 (web; store apps at the next build) |
| 24 Oct 26 | ASH = All Saints Home (its a nursing home, and they purchase home medical consult time, so SLH doctors "visit" the nursing home patients at their location). ASH is run at half-day sessions, but no specific patients listed inside that session. It should be "counted" separately, so how many ASH sessions per week, per month etc | CCT Performance shows “ASH (All Saints Home)” on its own line: ASH sessions held in the period, week by week, by month and by doctor; never a visits-per-session rate. Built on DEV 24 Oct 26. | T-340 D4 (1) | Live PRD 24 Oct 26 |
| 24 Oct 26 | C for now, until we have a better baseline(the window for demand against capacity) | Demand against capacity counts the last 4 weeks while the visit history is under 12 weeks, then the last 12 weeks, switching on its own; the demand card says which window it used and why. Built on DEV 24 Oct 26. | T-340 D4 (3) | Live PRD 24 Oct 26 |
| 24 Oct 26 | Use B, and we revise when there is some baseline data(the minimum for a doctor's “Logged same day”) | A doctor's “Logged same day” shows from 10 taps with a tap time as “x of y”, and as a percentage only from 30; to be revisited once there is baseline data. Built on DEV 24 Oct 26. (Answer 2, a visits-per-session yardstick for each service, waits for Dr Roland.) | T-340 D4 (4) | Live PRD 24 Oct 26 |
| 24 Oct 26 | Block patients from being planned into an ASH session, everywhere? A | No patient can be planned into an ASH (All Saints Home) session: the CCT Admin page (drag and drop, Auto-fill, Pick another doctor, Back home, Change visit) and the database refuse it with “ASH (All Saints Home) sessions have no patient list — choose a Home Medical or IHH session.” Auto-fill no longer treats ASH as fitting any service. Patients already in an ASH session are flagged, never moved (none on DEV). Built on DEV 24 Oct 26. | T-340 D4 | Live PRD 24 Oct 26 |
| 24 Oct 26 | Bug fix, no new decision (the T-346 rule as decided: a doctor on leave cannot be given patients; a session planned before the leave is flagged, never moved or deleted) | Re-ordering or removing the patients of a session (or a doctor’s day in Waypoint) whose doctor went on leave after it was planned was wrongly refused by the database; now only a patient new to that session is refused. Built on DEV 24 Oct 26. | T-346 | Live PRD 24 Oct 26 |
| 25 Oct 26 | a) Top section: A list of the cases scheduled that day. If none scheduled, then indicate “no cases scheduled” or similar. The list should be in sequence of visit time/appointment time. An indicator for “visit confirmed” or “visit not confirmed” should be shown … Drag and drop to reorder the list is possible, but should warn the user if visit is confirmed since patient may not be home at the new time. Drag and drop reschedules should be logged into the patient's communication log. b) Next section: the current search bar, plus quick access to the recent cases and the patients scheduled for this week. c) Last section is the list of patients. This list should be empty when there is no search initiated. Populate only when search is initiated. Remove the + New Patient button … Remove also the “+” button next to the patient name in the search results, do not allow users to add a new case to their visit schedule, this should be done by the admin team. d) In the patient card, the “edit details” - change this to “Communication & Details”. Land on the communication log first by default … Allow a “back” button in the Communication & Details modal to go back. Also default hide system entries. Indicate a count of New Messages that is unread. | The phone's CCT · Patients tab redesigned: a top “Today's visits” section in visit-time order with the nurse's call-ahead confirm / not-confirmed state (cct_visit_call_status — the same workflow as the manager's confirmation calls, not the general call log) and hold-and-drag reorder, warning first on a confirmed visit and going through cct_visit_change (action 'time') so the move writes to the patient's communication log, never a bare plan.set; two quick-access chips (“Scheduled this week”, “Recent cases”) beside the search bar; the patient list empty until a search (typed or a quick-access chip) is initiated, with no “+ New Patient” button and no per-row “+” on a result; a card's “Edit details” renamed “Communication & Details”, landing on the Log tab with its own “← Back” to Details, system entries hidden by default, and an unread count on the tab. mobile/src/lib/cct/CctPatients.svelte, PatientSheet.svelte, CctNoteLog.svelte, comms.svelte.ts, store.svelte.ts. No new migration (cct_visit_call_status / cct_visit_calls_due / cct_visit_change already covered it, T-309). Built on DEV 25 Oct 26 (mobile v0.86s145). | T-353 | Live PRD 26 Oct 26 (the phone app: from the next store update) |
| 25 Oct 26 | Change the title “Route” to “Visit List”. Remove “Stats” from the menu list, but place it at the bottom of the “Visit List” modal … Remove the bottom right “move” and cancel buttons for each visit card. If user needs to resequence the visit card, they should drag and drop. and if they need to cancel the visit they should use the Visit Outcome. Add one more button for “cancel”. | The phone's CCT · Route tab renamed “Visit List”; Stats is no longer its own tab in the segmented control — its eight tiles now sit at the bottom of the Visit List view, under the sequence and the Optimise / Reverse / Clear buttons. Each stop card's ▲▼× row (move earlier / move later / take off the day) is removed — resequencing is drag-only (hold the ≡ handle, as already built for T-234), and a visit comes off the day only through Visit outcome, which gained a fourth chip, Cancel, alongside Completed / Not at home / Running late. mobile/src/lib/cct/CctRoute.svelte, mobile/src/routes/cct/+page.svelte. No DB change. Built on DEV 25 Oct 26 (mobile v0.86s146). | T-354 | Live PRD 26 Oct 26 (the phone app: from the next store update) |
| 25 Oct 26 | Enable the drag and drop functionality for the Visit List, so that users can drag and drop the visit cards to resequence. If visit is confirmed, need to warn the user before proceeding with rescheduling. communication log should be done, to reflect, visit confirmed, but rescheduled by user. | The phone's CCT · Visit List (CctRoute.svelte, renamed from “Route” in T-354) gets T-353's own checked drag-reorder path: a stop's own confirm state (cct_visit_call_status) is read for the day shown; dragging a NOT-confirmed stop reorders straight through public.cct_visit_change (action 'time'), never a bare plan.set, logging a system note in the patient's communication log; a CONFIRMED stop is warned first (“may not be home at the new slot”), and on “Reorder anyway” the log entry's wording says “visit was confirmed, but rescheduled by user” — distinct from an ordinary reorder note; cancelling the warning leaves the plan order and the comms log untouched. Unlike T-353's Patients-tab reorder (which keeps the local order if the log write fails), this list reverts the dragged card to its original position and says why when the database refuses the change. mobile/src/lib/cct/CctRoute.svelte. No new migration (cct_visit_call_status / cct_visit_change already covered it, T-309). New test tests-ui/cct_route_t355.mjs (17/17 against the T-309 fake database). Built on DEV 25 Oct 26 (mobile v0.86s147). | T-355 | Live PRD 26 Oct 26 (the phone app: from the next store update) |
| 25 Oct 26 | The click should send user to the original modal for Communications Log and Details. In that larger modal, put a back button. Do not use the small modal. | On the phone, “Communication & Details” on a patient card (and a patient's initials in Messages) always opens the full-height card modal — on the Log tab too, which used to shrink to a small strip at the bottom. A ‹ Back button at the top-left of that modal returns to where the user came from (the Patients list, or Messages); Details and Log stay as the two tabs inside it. The earlier tab-switching “← Details” label and the small footer’s “← Back” are gone. mobile/src/lib/cct/PatientSheet.svelte. No DB change. Built on DEV 25 Oct 26 (mobile v0.86s148). | T-356 | Live PRD 26 Oct 26 (the phone app: from the next store update) |
| 25 Oct 26 | the grab handles to move and resequence the patients do not seem to work.· on the fix: yes go ahead, fix both lists | Drag and drop on the phone, on both lists (the Patients tab’s Today’s visits and the Visit List). While dragging, the lifted visit follows the finger and a line shows where it will land; a drop that would change nothing shows no line and does nothing. The visit moves on screen the moment it is let go — before, the app first fetched the list of reasons from the database and only then moved it, so a drop sat still for 1–3 seconds and then jumped. The move is still logged in the patient’s communication log as before (and a confirmed visit still warns first, now with the “confirmed, but rescheduled by user” wording on the Patients tab too). If the database refuses the move, the visit goes back to where it was and the phone says why — on both lists now (the Patients tab used to keep the new order unsaved). mobile/src/lib/cct/store.svelte.ts (dragReorder), CctPatients.svelte, CctRoute.svelte. No DB change. Built on DEV 25 Oct 26 (mobile v0.86s149). | T-357 | Live PRD 26 Oct 26 (the phone app: from the next store update) |
| 25 Oct 26 | OK the drag handles work. at this list, allow for the user to tap and hold on the card to open up the patient card please. | On the phone’s Patients tab, in Today’s visits: hold a visit (anywhere but the ≡ handle) for half a second and that patient’s card opens — the same card as “Communication & Details”, on its Log tab, with ‹ Back to return. A short tap, a finger that moves (scrolling the page) or a hold on the ≡ handle (which is the drag) opens nothing. A line under the heading says so: “Hold a visit to open its card · drag ≡ to change the order”. mobile/src/lib/cct/CctPatients.svelte. No DB change. Built on DEV 25 Oct 26 (mobile v0.86s150). | T-358 | Live PRD 26 Oct 26 (the phone app: from the next store update) |
| 25 Oct 26 | if a user has new/unread messages that is addressed to them (not CC) then allow new section “Communications Log” to appear here just above “Your Upcoming”. Additionally, display in the “Communications Log” section if the user has new messages for patients under their care … Allow the “my patients” notification to be turned on/off in the Settings for CCT doctors. By default it should be on.· his answers: Any unread about them· Phone and desktop Home· Per account· Counts only· Messages, My patients | The Home “Communications Log” on the phone and the desktop: new messages addressed to you by name, and (CCT doctors) unread messages about your patients from the last 30 days, whoever they were sent to; counts only, each opening Messages / Waypoint on Direct to me / My patients; Waypoint’s and the phone’s My Patients filter now lists every message about your patients, an unread one marked NEW; the switch “New messages about my patients” in the phone’s Settings → Notifications, on by default, saved per account. Home counts messages a person wrote, not the automatic entries (hidden in Messages by default). The New filter and the red Messages count are unchanged. Database: public.cct_home_comms, app_private.cct_about_new_notes, cct_my_comms widened, the notification category cct_my_patients (migration 20261025080000, applied on DEV). Built on DEV 25 Oct 26 (mobile v0.86s151, app v0.903, Waypoint v0.880). | T-359 | Live PRD 26 Oct 26 (the phone app: from the next store update) |
| 25 Oct 26 | How should the phone show pending Approve / Decline requests while system entries are hidden? Always show open requests· Waypoint too? Phone only | A bug found while repairing the phone tests (T-360): since system entries are hidden by default on the phone (T-353), a doctor’s open requests disappeared from Messages, and the phone has no “requests waiting” banner. Now the phone asks the database to hide system entries but keep open requests addressed to the doctor; they are pinned at the top. Waypoint keeps its own design (hidden, with the “N requests waiting · Jump to it” banner). Database: a phone-only mode of cct_my_comms (migration 20261025090000, applied on DEV); the phone mobile v0.86s152. | T-365 | Live PRD 26 Oct 26 (the phone app: from the next store update) |
| 25 Oct 26 | Before any search, what should the Patients tab’s count line say? Hide it until a search | On the phone’s Patients tab the line “N shown · N patients · N due this week” (and its Details switch) appears only once a search or a quick-access button is used; before that the list is empty, and the line used to say “21 shown” over it. mobile/src/lib/cct/CctPatients.svelte. No DB change. Built on DEV 25 Oct 26 (mobile v0.86s153). | T-367 | Live PRD 26 Oct 26 (the phone app: from the next store update) |
| 25 Oct 26 | What should happen to the Reverse and Clear buttons on the Visit List? Remove both | The phone’s Visit List has Optimise only: Reverse and Clear session are gone (they changed or emptied the day without a reason or a log entry). A visit comes off the day through Visit outcome → Cancel, one at a time. Correction (25 Oct 26): that Cancel was not logged either — it is being made a checked, logged change with a reason (T-368). Waypoint’s and the CCT Admin page’s own Clear session are not changed. mobile/src/lib/cct/CctRoute.svelte. No DB change. Built on DEV 25 Oct 26 (mobile v0.86s154). | T-363 | Live PRD 26 Oct 26 (the phone app: from the next store update) |
| 25 Oct 26 | When a doctor drags a visit to a new position, should the app ask why? Ask only if confirmed | On the phone (Today’s visits and the Visit List), dragging a visit the nurse’s call already confirmed shows the warning as before and now also asks why, from the reasons for a time change (Patient request, Clinical decision, Doctor unavailable, The visit needs more or less time, Other); “Reorder anyway” waits for a reason, and “Other” for a few words. The reason and the words go into the patient’s communication log entry. A drag of a visit that is not confirmed asks nothing (logged as “Other”). No DB change. Built on DEV 25 Oct 26 (mobile v0.86s156). | T-361 | Live PRD 26 Oct 26 (the phone app: from the next store update) |
| 25 Oct 26 | Optimise should be run eveytime a new card is moved in/out of the list, and should run only on unconfirmed cards. Any confirmed cards, should stay within the allocated visit time and the rest of optimise should work around that. If a user clicks optimise and there are confirmed cards, - indicate that there ar confirmed cards, and those visit times will not be changed, allow user to agree to proceed or cancel. Make this the default behaviour for all optimise buttons in the app.· Optimise as long as visit is unconfirmed. user can re-position it if needed. However, provide a message that visits have been optimised.· Log a real time change· if the confirmed visits clash: Warn, change nothing | Phone Visit List (first of three): Optimise keeps confirmed visits at their booked time and re-orders the rest around them; a notice with Proceed / Cancel when confirmed visits are present; a clash changes nothing and says which visits and by how much; runs on its own when a visit is cancelled or moved to another day, with the message “Visits optimised”; one log entry per visit whose time moves 15 minutes or more. Database: public.cct_day_retime (the order and the times in one checked step; a confirmed time is refused; migration 20261025100000, applied on DEV). Waypoint’s Session planner: the same (a visit added or taken off re-optimises the day; a drag re-times the unconfirmed visits), Waypoint v0.881. The CCT Admin page: next. Built on DEV 25 Oct 26 (mobile v0.86s157). | T-362 | Live PRD 26 Oct 26 on the phone and Waypoint (the phone app: from the next store update); not on the CCT Admin page |
| 25 Oct 26 | After a drag or an Optimise, what should the booked times of the other visits do? Follow the new ETA | On the phone, after a drag or an Optimise every unconfirmed visit’s booked time becomes its new expected time; confirmed visits keep theirs; logged only at 15 minutes or more (cct_day_retime). Built on DEV 25 Oct 26 (mobile v0.86s157). | T-364 | Live PRD 26 Oct 26 (the phone app: from the next store update) |
| 25 Oct 26 | Not recorded — a correction: Cancel on the phone (T-354) only took the visit off the day, with no reason and no log entry, against the rule that a reason is always captured; it had been described to Kevin as logged. | Visit outcome → Cancel asks for a reason from the cancellation list (Other needs words) and goes through cct_visit_change ‘cancel’ (the limits, one log entry, a request when a clinician is needed); then the day is re-optimised. Built on DEV 25 Oct 26 (mobile v0.86s157). | T-368 | Live PRD 26 Oct 26 (the phone app: from the next store update) |
| 25 Oct 26 | Not recorded (an overnight audit of this manual, 25 Oct 26) | Corrections to this page: the rule sections lacked entries for T-353, T-354, T-355 / T-357, T-356, T-358, T-361, T-363 and T-367 (they were in this log only) — added as DEV-only rules in sections 2 and 3; the section 3 sentence “Editing a card offers an optional reason” contradicted T-343 (every card change needs a reason, and the database refuses one without) and now says so. Still open from the same audit, for Kevin: Waypoint prints “seen on dd/mm/yy” while the T-340 rule says dd Mmm yy; Waypoint has no “All” filter though the T-350 rule lists it; and the phone label “Expected consult time” is still in the code the next store build would ship. | T-339 | In force |
| 27 Oct 26 | A bug found while checking Dr Roland’s day: a change in a session opened from My week took the other half-day’s visits off the doctor’s day. Fix on DEV, then PRD: 2 | Waypoint v0.882: a change in a session opened from My week saves the doctor’s whole day, with the other half-day’s visits and their booked times unchanged; taking a visit off the open session still takes it off the day. Checked on PRD (read only) before the fix: no visit had been lost this way since the change log began recording on 27 Oct 26. | T-377 | Live PRD 27 Oct 26 |
| 27 Oct 26 | In the CCT admin view, for 27th Oct, I see 1 case in the am for zero cases in the PM.→ 1(one list everywhere: the admin page reads and writes the day plan, each visit in its AM or PM session by booked time) → Yes please(the read side first) | The CCT Admin page (app v0.905) shows and counts each doctor’s Visit List visits in their session by booked time (before 13:30 = AM), marked Visit List; × and the time button on those visits change the doctor’s list. Nothing is copied into the roster’s session lists. Still to come: Optimise, Reverse, Clear session, Move session and Auto-fill acting on the one list; the performance figures. | T-376 | Live PRD 27 Oct 26 (read side) |
| 27 Oct 26 | i have seen a case CMKJ. That's not possible, in PRD. can you check?· Nope, it came back on refresh | A bug: reloading Waypoint could save the old demo’s starting route as the signed-in person’s Visit List for the day, and a real patient at one of the demo’s addresses (CMKJ) was on it. Waypoint v0.883 never starts a signed-in page with that route and never saves it. Only Dr Kevin Awyong’s own list was affected (cleared on his word). | T-378 | Live PRD 27 Oct 26 |
| 27 Oct 26 | evaluate why the latency is poor. see what we can do to optimise it→ 2 | The CCT Performance page’s figures load faster (a year’s view about 0.5 s → about 0.2 s): leave is now read once and only for the CCT team. The figures themselves are unchanged (checked before and after). No rule changes. | T-379 | Live PRD 27 Oct 26 |
| 27 Oct 26 | Ok 1(to: “Yes, one list. A session needs a doctor before patients go on it, and changing the doctor moves that half-day’s visits.”) | One list: the doctor’s day plan is the only list of visits; the CCT Admin page shows and changes it (app v0.906). A session with no doctor takes no patient; a new doctor takes the half-day’s visits (after MC cover, the cover doctor); a session moved to the other half keeps its visits and logs “AM → PM”; removing a session cancels its booked visits first, each with a reason (as before). The Performance page counts planned visits from the doctors’ lists; a visit with no named doctor is credited to the doctor whose list held it. Checked on PRD first: only one visit had ever been in the old session lists (also on the doctor’s list). After the overnight audit (T-380): a change says what the list held when the person looked, so a visit booked meanwhile by someone else is never lost (Waypoint v0.884); visits on a day with no session of their doctor are listed under the week as “Not in a session” (PRD held 215 on 27 Oct 26). | T-376 | Live PRD 29 Oct 26 |
| 28 Oct 26 | A, and discharge the patient - "DEATH". Allow sufficient modal adjustments so that the Cause of Death and Date of Death can be entered, but do not make it mandatory.→ A(Deceased stays its own status) | Deceased or Discharged releases every visit ahead, whichever doctor holds it, in one named dialog (app v0.909, Waypoint v0.885, migration 20261028180000); Deceased comes off the list with the reason Death, no typed words, date and cause of death optional; the visit with no date is closed; the preferred doctor is told (New), the other doctors copied; any other writer of the status releases too; Calls never lists a Deceased or Discharged patient (T-380 audit D-01, D-02). | T-381 | Live PRD 29 Oct 26 |
| 28 Oct 26 | keep it, but require the admin team to enter a reason for the on-hold and to indicate a provisional date to reactivate for future scheduling visit. So on hold for 30 days, for overseas travel and when 30 days has passed, to call up to reschedule the next visit.→ Release all the visits prior to the reactivation date. | On hold asks a reason and a reactivation date (30 days by default); the visits before it are released, those on or after it stay; the patient is on the Admitted to Hospital page as On hold, called on the date; "Resume and book" sets the card Active and suggests a visit. | T-381 | Live PRD 29 Oct 26 |
| 28 Oct 26 | A(to: “Refuse for Deceased. For Discharged, Admitted and On hold, refuse with a one-tap way back”) | A Deceased patient is never booked (the database refuses it); Discharged, Admitted and On hold are refused with Set Active (the CCT Admin) / Back home / Resume, then booked, on the CCT Admin page and on Waypoint (the planner’s + and the card’s Plan a visit; audit D-07). "Add anyway" is gone. | T-381 | Live PRD 29 Oct 26 |
| 28 Oct 26 | Ask each time.(K2: when a session is removed, or the week reset, with patients booked in it) | Remove session and Reset to template ask ONE question that names the booked visits and offers both: cancel them (each with a reason, doctors told) or keep them on the doctor’s Visit List (“Not in a session”). No second question follows (audit A-4). | T-381 | Live PRD 29 Oct 26 |
| 28 Oct 26 | B(K6, to: “Pre-fill the reason for both clearing and changing, and run the checks first”) | Clear doctor / Change doctor ask with “Session doctor cleared” / “Session doctor changed” already chosen (a list of its own in the database); leave that half-day and a second session that half-day are checked before the question; a doctor on leave is a greyed “On leave”, not “Override-pin” (audit A-9). | T-381 | Live PRD 29 Oct 26 |
| 28 Oct 26 | A(K9, to: “CCT Admins as well, for CCT doctors only. The MC is filed as pending, for the usual approval”) | “On medical leave” is offered to CCT Admins; the database lets a CCT Admin mark a CCT doctor only (a 1-day MC, pending; the sessions held for cover; the doctor asked to apply). Full admins as before. | T-381 | Live PRD 29 Oct 26 |
| 28 Oct 26 | A(to: “Build all of them along with your K1–K11 decisions, on DEV first, with tests and the manual updated” — the ready-on-word list) | Reset to template always asks first (audit A-5); a public holiday shows a session that still has visits (A-10); leave and All Saints Home refusals show the database’s own words (A-7). | T-381 | Live PRD 29 Oct 26 |
| 28 Oct 26 | A yes, reduce keyboard and mouse input where practically safe.(K3, the card-change reason) | A card change asks with the reason already chosen from what changed (contact / address and access / visit plan); one click saves; a mix, the status, the limits or the notes ask as before. Waypoint and the CCT Admin page’s card. | T-381 | Live PRD 29 Oct 26 |
| 28 Oct 26 | A(K4, to: “No typed words for Duplicate card, Admitted to hospital, Moved out of area; the code pre-picked from the card’s status”) | Taking a patient off a list with those reasons (and Deceased) needs no typed words; the others still need a few; Admitted / Discharged / Deceased pre-pick their reason. The database rule relaxed for exactly those codes. | T-381 | Live PRD 29 Oct 26 |
| 28 Oct 26 | A ask only when the visit was confirmed so that user know that the patient/family might have different expectations.(K5, Set time) | Set time and the card’s Edit of a planned visit ask a reason only for a confirmed visit, saying the family were told a time; any other change saves at once and is logged old → new. The database checks the call. | T-381 | Live PRD 29 Oct 26 |
| 28 Oct 26 | A(K7, to: “Optimise runs at once, with a line naming the confirmed visits kept”) | The Proceed / Cancel question is gone on Waypoint and the CCT Admin page; the message says which confirmed visits kept their booked times. | T-381 | Live PRD 29 Oct 26 |
| 28 Oct 26 | B for any duration of time. So it will always flag when there is a future appointment booked. Allow the user to select “cancel future appointment” or just cancel this operation (keep future appointment) or “keep all appointments”(K10) | Booking a patient with a later visit booked, however far ahead, names it and offers exactly three answers; “Cancel the future appointment” books this one and cancels that one through the usual checks (reason “Replaced by another visit”). CCT Admin page and Waypoint. | T-381 | Live PRD 29 Oct 26 |
| 28 Oct 26 | B(B-P2-3, to: “A new booking within 14 days of a cancel counts as a reschedule toward the cap; no safe-window check”) | The database counts it and logs “Booked again after a cancel”; at the cap a clinician may book (an exception) and anyone else is refused with the database’s words, shown on Waypoint and the CCT Admin page. | T-381 | Live PRD 29 Oct 26 |
| 28 Oct 26 | A(E-1, to: “Every new number counts exactly what its list shows”) | Waypoint’s Communications count and the card counts ask with the list’s own “Hide system entries” setting; the database’s card counts take that setting. The phone at the next store build. | T-381 | Live PRD 29 Oct 26 |
| 28 Oct 26 | A(E-10, to: “Only admitted and a concern push; the rest go to Messages as NEW with no push”) | The push leaves out wrong number and reschedule / cancel wishes; the Urgent, NEW and My List wording in §4 corrected to what the app does. | T-381 | Live PRD 29 Oct 26 |
| 28 Oct 26 | A = but only for the users with the appropriate roles(K8, Manager / Clinician view) | In Waypoint’s Manager view a person who is also a clinician decides requests and sets limits without switching view; a manager only cannot (no button; the database refuses). | T-381 | Live PRD 29 Oct 26 |
| 28 Oct 26 | C please. Also, remove the mandatory fields, keep only the Initials, the postal code mandatory for now.(D-05, the front door for new patients) | Waypoint’s “+ Add patient” is gone when signed in; the wizard needs only Initials and Postal code (the database the same); “IHH (Palliative)” and a wider “First visit within” box (D-11, D-12). | T-381 | Live PRD 29 Oct 26 |
| 28 Oct 26 | A(to: “Build all of them along with your K1–K11 decisions” — the ready-on-word list, D-03 / D-04) | A new referral’s card reads “First visit by …” and Auto-fill places it inside its first-visit window instead of skipping it. | T-381 | Live PRD 29 Oct 26 |
| 28 Oct 26 | A(the same list: E-5, E-8, A-11, E-9 / C-9) | A cleared doctor reads “no doctor yet (awaiting cover)”; “seen on” and dialog dates read dd Mmm yy; Waypoint’s tabs wrap at phone width. | T-381 | Live PRD 29 Oct 26 |
| 28 Oct 26 | B(K1b-2, On hold at the reactivation date) | A daily job sets an On hold card Active on its reactivation date, with one log entry; the Admitted to Hospital page lists it “On hold ended — call to book” until a visit is booked; the job is on the scheduled-job watch. | T-381 | Live PRD 29 Oct 26 |
| 28 Oct 26 | B(the “please apply” message after a CCT Admin marks a doctor On medical leave) | The message comes from RosterEngine (the system), whoever marked it. | T-381 | Live PRD 29 Oct 26 |
| 28 Oct 26 | A please(G4, the visits on holidays and weekends) and not recorded (G1, the build item from the leave list) | A doctor’s list refuses a patient added on a public holiday or a weekend (any screen, any import); a visit outside a session on a leave day is flagged on the CCT Admin page; an import onto a leave day was checked to be refused (T-346). | T-381 | Live PRD 29 Oct 26 |
| 28 Oct 26 | A(build the ready-on-word items: C-P2, audit P2-C3) | The phone’s Clinician box is fixed to the signed-in doctor; visits are recorded under that name. | T-381 | Live PRD 29 Oct 26 (the phone app: from store build seq 23) |
| 28 Oct 26 | A(build the ready-on-word items: C-P2b, audit P2-C2 / P1-C1) | The phone’s Visit List is two routes, morning and afternoon, each from its own start; Optimise and drags stay inside each half. | T-381 | Live PRD 29 Oct 26 (the phone app: from store build seq 23) |
| 28 Oct 26 | A, and discharge the patient - "DEATH"…+ keep it, but require the admin team to enter a reason for the on-hold…(K1, K1b, the phone) | The phone’s card Status → Deceased / Discharged / On hold opens one sheet that names the visits released (Date and Cause of death optional; On hold: a reason and a date); Active resumes. The status shows on the Visit List and the Patients list. | T-381 | Live PRD 29 Oct 26 (the phone app: from store build seq 23) |
| 28 Oct 26 | A yes, reduce keyboard and mouse input where practically safe.+ A(K3, K4, the phone) | The phone’s card reason comes chosen when the change is one kind; Duplicate / Admitted / Moved out / Deceased need no words. | T-381 | Live PRD 29 Oct 26 (the phone app: from store build seq 23) |
| 28 Oct 26 | A ask only when the visit was confirmed…+ A(K5, K7, the phone) | The phone’s Set time asks a reason only for a confirmed visit; Optimise runs at once and names the confirmed visits kept. | T-381 | Live PRD 29 Oct 26 (the phone app: from store build seq 23) |
| 28 Oct 26 | B for any duration of time…+ A(K10, K11, the phone) | The phone’s Change visit names a later booked visit with the three answers (Enter = Keep all); no Change visit for a Deceased or Discharged patient. | T-381 | Live PRD 29 Oct 26 (the phone app: from store build seq 23) |
| 28 Oct 26 | A(E-1, the phone; and the ready-on-word items: the phone’s plan.set, T-376i) | The phone’s Messages count and a card’s Log count count what their list shows; a drag sends what the phone saw, so the database applies the difference. | T-381 | Live PRD 29 Oct 26 (the phone app: from store build seq 23) |
| 28 Oct 26 | B = turn the request to a clinician.(B-P2-3 at the cap, for anyone who is not a clinician) | At the reschedule cap a cancel-then-rebook by a non-clinician becomes a request carrying the day, the doctor and the time; not booked, said on the screen; Approve books it (the clinician’s exception), Decline leaves it unbooked and tells the person who asked. Older builds are still refused in words. CCT Admin page, Waypoint and the phone (phone: store build seq 23). | T-381 | Live PRD 29 Oct 26 |
| 28 Oct 26 | A(keep the cancel reason “Replaced by another visit”) | Kept as built in package 3. | T-381 | Live PRD 29 Oct 26 |
| 28 Oct 26 | C(K10: “Cancel the future appointment” with several later visits) | Every later visit is named and all are cancelled together (“Cancel the future appointments (N)”), each “Replaced by another visit”; one that would be refused or needs a clinician cancels none, said with that visit. CCT Admin page, Waypoint and the phone (phone: store build seq 23). | T-381 | Live PRD 29 Oct 26 |
| 28 Oct 26 | A(the database also refuses a new card that did not come through the New patient wizard) | One door for a new patient: a new card sent any other way is refused by the database in words every build shows; edits to existing cards unchanged. | T-381 | Live PRD 29 Oct 26 |
| 28 Oct 26 | A(the phone’s Admitted to hospital does what Waypoint does) | On the phone, Status → Admitted names the booked visits, releases what this person may and names the rest as kept, with a call-again date (the same database step as Waypoint). | T-381 | Live PRD 29 Oct 26 (the phone app: from store build seq 23) |
| 28 Oct 26 | A(the phone’s drag asks a reason only for a confirmed visit) | A drag of an unconfirmed visit on the phone asks nothing and is logged “not asked”, as Set time; a confirmed visit still asks why. | T-381 | Live PRD 29 Oct 26 (the phone app: from store build seq 23) |
| 28 Oct 26 | test carefully to ensure the fixes work as expected, is consistent and has no unintended consequences(Pre-PRD review fix) | Before the hospital app moves to one list: a phone or page not yet updated never wipes a visit booked since it last synced; two doctors swapped in one save swap their patients; the move to one list keeps each patient in its session’s morning or afternoon and sends no message; a session’s doctor change carries a patient who died that day; a doctor’s list is found by the doctor, not the spelling of the name. | T-381 | Live PRD 29 Oct 26 |
| 28 Oct 26 | test carefully to ensure the fixes work as expected, is consistent and has no unintended consequences(Pre-PRD review fix, second pass) | A phone not yet updated that saves twice in quick succession still keeps a visit the CCT Admin booked meanwhile; no out-of-date save (any app) brings back a visit that was cancelled, or released by On hold, Admitted, Deceased or Discharged; a doctor named only by a first name that two people share is not guessed. | T-381 | Live PRD 29 Oct 26 |
| 28 Oct 26 | test carefully to ensure the fixes work as expected, is consistent and has no unintended consequences(Pre-PRD review fix, third pass) | An out-of-date save is credited with exactly what that app knew: a doctor's own take-off and put-back stands; after the app has refreshed, a doctor's deliberate removal of a visit, or re-booking of a cancelled one, applies; a stale CCT Admin tab never takes off what the same person booked in another tab. One booking after two cancels counts as one reschedule, not two. | T-381 | Live PRD 29 Oct 26 |
| 29 Oct 26 | test carefully to ensure the fixes work as expected, is consistent and has no unintended consequences(Pre-PRD review fix, fourth pass) | A doctor with two devices not yet updated: each is its own writer, so one never takes off what the other booked. At the reschedule cap, "Plan a visit" by someone who is not a clinician sends the request and does not book the visit. | T-381 | Live PRD 29 Oct 26 |
| 29 Oct 26 | A(who may put a patient On hold or resume them: the CCT Admin and the patient’s own doctor) | On hold, a change to the hold, and On hold → Active are the CCT Admin’s or the patient’s own doctor’s, as Deceased / Discharged; the database refuses anyone else (every screen, an older phone included); Waypoint offers it only to them and says who may; the phone says so at Save. Was: any CCT doctor. | T-385 | Live PRD 29 Oct 26 (the phone app: from store build seq 23) |
| 29 Oct 26 | A please(Dr Roland: “for each visit, the travel time is exactly the same”) | A leg with no stored drive time is measured when a route shows it (one call to the app’s own route server, kept on the device); a straight-line estimate, said so, until then; Optimise uses the measured times. Was: a flat 10 minutes and 0 km for every such leg. The phone also finds the drive times a card already carries (it never did). | T-388 | Live PRD 29 Oct 26 (the phone app: from store build seq 23) |
How this page is kept
This page is the one place the CCT team (Dr Roland, the CCT doctors and the admin team) can read how the app decides things. It is a standing instruction (Kevin, 24 Oct 26) that any change to a CCT rule or process updates this page at the same time: the rule in its section, and a dated row in the Decision log with Kevin's words, what was built, the T-number and whether it is Live or DEV. When a change goes to the hospital app, its mark turns to Live.
If something here does not match what you see in the app, tell Dr Roland or Dr Kevin Awyong. The app is right about what it does today; this page is then out of date and will be fixed.