Projekt

Správa nežádoucích událostí

Webová aplikace pro hlášení a schvalování nežádoucích událostí v nemocnici — s víceúrovňovým schvalovacím procesem, hierarchickým přístupem podle oddělení a synchronizací s personálním systémem.

Django 6 Python HTMX MariaDB django-tables2 Bootstrap 5

O projektu

Systém slouží k evidenci a řízení nežádoucích událostí (pochybení, mimořádné situace apod.) ve zdravotnickém zařízení. Cílem je nahradit papírové formuláře digitálním procesem, který zajišťuje správné schválení na každé úrovni řízení a udržuje přehled o stavu každého hlášení.

Zaměstnanec vyplní hlášení online; to pak postupuje schvalovacím řetězcem — vedoucí oddělení, správce systému — až do fáze řešení a uzavření. Na každém stupni je jasně definováno, kdo může hlášení posunout dál.

Schvalovací workflow

Nová Schvaluje vedoucí Schvaluje správce Řešení K uzavření Uzavřená

Klíčové funkce

Hierarchie oddělení

Oddělení tvoří rekurzivní stromovou strukturu. Vedoucí automaticky vidí hlášení celého podstromu svého oddělení — bez nutnosti ruční konfigurace přístupů.

Přístup na základě rolí

Administrátor vidí vše. Vedoucí a zástupci vidí hlášení svého podstromu oddělení. Řadoví zaměstnanci vidí pouze svá vlastní hlášení.

Synchronizace s personálním systémem

Systém synchronizuje uživatele a jejich zařazení do oddělení z externí databáze. Struktura přístupů se tak aktualizuje automaticky.

Přehledný seznam hlášení

Tabulka s filtrováním, řazením a stránkováním pomocí django-tables2. HTMX badge v navigaci zobrazuje počet hlášení čekajících na akci.

Vedoucí a zástupci

Každé oddělení může mít vedoucího i zástupce — oba získávají stejná práva pro schvalování a přehled hlášení daného podstromu.

Správa číselníků

Správce NU může spravovat číselníky druhů událostí, jejich podvolby a sekce — vše přes webové rozhraní bez zásahu do kódu.

Reporty a grafy

Samostatný modul pro přehledy a vizualizace — statistiky hlášení podle stavu, oddělení nebo časového období.

Komunikace s více databázemi

Aplikace pracuje se dvěma databázemi: vlastní MariaDB pro hlášení a uživatele, a externí databáze (s přístupem pouze pro čtení) pro synchronizaci personálních dat.

Technický stack
  • Django 6.0 / Python 3.13
  • MariaDB (UTF8MB4, czech_ci)
  • HTMX — partial page updates
  • Bootstrap 5 + crispy-forms
  • django-tables2 — tabulky
  • django-crispy-forms
  • python-decouple — konfigurace
  • Apache
Zajímavosti implementace
  • Rekurzivní výpočet podstromu oddělení přes vlastní metodu modelu
  • Vlastní manager NezadouciUdalostManazer aplikuje viditelnost na úrovni QuerySetu
  • HTMX badge v navbar se aktualizuje bez přenačtení stránky