У меня есть отчет об отзыве, в котором содержатся письма для каждого пациента, которому необходимо вернуться в кабинет в определенный день на основе плана отзыва (план, который определяет, когда они должны вернуться на основании своего состояния).У меня есть еще одна таблица, в которой хранятся все назначения для каждого пациента (в прошлом и настоящем).Встречи в таблице rev_plans генерируются автоматически, тогда как встречи в таблице встреч создаются вручную.Отчет плана отзыва не проверяется, если человек звонит, чтобы назначить встречу, поэтому в обеих таблицах часто встречается одна и та же встреча, что приводит к отправке дублирующих писем-напоминаний.
Мне нужно сделать две вещи: (Я знаю, что мой подход не обязательно решает бизнес-проблему, но это то, с чем мне нужно)
- Мне нужно составить список, показывающий следующее посещение для каждого пациента, но только еслиэто в будущем.
- Мне нужно добавить столбец к первому отчету, показывающий следующее посещение каждого пациента, чтобы кто-то мог вручную определить, что дубликаты писем вышли бы для конкретных пациентов и вмешаться соответственно.
Запрос отчета об отзыве:
SELECT description as [Plan Name],
per.first_name + ' ' + per.last_name as [Patient],
substring (plan_start_date, 5,2) + '-' +
substring (plan_start_date, 7,2) + '-' +
substring (plan_start_date, 1,4) as [Plan Start Date],
substring (nr.expected_return_date, 5,2) + '-' +
substring (nr.expected_return_date, 7,2) + '-' +
substring (nr.expected_return_date, 1,4) as [Expected Return Date]
FROM recall_plan_mstr rp,
patient_recall_plans nr,
patient pt,
person per
WHERE rp.practice_id = nr.practice_id
and rp.recall_plan_id = nr.recall_plan_id
and nr.practice_id = pt.practice_id
and nr.person_id = pt.person_id
and per.person_id = pt.person_id
and (active_plan_ind = 'Y')
and rp.practice_id = '0025'
Результаты отчета об отзыве:
PLAN NAME PATIENT START RETURN
------------------ ---------------- ---------- ----------
OFFICE VISIT W/ DR Charles Span 04-18-2011 12-15-2011
LIPID PANEL Ronald Chap 04-11-2011 06-28-2011
OFFICE VISIT W/ DR Ronald Chap 04-11-2011 04-21-2011
OFFICE VISIT W/ DR Will Thor 03-31-2011 02-01-2012
PACEMAKER CHECK Sylvia Berkly 05-03-2011 08-03-2011
OFFICE VISIT W/ DR Tim Cayle 04-13-2011 09-26-2011
OFFICE VISIT W/ DR Caferana Mercade 04-11-2011 10-08-2011
OFFICE VISIT W/ DR Susanna Calter 05-10-2011 05-07-2012
ICD CHECK Jim Southern 04-14-2011 07-13-2011
STRESS ECHO Don Cobey 04-28-2011 06-07-2010
Запрос о встречах:
select person_id, appt_date
from appointments
where person_id is not null
group by person_id, appt_date
order by person_id, appt_date desc
Результаты встреч:
person_id appt_date
------------------------------------ ---------
073C8F83-CE15-4192-8E12-00006CB5A433 20091228
073C8F83-CE15-4192-8E12-00006CB5A433 20090510
073C8F83-CE15-4192-8E12-00006CB5A433 20090301
073C8F83-CE15-4192-8E12-00006CB5A433 20081006
378A281C-FAE7-43DF-BC03-00006E386680 20110509
378A281C-FAE7-43DF-BC03-00006E386680 20110217
378A281C-FAE7-43DF-BC03-00006E386680 20110124
378A281C-FAE7-43DF-BC03-00006E386680 20110111
378A281C-FAE7-43DF-BC03-00006E386680 20101207
816D4D31-3C99-4762-878D-000097883B73 20110316
816D4D31-3C99-4762-878D-000097883B73 20101216
Вопросы:
- Как я могу составить список из таблицы встреч, в котором по одному пациенту на строку будет толькопоследняя встреча в будущем?Нужно ли для этого писать курсор?
- Как я могу объединить этот список в моем отчете об отзыве, чтобы в нем был столбец справа от столбца возврата, который отображает дату следующего визита пациента (только в будущем)?Обе таблицы имеют номер GUID человека.
Надеюсь, я достаточно объяснил и предоставил достаточно информации.Если вам нужна дополнительная информация, пожалуйста, не стесняйтесь спрашивать.