Vyhledávač sociálních služeb

Mária a Eva
Jun 2, 2019 · 5 min read

Autorky: Eva Hankusová a Mária Mižíková

Mentoři: Radovan Jirka, Jiří Tobolka (BizzTreat) / Koučové: Dan Vrátil (Avast) a Kateřina Tomášková (CleverAnalytics)

Babičce byla diagnostikována demence. Nemáte kde s dětmi bydlet. Co teď? Jak a kde najít místo, kde vám pomohou? Je v okolí lékař, MHD nebo potraviny? A jak je na tom s lůžky váš okres? Cílem našeho absolventského projektu, v rámci Digitální akademie Czechitas, bylo odpovědět na všechny tyto otázky.


Jak se to všechno semlelo…

Jsme dvě pracující mámy, které mají rády přírodu, kavárny (rozuměj s pivem nebo vínem) a není nám lhostejné, co se děje ve společnosti. A proto jsme chtěly zpracovat projekt se sociálním přesahem. Každá jsme silná v jiných oblastech, a právě proto jsme se skvěle doplňovaly.

Před časem jsme obě hledaly speciální zařízení pro osobu blízkou a nebylo to vůbec jednoduché. A tak první myšlenka byla zanalyzovat stárnutí populace vs. dostupnost sociálních služeb pro seniory. Po konzultaci s mentory jsme se rozhodly pro vytvoření interaktivní mapy s vyhledáváním všech sociálních služeb v ČR.

Zdrojem informací se pro nás stal web iregistr.mpsv.cz, který obsahuje statické informace o dostupných službách na našem území (link).

Ukázka iregistr.mpsv.cz (MPSV)

Hackerky v akci (scrapujeme!)

A teď, jak se k těm datům dostat? V Pythonu jsme si zase až tak moc nevěřily, takže jsme chtěly stáhnout data pomocí Apify. Pak ale zazněla magická věta: “Přece to, holky, nemůže někdo udělat všechno za vás.” :-D Po konzultaci s Danem z pracovních skupinek, který nás ujistil, že to dáme, jsme to pojaly jako výzvu. A tak jsme začaly psát Python script v programu VSC.

Základem bylo si ujasnit, co za informace chceme a naučit se orientovat v HTML kódu pro definici funkce Parsuj. Už u první verze scriptu bylo jasné, že to tak jednoduché nebude: #error #chyba #furt_neco. A tady nastupuje náš hrdina Dan, který nám vždy pomohl a dokázal nás nasměrovat.

Orientace v HTML kódu

Bylo potřeba nadefinovat proklik na další podstránky a z nich pak vybrat konkrétní informace, doplnit podmínky pro případ neuvedení textu nebo když je text v tabulce, a pro pauzy ve stahování. Po několika verzích a 14 dnech intenzivní práce jsme měly finální script o 152 řádcích, který běžel 10 hodin a jehož výstupem byla tabulka ve formátu CSV: data vystup_data_registr.csv. Tu bylo potřeba pro naše potřeby normalizovat (nový script) do šesti tabulek.

Finální script pro scrapování

Čistíme, upravujeme, obohacuje… A tak pořád dokola

Měly jsme data a s tím druhé Vánoce. Ale ne na dlouho. Při kontrole dat jsme zjistily, že například unikátních věkových kategorií je 1721 řádků a cílových skupin 1954 z celkových 5580.

Ukázka dat ve sloupci “Věková kategorie”(xls).

Následující den se konal Hackathon. Zde jsme se rozhodly pro tvorbu vyhledávače použít platformu CleverAnalytics od společnosti CleverAnalytics. CleverAnalytics umožňuje zobrazit a analyzovat data nad mapou. A jak to tak už bývá, začala dlouhá a inspirativní cesta nekonečných úprav, změn a doplňování výsledných datasetů pomocí SQL. Nejzásadnější změny se týkaly úprav:

  • Cílové skupiny klientů (aplikace Geneea NLP Analysis v Kebooli pro úpravu cílových skupin do tagů pro každé zařízení).
  • Věkové kategorie klientů (Excel + Snowflake pro věk klientů (od-do) pro každé zařízení).
  • Doplnění souřadnic + kodů ZSJ_D pro navázání do CM (aplikace Geocoding Augmentation + CAN AreaMapper v Kebooli).
  • Počtu lůžek / klientů pro jednotlivá zařízení.
