PROGRAMUL DE STUDIU CALCULATOARE FORMA DE ÎNVĂȚĂMÂNT LA ZI DEZVOLTAREA UNEI APLICAȚII SOFTWARE PENTRU ANALIZA DATELOR CARDIACE COORDONATOR ȘTIINȚIFIC… [303528]
UNIVERSITATEA DIN ORADEA
FACULTATEA DE INGINERIE ELECTRICĂ ȘI TEHNOLOGIA INFORMAȚIEI
PROGRAMUL DE STUDIU CALCULATOARE
FORMA DE ÎNVĂȚĂMÂNT LA ZI
DEZVOLTAREA UNEI APLICAȚII SOFTWARE PENTRU ANALIZA DATELOR CARDIACE
COORDONATOR ȘTIINȚIFIC
dr. ing. Ovidiu Constantin Novac
ABSOLVENT: [anonimizat]
2019
Cuprins
Introducere……………………………………………………………………………………p. 3
Cap. I Prezentare medicală
Prezentare medicală………………………………………………………………p. 4
Cap. II Prelevarea probelor
Echipamente utilizate în prelevarea probelor.…………………………………..p. 10
Parametrii utilizați în cadrul aplicației….………..………………………………p. 13
Prezentarea protocolului pentru prelevarea probelor……………………………p. 14
Cap. III Implementarea aplicației
Tehnologii informatice utilizate…………………………………………………p. 17
Etapele implementării aplicației…..……………………………………………p. 19
[anonimizat]….…………………………………p. 23
[anonimizat]-end……..…………………………………p. 30
[anonimizat]-end………………………………………p. 36
Cap. IV Rezultate
Prezentarea și interpretarea rezultatelor obținute..………………………………p. 44
Concluzii
Concluzii………………………………………………………………………..p. 47
Bibliografie…………..……………………………………………………………………..p. 48
Introducere
Dezvoltarea acestei aplicații pentru analiza datelor cardiace a [anonimizat], printr-o bursă Erasmus+, [anonimizat] (IMCAR), [anonimizat]. Pentru realizarea acestui proiect de diplomă a fost nevoie să asimilez o [anonimizat].
CDAS, sau „Cardiac Data Analysis Software”, este un program care are rolul de a [anonimizat], iox versiunea 2.5.1.6, cât și prin analiza datelor ecografice. [anonimizat] o [anonimizat]. Aplicația a fost realizată în limbajul de programare C# [anonimizat] o funcționalitate diferită. [anonimizat], acesta din urmă conținând butoane de legătură pentru fiecare dintre aceste componente.
Documentația proiectului de diplomă este structurată pe patru capitole.
Capitolul I este o descriere medicală a inimii, a [anonimizat] o prezentare a [anonimizat].
[anonimizat], [anonimizat].
Capitolul III descrie implementarea aplicației, o scurtă prezentare a tehnologiilor informatice utilizate, a [anonimizat], [anonimizat], [anonimizat]-end, [anonimizat].
Capitolul IV prezintă rezultatele obținute de aplicația Millar.
Doresc să aduc mulțumiri deosebite doamnelor conf. dr. Elisa Liehn și cercetător dr. [anonimizat], dr. ing. [anonimizat] sprijinul continuu în implementarea cu succes a aplicației pentru analiza datelor cardiace, CDAS.
Prezentare medicală
Inima este împărțită în două părți funcționale: partea dreaptă și partea stângă. Fiecare parte este mai departe divizată în felul următor: atriu, adică jumătatea superioară a acestei părți, respectiv ventricul, adică jumătatea inferioară a acestei părți. Atriul funcționează ca un rezervor, pompând sângele în ventricul. Ventriculul are rolul de a asigura circulația sângelui prin pomparea acestuia în fiecare organ al corpului uman. Sângele oxigenat care vine de la plămâni se varsă în atriul stâng al inimii, iar prin contracția mușchilor din ventriculul stâng, sângele este pompat prin artere. Simultan, ventriculul drept va pompa sângele care provine din sistemul venos, acesta fiind împins înspre plămâni, după care va ajunge înapoi în ventriculul stâng.[1]
Ciclul cardiac reprezintă timpul aferent pentru un ritm cardiac, fiind alcătuit din sistolă și diastolă. Sistola este perioada dintre momentul când mușchiul inimii iese din starea relaxată și momentul în care activitatea mecanică a acestuia a ajuns la nivelul maximum. Spre deosebire de sistolă, diastola reprezintă timpul în care mușchiul cardiac se relaxează, intrând în starea sa de repaus.[1]
De-a lungul fiecărui ciclu cardiac, mușchii ventriculari se contractă, atingând nivelul maxim de rigiditate la finalul sistolei, după care se relaxează, ajungând la nivelul minim de rigiditate la terminarea diastolei. Cu alte cuvinte, rigiditatea camerei crește în mod proporțional cu presiunea de umplere a acesteia. Din punct de vedere mecanic, proprietățile unui ventricul diferă în funcție de momentele de timp.[1]
Pentru determinarea funcției cardiace, relațiile de presiune-volum s-au dovedit a fi cele mai precise metode de măsurare. Aceste relații se pot obține atât la finalul diastolei, cât și la cel al sistolei.
Metoda cea mai frecvent utilizată pentru a determina aceste rapoarte este prin folosirea unui cateter de măsurare a presiunii. Acesta se introduce în ventriculul stâng și este capabil să transmită simultan semnale de presiune și volum, fiind folosit atât la șoareci, cât și la șobolani. Cu toate că are un grad extrem de ridicat de invazivitate, reprezintă una dintre cele mai relevante moduri pentru descrierea funcției cardiace în cazul afecțiunilor, sau pentru testarea modului de acțiune al medicamentelor. Prin utilizarea acestei metode se pot determina parametrii funcției sistolice și diastolice. [2]
Oamenii de știință se folosesc de aceste bucle de presiune-volum (PV) pentru a putea analiza funcția cardiacă atât în condiții normale, cât și în situațiile patologice ale inimii, fiind metoda standard pentru măsurarea în timp real a activității inimii. Aceste grafice se compun prin reproducerea semnalelor de presiune și volum, una față de cealaltă, cu o buclă care reprezintă un ciclu cardiac complet. [3]
În ceea ce privește aplicațiile buclelor de presiune și volum, acestea sunt utilizate pentru determinarea insuficienței sau a hipertrofiei cardiace, în studiul celulelor stem, în cazul terapiilor de resincronizare cardiacă, în farmacologie, pentru screeningul medicamentelor, sau în toxicologie. [3]
Prin reprezentarea grafică a presiunii și volumului ventricular, se obține o curbă, după cum se prezintă în figura 1.1. Aceasta este compusă din patru faze distincte: prima fază redă contracția izovolumetrică (din punctul A în punctul B), moment în care presiunea din interiorul ventriculului începe să crească, însă volumul rămâne constant; a doua fază este cea de ejecție (din punctul B în punctul C), când presiunea intraventriculară este mai ridicată decât cea din artere, iar sângele este împins prin acestea pentru a ajunge la toate organele corpului; a treia fază reprezintă relaxarea izovolumică (din punctul C până în D), când presiunea intraventriculară scade brusc, devenind mult mai mică decât cea din artere; ultima fază reprezintă umplerea diastolică (din punctul D înapoi în punctul A), se deschid valvele, lăsând sângele să curgă din atrii în ventricule. [4]
Fig. 1.1. Reprezentarea grafică a buclelor de presiune-volum [4]
Volumul end-diastolic (EDV) reprezintă volumul ventricular maxim, determinat la finalul ciclului cardiac. În ceea ce privește volumul minim, acesta este de fapt volumul end-sistolic (ESV), adică volumul ventricular la sfârșitul fazei de ejecție. Diferența dintre EDV și ESV este dată de cantitatea de sânge care va fi ejectată în timpul unui ciclu cardiac, și poartă numele de stroke volume (SV).[1]
Conform articolului “Mechanical Properties of the Heart and its interaction with the vascular system” [1], în momentul A – presiunea și volumul din ventriculul stâng sunt constante, inima fiind în diastolă, adică starea de relaxare. Acesta este momentul în care începe contracția cardiacă și implicit activarea electrică a inimii, fapt ce duce la creșterea presiunii din ventricul. Momentul B este perioada contracției izovolumetrice, adică contracția acestuia la un volum constant, după care sângele este ejectat în artera aortă, acesta fiind momentul C. Odată cu atingerea efortului maxim depus de mușchii cardiaci pentru contracție, ejecția încetinește, iar la relaxarea mușchilor, supapa aortică este închisă, nelăsând refularea sângelui în ventricul. Momentul C reprezintă practic faza în care ventriculul este la cel mai mic volum, presiunea scade, însă volumul ventricular stâng rămâne constant la un nivel scăzut. Atunci când presiunea ventriculului stâng scade sub presiunea atrială, se deschide valva mitrală, iar sângele curge în camera ventriculară stângă. Acesta este momentul D, marcat prin creșterea volumului ventricular stâng, și o creștere ușoară a presiunii ventriculului stâng datorată umplerii camerei, fază numită umplere.[1] Astfel, sistola este alcătuită din contracția izovolumetrică și faza de ejecție, iar diastola cuprinde relaxarea și umplerea izovolumetrică.
Buclele de presiune-volum ale ventriculului stâng se obțin din valorile de presiune și volum din diagrama ciclului cardiac. Pentru a genera o astfel de buclă în ventriculul stâng, presiunea ventriculară se reprezintă grafic în funcție de volumul ventriculului la momente succesive de timp, de-a lungul unui ciclu cardiac complet.[1]
Umplerea ventriculară se realizează de-a lungul relației end-diastolice presiune-volum (EDPVR), adică de-a lungul curbei de umplere pasivă a ventricului. Prin urmare, variațiile umplerii ventriculare modifică panta curbei de umplere pasivă. De exemplu, în hipertrofia ventriculară, ventriculul este mult mai rigid, prin urmare panta curbei de umplere crește. Acest lucru are ca rezultat presiuni mai mari în timpul umplerii la un volum ventricular dat. Un alt exemplu al modificării EDPVR este atunci când un ventricul se dilată cronic (intră în procesul de remodelare) așa cum apare spre exemplu în cardiomiopatia dilatativă, sau în boala valvei, caz în care panta curbei de umplere scade.[1]
Bucla ventriculară de presiune-volum afișează relația instantanee între presiunea intraventriculară și volum în timpul ciclului cardiac. Relație este prezentată în figura 1.1.
Conductorii Millar de presiune-volum (PV) măsoara presiunea și volumul ventriculului stâng simultan. Acest cateter este alcătuit dintr-un senzor de presiune dotat cu patru electrozi de platină dispuși în două perechi, pentru a colecta date în timp real privind volumul și presiunea, permițând astfel analiza parametrilor cardiaci printr-o metodă minim invazivă, continuă și intracardică. Electrozii sunt situați la distanța de 0,5 mm, în timp ce distanța dintre perechi variază în funcție de modelul cateterului utilizat. Senzorul de presiune este situat în mijlocul cateterului, între cele două perechi de electrozi.[5]
Prin această modalitate se pot analiza modificările funcției ventriculare, atât pentru condiții normale, cât și pentru situațiile în care obiectul de studiu suferă de cardiomiopatii, prin generarea buclelor de presiune-volum de-a lungul unui ciclu cardiac complet, așa cum sunt prezentate în figura 1.2. Această metodă de cercetare a volumului și presiunii intraventriculare este singura care oferă o analiză completă a performanței cardiace.[6]
Fig. 1.2. Buclele de presiune-volum [7]
Pentru analiza funcției cardiace se utilizează doar buclele acceptabile din punct de vedere tehnic, mai exact cele care nu prezintă aritmie, sau nu au valori prestabilite. Se generează astfel fișe conținând date pentru experimentele realizate.[8]
Determinarea parametrilor cardiaci în funcție de aceste bucle este recunoscută ca o măsurătoare clinică importantă, însă datorită invazivității este impracticoasă. Se pot determina și parametri fiziologici, precum derivații de presiune în funcție de timp și de viteza de contracție care sunt dependenți de frecvență, astfel, îmbunătățind evaluarea funcției ventriculului stâng și ajutând la generarea de criterii mult mai exacte pentru diferențierea bolilor cardiace.[9]
În cazul funcției sistolice, cel mai utilizat parametru este fracția de ejecție, aceasta indicând variația procentuală a volumului ventriculului stâng și este un indice al funcției ventriculare. Alte variabile fiziologice sistolice, cum ar fi volumul de sânge raportat la ciclul cardiac (Stroke Volume) și debitul cardiac, pot fi determinate prin măsurarea grosimii peretelui și dimensiunilor camerei. Spre exemplu, disfuncția diastolică este o afecțiune a relaxării cardiace, determinând astfel rigiditatea acesteia.[10]
Buclele de presiune-volum au un rol deosebit de important în evaluarea avansată a funcției cardiace. Se pot evalua astfel factori precum presiunea minimă, fracția de ejecție (EF), debitul cardiac (CO) și alți parametri relevanți pentru performanța miocardică și contractilitatea acesteia. Generarea buclelor de presiune-volum este reprezentată în figura 1.3.[11]
Fig. 1.3. Generarea buclelor de presiune-volum cu Millar [12]
Proprietățile mecanice ale ventriculului variază în funcție de timp, în mod ciclic, iar perioada ciclului cardiac este intervalul dintre bătăi. În timpul fiecărei contracții cardiace există o perioadă în care proprietățile mecanice ale inimii sunt caracterizate în mod direct de relația end-diastolică de presiune-volum (EDPVR). Prin determinarea acestei relații, se pot determina parametrii în momentul în care inima se află în starea sa cea mai relaxată. Relația end-diastolică de presiune-volum este prezentată schematic în figura 1.4.
Din punct de vedere fiziologic, EDPVR se modifică odată cu creșterea inimii. Cele mai multe modificări ale acestei relații apar însă în situațiile patologice, spre exemplu hipertrofia cardiacă, infarctul sau cardiomiopatiile dilatative. În ceea ce privește relația end-sistolică de presiune-volum, aceasta este aflată la extrema opusă a ciclului cardiac, la finalul sistolei. În acel moment, mușchii cardiaci se află în starea maximă de activare, determinând astfel o rigiditate mult mai ridicată a camerei. ESPVR este prezentată în figura 1.4.[1]
Fig 1.4. Axa ce determină panta relației end-diastolice de presiune-volum [1]
În ceea ce privește EDPVR, axa volumică pornește de la valoarea pozitivă (V0), indicând faptul că trebuie să existe o cantitate finită de volum înainte de generarea unei presiuni. În acest sens, pe figura 1.5, se presupune că volumul inițial are o valoare pozitivă minimă, atât în cazul relației end-diastolice, cât și în cazul relației end-sistolice de presiune-volum.
Relația end-sistolică de presiune-volum va genera o linie dată de buclele de presiune-volum, la finalul sistolei, determinând astfel o limită pentru aceste bucle, așa cum se prezintă în figura 1.5. Analog, și relația end-diastolică de presiune-volum va genera o linie din buclele de presiune-volum, însă la finalul diastolei, limitând astfel buclele în partea inferioară. Panta acestei linii generate în punctul end-diastolic va determina rigiditatea cardiacă.[1]
Fig. 1.5. Axele ce determină pantele punctelor EDPVR și ESPVR [1]
Prelevarea probelor
II.1. Echipamente utilizate în prelevarea probelor
Cateterul folosit pentru prelevarea probelor din ventriculul stâng al șoarecilor analizați are specificațiile prezentate în tabelul 2.1.
Tabelul 2.1. Specificațiile cateterului de presiune-volum PVR-1045 [13]
Cateterul PVR-1045 (fig. 2.2) asigură măsurarea simultană a presiunii și a volumului ventriculului stâng. Millar oferă cel mai mic cateter de presiune-volum din lume, numit 1F. Diametrul mic al acestui cateter are rolul de a reduce la minim obstrucția fluxului sanguin din interiorul vasului, având astfel avantajul de a permite un acces chirurgical îmbunătățit la ventriculul drept al subiectului de studiu. Astfel, este posibilă prelevarea probelor și de la șoareci mai mici, mai tineri, fapt ce ajută la detectarea eventualelor boli genetice, sau pentru stabilirea tratamentului.
Acest cateter de presiune-volum a ajutat de asemenea la colectarea datelor, cheia succesului fiind dată de reducerea dimensiunii acestuia la minim.
Fig. 2.2. Cateterul de presiune-volum PVR-1045 [13]
PVR-1045 asigură o lungime a cateterului utilizabilă de 3,25cm și o distanțare a electrozilor de 4,5 mm pentru măsurarea volumului ventricular optimizat la șoarecii de dimensiuni standard.[5]
Fig. 2.3. Unitatea MPVS Ultra Single Segment pentru Presiune-Volum [14]
Unitatea MPVS Ultra Single Segment Pressure-Volum (fig. 2.3) este capabilă să determine atât valorile presiunii, cât și cele ale volumului.
Presiunea este definită ca fiind cantitatea de forță exercitată pe unitatea de suprafață. Cu ajutorul analizei buclelor de presiune-volum se pot determina o serie de parametri hemodinamici, utili în evaluarea funcției cardiace. Există un număr mare de unități de masură pentru presiune, dintre acestea cea mai frecvent folosită este mmHg.
Cu ajutorul presiunii se pot măsura parametrii precum tensiunea arterială, adică presiunea exercitată de sânge pe pereții vaselor; presiunea exercitată asupra căilor respiratorii, cumulată pe măsură ce aerul intră în plămâni; presiunea intracraniană, adică presiunea exercitată asupra creierului și a craniului de către lichidul cerebro-spinal.[15]
Volumul reprezintă cantitatea ocupată de o substanță într-un spațiu tridimensional. Volumul poate fi exprimat în metri cubi sau în litri, în funcție de natura substanței. În fiziologia cardiovasculară, se măsoară cel mai des volumele sistolice și diastolice ventriculare, acestea având un rol deosebit de important în determinarea altor parametri cardiaci, cum ar fi volumul de sânge raportat la ciclul cardiac (Stroke Volume) și volumul end-diastolic al ventriculului stâng (LVEDV).[16]
Semnalele de presiune cardiovasculară și de volum pot fi reprezentate grafic în timp real, prin generarea buclelor de presiune-volum pentru ventriculul stâng sau drept. Prin generarea acestor bucle se pot determina cu ușurință afecțiuni cardiace.[17]
Aplicațiile buclelor de presiune-volum sunt prezentate în tabelul 2.4, alături de parametrii care pot fi determinați cu ajutorul acestora.
Tabelul 2.4. Utilitatea buclelor de presiune-volum [17]
Așadar, cateterele pentru generarea buclelor de presiune-volum oferă o evaluare completă a funcției cardiace în cazul studiilor efectuate pe animale. Prin folosirea acestei modalități de prelevare a probelor, se determină valori pentru presiune și volum de înaltă precizie, doar prin folosirea unui singur cateter.
Millar a dezvoltat șase dimensiuni de vârf pentru catetere, oferind astfel posibilitatea cercetătorilor să le utilizeze atât la șoareci de talie mică, cât și la animale domestice. Pentru determinarea și mai multor parametri, s-a construit un cateter ce dispune de module duble de senzori de presiune. Acestea sunt deosebit de utile în procedurile chirurgicale, precum și în studiul funcției cardiace în spații izolate. [17]
II.2. Parametrii utilizați în cadrul aplicației
Parametrii măsurați de programul Millar, și analizați de aplicație (tabelul 2.5), sunt:
Tabelul 2.5. Parametrii utilizați în cadrul aplicației CDAS [4]
II.3. Prezentarea protocolului pentru prelevarea probelor
Pentru prelevarea probelor, s-a folosit software-ul Millar, iox, versiunea 2.5.1.6, respectiv unitatea MPVS Ultra Single Segment pentru calcularea relației de presiune-volum și pentru interpretarea parametrilor. Spațiul de lucru este prezentat în figura 2.6. Millar utilizează un cateter, introdus în ventriculul stâng al șoarecelui, pentru a genera curbe pe o scară cu unități de presiune (mmHg) și volum (μL). Prelevarea datelor s-a realizat în laboratorul Institutului de Cercetare Moleculară Cardiovasculară (IMCAR) a Uniklinik RWTH Aachen, sub atenta coordonare a doamnelor conf. dr. Elisa Liehn și cercetător dr. Mihaela Rusu, în cadrul celor cinci luni de practică efectuate la acest institut. Printre parametrii măsurați de Millar se numără presiunea minimă și maximă (mmHg), volumul minim și maxim (µL), ritmul cardiac (bpm), volumul end-sistolic (µL), volumul end-diastolic (µL), presiunea end-sistolică (mmHg), presiunea end-diastolică (mmHg), elasticitatea end-sistolică (mmHg/µl), elasticitatea arterială (mmHg/µl), debitul cardiac (%), efortul miocardului la trecerea sângelui sau Stroke Work (mmHg*µl), volumul de sânge raportat la ciclul cardiac sau Stroke Volume (µL), fracția de ejecție (%), efortul înaintea umplerii camerei (mmHg), relația end-sistolică de presiune-volum (ESPVR), relația end-diastolică de presiune-volum (EDPVR), dP/dt maxim (mmHg/s), dP/dt minim (mmHg/s), dV/dt maxim (µl/s), dV/dt minim (µl/s), presiunea în dP/dt maxim (mmHg), presiunea în dV/dt maxim (mmHg), volumul în dP/dt maxim (µL), volumul în dP/dt minim (µL), metoda Tau-Weiss (msec), metoda Tau-Glantz (msec), respectiv metoda Tau-Logistic (msec).
Fig. 2.6. Spațiu de prelevare a probelor, aplicația Millar, unitatea MPVS Ultra Single Segment P-V
În cadrul acestui studiu, am folosit două tipuri de șoareci: de control (cei fără infarct), respectiv mk (infarctați), pentru a putea determina diferența dintre rigiditatea inimii în fiecare dintre cele două cazuri (fig. 2.7).
Fig. 2.7. Șoarecii folosiți pentru prelevarea probelor
Atunci când animalul este anesteziat (adică nu răspunde la atingerea cozii sau a urechii), folosind banda chirurgicală, se lipesc labele frontale și una dintre labele distale, iar laba rămasă liberă va fi utilizată pentru a monitoriza adâncimea anesteziei: mișcarea labei poate indica scăderea adâncimii acesteia. De asemenea, se aplică o bucată subțire de bandă pe vârful botului pentru a trage ușor capul animalului înapoi, pentru a crea tracțiune în trahee.[2]
Cateterul PV poate fi introdus în ventriculul stâng prin artera carotidă dreaptă fără a deschide cavitatea toracică (fig. 2.8). Următorul pas este reglarea poziției cateterului pentru a obține buclele de presiune-volum în formă dreptunghiulară (fig. 2.9). În cazul prelevării probelor de la animale bolnave, forma acestora va fi diferită.[2]
Fig. 2.8. Introducerea cateterului de presiune-volum în ventriculul stâng al șoarecelui
După fixarea cateterului, buclele de presiune-volum vor fi afișate pe ecran. Durata medie a măsurătorilor a fost de cinci minute pe animal. Fiecare buclă este reprezentată pe axe de volum și presiune. Millar preia datele în două etape. Prima etapă este numită „baseline”, fiind practic cea mai relevantă pentru măsurători. Pe măsură ce funcțiile cardiace ale animalului se diminuează, se trece în a doua etapă de prelevare, numită „injection”, când se injectează substanțe în corpul animalului pentru a menține la un nivel relativ constant funcția cardiacă.
Fig. 2.9. Generarea buclelor de presiune-volum de către aplicația Millar
În final, Millar oferă posibilitatea salvării buclelor de presiune-volum sub formă de fișiere de imagine. Acestea pot fi exportate fie împreună cu axele de presiune-volum atașate imaginii (fig. 2.10), fie strict bucla de presiune-volum (fig. 2.11), urmând ca valorile de pe axe să fie introduse manual de utilizator la folosirea aplicației CDAS pentru interpretarea datelor.
Fig. 2.10. Bucle de presiune-volum generate cu axele p-v
Fig. 2.11. Bucle de presiune-volum fără axe
Implementarea aplicației
III.1. Tehnologii informatice utilizate
.NET este un framework ce permite dezvoltarea software unitară prin realizarea, distribuirea și rularea aplicațiilor desktop Windows și a aplicațiilor WEB. Tehnologia .NET combină mai multe tehnologii, precum ASP sau XML, și limbaje de programare, spre exemplu C++ și C#, asigurând portabilitatea codului compilat între calculatoarele ce rulează sistemul de operare Windows.[24]
.NET Framework este o componentă oferită cu sistemul de operare Windows. Componenta .NET Framework stă la baza tehnologiei .NET, fiind cu alte cuvinte o interfață între aplicațiile .NET și sistemul de operare utilizat. Acesta conține limbajele de programare C#, VB.NET sau C++.[24]
Aceste limbaje trebuie să respecte specificațiile OOP, numite Common Type System (CTS). Elementele de bază ale acestor limbaje sunt clasele, interfețele, respectiv tipurile valoare și referință; platforma de rulare a aplicațiilor, numită Common Language Runtime (CLR), iar CTS face parte din CLR, sau bibliotecile utilizate în implementarea aplicațiilor, numite Framework Class Library (FCL).[24]
Obiectul „OleDbConnection” prezintă o legătură la o sursă de date, fiind o conexiune de rețea la server. Acesta face cerințe de securitate utilizând „OleDbPermission”.[25]
„OleDbConnection” folosește ca argument stringul de legătură și transmite valoarea acestuia către instrucțiunea Constructor. La stabilirea conexiunii dintre aplicația dezvoltată în limbajul de programare C# și sursa de date utilizată, comenzile SQL se execută cu ajutorul unui obiect de conectare, manipulând astfel datele din baza de date.[26]
În momentul în care activitățile bazei de date se termină, conexiunea se închide și se eliberează resursele, cu ajutorul metodei „Close()”. Aceasta închide toate tranzacțiile aflate în așteptare, stopând conexiunea bazei de date cu furnizorul OleDbConnection.[26]
O conexiune OleDb este alcătuită din mai multe componente. Sursa de date reprezintă practic numele bazei de date sau locația fișierului de date. Alte componente importante sunt numele fișierului utilizat și furnizorul de date (driver utilizat pentru conectarea la date).[27]
În ceea ce privește acțiunile de citire și scriere a fișierelor, am utilizat clasele „StreamReader” și „StreamWriter”. Ambele clase fac parte din spațiul de nume System.IO.[28]
StreamReader conține metode de lucru cu fișiere. Una dintre acestea este Read(), care va citi valorile, și va afișa -1 dacă s-a ajuns la finalul fișierului de date. În ceea ce privește metoda ReadLine(), aceasta va returna o linie întreagă sub forma de șir, iar atunci când se va ajunge la sfârșitul fișierului, se va reveni la zero. Metoda ReadToEnd() returnează întreg fișierul într-un singur șir. Metoda Peek() verifică următorul caracter din fișier, iar dacă nu mai există valori, va reveni la -1.[28]
StreamWriter este alcătuită din două metode importante: Write() și WriteLine(). Cu metoda Write() se scrie o linie într-un fișier, dar fără a trece la o altă linie. Spre deosebire de metoda Write(), WriteLine() scrie linie cu linie într-un fișier, după care trece la o altă linie.[28]
În ambele cazuri este extrem de importantă apelarea metodei Close() la finalizarea utilizării obiectelor de citire sau scriere.[28]
III.2. Etapele implementării aplicației
După prelevarea datelor cu ajutorul programului de achiziții de date Millar iox, versiunea 2.5.1.6, primul pas a fost exportarea lor. Acest software s-a dovedit a fi extrem de robust și rigid, deoarece putea salva imaginile conținând buclele de presiune-volum numai în format citire, însă fără a oferi toți parametrii corespunzători acestora. Aceste fișiere aveau extensia „*.xps”, cu acces doar pentru citire, fiind astfel imposibilă analiza lor folosind Matlab sau programe simple de procesare de imagini. Următorul pas a fost salvarea manuală a fiecărei bucle de presiune-volum din programul Millar, imaginile având extensia „*.png”.
Millar oferea adițional și fișiere cu parametrii obținuți de-a lungul prelevării probelor, însă cu extensia „*.iox”, fiind astfel nevoie să fie transformate într-o extensie lizibilă, independentă de aplicația de achiziții de date, în acest caz folosindu-se extensia „*.txt”.
Următorul pas a fost pregătirea imaginilor. A fost necesară conversia acestora din formatul index în care erau transmise, în formatul RGB. Toate imaginile exportate aveau aceeași dimensiune, și anume 434 x 227 pixeli.
Am continuat cu implementarea unei funcții în limbajul C#, care să citească și să convertească imaginea inițială în coduri de culori RGB. Astfel, buclele de presiune-volum erau evidențiate, pe un fundal alb. Ori de câte ori aplicația găsea un pixel colorat, având codul de culoare 255, salva coordonatele pixelului respectiv într-un fișier cu extensia „*.csv”. Documentul generat era alcătuit din două coloane, una reprezentând valorile corespunzătoare axei X, respectiv una valorile corespunzătoare axei Y. Inițial am folosit un șablon alcătuit dintr-un singur pixel, însă aceasta era o implementare ineficientă, atât din punct de vedere al timpului necesar funcției pentru a determina punctele, dar și pentru determinarea succesivă a acelorași pixeli, fapt datorat și grosimii buclei. Am folosit ulterior un șablon pentru a genera valori mai precise, și într-un timp mult mai redus. Așadar, pentru ca un punct să fie considerat pozitiv, acesta trebuia să fie compus din 4 pixeli colorați adiacenți, având dimensiunea 2×2 pixeli. În caz contrar, coordonatele punctului respectiv nu sunt luate în considerare. După determinarea seturilor de coordonate, aplicația recompune imaginea inițială. Pentru a verifica corectitudinea determinării coordonatelor și a funcționării funcției, am introdus un grafic în formular, pe care se va afișa forma inițială. Aplicația CDAS este capabilă să determine o serie de parametri, printre care cea mai importantă este rigiditatea, prin analiza buclelor de presiune-volum, respectiv a fișierelor care conțin valori obținute pe parcursul prelevării probelor.
Pasul următor a fost determinarea coordonatelor pentru punctele EDPVR (Relația end-diastolică de presiune-volum) și ESPVR (Relația end-sistolică de presiune-volum). Rigiditatea se determină în punctul EDPVR, unde valoarea volumului este maximă, iar presiunea este minimă. Astfel, pentru determinarea coordonatelor, am folosit o funcție care caută perechea de coordonate ce îndeplinea simultan următoarele condiții: în cazul punctului EDPVR – volumul maxim și presiunea minimă, adică max(x) și min(y), iar în cazul punctului ESPVR, situat în punctul unde volumul este minim, iar presiunea maximă – min(x) și max(y).
Pentru determinarea coordonatelor punctului EDPVR, am folosit formula de distanță, calculând distanța dintre fiecare pereche de coordonate și colțul extrem aflat în partea dreapta-jos a imaginii, la coordonatele (434, 0). A rezultat astfel punctul care îndeplinește simultan cele două condiții. Acesta a fost determinat pentru fiecare buclă de presiune-volum în parte, după care a fost stocat într-un fișier de date cu extensia „*.csv”.
În cazul coordonatelor punctului ESPVR, am apelat tot la formula de distanță, de această dată calculând distanța dintre fiecare pereche de coordonate și colțul extrem aflat în partea stânga-sus a imaginii, la coordonatele (0, 227). A rezultat astfel punctul care îndeplinește simultan cele două condiții. Acest punct a fost determinat pentru fiecare buclă de presiune-volum în parte, după care a fost stocat într-un fișier de date cu extensia „*.csv”.
Pentru a determina o valoare mai exactă a rigidității, trebuie luate în considerare minim trei bucle de presiune-volum, pentru fiecare în parte fiind necesară determinarea punctelor EDPVR și ESPVR. Simultan cu determinarea acestor puncte, aplicația calculează și panta dată de coordonatele lor, coeficientul de determinare r-Squared și Intercept, după care determină rigiditatea țesutului cardiac.
Aplicația determină în acest moment parametrii menționați anterior, în valori de pixeli. Pentru a le transforma în valori de măsură universale, spre exemplu mmHg în cazul presiunii, μL pentru volum, am implementat o funcție care realizează automat această conversie, cunoscând valorile minime și maxime ale presiunii și volumului, respectiv dimensiunea imaginilor în pixeli, care este mereu constantă (434 x 227 pixeli).
Pe lângă determinarea parametrilor prezentați mai sus, aplicația calculează simultan valorile capacității ventriculare, volumul de sânge raportat la ciclul cardiac (Stroke Volume), efortul miocardului la trecerea sângelui (Stroke Work), fracția de ejecție, aria de presiune-volum, și elasticitatea arterială. Pentru calcularea acestora, am determinat parametrii intermediari, precum valoarea volumului end-diastolic (în punctul unde valoarea volumului este maximă, iar valoarea presiunii este minimă), a volumului end-sistolic (în punctul unde valoarea volumului este minimă, iar valoarea presiunii este minimă), a presiunii end-diastolice (în punctul unde valoarea volumului este minimă, iar valoarea presiunii este minimă), respectiv a presiunii end-sistolice (aflată în punctul unde valoarea volumului este minimă, iar valoarea presiunii este maximă).
Pentru eficientizare, am implementat o funcție care citește toate imaginile aflate într-un director ales de utilizator, și folosind datele de intrare preluate dintr-un fișier „*.csv”, determină valoarea medie a capacității ventriculare, a volumului de sânge raportat la ciclul cardiac (Stroke Volume), efortul miocardului la trecerea sângelui (Stroke Work), fracția de ejecție, aria de presiune-volum, elasticitatea arterială, rigiditatea în punctele EDPVR și ESPVR, precum și panta curbelor determinate de aceste puncte, coeficientul de determinare r-Squared și Intercept. Totodată, afișează valorile parametrilor calculați pe un grafic, acesta din urmă având următoarele opțiuni: vizualizarea parametrilor de intrare citiți din fișierul de date, a parametrilor calculați de aplicație, respectiv afișarea individuală a acestora.
Aplicația CDAS este capabilă să citească și să interpreteze și date ecografice. Ecograful generează un fișier Excel („*.xlsx”), care cuprinde file individuale pentru fiecare parametru în parte. Fiecare filă este alcatuită din mai multe coloane reprezentând valorile determinate la frame-urile înregistrate. Inițial, am încercat accesarea acestor date din aplicația CDAS, direct din fișierul original Excel, însă erau în format read-only, fapt pentru care am implementat o funcție, folosind „Microsoft.OleDb” pentru parcurgerea tuturor filelor, respectiv o funcție care salvează datele citite în fișiere individuale, având extensia „*.csv”.
Deoarece fiecare filă conține un volum mare de date, această funcție de conversie necesită un timp destul de lung de rulare. După conversie, fișierele sunt citite de o altă funcție, se determină valoarea medie pentru fiecare în parte, după care sunt afișate rezultatele. În paralel, acestea sunt reprezentate grafic, există posibilitatea afișării individuale a parametrilor calculați.
O altă extensie a acestei aplicații este compararea a două fișiere Excel, conținând date ecografice. Pentru fiecare dintre acestea, se repetă pașii prezentați anterior, după care o funcție calculează diferența dintre ele pentru toți parametrii în parte, afișând rezultatul. Și în acest caz, valorile determinate sunt reprezentate pe câte un grafic corespunzător fiecărui fișier de intrare, existând și posibilitatea afișării individuale a parametrilor determinați.
Aplicația este compusă din nouă componente individuale, legate între ele de un ecran de start, numit „Splash Screen”. Acestea nu comunică între ele, fiecare având câte o funcționalitate individuală, diferită. Schema aplicației CDAS este reprezentată în figura 3.1.
Fig. 3.1. Structura aplicației CDAS
„P-V Loops Analyzer” este o componentă care analizează buclele de presiune-volum, generând valorile parametrilor cardiaci, precum capacitatea ventriculară, efortul miocardului la trecerea sângelui (Stroke Work), volumul de sânge raportat la ciclul cardiac (Stroke Volume), fracția de ejecție, aria de presiune-volum sau elasticitatea arterială. „Average P-V Loops Analyzer” determină parametri, precum rigiditatea în punctele EDPVR și ESPVR, prin analiza mai multor imagini ce conțin bucle de presiune-volum, calculând și valorile medii pentru capacitatea ventriculară, efortul miocardului la trecerea sângelui (SW), volumul de sânge raportat la ciclul cardiac (SV), fracția de ejecție, aria de presiune-volum sau elasticitatea arterială. În cazul în care imaginile ce conțin buclele de presiune-volum sunt salvate într-un folder, componenta „Average Directory P-V Loops Analyzer” va citi aceste fișiere, precum și datele de intrare corespunzătoare lor, după care va calcula valorile pentru parametrii cardiaci. Pentru reprezentarea fișierelor de date generate de aplicația Millar s-au implementat două aplicații. „Raw Data Analyzer” reprezintă grafic valorile, în timp ce „Raw Data Comparator” citește valorile din fișiere distincte, generând grafice pentru acestea, prin compararea parametrilor calculați. Pentru analiza datelor ecografice, o componentă importantă este „Echo Parameters Calculator”, aceasta citește valori din fișiere Excel, și, folosind formulele prezentate în capitolul 3, determină parametrii cardiaci, generând și un grafic pentru a evidenția diferențele dintre aceștia. „Echo Parameters Comparator” oferă posibilitatea de a analiza simultan două seturi de date ecografice, determinând diferențele, și afișând valorile pe grafice individuale.
Atât componentele Millar, cât și cele pentru datele ecografice conțin câte o pagină „Help Tutorial”, unde se prezintă parametrii calculați, precum și un tutorial de folosire a aplicației.
III.3. Parametrii calculați de aplicația CDAS
Elasticitatea arterială (Ea) este definită ca raportul dintre valoarea presiunii sistolice determinate în ventriculul stâng și volumul de sânge raportat la ciclul cardiac (SV), formula fiind prezentată la 3.2. Determinarea acestui parametru este importantă pentru calcularea presiunii arteriale, fiind obținută din datele de presiune-volum măsurate în ventriculul stâng. Unitatea de măsură pentru elasticitatea arterială este mmHg/ µl. În termeni matematici,
Formula 3.2. Formula elasticității arteriale [18]
unde ESP reprezintă presiunea end-sistolică, SV reprezintă volumul de sânge raportat la ciclul cardiac, EDV reprezintă volumul end-diastolic, iar ESV volumul end-sistolic.
Capacitatea (C) ventriculului stâng este calculată prin diferența dintre valorile maxime și cele minime ale volumului la presiunea i, formula fiind prezentată la 3.3. Unitatea de măsură pentru capacitatea ventriculului stâng este µl. În termeni matematici, capacitatea ventriculului stâng, când valoarea presiunii este i, se calculează astfel:
Formula 3.3. Formula capacității ventriculare [19]
unde Vmax[i] reprezintă valoarea maximă a volumului la presiunea i, iar Vmin[i] reprezintă valoarea minimă a volumului la presiunea i.
Fracția de ejecție (EF) este definită prin raportul dintre volumul de sânge la un ciclul cardiac (Stroke Volume) și volumul end-diastolic, formula fiind prezentată la 3.4. Unitatea de măsură pentru fracția de ejecție este %. În termeni matematici,
Formula 3.4. Formula fracției de ejecție [19]
unde EDV reprezintă volumul end-diastolic, iar ESV reprezintă volumul end-sistolic. Ventriculele sănătoase au în mod obișnuit fracțiuni de ejecție mai mari de 55%. Cu toate acestea, EF este de asemenea dependentă de condițiile de încărcare și inferioare parametrilor hemodinamici definiți de planul de presiune-volum.[19]
Relația end-diastolică de presiune-volum (EDPVR) descrie curba pasivă de umplere a ventriculului și, prin urmare, proprietățile pasive ale miocardului. Unitatea de măsură pentru relația end-diastolică de presiune-volum este mmHg/µl. Panta EDPVR în orice punct de-a lungul acestei curbe este reciproca conformității ventriculare (sau a rigidității ventriculare).
De exemplu, dacă este scăzută complianța ventriculară (cum ar fi hipertrofia ventriculară), ventriculul este mai rigid. Acest lucru are ca rezultat presiuni diastolice mai mari la finalul diastolei ventriculare, pentru orice volum end-diastolic dat. Formula pentru determinarea punctului EDPVR este prezentată la 3.5 [20]
În termeni matematici, valoarea relației end-diastolice de presiune-volum, când valoarea presiunii este i, iar valoarea volumului este j, se calculează astfel:
Formula 3.5. Formula determinării punctului EDPVR [20]
unde Vmax reprezintă valoarea maximă a volumului, V[i] reprezintă valoarea volumului la presiunea i, Pmin reprezintă valoarea minimă a presiunii, iar P[j] reprezintă valoarea presiunii la volumul j.
Volumul end-diastolic (EDV) are ca unitate de măsură µl. În termeni matematici, valoarea volumului end-diastolic, când valoarea presiunii este i, iar valoarea volumului este j, se calculează folosind formula prezentată la 3.6.
Formula 3.6. Formula volumului end-diastolic [20]
unde Vmax reprezintă valoarea maximă a volumului, V[i] reprezintă valoarea volumului la presiunea i, Pmin reprezintă valoarea minimă a presiunii, iar P[j] reprezintă valoarea presiunii la volumul j.
Presiunea end-diastolică (EDP) are ca unitate de măsură mmHg. În termeni matematici, valoarea presiunii end-diastolice, când valoarea presiunii este i, iar valoarea volumului este j, se calculează folosind formula prezentată la 3.7.
Formula 3.7. Formula presiunii end-diastolice [20]
unde Vmin reprezintă valoarea minimă a volumului, V[i] reprezintă valoarea volumului la presiunea i, Pmin reprezintă valoarea minimă a presiunii, iar P[j] reprezintă valoarea presiunii la volumul j.
Rigiditatea în punctul EDPVR are ca unitate de măsură KPa. În termeni matematici, valoarea rigidității în punctul EDPVR când valoarea presiunii este i, iar valoarea volumului este j, se calculează folosind formulele prezentate la punctele 3.8, 3.9, 3.10 si 3.11.
Formula 3.8. Formula coordonatei X a punctului EDPVR
Formula 3.9. Formula coordonatei Y a punctului EDPVR
Formula 3.10. Formula pantei punctelor EDPVR
Formula 3.11. Formula rigidității în punctul EDPVR
unde Vmin reprezintă valoarea minimă a volumului, Vmax reprezintă valoarea maximă a volumului, Vmin[i] reprezintă valoarea minimă a volumului la presiunea i, Vmax[i] reprezintă valoarea maximă a volumului la presiunea i, Pmin reprezintă valoarea minimă a presiunii, Pmax reprezintă valoarea maximă a presiunii, Pmin[j] reprezintă valoarea minimă a presiunii la volumul j, Pmax[j] reprezintă valoarea maximă a presiunii la volumul j, EDPVRslope reprezintă panta în punctul EDPVR, sumCodeviate reprezintă suma produselor dintre valorile de presiune și volum corespunzătoare EDPVR, V reprezintă suma valorilor de volum corespunzătoare EDPVR, P reprezintă suma valorilor de presiune corespunzătoare EDPVR, N reprezintă numărul de puncte corespunzătoare EDPVR, V’ reprezintă suma pătratelor valorilor de volum corespunzătoare EDPVR, iar SEDPVR reprezintă valoarea rigidității ventriculare.
Relația end-sistolică de presiune-volum (ESPVR) descrie presiunea maximă care poate fi dezvoltată de ventricul la orice volum dat. Aceasta implică faptul că buclele de presiune-volum nu pot trece peste linia care definește ESPVR pentru orice stare contractilă dată. Unitatea de măsură pentru relația end-sistolică de presiune-volum este mmHg/µl.
Panta ESPVR (Ees) reprezintă elasticitatea sistolică finală, care oferă un indice de contractilitate miocardică. ESPVR este relativ insensibil la schimbările frecvenței cardiace. Acest lucru îl face un indice îmbunătățit al funcției sistolice față de alți parametri hemodinamici, cum ar fi fracția de ejecție, debitul cardiac și volumul de sânge raportat la ciclul cardiac (SV). Panta ESPVR devine abruptă și se deplasează spre stânga, pe măsură ce crește contractilitatea. Panta ESPVR devine mai plată și se îndreaptă spre dreapta pe măsură ce scade inotropia.[20]
În termeni matematici, valoarea relației end-sistolice de presiune-volum, când valoarea presiunii este i, iar valoarea volumului este j, se calculează folosind formula prezentată la 3.12.
Formula 3.12. Formula determinării punctului ESPVR [20]
unde Vmin reprezintă valoarea minimă a volumului, V[i] reprezintă valoarea volumului la presiunea i, Pmax reprezintă valoarea maximă a presiunii, iar P[j] reprezintă valoarea presiunii la volumul j.
Volumul end-sistolic (ESV) are ca unitate de măsură µl. În termeni matematici, valoarea volumului end-sistolic, când valoarea presiunii este i, iar valoarea volumului este j, se calculează folosind formula prezentată la 3.13.
Formula 3.13. Formula volumului end-diastolic [20]
unde Vmin reprezintă valoarea minimă a volumului, V[i] reprezintă valoarea volumului la presiunea i, Pmin reprezintă valoarea minimă a presiunii, iar P[j] reprezintă valoarea presiunii la volumul j.
Presiunea end-sistolică (ESP) are ca unitate de măsură mmHg. În termeni matematici, valoarea presiunii end-sistolice, când valoarea presiunii este i, iar valoarea volumului este j, se calculează folosind formula prezentată la 3.14.
Formula 3.14. Formula presiunii end-sistolice [20]
unde Vmin reprezintă valoarea minimă a volumului, V[i] reprezintă valoarea volumului la presiunea i, Pmax reprezintă valoarea maximă a presiunii, iar P[j] reprezintă valoarea presiunii la volumul j.
Rigiditatea în punctul ESPVR are ca unitate de măsură KPa. În termeni matematici, valoarea rigidității în punctul relației end-sistolice de presiune-volum, când valoarea presiunii este i, iar valoarea volumului este j, se calculează folosind formulele prezentate la punctele 3.15, 3.16, 3.17 si 3.18.
Formula 3.15. Formula coordonatei X a punctului ESPVR
Formula 3.16. Formula coordonatei Y a punctului ESPVR
Formula 3.17. Formula pantei punctelor ESPVR
Formula 3.18. Formula rigidității în punctul ESPVR
unde Vmin reprezintă valoarea minimă a volumului, Vmax valoarea maximă a volumului, Vmin[i] valoarea minimă a volumului la presiunea i, Vmax[i] valoarea maximă a volumului la presiunea i, Pmin valoarea minimă a presiunii, Pmax valoarea maximă a presiunii, Pmin[j] valoarea minimă a presiunii la volumul j, Pmax[j] valoarea maximă a presiunii la volumul j, ESPVRslope reprezintă panta în punctul ESPVR, sumCodeviate reprezintă suma produselor dintre valorile de presiune și volum corespunzătoare ESPVR, V reprezintă suma valorilor de volum ESPVR, P – suma valorilor de presiune ESPVR, N numărul de puncte ESPVR, V’ suma pătratelor valorilor de volum ESPVR, iar SESPVR reprezintă valoarea rigidității ventriculare.
Aria de presiune-volum (PVA) reprezintă energia mecanică totală generată de contracția ventriculară. Este egală cu suma efortului miocardic înaintea umplerii camerei (Stroke Work), cuprinsă în bucla de p-v și energia potențială elastică (PE), calculată folosind formula 3.19.[21]
Formula 3.19. Formula ariei de presiune-volum [21]
unde ESP reprezintă presiunea end-sistolică, ESV reprezintă volumul end-sistolic, EDP reprezintă presiunea end-diastolică, iar EDV reprezintă volumul end-diastolic. Există o corelație foarte liniară între PVA și consumul de oxigen pe ciclul cardiac.
Volumul de sânge raportat la ciclul cardiac (Stroke Volume) este volumul de sânge ejectat de către ventriculul drept sau stâng într-o singură contracție, fiind calculat folosind formula 3.20. Unitatea de măsură pentru volumul de sânge raportat la ciclul cardiac (SV) este µl. Este diferența dintre volumul diastolic final (EDV) și volumul sistolic final (ESV).[22]
Formula 3.20. Formula volumului de sânge raportat la ciclul cardiac (Stroke Volume) [22]
unde EDV reprezintă volumul end-diastolic, iar ESV volumul end-sistolic. Volumul de sânge raportat la ciclul cardiac este afectat de schimbările încărcării camerei, dar și de contractilitatea acesteia. În inimile normale, SV nu este puternic influențată de încărcarea ulterioară.
Efortul miocardului la trecerea sângelui prin ventricul (Stroke Work) este definit ca activitatea efectuată de ventricul pentru a evacua volumul de sânge din ciclul cardiac, în aortă sau artera pulmonară, calculat folosind formula 3.21. Unitatea de măsură este mmHg*µl.[21]
Formula 3.21. Formula efortului miocardic la trecerea sângelui (Stroke Work) [21]
unde SV reprezintă volumul de sânge raportat la ciclul cardiac (SV), Avg(P) valoarea medie a presiunii, EDV reprezintă volumul end-diastolic, iar ESV reprezintă volumul end-sistolic.
Displacement (D) este măsura care definește cât de departe se mișcă un segment miocardic față de un punct inițial. Acest derivat parțial este un gradient de deplasare, o măsură a cât de rapidă este deplasarea. Din punct de vedere fizic, aceasta reprezintă schimbarea unitară (aproximativă) a lungimii unui element de linie, așa cum este indicat în figura 1.2.2.
Velocity (V) se definește prin cantitatea de mișcare normalizată la timp. Prin urmare, deplasarea obiectului este împărțită față de timpul necesar pentru a face deplasarea. Prin urmare, unitatea sa de măsură este cm/s. Aceasta descrie mișcarea miocardul într-o anumită direcție.
Strain (S) reprezintă gradul de deformare (prelungirea sau scurtarea țesutului) de care inima suferă în timpul ciclului cardiac, în raport cu forma sa inițială, fiind o măsură directă a contractilității miocardice. Deformarea apare când diferite părți ale peretelui inimii nu se mișcă cu aceeași viteză în ciclul cardiac.[23] În termeni matematici, se calculează cu formula 3.22.
Formula 3.22. Formula gradului de deformare (Strain) [23]
unde S este tulpina longitudinală, ΔL este schimbarea absolută a lungimii, L0 este lungimea liniei de bază (la finalul diastolei), iar ΔV este gradientul de viteză din segment.
Strain Rate (SR) reprezintă rata de deformare, prin măsurarea tensiunii pe unitatea de timp sau viteza la care are loc deformarea.[23] Matematic, se calculează cu formula 3.23.
Formula 3.23. Formula ratei de deformare (Strain Rate) [23]
unde S este tulpina longitudinală, ΔL este schimbarea absolută a lungimii, L0 este lungimea liniei de bază (la finalul diastolei), iar ΔV este gradientul de viteză din segment.
III.4. Prezentarea aplicației CDAS – back-end
Aplicația CDAS este alcătuită din nouă componente. Acestea nu comunică între ele, fiind conectate prin intermediul unui „Splash Screen”, acesta din urmă având butoane de legătură către fiecare componentă. În cele ce urmează, se va prezenta structura de bază a trei dintre aceste componente.
Prima componentă este „Average Directory P-V Loops Analyzer”. Această extensie analizează buclele de presiune-volum dintr-un director, calculând pentru acestea parametrii, cum ar fi rigiditatea țesutului (KPa), panta, coeficientul de determinare r-Squared, intercept, deviația standard, capacitatea ventriculară medie (μL), media efortului miocardic la trecerea sângelui, adică Stroke Work (g*m), media volumului de sânge raportat la ciclul cardiac, adică Stroke Volume (μL/beat), aria medie de presiune-volum și elasticitatea arterială medie.
Structura componentei menționate este prezentată în figura 3.24. Pentru a determina aceste valori, am creat funcția „OpenDataFile()” care va analiza fișierul de date ce conține parametrii de intrare, precum valorile volumului minim, ale volumului maxim, ale presiunii minime, ale presiunii maxime, respectiv a presiunii în care se dorește calcularea valorilor finale. Acest fișier cu extensia „*.csv” va fi selectat de utilizator, iar numărul de linii de date trebuie să corespundă cu numărul de imagini conținând buclele de presiune-volum ce se doresc a fi analizate. Funcția va verifica dacă fișierul de intrare respectă structura impusă (compus din cinci coloane, astfel: presiunea minimă, presiunea maximă, volumul minim, volumul maxim, valoarea presiunii la care se dorește calcularea valorilor), în caz afirmativ va citi valorile și le va memora în liste individuale, după care un mesaj de confirmare va apărea pe ecran.
Următorul pas este citirea fișierelor de imagine, conținând buclele de presiune-volum. Aceste fișiere trebuie să se afle într-un singur director. Funcția care realizează această operație de citire este numită „OpenDirectory()”, ea va verifica dacă numărul fișierelor din folder coincide cu numărul de linii de date citite anterior de funcția „OpenDataFile()”, iar în caz afirmativ, va apela funcția „GetDataFromPixels()”. Aceasta din urmă citește fiecare imagine în parte, salvând într-un fișier „*.csv” coordonatele pixelilor care alcătuiesc bucla respectivă de presiune-volum.
După determinarea coordonatelor pixelilor pentru prima imagine, se apelează funcția „CalculateValues()”, cea care calculează efectiv valorile parametrilor de ieșire, folosind formulele prezentate în capitolul III.3. După determinarea parametrilor pentru fiecare imagine în parte, funcția „ShowResults()” afișează media fiecărui parametru, calculează valoarea rigidității țesutului, a pantei, a coeficientului de determinare R-squared, a interceptului, a deviației standard, atât pentru punctul EDPVR, cât și pentru punctul ESPVR. În final, se generează un grafic. Acest grafic prezintă evoluția fiecărui parametru în parte, existând posibilitatea de a vizualiza fie doar parametrii de intrare sau de ieșire, fie câte un parametru individual.
Funcția „Export” este implementată pentru a salva atât valorile obținute, cât și graficul generat. După selectarea locației dorite pentru salvarea fișierului de export, funcția creează fișierul cu extensia „*. jpg”, generând mai apoi un mesaj de confirmare.
Fig. 3.24. Schema bloc a componentei „Average Directory P-V Loops Analyzer”
Pentru conversia imaginilor am implementat funcția „GetDataFromPixels”. Structura acestei funcții este prezentată în figura 3.25 de mai jos. Această funcție folosește
„BitmapImage”, o clasă optimizată pentru încărcarea imaginilor, după care creează un șablon. Știind că dimensiunea imaginilor este de 434×227 pixeli, se parcurge imaginea, generând perechi de coordonate pentru fiecare pixel în parte. Pentru fiecare pixel colorat pozitiv, adică diferit de alb, coordonatele acestuia sunt memorate și, folosind clasa „StreamWriter”, sunt scrise într-un fișier cu două coloane, reprezentând valorile de pe axele X și Y.
Fig. 3.25. Implementarea funcției „GetDataFromPixels”
O altă componentă prezentată este „Raw Data Analyzer”. Aceasta analizează fișiere de date brute generate de software-ul Millar, iox 2.5.1.6. După citirea valorilor din fișierul selectat de utilizator, aplicația le reprezintă un grafic. Printre parametrii reprezentați se numără presiunea minimă (mmHg), presiunea maximă (mmHg), volumul minim (μL), volumul maxim (μL), presiunea diastolică finală (mmHg), presiunea sistolică finală (mmHg), volumul de sânge raportat la ciclul cardiac (μL / beat), fracția de ejecție (%), volumul end-diastolic (μL), volumul end-sistolic (μL), capacitatea ventriculară (μL), precum și ritmul cardiac (bpm). Există posibilitatea reprezentării individuale a parametrilor determinați pe grafic, prin selectarea acestora dintr-o listă dropdown.
Structura componentei „Raw Data Analyzer” este prezentată în figura 3.26. Pentru a determina aceste valori, am creat funcțiile „OpenDataFile()” și „ReadValues()”, care vor verifica dacă fișierul de intrare respectă structura impusă, iar în caz afirmativ va citi valorile și le va memora în liste individuale, după care un mesaj de confirmare va apărea pe ecran. În final, se generează un grafic, cu ajutorul funcției „GenerateChart()”. Acest grafic prezintă evoluția fiecărui parametru în parte, existând posibilitatea de a vizualiza fie doar parametrii de intrare sau de ieșire, fie câte un parametru individual.
Funcția „Export” este implementată pentru a salva atât valorile obținute, cât și graficul generat. După selectarea locației dorite pentru salvarea fișierului de export, funcția creează fișierul cu extensia „*. jpg”, generând mai apoi un mesaj de confirmare.
Fig. 3.26. Schema bloc a componentei „Raw Data Analyzer”
Componenta pentru analiza datelor ecografice este „Echo Parameters Comparator”. Aceasta este utilă pentru compararea parametrilor, precum gradul de deplasare, viteza de deplasare, viteza de umplere a ventriculului de sânge, gradul și viteza de deformare, Shear (adică forța tangențială raportată la forța de fracțiune a sângelui într-o curgere non-Newtoniană asupra suprafeței endoteliale a ventriculului stâng) sau Shear Rate (viteza de curgere a sângelui în apropierea suprafeței endoteliale). Se pot reprezenta individual parametrii pe grafic, prin selectarea dintr-o listă dropdown. Structura acestei componente este explicată în fig. 3.27.
Funcția „OpenDataFile1()” va analiza fișierul de date ce conține parametrii de intrare într-un fișier „*.xlsx”. Aceasta verifică dacă fișierul de intrare respectă structura impusă (compus din file individuale pentru fiecare parametru), în caz afirmativ se va apela funcția „OpenSheets_File1()”, care va deschide filele fișierului de date, salvându-le în tabele de date. Structura acestei funcții este prezentată în figura 3.28 de mai jos. Funcția „ConvertSheetsToCSV()” asigură conversia fiecărei file în fișiere separate „*.csv”, după care se va genera graficul, care va prezenta evoluția fiecărui parametru în parte, existând posibilitatea de a vizualiza fie doar parametrii de intrare sau de ieșire, fie câte un parametru individual. Pașii se repetă și la al doilea fișier selectat. După generarea graficelor pentru fiecare în parte, funcția „CalculateDifferences()” determină diferențele dintre parametri și afișează rezultatele.
Fig. 3.27. Schema bloc a componentei „Echo Parameters Comparator”
Funcția „Export” este implementată pentru a salva atât valorile obținute, cât și graficele generate. După selectarea locației fișierului export, funcția creează fișierul cu extensia „*. jpg”.
Funcția „OpenSheets_File1” preia numele filelor din lista valuescombo, în care s-au adăugat după citirea în prealabil a fișierului de date. Folosind OleDbDataAdapter, care reprezintă o conexiune de bază de date, se copiază valorile într-un DataSet. După parcurgerea liniilor și rândurilor din tabela de date, acestea se reprezintă într-un grid, din care se vor adăuga mai apoi toate valorile într-o listă. Se determină valoarea medie a acestei liste, iar rezultatul se înscrie într-un fișier „*.csv”, care va fi salvat cu numele dat de denumirea filei originale din care s-au preluat datele. Astfel, se generează pentru fiecare parametru în parte câte un fișier de date ce va conține valoarea medie. Funcția „OpenSheets_File2” prezintă o funcționare identică cu funcția prezentată anterior, determinând valoarea medie pentru fiecare parametru cuprins în al doilea set de date. Prin intermediul acestor funcții, aplicația generează valorile pe care le va afișa în final.
Fig. 3.28. Implementarea funcției „OpenSheets_File1()”
III.5. Prezentarea aplicației CDAS – front-end
Splash Screen este ecranul de start al aplicației, fiind prezentat în figura 3.29. Acesta conține butoane către toate celelalte componente ale aplicației. Aceste componente sunt împărțite în două categorii. Prima categorie interpretează date generate de software-ul de achiziții de date Millar, oferind astfel analiza imaginilor ce conțin bucle de presiune-volum, analiza evoluției parametrilor cardiaci și reprezentarea acestora pe grafice. A doua categorie analizează datele obținute cu ajutorul ecografului, atât prin reprezentarea parametrilor pe grafice, cât și prin calcularea diferențelor dintre acestea și evidențierea rezultatelor obținute.
Fig. 3.29. Splash Screen CDAS
Componenta „P-V Loops Analyzer” este prezentată în figura 3.30. Aceasta este utilă pentru analiza imaginilor ce conțin buclele de presiune-volum generate de software-ul Millar, iox 2.5.1.6. Se citesc aceste imagini, după care se calculează parametrii, cum ar fi capacitatea ventriculară, efortul miocardului la trecerea sângelui (Stroke Work), volumul de sânge raportat la ciclul cardiac (Stroke Volume), fracția de ejecție, aria de presiune-volum sau elasticitatea arterială, precum și coordonatele punctelor EDPVR și ESPVR, în pixeli. Pentru fiecare dintre aceste două puncte, aplicația determină automat valorile presiunii și volumului, cu alte cuvinte determină volumul end-diastolic, volumul end-sistolic, presiunea end-diastolică și presiunea end-sistolică. Acceptă ca date de intrare fișierele cu extensii „*.jpg”, „*.jpeg” sau „*.png”.
Fereastra este alcătuită din labele, texbox-uri, și un grafic pe care se va reprezenta bucla de presiune-volum citită din fișierul selectat de utilizator.
În urma introducerii parametrilor de presiune și volum, se va converti imaginea aleasă în pixeli, se salvează coordonatele pixelilor care alcătuiesc bucla de presiune-volum, după care se efectuează calculele, folosind formulele prezentate în capitolul 3. În final, se afișează valorile parametrilor. Se determină și coordonatele punctelor EDPVR și ESPVR, respectiv valorile volumului și presiunii în aceste două puncte.
Înainte de rularea componentei, se va afișa un mesaj de interogare, prin care utilizatorul poate alege dacă dorește sau nu să reia calculele efectuate în sesiunea anterioară. Există posibilitatea de a salva rezultatele obținute, prin apăsarea butonului „Export Results”, astfel aplicația va genera o captură a stării curente a acestei componente, pe care o va salva în locația selectată de către utilizator, sub formă de imagine.
Fig. 3.30. Componenta „P-V Loops Analyzer” a aplicației CDAS
„Average P-V Loops Analyzer” este o componentă concepută pentru analiza mai multor bucle de presiune-volum, generate de software-ul Millar, iox 2.5.1.6, fiind prezentată în figura 3.31. După introducerea manuală a parametrilor de intrare, precum valorile minime și maxime ale presiunii și volumului, respectiv valoarea presiunii în care se dorește determinarea valorilor, aplicația citește imaginea aleasă de utilizator, iar după calcularea parametrilor, aceștia vor fi afișați în box-ul din partea dreaptă. Se acceptă ca fișiere de intrare cele având extensiile „*.jpg”, „*.jpeg” sau „*.png”.
După analiza a minim trei imagini, componenta va determina valorile pentru rigiditatea țesutului, panta punctului EDPVR, coeficientul de determinare r-Squared, Intercept, deviația standard, capacitatea ventriculară medie, media efortului miocardic la trecerea sângelui (Stroke Work), media volumului de sânge raportată la ciclul cardiac (Stroke Volume), media fracției de ejecție, media ariei de presiune-volum, respectiv elasticitatea arterială medie.
Înainte de rularea componentei, se va afișa un mesaj de interogare, prin care utilizatorul poate alege dacă dorește sau nu să continue calculele efectuate în sesiunea anterioară. Există și posibilitatea salvării rezultatelor obținute, prin butonul „Export Results”, care va genera o captură, salvând-o în locația selectată de utilizator, sub formă de imagine.
Fig. 3.31. Componenta „Average P-V Loops Analyzer” a aplicației CDAS
Pentru a ușura calculul parametrilor, folosind un număr mare de bucle de presiune-volum, am implementat componenta „Average P-V Loops Directory Analyzer”, prezentată în figura 3.32. Aceasta citește toate buclele aflate într-un director, citește valorile volumului și presiunii pentru fiecare buclă dintr-un fișier „.csv” și calculează parametrii, cum ar fi rigiditatea țesutului (KPa), panta punctului EDPVR, coeficientul de determinare r-Squared, intercept, deviația standard, capacitatea ventriculară pentru buclele de presiune-volum selectate (μL), media efortului miocardic la trecerea sângelui, adică Stroke Work (g*m), media volumului de sânge raportată la ciclul cardiac, adică Stroke Volume (μL/beat), aria de presiune-volum și elasticitatea arterială medie. După terminarea calculelor, aplicația va afișa valorile parametrilor, generând și un grafic pe care se va prezenta evoluția acestora, prezentat în figura 3.33. Graficul are opțiuni de vizualizare a parametrilor: fie individuală, fie cei de intrare, fie cei de ieșire.
Fig. 3.32. Componenta „Average Directory P-V Loops Analyzer” a aplicației CDAS
Fig. 3.33. Componenta „Average Directory P-V Loops Analyzer” a aplicației CDAS
Componenta „Raw Data Analyzer” analizează fișiere de date brute, generate de software-ul Millar, iox 2.5.1.6, fiind prezentată în figura 3.34. După citirea fișierului, se interpretează valorile și se reprezintă pe un grafic. Parametrii determinați de această componentă sunt presiunea minimă (mmHg), presiunea maximă (mmHg), volumul minim (μL), volumul maxim (μL), presiunea diastolică finală (mmHg), presiunea sistolică finală (mmHg), volumul de sânge raportat la ciclul cardiac, adică Stroke Volume (μL/beat), fracția de ejecție (%), capacitatea ventriculară (μL), volumul sistolic final (μL), efortul miocardului la trecerea sângelui, adică Stroke Work (g*m) , respectiv ritmul cardiac (bpm). Se acceptă ca fișiere de intrare cele cu extensia „*.csv”.
Fig. 3.34. Componenta „Raw Data Analyzer” a aplicației CDAS
Conține de asemenea un spațiu de selecție, în care se poate alege reprezentarea individuală a parametrilor pe grafic, așa cum este prezentată în figura 3.35. La selectarea unui parametru, aplicația determină valoarea minimă, valoarea maximă și cea medie a acestuia, afișând rezultatele în partea dreaptă a graficului.
Fig. 3.35. Componenta „Raw Data Analyzer” a aplicației CDAS
„Raw Data Compare Analyzer” este de fapt o extensie a componentei prezentate anterior, oferind analiza simultană a două fișiere de date brute, generate de software-ul Millar, iox 2.5.1.6. După citirea fișierelor selectate de utilizator, aplicația calculează valorile pentru fiecare set de date în parte, reprezentându-le pe câte un grafic.
Această componentă este reprezentată în figura 3.36. Parametrii determinați sunt presiunea minimă (mmHg), presiunea maximă (mmHg), volumul minim (μL), volumul maxim (μL), presiunea diastolică finală (mmHg), presiunea sistolică finală (mmHg), volumul de sânge raportat la ciclul cardiac, adică Stroke Volume (μL/beat), fracția de ejecție (%), capacitatea ventriculară (μL), volumul sistolic final (μL), efortul miocardului la trecerea sângelui (SW) (g*m) , respectiv ritmul cardiac (bpm). Se acceptă ca fișiere de intrare cele cu extensia „*.csv”.
Fig. 3.36. Componenta „Raw Data Comparator Analyzer” a aplicației CDAS
Conține de asemenea un spațiu de selecție pentru fiecare grafic în parte, în care se pot alege parametrii ce se doresc a fi reprezentați individual, așa cum este prezentată funcționarea în figura 3.37. La selectarea câte unui parametru, aplicația determină valoarea minimă, maximă și valoarea medie a parametrului ales, afișând rezultatele în zona de sub grafice.
Fig. 3.37. Componenta „Raw Data Comparator Analyzer” a aplicației CDAS
Componenta „Millar Help Tutorial” conține informații despre fiecare parametru folosit în cadrul acestei aplicații, formula matematică cu ajutorul căreia s-a determinat valoarea acestuia, precum și un tutorial de folosire a componentelor ce analizează date Millar (fig. 3.38).
Fig. 3.38. Componenta „Millar Help Tutorial” a aplicației CDAS
Pentru analiza datelor ecografice, una dintre componentele implementate este numită „Echo Parameters Calculator”. După cum îi spune și numele, aceasta analizează datele generate de ecograf. Structura acestei componente este prezentată în figura 3.39, conținând pentru fiecare parametru în parte câte un box în care se va afișa valoarea acestuia. Deoarece ecograful exportă valorile într-un fișier Excel care nu putea fi accesat în mod direct, fiind protejat, am implementat o funcție care convertește fiecare filă în parte în câte un fișier „*.csv”.
După generarea acestor fișiere de date, aplicația calculează valorile pentru fiecare parametru, iar mai apoi le va afișa și va genera un grafic care va prezenta valorile acestora. Există posibilitatea vizualizării individuale, valorile parametrilor fiind afișate și pe grafic, funcționalitate ce este prezentată în figura 3.40. Se acceptă ca fișiere de intrare cele cu extensia „*.csv”. Utilizatorul poate exporta starea componentei într-un fișier de imagine.
Această componentă determină valorile pentru următorii parametri: Displacement sau gradul de deplasare (Endo Radial, Endo Longitudinal, Epi Radial, Epi Longitudinal), Velocity sau viteza de umplere (Endo Radial, Endo Longitudinal, Epi Radial, Epi Longitudinal), Strain sau gradul de deformare (Radial, Endo Longitudinal, Epi Longitudinal), Strain Rate sau viteza de deformare (Radial, Endo Longitudinal, Epi Longitudinal), Shear, adică raportul dintre forța tangențială și forța de fracțiune a sângelui într-o curgere non-Newtoniană asupra suprafeței endoteliale a ventriculului, și Shear Rate, adică viteza de curgere a sângelui în apropierea suprafeței endoteliale.
Fig. 3.39. Componenta „Echo Parameters Calculator” a aplicației CDAS
Fig. 3.40. Componenta „Echo Parameters Calculator” a aplicației CDAS
„Echo Parameters Comparator” este de fapt o extensie a componentei prezentate anterior, oferind analiza simultană a două fișiere conținând seturi de date ecografice. Structura este prezentată în figura 3.41. După efectuarea pașilor prezentați anterior pentru fiecare fișier de date în parte, componenta va afișa valorile parametrilor și va genera câte un grafic care va prezenta seturile de valori.
Există posibilitatea vizualizării individuale a parametrilor pentru fiecare set de date, valorile acestora fiind afișate și pe grafic, funcționalitate ce este prezentată în figura 3.42. Se acceptă ca fișiere de intrare cele cu extensia „*.csv”.
Utilizatorul poate exporta starea curentă a componentei într-un fișier de imagine, reprezentând o captură de ecran. Aceasta componenta determină valorile pentru următorii parametri: Displacement sau gradul de deplasare, Velocity sau viteza de umplere, Strain sau gradul de deformare, Strain Rate sau viteza de deformare, Shear, adică raportul dintre forța tangențială și forța de fracțiune a sângelui într-o curgere non-Newtoniană asupra suprafeței endoteliale a ventriculului, și Shear Rate, adică viteza de curgere a sângelui în apropierea suprafeței endoteliale.
Componenta determină pentru gradul de deplasare valorile în endo-radial, endo-longitudinal, epi-radial și epi-longitudinal, pentru viteza de umplere în endo-radial, endo-longitudinal, epi-radial și epi-longitudinal, pentru gradul de deformare în radial, endo-longitudinal și epi-longitudinal, pentru viteza de deformare în radial, endo-longitudinal și epi-longitudinal, pentru Shear, adică raportul dintre forța tangențială și forța de fracțiune a sângelui într-o curgere non-Newtoniană asupra suprafeței endoteliale a ventriculului, respectiv pentru Shear Rate, adică viteza de curgere a sângelui în apropierea suprafeței endoteliale.
Fig. 3.41. Componenta „Echo Parameters Comparator” a aplicației CDAS
Fig. 3.42. Componenta „Echo Parameters Comparator” a aplicației CDAS
Componenta „Echo Help Tutorial” conține informații despre fiecare parametru folosit în cadrul acestei aplicații, formula matematică utilizată la calcul, precum și un tutorial al componentelor de analiză a datelor ecografice, fereastră prezentată în figurile 3.43 și 3.44.
Fig. 3.43. Componenta „Echo Help Tutorial” a aplicației CDAS
Fig. 3.44. Componenta „Echo Help Tutorial” a aplicației CDAS
Rezultate
Implementarea aplicației CDAS a fost realizată cu succes. Aceasta este capabilă să determine parametrii cardiaci, precum capacitatea ventriculară, efortul miocardului la trecerea sângelui (Stroke Work), volumul de sânge raportat la ciclul cardiac (Stroke Volume), fracția de ejecție, aria de presiune-volum, elasticitatea arterială, rigiditatea în punctul EDPVR, rigiditatea în punctul ESPVR, folosind date de intrare obținute cu ajutorul programului Millar iox 2.5.1.6, respectiv să calculeze parametrii folosind date ecografice, precum gradul de deplasare, viteza de deplasare, viteza de umplere a ventriculului de sânge, gradul și viteza de deformare, Shear (adică forța tangențială raportată la forța de fracțiune a sângelui într-o curgere non-Newtoniană asupra suprafeței endoteliale a ventriculului stâng) sau Shear Rate (viteza de curgere a sângelui în apropierea suprafeței endoteliale), prin folosirea datelor ecografice.
În cazul analizei datelor Millar, un parametru important este rigiditatea țesutului cardiac. Aceasta poate fi măsurată atât în punctul ESPVR, cât și în punctul EDPVR, fiind determinată de schimbarea presiunii la modificarea volumului ventricular, adică o indicație a "rigidității" camerei respective. Astfel, cu cât este mai mare elasticitatea, cu atât este mai rigid peretele camerei. Are unități de KPa (kilo-pascali). În cadrul acestui studiu, s-au analizat probele preluate de la doi șoareci, notați mk_040310_170310_r1 și mk_ohne_230210_100210 și s-au determinat cu ajutorul aplicației următoarele valori, prezentate în tabelul 4.1 de mai jos.
Fig. 4.1. Prezentarea rezultatelor obținute prin analiza datelor Millar
În figura 4.1, SW reprezintă efortul miocardului la trecerea sângelui (produsul de presiune al ventriculului stâng la ejecția sângelui și volumul de sânge ejectat, integrat într-o perioadă de ejecție), SV reprezintă volumul de sânge raportat la ciclul cardiac (adică volumul de sânge expulzat în timpul fiecărei perioade cardiace, dată de diferența dintre volumul de la finalul diastolei și volumul de la finalul sistolei), rigiditatea EDPVR fiind valoarea rigidității cardiace în momentul relaxării totale, iar rigiditatea ESPVR – rigiditatea în momentul activității cardiace maxime.
S-au analizat datele ecografice preluate de la doi șoareci, notați s1_09142018-153619 și s1_09302018-212011. Astfel, s-au determinat valorile descrise în tabelul 4.2 de mai jos.
Tabelul 4.2. Prezentarea rezultatelor obținute prin analiza datelor ecografice
În tabelul 4.2, Displacement reprezintă gradul de deplasare, Velocity – viteza de umplere a ventriculului, Strain – gradul de deformare, Strain Rate – viteza de deformare, Shear – raportul dintre forța tangențială și forța de fracțiune a sângelui într-o curgere non-Newtoniană asupra suprafeței endoteliale a ventriculului, iar Shear Rate – viteza de curgere a sângelui în apropierea suprafeței endoteliale.
Rezultatele obținute prin intermediul aplicației CDAS și prezentate în figurile 4.1 și 4.2 au fost confirmate prin alte modalități de măsurare.
Concluzii
Aplicația pentru analiza datelor cardiace, CDAS, este concepută pentru a simplifica determinarea parametrilor cardiaci, atât prin analiza datelor generate cu ajutorul software-ului de achiziții de date Millar, iox versiunea 2.5.1.6, cât și prin prelucrarea datelor ecografice. Prin prelucrarea valorilor obținute s-au determinat rapid o serie de parametri cardiaci, dintre aceștia cea mai reprezentativă fiind rigiditatea țesutului cardiac. Aplicația a fost implementată cu succes folosind limbajul de programare C#, fiind capabilă să analizeze într-un timp scurt atât imagini selectate de utilizator, cât și fișiere ce conțin seturi de date.
Dezvoltarea acestei aplicații a necesitat atât utilizarea cunoștințelor acumulate în anii de facultate, precum conceptele de programare orientată pe obiecte, structuri de date sau metode de calcul paralel, precum și cunoștințe teoretice de medicină cu privire la funcția cardiacă, acestea din urmă fiind necesare pentru implementarea funcțiilor de calcul a parametrilor.
Rezultatul final al aplicației CDAS s-a transpus într-un program care îndeplinește obiectivele stabilite inițial, adică procesarea rapidă a imaginilor ce conțin buclele de presiune-volum din ventriculul stâng, analiza datelor prelevate cu ajutorul aplicației Millar, analiza datelor ecografice, calculul rigidității camerei ventriculare, precum și determinarea parametrilor cardiaci folosind cele două metode de achiziții de date.
În ceea ce privește viitoarele direcții de dezvoltare a acestei aplicații, se poate implementa o componentă care să realizeze un paralelism între seturile de valori determinate cu ajutorul metodei invazive de analiză a funcției cardiace Millar, cât și a valorilor obținute prin folosirea ecografului, sau o componentă care să determine similaritățile dintre cele două tipuri de parametri calculați. De asemenea, ar fi utilă și implementarea unei interfețe mult mai interactive, prin care să se realizeze în mod automat analiza rezultatelor obținute, prin compararea acestora cu intervalul normal al parametrilor.
Implementarea aplicației a început anul trecut, de-a lungul perioadei in care am participat cu ajutorul unei burse Erasmus+ într-un program de plasament la Institutul de Cercetare Moleculară Cardiovasculară (IMCAR), în Aachen, Germania. Doresc să aduc mulțumiri deosebite doamnelor conf. dr. Elisa Liehn și cercetător dr. Mihaela Rusu, precum și coordonatorului științific al acestui proiect de diplomă, dr. ing. Ovidiu Constantin Novac, pentru suportul și sprijinul continuu acordat în implementarea cu succes a aplicației pentru analiza datelor cardiace, CDAS.
Bibliografie
[1] – Daniel Burkhoff MD PhD, Columbia University, “Mechanical properties of the heart and its interaction with the vascular system”
[2] – Pal Pacher, Takahiro Nagayama, Partha Mukhopadhyay, Sandor Batkail & David A Kass, “Measurement of cardiac function using pressure–volume conductance catheter technique in mice and rats”
[3] – C. Wu, C. Mahler, M. Feldman, University of Pittsburgh, “Assessment of ventricular performance by pressure-volume analysis the conductance catheter method”
[4] – Understanding Pressure-Volume (PV) Loop Data, Pressure-Volume Loop Studies, https://millar.com/applications/pressure-volume-loop-studies
[5] – Mouse PV Catheters, ADInstruments, https://www.adinstruments.com/products/mouse-pv-catheters
[6] – Ventricular Pressure Volume, ADInstruments, https://www.adinstruments.com/research/animal/cardiovascular/hemodynamics/ventricular-pressure-volume
[7] – Jürgen Knapp, Peter Teschendorf, Eberhard Scholz, Joachim Roewer, Nicolai Russ, Bernd W Böttiger, and Erik Popp, „Conductance Catheter Measurement and Effect of Different Anesthetics in a Rat Model of Postresuscitation Myocardial Dysfunction”
[8] – Left ventricular pressure-volume (PV) loops, http://www.treat-nmd.eu/downloads/file/sops/dmd/MDX/DMD_M.2.2.004.pdf
[9] – Jürgen Knapp, Peter Teschendorf, Eberhard Scholz, Joachim Roewer, Nicolai Russ, Bernd W Böttiger, and Erik Popp, „Computerized left ventricular pressure-volume relationships (pV-loops) using disposable angiographic tip transducer pigtail catheters”
[10] – Merry L. Lindsey, Zamaneh Kassiri, Jitka A. I. Virag, Lisandra E. de Castro Brás, and Marielle Scherrer-Crosbie, „Guidelines for measuring cardiac physiology in mice”
[11] – Dr. Arnd Heuser, „Studies of functional hemodynamics in mice and rats with Millar conductance catheters”, https://www.mdc-berlin.de/content/hemodynamic-measurements
[12] – „Pressure volume catheters”, Emka Technologies, https://www.emka.fr/product/pressure-volume-catheters/
[13] – „Research Mouse Pressure Volume Catheter”, Millar Instruments, https://millar.com/products/research/pressure-volume/pressure-volume-catheters/pvr-1045
[14] – MPVS Ultra Single Segment Pressure-Volume Unit, Millar Instruments, https://millar.com/products/research/pressure-volume/mpvs-ultra/mpvs-ultra-single-segment-pressure-volume-unit
[15] – „Pressure”, ADInstruments, https://www.adinstruments.com/signal/pressure
[16] – „Volume”, ADInstruments, https://www.adinstruments.com/signal/volume
[17] – „Complete PV Loop Analysis”, Millar Instruments, https://millar.com/products/research/pressure-volume
[18] – Francesco Antonini-Canterin, Stefano Poli, Olga Vriz, Daniela Pavan, Vitantonio Di Bello, and Gian Luigi Nicolosi, „The Ventricular-Arterial Coupling: From Basic Pathophysiology to Clinical Application in the Echocardiography Laboratory”
[19] – Edward Marcus, Damien Craig, Ira Cheifetz, Marcus Laboratories USA Newton, Ma. and Duke Children's Hospital and Medical Center Durham, North Carolina Models of Right, „Models of Right Ventricular Shape and Function”
[20] – Richard E. Klabunde, PhD, “Cardiovascular Physiology Concepts”, “Ventricular Pressure-Volume Relationship”, https://www.cvphysiology.com/Cardiac%20Function/CF024
[21] – Richard E. Klabunde, PhD, „Cardiovascular Physiology Concepts”, „Stroke Work and Cardiac Work, https://www.cvphysiology.com/Cardiac%20Function/CF019
[22] – Simioni C, Nardozza LM, Araujo Júnior E, Rolo LC, Zamith M, Caetano AC, Moron AF., „Heart stroke volume, cardiac output, and ejection fraction in 265 normal fetus in the second half of gestation assessed by 4D ultrasound using spatio-temporal image correlation”
[23] – Cristina Pislaru, MD, Theodore P. Abraham, MD, Marek Belohlavek, MD, PhD, „Strain and strain rate echocardiography”
[24] – „Programare Orientata pe Obiecte si Programare Vizuala”, https://kupdf.net/download/manual-poo-si-vizuala_58b2ef3e6454a78934b1e94e_pdf
[25] – „OleDbConnection Class”, https://docs.microsoft.com/en-us/dotnet/api/system.data.oledb.oledbconnection?view=netframework-4.8
[26] – http://csharp.net-informations.com/data-providers/csharp-oledb-connection.htm
[27] – https://www.c-sharpcorner.com/blogs/configuring-an-oledb-connection-string1
[28] – https://code-maze.com/csharp-basics-streamwriter-streamreader/
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: PROGRAMUL DE STUDIU CALCULATOARE FORMA DE ÎNVĂȚĂMÂNT LA ZI DEZVOLTAREA UNEI APLICAȚII SOFTWARE PENTRU ANALIZA DATELOR CARDIACE COORDONATOR ȘTIINȚIFIC… [303528] (ID: 303528)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
