Scheduling in ICTHospital means two things: the appointments booked against a doctor on a given day, and the jobs that chase people about them without anybody pressing send.

Appointment day view in ICTHospital filtered by doctor and status

A doctor day, which is how availability is expressed here.

The day view is the schedule

Filter by doctor and you have their day. The system refuses to book two patients into the same slot and names the clash, while allowing back to back appointments, because touching ends are not a clash and that is how clinics run.

The check holds a database lock, so two clerks on the phones cannot both pass it and both write. More on booking.

Reminders run on their own

Two scheduled jobs, both safe to leave on cron:

  • php artisan hospital:appointment-reminder texts everybody due in tomorrow.
  • php artisan hospital:payment-reminder texts everybody whose invoice is short of what they have paid.

They run against your own records and send through ICTCore, so patient numbers do not have to leave your infrastructure to reach a gateway. If messaging is not configured yet, both report what they would have done rather than failing, which means you can put them on cron before the rest is set up.

Whether they go out as SMS or as voice is a setting. More on messaging.

What is not here

There is no shift rota or duty roster. A doctor’s availability is expressed by what is booked against them, not by a published schedule you draw up in advance and staff read off. The older product had a schedule screen of its own; this one does not.

If a rota is something you need, tell us what it has to produce and we can talk about it properly rather than leaving a page here implying it already exists.

See it rather than read about it. Booking and reminders are covered in the user guide.

The user guide walks the whole system in the order you would meet it, and the screenshots page has every screen. The source is on GitHub under the GPL v3.