37 lines
2.6 KiB
MySQL
37 lines
2.6 KiB
MySQL
![]() |
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;
|