TDDC74: EKG-projekt Christoph Heilmair Korrekturläst av: Emma Soffronow, leg. sjuksköterska Mars 2015 1 Om det här dokumentet Tanken med det här dokumentet är inte att ge er utförliga krav på hur projektet ska genomföras, utan snarare tips och idéer som ni senare utvecklar till ett komplett projekt i er specifikation. Först ges en kort bakgrund till projektet. Därefter en översiktlig beskrivning av vad ert program ska göra och till slut allmän information och tips kring vilka olika problem som finns och måste lösas. 2 Varför detta projekt? Elektrokardiografi (EKG) används idag för att diagnostisera en mängd olika sjukdomar. Detta görs till stor del fortfarande manuellt, då symptom som kan påvisas ur ett EKG i många fall inte är helt generaliserbara från patient till patient. Vissa patologiska åkommor har dock en mer konsekvent EKG-struktur mellan patienter, eller kan med hjälp av ett program visualiseras på ett sådant sätt som gör det enklare för en läkare att göra en bedömning. Exempel på sådana hjärt- och kärlpatologier är Ventrikulära extraslag Supraventrikulära extraslag ST-höjning Det är även möjligt att beräkna hjärtfrekvens från EKG-data. 1
3 Projektbeskrivning Grundidén är att ni skapar ett grafiskt gränssnitt, där det är möjligt att ladda in EKG-data som tillhandahålls av er handledare. Ert program ska sedan kunna dra slutsatser kring (eller visualisera) de patologier som är nämnda ovan, för att hjälpa läkare att ställa korrekta diagnoser. Om ni är intresserade och vet om fler åkommor är det okej att istället titta på det, men prata då med handledaren. Detta betyder givetvis att ni måste ha en klar bild av vad ni letar efter. Av den anledningen följer nedan tips och förklaringar. Börja med att läsa igenom styckena nedan. Skissa sedan på en idé med tänkta funktionaliteter samt hur olika delproblem ska lösas. Prata med er handledare om någonting är oklart. Fundera också på vilken programmeringsparadigm som är bäst lämpad/ni vill använda för projektet. 4 Hjärt- och kärlpatologier i EKG Ett EKG visar som bekant hjärtats aktivitet. Mer exakt är det de elektriska spänningar som uppstår då aktionspotentialer skapas i sinusknutan och fortplantas i retledningssystemet som mäts. Generellt finns det 5 olika toppar och dalar som uppstår; P, Q, R, S och T, se figur 1. 2
Figur 1: Karakteristiskt EKG från frisk patient Det finns ett par definitioner och termer som används i dessa sammanhang. Nedan följer en kort ordlista. QRS-komplex RR-intervall Baseline ST-segment EKG-signal från Q-dalen till S-dalen Avstånd (tid) mellan två intilliggande R-toppar Spänning då hjärtat är i vila, exempelvis innan P-våg Avstånd (tid) mellan återgång till baseline efter S-dal och T-vågs början Sjukdomar i hjärtat kan i många fall klassificeras med hjälp av dessa toppar och dalar, vilket ni såklart kan utnyttja i ert program. Av den anledningen kan det vara önskvärt för er att börja fundera på hur man kan få fram dessa intressanta punkter, både deras värde (spänning) och deras position i datan (sampelnummer). Ett tips här är att notera vad som särskiljer varje topp eller dal från de andra, samt notera i vilken ordning de ska komma. Då ni kommer att vilja räkna på RR-intervall och liknande kan det vara bra att spara varje framräknad topp eller dal i en lista, där varje element exempelvis är ett par som beskriver en punkts spänning och sampelnummer. 3
4.1 Ventrikulära extraslag (VES) VES är vanligt hos bland annat dialyspatienter och uppkommer då hjärtsammandragningen felaktigt initieras i kammaren istället för sinusknutan. Detta ger ett typiskt EKG, illustrerat i figur 2. Figur 2: Ventrikulärt extraslag Notera den abnorma amplituden på R-toppen, det ovanligt långa RR-intervallet samt den djupa S-dalen. En läkare kan exempelvis vara intresserad av hur många sådana extraslag som uppkommer under en EKG-mätning, vilket ni av den anledningen bör implementera i ert program. Om ni har ett pålitligt sätt att räkna fram R- och S-punkter kan VES enkelt klassificeras genom att undersöka RR-intervall och intilliggande S- och R-värden. Utgå ifrån figuren ovan för att komma fram till ett bra kriterium. 4
4.2 Supraventrikulära extraslag (SVES) SVES är ett relativt harmlöst extraslag som uppkommer då hjärtsammandragningen initieras i förmaken för tidigt. Eftersom sammandragningen inte initieras i kammaren kommer QRS-komplexet att se normalt ut. Det som skiljer detta extraslaget från ett normalt EKG är ett abnormt RRintervall, och ibland även en försvunnen P-våg. Detta illustreras i figur 3. Figur 3: Supraventrikulärt extraslag Återigen, här kan en läkare vara intresserad av antalet extraslag. I det här fallet är en korrekt klassificering svårare, då QRS-komplexet ser normalt ut. Utgå återigen från figuren och försök därifrån komma på ett bra kriterium för när ett slag ska räknas som SVES. 4.3 ST-höjning En ST-höjning är klassificerat som ett onormalt förhöjt ST-segment som ligger över baseline. Anledningen är vanligast någon form av ischemi (d.v.s. syrebrist t.ex. till följd av förträngningar) hos kranskärlen, som till exempel vid en hjärtinfarkt. Det kan se ut som i figur 4. 5
Figur 4: Exempel på en grov ST-höjning Här är det inte lika enkelt för en läkare att ställa en diagnos, då det i exempelvis ambulanser förekommer något som kallas för baseline drift vilket kan ge sken av en ST-höjning. I ert program skulle det exempelvis vara angeläget att på något sätt visa ST-nivån över tid och dra någon slutsats utifrån det. För att visualisera ST-nivån pålitligt är det viktigt att man hittar S- och T-punkter korrekt. Gör man det, kan man exempelvis approximera ST-nivån som en punkt i mitten mellan S och T i signalen. 4.4 Hjärtfrekvens Ert program skulle kunna extrahera ett medelvärde av hjärtfrekvensen för hela EKG-datan, eller möjligen låta en användare välja ut ett område i datan där man vill ha ut frekvensen. För att göra detta måste ni ta sampelfrekvensen i beaktning, vilken är given tillsammans med datan. Sampelfrekvensen säger hur ofta den faktiska (analoga) hjärtsignalen är samplad 1. Det betyder att en given EKG-signal bara säger vilken spänning som uppmättes vid ett visst sampel. För att översätta ett sampelnummer till tid (vilket är nödvändigt för att beräkna hjärtfrekvens), kan följande formel användas. 1 Ni kan anta att Nyquist-teoremet är uppfyllt. t sampel = sampelnummer f s 6
där f s är sampelfrekvensen i Hertz (given) och t sampel är tiden i sekunder för ett visst sampel, d.v.s. att det första samplet alltid antas ha skett efter t = 1/f s (detta kallas periodtid). Exempel: Om en analog signal samplas med f s = 2 Hz och vi vill veta tiden i sekunder mellan sampel 3 och 7, kan vi beräkna det på följande sätt t 3 = 3 2 s t 7 = 7 2 s t diff = t 7 t 3 = 2 s D.v.s. det har gått 2 sekunder mellan sampel 7 och 3. 7