An Appointment is a booking of a healthcare event among patient(s), practitioner(s), related person(s) and/or devices for a specific date/time. At its core, it manages the scheduling of healthcare activities and ensures efficient coordination between all involved parties.
Appointment Design
Appointments are inherently complex to design because they can be managed in a number of ways and the nature of the organization changes the way in which the appointments are handled.
Palliative care has a very rough appointment system where the date matters more than the time, For specialists booking the time matters along with the date, for general practitioners tokens might be a better system because there might be a lot of patients scheduled for a single time period. When designing a system that can manage appointments, all of these must be taken into consideration.
An abstract system must be built so that the same system can be used with different type of resources when needed.
Concepts
Schedule
A schedule is used to create a repeatable entity of time, ie I am available everyday from 3-4 for the month of august, this could be one schedule, there could be another one that says every monday i am available from 12-5 with 1-2 as lunch break. This repeatable entity in general is called a schedule.
A schedule will have repeated day of week ( for example Sunday, Monday ) and a start date and an end date.
Slot
A slot is an individual entity of a schedule, ie All Monday's in August from 1-2pm and 10-11am is a schedule and 1-2pm and 10-11am are two slots.
To efficiently manage patients a single slot can be divided into multiple slots automatically given a time frame. this is useful for cases where you have fixed duration spent for a single patient. You can also skip dividing and assign multiple patients a single slot, this can be useful for cases where precision is not required.
In the first case the patient can choose from specific times like 11:30-12:00 or 12:00-12:30 or 12:30-01:00
and in the second case the patient can only choose 11:30-01:00 and the patient can be assigned a token on visit.
Ad Hoc Booking and token systems. ( Queue System )
This is an abstract system that allows tokens and scheduling to be applied for any entity.
At its core its just a list of patients with priority. A token is assigned to the patient on adding to the list