We are currently updating the OP Help Center content for the release of OP 19, which is a member of the certified OP 14 family of products. OP 19’s official version is 14.19.1, which you may see in your software (such as in Help > About) and in the Help Center tabs labeled 14.19. You may also notice that the version number in content and videos may not match the version of your software, and some procedural content may not match the workflow in your software. We appreciate your patience and understanding as we make these enhancements.

SQL: Multiple Future Appointments

About

This report shows patient name, DOB, patient phone number and schedule information (scheduled provider, date/time, and location) for patients who have more than one future appointment scheduled.

A sample image of this SQL report run in the Database Viewer is shown below:

Caveats

  • Only future non-cancelled appointments are included.
  • “Future appointments” start tomorrow (ie. the day AFTER the run date) and do not include dates later in the day of the report run date.

Code

To highlight and copy the code below to your clipboard, simply click the Copy button.

select patno, ( fname || ' ' || lname) as patient_name,  birthdat, code1 as appt_type, hphone,  loc_name, staffname as scheduled_provider, dateadd(minute,start_time,appt_date) as my_appt_time from schedule
inner join register on register.patno = schedule.patno
inner join staff1 on staff1.staffid = schedule.addr_id
inner join location on location.id = schedule.loc_id
 where  appt_date > cast('today' as timestamp) and visit_status is null
and patno in
(

select patno from
(
select patno, count(patno) as n from
(
select patno, ( fname || ' ' || lname) as patient_name,  birthdat, code1 as appt_type, hphone,  loc_name, staffname as scheduled_provider, dateadd(minute,start_time,appt_date) as my_appt_time from schedule
inner join register on register.patno = schedule.patno
inner join staff1 on staff1.staffid = schedule.addr_id
inner join location on location.id = schedule.loc_id
 where  appt_date > cast('today' as timestamp) and visit_status is null
order by patno
) group by patno
) where n>1
) order by patno, my_appt_time