Skip to content

Commit

Permalink
Merge pull request #470 from makombe/appt-group
Browse files Browse the repository at this point in the history
Group all appointments by date issued
  • Loading branch information
njorocs authored Jul 22, 2024
2 parents e8292b2 + 7327947 commit 7731033
Showing 1 changed file with 68 additions and 19 deletions.
87 changes: 68 additions & 19 deletions omod/src/main/resources/sql/DML.sql
Original file line number Diff line number Diff line change
Expand Up @@ -7707,46 +7707,95 @@ DROP PROCEDURE IF EXISTS sp_update_next_appointment_date $$
CREATE PROCEDURE sp_update_next_appointment_date()
BEGIN
SELECT "Processing Update next appointment date with appointment date from Bahmni";
--HIV followup appointment update
update kenyaemr_etl.etl_patient_hiv_followup fup
inner join
(
select fup.patient_id, pat.visit_date, max(pat.start_date_time) patAppt, fup.next_appointment_date etlAppt from kenyaemr_etl.etl_patient_hiv_followup fup
inner join kenyaemr_etl.etl_patient_appointment pat on pat.patient_id = fup.patient_id and pat.visit_date = fup.visit_date and pat.appointment_service_id = 1
inner join kenyaemr_etl.etl_patient_appointment pat on pat.patient_id = fup.patient_id and pat.visit_date = fup.visit_date and pat.appointment_service_id = 1
group by fup.patient_id, fup.visit_date
) apt on apt.patient_id = fup.patient_id and apt.visit_date = fup.visit_date
set fup.next_appointment_date = apt.patAppt;
--Drug refill appointmetn update querry
update kenyaemr_etl.etl_patient_hiv_followup fup
inner join
(
select fup.patient_id, pat.visit_date, max(pat.start_date_time) patAppt, fup.refill_date etlAppt from kenyaemr_etl.etl_patient_hiv_followup fup
inner join kenyaemr_etl.etl_patient_appointment pat on pat.patient_id = fup.patient_id and pat.visit_date = fup.visit_date and pat.appointment_service_id = 2
group by fup.patient_id, fup.visit_date
) apt on apt.patient_id = fup.patient_id and apt.visit_date = fup.visit_date
set fup.refill_date = apt.patAppt;

update kenyaemr_etl.etl_patient_hiv_followup fup
inner join kenyaemr_etl.etl_patient_appointment pat on pat.patient_id = fup.patient_id and pat.visit_date = fup.visit_date and pat.appointment_service_id = 2
set fup.refill_date = date(pat.start_date_time) where fup.patient_id > 0;

--Prep followup appointment update querry
update kenyaemr_etl.etl_prep_followup fup
inner join kenyaemr_etl.etl_patient_appointment pat on pat.patient_id = fup.patient_id and pat.visit_date = fup.visit_date and pat.appointment_service_id = 8
set fup.appointment_date = date(pat.start_date_time) where fup.patient_id > 0;
inner join
(
select fup.patient_id, pat.visit_date, max(pat.start_date_time) patAppt, fup.appointment_date etlAppt from kenyaemr_etl.etl_prep_followup fup
inner join kenyaemr_etl.etl_patient_appointment pat on pat.patient_id = fup.patient_id and pat.visit_date = fup.visit_date and pat.appointment_service_id = 8
group by fup.patient_id, fup.visit_date
) apt on apt.patient_id = fup.patient_id and apt.visit_date = fup.visit_date
set fup.appointment_date = apt.patAppt;

--Prep monthly refill appointment update querry
update kenyaemr_etl.etl_prep_monthly_refill fup
inner join kenyaemr_etl.etl_patient_appointment pat on pat.patient_id = fup.patient_id and pat.visit_date = fup.visit_date and pat.appointment_service_id = 9
set fup.next_appointment = date(pat.start_date_time) where fup.patient_id > 0;
inner join
(
select fup.patient_id, pat.visit_date, max(pat.start_date_time) patAppt, fup.next_appointment etlAppt from kenyaemr_etl.etl_prep_monthly_refill fup
inner join kenyaemr_etl.etl_patient_appointment pat on pat.patient_id = fup.patient_id and pat.visit_date = fup.visit_date and pat.appointment_service_id = 9
group by fup.patient_id, fup.visit_date
) apt on apt.patient_id = fup.patient_id and apt.visit_date = fup.visit_date
set fup.next_appointment = apt.patAppt;

