Personal tools
You are here: Home / Self Book / Configuration

Configuration

How to configure the self book project for your use.

Initial Oscar Setup

  • Create a Provider. Ex: Last Name = Booking, First Name = Online, Type = receptionist (although if you use doctor it will still be secure)
  • Create a Login for the provider. Ex: Username=selfbook, Password=<use a long and strong password>, you can uncheck setting the PIN
  • Assign 'receptionist' Role to Online Booking Provider.


Oscar Schedule Templates

You can use OSCAR without setting templates for your schedule.  However for selfbook to work the program needs to know when you are available. 
This is the normal schedule template setting. Note: the template should be a private template for the physician.
 
1) Admin, Schedule Management, Schedule Setting
'Template Setting for Public' Select Physician, then click on Template Setting
 
2) Admin, Schedule Management, Schedule Setting
'Select a provider' select the physician from the pull-down list.
 
If there is an existing schedule, you can select it at the top and edit or delete it.
 
Enter the Date from / to.  You cannot span more than 2 years.
In the rightmost window, find the physician personal day-schedule template and click on it.
The templates that start with 'P:' are public templates. Skip them.
The personal templates will be at the bottom, prefixed with the physician's initials.

The templates should have specific codes for the use of selfbooking.  For example you can set the schedule for online available slots coded as 'Y', except for the last 2 slots of each day, which are 'X' and 'Z' .  'Y' slots become available 14 days ahead, 'X' slots become available 7 days ahead and 'Z' slots become available 2 days ahead.
 
When you click on the template, you will see what the appointment screen will look like on the far right side.
Working from right to left, select the location (optional), then the '<<' arrows to assign the template to that day of the week.
Enter a check mark for that day on the left side.
 
Repeat until all working days have templates assigned to them.
Click 'Next' to continue.
 
This will show you the holiday screen. You can block off certain standard holidays, if you want.
 
Note: If you are creating Appointment Slots for a long period, this step may take a few seconds.
 
You can test the Oscar setup, by using the [S] link on the appointment screen.  It uses the schedule to search for available slots.
 
The receptionist can still book ANY slot, but that slot will no longer be available online.
It is also important to make sure that any 'Do Not Book' appointments cover ALL the slots that should be made unavailable.

Selfbook Configuration

 
Oscar URL, Username, Password

these values were covered in the installation setting.  If you haven't set them yet now is a good time at

var/lib/tomcat7/webapps/selfbook/WEB-INF/classes/config.xml 

 

Final SelfBooking Setup

adjust the logic for the questions and their flow to meet your needs in the following file

var/lib/tomcat7/webapps/selfbook/WEB-INF/classes/demo/demobooking.xml

1) If you have enabled multisite you need to set which site this instance of selfbooking is booking for.  There can be multiple instances of self-book, one for each site, although you will need to name the wars separately
<location>HFHT</location>

2) The patient matching is done at least in part by the supplied health number.  Validations can be

  • "hin" which will pass any of the patterns of Canadian health cards
  • "hinqc" which looks for four leading characters followed by an 8 digit number AAAAnnnnnnnn (currently the format for Quebec health cards)
  • "hinbc" which looks for a 10 digit number (currently the format for BC and Ontario)
<algorithm  questionNo="1" nextQuestionNo="2" displayText="EnterHealthCard" answerType="text" validation="hinqc" ></algorithm>

3) Edit the question flow to meet your needs.  The questions need to follow numerically and start at 1.  A simplified working list is below

<algorithm  questionNo="1" nextQuestionNo="2" displayText="EnterHealthCard" answerType="text" validation="hin" ></algorithm>
<algorithm  questionNo="2"  displayText="DoYouHaveAFile" answerType="radio"  validation="" >
        <answerRadio displayText="Yes" nextQuestionNo="4"></answerRadio> 
        <answerRadio displayText="No" nextQuestionNo="3"></answerRadio>
</algorithm> 
<algorithm  questionNo="3" nextQuestionNo="" displayText="CallClinic" answerType="end" validation=""></algorithm>
<algorithm  questionNo="4" subQuestionNo="5" nextQuestionNo="" displayText="WhatIsYourDoctorName" providersNo="" answerType="listprov" apptType="FUFD" apptDesc="FUFDD" validation=" 1 2 3 "></algorithm>
<algorithm  questionNo="5" nextQuestionNo="" displayText="ConfirmAttendingDoctor" providersNo="" answerType="checkbox" validation=""></algorithm>

