=============== OnCall Platform =============== .. _oncall-label: The RingRx OnCall platform is a powerful, reliable solution for managing complex multi-schedule OnCall teams .. contents:: :local: How OnCall works ---------------- The OnCall platform starts from an OnCall group. A group will typically represent a department or team with shared responsibilities inside a clinic or hospital. An OnCall group will then have one or more shifts, however it is extremely common for a single group to have many of both, often overlapping. .. image:: images/oncall_schedule.png .. _oncall_call_flow-label: OnCall Call Flow ===================== An OnCall group will operate in one of two modes. ``Oncall Mode`` =============== This mode answers the call, collects a message and utilizes the full platform auditing capabilities. This is most commonly used when the OnCall group will be called by patients or otherwise should be triad. * User dials in to OnCall system and is greeted by the OnCall platform * User is prompted to describe their problem and enter a call-back number * The recorded message is immediately preserved along with the callback number in case the call becomes disconnected from here. * Now we evaluate who is OnCall at the exact moment of the call. * What shift is active * Who is the first provider on that shift * What is that provider contact preference * If the OnCall provider has opted to receive notifications via Email or SMS about new OnCall messages these will be dispatched now only to the first provider in the list for the shift. :If Patch: We will immediately try to reach the provider by the method specified in their contact preference * When they answer the call to their preferred method, they will be greeted by the OnCall platform * They will be challenged for their OnCall PIN to ensure we are talking to the provider before any PHI is exchanged * Once they have authenticated themselves, we will play the recorded message, and give them options to: #. Connect the held caller #. Hear the users callback number #. End the call (The caller will be informed that a provider will call them back) :If Relay: We will inform the caller that a provider will call them back, then terminate the call and begin trying to contact the OnCall provider * When they answer the call to their preferred method, they will be greeted by the OnCall platform * They will be challenged for their OnCall PIN to ensure we are talking to the provider before any PHI is exchanged * Once they have authenticated themselves, we will play the recorded message, and give them options to: #. Hear the users callback number #. End the call (The caller will be informed that a provider will call them back) #. Call the caller back at their contact number * If the message has not been marked as read after so many attempts, we will move on to the next provider on shift. * When we run out of providers on shift, we will stop trying. ``Router Mode`` =============== This mode leverages the multi-tiered scheduling capabilities of the system to just dispatch the call to the scheduled user but otherwise does not get involved in the call. * User dials in to OnCall system * Now we evaluate who is OnCall at the exact moment of the call. * What shift is active * Who are the providers on that shift in order * We will now begin ringing each provider on that shift, in order according to their personal OnCall preferences (which device, how long) * If a provider answers, we are done * if no provider answers, the call goes to the OnCall voicemail box OnCall Group Settings --------------------- The OnCall group has global settings that define its behavior ``Name`` ======== The name of the OnCall Group ``Extension`` ============= The extension of the OnCall Group ``Minutes`` ============= How many minutes to wait between relay attempts ``Mode`` ======== The operating mode of the OnCall group ``Retries`` ============= How many times each user on a shift will be tried before moving on to the next user ``Caller ID`` ============= The callerID the group will use for its outbound calls ``Shift Alarm Minutes`` ======================= How many minutes to look forward looking for a time where there will not be anyone OnCall. This will dispatch an alarm email ``Music On Hold`` ======================= What media file to play to the caller while the group locates an OnCall provider ``Mailbox`` ======================= What mailbox will be used to store the OnCall messages. **All users on all shifts will be implicitly delegated access to this mailbox** ``Record Calls`` ======================= This will cause OnCall calls themselves to be recorded (This includes the outbound relay attempts) ``Play Recording Announcement`` ==============================+ If recording is enabled, this will play a warning to the caller that the call will be recorded. ``Tags`` ======== Tags to apply to all calls passing through this OnCall group Repeated Shifts ---------------- Repeated shifts will occur on the same day, from the same time, to the same time, every single week. ``Start Time`` ============== The time of day (in your local timezone) that the shift begins ``End Time`` ============ The time of day (in your local timezone) that the shift ends ``Days`` ============ These are which weekdays we will apply the shift on. ``Providers`` ============= One or more users that will be on-call when this shift is active. Order matters here as the top one will be called first. .. important:: Repeated shifts may not cross midnight. If you want one to go overnight, you must make two, one from midnight to its AM end, and one from its PM start until 11:59 One-Time Shifts --------------- One-time shifts have a specific start time (Year, month, day, hour, minute) and a specific end time ((Year, month, day, hour, minute) and once the end time has passed, these will never be valid again. ``Start Date Time`` =================== The date and time of day (in your local timezone) that the shift begins ``End Date Time`` ================== The date and time of day (in your local timezone) that the shift ends ``Providers`` ============= One or more users that will be on-call when this shift is active. Order matters here as the top one will be called first. .. important:: One-time shifts MAY cross midnight, so if the end-time is before the start time it is assumed to be on the next day, and the shift will be active overnight Shift selection --------------- As you can see, it is possible to build a complex series of overlapping schedules. RingRx OnCall uses a most-specific-wins algorithm. This means: * When multiple shifts cover the same point in time, we take the shift that covers the smallest portion of time * One-time shifts take precedence over repeated as they are more specific Provider contact ---------------- Once a shift has been identified we need to identify how to contact the user that is actually on call. Details on Provider OnCall profiles can be found in that section: `OnCall Settings `__ Users have rules that very closely resemble Repeated Shifts :Name: A name for the rule :list of days: These are which days we will apply the rule on. :start time: The time of day (in your local timezone) that the shift begins :end time: The time of day (in your local timezone) that the shift ends :Method: How should the user be called (Ring my phone, Simultaneous, Sequential, Forward) these are the same behaviors for routing your calls under "My Phone" :Call Handling: Specify if you want OnCall callers to be held on the line during the initial call while you are called, or if you want the call to terminate and just have the message relayed to you .. important:: OnCall user rules may not cross midnight. If you want one to go overnight, you must make two, one from midnight to its AM end, and one from its PM start until 11:59