Reminder send logic
I have been playing and looking at the code trying to understand how reminders are handled by Reporting|Reminders. I think that the logic is as follows. I would appreciate someone confirming that I have understood it.
Each Reminder Type has a Reminder Interval. When the reminder is initially created this is used to calculate the DueDate (by adding the Interval to the current date).
It also has a Cancel Interval. When Report|Reminders is run, any reminder with a DueDate+CancelInterval < today is shown as Action=Cancel.
Each Reminder Type can have zero or more Templates. For each template, you set the:
- Document Template - used to print the reminder
- Sent Count - defines when the template is to be used with zero meaning the first reminder, 1 the second etc
- Overdue Interval - used to calculate the NextDueDate, ie when the 2nd, 3rd, etc reminders are due to be sent. Hence if for the SentCount=0 template, the Overdue Interval is 3 weeks, then the second reminder will become due 3 weeks after the Due Date; and if for the SentCount=1 template, the Overdue Interval is 5 weeks, then the third reminder will become 5 weeks after the original Due Date.
- List checkbox - if checked then no reminder will be printed but the reminder will be shown on the List of reminders printed as part of the 'Send All' processing. Note that if List is checked, then you still need to specify a Document Template, even though it will not be used.
Hence, for a correct setup, you need templates with SentCounts set to 0,1,2,... for as many reminders as you need, and each of these should have an increasing Overdue Interval. Note that if no template is specified for a given Sent Count, then the reminder will be treated as though it had a template with the List box checked. If no templates at all are specified, then the reminder will fill function simply as an aide-memoire since nothing can be generated to send to the customer.
The Cancel Interval for the reminder type should be set to be a little more than the Overdue Interval set for the "last" template that you have - ie the one with the highest Sent Count. If you set it less than the last Overdue Interval, then your reminders will be cancelled before all the reminders that you planned have been sent.
When Reporting|Reminders is used, it displays the reminders that have status 'In Progress' and:
- are new (and thus have a sent count of 0) and have a due date between the specified from and to dates, ie from <= due <= to
- have Action=Cancel, ie DueDate+CancelInterval < today
- are overdue (and thus have a sent count > 0) and have a next due date between the specified from and to dates
The Action column shows what will happen during the Send All processing as follows:
- List - meaning that the reminder will be shown on the list of reminders printed using the Patient Reminders Report (or more specifically the first Document Template found with type "Reminder Report"
- Cancel - meaning that the reminder will be cancelled
- Skip - meaning that no processing will be done either because there is no template at all specified for the reminder type, or because there is no template with the current Send Count
- Post - meaning that a reminder will be printed and will have to be posted to the customer
- Email - meaning that the reminder will be emailed to the customer
The decision as to whether to Post or Email is made on the basis of whether of not the customer has a email address with the purpose Reminder.
One final trick. The Reminder Report document template is used both during the Send All processing, and if you click the Report button. (Report prints all the reminders that have been found irrespective of their Action settings.) However, you can make the system switch templates by changing the selected Practice Location to a one that has a document template of type Reminder Report specified. Hence if you create a dummy PL called say "Reminders Labels" and you have two document templates of type Reminder Report one of which generate a standard list (like the standard Patient Reminder Report), and the other which generates labels called say "Reminder Labels", and you set this as a template used by the PL "Reminder Labels", then if you switch to this PL and then use Send All, all the reminders with Action List, will appear as a set of labels.
IfI have missed anything or there are errors in the above, I would appreciate the corrections.
Regards, Tim G
Re: Reminder send logic
I think the overdue interval is always based from the original due date not additive from the last send date...
Ie 1 is set at 30 days
2 is at 45
3 at 60
I set the cancel interval at 1 year after the reminder is overdue.... Don't set it too close to the overdue because once are reminder cancels the staff can't see it.... Ie the animal is no longer overdue. Ideally if a client comes in 6 mts later u want e staff to notice and suggest they bring the pet up to date
Sent on iPad
Ben c
Re: Reminder send logic
Thanks Ben, I have edited the text to clarify this. Regards, Tim G