# Operatory czasowe

Cechą charakterystyczną danych medycznych jest następstwo czasowe. Samo ustalenie informacji, jakiej chce uzyskać użytkownik niejednokrotnie może się okazać niewystarczające. Oprócz wylistowania, jakie cechy ma posiadać wyszukiwany pacjent oraz jakie zdarzenia miały się odbyć w jego historii, konieczne może się okazać również ustalenie ich porządku chronologicznego. System umożliwia definiowanie następstw czasowych na dwa sposoby - odnosząc się do konkretnej daty z kalendarza lub do daty jakiegoś zdarzenia medycznego. Przykładem zastosowania odniesienia do daty innego zdarzenia medycznego może być schemat badawczy, w którym użytkownik chciałby sprawdzić, czy interwencja wpłynęła na wartość pewnego parametru. W takim scenariuszu należy więc wyszukać pacjentów, u których dokonano interwencji oraz dwukrotnie mierzono parametr - jeden raz przed interwencją, a drugi raz po niej. Do ustalania związków tego typu służą operatory podstawowe. W pewnych specyficznych sytuacjach może się to jednak okazać niewystarczające - niektóre badania są wykonywane wielokrotnie w ciągu życia pacjenta, jak np. morfologia. Samo ustalenie kolejności zdarzeń może poskutkować wyszukaniem wyników badania, które odbyło się bez związku z interwencją, np. kilka lat później. Aby wymusić wyszukanie danych tylko z konkretnego przedziału czasowego (np. niepóźniej niż 3 dni po interwencji), należy posłużyć się operatorami zaawansowanymi.

# Wyszukiwanie względem daty z kalendarza

Wszystkie dane medyczne, które z ich natury można umiejscowić w czasie, mogą być wyszukiwane w odniesieniu do ustalonej przez użytkownika daty z kalendarza. Służą temu przyciski, w nazwie których znajduje się słowo „data", tj:

W kroku pierwszym:

W kroku drugim i kolejnych:

Wszystkie wyżej wymienione kafelki są skonstruowane w ten sam sposób:

alt text

Z listy rozwijanej można wybrać operator podstawowy, a w polu z datą należy wybrać datę, do której użytkownik chce się odnieść - datę można wpisać ręcznie lub wybrać z kalendarza, klikając w symbol kalendarza z prawej strony pola. Niebieski przycisk z prawej strony otwiera okno wyboru operatora zaawansowanego.

Na jednym kafelku można dodać kilka operatorów, które zostaną połączone spójnikiem logicznym „LUB". Aby połączyć warunki spójnikiem logicznym „ORAZ" (np. data podania leku mniejsza niż 31.12.2020 i większa niż 01.01.2020) należy je dodać na osobnych kafelkach.

# Wyszukiwanie względem daty innego zdarzenia

Wyszukiwanie względem daty innego zdarzenia (dalej nazywane „wiązaniem wstecz") jest możliwe począwszy od kroku drugiego - w kroku pierwszym definiowane jest pierwsze zdarzenie, które może stać się punktem odniesienia dopiero w kroku drugim. Wiązanie wstecz obsługiwane jest za pomocą przycisku z symbolem łańcucha, który znajduje się po lewej stronie kafelka. Pozycje obsługujące wziązanie wstecz dzielą się na dwa rodzaje - wiązanie dat i wiązanie wieku pacjenta. Wiązanie dat jest obsługiwane w następujących pozycjach:

Wiązanie wieku pacjenta jest obsługiwane w następujących pozycjach:

Wszystkie wymienione wyżej kafelki są oparte na takim samym schemacie:

alt text

Na początek należy wybrać z listy rozwijanej krok scenariusza wyszukiwania, do którego chcemy się odnosić. Dla lepszego zrozumienia działania wiązania wstecz, omówione zostaną teraz dwa przykłady - wiązanie dat i wiązanie wieku pacjenta.

# Wiązanie dat - przykład

Załóżmy, że chcemy wyszukać wynik pomiaru liczby czerwonych krwinek u kobiet po wykonaniu cesarskiego cięcia. W tym celu w kroku pierwszym wyszukujemy hospitalizacje z procedurą „cesarskie cięcie". W kroku drugim wybieramy pozycję „Procedura" i wpisując nazwę procedury „Cesarskie cięcie" doczytujemy do pliku wynikowego informacje na temat tej procedury (czyli, między innymi, datę jej wykonania). W kroku trzecim wybieramy pozycję „Badanie (LAB)" i wprowadzamy nazwę parametru „RBC". Następnie wybieramy symbol łańcucha przy pozycji „Data wykonania" i z listy rozwijanej wybieramy datę procedury z kroku drugiego. Ponieważ chcemy, żeby wyniki badania krwi pochodziły z czasu po zabiegu, wybieramy operator „większy" (co należy rozumieć jako „data z kroku bieżącego większa niż data z wybranego kroku poprzedniego"). Ponieważ wyszukujemy danych w kontekście jednej hospitalizacji, nie ma ryzyka, że wynik badania krwi będzie pochodził z kilku lat po zabiegu cięcia cesarskiego.

