top of page

Před hackathonem

Kapitola I – Data, téma a cíle

Na začátku všeho stála vize, že daty lze zachránit svět a že k záchraně není třeba ničeho menšího než krásných, čistých dat (v té době jsme věřily, že existují) a potom pár hodin příjemné práce, při níž se data propojí, upraví a zvizualizují. S lidovým moudrem “ve dvou se to lépe táhne” zarytým kdesi hluboko pod kůži a s vědomím, že člověk je tvor sociální, bylo jasné, že hned po vizi je důležité mít souputníka, se kterým se člověk může na svou cestu vydat.

    Z těchto důvodů se první týdny DA nesly v duchu přemýšlení o tématu (MHD, spánek) a výběru parťáka (přestávky, pivní dýchánky). Po finálním utvoření dvojičky následovalo prodiskutování cílů, záměrů a časových možností, aby bylo jasné, jakým směrem se vydat. V našem případě dvou pracujících jednotek vyhrál nad ostatními časový faktor a taky chuť naučit se co nejvíce z nástrojů DA. Rozhodly jsme se pro téma, u kterého jsme měly dostupná, známá data a zároveň možnost si vyzkoušet co nejvíc nástrojů datové analýzy (Python, SQL, Keboola, Tableau, SQLite).  

    Těsně před akcí Meet your mentor pak vznikl první ucelený plán toho, o čem by měl projekt na téma “O lécích a správních řízeních” být a jak by měl být koncipován:

osnova.PNG

Kapitola II – Začínáme projekt

Ve čtvrtém týdnu nás pak čekal další zlom v podobě akce Meet your mentor a po představení našeho projektu na 16 stanovištích jsme, vyčerpané a chraptící, ukořistily své mentory a mohly tak náš projekt posunout na další úroveň.

    Od mentorů jsme dostaly za úkol podívat se na data ještě jednou a připravit si tzv. vzdušné zámky o tom, co by mohl projekt obsahovat a stanovit si tzv. minimum viable product (tedy jakýsi základ, co musíme mít, aby projekt dával smysl). Jak asi pro nikoho nebude překvapení, tak se ukázalo, že vzdušné zámky by nám fakt šly a nápadů, co bychom chtěly všechno zjistit bylo několik - viz následující obrázek.

cile zelena.jpg

    V plánu bylo začít zeleným polem, které by v podstatě sloužilo k ucelenému zmapování stavu správních řízení. Zjistilo by se, jestli existují nějaké faktory, které ovlivňují jejich délku, což by mohlo být téma jednak společensky zajímavé a jednak užitečné, protože by došlo k identifikaci potenciálních faktorů. Další odnoží projektu měl být náhled do zahraničí a místní „lékovou politiku“, tedy alespoň tak, jak by ji šlo z dat vyčíst. Zaměření mělo být hlavně na dostupnost v zahraničí (červené pole), popř. na zjištění, za jak dlouho od registrace se léky dostávají na trh jako hrazené z prostředků veřejného zdravotního pojištění (oranžové pole). A jako třešinka na dortu, kdyby zbyl čas, mělo být fialové pole. To by bylo více zaměřené na správní řízení jako taková a už bylo víc cílené právě pro práci např. zdravotních pojišťoven, respektive přesnější by sloužilo k zefektivnění práce, kterou stejně dělají. S nově nabitým sebevědomím spojeným s odsouhlasením směru projektu mentory a vyzbrojené následujícími tabulkami (viz datový model – existující tabulky) :

  • SCAU (Seznam cen a úhrad – obsahuje vše o konkrétních léčivých přípravcích, kdy pro nás jsou nejdůležitější cenové údaje) – 96 tabulek,

  • DIS-13 (Tabulka o spotřebě jednotlivých léků – počty vydaných balení) – 8 tabulek,

  • přehled sř (přehled správních řízení o konkrétních LP) – 1 tabulka.


jsme se se slovy „my máme ze SÚKLu data super krásná čistá“ statečně vrhly na první cíl: zelené pole.

datove schema II.PNG

    Prvním krokem za naší vytyčenou metou bylo propojení všech výše zmíněných tabulek. V nadšení 5. týdne jsme si pár zkušebních souborů nahrály do Kebooly a měly pocit, že vše jde hladce a budeme pracovat v krásném prostředí jupyteru (Python) a snowlake (SQL). Z naší představy nás ale rychle vytrhl Dan na prvních projektových pracovních skupinkách, když si vyslechl naše potřeby/plány a usoudil, že nejlepší bude pracovat ve starém dobrém Visual Studio Code mimo Keboolu.

    A pak se stalo něco, co jsme si dosud vůbec nedovedly představit – Dan nám poradil, jak máme postupovat, zvedl se a šel za další dvojičkou. Ten pocit ochromení, úděsu a úžasu, když vás někdo nechá jako úplné programovací nováčky (dobře, po 4 lekcích pythonu) samotné se slovy: “existuje funkce listdir” se nedá popsat. V hlavě se vám začnou rojit myšlenky typu - „jako cože? To mě tu jako nechá s Pythonem samotnou? To může?! A co mám jako dělat?“ - a je úplně jedno, že víte, že vás nemůže pořád někdo vodit za ručičku.

    Nicméně po pár minutách prvotní šok opadne a pod tlakem toho, že přece nebudu za blbou a že se projekt sám prostě nenapíše, do Googlu opatrně napíšete první nedůvěřivé “how to” a objevujete stackoverflow a fakt, že nemůžete kopírovat bezmyšlenkovitě každý kód pod nadpisem, protože některé kódy nefungují.

    No a tak jsme dostaly první velkou lekci DA: bez Google (potažmo stackoverflow) a čtení, co ty internety píšou, daleko nedojdeš.

