In [1]:
import glob

import pandas as pd

from lxml import etree

The 2014 data are here!

Here I will basically do the same as with the 2013 data with the data from 2014. As the data structure has been slightly amplified you'll find some changes in this notebook, too.

Why all this?

Have you ever been to a German hospital? Did you get the chance to inform yourself before your stay? There is a ton of open care quality data around hospitals, especially in the hospital quality reports. They are widely regarded as useless for patients though. Even most scientists sighed when I told them that I am going to deep dive into these reports. Still, there was a chance I'd come up with some insights from this data mess. So what you'll find here is both, a lot of dead end roads and some interesting insights in hospital care quality.

Database and preparation

The database are the 2014 hospital quality reports ("Qualitätsberichte der Krankenhäuser"). These are the most recent available for the nearly 2000 hospitals in Germany. For each facility exist three files, separated into two databases. The first database ("QB") contains structural data including e.g. contact details, number of beds and number of cases for each indication (ICD-10) and procedure (OPS-2014). The second database ("EQS") contains a set of quality indicators defined by the AQUA institute. The file path contains -00- (for hospitals with only one location), -01-, -02- etc. for each location (if there is more than one) and a -99- file (which is a summary of all locations of one hospital).

For more general evaluations I had to exclude the -99- and -00- files.

Thanks to Stefan who did most of the coding.

In [2]:
QB_QUERY = {
    'name': 'Krankenhaus/Kontaktdaten/Name',
    'ik': 'Krankenhaus/Kontaktdaten/IK',
    'plz': 'Krankenhaus/Kontaktdaten/Kontakt_Adresse/Postleitzahl',
    'traeger': 'Krankenhaustraeger/Name',
    'traeger_art': 'Krankenhaustraeger/Krankenhaustraeger_Art/Art'
}

EQS_QUERY = {
    'ik': 'IK_Krankenhaus',
    'land': 'Land'
}


def query_doc(root, xpath):
    matches = root.xpath('.//' + xpath)
    for match in matches:
        val = match.text.strip()
        try:
            val_new = float(val.replace(',', '.'))
            val = val_new
        except ValueError:
            pass
        yield val

def query_doc_multi(root, xpaths):
    matches = {}
    for key, xpath in xpaths.items():
        try:
            matches[key] = list(query_doc(root, xpath))[0]
        except IndexError:
            pass
    return matches
        
CACHE = {}
INFO_CACHE = {}

def get_info(path, base_query):
    root = get_root(path)
    if path not in INFO_CACHE:
        extra = query_doc_multi(root, base_query)
        INFO_CACHE[path] = extra
    return INFO_CACHE[path]


def get_root(path):
    if path not in CACHE:
        with open(path) as f:
            CACHE[path] = etree.parse(f)
    return CACHE[path]

def search_path(path, xpath):    
    root = get_root(path)
    return query_doc(root, xpath)

def search_paths(paths, xpath, exclude=None, include=None, base_query=QB_QUERY):
    for path in paths:
        if include is not None and not any(x in path for x in include):
            continue
        if exclude is not None and any(x in path for x in exclude):
            continue
        extra = get_info(path, base_query)
        extra['path'] = path
        results = search_path(path, xpath)
        for r in results:
            yield r, extra
        

def search_xml(xpaths, data_path=None, exclude=None, include=None, base_query=QB_QUERY):
    names = glob.glob(data_path + '/*.xml')
    return {key: pd.DataFrame(
        search_generator(names, xpath, key, exclude=exclude, include=include, base_query=base_query)
    ) for key, xpath in xpaths.items()}

        
def search_generator(names, xpath, key, exclude=None, include=None, base_query=None):
    for result, extra in search_paths(names, xpath, exclude=exclude, include=include, base_query=base_query):
        d = dict(extra)
        d[key] = result
        yield d

def search_qb(**xpaths):
    return search_xml(xpaths, exclude=('-99-',), data_path='data/base_2014',)

def search_eqs(**xpaths):
    return search_xml(xpaths, data_path='data/external_2014', exclude=('-99-',), base_query=EQS_QUERY)

def search_qb_12(**xpaths):
    return search_xml(xpaths, data_path='data/base_12')

def search_eqs_12(**xpaths):
    return search_xml(xpaths, data_path='data/external_12', base_query=EQS_QUERY)


def search_qb_99(**xpaths):
    return search_xml(xpaths, data_path='data/base_2014', include=('-99-', '-00-'),)

def search_eqs_99(**xpaths):
    return search_xml(xpaths, data_path='data/external_2014', base_query=EQS_QUERY, include=('-99-', '-00-'),)


def search_qb_0_1(**xpaths):
    return search_xml(xpaths, data_path='data/base_2014', include=('-00-', '-01-'),)

def search_eqs_0_1(**xpaths):
    return search_xml(xpaths, data_path='data/external_2014', base_query=EQS_QUERY, include=('-00-', '-01-'),)


def apply_func(func, include=None, exclude=None, data_path='data/base_2014'):
    for path in glob.glob(data_path + '/*.xml'):
        if include is not None and not any(x in path for x in include):
            continue
        if exclude is not None and any(x in path for x in exclude):
            continue
        root = get_root(path)
        yield func(root, path)

Step 1: Gather basic information on hospitals

Hospitals have a unique ID (IK-Nummer) which is very useful to merge query results with additional data from another source. For example, applying QB_QUERY on all hospitals yields their ID, name, provider and type of provider. It's the EQS_QUERY however where we find quality indicators. We basically match the results from those two sources via the hospital ID.

In [3]:
def add_info(df):
    return df.merge(name_df, left_on='ik', right_index=True, how='inner')