alt text

# Wiązanie wieku pacjenta - przykład

Załóżmy, że chcemy wyszukać pacjentów, u których wykonano operację wszczepienia endoprotezy stawu biodrowego oraz operację rewizyjną, która nastąpiła później niż w tym samym roku. W tym calu w kroku pierwszym wyszukujemy pacjentów z procedurą „biodra pierwotna". W kroku drugim wybieramy pozycję „Procedura" i wpisując nazwę procedury „biodra pierwotna" doczytujemy do pliku wynikowego informacje na temat tej procedury (czyli, między innymi, wiek pacjenta w dniu jej wykonania). W kroku trzecim ponownie wybieramy procedurę, tym razem wpisując nazwę „biodra rewiz" (system dopasuje opcje zawierające frazy „rewizja" oraz „rewizyjna"). Przy pozycji „Wiek pacjenta (lata) w dniu zdarzenia medycznego" wybieramy przycisk z symbolem łańcucha, wiążemy wiek do wieku pacjenta z kroku drugiego wyrażonego w latach i wybieramy operator „większy".

alt text

# Operatory podstawowe

Operatory podstawowe służą do ustalania prostych zależności czasowych między dwoma zdarzeniami medycznymi lub zdarzeniem medycznym a wybraną datą kalendarzową.

alt text

Po ustaleniu punktu odniesienia (czyli daty kalendarzowej lub daty innego zdarzenia medycznego) użytkownik ma możliwość wyboru jednego z operatorów podstawowych:

  • równy (obydwa zdarzenia odbyły się tego samego dnia);
  • większy (zdarzenie z kroku bieżącego odbyło się co najmniej jeden dzień później niż punkt odniesienia);
  • większy lub równy (zdarzenie z kroku bieżącego odbyło się tego samego dnia lub później niż punkt odniesienia);
  • mniejszy (zdarzenie z kroku bieżącego odbyło się co najmniej jeden dzień wcześniej niż punkt odniesienia);
  • mniejszy lub równy (zdarzenie z kroku bieżącego odbyło się tego samego dnia lub wcześniej niż punkt odniesienia);
  • w przybliżeniu (zdarzenie z kroku bieżącego odbyło się 24h przed lub 24h po punkcie odniesienia);
  • inny niż (obydwa zdarzenia nie odbyły się tego samego dnia).

alt text

Operatory czasowe dotyczące wieku pacjenta w momencie zdarzenia medycznego są określone podobnie, jedyna różnica dotyczy operatora „w przybliżeniu”, który dla wieku pacjentów oznacza ± 10% wprowadzonej przez użytkownika wartości, tj. pacjenci mający w przybliżeniu 70 lat będą się mieścili w przedziale 63-77 lat.

# Operatory zaawansowane

Operatory zaawansowane umożliwiają ustalenie dokładnych przedziałów czasowych, w których miało się odbyć wyszukiwane zdarzenie. Aby uruchomić panel operatorów zaawansowanych, należy klinąć na niebieski przycisk z symbolem kalendarza po prawej stronie kafelka.

