Wyzwanie

W okresie wprowadzania ustawy o RODO stanęliśmy przed wyzwaniem aby w działający już system medyczny wkomponować bez strat na wydajności oraz funkcjonalności mechanizm pozwalający na monitorowanie zmian danych medycznych. Wydawało się, że ze względu na to, że konstrukcja systemu była już dawno opracowana nie było możliwe łatwe zaimplementowanie takiego rozwiązania bez czasochłonnych i wymagających prac programistycznych. Chcieliśmy zaprojektować takie rozwiązanie, które będzie skalowalne i nie będzie odgraniczało się tylko do wybranych danych ale pozwoli nam sterować zakresem monitoringu i będzie możliwe do wykorzystania niezależnie od modułu systemu.

Realizacja

Głównym założeniem jakie przyjęliśmy było zminimalizowanie prac programistycznych oraz skalowalność rozwiązania czyli możliwość selektywnego wskazywania danych jakie chcemy monitorować. Po analizie możliwych rozwiązań problemu zdecydowaliśmy się na wykorzystaniem mechanizmu niezależnego do aplikacji. Rozwiązanie oparliśmy na mechanizmie tablic historycznych jakie dawała nam użyta w systemie baza danych.

Przygotowaliśmy zestaw sterowalnych wyzwalaczy na bazie danych dla każdej z tabel systemu. W osobnej tabeli zawarliśmy znaczniki pozwalające włączać lub wyłączać mechanizm kolekcjonowania zmian danych. Dzięki konstrukcji bazy danych każda zmiana rekordu danych łącznie z usunięciem danych jest automatycznie odkładana w tabeli historycznej. W tabeli tej zapisane są informacje kiedy i kto dokonał zmiany w danych. Dzięki takiemu rozwiązaniu zminimalizowaliśmy nakład prac programistycznych w samej aplikacji a zastosowane rozwiązanie jest skalowalne, wydajne i niezawodne ponieważ działa niezależnie od systemy medycznego oraz uruchomionego modułu.