Thursday 30 June 2016

OpenDental SMS Plugin - Correct communication log type for sent text messages

Issue
Previous, SMS plugin adds a communication log (commlog) record for each sent text. The commlog type is set to the first type in commlog type definition (below)


Therefore, commlog of a patient looks like below:

Solution
The latest SMS plugin version 16.1.31 has fixed this issue. In order to do so, you need to set up the commlog type list in particular order (go to Setup/Definition => CommLog type and use Up and Down button):
  1. ApptRelated
  2. Recall
  3. Financial
    ...
     The last is Misc

The plugin will use:
  • first type for Appointment confirmation texts
  • second type for Recall texts
  • third type for Payment confirmation texts (you may no use this feature see here)
  • last type is Misc for all other texts






Monday 6 June 2016

An example of how to setup Google Calendar Sync plugin

(from rhaber posts in OpenDental forum)

With great thank to Dr Richard Haber who has been testing the plugin intensively for us and provided valuable feedbacks to improve the plugin

(source: http://opendentalsoft.com/forum/viewtopic.php?f=1&t=6035)

Now I want to share with you how I am planning to use the ONLINE scheduling with simplybook.me
(or you can use any other similar service)
I have not implemented that in my office yet

- Mopensoft plugin will allow OD to sync to Google Calendar (automated and manual sync options available)
- Google Calendar will sync to simplybook.me (or any other provider) - ..... simplybook.me offer 2 ways sync with google calendar and not just integration with google calendar.
- Email is sent from simplybook.me to the provider informing the office that a booking is made.
- In OD, you get a pop up that an appointment was made online (not finished yet, Minh working on it ......)
- Front office enter the appointment in OD, 
- and Mopensoft plugin autosync, will sync OD to Google Calendar again

I have not started this online booking yet , still testing for over a week now and it looks fine, 
http://www.simplybook.me offer one month free trial to test their services.

Through http://www.simplybook.me I was able to create these options

Image

I decided to design this online booking webpage on my website, and the link will be emailed to our recall patients, and maybe to those patients that need treatments.
so when a patient click on one of these options, the booking calendar open directly without going through all the additional options that are provided by simplybook.me widget.
I just wanted to bypass all the other additional pages.

You can create any options that you are interested in, depending on your office needs

Again, I am still testing it, and it look very promising

If you test it, and you find any bug, please post it here or email it to mopensoft

----------------------------------------------------------------------------------------------------------

http://opendentalsoft.com/forum/viewtopic.php?f=1&t=6200)

I started using a different online scheduling, similar to OD web schedule, for our patients to make their own appointments, and it is a very GOOD start. 
http://opendentalsoft.com/forum/viewtopic.php?f=1&t=6035

last year , my receptionist started collecting patients emails and cell phone numbers. so we have a good database.
We presented this small UPDATE slip to “ALL” of our patients ( every patient that walked through our door)
presented to them as an update of personal information.

. UPDATE 
Last Name: ____________________ First Name_________________________
Email address: _____________________________________________________
Wireless Phone: (_____ )____________________________________________

Telling your patients about THIS ONLINE BOOKING is always the missing part.

1- We sent an email to all of our active patients telling them about the "New Online Scheduling" that is available to them now

Subject: NEW Online Scheduling - Book Online your next dental appointment! 

We are happy to inform you that you can now book your appointment online with our office 24/7. This option is available on our webpage http://www. {URL} 
Call our office (123) 456-7890 if you are having any difficulty finding the right time to schedule your appointment. 
We will do our best to accommodate your schedule.
We look forward to seeing you at your next appointment. 

2- In all of the recall template Email messages we added this message too: 
"New Online Scheduling is available now 24/7 on our webpage {URL} "
from the main Menu, go to Setup/ Appointments/ Recall
We mainly sent it to those patients who are overdue for recall, 

3- we added that also to the Text messaging and Email "CONFIRMATIONS" templates
so patients will know that online scheduling is available to them now
"New Online Scheduling is available now 24/7 on our webpage {URL} "

4- we added it to the message that is sent on the recall reminders post cards too
(if we do not have a patient email or cell phone number)

5- we added it at the bottom of our signature in any email sent to patients

6- " I " tell every patient that comes to our office that next time they can try it and give us their feed back

7- Made a special appointments options on our contact webpage mainly for NEW PATIENTS to use it
Easier for the new patients to schedule their appointment


Note: The 2 ways TEXT MESSAGING was the best thing I added to OD
We have been using it for over a year now and it really works!

Wednesday 1 June 2016

A toy model: tennis team roster


We put in a tennis team to play Victoria Tennis Pennant grade 7 this winter.

  •             There are 6 players in the team and 5 of them are keen to play as much as possible while I only want to play occasionally.
  •             There are 8 team in the section so we decide to make have 5 players playing 10 weeks and I only play 6 weeks.
  •             There are 7 weeks’ away and 7 weeks’ home.
  •             Odd weeks are for single matches and even weeks are for double matches
  •             One player doesn’t have car so I make a trade off with him, he plays as many home matches as possible and I’m happy to play more away matches.
As the round robin schedule came out, the captain needs to make the roster which is a bit tricky to make everyone happy. For example, I only play 6 matches so I do not want to play an opponent twice, or player want to play even single/double matches, home/away matches, or player do not want to play/no-play too many weeks in a row, etc.
So I decided to put it into a model and let the optimization solver work out the best roster.

The model

Input data:
  •           Number of team = 8
  •           Number of round = 14
  •           Number of players = 6
  •           Number of players for each week = 4
  •           Array of number of playing weeks for each players: array of 6 elements.
  •           Home and away schedule: and array of size 14 with equal home and away elements
  •           Single and double schedule: and array of size 14 with equal single and double elements
  •           Player 1 prefers play home
  •           Player 5 only play 6 weeks (it’s me)

Constraints:
  •           Except Titus and Minh, everyone has number of home and away match difference of no more than 1 
  •           Everyone has number of single and double match difference of no more than 1 
  •           Everyone except Minh play other team at least once
  •           No one play more than 4 weeks in a row
  •           No one off more than 2 weeks in a row
  •           Except me, each player plays all other teams at least once.

Objective:
  •           Maximum player 1 home matches

Implementation: The model is built in Minizinc (www.minizinc.org) and run on 2 solvers comes with Minizinc IDE, Gecode  and G12 FD.


Result: Both found optimal solution less than 1 second and give player one 7 matches.



Monday 30 May 2016

Open Dental SMS plugin – Send payment SMS settings


If you upgrade to Open Dental 16.1 and use MOpenSoft SMS plugin, there is a new plugin parameter to send payment confirmation SMS once a payment is entered to Open Dental. You can define the message content to use paramenters inlucding [NAMEF], [NAMEL], [NAMEFL], [PAMOUNT] and [PDATE], [PTIME], and the default parameter value is: “Your payment of [PAMOUNT] was received in [PDATE]. Thank you!” (see screenshot below)
If clinics opt to stop this feature, you only need to delete the parameter value by double click on the parameter row (see screenshot above) and delete the content (see screenshot below)

Sunday 22 May 2016

Open Dental executables compiled by MOpenSoft


For the purpose of testing our plugins, we regularly compile Open Dental from the open-source code from their repository. We believe that it's worth to share it publicly so that our clients can have a try with MOpenSoft plugins before making decision to upgrade their Open Dental software.

NOTE:

  • We compile Open Dental from original source code without any modification
  • Our focus is Open Dental plugin development and we do not intend to distribute or support Open Dental. Please contact Open Dental software company or your local distributor for support
  • CDT license is not included, US dentists should contact Open Dental Software for support
We try to compile the latest version of Open Dental (both stable and beta) every week.

Please contact us if you have any feedback.

Release update:
- new versions have been compiled including 15.4.52, 16.2, 16.3, 16.4

Tuesday 17 May 2016

Gmail Monitor


This tool monitors your Gmail by labels and send notifications when there are unread emails. It can be used as a supporting tool to enable online booking for OpenDental users where booking email will be sent to a Gmail account via clinic website or online booking service such as youcanbook.me or simplybook.me.
The simple online booking confirmation for OpenDental users are:
  •           Patients make online bookings
  •           Clinic receive bookings emails using a Gmail account
  •           Gmail Monitor will send notifications when booking emails arrive
  •           Clinic’s receptionist will check emails, confirm with patients and add new appointments into OpenDental
  •           Google Calendar sync plugin will sync all new plugin with Google Calendar
  •           Clinic’s available booking time is updated on clinic’s website using Google Calendar share function or online booking provide i.e. simplybook.me


How it works

Below is a Gmail account with a number of new emails and 1 new email under SIMPLYBOOK label. Instructions for setup labels and filters in Gmail is available here.

Gmail monitor will start with the main GUI where you can setup you Gmail labels to monitor. If you leave the textbox empty, it will monitor all emails in your selected Gmail. Multiple labels need to be separated by “;”.
You can setup the auto refresh interval i.e. 5 minutes. In the screenshot below, the label is SIMPLYBOOK and interval is 1 minute.
When the monitor start, it will add an icon into Windows system tray (bottom right corner of the screen)

By clicking Refresh button, it will check unread emails of selected label and add into the result textbox (see screenshot below)

If there’re new email, a balloon tip (screenshot below) will pop-up every XXX minutes (interval) to show how many unread emails (i.e. booking emails have not been check by receptionist)

The next two screenshots are example when no label is selected.


OpenDental - Google Calendar Sync

DOWNLOAD
(This plugin can sync OpenDental appointments to your Google Calendar)

1         How to set up Google Calendar 

In order to sync OpenDental appointments to Google Calendar, you need to create one calendar for each non-hidden operatory that is shown in your Appointment Module, operatories that are also in the"Operatories list" below (Setup/Apointments/Operatories menu).
For example, I have the following visible operatories: Operatory 1, Operatory 2, Operatory 3 and Hygiene Op 1 in my OpenDental.  I will have to create these 4 calendars with the "same name" in Google calendar. (see pictures below)

2         Update OpenDental config file

Since Google Calendar API is using extra DLLs library, we need to change “OpenDental configure file” to enable Google APIs. The a sample configure file in the plugin folder for download.

  1. Open OpenDental.exe.config with Notepad    
  2. Notepad must be " run as administrator", this file needs Administrator privilege to save.
  3. Go to Windows "Start Menu", type "Notepad" in the search box, right click on it and run it as administrator. In Notepad menu, click on File/Open and chose C:/Program Files (x86)/Open Dental/OpenDental.exe.config  
  4.  Find <runtime> element.  It should be at the end of the file.
  5. Add the following xml content into <runtime> element.
    IMPORTANT: do not copy this text from PDF document which might be corrupted your setting file because of PDF character format. Download from this website or type the config manually.
<assemblyBindingxmlns="urn:schemas-microsoft-com:asm.v1">
                <dependentAssembly>
                                <assemblyIdentity name="System.Runtime" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
                                <bindingRedirectoldVersion="0.0.0.0-2.6.10.0" newVersion="2.6.10.0" />
                </dependentAssembly>
                <dependentAssembly>
                                <assemblyIdentity name="System.Threading.Tasks" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
                                <bindingRedirectoldVersion="0.0.0.0-2.6.10.0" newVersion="2.6.10.0" />
                </dependentAssembly>
                <dependentAssembly>
                                <assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
                                <bindingRedirectoldVersion="0.0.0.0-2.2.29.0" newVersion="2.2.29.0" />
                </dependentAssembly>
                <dependentAssembly>
                                <assemblyIdentity name="System.Net.Http.Primitives" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
                                <bindingRedirectoldVersion="0.0.0.0-2.2.29.0" newVersion="2.2.29.0" />
                                </dependentAssembly>
                </assemblyBinding>

The original <runtime> element should look like the screenshot below
The new <runtime> element should look like the screenshot below

3         Install the plugin in OpenDental

Download the "Required Dlls" zip file, unzip it into your OpenDental folder (usually under C:/Program Files/OpenDental)
Download the "Plugin File" that matches with your OpenDental major version (ie. 16.1),

  • delete version number from plugin file name, it means rename the file name to mopensoft.odplugins.apptsync.dll, 
  • place it in to your OpenDental folder


You need to create an OD program link for this plug-in.   In OD main menu, go to Setup/Program Links and click Add button to create and enable this plugin (more instructions are available in this link: http://www.opendental.com/manual/programlinks.html)
Enter the same text provided in the circled textboxes like the screenshot below:

Parameters and Auto-sync
·         sync.auto.anychange: this specifies whether any change to the appointment will automatically sync to Google Calendar; including add new, delete, update, move, etc... . Value "0 " is do not sync and "1" is sync automatically. This feature may cause a tiny delay when you make any appointment changes. Currently, it’s implemented but not used. Hooks need to be added to OpenDental first.
·         sync.auto.frequency.minute: this specifies the frequency of the auto-sync. For example, the default value is "30" which means the sync is triggered every 30 minutes automatically.
·         sync.interval.day: this specifies how many days from today, the appointments are synced. For example, the default value is "30" which means the appointments between today and the next 30 days will be automatically synced to Google Calendar.
The setting shown in the screenshot above specifies that every 30 minutes, all appointments between today and the next 30 days will be synced to Google Calendar.

NOTE: to test the auto sync, you can change the frequency to 1 minute instead of 30 minutes.

Manual sync
When you click the plugin button "gcSync" in OD main menu, a pop-up dialog will appear and will ask you to enter the time period that you want to sync with Google Calendar. Here you can modify the default preset value ( sync.interval.day)   from 30 days to any time period that you need.
Click “Sync OD -> Google” button to sync appointments.

4         Google authorization (required one time only)

Be sure that no other Google account is open in the background or in a different browser. Sign out of all your Google accounts if you have few ones open.
Once you have completed the OpenDental and Google Calendar settings, now you need to authorize the plugin to access your Google Calendar.
When you log out and log in to OpenDental, automatically the plugin will open your internet browser and bring you to your Google account login page.  Login to your Google account and enter the correct username and password of the Google account that has the correct calendars created in it.
The Google calendar settings will ask for permission to "Allow" access.  Once the access is granted, the plugin now can sync OpenDental appointments with Google Calendar.

5         How to change to another Google Calendar account.

The first time you run Open Dental with Google Calendar plug-in, and after you “Allowed” access to Google Calendar, an access token (mopensoft_gcal_sync.json)  will be stored in your “.credentials” Folder (/Documents/.credentials/mopensoft_gcal_sync.json)
This will be used to access your selected Google Account so that you do not need to enter your Google username and password each time you are running the plug-in.
If at any time you decide you want to use another Google Account, i.e. setup a new clinic calendar, you just need to delete the “mopensoft_gcal_sync.json” folder.
Once deleted, and the next time you run OpenDental, you will be asked to login to the new Google Account that you are switching to, and you will enter the new username and password.
Reminder: if you are switching to NEW Google Calendar account , you must create the Google calendars with the “same name" as your operatories (see step 1)