Na którym SOR-ze kolejki są dziś największe?

Temat Szpitalnych Oddziałów Ratunkowych nie schodzi ostatnio z nagłówków — afera w warszawskim Szpitalu Południowym wywołała ogólnopolską dyskusję o tym, jak naprawdę funkcjonują SOR-y w Polsce. Również w moim rodzinnym Olkuszu wielu mieszkańców od lat skarży się na długie oczekiwanie na pomoc w lokalnym SOR-ze. Co prawda Ministerstwo Zdrowia udostępnia dane o kolejkach na portalu pacjent.gov.pl, ale robi to w formie utrudniającej porównania i analizę trendów. Postanowiłem to wykorzystać i zbudować system monitorujący sytuację na SOR-ach na styku województw śląskiego i małopolskiego.

Inspiracją była m.in. wymiana zdań z sesji Rady Warszawy, podczas której prezydent Trzaskowski powołał się na czas oczekiwania wynoszący dwadzieścia jeden minut. Dziennikarz Patryk Słowik publicznie go poprawił — dwadzieścia jeden minut to czas oczekiwania na sam triaż, a na pierwszy kontakt z lekarzem pacjenci czekali średnio sto dziewiętnaście minut. Dane są publicznie dostępne, ale łatwo je źle zinterpretować. Tym bardziej warto je zbierać, archiwizować i prezentować w sposób czytelny.

Jak działa SOR — co mówi Ministerstwo Zdrowia

Szpitalny Oddział Ratunkowy to miejsce, w którym ratuje się życie i nagle zagrożone zdrowie człowieka. Pomoc na SOR-ze obejmuje badania i konsultacje niezbędne ze względu na stan nagłego zagrożenia — nie zastępuje lekarza podstawowej opieki zdrowotnej ani specjalisty. Na SOR nie idzie się po receptę, z przeziębieniem czy niestrawności. Na SOR-ze nie obowiązuje kolejność zgłoszeń według czasu przybycia. O kolejności przyjęcia decyduje pracownik medyczny na podstawie stanu zdrowia pacjenta — w procesie zwanym triażem. Każdy pacjent otrzymuje jeden z pięciu priorytetów:

Kolor Priorytet Docelowy czas oczekiwania na lekarza
🔴 Czerwony Najwyższy Natychmiast
🟠 Pomarańczowy Wysoki Do 10 minut
🟡 Żółty Średni Do 60 minut
🟢 Zielony Niski Do 120 minut
🔵 Niebieski Najniższy Do 240 minut

Czasy podane w tabeli to wartości deklarowane przez Ministerstwo Zdrowia — docelowe, nie gwarantowane. Rzeczywistość bywa od nich daleka, co potwierdzają zarówno relacje pacjentów, jak i dane zbierane przez mój system. Co istotne, łączny czas oczekiwania na pomoc to nie tylko kolejka w ramach priorytetu. Zgodnie z informacją na portalu pacjent.gov.pl, aby oszacować średni czas oczekiwania na pierwszy kontakt z lekarzem, należy zsumować: czas oczekiwania na rejestrację, czas oczekiwania na triaż oraz czas oczekiwania w kolejce przypisanego priorytetu. To właśnie tego rozróżnienia nie dostrzegł prezydent Trzaskowski, podając czas triażu jako czas całej obsługi.

Źródło danych

Dane pochodzą z systemu TOPSOR, udostępnianego przez Centrum e-Zdrowia na portalu pacjent.gov.pl. Strona ładuje dane dynamicznie przez JavaScript, jednak analiza ruchu sieciowego ujawniła, że pod spodem działa proste REST API zwracające czyste dane w formacie JSON — bez autentykacji, gotowe do maszynowego odczytu. Dzięki temu nie ma potrzeby renderowania strony w przeglądarce — wystarczy zwykłe zapytanie HTTP.

Każde zapytanie do API zwraca aktualny stan kolejki konkretnego SOR-u: dla każdego z siedmiu etapów obsługi podaje liczbę oczekujących osób oraz średni czas oczekiwania w minutach. Dane aktualizowane są przez szpitale co kilkanaście minut.

Treści portalu pacjent.gov.pl udostępniane są na licencji Creative Commons Uznanie Autorstwa 3.0 Polska — ich wykorzystanie nie wymaga zgody właściciela serwisu, niezależnie od celu i sposobu korzystania.

Monitorowane placówki

Mój system monitoruje 16 Szpitalnych Oddziałów Ratunkowych w województwach małopolskim i śląskim. Dobór placówek wynika z dwóch celów: śledzenia sytuacji w najbliższym SOR-ze (Olkusz) oraz porównania go z otoczeniem — sąsiednimi powiatami i dużymi ośrodkami miejskimi, do których olkuszanie mogą trafić w razie potrzeby.

Miasto Szpital Województwo
Olkusz Nowy Szpital w Olkuszu małopolskie
Zawiercie Szpital Powiatowy w Zawierciu śląskie
Miechów Szpital św. Anny w Miechowie małopolskie
Chrzanów Szpital Powiatowy w Chrzanowie małopolskie
Kraków Szpital Uniwersytecki małopolskie
Kraków Szpital im. Narutowicza małopolskie
Kraków Szpital im. Żeromskiego małopolskie
Kraków Szpital im. Rydygiera małopolskie
Kraków 5 Wojskowy Szpital Kliniczny małopolskie
Kraków Szpital Dziecięcy małopolskie
Katowice Górnośląskie Centrum Medyczne śląskie
Katowice Centrum Zdrowia Dziecka śląskie
Sosnowiec WSS nr 5 im. Św. Barbary śląskie
Sosnowiec Centrum Zdrowia Dziecka śląskie
Dąbrowa Górnicza ZCO im. Starkiewicza śląskie
Jaworzno Szpital Wielospecjalistyczny śląskie

Architektura systemu

System zbudowany jest z kilku warstw, które razem tworzą zamkniętą pętlę: od pobrania danych, przez ich zapisanie, aż po prezentację.

Warstwa Technologia Rola
Źródło danych pacjent.gov.pl (TOPSOR API) Publiczne REST API z danymi kolejek SOR
Orchestracja n8n Flow odpytujący 16 SOR-ów co 5 minut
Baza danych InfluxDB 2.7 Przechowywanie danych w modelu time-series
Wizualizacja Grafana Interaktywne dashboardy z mapą i wykresami

Centralnym elementem jest flow w n8n, który co 5 minut wykonuje następujące kroki: iteruje po liście 16 SOR-ów, dla każdego wysyła zapytanie HTTP GET do API, parsuje odpowiedź JSON i zapisuje dane do InfluxDB w formacie line protocol. Dane w InfluxDB przechowywane są w jednym measurement (sor_queue) z tagami identyfikującymi placówkę (sor_name, sor_city, sor_region) oraz fieldami z wartościami liczbowymi — osobno liczba osób i czas oczekiwania dla każdego priorytetu.

Co pokazuje dashboard

Dashboard w Grafanie składa się z trzech sekcji. Pierwsza to mapa wszystkich monitorowanych SOR-ów, na której rozmiar i kolor markera odzwierciedla aktualne obłożenie — zielony dla krótkich kolejek, czerwony dla długich. Jeden rzut oka wystarczy, żeby zobaczyć, gdzie w regionie jest najgorsza sytuacja. Druga sekcja to dwie tabele: jedna z liczbą oczekujących w każdym priorytecie, druga z czasami oczekiwania w minutach. Tabele posortowane są od najdłuższych kolejek, co pozwala natychmiast zidentyfikować najbardziej obciążone placówki.

Trzecia sekcja to wykresy trendów sterowane rozwijaną listą z nazwami szpitali. Po wybraniu placówki wyświetlają się dwa wykresy: warstwowy z liczbą oczekujących w podziale na priorytety (z kolorami odpowiadającymi systemowi triażu) oraz liniowy z czasami oczekiwania w minutach. Domyślny zakres to ostatnie 24 godziny, ale można go dowolnie rozszerzyć.

Dane i ich ograniczenia

Warto mieć świadomość, że dane z systemu TOPSOR nie są idealnie dokładne. Czasy oczekiwania i liczby pacjentów zależą od tego, czy personel medyczny na bieżąco aktualizuje statusy w systemie informatycznym. W praktyce bywa z tym różnie — szczególnie w momentach dużego obciążenia oddziału, kiedy priorytetem jest leczenie, nie obsługa systemu. Zdarzają się sytuacje, w których SOR raportuje zerową liczbę oczekujących przy jednoczesnym czasie oczekiwania wynoszącym kilkadziesiąt minut, co sugeruje opóźnienie w aktualizacji danych.

Mimo tych ograniczeń, dane pozwalają wychwycić wyraźne wzorce: godziny szczytu, różnice między dniami roboczymi a weekendami oraz relatywne obłożenie poszczególnych placówek. Nie są to dane idealne — ale są to jedyne dane, jakie mamy. I z pewnością lepsze niż intuicja polityków cytujących je na sesjach rad miast.

Przejdź do raportu

Na którym SOR-ze kolejki są dziś największe?

Temat Szpitalnych Oddziałów Ratunkowych nie schodzi ostatnio z nagłówków — afera w warszawskim Szpitalu Południowym wywołała ogólnopolską dyskusję o tym, jak naprawdę funkcjonują SOR-y w Polsce. Również w moim rodzinnym Olkuszu wielu mieszkańców od lat skarży się na długie oczekiwanie na pomoc w lokalnym SOR-ze. Co prawda Ministerstwo Zdrowia udostępnia dane o kolejkach na portalu pacjent.gov.pl, ale robi to w formie utrudniającej porównania i analizę trendów. Postanowiłem to wykorzystać i zbudować system monitorujący sytuację na SOR-ach na styku województw śląskiego i małopolskiego.

Inspiracją była m.in. wymiana zdań z sesji Rady Warszawy, podczas której prezydent Trzaskowski powołał się na czas oczekiwania wynoszący dwadzieścia jeden minut. Dziennikarz Patryk Słowik publicznie go poprawił — dwadzieścia jeden minut to czas oczekiwania na sam triaż, a na pierwszy kontakt z lekarzem pacjenci czekali średnio sto dziewiętnaście minut. Dane są publicznie dostępne, ale łatwo je źle zinterpretować. Tym bardziej warto je zbierać, archiwizować i prezentować w sposób czytelny.

Jak działa SOR — co mówi Ministerstwo Zdrowia

Szpitalny Oddział Ratunkowy to miejsce, w którym ratuje się życie i nagle zagrożone zdrowie człowieka. Pomoc na SOR-ze obejmuje badania i konsultacje niezbędne ze względu na stan nagłego zagrożenia — nie zastępuje lekarza podstawowej opieki zdrowotnej ani specjalisty. Na SOR nie idzie się po receptę, z przeziębieniem czy niestrawności. Na SOR-ze nie obowiązuje kolejność zgłoszeń według czasu przybycia. O kolejności przyjęcia decyduje pracownik medyczny na podstawie stanu zdrowia pacjenta — w procesie zwanym triażem. Każdy pacjent otrzymuje jeden z pięciu priorytetów:

Kolor Priorytet Docelowy czas oczekiwania na lekarza
🔴 Czerwony Najwyższy Natychmiast
🟠 Pomarańczowy Wysoki Do 10 minut
🟡 Żółty Średni Do 60 minut
🟢 Zielony Niski Do 120 minut
🔵 Niebieski Najniższy Do 240 minut

Czasy podane w tabeli to wartości deklarowane przez Ministerstwo Zdrowia — docelowe, nie gwarantowane. Rzeczywistość bywa od nich daleka, co potwierdzają zarówno relacje pacjentów, jak i dane zbierane przez mój system. Co istotne, łączny czas oczekiwania na pomoc to nie tylko kolejka w ramach priorytetu. Zgodnie z informacją na portalu pacjent.gov.pl, aby oszacować średni czas oczekiwania na pierwszy kontakt z lekarzem, należy zsumować: czas oczekiwania na rejestrację, czas oczekiwania na triaż oraz czas oczekiwania w kolejce przypisanego priorytetu. To właśnie tego rozróżnienia nie dostrzegł prezydent Trzaskowski, podając czas triażu jako czas całej obsługi.

Źródło danych

Dane pochodzą z systemu TOPSOR, udostępnianego przez Centrum e-Zdrowia na portalu pacjent.gov.pl. Strona ładuje dane dynamicznie przez JavaScript, jednak analiza ruchu sieciowego ujawniła, że pod spodem działa proste REST API zwracające czyste dane w formacie JSON — bez autentykacji, gotowe do maszynowego odczytu. Dzięki temu nie ma potrzeby renderowania strony w przeglądarce — wystarczy zwykłe zapytanie HTTP.

Każde zapytanie do API zwraca aktualny stan kolejki konkretnego SOR-u: dla każdego z siedmiu etapów obsługi podaje liczbę oczekujących osób oraz średni czas oczekiwania w minutach. Dane aktualizowane są przez szpitale co kilkanaście minut.

Treści portalu pacjent.gov.pl udostępniane są na licencji Creative Commons Uznanie Autorstwa 3.0 Polska — ich wykorzystanie nie wymaga zgody właściciela serwisu, niezależnie od celu i sposobu korzystania.

Monitorowane placówki

Mój system monitoruje 16 Szpitalnych Oddziałów Ratunkowych w województwach małopolskim i śląskim. Dobór placówek wynika z dwóch celów: śledzenia sytuacji w najbliższym SOR-ze (Olkusz) oraz porównania go z otoczeniem — sąsiednimi powiatami i dużymi ośrodkami miejskimi, do których olkuszanie mogą trafić w razie potrzeby.

Miasto Szpital Województwo
Olkusz Nowy Szpital w Olkuszu małopolskie
Zawiercie Szpital Powiatowy w Zawierciu śląskie
Miechów Szpital św. Anny w Miechowie małopolskie
Chrzanów Szpital Powiatowy w Chrzanowie małopolskie
Kraków Szpital Uniwersytecki małopolskie
Kraków Szpital im. Narutowicza małopolskie
Kraków Szpital im. Żeromskiego małopolskie
Kraków Szpital im. Rydygiera małopolskie
Kraków 5 Wojskowy Szpital Kliniczny małopolskie
Kraków Szpital Dziecięcy małopolskie
Katowice Górnośląskie Centrum Medyczne śląskie
Katowice Centrum Zdrowia Dziecka śląskie
Sosnowiec WSS nr 5 im. Św. Barbary śląskie
Sosnowiec Centrum Zdrowia Dziecka śląskie
Dąbrowa Górnicza ZCO im. Starkiewicza śląskie
Jaworzno Szpital Wielospecjalistyczny śląskie

Architektura systemu

System zbudowany jest z kilku warstw, które razem tworzą zamkniętą pętlę: od pobrania danych, przez ich zapisanie, aż po prezentację.

Warstwa Technologia Rola
Źródło danych pacjent.gov.pl (TOPSOR API) Publiczne REST API z danymi kolejek SOR
Orchestracja n8n Flow odpytujący 16 SOR-ów co 5 minut
Baza danych InfluxDB 2.7 Przechowywanie danych w modelu time-series
Wizualizacja Grafana Interaktywne dashboardy z mapą i wykresami

Centralnym elementem jest flow w n8n, który co 5 minut wykonuje następujące kroki: iteruje po liście 16 SOR-ów, dla każdego wysyła zapytanie HTTP GET do API, parsuje odpowiedź JSON i zapisuje dane do InfluxDB w formacie line protocol. Dane w InfluxDB przechowywane są w jednym measurement (sor_queue) z tagami identyfikującymi placówkę (sor_name, sor_city, sor_region) oraz fieldami z wartościami liczbowymi — osobno liczba osób i czas oczekiwania dla każdego priorytetu.

Co pokazuje dashboard

Dashboard w Grafanie składa się z trzech sekcji. Pierwsza to mapa wszystkich monitorowanych SOR-ów, na której rozmiar i kolor markera odzwierciedla aktualne obłożenie — zielony dla krótkich kolejek, czerwony dla długich. Jeden rzut oka wystarczy, żeby zobaczyć, gdzie w regionie jest najgorsza sytuacja. Druga sekcja to dwie tabele: jedna z liczbą oczekujących w każdym priorytecie, druga z czasami oczekiwania w minutach. Tabele posortowane są od najdłuższych kolejek, co pozwala natychmiast zidentyfikować najbardziej obciążone placówki.

Trzecia sekcja to wykresy trendów sterowane rozwijaną listą z nazwami szpitali. Po wybraniu placówki wyświetlają się dwa wykresy: warstwowy z liczbą oczekujących w podziale na priorytety (z kolorami odpowiadającymi systemowi triażu) oraz liniowy z czasami oczekiwania w minutach. Domyślny zakres to ostatnie 24 godziny, ale można go dowolnie rozszerzyć.

Dane i ich ograniczenia

Warto mieć świadomość, że dane z systemu TOPSOR nie są idealnie dokładne. Czasy oczekiwania i liczby pacjentów zależą od tego, czy personel medyczny na bieżąco aktualizuje statusy w systemie informatycznym. W praktyce bywa z tym różnie — szczególnie w momentach dużego obciążenia oddziału, kiedy priorytetem jest leczenie, nie obsługa systemu. Zdarzają się sytuacje, w których SOR raportuje zerową liczbę oczekujących przy jednoczesnym czasie oczekiwania wynoszącym kilkadziesiąt minut, co sugeruje opóźnienie w aktualizacji danych.

Mimo tych ograniczeń, dane pozwalają wychwycić wyraźne wzorce: godziny szczytu, różnice między dniami roboczymi a weekendami oraz relatywne obłożenie poszczególnych placówek. Nie są to dane idealne — ale są to jedyne dane, jakie mamy. I z pewnością lepsze niż intuicja polityków cytujących je na sesjach rad miast.

Przejdź do raportu