1. Purpose
This dashboard was created as a personal project using two publicly available database from the Swiss Federal Office of Public Health, and from the Swiss Federal Statistical Office. The primary purpose of this dashboard is for users to easily browse through the number of cases for different medical procedures that occur in every Swiss hospital. This allows them to know the volume of cases in their local hospitals, and to compare those with other hospitals. This is public data, but it is not easily interpretable for the general public, as it is downloadable as a large CSV file from the FOPH website. The intended user is therefore the general public who wants to more easily access and interpret this data. As this is my first public dashboard, I decided to not include any public statistics regarding quality of care, and kept it simple with purely the number of cases per intervention, per hospital.
2. Sources
Hospital procedures (CH-IQI)
Source: Swiss Federal Office of Public Health (BAG/OFSP/UFSP)
Dataset:
CH-IQI 2023
Population by canton
Source: Swiss Federal Statistical Office
Dataset:
Structure of the permanent resident population by canton, 2010–2023
3. Database
The population database consists of the “Structure of the permanent resident population by canton, 2010-2023”. For the purpose of this dashboard, only the 2023 permanent resident population was used, as the CH-IQI data used was also from 2023.
The CH-IQI (Swiss Inpatient Quality Indicators) database is published annually. It provides a standardized national set of hospital quality indicators that are derived from inpatient discharge data. The database is extensive and consists of not only number of cases for each hospital and medical procedure, but also various categories of quality and process indicators. Each indicator (e.g., hip replacement, stroke treatment, pneumonia) is defined according to the G-IQI/CH-IQI Version 5.4 specification which aligns with the German IQM (Initiative Qualitätsmedizin) system.
For each indicator, the dataset typically includes:
- Observed values (e.g., number of cases, mortality rates, or complication rates)
- Expected values and standardized ratios (SMR) (for indicators where risk adjustment is possible)
- Process and complication indicators (e.g., proportion of minimally invasive operations or postoperative complications)
- Quantitative information, such as case counts per hospital (used in this dashboard)
- Minimum volume indicators, showing whether a hospital meets required minimum case thresholds for specific procedures
For this dashboard, only the quantitative information component (i.e., number of cases per hospital and procedure in 2023) was used.
4. Data Preparation
4.1 Extraction and filtering (F-coded procedures)
The individual procedures are labeled with F codes for the number of cases. The description for each of these F codes is however in each respective language region where the hospital is located. I therefore had to manually categorize what language each description was in. To make the raw CSV easier to consume in the browser, I used a small Python helper script, scripts/generate_f_procedure_dataset.py, that trims the dataset down to just the F-coded interventions. It removes aggregate rows like national or cantonal totals, keeps only the key numeric columns (hospital ID, procedure code, year, and case count), sorts the records for reproducibility, and exports the result as static/data/qip23_f_procedures.json. This produces a lightweight, dataset usable by a browser that still contains all the essential information for visualization and comparison.
4.2 Front-end loading and caching
When the CH-IQI page loads, the front-end calls loadHospitalDataset(), which fetches both JSON files—qip23_f_procedures.json and hospital_coordinates.json—alongside the population CSV. These are converted into in-memory maps keyed by hospital and procedure, so that all parts of the interface (search, maps, and KPI cards) can access them instantly without further network requests.
5. Indicators and Calculations
The dashboard includes a small set of simple and interpretable metrics:
- Hospital case volume (count)
- Canton total volume (count): Sum of hospital volumes within each canton for a selected procedure.
- Per-capita rate (cases per 100,000 residents)
- Share of canton volume
- National totals
- Centralisation HHI Index
- University Hospital share of cases
- Per-hospital share of the selected procedure
6. Limitations
This dashboard focuses exclusively on the number of cases per hospital and procedure and does not include any quality, outcome, or risk-adjusted indicators from the CH-IQI database. It is therefore not suitable for evaluating or comparing the quality of care across hospitals. Case volume alone is only one aspect of healthcare performance and should be interpreted with caution.
The CH-IQI data itself is based on annual hospital submissions and may contain reporting delays or minor inconsistencies between institutions. Although the dataset is standardized by the Federal Office of Public Health, hospital names and codes occasionally change between years, requiring manual reconciliation. For location data, coordinates and canton affiliations are derived from public sources and verified manually, which introduces the possibility of positional inaccuracies.
All data used here are from the 2023 release and represent the situation in that year only. Changes in hospital structures, service offerings, or regional population distributions after 2023 are not reflected.
Finally, this is an independent personal project and not an official visualization by the Federal Office of Public Health or the Federal Statistical Office. While care was taken to ensure correctness and transparency, any interpretation or conclusion drawn from the dashboard remains the responsibility of the user.