diff --git "a/Dokumenty/Obr\303\241zky/SAR_new.png" "b/Dokumenty/Obr\303\241zky/SAR_new.png" new file mode 100644 index 0000000000000000000000000000000000000000..96fc356bb02f87907ff23f15e846528e504f130d Binary files /dev/null and "b/Dokumenty/Obr\303\241zky/SAR_new.png" differ diff --git "a/Dokumenty/Obr\303\241zky/SAR_old.png" "b/Dokumenty/Obr\303\241zky/SAR_old.png" new file mode 100644 index 0000000000000000000000000000000000000000..adb0bc87200b082ee34e3381d55004d7892a42c5 Binary files /dev/null and "b/Dokumenty/Obr\303\241zky/SAR_old.png" differ diff --git "a/Dokumenty/Obr\303\241zky/dataflow_predikce.png" "b/Dokumenty/Obr\303\241zky/dataflow_predikce.png" deleted file mode 100644 index 1037fca2de5feeb88ecbc603269d4a9cc7321f0e..0000000000000000000000000000000000000000 Binary files "a/Dokumenty/Obr\303\241zky/dataflow_predikce.png" and /dev/null differ diff --git "a/Dokumenty/Obr\303\241zky/dataflow_prehled.png" "b/Dokumenty/Obr\303\241zky/dataflow_prehled.png" deleted file mode 100644 index 586d2db23a48cb9f4e43a9bd8c2581088eb44f62..0000000000000000000000000000000000000000 Binary files "a/Dokumenty/Obr\303\241zky/dataflow_prehled.png" and /dev/null differ diff --git "a/Dokumenty/Obr\303\241zky/dataflow_segmentace.png" "b/Dokumenty/Obr\303\241zky/dataflow_segmentace.png" deleted file mode 100644 index 1ec6eca79673ec90ea609ae7ba4215d31082ec03..0000000000000000000000000000000000000000 Binary files "a/Dokumenty/Obr\303\241zky/dataflow_segmentace.png" and /dev/null differ diff --git "a/Dokumenty/Obr\303\241zky/dataflow_statistiky.png" "b/Dokumenty/Obr\303\241zky/dataflow_statistiky.png" deleted file mode 100644 index 18883b507194b422ea7404996032ff72d9ca6752..0000000000000000000000000000000000000000 Binary files "a/Dokumenty/Obr\303\241zky/dataflow_statistiky.png" and /dev/null differ diff --git "a/Dokumenty/Obr\303\241zky/kontext.png" "b/Dokumenty/Obr\303\241zky/kontext.png" deleted file mode 100644 index 830c645fcb5ac3d313332700158fce01c019428b..0000000000000000000000000000000000000000 Binary files "a/Dokumenty/Obr\303\241zky/kontext.png" and /dev/null differ diff --git "a/Dokumenty/Obr\303\241zky/logicky.png" "b/Dokumenty/Obr\303\241zky/logicky.png" deleted file mode 100644 index efb534ef0f7c45be9c4f47f33f24751a836ca55d..0000000000000000000000000000000000000000 Binary files "a/Dokumenty/Obr\303\241zky/logicky.png" and /dev/null differ diff --git "a/Dokumenty/Obr\303\241zky/procesni.png" "b/Dokumenty/Obr\303\241zky/procesni.png" deleted file mode 100644 index db11f0aa841465a3b3f35d944b68efc74a6799ac..0000000000000000000000000000000000000000 Binary files "a/Dokumenty/Obr\303\241zky/procesni.png" and /dev/null differ diff --git "a/Dokumenty/Obr\303\241zky/stakeholders.png" "b/Dokumenty/Obr\303\241zky/stakeholders.png" deleted file mode 100644 index 8268f9fa86efdc27498d596a0ac612e4df827e30..0000000000000000000000000000000000000000 Binary files "a/Dokumenty/Obr\303\241zky/stakeholders.png" and /dev/null differ diff --git a/Dokumenty/architektura_SAR.md b/Dokumenty/architektura_SAR.md new file mode 100644 index 0000000000000000000000000000000000000000..3d21a787664c99370bafa281f2e837b2c5b7e38f --- /dev/null +++ b/Dokumenty/architektura_SAR.md @@ -0,0 +1,98 @@ +# Dokument softwarovĂ© architektury + +## VyuĹľitĂ Deep Learning v medicĂnskĂ˝ch aplikacĂch + +--- +Autor: Petra OcelĂková + +Datum: 20.10.2024 + +--- + +## NavrĹľená architektura + +Aplikace MediBug poskytuje uĹľivatelĹŻm MRE (Medical Research and Education) systĂ©mu aktuálnĂ pĹ™ehled dat +obsaĹľenĂ˝ch v nÄ›m. Sloužà jako podpora pro práci s daty z MRE systĂ©mu, usnadĹuje uĹľivatelĹŻm zaznamenat +neÄŤekanou zmÄ›nu v datech, ÄŤi ověřit si, Ĺľe pro jejich projekt existujĂ v MRE systĂ©mu vhodná data +a v dostateÄŤnĂ©m mnoĹľstvĂ. + +Ve FakultnĂ nemocnici PlzeĹ pouĹľĂvajĂ pro ukádánĂ a práci s medicĂnskĂ˝mi daty systĂ©m Medicalc. +Z toho se data exportujĂ na de-identifikaÄŤnĂ stroj ve FN, kde docházĂ k odstranÄ›nĂ citlivĂ˝ch +(osobnĂch) ĂşdajĹŻ a identifikace pacienta je nahrazena anonymnĂm ID. ZmÄ›ny provedenĂ© v Medicalcu jsou +buÄŹto po vyžádánĂ lĂ©kaĹ™em nebo v urÄŤitĂ˝ch ÄŤasovĂ˝ch intervalech posĂlána na jiĹľ zmĂnÄ›nĂ˝ de-identifikaÄŤnĂ +stroj a následnÄ› do MRE databáze. + +MediBug běžà na LinuxovĂ©m serveru KIVu a pracuje s daty z databáze MRE. Ty pak zobrazuje v podobÄ› +pĹ™ehlednĂ˝ch agregátĹŻ, ÄŤasovĂ˝ch Ĺ™ad, tabulek apod. + +**Kontext systĂ©mu:** + + +**Technologie:** + +- Python + - Pro implementaci aplikace jsme si z dĹŻvodu preference zvolili jazyk Python. +- Databáze Virtuosso + - Data v MRE systĂ©mu, se kterĂ˝mi MediBug pracuje, jsou uloĹľena v databázi Virtusso, která ukládá data do RDF. +- Sparql + - Sparql je dotazovacĂ jazyk pro práci s RDF databázemi. +- Streamlit + - Framework pro tvorbu webovĂ˝ch aplikacĂ v jazyce Python. + +S daty z databáze MRE pracujeme ve formátu CSV. + + + + +## Implementace + +*zde bude implementaÄŤnĂ pohled + moĹľná dalšĂ* + + + +## PĹŻvodnĂ architektura (ASWI, TSP1) + +Naše pĹŻvodnÄ› vyvĂjená aplikace mÄ›la slouĹľit lĂ©kařům na neurologickĂ©m oddÄ›lenĂ ve FakultnĂ nemocnici +v Plzni k zobrazenĂ statistik dat uloĹľenĂ˝ch v databázi a k analĂ˝ze obrazovĂ˝ch (i textovĂ˝ch) dat +jednotlivĂ˝ch pacientĹŻ s cĂ©vnĂ mozkovou pĹ™Ăhodou neuronovou sĂtĂ. + +**Technologie:** + +- Python + - Pro implementaci backendu aplikace jsme si z dĹŻvodu preference zvolili jazyk Python. +- Databáze Virtuosso + - Data v MRE systĂ©mu, se kterĂ˝mi MediBug pracuje, jsou uloĹľena v databázi Virtusso, která ukládá data do RDF. +- Sparql + - Sparql je dotazovacĂ jazyk pro práci s RDF databázemi. +- Flask + - Backend MediBugu poběžà na FlaskovĂ©m serveru, kterĂ˝ se pĂše v Pythonu a je pomÄ›rnÄ› jednoduchĂ© ho + implementovat pro potĹ™eby našà aplikace. +- React, HTML, CSS + - Z dĹŻvodu preference je frontend implementován v Reactu s pomocĂ HTML a CSS. +- Pandas + - Pro vĂ˝poÄŤty statistik v Pythonu vyuĹľijeme knihovnu Pandas. +- Scikit-learn, TensorFlow, Keras + - Pro deep learning (segmentace, predikce mRS) v Pythonu pouĹľĂváme tyto nástroje. + +Data mezi jednotlivĂ˝mi částmi systĂ©mu (databáze, Flask server, frontend) pĹ™enášĂme ve formátu JSON. +To je standardnĂ formát pro pĹ™enos dat mezi rĹŻznĂ˝mi API. + + + + + + + + + + + + + + + + + + + + diff --git a/Dokumenty/dokument_softwarove_architektury.md b/Dokumenty/dokument_softwarove_architektury.md deleted file mode 100644 index e5368bd9db6bd63eb9abe63db7eb8251a9d2b370..0000000000000000000000000000000000000000 --- a/Dokumenty/dokument_softwarove_architektury.md +++ /dev/null @@ -1,208 +0,0 @@ -# Dokument softwarovĂ© architektury - -## VyuĹľitĂ Deep Learning v medicĂnskĂ˝ch aplikacĂch - ---- -Autor: Petra OcelĂková - -Datum: 11.5.2024 - ---- - -Naše vyvĂjená aplikace má slouĹľit lĂ©kařům na neurologickĂ©m oddÄ›lenĂ ve FakultnĂ nemocnici v Plzni k zobrazenĂ -statistik dat uloĹľenĂ˝ch v databázi a k analĂ˝ze obrazovĂ˝ch (i textovĂ˝ch) dat jednotlivĂ˝ch pacientĹŻ s cĂ©vnĂ -mozkovou pĹ™Ăhodou neuronovou sĂtĂ. - -Našà aplikaci jsme pojmenovali **MediBug**. - - -### Kontext - -MediBug pracuje s daty z databáze MRE. Ty pak na základÄ› pokynĹŻ zadávanĂ˝ch uĹľivatelem analyzuje, vypoÄŤĂtává -nad nimi statistiky a vĂ˝sledky uĹľivateli zobrazuje. - - - - -### FyzickĂ˝ pohled - -Ve FakultnĂ nemocnici PlzeĹ pouĹľĂvajĂ pro ukádánĂ a práci s medicĂnskĂ˝mi daty systĂ©m Medicalc. Z toho se data -exportujĂ na de-identifikaÄŤnĂ stroj ve FN, kde docházĂ k odstranÄ›nĂ citlivĂ˝ch (osobnĂch) ĂşdajĹŻ a identifikace -pacienta je nahrazena anonymnĂm ID. ZmÄ›ny provedenĂ© v Medicalcu jsou buÄŹto po vyžádánĂ lĂ©kaĹ™em nebo v -urÄŤitĂ˝ch ÄŤasovĂ˝ch intervalech posĂlána na jiĹľ zmĂnÄ›nĂ˝ de-identifikaÄŤnĂ stroj a následnÄ› do MRE databáze. - -Naše aplikace běžà na LinuxovĂ©m serveru KIVu a pracuje pouze s daty v MRE databázi, k databázi ve FN nemá v -žádnĂ©m pĹ™ĂpadÄ› pĹ™Ăstup. - - - - - -### LogickĂ˝ pohled - -**3-vrstvá architektura** - -Na prezenÄŤnĂ vrstvÄ› je webovĂ© rozhranĂ, kde probĂhá interakce s uĹľivatelem, kterĂ˝ zde volĂ jakĂ© akce a nad -jakĂ˝mi daty chce provĂ©st. ZároveĹ se zde zobrazĂ počáteÄŤnĂ pĹ™ehled dat obsaĹľenĂ˝ch v MRE databázi a vĂ˝sledky -provedenĂ˝ch analĂ˝z a statistik. - -V logickĂ© vrstvÄ› je logika aplikace. ProbĂhajĂ zde vĂ˝poÄŤty statistik, pĹ™edzpacovávajĂ se data pro analĂ˝zu -natrĂ©novanĂ˝m modelem neuronovĂ© sĂtÄ› a samotná segmentace obrazu a predikce mRS. - -Na datovĂ© vrstvÄ› je datová pumpa, která pĹ™ebĂrá poĹľadavky na data z ostatnĂch vrstev a zĂskává je z MRE -databáze. - - - - -### ProcesnĂ pohled - -Po pĹ™ihlášenĂ se uĹľivateli zobrazĂ pĹ™ehled dat z MRE databáze. Pak si uĹľivatel zvolĂ jakou akci chce provĂ©st -a nad kterĂ˝mi daty. Podle toho jakou akci a jaká kritĂ©ria zvolil, se z MRE databáze naÄŤtou data, provede se -kontrola, zda lze danou akci nad tÄ›mito daty provĂ©st a pĹ™ĂpadnÄ› se data i pĹ™edzpracujĂ. Pak probÄ›hne samotná -akce (vĂ˝poÄŤet statistik, segmentace obrazu, predikce mRS). VĂ˝sledky se pak zobrazĂ ve vhodnĂ© formÄ› uĹľivateli. - -Na frontendu se upravujĂ data pro zobrazenĂ a zobrazujĂ se na webovĂ© stránce uĹľivateli. Backend obsahuje -Ĺ™ĂdĂcĂ/kontrolnà část, odkud se volajĂ funkce ostatnĂch částĂ a probĂhá zde kontrola proveditelnosti zadanĂ© -akce. PĹ™edzpracovávajĂ se zde data pro analĂ˝zu natrĂ©novanou neuronovou sĂtĂ. Na backendu je takĂ© datová -pumpa, která komunikuje pĹ™Ămo s databázĂ MRE. A nakonec jsou zde modely pro segmentaci obrazu a predikci -mRS a program pro vĂ˝poÄŤty statistik. - - - - - -### ImplementaÄŤnĂ pohled - - -Na diagramu jsou zobrazeny jednotlivĂ© komponenty (files) softwaru a knihovny, kterĂ© importujĂ. - -**Technologie:** - -- Python - - Pro implementaci backendu aplikace jsme si z dĹŻvodu preference zvolili jazyk Python. -- Databáze Virtuosso - - Data v MRE systĂ©mu, se kterĂ˝mi MediBug pracuje, jsou uloĹľena v databázi Virtusso, která ukládá data do RDF. -- Sparql - - Sparql je dotazovacĂ jazyk pro práci s RDF databázemi. -- Flask - - Backend MediBugu poběžà na FlaskovĂ©m serveru, kterĂ˝ se pĂše v Pythonu a je pomÄ›rnÄ› jednoduchĂ© ho - implementovat pro potĹ™eby našà aplikace. -- React, HTML, CSS - - Z dĹŻvodu preference je frontend implementován v Reactu s pomocĂ HTML a CSS. -- Pandas - - Pro vĂ˝poÄŤty statistik v Pythonu vyuĹľijeme knihovnu Pandas. -- Scikit-learn, TensorFlow, Keras - - Pro deep learning (segmentace, predikce mRS) v Pythonu pouĹľĂváme tyto nástroje. - -**Formáty dat:** -- V MRE databázi jsou uloĹľená data v RDF (obrazová i textová) -- HL7 formát (Health Level 7; datovĂ˝ formát pro vĂ˝mÄ›nu informacĂ o zdravotnĂ pĂ©ÄŤi mezi rĹŻznĂ˝mi softwarovĂ˝mi -systĂ©my) -- DASTA (ÄŚeskĂ˝ národnĂ datovĂ˝ standard vydávanĂ˝ MZ ÄŚR pro vĂ˝mÄ›nu informacĂ ve zdravotnictvĂ) -- DICOM (datovĂ˝ standard pro pĹ™enos biomedicĂnskĂ˝ch obrazovĂ˝ch dat) - -Data mezi jednotlivĂ˝mi částmi systĂ©mu (databáze, Flask server, frontend) pĹ™enášĂme ve formátu JSON. To je -standardnĂ formát pro pĹ™enos dat mezi rĹŻznĂ˝mi API. - -**Dokumentace kĂłdu:** kaĹľdá fuknkce a tĹ™Ăda by mÄ›la mĂt komentář obsahujĂcĂ popis toho k ÄŤemu slouĹľĂ, -pĹ™ĂpadnÄ› i pĹ™edávanĂ˝ch parametrĹŻ a návratovĂ© hodnoty. - - -### DatovĂ© toky v souvislosti s komponentami z implementaÄŤnĂho pohledu - -Tok dat pro zobrazenĂ pĹ™ehledu hned po pĹ™ihlášenĂ uĹľivatele: - - -Tok dat pro vĂ˝poÄŤet statistik: - - -Tok dat pro segmentaci obrazu: - - -Tok dat pro predikci mRS: - - -### JSON Schema pro posĂlánĂ dat z datovĂ© pumpy na web -``` -{ - "type": "object", - "properties": { - "period": { - "type": "string" - }, - "graf": { - "type": "array", - "items": { - "type": "object", - "properties": { - "period": {}, - "values": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "count": { - "type": "number" - }, - "date": { - "type": "string" - }, - "types": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "count": { - "type": "number" - } - }, - "required": [ - "name", - "count" - ] - } - } - }, - "required": [] - } - }, - "median": { - "type": "number" - }, - "1kvartil": { - "type": "number" - }, - "3kvartil": { - "type": "number" - }, - "outliersLeft": { - "type": "number" - }, - "outliersRight": { - "type": "number" - } - }, - "required": [ - "period" - ] - } - } - }, - "required": [ - "period", - "graf" - ] -} -``` - - - - - diff --git a/Dokumenty/logicky_ramec.pdf b/Dokumenty/logicky_ramec.pdf deleted file mode 100644 index fa3f56eae468b3672c00a0447a9ab855812aa63a..0000000000000000000000000000000000000000 Binary files a/Dokumenty/logicky_ramec.pdf and /dev/null differ diff --git a/Dokumenty/uzivatelska_dokumentace.md b/Dokumenty/uzivatelska_dokumentace.md deleted file mode 100644 index 61c1fc7768812ae754c48f43bc937f53c815853f..0000000000000000000000000000000000000000 --- a/Dokumenty/uzivatelska_dokumentace.md +++ /dev/null @@ -1,68 +0,0 @@ -# UĹľivatelská dokumentace - -## MediBug - ---- -Autor: Petra OcelĂková - -Datum: 25.5.2024 - ---- - -### Co je to MediBug? -MediBug je webová aplikace, jejĂĹľ účelem je umoĹľnit lĂ©kařům nad medicĂnskĂ˝mi daty pacientĹŻ -s cĂ©vnĂ mozkovou pĹ™Ăhodou (CMP) vĂ˝poÄŤty statistik a komplexnĂ analĂ˝zu pomocĂ deep learning -(segmentace snĂmkĹŻ z vyšetĹ™enĂ, vyhodnocenĂ následkĹŻ CMP). - -MediBug v aktuálnĂ verzi poskytuje zobrazenĂ statistik dat uloĹľenĂ˝ch v databázi ve formÄ› -dashboardu a segmentaci obrazovĂ˝ch dat jednotlivĂ˝ch pacientĹŻ s cĂ©vnĂ mozkovou pĹ™Ăhodou. - -Je pĹ™Ăstupná lĂ©kařům na neurologickĂ©m oddÄ›lenĂ ve FakultnĂ nemocnici v Plzni. - -### PĹ™Ăstup k aplikaci -MediBug je součástĂ webu medical.zcu.cz - -Na tĂ©to stránce se uĹľivatel pĹ™ihlásĂ svĂ˝mi pĹ™ihlašovacĂmi Ăşdaji, pĹ™ĂpadnÄ› novÄ› zaregistruje. - -Po ĂşspěšnĂ©m pĹ™ihlášenĂ se v hornĂ lištÄ› objevĂ ikona `MediBug`. - -Po kliknutĂ na tuto ikonu se uĹľivatel dostane do aplikace MediBug. - - -### UĹľivatelskĂ© rozhranĂ -Po vstoupenĂ do aplikace se zobrazĂ dashboard se statistikami uloĹľenĂ˝ch medicĂnskĂ˝ch dat -v databázi MRE. - -Vlevo na stránce je menu s vĂ˝bÄ›rem jednotlivĂ˝ch funkcĂ. Ty jsou popsanĂ© v následujĂcĂ sekci. - - -### PoskytovanĂ© funkce -**Dashboard** - -Dashboard stránka se zobrazĂ implicitnÄ› hned po vstupu do aplikace. Jsou zde grafy -popisujĂcĂ statistiky uloĹľenĂ˝ch medicĂnskĂ˝ch dat v databázi MRE systĂ©mu. - -UĹľivatel si mĹŻĹľe pĹ™epĂnat filtry zobrazenĂ grafĹŻ - 12 let, 6 let a 1 rok. DefaultnÄ› se grafy -zobrazĂ s filtrem 12 let. - -| Filtr | ÄŚasová jednotka | -|:-------|:----------------| -| 12 let | rok | -| 6 let | pĹŻl rok | -| 1 rok | mÄ›sĂc | - -**Segmentace obrazovĂ˝ch dat** - -Na funkci segmentace se uĹľivatel pĹ™epne pomocĂ menu vlevo. - -Na tĂ©to stránce uĹľivatel zadá kritĂ©ria (id pacienta a datum sĂ©rie), pro která chce -nalĂ©zt DICOM sĂ©riĂ uloĹľenou v databázi MRE systĂ©mu, která se pak bude segmentovat. - -Vybraná sĂ©rie snĂmkĹŻ se segmentuje - nalezne se postiĹľená oblast mozku a vĂ˝sledek se -zobrazĂ v pravĂ© části stránky. - -V levĂ© části stránky je zobrazenĂ˝ pĹŻvodnĂ snĂmek, u kterĂ©ho si uĹľivatel mĹŻĹľe -upravovat parametry pro windowing (napĹ™Ăklad pro kontrolu správnosti segmentace). - -UĹľivatel mĹŻĹľe mezi jednotlivĂ˝mi snĂmky listovat pomocĂ slide baru. - diff --git a/app.log b/app.log index 6fa22d76eb456c62bd1fdf3e49bdc7c9e380abcd..80eb21fae52ce46b7fb642c7033eac22dca44128 100644 --- a/app.log +++ b/app.log @@ -1364,3 +1364,46 @@ TypeError: The view function for 'handle_data' did not return a valid response. 2024-06-05 13:02:34,453 - INFO - [31m[1mWARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.[0m * Running on http://127.0.0.1:5000 2024-06-05 13:02:34,454 - INFO - [33mPress CTRL+C to quit[0m +2024-06-19 19:44:20,555 - INFO - [31m[1mWARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.[0m + * Running on all addresses (0.0.0.0) + * Running on http://127.0.0.1:5000 + * Running on http://192.168.0.13:5000 +2024-06-19 19:44:20,556 - INFO - [33mPress CTRL+C to quit[0m +2024-06-19 19:44:20,557 - INFO - * Restarting with stat +2024-06-19 19:44:23,432 - WARNING - * Debugger is active! +2024-06-19 19:44:23,433 - INFO - * Debugger PIN: 125-302-949 +2024-06-19 19:45:53,494 - INFO - 127.0.0.1 - - [19/Jun/2024 19:45:53] "OPTIONS /data HTTP/1.1" 200 - +2024-06-19 19:45:53,499 - INFO - Received data: {'key': 'ClientDashboardRequest', 'period': '12Y'} +2024-06-19 19:45:53,500 - INFO - Request: ClientDashboardRequest +2024-06-19 19:45:53,500 - INFO - key is: ClientDashboardRequest +2024-06-19 19:45:53,500 - INFO - period is: 12Y +2024-06-19 19:46:04,005 - INFO - Retrieved result from DB2: {'period': '12Y', 'graf': [{'period': '12Y', 'values': [{'name': 'pacienti', 'count': 4009}, {'name': 'trombolĂ˝za', 'count': 2469}, {'name': 'trombektomie', 'count': 511}, {'name': 'kombinace', 'count': 2980}]}, {'period': '12Y', 'values': [{'date': '2013', 'types': [{'name': 'SR', 'count': 0}, {'name': 'HS', 'count': 0}, {'name': 'CT', 'count': 32144}, {'name': 'MR', 'count': 3992}, {'name': 'MG', 'count': 0}, {'name': 'PT', 'count': 0}, {'name': 'RF', 'count': 0}, {'name': 'XA', 'count': 0}, {'name': 'CR', 'count': 0}, {'name': 'SEG', 'count': 0}]}, {'date': '2014', 'types': [{'name': 'SR', 'count': 0}, {'name': 'HS', 'count': 0}, {'name': 'CT', 'count': 66934}, {'name': 'MR', 'count': 3585}, {'name': 'MG', 'count': 0}, {'name': 'PT', 'count': 1}, {'name': 'RF', 'count': 0}, {'name': 'XA', 'count': 0}, {'name': 'CR', 'count': 0}, {'name': 'SEG', 'count': 84}]}, {'date': '2015', 'types': [{'name': 'SR', 'count': 2}, {'name': 'HS', 'count': 0}, {'name': 'CT', 'count': 1098342}, {'name': 'MR', 'count': 6898}, {'name': 'MG', 'count': 25}, {'name': 'PT', 'count': 0}, {'name': 'RF', 'count': 18}, {'name': 'XA', 'count': 32}, {'name': 'CR', 'count': 10}, {'name': 'SEG', 'count': 108}]}, {'date': '2016', 'types': [{'name': 'SR', 'count': 1237}, {'name': 'HS', 'count': 0}, {'name': 'CT', 'count': 2421649}, {'name': 'MR', 'count': 12320}, {'name': 'MG', 'count': 0}, {'name': 'PT', 'count': 0}, {'name': 'RF', 'count': 0}, {'name': 'XA', 'count': 0}, {'name': 'CR', 'count': 0}, {'name': 'SEG', 'count': 0}]}, {'date': '2017', 'types': [{'name': 'SR', 'count': 71}, {'name': 'HS', 'count': 0}, {'name': 'CT', 'count': 2715849}, {'name': 'MR', 'count': 14447}, {'name': 'MG', 'count': 0}, {'name': 'PT', 'count': 852}, {'name': 'RF', 'count': 0}, {'name': 'XA', 'count': 0}, {'name': 'CR', 'count': 0}, {'name': 'SEG', 'count': 0}]}, {'date': '2018', 'types': [{'name': 'SR', 'count': 0}, {'name': 'HS', 'count': 0}, {'name': 'CT', 'count': 1938776}, {'name': 'MR', 'count': 11957}, {'name': 'MG', 'count': 0}, {'name': 'PT', 'count': 726}, {'name': 'RF', 'count': 0}, {'name': 'XA', 'count': 0}, {'name': 'CR', 'count': 0}, {'name': 'SEG', 'count': 0}]}, {'date': '2019', 'types': [{'name': 'SR', 'count': 0}, {'name': 'HS', 'count': 306}, {'name': 'CT', 'count': 2051929}, {'name': 'MR', 'count': 5999}, {'name': 'MG', 'count': 0}, {'name': 'PT', 'count': 0}, {'name': 'RF', 'count': 0}, {'name': 'XA', 'count': 0}, {'name': 'CR', 'count': 0}, {'name': 'SEG', 'count': 0}]}, {'date': '2020', 'types': [{'name': 'SR', 'count': 0}, {'name': 'HS', 'count': 0}, {'name': 'CT', 'count': 2315932}, {'name': 'MR', 'count': 21457}, {'name': 'MG', 'count': 0}, {'name': 'PT', 'count': 0}, {'name': 'RF', 'count': 0}, {'name': 'XA', 'count': 0}, {'name': 'CR', 'count': 0}, {'name': 'SEG', 'count': 0}]}, {'date': '2021', 'types': [{'name': 'SR', 'count': 0}, {'name': 'HS', 'count': 0}, {'name': 'CT', 'count': 2024264}, {'name': 'MR', 'count': 9321}, {'name': 'MG', 'count': 0}, {'name': 'PT', 'count': 0}, {'name': 'RF', 'count': 0}, {'name': 'XA', 'count': 0}, {'name': 'CR', 'count': 0}, {'name': 'SEG', 'count': 0}]}, {'date': '2022', 'types': [{'name': 'SR', 'count': 0}, {'name': 'HS', 'count': 0}, {'name': 'CT', 'count': 2282900}, {'name': 'MR', 'count': 21820}, {'name': 'MG', 'count': 0}, {'name': 'PT', 'count': 0}, {'name': 'RF', 'count': 0}, {'name': 'XA', 'count': 0}, {'name': 'CR', 'count': 0}, {'name': 'SEG', 'count': 4}]}, {'date': '2023', 'types': [{'name': 'SR', 'count': 1}, {'name': 'HS', 'count': 0}, {'name': 'CT', 'count': 2682089}, {'name': 'MR', 'count': 2205}, {'name': 'MG', 'count': 0}, {'name': 'PT', 'count': 0}, {'name': 'RF', 'count': 0}, {'name': 'XA', 'count': 0}, {'name': 'CR', 'count': 0}, {'name': 'SEG', 'count': 0}]}, {'date': '2024', 'types': [{'name': 'SR', 'count': 0}, {'name': 'HS', 'count': 0}, {'name': 'CT', 'count': 1343765}, {'name': 'MR', 'count': 0}, {'name': 'MG', 'count': 0}, {'name': 'PT', 'count': 0}, {'name': 'RF', 'count': 0}, {'name': 'XA', 'count': 0}, {'name': 'CR', 'count': 0}, {'name': 'SEG', 'count': 0}]}]}, {'period': '12Y', 'values': [{'date': '2013', 'types': [{'name': 'trombektomie', 'count': 0}, {'name': 'trombolĂ˝za', 'count': 1}, {'name': 'kombinace', 'count': 1}]}, {'date': '2014', 'types': [{'name': 'trombektomie', 'count': 0}, {'name': 'trombolĂ˝za', 'count': 3}, {'name': 'kombinace', 'count': 3}]}, {'date': '2015', 'types': [{'name': 'trombektomie', 'count': 20}, {'name': 'trombolĂ˝za', 'count': 168}, {'name': 'kombinace', 'count': 188}]}, {'date': '2016', 'types': [{'name': 'trombektomie', 'count': 46}, {'name': 'trombolĂ˝za', 'count': 324}, {'name': 'kombinace', 'count': 370}]}, {'date': '2017', 'types': [{'name': 'trombektomie', 'count': 63}, {'name': 'trombolĂ˝za', 'count': 306}, {'name': 'kombinace', 'count': 369}]}, {'date': '2018', 'types': [{'name': 'trombektomie', 'count': 58}, {'name': 'trombolĂ˝za', 'count': 325}, {'name': 'kombinace', 'count': 383}]}, {'date': '2019', 'types': [{'name': 'trombektomie', 'count': 68}, {'name': 'trombolĂ˝za', 'count': 315}, {'name': 'kombinace', 'count': 383}]}, {'date': '2020', 'types': [{'name': 'trombektomie', 'count': 75}, {'name': 'trombolĂ˝za', 'count': 310}, {'name': 'kombinace', 'count': 385}]}, {'date': '2021', 'types': [{'name': 'trombektomie', 'count': 91}, {'name': 'trombolĂ˝za', 'count': 367}, {'name': 'kombinace', 'count': 458}]}, {'date': '2022', 'types': [{'name': 'trombektomie', 'count': 80}, {'name': 'trombolĂ˝za', 'count': 311}, {'name': 'kombinace', 'count': 391}]}, {'date': '2023', 'types': [{'name': 'trombektomie', 'count': 9}, {'name': 'trombolĂ˝za', 'count': 37}, {'name': 'kombinace', 'count': 46}]}, {'date': '2024', 'types': [{'name': 'trombektomie', 'count': 0}, {'name': 'trombolĂ˝za', 'count': 0}, {'name': 'kombinace', 'count': 0}]}]}, {'period': 12, 'median': 4977.0, '1kvartil': 3398.0, '3kvartil': 7285.0, 'outliersLeft': 1, 'outliersRight': 46410}]} +2024-06-19 19:46:04,008 - INFO - 127.0.0.1 - - [19/Jun/2024 19:46:04] "POST /data HTTP/1.1" 200 - +2024-06-19 19:46:08,037 - INFO - 127.0.0.1 - - [19/Jun/2024 19:46:08] "OPTIONS /data HTTP/1.1" 200 - +2024-06-19 19:46:08,043 - INFO - Received data: {'key': 'ClientDashboardRequest', 'period': '6Y'} +2024-06-19 19:46:08,043 - INFO - Request: ClientDashboardRequest +2024-06-19 19:46:08,043 - INFO - key is: ClientDashboardRequest +2024-06-19 19:46:08,044 - INFO - period is: 6Y +2024-06-19 19:46:13,463 - INFO - Retrieved result from DB2: {'period': '6Y', 'graf': [{'period': '6Y', 'values': [{'name': 'pacienti', 'count': 2748}, {'name': 'trombolĂ˝za', 'count': 1532}, {'name': 'trombektomie', 'count': 363}, {'name': 'kombinace', 'count': 1895}]}, {'period': '6Y', 'values': [{'date': '2018/06-2018/12', 'types': [{'name': 'HS', 'count': 0}, {'name': 'SR', 'count': 0}, {'name': 'CT', 'count': 1144192}, {'name': 'MR', 'count': 4160}, {'name': 'SEG', 'count': 0}]}, {'date': '2018/12-2019/06', 'types': [{'name': 'HS', 'count': 298}, {'name': 'SR', 'count': 0}, {'name': 'CT', 'count': 1182207}, {'name': 'MR', 'count': 2022}, {'name': 'SEG', 'count': 0}]}, {'date': '2019/06-2019/12', 'types': [{'name': 'HS', 'count': 306}, {'name': 'SR', 'count': 0}, {'name': 'CT', 'count': 1237478}, {'name': 'MR', 'count': 3977}, {'name': 'SEG', 'count': 0}]}, {'date': '2019/12-2020/06', 'types': [{'name': 'HS', 'count': 0}, {'name': 'SR', 'count': 0}, {'name': 'CT', 'count': 1140107}, {'name': 'MR', 'count': 7735}, {'name': 'SEG', 'count': 0}]}, {'date': '2020/06-2020/12', 'types': [{'name': 'HS', 'count': 0}, {'name': 'SR', 'count': 0}, {'name': 'CT', 'count': 1545998}, {'name': 'MR', 'count': 13722}, {'name': 'SEG', 'count': 0}]}, {'date': '2020/12-2021/06', 'types': [{'name': 'HS', 'count': 0}, {'name': 'SR', 'count': 0}, {'name': 'CT', 'count': 1385425}, {'name': 'MR', 'count': 5712}, {'name': 'SEG', 'count': 0}]}, {'date': '2021/06-2021/12', 'types': [{'name': 'HS', 'count': 0}, {'name': 'SR', 'count': 0}, {'name': 'CT', 'count': 958774}, {'name': 'MR', 'count': 3609}, {'name': 'SEG', 'count': 0}]}, {'date': '2021/12-2022/06', 'types': [{'name': 'HS', 'count': 0}, {'name': 'SR', 'count': 0}, {'name': 'CT', 'count': 1387500}, {'name': 'MR', 'count': 16391}, {'name': 'SEG', 'count': 0}]}, {'date': '2022/06-2022/12', 'types': [{'name': 'HS', 'count': 0}, {'name': 'SR', 'count': 0}, {'name': 'CT', 'count': 1342282}, {'name': 'MR', 'count': 7569}, {'name': 'SEG', 'count': 4}]}, {'date': '2022/12-2023/06', 'types': [{'name': 'HS', 'count': 0}, {'name': 'SR', 'count': 0}, {'name': 'CT', 'count': 1625636}, {'name': 'MR', 'count': 2715}, {'name': 'SEG', 'count': 4}]}, {'date': '2023/06-2023/12', 'types': [{'name': 'HS', 'count': 0}, {'name': 'SR', 'count': 1}, {'name': 'CT', 'count': 1519950}, {'name': 'MR', 'count': 0}, {'name': 'SEG', 'count': 0}]}, {'date': '2023/12-2024/06', 'types': [{'name': 'HS', 'count': 0}, {'name': 'SR', 'count': 0}, {'name': 'CT', 'count': 1515475}, {'name': 'MR', 'count': 0}, {'name': 'SEG', 'count': 0}]}]}, {'period': '6Y', 'values': [{'date': '2018/06-2018/12', 'types': [{'name': 'trombektomie', 'count': 39}, {'name': 'trombolĂ˝za', 'count': 190}, {'name': 'kombinace', 'count': 229}]}, {'date': '2018/12-2019/06', 'types': [{'name': 'trombektomie', 'count': 34}, {'name': 'trombolĂ˝za', 'count': 190}, {'name': 'kombinace', 'count': 224}]}, {'date': '2019/06-2019/12', 'types': [{'name': 'trombektomie', 'count': 45}, {'name': 'trombolĂ˝za', 'count': 183}, {'name': 'kombinace', 'count': 228}]}, {'date': '2019/12-2020/06', 'types': [{'name': 'trombektomie', 'count': 50}, {'name': 'trombolĂ˝za', 'count': 169}, {'name': 'kombinace', 'count': 219}]}, {'date': '2020/06-2020/12', 'types': [{'name': 'trombektomie', 'count': 44}, {'name': 'trombolĂ˝za', 'count': 188}, {'name': 'kombinace', 'count': 232}]}, {'date': '2020/12-2021/06', 'types': [{'name': 'trombektomie', 'count': 53}, {'name': 'trombolĂ˝za', 'count': 218}, {'name': 'kombinace', 'count': 271}]}, {'date': '2021/06-2021/12', 'types': [{'name': 'trombektomie', 'count': 49}, {'name': 'trombolĂ˝za', 'count': 206}, {'name': 'kombinace', 'count': 255}]}, {'date': '2021/12-2022/06', 'types': [{'name': 'trombektomie', 'count': 47}, {'name': 'trombolĂ˝za', 'count': 180}, {'name': 'kombinace', 'count': 227}]}, {'date': '2022/06-2022/12', 'types': [{'name': 'trombektomie', 'count': 46}, {'name': 'trombolĂ˝za', 'count': 181}, {'name': 'kombinace', 'count': 227}]}, {'date': '2022/12-2023/06', 'types': [{'name': 'trombektomie', 'count': 15}, {'name': 'trombolĂ˝za', 'count': 62}, {'name': 'kombinace', 'count': 77}]}, {'date': '2023/06-2023/12', 'types': [{'name': 'trombektomie', 'count': 0}, {'name': 'trombolĂ˝za', 'count': 0}, {'name': 'kombinace', 'count': 0}]}, {'date': '2023/12-2024/06', 'types': [{'name': 'trombektomie', 'count': 0}, {'name': 'trombolĂ˝za', 'count': 0}, {'name': 'kombinace', 'count': 0}]}]}, {'period': 12, 'median': 4624.0, '1kvartil': 3505.0, '3kvartil': 6586.0, 'outliersLeft': 1, 'outliersRight': 46410}]} +2024-06-19 19:46:13,465 - INFO - 127.0.0.1 - - [19/Jun/2024 19:46:13] "POST /data HTTP/1.1" 200 - +2024-06-19 19:46:16,955 - INFO - 127.0.0.1 - - [19/Jun/2024 19:46:16] "OPTIONS /data HTTP/1.1" 200 - +2024-06-19 19:46:16,961 - INFO - Received data: {'key': 'ClientDashboardRequest', 'period': '1Y'} +2024-06-19 19:46:16,962 - INFO - Request: ClientDashboardRequest +2024-06-19 19:46:16,962 - INFO - key is: ClientDashboardRequest +2024-06-19 19:46:16,962 - INFO - period is: 1Y +2024-06-19 19:46:21,497 - INFO - Retrieved result from DB2: {'period': '1Y', 'graf': [{'period': '1Y', 'values': [{'name': 'pacienti', 'count': 511}, {'name': 'trombolĂ˝za', 'count': 0}, {'name': 'trombektomie', 'count': 0}, {'name': 'kombinace', 'count': 0}]}, {'period': '1Y', 'values': [{'date': '2023-07', 'types': [{'name': 'HS', 'count': 0}, {'name': 'SR', 'count': 0}, {'name': 'CT', 'count': 238779}, {'name': 'MR', 'count': 0}, {'name': 'MG', 'count': 0}, {'name': 'PT', 'count': 0}, {'name': 'RF', 'count': 0}, {'name': 'XA', 'count': 0}, {'name': 'CR', 'count': 0}, {'name': 'SEG', 'count': 0}]}, {'date': '2023-08', 'types': [{'name': 'HS', 'count': 0}, {'name': 'SR', 'count': 1}, {'name': 'CT', 'count': 218385}, {'name': 'MR', 'count': 0}, {'name': 'MG', 'count': 0}, {'name': 'PT', 'count': 0}, {'name': 'RF', 'count': 0}, {'name': 'XA', 'count': 0}, {'name': 'CR', 'count': 0}, {'name': 'SEG', 'count': 0}]}, {'date': '2023-09', 'types': [{'name': 'HS', 'count': 0}, {'name': 'SR', 'count': 0}, {'name': 'CT', 'count': 234643}, {'name': 'MR', 'count': 0}, {'name': 'MG', 'count': 0}, {'name': 'PT', 'count': 0}, {'name': 'RF', 'count': 0}, {'name': 'XA', 'count': 0}, {'name': 'CR', 'count': 0}, {'name': 'SEG', 'count': 0}]}, {'date': '2023-10', 'types': [{'name': 'HS', 'count': 0}, {'name': 'SR', 'count': 0}, {'name': 'CT', 'count': 183677}, {'name': 'MR', 'count': 0}, {'name': 'MG', 'count': 0}, {'name': 'PT', 'count': 0}, {'name': 'RF', 'count': 0}, {'name': 'XA', 'count': 0}, {'name': 'CR', 'count': 0}, {'name': 'SEG', 'count': 0}]}, {'date': '2023-11', 'types': [{'name': 'HS', 'count': 0}, {'name': 'SR', 'count': 0}, {'name': 'CT', 'count': 202985}, {'name': 'MR', 'count': 0}, {'name': 'MG', 'count': 0}, {'name': 'PT', 'count': 0}, {'name': 'RF', 'count': 0}, {'name': 'XA', 'count': 0}, {'name': 'CR', 'count': 0}, {'name': 'SEG', 'count': 0}]}, {'date': '2023-12', 'types': [{'name': 'HS', 'count': 0}, {'name': 'SR', 'count': 0}, {'name': 'CT', 'count': 171710}, {'name': 'MR', 'count': 0}, {'name': 'MG', 'count': 0}, {'name': 'PT', 'count': 0}, {'name': 'RF', 'count': 0}, {'name': 'XA', 'count': 0}, {'name': 'CR', 'count': 0}, {'name': 'SEG', 'count': 0}]}, {'date': '2024-01', 'types': [{'name': 'HS', 'count': 0}, {'name': 'SR', 'count': 0}, {'name': 'CT', 'count': 285332}, {'name': 'MR', 'count': 0}, {'name': 'MG', 'count': 0}, {'name': 'PT', 'count': 0}, {'name': 'RF', 'count': 0}, {'name': 'XA', 'count': 0}, {'name': 'CR', 'count': 0}, {'name': 'SEG', 'count': 0}]}, {'date': '2024-02', 'types': [{'name': 'HS', 'count': 0}, {'name': 'SR', 'count': 0}, {'name': 'CT', 'count': 259400}, {'name': 'MR', 'count': 0}, {'name': 'MG', 'count': 0}, {'name': 'PT', 'count': 0}, {'name': 'RF', 'count': 0}, {'name': 'XA', 'count': 0}, {'name': 'CR', 'count': 0}, {'name': 'SEG', 'count': 0}]}, {'date': '2024-03', 'types': [{'name': 'HS', 'count': 0}, {'name': 'SR', 'count': 0}, {'name': 'CT', 'count': 270728}, {'name': 'MR', 'count': 0}, {'name': 'MG', 'count': 0}, {'name': 'PT', 'count': 0}, {'name': 'RF', 'count': 0}, {'name': 'XA', 'count': 0}, {'name': 'CR', 'count': 0}, {'name': 'SEG', 'count': 0}]}, {'date': '2024-04', 'types': [{'name': 'HS', 'count': 0}, {'name': 'SR', 'count': 0}, {'name': 'CT', 'count': 215576}, {'name': 'MR', 'count': 0}, {'name': 'MG', 'count': 0}, {'name': 'PT', 'count': 0}, {'name': 'RF', 'count': 0}, {'name': 'XA', 'count': 0}, {'name': 'CR', 'count': 0}, {'name': 'SEG', 'count': 0}]}, {'date': '2024-05', 'types': [{'name': 'HS', 'count': 0}, {'name': 'SR', 'count': 0}, {'name': 'CT', 'count': 216694}, {'name': 'MR', 'count': 0}, {'name': 'MG', 'count': 0}, {'name': 'PT', 'count': 0}, {'name': 'RF', 'count': 0}, {'name': 'XA', 'count': 0}, {'name': 'CR', 'count': 0}, {'name': 'SEG', 'count': 0}]}, {'date': '2024-06', 'types': [{'name': 'HS', 'count': 0}, {'name': 'SR', 'count': 0}, {'name': 'CT', 'count': 96035}, {'name': 'MR', 'count': 0}, {'name': 'MG', 'count': 0}, {'name': 'PT', 'count': 0}, {'name': 'RF', 'count': 0}, {'name': 'XA', 'count': 0}, {'name': 'CR', 'count': 0}, {'name': 'SEG', 'count': 0}]}]}, {'period': '1Y', 'values': [{'date': '2023-07', 'types': [{'name': 'trombektomie', 'count': 0}, {'name': 'trombolĂ˝za', 'count': 0}, {'name': 'kombinace', 'count': 0}]}, {'date': '2023-08', 'types': [{'name': 'trombektomie', 'count': 0}, {'name': 'trombolĂ˝za', 'count': 0}, {'name': 'kombinace', 'count': 0}]}, {'date': '2023-09', 'types': [{'name': 'trombektomie', 'count': 0}, {'name': 'trombolĂ˝za', 'count': 0}, {'name': 'kombinace', 'count': 0}]}, {'date': '2023-10', 'types': [{'name': 'trombektomie', 'count': 0}, {'name': 'trombolĂ˝za', 'count': 0}, {'name': 'kombinace', 'count': 0}]}, {'date': '2023-11', 'types': [{'name': 'trombektomie', 'count': 0}, {'name': 'trombolĂ˝za', 'count': 0}, {'name': 'kombinace', 'count': 0}]}, {'date': '2023-12', 'types': [{'name': 'trombektomie', 'count': 0}, {'name': 'trombolĂ˝za', 'count': 0}, {'name': 'kombinace', 'count': 0}]}, {'date': '2024-01', 'types': [{'name': 'trombektomie', 'count': 0}, {'name': 'trombolĂ˝za', 'count': 0}, {'name': 'kombinace', 'count': 0}]}, {'date': '2024-02', 'types': [{'name': 'trombektomie', 'count': 0}, {'name': 'trombolĂ˝za', 'count': 0}, {'name': 'kombinace', 'count': 0}]}, {'date': '2024-03', 'types': [{'name': 'trombektomie', 'count': 0}, {'name': 'trombolĂ˝za', 'count': 0}, {'name': 'kombinace', 'count': 0}]}, {'date': '2024-04', 'types': [{'name': 'trombektomie', 'count': 0}, {'name': 'trombolĂ˝za', 'count': 0}, {'name': 'kombinace', 'count': 0}]}, {'date': '2024-05', 'types': [{'name': 'trombektomie', 'count': 0}, {'name': 'trombolĂ˝za', 'count': 0}, {'name': 'kombinace', 'count': 0}]}, {'date': '2024-06', 'types': [{'name': 'trombektomie', 'count': 0}, {'name': 'trombolĂ˝za', 'count': 0}, {'name': 'kombinace', 'count': 0}]}]}, {'period': 12, 'median': 4288.0, '1kvartil': 3007.0, '3kvartil': 6073.5, 'outliersLeft': 325, 'outliersRight': 46410}]} +2024-06-19 19:46:21,501 - INFO - 127.0.0.1 - - [19/Jun/2024 19:46:21] "POST /data HTTP/1.1" 200 - +2024-06-19 19:46:25,255 - INFO - 127.0.0.1 - - [19/Jun/2024 19:46:25] "OPTIONS /data HTTP/1.1" 200 - +2024-06-19 19:46:25,262 - INFO - Received data: {'key': 'ClientDashboardRequest', 'period': '12Y'} +2024-06-19 19:46:25,262 - INFO - Request: ClientDashboardRequest +2024-06-19 19:46:25,262 - INFO - key is: ClientDashboardRequest +2024-06-19 19:46:25,262 - INFO - period is: 12Y +2024-06-19 19:46:30,615 - INFO - Retrieved result from DB2: {'period': '12Y', 'graf': [{'period': '12Y', 'values': [{'name': 'pacienti', 'count': 4009}, {'name': 'trombolĂ˝za', 'count': 2469}, {'name': 'trombektomie', 'count': 511}, {'name': 'kombinace', 'count': 2980}]}, {'period': '12Y', 'values': [{'date': '2013', 'types': [{'name': 'SR', 'count': 0}, {'name': 'HS', 'count': 0}, {'name': 'CT', 'count': 32144}, {'name': 'MR', 'count': 3992}, {'name': 'MG', 'count': 0}, {'name': 'PT', 'count': 0}, {'name': 'RF', 'count': 0}, {'name': 'XA', 'count': 0}, {'name': 'CR', 'count': 0}, {'name': 'SEG', 'count': 0}]}, {'date': '2014', 'types': [{'name': 'SR', 'count': 0}, {'name': 'HS', 'count': 0}, {'name': 'CT', 'count': 66934}, {'name': 'MR', 'count': 3585}, {'name': 'MG', 'count': 0}, {'name': 'PT', 'count': 1}, {'name': 'RF', 'count': 0}, {'name': 'XA', 'count': 0}, {'name': 'CR', 'count': 0}, {'name': 'SEG', 'count': 84}]}, {'date': '2015', 'types': [{'name': 'SR', 'count': 2}, {'name': 'HS', 'count': 0}, {'name': 'CT', 'count': 1098342}, {'name': 'MR', 'count': 6898}, {'name': 'MG', 'count': 25}, {'name': 'PT', 'count': 0}, {'name': 'RF', 'count': 18}, {'name': 'XA', 'count': 32}, {'name': 'CR', 'count': 10}, {'name': 'SEG', 'count': 108}]}, {'date': '2016', 'types': [{'name': 'SR', 'count': 1237}, {'name': 'HS', 'count': 0}, {'name': 'CT', 'count': 2421649}, {'name': 'MR', 'count': 12320}, {'name': 'MG', 'count': 0}, {'name': 'PT', 'count': 0}, {'name': 'RF', 'count': 0}, {'name': 'XA', 'count': 0}, {'name': 'CR', 'count': 0}, {'name': 'SEG', 'count': 0}]}, {'date': '2017', 'types': [{'name': 'SR', 'count': 71}, {'name': 'HS', 'count': 0}, {'name': 'CT', 'count': 2715849}, {'name': 'MR', 'count': 14447}, {'name': 'MG', 'count': 0}, {'name': 'PT', 'count': 852}, {'name': 'RF', 'count': 0}, {'name': 'XA', 'count': 0}, {'name': 'CR', 'count': 0}, {'name': 'SEG', 'count': 0}]}, {'date': '2018', 'types': [{'name': 'SR', 'count': 0}, {'name': 'HS', 'count': 0}, {'name': 'CT', 'count': 1938776}, {'name': 'MR', 'count': 11957}, {'name': 'MG', 'count': 0}, {'name': 'PT', 'count': 726}, {'name': 'RF', 'count': 0}, {'name': 'XA', 'count': 0}, {'name': 'CR', 'count': 0}, {'name': 'SEG', 'count': 0}]}, {'date': '2019', 'types': [{'name': 'SR', 'count': 0}, {'name': 'HS', 'count': 306}, {'name': 'CT', 'count': 2051929}, {'name': 'MR', 'count': 5999}, {'name': 'MG', 'count': 0}, {'name': 'PT', 'count': 0}, {'name': 'RF', 'count': 0}, {'name': 'XA', 'count': 0}, {'name': 'CR', 'count': 0}, {'name': 'SEG', 'count': 0}]}, {'date': '2020', 'types': [{'name': 'SR', 'count': 0}, {'name': 'HS', 'count': 0}, {'name': 'CT', 'count': 2315932}, {'name': 'MR', 'count': 21457}, {'name': 'MG', 'count': 0}, {'name': 'PT', 'count': 0}, {'name': 'RF', 'count': 0}, {'name': 'XA', 'count': 0}, {'name': 'CR', 'count': 0}, {'name': 'SEG', 'count': 0}]}, {'date': '2021', 'types': [{'name': 'SR', 'count': 0}, {'name': 'HS', 'count': 0}, {'name': 'CT', 'count': 2024264}, {'name': 'MR', 'count': 9321}, {'name': 'MG', 'count': 0}, {'name': 'PT', 'count': 0}, {'name': 'RF', 'count': 0}, {'name': 'XA', 'count': 0}, {'name': 'CR', 'count': 0}, {'name': 'SEG', 'count': 0}]}, {'date': '2022', 'types': [{'name': 'SR', 'count': 0}, {'name': 'HS', 'count': 0}, {'name': 'CT', 'count': 2282900}, {'name': 'MR', 'count': 21820}, {'name': 'MG', 'count': 0}, {'name': 'PT', 'count': 0}, {'name': 'RF', 'count': 0}, {'name': 'XA', 'count': 0}, {'name': 'CR', 'count': 0}, {'name': 'SEG', 'count': 4}]}, {'date': '2023', 'types': [{'name': 'SR', 'count': 1}, {'name': 'HS', 'count': 0}, {'name': 'CT', 'count': 2682089}, {'name': 'MR', 'count': 2205}, {'name': 'MG', 'count': 0}, {'name': 'PT', 'count': 0}, {'name': 'RF', 'count': 0}, {'name': 'XA', 'count': 0}, {'name': 'CR', 'count': 0}, {'name': 'SEG', 'count': 0}]}, {'date': '2024', 'types': [{'name': 'SR', 'count': 0}, {'name': 'HS', 'count': 0}, {'name': 'CT', 'count': 1343765}, {'name': 'MR', 'count': 0}, {'name': 'MG', 'count': 0}, {'name': 'PT', 'count': 0}, {'name': 'RF', 'count': 0}, {'name': 'XA', 'count': 0}, {'name': 'CR', 'count': 0}, {'name': 'SEG', 'count': 0}]}]}, {'period': '12Y', 'values': [{'date': '2013', 'types': [{'name': 'trombektomie', 'count': 0}, {'name': 'trombolĂ˝za', 'count': 1}, {'name': 'kombinace', 'count': 1}]}, {'date': '2014', 'types': [{'name': 'trombektomie', 'count': 0}, {'name': 'trombolĂ˝za', 'count': 3}, {'name': 'kombinace', 'count': 3}]}, {'date': '2015', 'types': [{'name': 'trombektomie', 'count': 20}, {'name': 'trombolĂ˝za', 'count': 168}, {'name': 'kombinace', 'count': 188}]}, {'date': '2016', 'types': [{'name': 'trombektomie', 'count': 46}, {'name': 'trombolĂ˝za', 'count': 324}, {'name': 'kombinace', 'count': 370}]}, {'date': '2017', 'types': [{'name': 'trombektomie', 'count': 63}, {'name': 'trombolĂ˝za', 'count': 306}, {'name': 'kombinace', 'count': 369}]}, {'date': '2018', 'types': [{'name': 'trombektomie', 'count': 58}, {'name': 'trombolĂ˝za', 'count': 325}, {'name': 'kombinace', 'count': 383}]}, {'date': '2019', 'types': [{'name': 'trombektomie', 'count': 68}, {'name': 'trombolĂ˝za', 'count': 315}, {'name': 'kombinace', 'count': 383}]}, {'date': '2020', 'types': [{'name': 'trombektomie', 'count': 75}, {'name': 'trombolĂ˝za', 'count': 310}, {'name': 'kombinace', 'count': 385}]}, {'date': '2021', 'types': [{'name': 'trombektomie', 'count': 91}, {'name': 'trombolĂ˝za', 'count': 367}, {'name': 'kombinace', 'count': 458}]}, {'date': '2022', 'types': [{'name': 'trombektomie', 'count': 80}, {'name': 'trombolĂ˝za', 'count': 311}, {'name': 'kombinace', 'count': 391}]}, {'date': '2023', 'types': [{'name': 'trombektomie', 'count': 9}, {'name': 'trombolĂ˝za', 'count': 37}, {'name': 'kombinace', 'count': 46}]}, {'date': '2024', 'types': [{'name': 'trombektomie', 'count': 0}, {'name': 'trombolĂ˝za', 'count': 0}, {'name': 'kombinace', 'count': 0}]}]}, {'period': 12, 'median': 4977.0, '1kvartil': 3398.0, '3kvartil': 7285.0, 'outliersLeft': 1, 'outliersRight': 46410}]} +2024-06-19 19:46:30,617 - INFO - 127.0.0.1 - - [19/Jun/2024 19:46:30] "POST /data HTTP/1.1" 200 - +2024-06-19 19:51:30,266 - INFO - 127.0.0.1 - - [19/Jun/2024 19:51:30] "OPTIONS /data HTTP/1.1" 200 - +2024-06-19 19:51:30,270 - INFO - Received data: {'key': 'ClientDashboardRequest', 'period': '6Y'} +2024-06-19 19:51:30,270 - INFO - Request: ClientDashboardRequest +2024-06-19 19:51:30,270 - INFO - key is: ClientDashboardRequest +2024-06-19 19:51:30,270 - INFO - period is: 6Y +2024-06-19 19:51:35,545 - INFO - Retrieved result from DB2: {'period': '6Y', 'graf': [{'period': '6Y', 'values': [{'name': 'pacienti', 'count': 2748}, {'name': 'trombolĂ˝za', 'count': 1532}, {'name': 'trombektomie', 'count': 363}, {'name': 'kombinace', 'count': 1895}]}, {'period': '6Y', 'values': [{'date': '2018/06-2018/12', 'types': [{'name': 'HS', 'count': 0}, {'name': 'SR', 'count': 0}, {'name': 'CT', 'count': 1144192}, {'name': 'MR', 'count': 4160}, {'name': 'SEG', 'count': 0}]}, {'date': '2018/12-2019/06', 'types': [{'name': 'HS', 'count': 298}, {'name': 'SR', 'count': 0}, {'name': 'CT', 'count': 1182207}, {'name': 'MR', 'count': 2022}, {'name': 'SEG', 'count': 0}]}, {'date': '2019/06-2019/12', 'types': [{'name': 'HS', 'count': 306}, {'name': 'SR', 'count': 0}, {'name': 'CT', 'count': 1237478}, {'name': 'MR', 'count': 3977}, {'name': 'SEG', 'count': 0}]}, {'date': '2019/12-2020/06', 'types': [{'name': 'HS', 'count': 0}, {'name': 'SR', 'count': 0}, {'name': 'CT', 'count': 1140107}, {'name': 'MR', 'count': 7735}, {'name': 'SEG', 'count': 0}]}, {'date': '2020/06-2020/12', 'types': [{'name': 'HS', 'count': 0}, {'name': 'SR', 'count': 0}, {'name': 'CT', 'count': 1545998}, {'name': 'MR', 'count': 13722}, {'name': 'SEG', 'count': 0}]}, {'date': '2020/12-2021/06', 'types': [{'name': 'HS', 'count': 0}, {'name': 'SR', 'count': 0}, {'name': 'CT', 'count': 1385425}, {'name': 'MR', 'count': 5712}, {'name': 'SEG', 'count': 0}]}, {'date': '2021/06-2021/12', 'types': [{'name': 'HS', 'count': 0}, {'name': 'SR', 'count': 0}, {'name': 'CT', 'count': 958774}, {'name': 'MR', 'count': 3609}, {'name': 'SEG', 'count': 0}]}, {'date': '2021/12-2022/06', 'types': [{'name': 'HS', 'count': 0}, {'name': 'SR', 'count': 0}, {'name': 'CT', 'count': 1387500}, {'name': 'MR', 'count': 16391}, {'name': 'SEG', 'count': 0}]}, {'date': '2022/06-2022/12', 'types': [{'name': 'HS', 'count': 0}, {'name': 'SR', 'count': 0}, {'name': 'CT', 'count': 1342282}, {'name': 'MR', 'count': 7569}, {'name': 'SEG', 'count': 4}]}, {'date': '2022/12-2023/06', 'types': [{'name': 'HS', 'count': 0}, {'name': 'SR', 'count': 0}, {'name': 'CT', 'count': 1625636}, {'name': 'MR', 'count': 2715}, {'name': 'SEG', 'count': 4}]}, {'date': '2023/06-2023/12', 'types': [{'name': 'HS', 'count': 0}, {'name': 'SR', 'count': 1}, {'name': 'CT', 'count': 1519950}, {'name': 'MR', 'count': 0}, {'name': 'SEG', 'count': 0}]}, {'date': '2023/12-2024/06', 'types': [{'name': 'HS', 'count': 0}, {'name': 'SR', 'count': 0}, {'name': 'CT', 'count': 1515475}, {'name': 'MR', 'count': 0}, {'name': 'SEG', 'count': 0}]}]}, {'period': '6Y', 'values': [{'date': '2018/06-2018/12', 'types': [{'name': 'trombektomie', 'count': 39}, {'name': 'trombolĂ˝za', 'count': 190}, {'name': 'kombinace', 'count': 229}]}, {'date': '2018/12-2019/06', 'types': [{'name': 'trombektomie', 'count': 34}, {'name': 'trombolĂ˝za', 'count': 190}, {'name': 'kombinace', 'count': 224}]}, {'date': '2019/06-2019/12', 'types': [{'name': 'trombektomie', 'count': 45}, {'name': 'trombolĂ˝za', 'count': 183}, {'name': 'kombinace', 'count': 228}]}, {'date': '2019/12-2020/06', 'types': [{'name': 'trombektomie', 'count': 50}, {'name': 'trombolĂ˝za', 'count': 169}, {'name': 'kombinace', 'count': 219}]}, {'date': '2020/06-2020/12', 'types': [{'name': 'trombektomie', 'count': 44}, {'name': 'trombolĂ˝za', 'count': 188}, {'name': 'kombinace', 'count': 232}]}, {'date': '2020/12-2021/06', 'types': [{'name': 'trombektomie', 'count': 53}, {'name': 'trombolĂ˝za', 'count': 218}, {'name': 'kombinace', 'count': 271}]}, {'date': '2021/06-2021/12', 'types': [{'name': 'trombektomie', 'count': 49}, {'name': 'trombolĂ˝za', 'count': 206}, {'name': 'kombinace', 'count': 255}]}, {'date': '2021/12-2022/06', 'types': [{'name': 'trombektomie', 'count': 47}, {'name': 'trombolĂ˝za', 'count': 180}, {'name': 'kombinace', 'count': 227}]}, {'date': '2022/06-2022/12', 'types': [{'name': 'trombektomie', 'count': 46}, {'name': 'trombolĂ˝za', 'count': 181}, {'name': 'kombinace', 'count': 227}]}, {'date': '2022/12-2023/06', 'types': [{'name': 'trombektomie', 'count': 15}, {'name': 'trombolĂ˝za', 'count': 62}, {'name': 'kombinace', 'count': 77}]}, {'date': '2023/06-2023/12', 'types': [{'name': 'trombektomie', 'count': 0}, {'name': 'trombolĂ˝za', 'count': 0}, {'name': 'kombinace', 'count': 0}]}, {'date': '2023/12-2024/06', 'types': [{'name': 'trombektomie', 'count': 0}, {'name': 'trombolĂ˝za', 'count': 0}, {'name': 'kombinace', 'count': 0}]}]}, {'period': 12, 'median': 4624.0, '1kvartil': 3505.0, '3kvartil': 6586.0, 'outliersLeft': 1, 'outliersRight': 46410}]} +2024-06-19 19:51:35,546 - INFO - 127.0.0.1 - - [19/Jun/2024 19:51:35] "POST /data HTTP/1.1" 200 -