This project will provide rostering support in OpenVPMS.
- users are rostered to an Area, which is linked to a practice Location
- Areas can have zero or more Schedules
- user availability is determined by roster events, which have a start time, end time and Area
- extend the Booking API to enable clinician availability to be queried
Rostering Workspace
A new Rostering workspace will be added to Workflow, listed under Tasks.
Rostering will performed in a new Rostering workspace. Two views will be provided:
1. roster by Area, showing who is rostered on
2. roster by user, showing when they are rostered on, and to which Area
Roster Editing
A calendar is used to roster a user on or off.
This is displayed as a grid with the columns representing the days.
Shifts are placed to determine when a user is rostered on.
Each shift contains the:
- roster area
- practice location
- start and end time
- the user. This is optional. If no user is assigned, the shift is not yet filled.
Appointments
When a clinician has a roster, attempting to select them for an appointment when they are not rostered on will display a warning:
<Name> is not rostered on.
If a clinician already has an appointment at the same time, it will display a warning:
<Name> already has an appointment at this time for <schedule>.
In all cases, the user can keep the selected clinician, or choose a different one.
Booking API
The booking API will be extended to:
- return a list of clinicians who work at a location
- return the availability of a clinician
This will be determined from their roster, and any appointments that have already been scheduled for them
The response will include an optional list of schedules, in case clinicians can be rostered to specific schedules in future
- allow bookings to be made for a specific clinician
If the clinician is not available at the time, a note will be added to the booking.
Exclusions
This project will not support synchronisation with 3rd party rosters or calendars.