HMIS — Health Management Information System¶
Provider
Ministry of Health & Family Welfare (MoHFW)
Website
Access Level
🟢 No Login — Monthly CSV Downloads
Formats Available
Excel, CSV (monthly), PDF reports
Coverage
National → District → Health Facility (monthly)
Period
April 2008 to present (monthly updates)
What HMIS Tracks¶
HMIS collects data from every government health facility in India — Sub-Centres, PHCs (Primary Health Centres), CHCs (Community Health Centres), District Hospitals — every month.
| Service Area | Key Indicators |
|---|---|
| Maternal Health | ANC registrations, institutional deliveries, C-sections, maternal deaths |
| Child Health | OPD children <5, diarrhoea cases, ARI cases, malnutrition |
| Immunisation | BCG, DPT, OPV, Measles, full immunisation coverage |
| Family Planning | Sterilisations, IUD insertions, oral pills, condoms |
| Communicable Disease | Malaria (suspected, confirmed, treated), TB cases |
| Nutrition (NRC) | Severe Acute Malnutrition admissions |
| Facility Infrastructure | Beds, doctors, staff nurses, specialists |
How to Download HMIS Data¶
Monthly State/District Data (No Login) 🟢¶
- Go to hmis.nhp.gov.in
- Click "HMIS Data" → "State/District/Facility Data"
- Select: State → District → Year → Month
- Download Excel file
Or download annual compilations from data.gov.in:
- Search: "HMIS district annual" → Download CSV
HMIS Dashboard 🟢¶
- Go to hmis.nhp.gov.in/hmisreports/index.html
- Visual dashboards with trend charts
- No download needed — visualise directly online
Python: Plot Immunisation Trend¶
import pandas as pd
import matplotlib.pyplot as plt
# Load HMIS monthly data for your district (downloaded from hmis.nhp.gov.in)
# Format: one row per month, columns for each service indicator
hmis = pd.read_csv("hmis_pune_district_2022_23.csv")
# Parse date
hmis['Date'] = pd.to_datetime(hmis['Year'].astype(str) + '-' + hmis['Month'].astype(str))
hmis = hmis.sort_values('Date')
# Key immunisation indicators
indicators = ['BCG_Given', 'DPT3_Given', 'Measles1_Given', 'Full_Immunised']
fig, ax = plt.subplots(figsize=(14, 6))
for col in indicators:
if col in hmis.columns:
ax.plot(hmis['Date'], hmis[col], marker='.', linewidth=1.5, label=col)
ax.set_title("Monthly Immunisation Coverage — Pune District 2022-23")
ax.set_xlabel("Month")
ax.set_ylabel("Children Vaccinated")
ax.legend()
ax.grid(True, alpha=0.3)
plt.xticks(rotation=45)
plt.tight_layout()
plt.savefig("hmis_immunisation_trend.png", dpi=150)
plt.show()
✏️ Practice Exercise¶
Exercise 4.3 — Track Institutional Deliveries Over Time
Goal: See how institutional delivery rate has changed in your district from 2010 to 2023.
- Download HMIS annual data for your state from hmis.nhp.gov.in (or data.gov.in)
- Filter for your district
- Find column: "Institutional Deliveries" and "Total Deliveries Reported"
- Calculate: Institutional Delivery Rate = (Institutional / Total) × 100
- Plot as a line chart from 2010 to 2023
Questions: - [ ] Has institutional delivery rate improved in your district? - [ ] What was the rate in 2010? What is it now? - [ ] Compare to NFHS-5 value for your district — do they match? (They should be close) - [ ] Did COVID-19 (2020-21) cause a dip in any health service indicators?
Next Dataset: PMGSY Rural Roads →