In [4]:
name_df = search_qb(hospital_name='Krankenhaus/Kontaktdaten/Name')['hospital_name']
name_df = name_df.groupby('ik')[['name', 'traeger', 'traeger_art']].first()

name_df.head()
Out[4]:
name traeger traeger_art
ik
230530660 Krankenhaus Düren gem. GmbH Stadt Düren 50 % und Kreis Düren 50 % öffentlich
260100023 Diakonissenkrankenhaus Flensburg Ev.-Luth. Diakonissenanstalt zu Flensburg freigemeinnützig
260100034 Malteser Krankenhaus St. Franziskus-Hospital Malteser Norddeutschland gGmbH freigemeinnützig
260100089 Städtisches Krankenhaus Kiel GmbH Landeshauptstadt Kiel öffentlich
260100125 Sankt Elisabeth Krankenhaus Lubinus-Stiftung freigemeinnützig
In [5]:
land_df = search_eqs_0_1(land='Land')['land']
name_df = name_df.reset_index().merge(land_df[['ik', 'land']][land_df.land != 'DV'], on='ik', how='left')
name_df = name_df.set_index('ik')
name_df.head()
Out[5]:
name traeger traeger_art land
ik
230530660 Krankenhaus Düren gem. GmbH Stadt Düren 50 % und Kreis Düren 50 % öffentlich NaN
260100023 Diakonissenkrankenhaus Flensburg Ev.-Luth. Diakonissenanstalt zu Flensburg freigemeinnützig SH
260100034 Malteser Krankenhaus St. Franziskus-Hospital Malteser Norddeutschland gGmbH freigemeinnützig SH
260100089 Städtisches Krankenhaus Kiel GmbH Landeshauptstadt Kiel öffentlich SH
260100125 Sankt Elisabeth Krankenhaus Lubinus-Stiftung freigemeinnützig SH

How many hospitals are there per region?

In [44]:
name_df.land.value_counts()
Out[44]:
NW    352
BY    317
BW    214
NI    185
HE    137
RP     89
SN     76
SH     73
BB     53
BE     51
ST     48
TH     43
MV     36
HH     33
SL     22
HB     14
Name: land, dtype: int64
In [ ]:
 

Step 2: Pick out hospitals with abnormalities

Here we search only files of hospital with either one location (-00-) or with more than one location (-01-). For every abnormality found in the data set the query yields the corresponding hospital ID and the affected quality indicator.

In [7]:
import itertools

def get_a_quality_indicator(root, path=''):
    if not '-00-' in path and not '-01-' in path:
        return
    ik = int(root.xpath('.//IK_Krankenhaus/text()')[0])
    qas = root.xpath('Ergebnis//Qualitaetsindikator[.//Ergebnis_Berichtsjahr[starts-with(text(), "A")]]')
    for qa in qas:
        yield {
            'ik': ik,
            'kuerzel': qa.xpath('.//Kuerzel_Qualitaetsindikator/text()')[0],
            'ergebnis': qa.xpath('.//Ergebnis_Berichtsjahr/text()')[0],
        }

qa_qi_df = pd.DataFrame(list(itertools.chain.from_iterable(apply_func(get_a_quality_indicator, data_path='data/external_2014'))))
qa_qi_df.head()
Out[7]:
ergebnis ik kuerzel
0 A99 260100432 50989
1 A99 260100476 50944
2 A41 260100498 319
3 A99 260100498 1082
4 A99 260100626 457
In [8]:
qa_qi_df = add_info(qa_qi_df)
qa_qi_df.head()
Out[8]:
ergebnis ik kuerzel name traeger traeger_art land
0 A99 260100432 50989 Johanniter-Krankenhaus Geesthacht (KH) Johanniter-Krankenhaus Geesthacht GmbH freigemeinnützig SH
1 A99 260100476 50944 Klinikum Nordfriesland gGmbH Kreis Nordfriesland öffentlich SH
2 A41 260100498 319 Klinikum Nordfriesland gGmbH, Inselklinik Föhr... Kreis Nordfriesland öffentlich SH
3 A99 260100498 1082 Klinikum Nordfriesland gGmbH, Inselklinik Föhr... Kreis Nordfriesland öffentlich SH
4 A99 260100626 457 Sana Kliniken Ostholstein GmbH Sana Kliniken Ostholstein GmbH privat SH

Step 3: Analyse the abnormalities

Four main questions: What's the nationwide situation? How many abnormalities have been reported in my region? And in which hospital? At last, which quality indicator is mostly suspicious in my region?

In [48]:
#Brauche ich das hier?
qa_qi_df.pivot_table(index='land', columns='kuerzel')
qa_qi_df[qa_qi_df == ]
qa_qi_df.kuerzel.value_counts()
Out[48]:
125

Nationwide quantitative analysis

How many abnormalities have been reported in total?

In [13]:
qa_qi_df.ergebnis.value_counts()
Out[13]:
A41    850
A42    161
A99    138
Name: ergebnis, dtype: int64

How many abnormalities have been reported per region?

In [9]:
qa_qi_df.land.value_counts()
Out[9]:
NW    215
BY    160
NI    151
BW    131
SN    108
HE     71
RP     53
BE     44
MV     42
ST     40
BB     39
SL     36
TH     26
SH     22
HH      6
HB      5
Name: land, dtype: int64

Which type of provider has reported most quality abnormalities?

In [15]:
qa_qi_df.traeger_art.value_counts()
Out[15]:
öffentlich          510
freigemeinnützig    393
privat              235
Name: traeger_art, dtype: int64