3) Add provider number to 'WhatIsYourDoctorName' question (space-delimited list for validation).  The values allowed have to match the alias setting for each provider below
<algorithm  questionNo="4" subQuestionNo="5" displayText="WhatIsYourDoctorName" answerType="listprov" apptType="FUFD" apptDesc="FUFDD" validation=" 1 2 3 "></algorithm>
 
2) Add the appointment codes that you will be using, this is needed for the program to scan for open spots.  Note below that the code 2, which might be for a 30 min slot, was set up on an appointment template with 15 min slots.  Its the template slot size that is entered here for duration.
<appointment_code duration="15" code="1"></appointment_code>
<appointment_code duration="15" code="2"></appointment_code>
<appointment_code duration="15" code="W"></appointment_code>
3) The appointment template codes have to be entered into the demobooking.xml file for each physician.
 
In the following, 1 is the alias used for validation for the what is your doctor question above, 123 is the Provider number of the actual provider and the following appointment codes are: W = 2 days buffer which means they are not available until 2 days prior, X = 7 days, Y = 14 day.  Max days ahead means that you cannot self book an appointment more than this setting for this physician (in this case 14 days).  The duration here 5 is set for the actual time slot that will be booked by selfbook.  For code 2 above you would use 30 min which would be the size that you want the appointment to cover in the appointment screen.
<allowedProvider alias="1" providerNo="123" role="PROVIDER" name="Lastname, Firstname">
    <allowed_appointment id="1" appointment_codes="Y,X,Z" duration="5" sex="A" ></allowed_appointment>
    <filter>org.oscarehr.oscar_selfbook_component.booking.filters.ExistingAppointmentFilter</filter>
    <!-- <filter>org.oscarehr.oscar_selfbook_component.booking.filters.MultiUnitFilter</filter> -->
    <filter buffer="30">org.oscarehr.oscar_selfbook_component.booking.filters.FutureApptFilter</filter>
    <filter daysbuffer="2"  codes="Z">org.oscarehr.oscar_selfbook_component.booking.filters.OpenAccessFilter</filter>
    <filter daysbuffer="7"  codes="X">org.oscarehr.oscar_selfbook_component.booking.filters.OpenAccessFilter</filter>
    <filter daysbuffer="14" codes="Y">org.oscarehr.oscar_selfbook_component.booking.filters.OpenAccessFilter</filter>
    <filter maxdaysahead="14">org.oscarehr.oscar_selfbook_component.booking.filters.MaxDayAheadFilter</filter>
</allowedProvider>

 

You do NOT have to restart tomcat for these changes. They are effective as soon as you save the file.

A backup before you make the changes is always a good idea.

 

Mixed Slot Durations

Sometimes you have schedules with mixed durations. 

Eg. 8-12 has 20 minute slots, then 12-13 has 15 minute slots.

When creating the Private Template for the Provider, you need to use a duration of 5 minutes to accommodate all the correct slot start times. 

Eg. The 20 min. hour would be entered as 8 - - - 8 - - - 8 - - - for a total of 60 minutes. The 15 min. hour would be entered as 1 - - 1 - - 1 - - 1 - - for a total of 60 minutes.

Important: The duration="5" will work in this case. Using 20 or 15 will not work.

 

Multiple Provider Roles

If you have providers with different roles, you can create multiple aliases for the same provider and use a different name="" to distinguish between them.

Eg. A physician want to have 30 minute slots for annual exams and 15 minute slots for follow-ups.

You need to create 2 AllowedProvider blocks with different alias="" codes, like 1a and 1b

Eg. allowedProvider alias="1a" provider="1000" name="Dr. Kildare - 30min/Annual" appointment_codes="0" duration="15"

and allowedProvider alias="1b" provider="1000" name="Dr.Kildare - 15min/follow-up" appointment_codes="1" duration="15"

Note: 1) You need to enter BOTH aliases in line that has answerType="listprov"

2) The duration in both blocks matches the minimum duration times, which is OK, because the duration="x" is not displayed to the patient.

 

 

 

Document Actions