Kapitola III – Python

Když už jsme věděly, že velké spojování budeme dělat v Pythonu, bylo to vlastně vše, co jsme potřebovaly k vlastní práci a začalo tedy pythonovské řádění, kterému se ubránila jen jediná tabulka, a to přehled_sř.

    Co se nebohé DIS-13 (8 tabulek, děleno po rocích 2011-2018) týče, tak u té proběhla rozsáhlá změna datového rozhraní (téměř každý rok byl svým DR jiný), byl do ní přidán odpovídající rok a pak bylo všech osm tabulek spojeno dohromady.
    Tabulky SCAU (96 tabulek, pro každý rok 2011 - 2018 a měsíc 1 – 12) pak čekalo to samé, a to obohacení o odpovídající rok a měsíc (který byl uveden pouze v názvu každé tabulky), následná kontrola jejich datového rozhraní a pak byly spojeny dohromady po rocích.

novy sloupec s poznamkami.png
spojovani tabulek.png
rozhrani.png

      Zdá se to jednoduché, že?

    Tak vězte, že u nás to tak ze začátku vůbec nevypadalo. Snažení začalo tak, že jsme si jako pilné studentky samozřejmě všimly, že Martin má na kodim.cz ve volitelných lekcích záložku pandas: agregace. Shrnutí kapitoly znělo tak lákavě, že jsme věděly, že to je přesně to, co potřebujeme a tak s radostí z toho, že při našem prvním snažení zůstaneme v bezpečí ohrádky DA, jsme se daly do čtení… A skončily po dvou větách, protože zbytek v tu dobu nebyl dopsán. Pápá ohrádko, ahoj Google.

    Přesně v tento moment jsme také naši nejčastější hru s pythonem (takový malý for cyklus na téma: Czechita napíše kód, python zahlásí chybu) posunuly na další level, protože python přestal házet chybu po 2s, ale zcela vážně a dlouze začal uvažovat nad tím, co po něm chceme. Výsledkem bylo, že vyhazoval chyby se stále větší prodlevou.

    Zde došlo k ponaučení číslo dvě: had je kámoš, tak čti chybové hlášky, mnohdy Tě to dovede ke zdárnému výsledku i bez nutnosti googlení.

    Ve finále ale stejně došlo k tomu, že i úspěšný kód spojující všech 12 tabulek trval klidně přes dvě hodiny, takže jsme začaly přemýšlet, jak proces zefektivnit. Jedna možnost by samozřejmě byla napsat hezčí kód, ale na to se zatím moc necítíme, a druhá začít používat jako formát .csv místo .xls, což se pravdu jevilo jako efektivnější možnost.

    No a voilà z původních 105 tabulek jich máme 10 a cílíme na celkový počet 3! Tabulky SCAU zatím zůstávají rozděleny po rocích, abychom měly vůbec naději, že se nám je do Kebooly podaří nahrát.

Kapitola IV – Bye Python, welcome Keboola

U Kebooly bylo na hodině řečeno, že je úplně „easy“. Prý stačí sledovat zelená tlačítka a úspěšně si dojedeme do cíle pro první místo bez ublížení na zdraví.

    Jak už bylo zmíněno dříve, tak v Keboole jsme měly pár zkušebních souborů už nahraných, tudíž jsme se i v této fázi rozhodly pokračovat ve stejném duchu a přes Google drive extractor si nahrát do Kebooly naše nové tabulky.

    Bezchybný plán až na jednu drobnou chybu, že Google Sheets neumí zpracovat tabulky rozsáhlejší než 5 mil. buněk. Perfekt! Naštěstí jen 9 z našich 10 tabulek je větších než 5 mil. buněk! U 9 z 10 tabulek už nemůžete říct, že oběti se musí přinášet a ne všechna data zachráníte, tak jsme musely vymyslet jiný způsob jak propašovat naše soubory do Kebooly.

    Po lehké panice, co budeme teď dělat, když hackathon se neúprosně blíží (řád pár dnů) a bylo by dobré mít na Hackathonu v Keboole data nachystaná, jsme zjistily, že extractor není jediná možnost, jak si do Kebooly data uložit. Existuje ještě možnost přímého nahrání přímo z PC do storage. Navíc dokonce bez přiděleného kódu z extractoru, takže s kratším názvem, a tudíž snazší orientací v našich souborech. Jupí, tak přece je všechno zlé k něčemu dobré!

    Naštěstí jsme měly soubory i ve formátu .csv a ty, co pamatovaly ještě dobu kamennou našeho pythonovské snažení, tak se do .csv z .xlsx pomocí pythonu snadno převedly.

    Po připojení prvního .csv souboru na chapadlo naší modré chobotnice, jsme pochopily, že ani toto nebudeme mít zadarmo a poté, co jsme s Keboolou konečně vyhandlovaly smírčí podmínky na téma, co je hezky pojmenovaný sloupec a správný oddělovač, jsme měly data v Keboole a mohly začít další etapu.

© 2019 by Julie Mullen and Klara Selbicka. Proudly created with Wix.com

bottom of page