Übersetzungen dieser Seite:
  • de

BKK Pflegefinder Daten exportieren

Auf der Suchseite des BKK Pflegefinders kann man bequem nach vielen Kriterien filtern, um eine Liste mit Pflegeheimen zu erhalten.

Eventuell benötigt man aber die Daten in einer Excel-Liste, um die Institutionen abzutelefonieren und sich in eigenen Spalten z.B. Notizen hinzu zu fügen?

Hier ein kurzes Tutorial, um Suchergebnisse des BKK Pflegefinders als Excel-Liste zu exportieren.

Benötigte Werkzeuge

  • cURL: zum Download der Daten von der BKK-Seite
  • jq: zum Aufbereiten der JSON-Daten als CSV
  • Git Bash: zum Ausführen der Befehle

Daten exportieren

Zuerst werden die Daten als JSON abgerufen. Netterweise stellt der BKK Pflegefinder auf der Webseite die Daten der Pflegeheime im Hintergrund über eine REST API zur Verfügung.

Ich teste die API-Aufrufe, indem ich in der Weboberfläche die Suche ausführe, und mir parallel mit den Browser Entwicklertools (Taste F12?) die äquivalenten cURL-Aufrufe anschaue.

Ich rufe den folgenden Befehl in einer Git Bash auf:

curl 'https://pflegefinder.bkk-dachverband.de/api/nursing-homes?required=1&statistics=1&zip=Wiesbaden%20-%20Nordenstadt&location=36696&maxDistance=10&careType=inpatientCare&order=%2Bdistance&limit=20&offset=20https://pflegefinder.bkk-dachverband.de/api/nursing-homes?required=1&statistics=1&zip=Wiesbaden%20-%20Nordenstadt&location=36696&maxDistance=10&careType=inpatientCare&order=%2Bdistance&limit=50&offset=0' \
  -H 'authority: pflegefinder.bkk-dachverband.de' \
  -H 'accept: application/json, text/javascript, */*; q=0.01' \
  -H 'referer: https://pflegefinder.bkk-dachverband.de/pflegeheime/searchresult.php?required=1&statistics=1&searchdata%5Bzip%5D=Wiesbaden+-+Nordenstadt&searchdata%5Blocation%5D=36696&searchdata%5BmaxDistance%5D=10&searchdata%5BcareType%5D=inpatientCare' \
  -H 'sec-ch-ua: "Microsoft Edge";v="111", "Not(A:Brand";v="8", "Chromium";v="111"' \
  -H 'sec-ch-ua-mobile: ?0' \
  -H 'sec-ch-ua-platform: "Windows"' \
  -H 'sec-fetch-dest: empty' \
  -H 'sec-fetch-mode: cors' \
  -H 'sec-fetch-site: same-origin' \
  -H 'user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36 Edg/111.0.1661.43' \
  -H 'x-requested-with: XMLHttpRequest' \
  --compressed -o Suchergebnisse.json

In der URL werden folgende Parameter benutzt, die man am besten zuerst über die Webseite ausprobiert:

  • zip=Wiesbaden%20-%20Nordenstadt - bei PLZ oder Ort suchen
  • location=36696 - ergibt sich aus der Ort-Suche
  • maxDistance=10 - im Umkreis von X Kilometern
  • careType=inpatientCare - Vollstationäre Pflege
  • limit=50 - Rufe max. 50 Datensätze ab
  • offset=0 - Starte ab dem ersten (Nr.0) Datensatz

Dieser Aufruf oben erzeugt eine Datei Suchergebnisse.json.

CSV-Datei vorbereiten

Ich erzeuge die CSV-Datei mit der ersten Zeile, den Spaltenköpfen:

$ echo id,name,telephone,street,zip,city,price1,price2,lat,lon > Suchergebnisse.csv

Danach liegt eine CSV-Datei namens Suchergebnisse.csv vor.

JSON-Daten aufbereiten

Nun werden die JSON-Suchergebnisse mit dem Tool jq nach CSV umgewandelt.

jq -r ".data[] | [.id, .name, .telephone, .street, .zip, .city, .price1, .price2, .lat, .lon]|@csv" Suchergebnisse.json \
   > Suchergebnisse.csv

Die Pflegeheime findet man im Schlüssel data.

Iem Datensatz einer Pflegeeinrichtung, im Schlüssel facilityInformation, gibt es noch viele weitere Felder:

facilityInformation: [
   aerzte_vereinbarung: 1,
   andere_bewohnergruppen: 1,
   apotheken: 1,
   barrierefreiheit: 1,
   beatmungspflichtige: 2,
   blinde_sehbehinderte: 2,
   diaetkost: 1,
   eigene_mahlzeiten: 1,
   ...
]

Diese Felder könnte z.B. man per

.facilityInformation.aerzte_vereinbarung

in den oben genannten jq-Aufruf mit aufnehmen.

Die Werte 1, 2 oder 4 sind vermutlich 1 - vorhanden, 2 - nicht vorhanden bzw. 4 - keine Angaben.

Zum Schluss

Wir haben nun eine CSV-Datei mit Spaltenköpfen in der ersten Zeile, und den Heim-Daten in den folgenden Zeilen.

In der CSV-Datei sind die Spalten leider durch das Komma-Zeichen , getrennt. Dadurch öffnet sich die Datei nicht sauber in Excel, die Werte müssen evtl. durch die Funktion Text in Spalten getrennt werden.

Oder man schaltet vor dem Öffnen der CSV-Datei mit Excel die Windows-Region um auf Englisch (Vereinigte Staaten), öffnet die Datei mit Excel, speichert ab als .xlsx und stellt Windows-Region wieder zurück auf Deutschland (Deutsch).

Weitere Tipps zum Laden der CSV-Datei in Excel hier oder von Microsoft z.B. hier.

Viel Erfolg beim Nachvollziehen!