PROGRAMUL DE STUDIU CALCULATOARE FORMA DE ÎNVĂȚĂMÂNT LA ZI DEZVOLTAREA UNEI APLICAȚII SOFTWARE PENTRU ANALIZA DATELOR CARDIACE COORDONATOR ȘTIINȚIFIC… [303527]
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. 19
Parametrii utilizați în cadrul programului………..………………………………p. 23
Prezentarea protocolului pentru prelevarea probelor……………………………p. 24
Cap. III Implementarea aplicației
Tehnologii informatice utilizate…………………………………………………p. 29
Etapele implementării aplicației…..……………………………………………p. 30
[anonimizat]….…………………………………p. 34
[anonimizat]-end……..…………………………………p. 42
[anonimizat]-end………………………………………p. 48
Cap. IV Rezultate
Prezentarea și interpretarea rezultatelor obținute..………………………………p. 56
Cap. V Concluzii
Concluzii………………………………………………………………………..p. 58
Bibliografie…………..……………………………………………………………………..p. 59
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].
AADC, sau „Aplicație pentru Analiza Datelor Cardiace”, este un program care are rolul de a [anonimizat]-[anonimizat] 2.5.1.6, cât și prin prelucrarea datelor ecografice. [anonimizat] o [anonimizat]. Aplicația a fost realizată în limbajul de programare C# [anonimizat] o funcționalitate diferită. [anonimizat].
[anonimizat]:
Capitolul I este o prezentare 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] a aplicației pentru analiza datelor cardiace, AADC.
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ă, respectiv î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 grafica 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 se numește stroke volume (SV).[1]
Conform articolului “Mechanical Properties of the Heart and its interaction with the vascular system”, î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 alcatuită 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]
Așadar, bucla ventriculară de presiune-volum afișează relația instantanee între presiunea intraventriculară și volumul în timpul ciclului cardiac. Această 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 acestuia, î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 preîncărcare ș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 stroke volume și cardiac output, 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 în timpul copilăriei. Cele mai multe modificări ale acestei relații apar însă în situațiile patologice, spre exemplu schimbările care apar cu hipertrofia, vindecarea unui infarct sau evoluția unei cardiomiopatii dilatate. Î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 determina panta EDPVR [1]
În ceea ce privește EDPVR, axa volumică pornește de la valoarea pozitivă (Vo), 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 determina pantele punctelor EDPVR si 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 Pressure-Volume [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ță dintr-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 stroke volume (SV) ș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 modele 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 programului
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 AADC [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 Pressure-Volume pentru interpretarea parametrilor. Spațiul de lucru este prezentat în figura 2.6. Millar utilizează un cateter, care este 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 cardiace s-a realizat în cadrul laboratorului 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ă pe care le-am efectuat la acest institut. Printre parametrii măsurați de aparatura Millar se numără Minimum and Maximum Pressure (mmHg), Minimum and Maximum Volume (µL), Time, Heart Rate (bpm), End-Systolic Volume (µL), End-Diastolic Volume (µL), End-Systolic Pressure (mmHg), End-Diastolic Pressure (mmHg), End-Systolic Elastance (mmHg/), Arterial Elastance (mmHg/), Cardiac Output (%), Stroke Work (mmHg/), Stroke Volume (µL/beat), Ejection Fraction (%), Preload Recruitable SW (mmHg), End-Systolic Pressure-Volume Relationship, End-Diastolic Pressure-Volume Relationship, Time Varying Max. Elastance, Maximum dP/dt (mmHg/s), Minimum dP/dt (mmHg/s), Maximum dV/dt (mmHg/s), Minimum dV/dt (mmHg/s), Pressure at dP/dt Max (mmHg/s), Pressure at dV/dt Max (mmHg/s), Volume at dP/dt Max (µL), Volume at dP/dt Min (µL), Tau-Weiss Method (msec), Tau-Glantz Method (msec), Tau-Logistic Method.
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 anesteziei. De asemenea, se aplică o bucată subțire de bandă deasupra vârfului 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 nu poate fi dreptunghiulară.[2]
Fig. 2.8. Introducerea cateterului de presiune-volum în ventriculul stâng
După fixarea cateterului, buclele de presiune-volum vor fi afișate pe ecran. Durata medie a măsurătorilor a fost de cinci minute. Fiecare buclă este reprezentată pe axe de volum și presiune. Aplicația 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 AADC pentru interpretarea datelor obținute.
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++. 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; bibliotecile utilizate în implementarea aplicațiilor, numite Framework Class Library (FCL).[24]
Un obiect OleDbConnection reprezintă o conexiune unică la o sursă de date. Cu un sistem de baze de date client / server, acesta este echivalent cu o conexiune de rețea la server. În funcție de funcționalitatea suportată de furnizorul nativ OLE DB, este posibil ca unele metode sau proprietăți ale unui obiect OleDbConnection să nu fie disponibile. Când creați o instanță a OleDbConnection, toate proprietățile sunt setate la valorile lor inițiale. Pentru o listă a acestor valori, consultați constructorul OleDbConnection. Puteți deschide mai mult de un cititor de date pe o singură OleDbConnection. Dacă furnizorul de servicii OLE DB pe care îl utilizați nu suportă mai mult de un cititor de date într-o singură conexiune, furnizorul va deschide implicit o conexiune suplimentară pentru fiecare. Dacă OleDbConnection iese din domeniul de aplicare, acesta nu este închis. Prin urmare, trebuie să închideți în mod explicit conexiunea apelând Închidere sau Distrugere sau utilizând obiectul OleDbConnection în cadrul unei instrucțiuni Utilizare.[25]
Pentru a implementa aplicații de înaltă performanță, trebuie să utilizați gruparea de conexiuni. Când utilizați furnizorul de date .NET Framework pentru OLE DB, nu trebuie să activați conexiunea de conexiune, deoarece furnizorul gestionează automat acest lucru. Pentru mai multe informații despre modul de utilizare a pooling-ului de conexiune cu furnizorul de date .NET Framework pentru OLE DB, consultați OLE DB, ODBC și Oracle Connection Pooling.[25]
Dacă OleDbException (de exemplu, un nivel de severitate SQL Server de 20 sau mai mare) este generat de metoda executând o OleDbCommand, OleDbConnection ar putea fi închis. Cu toate acestea, utilizatorul poate redeschide conexiunea și poate continua.[25]
O aplicație care creează o instanță a obiectului OleDbConnection poate solicita tuturor apelanților direcți și indirecți să aibă suficientă permisiune pentru cod prin stabilirea unor cerințe declarate sau imperative de securitate. OleDbConnection face cerințe de securitate utilizând obiectul OleDbPermission. Utilizatorii pot verifica dacă codul lor are permisiuni suficiente utilizând obiectul OleDbPermissionAttribute. Utilizatorii și administratorii pot utiliza, de asemenea, instrumentul Caspol.exe (Instrumentul de securitate a accesului la coduri) pentru a modifica politica de securitate la nivel de computer, utilizator și întreprindere. Pentru mai multe informații, consultați secțiunea Security Access Code și ADO.NET.[25]
Conexiune C # OLEDB: instanța C # OleDbConnection ia ca argument stringul de legătură și transmite valoarea către instrucțiunea Constructor. O instanță a clasei C # OleDbConnection este suportată de furnizorul de date OLEDB. Atunci când se stabilește conexiunea între aplicația C # și sursa de date specificată, comenzile SQL se execută cu ajutorul obiectului Conectare și recuperează sau manipulează datele din baza de date. Odată ce activitățile bazei de date se termină, conexiunea trebuie închisă și eliberată din resursele sursei de date. cnn.Close (); . Metoda Close () din clasa OleDbConnection este utilizată pentru a închide conexiunea bazei de date. Metoda Close închide toate tranzacțiile în așteptare și eliberează conexiunea din baza de date conectată de furnizorul de date OLEDB.[26]
Configurarea unui șir de conectare OLEDB: furnizorul de date pentru .NET Framework pentru OLE DB se conectează la o sursă de date OLE DB prin obiectul OleDbConnection. Șirul de conexiune furnizor OLE DB este specificat utilizând proprietatea ConnectionString a obiectului OleDbConnection. Această proprietate specifică toate setările necesare pentru a stabili conexiunea la sursa de date și se potrivește cu formatul de șir de conexiuni OLE DB cu o pereche adăugată de cheie furnizor-cheie care specifică furnizorul OLE DB este necesară.[27]
OLEDB Conexiune șir de cuvinte cheie: Sursa de date: numele bazei de date sau locația fizică a fișierului bazei de date; Numele fișierului: locația fizică a unui fișier care conține șirul de conexiune real; Persistă informații despre securitate: dacă este setată la true, preluarea șirului de conexiune returnează șirul de conexiune complet furnizat inițial. Dacă este setat la false, șirul de conectare va conține informațiile furnizate inițial, minus informațiile de securitate; Furnizor: driverul specific furnizorului care se utilizează pentru conectarea la magazinul de date.[27]
Clasele StreamReader și StreamWriter permit acțiunilor de citire și scriere a unui fișier. Ambele clase există în spațiul de nume System.IO, precum și multe alte clase pentru a lucra cu fișiere și directoare. Pentru a crea obiecte pentru clasele StreamReader și StreamWriter, trebuie să folosim inițializarea standard pentru tipurile de date de referință. Putem executa această inițializare în câteva moduri, dar cea mai comună este furnizarea unei adrese numai fișierului. După cum putem vedea din codul de mai sus, putem oferi calea relativă sau absolută a fișierului nostru. Dacă oferim o cale relativă (doar un nume și o extensie), Visual Studio va plasa un fișier în dosarul projectName / bin / debug.[28]
Metode StreamReader: StreamReader conține multe metode diferite pentru a lucra cu fișiere, dar vom menționa câteva dintre acestea. Metoda Read () va returna semnul următor ca număr întreg sau -1 dacă am ajuns la sfârșitul fișierului. Putem folosi conversia explicită (cast) pentru a converti acel număr întreg într-un tip de caractere. Metoda ReadLine () va returna o linie întreagă ca șir. Dacă am ajuns la sfârșitul fișierului, vom reveni la zero. Metoda ReadToEnd () returnează un întreg fișier într-un șir. Dacă nu mai este nimic de citit, va reveni un șir gol. Metoda Peek () verifică următorul caracter din fișier sau dacă nu găsește nimic pe care îl va reveni -1.[28]
Metode StreamWriter: cele două metode cele mai importante pentru clasa StreamWriter sunt Write () și WriteLine (). Cu metoda Write () scriem o linie în interiorul unui fișier, dar fără a trece la o altă linie după. Dar cu metoda WriteLine () scriem o linie în interiorul unui fișier și ne mutăm pe o altă linie. Este foarte important să apelați metoda Close (), după ce terminăm cu utilizarea obiectelor cititor sau scriitor. După cum vedem, trebuie să folosim metoda Close pentru a închide cititorul și scriitorul nostru. Dar există o modalitate chiar mai bună de a face acest lucru. Utilizând blocul de utilizare.[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 AADC 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 de Presiune-Volum End-Diastolică) și ESPVR (Relația de Presiune-Volum End-Sistolică). 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 care îndeplinea simultan următoarele condiții: în cazul punctului EDPVR – 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, 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 capacitance, stroke volume, stroke work, ejection fraction, pressure-volume area, și arterial elastance. 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 capacitance, stroke volume, stroke work, ejection fraction, pressure-volume area, arterial elastance, EDPVR Stiffness, EDPVR Intercept, EDPVR R-Squared, EDPVR Intercept, EDPVR slope, ESPVR Stiffness, ESPVR Intercept, ESPVR R-Squared, ESPVR Intercept, respectiv ESPVR slope. 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 parametrilor.
Aplicația AADC 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 AADC, direct din fișierul original Excel, însă era î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. În paralel, acestea sunt reprezentate pe un grafic, unde, de asemenea, 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 de bază a aplicației AADC este reprezentată în figura 3.1.
Fig. 3.1. Structura aplicației AADC
„P-V Loops Analyzer” este o componentă care analizează buclele de presiune-volum, generând valorile parametrilor cardiaci, precum Capacitance, Stroke Work, Stroke Volume, Ejection Fraction, Pressure-Volume Area sau Arterial Elastance. „Average P-V Loops Analyzer” determină parametrii, precum Stiffness în punctele EDPVR și ESPVR, prin analiza mai multor imagini ce conțin bucle de presiune-volum, calculând și valorile medii pentru Capacitance, Stroke Work, Stroke Volume, Ejection Fraction, Pressure-Volume Area sau Arterial Elastance. Î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 analiza 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 parametrilor din două fișiere distincte, generând grafice pentru acestea, oferind și posibilitatea de a compara valorile parametrilor calculați. În ceea ce privește analiza datelor ecografice, o componentă importantă este „Echo Parameters Calculator”, aceasta citește valorile dintr-un fișier Excel, mai apoi 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ă utilizatorului aplicației posibilitatea de a analiza simultan două seturi de date ecografice, determinând automat diferența dintre parametri, și afișând valorile calculate pe grafice individuale.
Atât componentele Millar, cât și cele pentru datele ecografice conțin câte o pagină „Help”, unde se prezintă parametrii calculați, precum și un tutorial de folosire a aplicației.
III.3. Parametrii calculați de aplicația AADC
Elastanța arterială (Ea) este definită ca raportul dintre valoarea presiunii sistolice determinate în ventriculul stâng și stroke volume (SV), formula fiind prezentata 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 elastanța arterială este mmHg/ µl. În termeni matematici,
Formula 3.2. Formula elastanței arteriale [18]
unde ESP reprezintă presiunea end-sistolică, SV reprezintă stroke volume, 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 prezentata 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 capacitance [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 stroke volume și volumul end-diastolic, formula fiind prezentata 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 0,55. Cu toate acestea, EF este de asemenea dependent de condițiile de încărcare și inferioare parametrilor hemodinamici definiți de planul PV.[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 presiune-volum end-diastolică este mmHg/µl. Panta EDPVR în orice punct de-a lungul acestei curbe este reciprocă a 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 capătul finalul diastolei ventriculare, pentru orice volum end-diastolic dat. Formula pentru determinarea punctului EDPVR este prezentata la 3.5 [20]
În termeni matematici, valoarea relației presiune-volum end-diastolice, 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 prezentata 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 prezentata 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 prezentata la punctele 3.8, 3.9, 3.10 si 3.11.
Formula 3.8. Formula Xedpvr
Formula 3.9. Formula Yedpvr
Formula 3.10. Formula pantei edpvr
Formula 3.11. Formula rigidității 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 al ventriculului stâng 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 presiune-volum end-sistolică este mmHg/ µl.
Panta ESPVR (Ees) reprezintă elastanța sistolică finală, care oferă un indice de contractilitate miocardică. ESPVR este relativ insensibil la schimbările în preload, afterload și heart rate. 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 accident vascular cerebral. ESPVR devine mai abruptă și se deplasează spre stânga, pe măsură ce crește contractilitatea. ESPVR devine mai plată și se îndreaptă spre dreapta pe măsură ce scade inotropia.[20]
În termeni matematici, valoarea relației presiune-volum end-sistolice, când valoarea presiunii este i, iar valoarea volumului este j, se calculează folosind formula prezentata la 3.12.
Formula 3.12. Formula 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 prezentata 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 prezentata 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ă pentru relația presiune-volum end-sistolică este KPa. În termeni matematici, valoarea rigidității în punctul ESPVR, când valoarea presiunii este i, iar valoarea volumului este j, se calculează folosind formulele prezentata la punctele 3.15, 3.16, 3.17 si 3.18.
Formula 3.15. Formula Xespvr
Formula 3.16. Formula Yespvr
Formula 3.17. Formula pantei espvr
Formula 3.18. Formula rigidității espvr
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, 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 corespunzătoare ESPVR, P reprezintă suma valorilor de presiune corespunzătoare ESPVR, N reprezintă numărul de puncte corespunzătoare ESPVR, V’ reprezintă suma pătratelor valorilor de volum corespunzătoare ESPVR, iar SESPVR reprezintă valoarea rigidității ventriculare.
Zona de presiune-volum (PVA) reprezintă energia mecanică totală generată de contracția ventriculară. Aceasta este egală cu suma lucrării de accident vascular cerebral (SW), cuprinsă în bucla de presiune-volum, și energia potențială elastică (PE), fiind calculata folosind formula 3.19.[21] Unitatea de măsură pentru presiunea end-sistolică este ……….. . În termeni matematici,
Formula 3.19. Formula zonei 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. Această relație este valabilă într-o varietate de condiții de încărcare și contracție.
Stroke Volume (SV) 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 stroke volume este µl. Este diferența dintre volumul diastolic final (EDV) și volumul sistolic final (ESV).[22] În termeni matematici,
Formula 3.20. Formula stroke volume [22]
unde EDV reprezintă volumul end-diastolic, iar ESV reprezintă volumul end-sistolic. Volumul de accident vascular cerebral este afectat de schimbări în preload, afterload, și contractilitate. În inimile normale, SV nu este puternic influențată de încărcarea ulterioară.
Ventricular Stroke Work (SW) este definită ca activitatea efectuată de ventriculul stâng sau drept pentru a evacua volumul de accident vascular cerebral în aorta sau artera pulmonară, fiind calculata folosind formula 3.21. Unitatea de măsură pentru stroke volume este mmHg*µl.[21] În termeni matematici,
Formula 3.21. Formula stroke work [21]
unde SV reprezintă stroke volume, Avg(P) reprezintă valoarea medie a presiunii, EDV reprezintă volumul end-diastolic, iar ESV reprezintă volumul end-sistolic.
Displacement (D) / Deplasare este măsura care definește cât de departe se mișcă un segment miocardic dintr-un punct inițial. Acest derivat parțial este un gradient de deplasare, o măsură a cât de rapid se schimbă 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.
Strains oferă informații despre deformarea particulelor de material, dar, deoarece nu cuprind traduceri și rotații, ele nu oferă informații despre locația exactă a spațiului în particule. Pentru a determina acest lucru, trebuie specificate trei componente de deplasare (în probleme bidimensionale). Matematic, aceasta este echivalentă cu a spune că nu se poate determina în mod unic deplasările din relațiile de deplasare a tensiunii.
Velocity (V) se definește prin cantitatea de mișcare normalizată la timp. Prin urmare, deplasarea obiectului este împărțită de timpul necesar pentru a face deplasarea. Prin urmare, unitatea sa este cm / s. Viteza este folosită pentru a descrie cât de repede se mișcă miocardul într-o anumită direcție.
Strain (S) / Gradul de deformare este o măsură a gradului de deformare (prelungirea sau scurtarea țesutului) pe care inima suferă în timpul ciclului cardiac, în raport cu forma sa inițială. Deformarea apare atunci când diferite părți ale peretelui inimii nu se mișcă cu aceeași viteză pe tot parcursul ciclului cardiac.[23] În termeni matematici, strain se calculeaza folosind formula 3.22.
Formula 3.22. Formula strain [23]
unde S este tulpina longitudinală, ΔL este schimbarea absolută a lungimii, L_0 este lungimea liniei de bază (la diastolul final / valul R), iar ΔV este gradientul de viteză din segment.
Strain Rate (SR) / Rata de tensiune/deformare reprezintă măsurarea tensiunii pe unitatea de timp sau viteza la care are loc deformarea.[23] În termeni matematici, strain rate se calculeaza folosind formula 3.23.
Formula 3.23. Formula strain rate [23]
unde S este tulpina longitudinală, ΔL este schimbarea absolută a lungimii, L_0 este lungimea liniei de bază (la diastolul final / valul R), iar ΔV este gradientul de viteză din segment.
III.4. Prezentarea aplicației AADC – back-end
Aplicația AADC 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 (KPa), panta, R-squared, intercept, deviația standard, Capacitatea medie (μL), stroke work medie (g*m), stroke volume medie (μL/bate), pressure-volum area medie si 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 valorii 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, a pantei, a 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 aplicației „Average Directory P-V Loops Analyzer”
Pentru conversia imaginilor am implementat la 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 volum al volumului (μL / bate), fracția de ejecție (%), volumul de volum al volumului (μL), volumul sistolic final (μL), capacitatea (μL) , Ritm 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 a două fișiere ce conțin seturi de parametri, precum Displacement, Velocity, Strain, Strain Rate, Shear sau Shear Rate. Există posibilitatea reprezentării individuale a parametrilor determinați pe grafic, prin selectarea acestora dintr-o listă dropdown. Structura „Echo Parameters Comparator” este explicată în figura 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, funcția „CalculateDifferences()” determină diferențele dintre parametri și afișează rezultatele.
Funcția „Export” este implementată pentru a salva atât valorile obținute, cât și graficele generate. 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.27. Schema bloc a componentei „Echo Parameters Comparator”
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 AADC – 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 de imagini 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 AADC
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 Capacitance, Stroke Work, Stroke Volume, Ejection Fraction, Pressure-Volume Area sau Arterial Elastance, precum si coordonatele punctelor EDPVR si ESPVR, in pixeli. Pentru fiecare dintre aceste doua puncte, aplicatia determina automat valorile presiunii si volumului, cu alte cuvinte determina volumul end-diastolic, volumul end-sistolic, presiunea end-diastolica si presiunea end-sistolica. 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, iar în partea dreaptă se va reprezenta imaginea inițială care a fost selectată de către utilizator pentru a fi analizată.
Î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 AADC
„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, acestea 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 Stiffness, Slope, R-Squared, Intercept, STDEV, Average Capacitance, Average Stroke Work, Average Stroke Volume, Average Ejection Fraction, Average P-V Area, respectiv Average Arterial Elastance.
Î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 AADC
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 (KPa), panta, R-squared, interceptarea, deviația standard, Capacitatea pentru buclele volumice de presiune selectate (μL), mersul mediu de lucru pentru buclele volumice de presiune selectate (g * m), volumul mediu al volumului pentru buclele de presiune selectate (μL / bate), presiunea – volumul buclele și elasticitatea arterială medie. Se acceptă ca fișiere de intrare pentru imagini cu extensiile „*.jpg”, „*.jpeg” sau „*.png”, iar pentru fișierul de date extensia „*.csv”.
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. Acest grafic are mai multe 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 AADC
Fig. 3.33. Componenta „Average Directory P-V Loops Analyzer” a aplicației AADC
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 volum al volumului (μL / bate), fracția de ejecție (%), volumul de volum al volumului (μL), volumul sistolic final (μL), capacitatea (μL) , Ritm cardiac (bpm). Se acceptă ca fișiere de intrare cele cu extensia „*.csv”.
Fig. 3.34. Componenta „Raw Data Analyzer” a aplicației AADC
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 acestui parametru, afișând rezultatele în partea dreaptă a graficului.
Fig. 3.35. Componenta „Raw Data Analyzer” a aplicației AADC
„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 volum al volumului (μL / bate), fracția de ejecție (%), volumul de volum al volumului (μL), volumul sistolic final (μL), capacitatea (μL) , Ritm cardiac (bpm). Se acceptă ca fișiere de intrare cele cu extensia „*.csv”.
Fig. 3.36. Componenta „Raw Data Comparator Analyzer” a aplicației AADC
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 AADC
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 AADC
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 curentă a componentei într-un fișier de imagine, reprezentând o captură de ecran.
Această componentă determină valorile pentru următorii parametri: Displacement (Endo Radial, Endo Longitudinal, Epi Radial, Epi Longitudinal), Velocity (Endo Radial, Endo Longitudinal, Epi Radial, Epi Longitudinal), Strain (Radial, Endo Longitudinal, Epi Longitudinal), Strain Rate (Radial, Endo Longitudinal, Epi Longitudinal), Shear și Shear Rate.
Fig. 3.39. Componenta „Echo Parameters Calculator” a aplicației AADC
Fig. 3.40. Componenta „Echo Parameters Calculator” a aplicației AADC
„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, Velocity, Strain, Strain Rate, Shear și Shear Rate.
Fig. 3.41. Componenta „Echo Parameters Comparator” a aplicației AADC
Fig. 3.42. Componenta „Echo Parameters Comparator” a aplicației AADC
Componenta „Echo 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 scurt tutorial de folosire a fiecărei dintre componentele implementate pentru analiza datelor ecografice. Această fereastră de ajutor este prezentată în figura 3.43.
Fig. 3.43. Componenta „Echo Help Tutorial” a aplicației AADC
Descriere componente + buton click
Fig. 3.44. Componenta „Echo Help Tutorial” a aplicației AADC
Rezultate
Implementarea aplicației AADC a fost realizată cu succes. Aceasta este capabilă să determine parametrii cardiaci, precum Capacitance, Stroke Work, Stroke Volume, Ejection Fraction, Pressure-Value Area, Arterial Elastance, EDPVR Stiffness și ESPVR Stiffness, folosind date de intrare obținute cu ajutorul programului Millar iox 2.5.1.6, respectiv să calculeze parametrii, precum Displacement, Velocity, Strain, Strain Rate, Shear și Shear Rate, prin folosirea datelor ecografice.
În cazul analizei datelor Millar, un parametru important este stiffness. 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 elastanța, 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ă stroke work (descriere), SV reprezintă stroke volume (adică cantitatea de sange expulzată în timpul fiecărui ciclu cardiac, dată de diferența dintre volumul de la finalul diastolei și volumul de la finalul sistolei), EF reprezintă fracția de ejecție (indicele de contractilitate, însă este influențată de condițiile de încărcare a camerelor), PVA reprezintă pressure-volume area (), Ea reprezintă arterial elastance, EDPVR Stiffness fiind valoarea rigidității cardiace în momentul relaxării totale, adică la finalul diastolei, iar ESPVR Stiffness – valoarea rigidității în momentul activității cardiace maxime, adică la finalul sistolei. Rigiditatea cardiacă este cea care influențează în mod direct toți ceilalți parametri, precum fracția de ejecție, aceasta fiind dată de raportul dintre stroke volume și volumul de la finalul diastolei.
În ceea ce privește datele ecografice, s-au analizat datele preluate de la doi șoareci, notați s1_09142018-153619 și s1_09302018-212011. Astfel, s-au determinat cu ajutorul aplicației următoarele valori, descrise în tabelul 4.2 de mai jos.
Fig. 4.2. Prezentarea rezultatelor obținute prin analiza datelor ecografice
Rezultatele obținute prin intermediul aplicației AADC și prezentate în figurile 4.1 și 4.2 au fost confirmate prin alte modalități de măsurare.
Concluzii
Aplicatia pentru analiza datelor cardiace, AADC, este conceputa pentru a simplifica determinarea parametrilor cardiaci, atat prin analiza datelor generate cu ajutorul software-ului de achizitie Millar, iox versiunea 2.5.1.6, cât și prin prelucrarea datelor ecografice. Prin prelucrarea valorilor obtinute se pot determina usor si repede o serie de parametri cardiaci, dintre aceștia cea mai reprezentativă fiind rigiditatea ventriculară. Aplicația a fost implementata cu succes folosind limbajul de programare C#, fiind capabila sa analizeze intr-un timp scurt atat imagini selectate de utilizator, cat si fisiere ce contin seturi de date.
Dezvoltarea acestei aplicatii a necesitat atat utilizarea cunoștințelor acumulate în anii de facultate, precum conceptele de programare orientata pe obiecte, structuri de date sau metode de calcul paralel, precum si cunoștințe teoretice cu privire la functia cardiaca, acestea din urma fiind necesare pentru implementarea functiilor de calcul a valorilor.
Rezultatul final al aplicatiei AADC s-a transpus într-un program care îndeplinește obiectivele stabilite inițial, cum ar fi procesarea rapida a imaginilor ce contin buclele de presiune-volum din ventriculul stang, analiza datelor prelevate cu ajutorul aplicatiei Millar, analiza datelor ecografice, calculul rigiditatii camerei ventriculare, determinarea parametrilor cardiaci folosind cele doua metode de achizitii de date.
In ceea ce priveste viitoarele directii de dezvoltare a acestei aplicatii, se poate implementa o componenta care sa realizeze un paralelism intre seturile de valori determinate cu ajutorul metodei invazive de analiza a functiei cardiace Millar, cat si a valorilor obtinute prin folosirea ecografului, sau o componenta care sa determine similaritatile dintre cele doua tipuri de parametrii calculati. De asemenea, ar fi utila si implementarea unei interfete mult mai interactive, prin care sa se realizeze in mod automat analiza rezultatelor obtinute, prin compararea acestora cu intervalul normal al parametrilor.
Implementarea aplicatiei 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 si coordonatorului stiintific al acestui proiect de diploma, dr. ing. Ovidiu Constantin Novac, pentru suportul și sprijinul continuu acordat in implementarea cu succes a aplicației pentru analiza datelor cardiace, AADC.
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… [303527] (ID: 303527)
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.
