NINS_CODE/bahmni_config/openmrs/apps/reports/sql/ipdPatientCountWardwise.sql

37 lines
2.6 KiB
MySQL
Raw Normal View History

2024-12-12 22:37:39 +06:00
SELECT admit.date as 'Date',
admit.ward_name as 'Ward Name',
admit.admit_patient as 'Admitted Patient',
discharge.discharge_patient as 'Discharge Patient'
FROM (SELECT cast(e.encounter_datetime as date) as 'date',
ward.name as 'ward_name',
count(bed_assign.patient_id) as 'admit_patient'
FROM encounter e
inner join (select bpam.patient_id, bpam.date_created, bpam.bed_id, bpam.encounter_id
from bed_patient_assignment_map bpam
where bpam.date_created between '#startDate#' AND '#endDate#'
group by bpam.patient_id, cast(bpam.date_created as date)) bed_assign
on bed_assign.encounter_id = e.encounter_id
inner join bed_location_map blm on bed_assign.bed_id = blm.bed_id
inner join location as ward on blm.location_id = ward.location_id
WHERE e.encounter_type in
(select encounter_type_id from encounter_type where name in ('ADMISSION'))
and e.encounter_datetime BETWEEN '#startDate#' AND '#endDate#'
group by date, ward.name) as admit
left join (SELECT cast(e.encounter_datetime as date) as 'date',
ward.name as 'ward_name',
count(bed_assign.patient_id) as 'discharge_patient'
FROM encounter e
inner join (SELECT bed_patient_assignment_map_id, bed_id, patient_id
FROM bed_patient_assignment_map
WHERE bed_patient_assignment_map_id IN (
SELECT MAX(bed_patient_assignment_map_id)
FROM bed_patient_assignment_map
GROUP BY patient_id)) bed_assign on e.patient_id = bed_assign.patient_id
inner join bed_location_map blm on bed_assign.bed_id = blm.bed_id
inner join location as ward on blm.location_id = ward.location_id
WHERE e.encounter_type in
(select encounter_type_id from encounter_type where name in ('DISCHARGE'))
and e.encounter_datetime BETWEEN '#startDate#' AND '#endDate#'
group by date, ward.name) as discharge
on admit.date = discharge.date and admit.ward_name = discharge.ward_name;