Zadania 13

Zadania

 

  1. Zaimplementuj procedurę wyznaczania końca załamka T metodą stycznej i metodą poszukiwania maksymalnej odległości sygnału od stycznej do wierzchołków załamków T i P. Przetestuj obie procedury z użyciem plików CSE lub QTDB. Czy przedwczesne lub opóźnione wykrywanie końca załamka T jest cechą specyficzną poszczególnych odprowadzeń?
  2. Wykonaj pomiary długości interwału QT dla zapisów o różnej częstości akcji serca. Wyznacz zależność długości interwału QT od interwału RR z użyciem regresji liniowej.
  3. Zaimplementuj procedurę wyznaczania dyspersji odstępu QT na podstawie pomiarów odstępu QT w poszczególnych odprowadzeniach. Jak rozróżnić dyspersję odstępu QT od niedokładności wyznaczania jego granic (zwłaszcza końca załamka T)?
  4. Zmierz poziom szumu na izolinii sygnałów wykorzystywanych do testowania procedur wyznaczania końca załamka T. Czy dokładność wyznaczania końca załamka T jest skorelowana z poziomem szumu? Czy dyspersja odstępu QT jest skorelowana z poziomem szumu?
  5. Zaimplementuj detektor dyspersji QT wykorzystujący technikę wybiórczego uśredniania ewolucji serca. Jaki jest wpływ tolerancji interwału RR w procesie selekcji na dokładność wyznaczania dyspersji?
  6. Zaimplementuj symulator dyspersji QT wykorzystujący czasowe przeskalowanie kopii odcinka QT z wybranego odprowadzenia do pozostałych odprowadzeń. Przetestuj, czy symulator pozwala na uzyskanie zadanej wartości dyspersji. Przetestuj, czy dyspersja występuje w zadanych odprowadzeniach.

Zadania 14

Zadania

 

  1. Wyznacz korelację zapisów ewolucji wystymulowanych zsynchronizowanych w punkcie stymulacji? Jaka jest jej wartość w porównaniu z korelacją dwóch ewolucji endogennych zatokowych? Jeśli w zapisie występują ewolucje endogenne komorowe porównaj jaka jest wartość ich korelacji wzajemnej.
  2. Zaimplementuj procedurę do wyznaczania długości interwałów pomiędzy pobudzeniami endogennymi a wystymulowanymi na podstawie serii czasowej punktów detekcji QRS i informacji o punktach stymulacji. Wskazówka: w przypadku trudności z dostępem do pliku zawierającego prawdziwe współrzędne czasowe impulsów stymulatora, można ręcznie sporządzić plik symulacyjny.
  3. Zaimplementuj procedurę detekcji błędów kardiostymulatora opartą na analizie długości interwałów pomiędzy pobudzeniami endogennymi a wystymulowanymi.
  4. Zaimplementuj symulator elektrokardiogramu stymulatorowego korzystający z wzorców sygnału. Symulator powinien umożliwiać wygenerowanie odrębnego pliku zawierającego współrzędne czasowe impulsów stymulatora.
  5. Rozszerz funkcjonalność zaimplementowanego uprzednio symulatora o możliwość symulacji błędów kardiostymulatora o zadanych zależnościach czasowych. Uwzględnij możliwość systematycznego występowania każdego z błędów lub losowego jego występowania z zadanym prawdopodobieństwem.
  6. Przetestuj detektor błędów kardiostymulatora z użyciem symulatora. Jakie jest znaczenie dokładności detekcji ewolucji serca dla prawidłowej identyfikacji ewolucji wystymulowanych? Jakie jest znaczenie kształtu zapisu w obrębie zespołu QRS? Jakie jest znaczenie dokładności współrzędnych czasowych impulsów stymulatora

 

Podsumowanie

Podsumowanie rozdziału I

Podsumowanie 3

Znaczenie organizacji przetwarzania i przepływu informacji

Rozpowszechniona struktura blokowa (modułowa) oprogramowania ujawnia swe zalety także w przypadku aplikacji przeznaczonych do interpretacji elektrokardiogramów. Architektura taka umożliwia wielokrotne wykorzystanie poszczególnych bloków, łatwą wymianę kolejnych wersji rozwojowych modułów oraz wysokopoziomowe komponowanie aplikacji z modułów (obiektów) w zależności od przeznaczenia. Jeżeli przed oprogramowaniem postawiony jest cel wykraczający poza detekcje ewolucji serca, to warto jego strukturę rozdzielić na dwa lub więcej modułów i poświęcić uwagę zaprojektowaniu optymalnej komunikacji pomiędzy nimi. Jest to problem krytyczny w przypadku ograniczonych zasobów sprzętowych (np. dostępnej pamięci zmiennych) lub przewidywania programu do pracy w czasie rzeczywistym.