How many hospitals have reported abnormalities? And which hospital has reported most?

Find the answer to the first question below the table. 553 hospitals have at least one abnormality.

In [22]:
add_info(qa_qi_df.groupby(["ik"]).ergebnis.count().reset_index().sort_values("ergebnis", ascending=False))
Out[22]:
ik ergebnis name traeger traeger_art land
295 260820466 10 Universitätsklinikum Heidelberg Universitätsklinikum Heidelberg öffentlich BW
411 261000057 9 Saaarland Kliniken Saarbrücken Stiftung kreuznacher diakonie freigemeinnützig SL
472 261300425 9 Universitätsmedizin Rostock - Teilkörperschaft... Universitätsmedizin Rostock - rechtsfähige Tei... öffentlich MV
23 260310378 8 Universitätsmedizin Göttingen Georg-August-Universität Göttingen öffentlich NI
305 260821376 8 Krankenhaus Freudenstadt Krankenhäuser Landkreis Freudenstadt gGmbH öffentlich BW
73 260340740 8 Klinikum Oldenburg gGmbH Stadt Oldenburg öffentlich NI
498 261400972 8 Kreiskrankenhaus Freiberg Vereinigte Gesundheitseinrichtungen Mittelsach... öffentlich SN
264 260730161 7 Universitätsmedizin der Johannes Gutenberg-Uni... Körperschaft des Öffentlichen Rechts öffentlich RP
326 260840108 7 Universitätsklinikum Tübingen Universitätsklinikum Tübingen AöR öffentlich BW
389 260960547 7 Haßberg-Kliniken Kommunalunternehmen Haßberg-Kliniken, Anstalt ... öffentlich BY
122 260530103 7 Universitätsklinikum Bonn Universitätsklinikum Bonn, AöR öffentlich NW
225 260612124 7 Universitätsklinikum Frankfurt Land Hessen öffentlich HE
412 261000160 6 Klinikum Merzig gGmbH Klinikum Merzig gemeinnützige GmbH öffentlich SL
424 261100285 6 Havelklinik GmbH & Co. KG Havelklinik GmbH & Co. KG privat BE
356 260920069 6 Klinikum Passau Stadt Passau öffentlich BY
224 260611862 6 Kerckhoff-Klinik GmbH Alleingesellschafter: Stiftung William G. Kerc... freigemeinnützig HE
470 261300356 6 Sana Hanse-Klinikum Wismar Sana Kliniken AG privat MV
45 260321714 6 AGAPLESION EVANGELISCHES KRANKENHAUS HOLZMINDE... AGAPLESION EVANGELISCHES KRANKENHAUS HOLZMINDE... freigemeinnützig NI
58 260330793 6 Helios Klinikum Uelzen GmbH Helios Klinikum Uelzen GmbH privat NI
129 260530502 6 Evangelisches Krankenhaus Köln-Weyertal gGmbH Evangelisches Krankenhaus Köln-Weyertal gemein... freigemeinnützig NW
509 261401416 6 Klinikum Chemnitz gGmbH Stadt Chemnitz öffentlich SN
259 260720307 6 Marienhaus Klinikum Eifel Marienhaus Stiftung freigemeinnützig RP
291 260820319 6 SRH Klinikum Karlsbad-Langensteinbach GmbH SRH Kliniken GmbH privat BW
118 260511781 6 Städtische Kliniken Neuss - Lukaskrankenhaus -... Städtische Kliniken Neuss - Lukaskrankenhaus -... öffentlich NW
347 260912194 6 RoMed Klinik Wasserburg RoMed Kliniken, Kliniken der Stadt und des Lan... öffentlich BY
209 260610393 5 Dr. Horst-Schmidt-Kliniken Wiesbaden Stadt Wiesbaden, Helios Kliniken Gruppe (seit ... öffentlich HE
501 261401052 5 Universitätsklinikum Leipzig Anstalt öffentlic... Freistaat Sachsen öffentlich SN
416 261000353 5 Caritas Krankenhaus Lebach cusanus trägergesellschaft trier mbH freigemeinnützig SL
339 260910396 5 Chirurgische Klinik Dr. Rinecker Artemed SE privat BY
105 260510826 5 Sana-Klinikum Remscheid GmbH Sana Kliniken AG privat NW
... ... ... ... ... ... ...
323 260833494 1 Ortenau Klinikum Kehl Ortenaukreis öffentlich BW
322 260833483 1 Ortenau Klinikum Wolfach Ortenaukreis öffentlich BW
321 260833450 1 Universitäts-Herzzentrum Freiburg • Bad Krozin... Universitäts-Herzzentrum Freiburg • Bad Krozin... NaN BW
320 260833110 1 Klinik für Tumorbiologie KTB Klinik für Tumorbiologie GmbH & Co. KG\nGe... privat BW
319 260832847 1 HELIOS Klinik Müllheim HELIOS Kliniken Breisgau-Hochschwarzwald GmbH privat BW
318 260832836 1 Herz-Zentrum Bodensee Herz-Zentrum Bodensee GmbH privat BW
316 260832299 1 Universitätsklinikum Freiburg Land Baden-Württemberg öffentlich BW
315 260831960 1 Spital Waldshut Spitäler Hochrhein GmbH öffentlich BW
172 260590059 1 HELIOS St. Josefs-Hospital Bochum-Linden HELIOS St. Josefs-Hospital GmbH privat NW
174 260590139 1 Klinikum Dortmund gGmbH Stadt Dortmund öffentlich NW
330 260840288 1 Alb-Donau Klinikum\nKreiskrankenhaus Ehingen Krankenhaus GmbH Alb-Donau-Kreis NaN BW
162 260570044 1 Ev. Krankenhaus Bielefeld gGmbH v. Bodelschwinghsche Stiftungen Bethel (www.be... freigemeinnützig NW
354 260914050 1 Klinikum der Universität München Freistaat Bayern öffentlich BY
335 260841780 1 ACURA Kliniken Albstadt GmbH AccuMeda Holding privat BW
353 260913480 1 Städtisches Klinikum München GmbH, Klinikum Bo... Städtisches Klinikum München GmbH öffentlich BY
352 260913446 1 Städtisches Klinikum München GmbH, Klinikum Sc... Landeshauptstadt München öffentlich BY
153 260550266 1 St. Agnes-Hospital Bocholt-Rhede GmbH St. Agnes-Hospital Bocholt-Rhede GmbH freigemeinnützig NW
350 260912490 1 Krankenhaus Schongau Krankenhaus GmbH Landkreis Weilheim-Schongau öffentlich BY
349 260912456 1 Kreisklinik Trostberg Landkreis Traunstein öffentlich BY
154 260550391 1 Krankenhaus und MVZ Maria-Hilf Stadtlohn GmbH Krankenhaus und MVZ Maria-Hilf Stadtlohn GmbH freigemeinnützig NW
155 260550574 1 Ev. Krankenhaus Castrop-Rauxel Ev. Krankenhausgemeinschaft Herne | Castrop-Ra... freigemeinnützig NW
156 260550643 1 St. Elisabeth-Hospital Herten gGmbH St. Elisabeth-Hospital Herten gGmbH freigemeinnützig NW
345 260911320 1 Klinikum Garmisch-Partenkirchen Klinikum Garmisch-Partenkirchen GmbH (100ige T... öffentlich BY
343 260911137 1 HELIOS Amper-Klinikum Dachau AmperKliniken AG privat BY
342 260910933 1 Kreiskliniken Bad Reichenhall und Freilassing Berchtesgadener Land öffentlich BY
340 260910693 1 Kreiskliniken Altötting-Burghausen/Standort Al... Kommunalunternehmen Kreiskliniken Altötting-Bu... öffentlich BY
159 260551132 1 Josephs-Hospital Warendorf Stiftung Josephs-Hospital Warendorf freigemeinnützig NW
337 260910205 1 Krankenhaus Barmherzige Brüder München Barmherzige Brüder gemeinnützige Krankenhaus GmbH freigemeinnützig BY
161 260570022 1 Klinikum Bielefeld gem. GmbH Klinikum Bielefeld gem.GmbH öffentlich NW
0 260100432 1 Johanniter-Krankenhaus Geesthacht (KH) Johanniter-Krankenhaus Geesthacht GmbH freigemeinnützig SH

553 rows × 6 columns

Which quality indicator has been reported as abnormal mostly?

In [25]:
qa_qi_df.kuerzel.value_counts()
Out[25]:
50722    139
2028      88
2266      67
52010     45
51988     43
51914     40
2009      30
52001     29
2005      28
52128     28
51847     23
2013      23
51846     20
1103      19
318       19
2036      19
52009     19
50749     15
1082      14
12775     14
51803     14
52129     13
2223      13
2012      12
12774     12
2015      10
51407     10
276        9
50045      8
50064      8
        ... 
50061      2
2133       2
12168      2
51406      2
2218       2
2155       2
2184       2
51560      2
51561      2
51568      1
50864      1
2279       1
52007      1
51567      1
51019      1
51916      1
50041      1
50025      1
2096       1
51605      1
277        1
270        1
603        1
51604      1
292        1
51602      1
2145       1
2146       1
51437      1
265        1
Name: kuerzel, dtype: int64

Regional quantitive analysis (example case: Northrhine-Westfalia (NW))

Where in NW have abnormalities been reported?

In [24]:
qa_qi_df_NW = qa_qi_df[qa_qi_df.land == 'NW']
qa_qi_df_NW
Out[24]:
ergebnis ik kuerzel name traeger traeger_art land
184 A99 260510018 2185 Universitätskrankenhaus Düsseldorf Land Nordrhein-Westfalen öffentlich NW
185 A99 260510018 51914 Universitätskrankenhaus Düsseldorf Land Nordrhein-Westfalen öffentlich NW
186 A42 260510018 50048 Universitätskrankenhaus Düsseldorf Land Nordrhein-Westfalen öffentlich NW
187 A42 260510018 51119 Universitätskrankenhaus Düsseldorf Land Nordrhein-Westfalen öffentlich NW
188 A41 260510109 50879 St. Vinzenz-Krankenhaus Caritative Vereinigung GmbH freigemeinnützig NW
189 A41 260510132 2266 Evangelisches Krankenhaus Düsseldorf Stiftung Evangelisches Krankenhaus Düsseldorf freigemeinnützig NW
190 A41 260510132 50064 Evangelisches Krankenhaus Düsseldorf Stiftung Evangelisches Krankenhaus Düsseldorf freigemeinnützig NW
191 A42 260510212 52001 Wedau Kliniken 2.6051e+08 öffentlich NW
192 A41 260510212 50722 Wedau Kliniken 2.6051e+08 öffentlich NW
193 A41 260510325 11617 Evangelisches Klinikum Niederrhein gGmbH Stiftung zur Förderung Evangelischer Krankenhä... freigemeinnützig NW
194 A41 260510325 2028 Evangelisches Klinikum Niederrhein gGmbH Stiftung zur Förderung Evangelischer Krankenhä... freigemeinnützig NW
195 A41 260510325 50722 Evangelisches Klinikum Niederrhein gGmbH Stiftung zur Förderung Evangelischer Krankenhä... freigemeinnützig NW
196 A41 260510347 51803 BETHESDA Krankenhaus Ev. Krankenhaus BETHESDA zu Duisburg GmbH freigemeinnützig NW
197 A99 260510381 51914 Universitätsklinikum Essen Ministerium für Innovation, Wissenschaft, For... öffentlich NW
198 A41 260510381 2266 Universitätsklinikum Essen Ministerium für Innovation, Wissenschaft, For... öffentlich NW
199 A99 260510461 51914 Elisabeth-Krankenhaus Essen GmbH Elisabeth-Krankenhaus Essen GmbH freigemeinnützig NW
200 A41 260510461 50749 Elisabeth-Krankenhaus Essen GmbH Elisabeth-Krankenhaus Essen GmbH freigemeinnützig NW
201 A42 260510461 50722 Elisabeth-Krankenhaus Essen GmbH Elisabeth-Krankenhaus Essen GmbH freigemeinnützig NW
202 A41 260510494 51988 Alfried Krupp Krankenhaus Steele Ev. Krankenhaus Lutherhaus gGmbH freigemeinnützig NW
203 A41 260510494 50791 Alfried Krupp Krankenhaus Steele Ev. Krankenhaus Lutherhaus gGmbH freigemeinnützig NW
204 A41 260510575 52001 HELIOS Klinikum Krefeld HELIOS Klinikum Krefeld GmbH privat NW
205 A41 260510575 2266 HELIOS Klinikum Krefeld HELIOS Klinikum Krefeld GmbH privat NW
206 A42 260510586 12874 Malteser Krankenhaus St. Josefshospital Uerdingen Malteser Rhein-Ruhr gemeinnützige GmbH freigemeinnützig NW
207 A41 260510586 2279 Malteser Krankenhaus St. Josefshospital Uerdingen Malteser Rhein-Ruhr gemeinnützige GmbH freigemeinnützig NW
208 A42 260510611 50004 Alexianer Krefeld GmbH Krankenhaus Maria-Hilf Alexianer Krefeld GmbH freigemeinnützig NW
209 A41 260510699 50722 Johanniter GmbH - Ev. Krankenhaus Bethesda Mön... Johanniter GmbH\nEv. Krankenhaus Bethesda in M... freigemeinnützig NW
210 A42 260510746 268 Evangelisches Krankenhaus Mülheim an der Ruhr ... ATEGRIS Regionalholding GmbH freigemeinnützig NW
211 A41 260510746 476 Evangelisches Krankenhaus Mülheim an der Ruhr ... ATEGRIS Regionalholding GmbH freigemeinnützig NW
212 A41 260510815 51988 Evangelisches Krankenhaus Oberhausen GmbH ATEGRIS Regionalholding GmbH freigemeinnützig NW
213 A42 260510815 11880 Evangelisches Krankenhaus Oberhausen GmbH ATEGRIS Regionalholding GmbH freigemeinnützig NW
... ... ... ... ... ... ... ...
371 A41 260590969 52010 Klinikum Lüdenscheid, Märkische Gesundheitshol... Märkische Gesundheitsholding GmbH und Co. KG freigemeinnützig NW
372 A41 260591038 52128 Krankenhaus Plettenberg gGmbH Krankenhaus Plettenberg gemeinnützige GmbH freigemeinnützig NW
373 A41 260591038 51988 Krankenhaus Plettenberg gGmbH Krankenhaus Plettenberg gemeinnützige GmbH freigemeinnützig NW
374 A41 260591038 50722 Krankenhaus Plettenberg gGmbH Krankenhaus Plettenberg gemeinnützige GmbH freigemeinnützig NW
375 A41 260591038 2015 Krankenhaus Plettenberg gGmbH Krankenhaus Plettenberg gemeinnützige GmbH freigemeinnützig NW
376 A41 260591049 52128 Stadtklinik Werdohl, Märkische Gesundheitshold... Märkische Kliniken GmbH öffentlich NW
377 A41 260591049 2013 Stadtklinik Werdohl, Märkische Gesundheitshold... Märkische Kliniken GmbH öffentlich NW
378 A41 260591107 52001 Klinikum Katholische Hospitalgesellschaft Südw... Katholische Hospitalgesellschaft Südwestfalen ... freigemeinnützig NW
379 A41 260591107 12775 Klinikum Katholische Hospitalgesellschaft Südw... Katholische Hospitalgesellschaft Südwestfalen ... freigemeinnützig NW
380 A41 260591107 50884 Klinikum Katholische Hospitalgesellschaft Südw... Katholische Hospitalgesellschaft Südwestfalen ... freigemeinnützig NW
381 A41 260591107 1058 Klinikum Katholische Hospitalgesellschaft Südw... Katholische Hospitalgesellschaft Südwestfalen ... freigemeinnützig NW
382 A41 260591221 52128 Kreisklinikum Siegen gGmbH Kreisklinikum Siegen GmbH öffentlich NW
383 A41 260591334 52009 Dreifaltigkeits-Hospital gem. GmbH Dreifaltigkeits-Hospital gem. GmbH freigemeinnützig NW
384 A41 260591345 50791 Evangelisches Krankenhaus Lippstadt Evangelisches Krankenhaus Lippstadt gemeinnütz... freigemeinnützig NW
385 A41 260591345 2009 Evangelisches Krankenhaus Lippstadt Evangelisches Krankenhaus Lippstadt gemeinnütz... freigemeinnützig NW
386 A41 260591389 12775 KlinikumStadtSoest Stadt Soest öffentlich NW
387 A41 260591403 1103 Krankenhaus Maria Hilf GmbH Krankenhaus Maria Hilf GmbH privat NW
388 A41 260591403 690 Krankenhaus Maria Hilf GmbH Krankenhaus Maria Hilf GmbH privat NW
389 A41 260591539 52001 Katharinen-Hospital - gGmbH Katharinen-Hospital Unna gGmbH freigemeinnützig NW
390 A41 260591539 2266 Katharinen-Hospital - gGmbH Katharinen-Hospital Unna gGmbH freigemeinnützig NW
391 A41 260591540 1103 Evangelisches Krankenhaus Unna Stiftung Evangelisches Krankenhaus Unna freigemeinnützig NW
392 A41 260591540 51988 Evangelisches Krankenhaus Unna Stiftung Evangelisches Krankenhaus Unna freigemeinnützig NW
393 A41 260591960 50889 Katholisches Krankenhaus Hagen gem. GmbH Katholisches Krankenhaus Hagen gem. GmbH freigemeinnützig NW
394 A41 260592084 51988 St. Barbara-Klinik Hamm GmbH St. Franziskus-Stiftung Münster (www.st-franzi... freigemeinnützig NW
395 A41 260593018 51988 Marienkrankenhaus gGmbH Marienkrankenhaus gGmbH freigemeinnützig NW
396 A42 260593030 51988 Kath. Kliniken im Märkischen Kreis/St. Elisabe... Katholische Kliniken im Märkischen Kreis gem. ... freigemeinnützig NW
397 A99 260593096 51914 St.-Johannes-Hospital Dortmund Kath. St.-Johannes-Gesellschaft Dortmund gGmbH... freigemeinnützig NW
398 A41 260593461 2013 St. Vinzenz Altena GmbH St. Vinzenz Altena GmbH privat NW
399 A41 260593600 2266 Klinikum Arnsberg GmbH St. Johannes und Maria Stiftung sowie die Stif... freigemeinnützig NW
400 A41 260593600 50722 Klinikum Arnsberg GmbH St. Johannes und Maria Stiftung sowie die Stif... freigemeinnützig NW

215 rows × 7 columns

How many hospitals in NW have reported quality abnormalities? And which hospital has reported most?

Find the answer to the first question below the table. 115 hospitals have one or more quality abnormality.

In [27]:
add_info(qa_qi_df_NW.groupby(["ik"]).ergebnis.count().reset_index().sort_values("ergebnis", ascending=False))
Out[27]:
ik ergebnis name traeger traeger_art land
32 260530103 7 Universitätsklinikum Bonn Universitätsklinikum Bonn, AöR öffentlich NW
39 260530502 6 Evangelisches Krankenhaus Köln-Weyertal gGmbH Evangelisches Krankenhaus Köln-Weyertal gemein... freigemeinnützig NW
28 260511781 6 Städtische Kliniken Neuss - Lukaskrankenhaus -... Städtische Kliniken Neuss - Lukaskrankenhaus -... öffentlich NW
35 260530283 5 Uniklinik Köln Universitätsklinikum Köln - Anstalt des öffent... öffentlich NW
15 260510826 5 Sana-Klinikum Remscheid GmbH Sana Kliniken AG privat NW
0 260510018 4 Universitätskrankenhaus Düsseldorf Land Nordrhein-Westfalen öffentlich NW
98 260591038 4 Krankenhaus Plettenberg gGmbH Krankenhaus Plettenberg gemeinnützige GmbH freigemeinnützig NW
14 260510815 4 Evangelisches Krankenhaus Oberhausen GmbH ATEGRIS Regionalholding GmbH freigemeinnützig NW
61 260550131 4 Universitätsklinikum Münster Land Nordrhein-Westfalen öffentlich NW
30 260530012 4 Uniklinik RWTH Aachen Land Nordrhein-Westfalen öffentlich NW
100 260591107 4 Klinikum Katholische Hospitalgesellschaft Südw... Katholische Hospitalgesellschaft Südwestfalen ... freigemeinnützig NW
60 260550119 4 Evangelische Kliniken Gelsenkirchen Diakoniewerk Gelsenkirchen und Wattenscheid e.V. freigemeinnützig NW
77 260570603 3 Herz- und Diabeteszentrum NRW Krankenhausbetriebsgesellschaft Bad Oeynhausen... freigemeinnützig NW
26 260511667 3 Kreiskrankenhaus Dormagen Rhein-Kreis Neuss öffentlich NW
58 260532935 3 HELIOS Klinik Wipperfürth HELIOS Klinik Wipperfürth GmbH privat NW
34 260530216 3 Johanniter GmbH - Waldkrankenhaus Bonn Johanniter GmbH freigemeinnützig NW
24 260511462 3 St. Vinzenz-Hospital Gemeinnützige Gesellschaft der Franziskanerinn... freigemeinnützig NW
21 260511280 3 Johanna-Etienne-Krankenhaus Johanna-Etienne-Krankenhaus - St. Augustinus-K... freigemeinnützig NW
45 260530784 3 St.-Katharinen-Hospital GmbH St.-Katharinen-Hospital GmbH freigemeinnützig NW
79 260570874 3 St. Vincenz-Krankenhaus St Vincenz-Krankenhaus GmbH freigemeinnützig NW
7 260510461 3 Elisabeth-Krankenhaus Essen GmbH Elisabeth-Krankenhaus Essen GmbH freigemeinnützig NW
4 260510325 3 Evangelisches Klinikum Niederrhein gGmbH Stiftung zur Förderung Evangelischer Krankenhä... freigemeinnützig NW
87 260590388 3 St. Marien-Hospital Hamm gGmbH St. Marien-Hospital Hamm gGmbH freigemeinnützig NW
107 260591540 2 Evangelisches Krankenhaus Unna Stiftung Evangelisches Krankenhaus Unna freigemeinnützig NW
47 260531002 2 Sankt Antonius Klinik GmbH Sankt Antonius Klinik GmbH privat NW
50 260531159 2 Vinzenz Pallotti Hospital GmbH Vinzenz Pallotti Hospital GmbH freigemeinnützig NW
54 260531730 2 Kliniken der Stadt Köln gGmbH - Krankenhaus Me... Stadt Köln öffentlich NW
106 260591539 2 Katharinen-Hospital - gGmbH Katharinen-Hospital Unna gGmbH freigemeinnützig NW
105 260591403 2 Krankenhaus Maria Hilf GmbH Krankenhaus Maria Hilf GmbH privat NW
103 260591345 2 Evangelisches Krankenhaus Lippstadt Evangelisches Krankenhaus Lippstadt gemeinnütz... freigemeinnützig NW
... ... ... ... ... ... ...
41 260530579 1 Klinikum Leverkusen gGmbH Klinikum Leverkusen gGmbH öffentlich NW
40 260530524 1 "KRANKENHAUS PORZ AM RHEIN" gGmbH "KRANKENHAUS PORZ AM RHEIN" gGmbH freigemeinnützig NW
46 260530900 1 Kreiskrankenhaus Mechernich GmbH Kreiskrankenhaus Mechernich GmbH öffentlich NW
48 260531046 1 Klinikum Oberberg GmbH Kreiskliniken Gummersbach-Waldbröl GmbH öffentlich NW
49 260531104 1 Sana Krankenhaus Radevormwald gGmbH Sana Kliniken AG privat NW
51 260531160 1 Evangelisches Krankenhaus Bergisch Gladbach gGmbH Evangelische Kliniken Rheinland gemeinnützige ... freigemeinnützig NW
52 260531364 1 St. Josef-Hospital Gemeinnützige Gesellschaft der Franziskanerinn... freigemeinnützig NW
53 260531661 1 Medizinisches Zentrum StädteRegion Aachen GmbH StädteRegion Aachen und Deutsche Rentenversich... öffentlich NW
36 260530318 1 Kliniken der Stadt Köln gGmbH - Krankenhaus Ho... Stadt Köln NaN NW
55 260531741 1 Kliniken der Stadt Köln gGmbH; Kinderkrankenha... Stadt Köln öffentlich NW
56 260531967 1 HELIOS Klinikum Siegburg HELIOS Klinikum Siegburg GmbH privat NW
1 260510109 1 St. Vinzenz-Krankenhaus Caritative Vereinigung GmbH freigemeinnützig NW
33 260530192 1 GFO Kliniken Bonn Gemeinnützige Gesellschaft der Franziskanerinn... freigemeinnützig NW
59 260550084 1 Elisabeth-Krankenhaus GmbH Elisabeth-Krankenhaus GmbH freigemeinnützig NW
31 260530023 1 Marienhospital Katholische Stiftung Marienhospital Aachen freigemeinnützig NW
62 260550142 1 Clemenshospital GmbH Misericordia GmbH Krankenhausträgergesellschaf... freigemeinnützig NW
63 260550266 1 St. Agnes-Hospital Bocholt-Rhede GmbH St. Agnes-Hospital Bocholt-Rhede GmbH freigemeinnützig NW
64 260550391 1 Krankenhaus und MVZ Maria-Hilf Stadtlohn GmbH Krankenhaus und MVZ Maria-Hilf Stadtlohn GmbH freigemeinnützig NW
65 260550574 1 Ev. Krankenhaus Castrop-Rauxel Ev. Krankenhausgemeinschaft Herne | Castrop-Ra... freigemeinnützig NW
66 260550643 1 St. Elisabeth-Hospital Herten gGmbH St. Elisabeth-Hospital Herten gGmbH freigemeinnützig NW
25 260511645 1 Johanniter-Krankenhaus Rheinhausen GmbH Johanniter-Krankenhaus Rheinhausen GmbH freigemeinnützig NW
69 260551132 1 Josephs-Hospital Warendorf Stiftung Josephs-Hospital Warendorf freigemeinnützig NW
23 260511359 1 Städtisches Krankenhaus Nettetal GmbH Stadt Nettetal öffentlich NW
71 260570022 1 Klinikum Bielefeld gem. GmbH Klinikum Bielefeld gem.GmbH öffentlich NW
72 260570044 1 Ev. Krankenhaus Bielefeld gGmbH v. Bodelschwinghsche Stiftungen Bethel (www.be... freigemeinnützig NW
73 260570282 1 Lukas-Krankenhaus Bünde Verein Evangelisches Krankenhaus Bünde freigemeinnützig NW
20 260511177 1 Themistocles Gluck hospital Ratingen GmbH (ab ... Fachklinik 360° - Die Klinik für Orthopädie un... privat NW
76 260570545 1 Mkk Krankenhaus Bad Oeynhausen Kreis Minden-Lübbecke öffentlich NW
19 260511144 1 Evangelisches Krankenhaus Mettmann GmbH Evangelisches Krankenhaus Mettmann GmbH freigemeinnützig NW
57 260532811 1 St. Elisabeth-Krankenhaus Jülich Caritas Trägergesellschaft West gGmbH freigemeinnützig NW

115 rows × 6 columns

Which type of provider reported most quality abnormalities?

In [28]:
qa_qi_df_NW.traeger_art.value_counts()
Out[28]:
freigemeinnützig    129
öffentlich           61
privat               24
Name: traeger_art, dtype: int64

Which quality indicator has been reported abnormally most?

In [36]:
qa_qi_df_NW.kuerzel.value_counts()
Out[36]:
50722    25
51988    19
2266     18
51914    10
52010     9
52001     8
2028      7
1103      7
12775     7
2009      6
2013      5
51803     4
51846     4
50749     4
52128     4
11880     3
12774     3
268       3
2157      3
2005      3
10211     2
51901     2
52009     2
2223      2
50048     2
50879     2
50063     2
51064     2
50791     2
51405     2
         ..
50004     1
11881     1
12874     1
51407     1
50062     1
1058      1
50919     1
50719     1
51034     1
2012      1
50005     1
50884     1
51629     1
52129     1
51119     1
11879     1
51847     1
2015      1
690       1
50060     1
2155      1
457       1
51636     1
50064     1
2185      1
51560     1
51191     1
51561     1
2279      1
12168     1
Name: kuerzel, dtype: int64
In [35]:
qa_qi_df_NW[qa_qi_df_NW.kuerzel == '50722']
Out[35]:
ergebnis ik kuerzel name traeger traeger_art land
192 A41 260510212 50722 Wedau Kliniken 2.6051e+08 öffentlich NW
195 A41 260510325 50722 Evangelisches Klinikum Niederrhein gGmbH Stiftung zur Förderung Evangelischer Krankenhä... freigemeinnützig NW
201 A42 260510461 50722 Elisabeth-Krankenhaus Essen GmbH Elisabeth-Krankenhaus Essen GmbH freigemeinnützig NW
209 A41 260510699 50722 Johanniter GmbH - Ev. Krankenhaus Bethesda Mön... Johanniter GmbH\nEv. Krankenhaus Bethesda in M... freigemeinnützig NW
215 A41 260510815 50722 Evangelisches Krankenhaus Oberhausen GmbH ATEGRIS Regionalholding GmbH freigemeinnützig NW
220 A41 260510826 50722 Sana-Klinikum Remscheid GmbH Sana Kliniken AG privat NW
232 A41 260511348 50722 Hospital zum Heiligen Geist Kempen GmbH & Co. KG Artemed SE privat NW
236 A41 260511462 50722 St. Vinzenz-Hospital Gemeinnützige Gesellschaft der Franziskanerinn... freigemeinnützig NW
237 A41 260511645 50722 Johanniter-Krankenhaus Rheinhausen GmbH Johanniter-Krankenhaus Rheinhausen GmbH freigemeinnützig NW
240 A41 260511667 50722 Kreiskrankenhaus Dormagen Rhein-Kreis Neuss öffentlich NW
266 A41 260530216 50722 Johanniter GmbH - Waldkrankenhaus Bonn Johanniter GmbH freigemeinnützig NW
271 A41 260530283 50722 Uniklinik Köln Universitätsklinikum Köln - Anstalt des öffent... öffentlich NW
282 A41 260530502 50722 Evangelisches Krankenhaus Köln-Weyertal gGmbH Evangelisches Krankenhaus Köln-Weyertal gemein... freigemeinnützig NW
293 A41 260530784 50722 St.-Katharinen-Hospital GmbH St.-Katharinen-Hospital GmbH freigemeinnützig NW
301 A41 260531160 50722 Evangelisches Krankenhaus Bergisch Gladbach gGmbH Evangelische Kliniken Rheinland gemeinnützige ... freigemeinnützig NW
305 A41 260531730 50722 Kliniken der Stadt Köln gGmbH - Krankenhaus Me... Stadt Köln öffentlich NW
312 A41 260550084 50722 Elisabeth-Krankenhaus GmbH Elisabeth-Krankenhaus GmbH freigemeinnützig NW
327 A41 260550756 50722 Maria-Josef-Hospital Greven GmbH Christliche Krankenhaus-Trägergesellschaft Gmb... freigemeinnützig NW
330 A41 260551132 50722 Josephs-Hospital Warendorf Stiftung Josephs-Hospital Warendorf freigemeinnützig NW
344 A41 260570681 50722 Krankenhaus Lübbecke-Rahden Kreis Minden-Lübbecke öffentlich NW
347 A41 260570874 50722 St. Vincenz-Krankenhaus St Vincenz-Krankenhaus GmbH freigemeinnützig NW
349 A41 260570896 50722 Ev. Krankenhaus Evangelische Stiftung des bürgerlichen Rechts freigemeinnützig NW
351 A41 260590037 50722 Berufsgenossenschaftliches Universitätskliniku... Berufsgenossenschaftliches Universitätskliniku... freigemeinnützig NW
374 A41 260591038 50722 Krankenhaus Plettenberg gGmbH Krankenhaus Plettenberg gemeinnützige GmbH freigemeinnützig NW
400 A41 260593600 50722 Klinikum Arnsberg GmbH St. Johannes und Maria Stiftung sowie die Stif... freigemeinnützig NW

Research a particular hospital

In [57]:
qa_df[qa_df.ik == 260530502]
Out[57]:
ik land path qa
277 260530502 NW data/external_2014/260530502-00-2014-land.xml A41
278 260530502 NW data/external_2014/260530502-00-2014-land.xml A42
279 260530502 NW data/external_2014/260530502-00-2014-land.xml A42
280 260530502 NW data/external_2014/260530502-00-2014-land.xml A41
281 260530502 NW data/external_2014/260530502-00-2014-land.xml A41
282 260530502 NW data/external_2014/260530502-00-2014-land.xml A41