Dashboard 1 of 4 · Hospital Overview

Hospital Overview — Detailed Report

Power BI page: Executive Overview  ·  Data view: vw_admission_overview  ·  Verified against data/databricks_output/exports/vw_admission_overview.csv

1. Purpose

The Hospital Overview page is the executive entry point to the MIMIC Analytics dashboard. It provides a hospital-wide snapshot of patient admissions, length of stay, readmissions, mortality, and demographic breakdowns — all from a single Gold-layer SQL view connected via Databricks SQL Warehouse.

Questions this page answers: How many patients and admissions? What is the typical LOS, readmission rate, and mortality? Which admission types, age groups, and insurance plans dominate? How do volumes trend over time?

2. KPI Cards

Five headline metrics across the top of the page. All values recomputed from the CSV export — exact match with the live dashboard.

100
Total Patients
✓ verified
275
Total Admissions
✓ verified
6.88
Avg LOS (days)
✓ verified
19.3%
Readmission Rate
✓ verified
15
In-Hospital Deaths
✓ verified
CardValueVerifiedDAX
Total Patients100100DISTINCTCOUNT(patient_id)
Total Admissions275275DISTINCTCOUNT(admission_id)
Average LOS6.88 days6.88AVERAGE(length_of_stay_days)
Readmission Rate19.3%53 / 275DIVIDE([30-Day Readmissions], [Total Admissions], 0)
In-Hospital Deaths1515CALCULATE(..., died_in_hospital = TRUE())

Derived: 2.75 admissions per patient (median 1, max 20 for one patient). Top 5 patients account for 65 admissions (23.6%).

3. Slicers

Three slicers on the left panel cross-filter all KPI cards and charts:

SlicerValues
age_group18-34 · 35-49 · 50-64 · 65-79 · 80+
admission_typeAMBULATORY OBSERVATION · DIRECT EMER. · DIRECT OBSERVATION · ELECTIVE · EU OBSERVATION · EW EMER. · OBSERVATION ADMIT · SURGICAL SAME DAY ADMISSION · URGENT
genderF · M

4. Visual Analysis

Visual 1 · Horizontal Bar Chart

Total Admissions by admission_type

Admission TypeAdmissionsShare
EW EMER.10437.8%
OBSERVATION ADMIT4516.4%
URGENT3813.8%
EU OBSERVATION3010.9%
SURGICAL SAME DAY ADMISSION186.5%
DIRECT EMER.155.5%
ELECTIVE134.7%
DIRECT OBSERVATION72.5%
AMBULATORY OBSERVATION51.8%
Finding: EW EMER. is the dominant pathway at 37.8%. All observation types combined (OBSERVATION ADMIT + EU OBSERVATION + DIRECT OBSERVATION + AMBULATORY OBSERVATION) add 87 admissions (31.6%). 48.7% of admissions originate from the Emergency Room as admission location.
Visual 2 · Vertical Bar Chart

Patients by Age Group

Age GroupPatientsShare
50–643434%
65–792828%
80+1616%
35–491515%
18–3477%
Finding: 62% of patients are aged 50–79. Gender: 57 male, 43 female. All 15 in-hospital deaths occur in patients aged 50+ (mortality rises from 5.4% in 50–64 to 9.4% in 80+).
Visual 3 · Line Chart

Count of admission_id by Year

YearAdmissionsNote
214813Peak year
214712Second highest
2137 / 21369 each
21178
Finding: Years range 2110–2201 — deidentified shifted dates from MIMIC-IV, not real calendar years. The chart shows volatile year-to-year variation with no epidemiological trend. Do not interpret as real-world seasonality.
Visual 4 · Donut Chart

Admissions by Insurance

InsuranceAdmissionsShare
OTHER14954.18%
MEDICARE10437.82%
MEDICAID228.00%
Finding: OTHER + Medicare = 92% of admissions. Medicare share (37.8%) aligns with the older age distribution. Medicaid is a small minority at 8%.
Visual 5 · Vertical Bar Chart

Average of length_of_stay_days by admission_type

Admission TypeAvg LOS
URGENT9.9 days
DIRECT EMER.9.4 days
ELECTIVE / OBSERVATION ADMIT8.2 days
EW EMER.7.3 days
SURGICAL SAME DAY ADMISSION5.7 days
DIRECT OBSERVATION1.4 days
AMBULATORY OBSERVATION1.0 day
EU OBSERVATION0.9 days
Finding: Clear bimodal pattern — inpatient-intensive types average 7–10 days while observation types average under 1.5 days. EW EMER. has the highest volume (104) but only the 5th-longest stay (7.3 days). Volume and bed-day intensity are separate operational concerns.

5. Cross-Cutting Analysis

Readmissions (53 events, 19.3%)

Admission TypeReadmissionsType Rate
EW EMER.2524.0%
OBSERVATION ADMIT920.0%
URGENT615.8%
DIRECT EMER.533.3%
AMBULATORY OBSERVATION00.0%

In-Hospital Deaths (15, 5.5%)

Admission TypeDeaths
EW EMER.6
URGENT5
OBSERVATION ADMIT3
DIRECT EMER.1

Discharge Destinations

LocationAdmissionsShare
HOME HEALTH CARE7627.6%
HOME7226.2%
SKILLED NURSING FACILITY3613.1%
DIED155.5%
REHAB134.7%
HOSPICE51.8%

High-Utilizer Patients

Patient IDAdmissions
1001435420
1001586013
1000293012
10040025 / 1003970810 each

Top 5 patients = 65 admissions (23.6%) of all volume.

6. DAX Measures

Six measures on this page. Full reference: powerbi/mimic_powerbi_dax_measures.md

Total Patients = DISTINCTCOUNT(vw_admission_overview[patient_id])
Total Admissions = DISTINCTCOUNT(vw_admission_overview[admission_id])
Average LOS = AVERAGE(vw_admission_overview[length_of_stay_days])

In-Hospital Deaths =
CALCULATE(DISTINCTCOUNT(vw_admission_overview[admission_id]),
    vw_admission_overview[died_in_hospital] = TRUE())

30-Day Readmissions =
CALCULATE(DISTINCTCOUNT(vw_admission_overview[admission_id]),
    vw_admission_overview[is_30_day_readmission] = TRUE())

Readmission Rate = DIVIDE([30-Day Readmissions], [Total Admissions], 0)

7. Key Takeaways

  1. Emergency-driven intake — EW EMER. dominates at 37.8%; observation pathways add 31.6%.
  2. Older adult cohort — 62% of patients aged 50–79; all mortality in this range and above.
  3. Volume ≠ intensity — EW EMER. drives volume; URGENT/DIRECT EMER. drive bed-days (9.9 / 9.4 days).
  4. Readmission burden — 19.3% rate, concentrated in EW EMER. (25 events) and high-utilizer patients.
  5. Insurance concentration — 92% OTHER or Medicare; Medicaid at 8%.
  6. Post-acute discharge — 53.8% to home/home health; 13.1% to skilled nursing.
  7. Demo limitations — 100-patient subset with deidentified dates; illustrates pipeline capability, not epidemiology.

8. Verification

import pandas as pd
df = pd.read_csv("data/databricks_output/exports/vw_admission_overview.csv")
assert df["patient_id"].nunique() == 100
assert df["admission_id"].nunique() == 275
assert round(df["length_of_stay_days"].mean(), 2) == 6.88
assert df.loc[df["died_in_hospital"], "admission_id"].nunique() == 15
assert df.loc[df["is_30_day_readmission"], "admission_id"].nunique() == 53

Output: data/databricks_output/exports/admission_analysis.json