If you are struggling to fill your hygiene schedule, you need a reliable way to identify patients who are past due for their cleaning. This open dental recall list with phone query provides a clean, exportable report of all active patients who have missed their due date, complete with their primary contact numbers.
The Query
Copy and paste the following code into your User Query window. This query looks for active patients with a recall due date prior to the date you specify.
/* Set the date to find all recalls due before this date */
SET @DueDate = '2026-03-01';
SELECT
p.LName,
p.FName,
p.HmPhone,
p.WirelessPhone,
p.WkPhone,
r.DateDue,
r.DatePrevious
FROM patient p
INNER JOIN recall r ON p.PatNum = r.PatNum
WHERE p.PatStatus = 0
AND r.DateDue < @DueDate
AND r.DateDue > '1900-01-01'
ORDER BY r.DateDue ASC;
How to Run This Query
- In Open Dental, go to Reports in the Main Menu.
- Click User Query.
- Paste the query provided above into the large text box.
- Click Submit Query.
- The results will display in the grid below. You can click Export to save this list as a CSV file for Excel or to import into your patient communication software.
Understanding the Results
- LName / FName: The patient's last and first name.
- HmPhone / WirelessPhone / WkPhone: The contact numbers pulled directly from the Family Module.
- DateDue: The date the patient was officially due for their hygiene appointment.
- DatePrevious: The date of the patient's last completed hygiene visit, which helps your team verify if the recall interval is accurate.
How to Customize
You can easily adjust this report to fit your specific needs:
- Change the Date Range: Modify the date in the first line:
SET @DueDate = '2026-03-01';. Change the date to whatever cutoff you prefer (e.g., '2026-01-01'). - Filter by Billing Type: If you only want to see patients with a specific billing type (like "Standard"), add this line before the
ORDER BYclause:AND p.BillingType = 1. (Note: You will need to check your Setup > Definitions > Billing Types to find the correct number for your specific billing type).
Variations
Only Patients with No Future Appointments
If you want to ensure you aren't calling patients who already have a visit on the books, you can filter out anyone with a scheduled appointment.
/* Add this to the end of the WHERE clause */
AND NOT EXISTS (
SELECT 1 FROM appointment a
WHERE a.PatNum = p.PatNum
AND a.AptStatus = 1
AND a.AptDateTime > NOW()
)
Skip the Query — Use DentalCanvas Instead
Don't want to write SQL? DentalCanvas connects to your Open Dental database and shows you this data automatically in a visual dashboard — no queries required.
This article is provided by opendentalsupport.com, an independent community resource. We are not affiliated with Open Dental Software, Inc.