Ukázka pár našich “scriptíků” v Keboola.

CleverAnalytics(CAN)

Pro práci s CAN jsme použili CleverAnalytics Shell — utilita, která běží v příkazové řádce a slouží ke konfiguraci projektu. Pomoci CAN Shellu jsme do projektu nahrávali data a sestavovali, jak bude vypadat uživatelské rozhraní v prohlížeči. Tzn. jaké indikátory, filtry a nebo typy vizualizace bude mít uživatel k dispozici.

Shell

CleverAnalytics nám poskytli datasety: Administrativní jednotky, demografie a data pro výpočet indexu expozice pro ČR, které jsme propojily s našemi datasety.

Data model

To jak výsledná mapa bude vypadat a fungovat je definováno v objektech (metrics, indicators, markers, dashboards, views, …) v Metadata modelu.

Práce v CAN je charakteristická tím, že každý krok musí být vytvořen ve formátu JSON. Pro počítání bylo nutné vytvořit metriky a indikátory, pro zobrazení indikátorů nadefinovat dashboard, pro možnost vyhledávání jsme vytvořily filtry, nadefinovaly jsme informace o zařízení do vizitky a pro vizualizaci umístění zařízení jsme vytvářely markery. JSON jsme připravovaly v textovém editoru a do aplikace nahrávaly prostřednictvím příkazů v CAN Shellu.

Naše aplikace obsahuje tři pohledy:

  • Vyhledávač sociálních služeb: Všechna zařízení na území ČR. Počty podle zvolené územní jednotky, věku, kategorie a formy služby. Filtrování a vyhledávání podle zadaných kritérií.
  • Kvalita místa: Všechna zařízení na území ČR podle kategorií. Index expozice (přitažlivost místa), který nám ukazuje co se v okolí vyskytuje (potraviny, zastávky, lékař, pošta, …).
  • Obyvatelstvo a sociální služby v ČR: Počet obyvatel a počet zařízení. Přehled nejkritičtějších oblastí z pohledu počtu obyvatel na jedno zařízení a počtu obyvatel na jedno lůžko/klienta (včetně všech filtrů).

A je to tady!

V jednotlivých pohledech je možné různě filtrovat, porovnávat nebo měnit prostředí. Ve videu ukázka hledání zařízení pro osobu starší 60 let s tělesním postižením v oblasti Liberecka. V kraji se nachází 251 zařízení a služeb (1723 obyvatel na 1 zařízení a 64 obyvatel na 1 lůžko). Po zadání kritérií (např. věk, postižení) nám vyjde 38 zařízení. Okolní kraje mají 54 (Hr. Králové), Středočeský dokonce 102 zařízení. V Liberci pak 10 vhodných služeb a v jeho okolí dohromady 8. Vybraný domov Kopretina se nachází v oblasti s dobrou občanskou vybaveností pro starší osobu — najdeme tam lékaře, nemocnici, bankomat nebo zastávku MHD.


A něco na závěr…

S čím vším jsme se setkaly od prvního nápadu po výslednou podobu aplikace.


Co nás ještě čeká

  1. Dotažení některých detailů (např. přidat některé filtry do Obyvatelstva).
  2. Do budoucna doplniť vyhledávaní nejlepšího spojení (autobus, vlak, mhd, auto) do vybraného zařízení.
  3. Najít efektívní způsob aktualizace dat.
  4. Máme dohodnuto s CleverAnalytics, že aplikace bude otevřená a dostupná pro veřejnost. Jupííí :-)

Děkovačka

  • Chceme poděkovat mentorům Radovanovi Jirků a Jirkovi Tobolkovi za nasměrování a podporu.
  • Danovi Vrátilovi za čas, péči a svatou trpělivost s námi při tvorbě Python scriptu.
  • Katce Tomáškové za pomoc, vedení a objevování skvělé platformy CleverAnalytics.
  • Našim můžům, Michaelovi a Kubovi, za to, že s námi i po těch třech náročných měsících stále jsou a mají nás a děti pořád rádi.

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade