Jak struktura bazy i koncepcje programistyczne wpływają na efektywność pracy

W zespole programistów każdy ma genialny plan rozwiązania problemu. Wszystkie plany się wzajemnie wykluczają i żaden nie prowadzi do poprawnego rozwiązania.

Prolog

Gdyby programiści słuchali użytkowników, świat byłby piękniejszy. Programiści są jednak oddzieleni od użytkowników konsultantami regionalnymi (w naszym przypadku oddziału wojewódzkiego NFZ), którzy przekazują sprawę konsultantom centrali (redagując problem po swojemu), ci referują sekcji projektowania (redagując problem po swojemu), a ta przedstawia koncepcję modyfikacji programistom (nie będę się powtarzał). Taki algorytm ma kilka pętli, bo programiści mogą odpowiedzieć, że coś tam zaprzecza podstawowej koncepcji, mechanizmom, trigerom, wyzwalaczom itp. Po jakimś czasie wyłania się kompromis. Tymczasem zgłaszający dawno przestał śledzić historię zgłoszenia, bo ostatnich dziesięć komentarzy mówiło tylko o kolejnej zmianie terminu realizacji. Ostatnia aktywność zgłaszającego to było pytanie, co tak naprawdę zamierza się zmodyfikować, ale odpowiedź pozwalała na zbyt wiele interpretacji. Zgłaszający, przekonany, że wsparcie oprogramowania doskonale wie, czego on oczekuje, zapomina o sprawie, bo przyzwyczaił się już do omijania problemu za pomocą prowadzenia dodatkowych wpisów w zwykłym zeszycie lub przerabiania danych w arkuszu kalkulacyjnym.

Epilog

Może się tak zdarzyć, że kolejna aktualizacja wzbogaci oprogramowanie o nowe funkcjonalności, o które prosił użytkownik. Może się również zdarzyć, że nie zwróci on na to uwagi, ponieważ efekt końcowy w niczym nie będzie przypominał oczekiwanego rozwiązania.

Dlaczego nas nie słuchają?

Oprócz wyjaśniania przyczyn dla nas niezrozumiałych: (wielu klientów chciałoby to samo zmienić całkiem inaczej, zmiana zakłóci koncepcję całego projektu lub wymaga przebudowania wszystkiego prawie od początku), konsultanci muszą też przekazywać z działu produkcji przemyślenia natury ontologicznej (program zawsze tak działał) lub stosować techniki prokrastynacji (pytając po roku od zgłoszenia, czy problem nadal jest aktualny) lub paradoks horyzontu (kiedykolwiek zapytasz o termin realizacji, będzie to przyszły kwartał – nawet za pół roku).

W efekcie narasta niechęć użytkowników do producentów oprogramowania, rodząca złudne przekonanie, że oprogramowanie konkurencji jest lepsze.

Znam wielu użytkowników, którzy chętnie posadziliby na swoim miejscu projektantów i programistów na tydzień lub dłużej. Sam, z dziką rozkoszą kazałbym takiemu zakładać nowe konto świadczeniodawcy u innego OW NFZ z przepisywaniem całej struktury, personelu i zasobów choćby tylko jednej komórki organizacyjnej.

Data rozpoczęcia programu lekowego

Od pewnego czasu NFZ wymaga od świadczeniodawców podawania daty rozpoczęcia programu lekowego. Program lekowy to taka koncepcja leczenia, gdzie pacjent, po zakwalifikowaniu, zjawia się co miesiąc na badanie i przyjęcie leku. Jest również opcja, która pozwala na wizyty kwartalne i wydawanie leku pacjentowi, jeśli dawkowanie jest kilka razy dziennie i nie wymaga kompetencji pielęgniarskich. Zazwyczaj są to leki bardzo drogie, za które pacjent nie płaci. Kwartalny zestaw leków to często koszt kilku tysięcy złotych.

Każde sprawozdanie wizyty ambulatoryjnej czy hospitalizacji, musi przekazywać w zestawie danych datę rozpoczęcia leczenia. Za każdym razem taką samą, chociaż na razie NFZ tego nie sprawdza. Wystarczy im sam fakt.

Z punktu widzenia użytkownika oprogramowanie powinno pozwalać wskazanie daty i rodzaju programu lekowego w skierowaniu. Pacjent przecież korzysta z jednorazowo wydanego skierowania nawet pięć lat. Po wyłączeniu z programu leczenia, ponowne włączenie leczenia rozpoczyna się nową kwalifikacją, nowym skierowaniem, nową datą. Użytkownik spodziewałby się, że po wskazaniu skierowania oznaczonego jako cykliczne, podczas rejestracji przyjęcia mnóstwo oczywistych i jednoznacznych danych uzupełniać się będzie automatycznie.

Z niejasnych przyczyn projektant zmian dopiął informację o leczeniu do danych osobowych. Skierowanie nic nie przenosi. Datę trzeba wybrać ręcznie. To rozwiązanie mogłoby chociaż pilnować spójności danych. Oddział dermatologiczny może realizować dwa programy lekowe z użyciem tego samego leku, ale nie zdarzyło się jeszcze, by robił to dla tego samego pacjenta. Aplikacja „nie wie”, który program jest wskazany i pozwala użytkownikowi robić banalne błędy: świadczenie refundujące pobyt jest z jednego programu, lek z drugiego. Żadnej weryfikacji, żadnych ostrzeżeń o niespójności.

Student/gmina czyli CZP

Kolejny parametr wymagany przez NFZ, to w przypadku świadczeń z zakresu psychiatrii informacja, czy pacjent jest studentem i gdzie jest zameldowany. Informacja ta, wypełniana przez świadczeniodawców w całej Polsce służy jedynie kilku ośrodkom, które realizują pilotażowy projekt Centrum Zdrowia Psychicznego, który ma koordynować opiekę psychiatryczną pacjenta. CZP dostaje na swoje zadania miesięczny ryczałt. Zależy on od liczby populacji objętej opieką, a populacja od obszaru działania. Populacja jest uwzględniana razem ze studentami spoza obszaru. Ich obecność podności stawkę ryczałtową na następne miesiące.

Podczas hospitalizacji, gdy wykazywane są świadczenia refundujące osobodni pobytu, może ich być kilkanaście, a nawet więcej. Za każdym razem, gdy rejestrator uzupełnia dane rozliczenia musi pamiętać o wskazaniu informacji student/gmina. Jej brak, bez względu na udział w pilotażu, jest błędem weryfikacji NFZ.

Czy ma to sens? Chyba nie. Pacjent w dniu przyjęcia jest studentem lub nie. Jeśli jest studentem spoza obszaru, zwiększa przyszły ryczałt. W trakcie hospitalizacji jest studentem. Informacja taka również mogłaby być jednorazowo przypisana do skierowania. A co jeśli w trakcie leczenia przestanie być studentem? Nic. Nie zmienia placówki, która go leczy (jeśli zmienia sprawa się zamyka w sposób oczywisty), a więc nadal jest pacjentem spoza obszaru. Czy to jest powód, by nie uwzględniać go już w ryczałcie? Studenci to najbardziej migracyjna grupa populacji, dlaczego NFZ wybrał właśnie ich do zwiększania ryczałtu, a nie uczniów szkół policealnych lub osoby ogólnie zameldowane poza obszarem działania centrum, a z jego usług korzystające? Takiego uzasadnienia nie znalazłem.

Na ile istotne jest branie pod uwagę, że pacjent podczas pobytu na oddziale może stać się studentem lub zmienić adres meldunkowy i jaki miałoby to wpływ na obliczanie ryczałtu?

Producent oprogramowania nie chciał wziąć na siebie odpowiedzialności powiązania informacji student/gmina ze skierowaniem, skoro NFZ wymaga tego przy każdym świadczeniu rozliczeniowym z osobna. Również nie odważył się, by fakt student czy nie – połączyć z polem danych osobowych o statusie społecznym. Informacja tam zawarta nie jest więc aktywna we wprowadzonej funkcjonalności. Pozostało nam klikać…

Czy NFZ jest w stanie weryfikować świadczeniodawcę, który co chwila podaje co innego w stosunku do stałego pacjenta?

Personel wykonujący procedurę

Procedura uznana jako zabiegowa musi mieć dopiętą informację o osobie ją wykonującej. To kolejne wymaganie NFZ. Niestety, próżno pytać, które procedury są zabiegowe, a które nie. Nie ma jednoznacznej listy. Jeżeli świadczenie ma status zabiegowego, a nie zachowawczego, procedury kierujące do JGP są uznawane za zabiegowe. Nie wiem, czy istnieje w jakimś oprogramowaniu funkcjonalność wyróżniająca te procedury z listy. Gdyby istniała, mogłaby oznaczać je automatycznie. Tymczasem robimy to ręcznie, zaznaczając w szczegółach procedury jej typ. Typ zabiegowy przeniesie informację o personelu, zachowawczy nie. Klikamy, popadając od czasu do czasu w zdumienie, gdy okazuje się, co właściwie mamy uznać za procedurę zabiegową…

Hemodializa i poziom hemoglobiny

Nie wiem, czy wasze oprogramowanie tak ma, ale w moim rejestruje się dane hemodializy z podaniem wszystkich parametrów. Poziom hemoglobiny przysyła elektronicznie laboratorium jako wynik badania. Wpisuje się go w dane dializy. Potem trzeba go przepisać do parametru rozliczenia.

Podobnie jest z poziomem mleczanów w OIT, wartością frakcji wyrzutowej komory serca LVEF w kardiologii, itd.

Sprawozdawane leki

Oprócz leków sprawozdawanych w chemioterapii i programach lekowych, które automatycznie nie wygenerują powiązania z refundacją, są jeszcze preparaty krwi i krwiopochodne, immunoglobuliny, atosiban, preparaty żywienia do- i pozajelitowego, leki trombolityczne, leki podawane w kardiologii (nie pamiętam jakie),a pewnie lista jest jeszcze dłuższa – z innych zakresów, o których nie wiem.

Wszystko to możnaby jakoś oprogramować, tylko po co?

Ten wpis został opublikowany w kategorii absurdy i oznaczony tagami . Dodaj zakładkę do bezpośredniego odnośnika.

3 odpowiedzi na „Jak struktura bazy i koncepcje programistyczne wpływają na efektywność pracy

  1. xpil pisze:

    W idealnym świecie wyglądałoby to tak: (1) użytkownik końcowy prosi o nowy ficzer, (2) analityk biznesowy rozmawia z użytkownikiem końcowym i dokumentuje wymaganie pisemnie, (3) tenże sam analityk biznesowy rozmawia z analitykiem danych i wstępnie potwierdza wykonalność ficzeru, (4) analityk danych odpowiednio modyfikuje model logiczny, następnie (5) kontaktuje się z wyznaczonym developerem, obydwaj uzgadniają przejście z modelu logicznego na model fizyczny oraz jak ma wyglądać proces z nowym ficzerem, (6) ficzer trafia do back-logu i jest wciągany do sprintu przy najbliższej sposobności (w zależności od priorytetu będzie to sprint bieżący lub któryś z przyszłych), przy okazji developer estymuje czas wykonania oraz poziom skomplikowania, (7) ficzer jest kodowany w środowisku DEV, (8) release do środowiska TEST, (9) testowanie wewnętrzne, (10) release do UAT, (11) testowanie przez użytkownika końcowego, (12) release do PROD, (13) fanfary, tusz. (Uwaga praktyczna: w mniejszych firmach ww. analityk biznesowy i danych jest często jedną i tą samą osobą). No ale to w świecie idealnym…

    Polubione przez 1 osoba

Co o tym myślisz?

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Wyloguj /  Zmień )

Zdjęcie na Google

Komentujesz korzystając z konta Google. Wyloguj /  Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Wyloguj /  Zmień )

Zdjęcie na Facebooku

Komentujesz korzystając z konta Facebook. Wyloguj /  Zmień )

Połączenie z %s