--TB followup appointment update querry
update kenyaemr_etl.etl_tb_follow_up_visit fup
inner join kenyaemr_etl.etl_patient_appointment pat on pat.patient_id = fup.patient_id and pat.visit_date = fup.visit_date and pat.appointment_service_id = 6
set fup.next_appointment_date = date(pat.start_date_time) where fup.patient_id > 0;
inner join
(
select fup.patient_id, pat.visit_date, max(pat.start_date_time) patAppt, fup.next_appointment_date etlAppt from kenyaemr_etl.etl_tb_follow_up_visit fup
inner join kenyaemr_etl.etl_patient_appointment pat on pat.patient_id = fup.patient_id and pat.visit_date = fup.visit_date and pat.appointment_service_id = 6
group by fup.patient_id, fup.visit_date
) apt on apt.patient_id = fup.patient_id and apt.visit_date = fup.visit_date
set fup.next_appointment_date = apt.patAppt;

--Clinical visit appointment update querry
update kenyaemr_etl.etl_clinical_visit fup
inner join kenyaemr_etl.etl_patient_appointment pat on pat.patient_id = fup.client_id and pat.visit_date = fup.visit_date and pat.appointment_service_id = 3
set fup.appointment_date = date(pat.start_date_time) where fup.client_id > 0;
inner join
(
select fup.patient_id, pat.visit_date, max(pat.start_date_time) patAppt, fup.appointment_date etlAppt from kenyaemr_etl.etl_clinical_visit fup
inner join kenyaemr_etl.etl_patient_appointment pat on pat.patient_id = fup.patient_id and pat.visit_date = fup.visit_date and pat.appointment_service_id = 3
group by fup.patient_id, fup.visit_date
) apt on apt.patient_id = fup.patient_id and apt.visit_date = fup.visit_date
set fup.appointment_date = apt.patAppt;


--MCH antenatal visit appointment update querry
update kenyaemr_etl.etl_mch_antenatal_visit fup
inner join kenyaemr_etl.etl_patient_appointment pat on pat.patient_id = fup.patient_id and pat.visit_date = fup.visit_date and pat.appointment_service_id = 4
set fup.next_appointment_date = date(pat.start_date_time) where fup.patient_id > 0;
inner join
(
select fup.patient_id, pat.visit_date, max(pat.start_date_time) patAppt, fup.next_appointment_date etlAppt from kenyaemr_etl.etl_mch_antenatal_visit fup
inner join kenyaemr_etl.etl_patient_appointment pat on pat.patient_id = fup.patient_id and pat.visit_date = fup.visit_date and pat.appointment_service_id = 4
group by fup.patient_id, fup.visit_date
) apt on apt.patient_id = fup.patient_id and apt.visit_date = fup.visit_date
set fup.next_appointment_date = apt.patAppt;

--MCH postnatal visit appointment update querry
update kenyaemr_etl.etl_mch_postnatal_visit fup
inner join kenyaemr_etl.etl_patient_appointment pat on pat.patient_id = fup.patient_id and pat.visit_date = fup.visit_date and pat.appointment_service_id = 5
set fup.appointment_date = date(pat.start_date_time) where fup.patient_id > 0;
inner join
(
select fup.patient_id, pat.visit_date, max(pat.start_date_time) patAppt, fup.appointment_date etlAppt from kenyaemr_etl.etl_mch_postnatal_visit fup
inner join kenyaemr_etl.etl_patient_appointment pat on pat.patient_id = fup.patient_id and pat.visit_date = fup.visit_date and pat.appointment_service_id = 5
group by fup.patient_id, fup.visit_date
) apt on apt.patient_id = fup.patient_id and apt.visit_date = fup.visit_date
set fup.appointment_date = apt.patAppt;

--MCH child/hei followup visit appointment update querry
update kenyaemr_etl.etl_hei_follow_up_visit fup
inner join kenyaemr_etl.etl_patient_appointment pat on pat.patient_id = fup.patient_id and pat.visit_date = fup.visit_date and pat.appointment_service_id = 13
set fup.next_appointment_date = date(pat.start_date_time) where fup.patient_id > 0;
inner join
(
select fup.patient_id, pat.visit_date, max(pat.start_date_time) patAppt, fup.next_appointment_date etlAppt from kenyaemr_etl.etl_hei_follow_up_visit fup
inner join kenyaemr_etl.etl_patient_appointment pat on pat.patient_id = fup.patient_id and pat.visit_date = fup.visit_date and pat.appointment_service_id = 13
group by fup.patient_id, fup.visit_date
) apt on apt.patient_id = fup.patient_id and apt.visit_date = fup.visit_date
set fup.next_appointment_date = apt.patAppt;

SELECT "Completed updating next appointment date";
END $$
Expand Down

0 comments on commit 7731033

Please sign in to comment.