Zagadnieniem wymagającym uwagi jest synchroniczna lub asynchroniczna współpraca procesu interpretacji ze strumieniami danych wejściowym i wyjściowym. Metoda asynchroniczna wymaga buforowania danych i zaprojektowania systemu powiadamiania o zajętości lub gotowości, ale pozwala na budowę aplikacji zorientowanej na usługi (SOA), a zastosowanie wspólnej struktury informacyjnej (zawierającej dane, konfiguracje, rezultaty i status) także na niezależną pracę kilku instancji (wywołań) w systemie wielowątkowym.

 

Najczęściej poruszane problemy

Podczas początkowej fazy projektowania oprogramowania należy rozwiązać następujące problemy projektowe:

czy oprogramowanie będzie miało architekturę modułową?

czy oprogramowanie będzie pracowało w czasie rzeczywistym?

czy moduły oprogramowania mogą być wymieniane podczas trwania interpretacji?

czy dopuszczalna jest zmiana konfiguracji oprogramowania podczas obliczeń?

w jaki sposób będzie monitorowane zaawansowanie procesu interpretacji i sygnalizowane wystąpienie błędów na poszczególnych etapach?

w jaki sposób obsłużyć interwencje operatora?

czy wyposażyć oprogramowanie we własność uczenia się?

Konieczne jest także zaprojektowanie głównych struktur danych na co najmniej trzy typy informacji:

serie czasowe (sygnały), najczęściej wieloodprowadzeniowe,

opisy (atrybuty) i wartości pomiarowe kolejnych ewolucji serca,

serie czasowe (próbkowane nieregularnie) związane z pomiarami wykonywanymi dla serii kolejnych ewolucji serca (np. odcinków ST, odstępów QT, interwałów RR itp.).

Projektowane struktury danych dobrze jest wyposażyć w funkcje (metody) właściwe do ich obsługi: zapisu, odczytu, wyszukiwania i porządkowania.

Niezależnie od wspólnych typów danych, każda procedura diagnostyczna generuje rezultaty w specyficzny dla niej sposób, który wymaga odrębnego obsłużenia. Niekiedy rezultaty diagnostyczne dostępne w formie liczbowej wymagają przetwarzania statystycznego, natomiast rezultaty wyświetlane w formie graficznej wymagają normalizacji względem rozdzielczości okna wykresu.

 

Metody realizacji zadania

Właściwie zaprojektowane oprogramowanie składa się z optymalnie dobranych struktur informacyjnych przechowujących dane oraz z wysokiej jakości procedur, których współpraca jest poprawnie zorganizowana. Projektowanie oprogramowania do analizy EKG najczęściej przebiega metodą dekompozycji zadań (zstępującą), w której zadania złożone dzielone są na prostsze. Częste jest także wykorzystywanie poszczególnych procedur (np. wyznaczania poziomu linii izoelektrycznej) w różnych blokach programu.

Ponieważ oprogramowanie zwykle ma strukturę blokową, poszczególne jego części mogą być projektowane przez pracujące równolegle zespoły programistów. Do tego celu przydatna jest jednak referencyjna baza zapisów i parametry pośrednie uzyskane z oprogramowania referencyjnego. Jeśli dwa zespoły projektują bloki funkcjonalne będące bezpośrednio po sobie następującymi ogniwami łańcucha interpretacji zapisu, zestaw parametrów pośrednich będzie dla jednego z nich referencyjnym zbiorem wyników, a dla drugiego zbiorem zapisów testowych.

Podczas projektowania organizacji pracy oprogramowania należy mieć na uwadze jego przeznaczenie, z którego może wynikać praca w czasie rzeczywistym oraz dostępne zasoby sprzętowe. Analiza propagacji błędów, oszacowanie strumienia danych pomiędzy procedurami i częstotliwości ich wywoływania są bardzo przydatnymi narzędziami optymalizacji wydajności aplikacji. Komunikacja pomiędzy modułami może być efektywnie rozwiązana za pomocą magistral danych przekazujących informacje o podobnych charakterystykach (np. częstości uaktualniania).

Ze względu na mnogość przypadków i patologii najwłaściwszym sposobem efektywnego zaprojektowania aplikacji interpretacyjnej jest zbudowanie jej, a następnie uruchomienie i wstępne przetestowanie dla ograniczonej liczby przypadków. Po uzyskaniu pozytywnych wyników można zwiększać liczność zbiorów testowych aż do osiągnięcia założonej dokładności, a równocześnie zwiększać ilość obsługiwanych patologii. Trudnym zadaniem jest utrzymanie jakości identyfikacji patologii podstawowych wraz z rozszerzeniem zakresu pracy systemu.

Additional information