alt text

Kluczem do intuicyjnego zrozumienia symboli operatorów zaawansowanych jest wiedza, że niebieska strzałka oznacza punkt odniesienia (czyli wybraną datę kalendarzową lub datę wybranego zdarzenia medycznego z wcześniejszego kroku) a zdarzenie z bieżącego kroku zostanie wyszukane w obszarze zakreskowanym. Dla łatwiejszego zrozumienia, wszystkie rodzaje operatorów zaawansowanych zostaną omówione na tym samym przykładzie. Załóżmy, że w kroku pierwszym wyszukaliśmy pacjentki z rozpoznaniem ciąży bliźniaczej. W kroku drugim definujemy procedurę cesarskiego cięcia. W kroku trzecim wyszukamy badania poziomu czerwonych krwinek (kod RBC) i ustalimy zaawansowany operator czasowy w odniesieniu do daty cesarskiego cięcia.

# W zakresie ? przed

alt text

Wyszukane zostaną badania RBC wykonane w okresie od 5 dni przed cesarskim cięciem do momentu cesarskiego cięcia (również badania wykonane tego samego dnia co zabieg, ale o wcześniejszej godzinie). Użytkownik może zmieniać wartość liczbową oraz jednostkę czasu (5 dni, 12 godzin, 3 miesiące, 10 lat itd.) określające długość przedziału czasowego.

# W zakresie ? po

alt text

Wyszukane zostaną badania RBC wykonane w okresie od cesarskiego cięcia do 1 dnia po cesarskim cięciu (również badania wykonane tego samego dnia co zabieg, ale o późniejszej godzinie). Użytkownik może zmieniać wartość liczbową oraz jednostkę czasu (5 dni, 12 godzin, 3 miesiące, 10 lat itd.) określające długość przedziału czasowego.

# Wcześniej niż ? przed

alt text

Wyszukane zostaną badania RBC wykonane co najmniej 2 tygodnie przed cesarskim cięciem (więc również np. 10 lat wcześniej). Użytkownik może zmieniać wartość liczbową oraz jednostkę czasu (5 dni, 12 godzin, 3 miesiące, 10 lat itd.) określające długość przedziału czasowego.

# Wcześniej niż ? po

alt text

Wyszukane zostaną badania RBC wykonane w dowolnym czasie przed cesarskim cięciem lub maksymalnie 1 dzień po zabiegu. Użytkownik może zmieniać wartość liczbową oraz jednostkę czasu (5 dni, 12 godzin, 3 miesiące, 10 lat itd.) określające długość przedziału czasowego.

# Później niż ? po

alt text

Wyszukane zostaną badania RBC wykonane 3 dni po cesarskim cięciu lub później (więc również np. 10 lat później). Użytkownik może zmieniać wartość liczbową oraz jednostkę czasu (5 dni, 12 godzin, 3 miesiące, 10 lat itd.) określające długość przedziału czasowego.

# Później niż ? przed

alt text

Wyszukane zostaną badania RBC wykonane maksymalnie 5 dni przed cesarskim cięciem lub w dowolnym czasie po nim. Użytkownik może zmieniać wartość liczbową oraz jednostkę czasu (5 dni, 12 godzin, 3 miesiące, 10 lat itd.) określające długość przedziału czasowego.

# Wcześniej niż ? przed lub później niż ? po

alt text

Wyszukane zostaną badania RBC wykonane co najmniej 3 dni przed cesarskim cięciem lub co najmniej 4 dni po zabiegu. Użytkownik może zmieniać wartości liczbowe oraz jednostki czasu (5 dni, 12 godzin, 3 miesiące, 10 lat itd.) określające długość przedziału czasowego.

# Póżniej niż ? przed i wcześiej niż ? po

alt text

Wyszukane zostaną badania RBC wykonane w okresie od tygodnia przed do dwóch tygodni po cesarskim cięciu. Użytkownik może zmieniać wartości liczbowe oraz jednostki czasu (5 dni, 12 godzin, 3 miesiące, 10 lat itd.) określające długość przedziału czasowego.