Limbajul Labview
Introducere
Necesitatea înțelegerii fiziologiei umane a dus la construția unei baze de date precum Physionet, bază de date deținută de NIH National Center for Research Resorces. Aceasta a devenit în scurt timp o locație principală de mare interes în reprezentarea celor peste 50 tipuri de semnale fiziologice preluate, cât și software adiacent acestora. Având ca motivație principală aducerea de date de interes și aplicații de bază, în ultimii 16 ani cercetătorii din acest domeniu au avut o dorință de a reduce configurația greu de înteles din baza de date. Combinând acest acces la date cu munca lor, atât studenți cât și cercetători au reușit să ofere suport în minimizarea erorilor, dar și în proiecte publicate, existând un număr de peste 650 documente publicate până în prezent. Astfel, evoluția și îmbunătățirea telemedicinei are radacini în suportul dat de astfel de aplicații.
Diferite aplicații apărute în variantă beta sau în variantă comercială oferă lucrul cu aceste baze de date, dificultăți apărând în standardizarea interfețelor. Astfel spus, ele sunt destinate numai unui singur tip de semnal și permit anumite funcții prestabilite. Există la ora actuală aplicații care pot lucra cu semnalul ECG, EMG, EEG, sau cu secvențe genetice, fiecare având o anumită interfață și un anumit set de parametri. Mai mult decât atât, interfețele nu sunt standardizate la un anumit număr de butoane, ci implică și construcția de cod în interiorul programului. Acest lucru se datorează existenței aplicațiilor open source în ideea implicării comunității și găsirii unor soluții cât mai optime. Totuși, accesul persoanelor nesupervizate în domeniul ingineriei, cum ar fi personal medical sau utilizatori diverși, nu ar fi posibilă.
Scopul acestui proiect este altfel studiul și obtinerea unei interfețe care ar putea oferi specialiștilor medicali oportunitatea de a accesa în timp real informația necesară. Modelul implementat trebuie să conțină elemente grafice simple, funcții ușor de înțeles, intuitive, dar mai ales o acoperire a tuturor datelor din baza de date, de la semnale propriu-zise la adnotari adiacente. Proiectarea este făcută utilizând mediul de lucru LabVIEW și urmărește tocmai aceste elemente menționate, datorită necesității existenței unei interfețe prietenoase care să înglobeze toate datele necesare. În acest mod, neajunsurile date de imposibilitatea accesării unui public larg ar putea fi diminuate, iar caștigul major ar fi implicarea medicilor în popularea bazelor de date, cât și adăugarea de noi date medicale și comentarii ale diferitelor semnale. Se poate discuta despre emergența domeniului medical și ingineresc prin utilizarea unei interfețe pe post de canal de comunicare.
În această lucrare se va discuta despre analiza sistemelor actuale, neajunsurile lor și găsirea unor soluții rapide și de interes, cât și implementarea propriu-zisa a interfeței de preluare a datelor din Physionet.
Capitolul 1 – Importanța bazelor de date și a aplicațiilor de extragere a informației
1.1. Noțiuni generale despre bazele de date medicale și aplicații de prelucrare a acestora
Bazele de date au devenit un domeniu de aplicație modern în ultimii ani, în special dacă ne referim la stocarea imaginilor medicale și la sisteme inteligente de predicție a diagnosticului. Telemedicina este un domeniu care a evoluat odată cu dezvoltarea acestor baze de date, aducând avantaje esențiale ratei de supraviețuire prin tratamentul aplicat la distanță sau în situații neprevăzute.
Din moment ce consultațiile la distanță au devenit o practică de rutină, este important ca datele supuse spre discuție cum ar fi electrocardiograme sau investigații imagistice să fie păstrate corespunzator și supuse compresiei cu erori minime. [1] Imagini ale leziunilor pielii, imagini obținute prin ultrasunete sau cu raze X trebuie să păstreze numărul de culori și calitatea acestora, fără a se introduce zgomot adițional. Cheia succesului în telemedicină presupune astfel acceptarea unui format electronic accesibil pacienților, fizicienilor, cadrului medical și a tehnicienilor. [10]
În esență, problematica bazelor de date are direcții precum prelucrarea cât mai eficientă a datelor și un design care să permită personalului medical o utilizare ușoară. Desigur, sistemele integrate diferă și au un comportament diferit, însă în esență tendința sau dorința inginerilor ar fi de standardizare a programelor de prelucrare a datelor medicale. [11]
Studiile implică atât domeniul medical cât și cel de inginerie, depinzând masiv de cantitatea datelor medicale. Astfel, se poate preconiza de exemplu că un procent de 82% din fișele medicale din Taiwan au adoptat modelul electronic. Peste 200 articole din domeniul știintific au abordat tematici de concept, design sau integrare. Institutul Național de Sănătate din Taiwan prezintă aplicarea intensă a cunoștințelor din domeniul cercetării tocmai pe aceste tematici. Se accentuează astfel importanța gestionării datelor clinice în alte țări. [12]
Sistemul asigurărilor de sănătate din Franța au organizat și ei o bază de date în cadrul sistemului național de informare a afecțiunilor care acoperă populația întregii țări (aproximativ 65 milioane locuitori). Pentru a facilita studiile, anumite secvențe au putut fi prelucrate, ducând la o îmbunătățire continuă. [13]
Desigur, odată cu apariția acestor baze de date, un interes crescut a fost pentru a estima costurile erorilor medicale din perspectiva instituțiilor de sănătate. Au fost estimate aproximativ 161.655 erori medicale în 2008, respectiv 170.201 în 2009, așadar cu un trend crescător. Perspectivele începând din 2010 au fost de prevenire a acestor erori, fiind investigate sume mari în aceste proiecte. Desigur, pe lângă repercursiunile asupra pacienților, erorile scad și profitul spitalului. Tocmai de aceea s-a dorit implementarea de proceduri care ar putea reduce frecvența de apariție a acestora. [14]
În primul rând, se discută tot mai mult despre standardizarea și integrarea colecțiilor de date din diferite aplicații într-o singură bază de date. Un sistem electronic de date medicale poate fi ilustrat ca o asociere a unor aplicații care ar lega date precum nume, sex, data nașterii, stare civilă în baza de date a pacientului. Ar mai exista și partea în care se discută despre activități sociale care ar putea influența starea pacientului (alcool, fumat). [15]
În ultimul deceniu, managementul imaginilor medicale ca parte a unor baze de date au utilizat reprezentări diferite. Accesarea și găsirea acestor imagini se poate face prin găsirea unor caracteristici similare, spre exemplu. Practic se poate discuta despre două mari direcții și anume utilizarea unor atribute alfa-numerice pentru a descrie conținutul, fiind făcut sub asistență umană sau reprezentarea funcție de context cum ar fi culoare, textură sau formă. [16] Alegerea metodei potrivite în gestionarea bazelor de date este crucială în vederea obținerii unei aplicații medicale eficiente. Metoda va depinde funcție de tipul de imagine și zona de studiat (exemplu: mamografii digitale) sau a modul de preluare (exemplu: imagini MRI). [17] Metodele bazate pe conținut au devenit un instrument eficient de interogare a imaginilor. Ideea de bază este să reprezentăm o imagine ca un vector de trăsături pentru a putea măsura similitudinea între imagini prin distanța între trăsăturile alese. Găsirea trăsăturilor și reprezentarea corectă a acestora este un alt aspect important al acestei metode. [18]
Pe lângă aceste metode, este necesară existența unui sistem de suport care să poată lua decizia, având capacitatea de a susține procesul clinic și utilizarea cunoștințelor, de la diagnostic la investigații sau tratamente aplicate pe termen lung. [19] Mai mult decât atât, odată cu gestionarea acestor imagini medicale se pune problema profesionalismului și a protecției datelor. Cu cât accesul la date se mărește, cu atât se pune problema compromisului securității. Datorită unor legislații și din punct de vedere etic, există standarde special integrate pentru protecție și adăugarea unor watermarkuri imperceptibile, care nu ar modifica informația. Create inițial pentru a oferi protecție copyright a conținutului multimedia, watermarkul a fost cu succes aplicat domeniului de healthcare. [20] În prezent există un sitem de informații web aplicate managementului imaginii, utilizat în procesarea datelor neuroștiințelor sau clinicienilor. Acesta este aflat în prezent în Spania, în centre de cercetare. MEDIMAN este baza de date utilizată în cadrul acestui proiect. [21]
Creșterea utilizării computerelor conduce la o explozie a informațiilor. Tocmai de aceea, un subiect important este minimizarea conținutului informatic. Datele pot fi utilizate, ascunse și recuperate. Există astfel o necesitate a existenței unui mod automatic de găsire a datelor. Bazele de date pot fi accesate și categorisite funcție de pattern, prin diferiți algoritmi. Termenul de machine learning este cea mai noua descoperire, aceasta făcând referință la un proces de învățare și adaptare cel mai frecvent prin algoritmi genetici. [22] Principial, algoritmii utilizați în acest proces se numesc algoritmi data mining (DM), succesul depinzând de minimizarea și luarea unor decizii adecvate, fără pierderea informațiilor utile. Succesul acestor algoritmi este dat desigur de evoluția masivă a domeniului inteligenței artificiale, cât și a puterii mari de calcul. [23][24] De interes ar fi categorisirea informațiilor, preprocesarea acestora, stocarea și reconstrucția informației stocate, lucru ce se poate utiliza relativ stabil cu algoritmi de tip fuzzy. [25]
În alte cuvinte, există un interes în stocarea unui set de date multidimensional, cu trăsături complexe spațiale. S-au propus algoritmi de clustering pentru gruparea datelor corespunzătoare, de exemplu a datelor medicale despre cancerul de pancreas, împreună cu datele pacientului. [26][27] Aceste metode de clustering pot conduce la stabilirea unui trend, gruparea datelor, predincție și istoric de boală, sintetizarea datelor în clustere de interes. [28][29][30]
Toate acestea vin odată cu posibilitatea transmiterii datelor la distanță, în interiorul spitatului sau către alte unități medicale. De exemplu, sisteme precum AcqKnowledge vin ca un suport al sistemului de achiziție Biopac, reprezentând un program interactiv și simplu de utilizat atât pentru monitorizare, cât și stocare și procesare. Odată deschis, programul va arăta semnalul împreună cu butoane de afișare/ascundere a datelor, prelucrări și calcule aferente. [31]
Figura 1: Model de interfață Acqknowledge
Putem afirma despre interfața prezentată în figura de mai sus că nu respectă tipologia unui model simplu, întrucât un medic nu ar putea cunoaște semnificația datelor matematice, a calculelor de fecvențe și funcții diferite. Chiar și așa, putem afirma că există elemente care se potrivesc necesităților, cum ar fi afișarea, calculul BPM din ECG, etc.
O altă aplicație ar putea fi legată de extragerea analizelor genetice. Analizele experimentale bazate pe expresia genetică se pot concentra pe un subset de gene relevante, sau se pot analiza sute de gene pentru a obține o imagine globală asupra funcției celulei. [34]
Instituții precum Illumina oferă metode de detecție a acestor gene, prin secvențiere de tip mRNA sau secvențiere RNA de interes, concentrată asupra unor anumite gene țintă. Analize computaționale asupra genelor sunt oferite și de ZENONBio, unde se introduce și ideea de identificare a unor markeri, utilă în potențialele terapii. [32][33]
Bioinformatica este astfel o disciplină complexă, aflată la interfața între biologie, informatică și tehnologia informației. Această disciplină a apărut ca o soluție de analiză și managementul datelor biologice care s-au acumulat într-un ritm accelerat mai ales după demararea proiectelor de secvențiere genomică la virusuri (HBV, HIV-1), bacterii (E.Coli, Helicobacter pylori), eucariote inferioare și superioare. Practic, bioinformatica se referă la permiterea înregistrării, căutării, analizei secvențelor de acizi nucleici și proteine, adnotarea datelor, simularea unor procese biologice, etc.
Bazele de date sunt elemente cheie, fiind realizate pentru stocare și inventariare de secvențe (genomice, ARN, peptide), hărți genetice și date referitoare la variabilitatea genetică. Baze de date mari precum NCBI oferă la ora actuală suport informațional și date preluate prin diferite tehologii, astfel încât acestea pot fi prelucrate și analizate. Alte baze de date cunoscute sunt: MedlinePlus, Medline/PubMed, ExtrezGene, OMIM. [35]
Exemple concrete ar fi programe precum Bioedit, GENtle, PerlPrimer, Unipro UGENE.
Figura 2 – Model de interfață PerlPrimer
PerlPrimer este o aplicație simplă, scrisă în limbajul Perl, construită pentru a putea construi aplicații standard PCR sau real-time PCR, respectiv să reconstruiască secvențe preluate din baze de date. Realizează toate acestea automat, incluzand și opțiunea de BLAST search direct din program, sau dintr-un server local. Interfața este destul de simplă, însă cuprinde și parametri mai greu de stabilit pentru nespecialiști în domeniul bioinformaticii. [36][37]
Figura 3 – Model de interfață GENtle
GENtle este un alt program în variantă beta, utilizat de această dată pentru editarea amino acizilor și a AND-ului, managementul bazelor de date, maparea plasmidelor, aliamentul sau importarea secvențelor. Fiind o variantă open source, permite chiar și accesul la cod în ideea aducerii de îmbunătățiri din partea utilizatorilor. Și de această dată, dicutăm mai mult despre o aplicație destinată inginerilor și nu publicului nesupervizat. [38]
Figura 4 – Model de interfață UGENE
UGENE este o aplicație îmbunătățită, valabilă online împreună cu un ghid de utilizare. Funcționează în varianta desktop la fel ca celelalte aplicații mentionate mai sus, fiind scris în limbaj C++ și iesit pe piață în martie 2015. Prezintă o variantă stabilă, simplă, prietenoasă, însă și de această dată putem găsi neajunsuri în găsirea rapidă a funcțiilor și butoanelor de interes. [39][40]
Figura 5 – Model de interfață Bioedit
O interfață ceva mai prietenoasă o prezintă Bioedit, utilizat pentru manipularea secvențelor genetice utilizând funcții simple, de bază. Totuși, este un program aflat în stadiul de testări, așadar nici în acest caz nu se satisfac dorințele unui posibil utilizator neautorizat în domeniul ingineriei. [41]
În concluzie, suportul tehnologic este esențial atât în stocarea, cât și utilizarea bazelor de date. Problematica rămâne integrarea și standardizarea acestora în unitățile medicale. Există la ora actuală modele/prototipuri ale unor instrumente minimizate care reprezintă aplicații computaționale medicale, incluzând interacțiuni între medicamente, protocoale în clinică și de practică, etc.
1.2. Exemple de baze de date și comparație între acestea
Odată cu înțelegerea necesității bazelor de date, se pune problema gestionării tuturor informațiilor medicale preluate. În acest scop, se pot compara diferite baze de date care oferă posibilitatea accesării datelor de către un public mai larg.
ECG Web Database este o bază de date online creată în special pentru studenți și profesori, în cadrul Universităii Medicale Nordwestern și Academiei de Tehnologie din cadrul aceleiași școli. Ea prezintă o colecție de semnale ECG și interpretările acestora, în scop didactic.
Figura 6 – Căutare în cadrul ECG Web Database
Totuși, aceste date se prezintă in format tip imagine, reprezentând scanări ale datelor medicale preluate. Astfel, ele nu sunt necesare scopul propus, neputând fi integrate sub forma de informație utilă pentru prelucrări automate. [94]
Figura 7 – Analize din ECG Web Database
O altă bază de date ECG este o inițiativă a rezidenților de cardiologie din Olanda pentru a oferi soluții de educație în cardiologie atât pentru rezidenți, cât și cardiologi. Aceasta se prezintă în forma unei pagini web interactive, împreună cu suportul medical necesar. Și de această data, datele sunt prezente în format tip imagine. [95]
Figura 8 – Date preluate din ECGDatabase
O alta bază ECG este deținută de câțiva medici australieni și asistente medicale care explorează lumea în schimbarea de eLearning și medicină de urgență. Echipa este tânără și deschisă pentru schimbul de informații. Se observă astfel dorința medicilor de a integra datele medicale, cât și necesitatea suportului informatic din partea inginerilor. [96]
Figura 9 – Date medicale din Life in the Fast Lane
Și de această dată, medicii prezintă datele sub formă de imagini, neputând permite inginerului prelucrarea datelor.
Figura 10 – Prezentare date sub formă de imagini
O altă bază disponibilă online aparține lui Dean Jenkins și Stephen Gerred, inființată încă din anul 1995. Datele sunt și în acest caz publicate sub formă de imagini, existând exemple diferite funcție de afecțiunile regăsite. [97]
Figura 11 – Prezentare ECG din librărie
Problema acestor date este în principal formatul în care se regăsesc, nepermițând prelucrări ulterioare. Singurul aspect despre care se poate discuta în acest caz este depozitarea acestora în urma unei categorisiri manuale. Se pune problema intervenției bioinginerului, pentru preluarea și salvarea datelor de interes care ar putea acoperi aceste neajunsuri.
Un alt aspect important este necesitatea prezentării datelor funcție de diferite categorii: vârstă, sex, id pacient sau data, informații utile în cazul în care am dori compararea datelor după anumite criterii, cât si căutarea eficientă în baza de date.
O astfel de aplicație este oferită de NORAV ECG Management System (NEMS), care permite gestionarea studiilor pe pacienți, o interfață ușor de implementat în sistemele din spitale, compararea datelor si disponibilatea accesării utilizând SQL pentru organizații mari sau accessul pentru instituțiile mai puțin solicitante. [98]
Figura 12 – Interfață NORAV ECG Management System [98]
În concluzie, îmbunătațirile ce trebuiesc aduse acestor baze de date sunt strâns legate de posibilitatea limbajelor actuale de interogare și prelucrare de a-și atinge scopul propus. Acest lucru presupune găsirea informației în format util, cât și permiterea căutărilor în date indexate după diferite informații oferite.
1.3. Physionet și aplicații actuale în pagină web
Physionet este o colecție web de semnale înregistrate (Physiobank) și software compatibil acestora (PhysioToolkit). O mai bună înțelegere a fiziologiei și patologiei umane este reflectată în o posibilă creștere a calității vieții, dar și în aplicațiile dezvoltate pentru diagnostic și tratament. Legat de scop, cel mai important obiectiv a fost posibilitatea de a oferi o varietate de parametri și date care ar putea oferi comunității beneficii prin organizarea bazelor de date, cât mai calitativ în categorii principale. [2][3][4]
Figura 13 – Physionet – Pagină Principală
Dacă extindem această idee la software open source, resurse masive din online organizate în baze de date ar putea să reprezinte fundația pentru noi proiecte, îmbunătățind nu numai datele publicate, cât și rezultatele din cercetare prin reducerea problemelor apărute după preluare. Studiile și rezultatele în domeniul computațional duc spre o viitoare îmbunătățire a algoritmilor ce vin în suportul instrumental, cât și de design și abatare de la problema efortului preluării datelor. Chiar dacă progresul dezvoltării este vizibil și interesul în extragerea informației din semnale fiziologice reprezintă un scop principal, există încă multe dificultăți în modalitatea de distribuire a datelor. [5][6]
Figura 14 – PhysioToolkit – Exemple de funcții de preluat
Afișarea semnalului împreună cu adnotările din baza de date a fost principala motivație în proiectele din ultimii ani, interesul în dezvoltarea unor aplicații care ar putea reuși acest lucru crescând. În același timp, nevoia clinicilor și a personalului medical de a accesa platforma și date într-un mod simplu crește. Aceasta a dus și la dezvoltarea de aplicații web. [7]
Software open sorce precum LightWAVE oferă utilizatorilor posibilitatea vizualizării diferitor semnale împreună cu adnotari. Totuși, judecând după necesitatea de simplitate a personalului medical și după funcțiile oferite, se poate concluziona că programul nu satisface necesitățile menționate. [8]
Figura 15 – Alegerea bazei de date pe care se lucrează
În primă fază, este necesară alegerea bazei de date pe care se lucrează. O primă observație ar fi existența tuturor datelor la comun sau altfel spus, lipsa unor categorii bine prestabilite a datelor. O posibilă organizare ar fi funcție de tipul de semnal preluat și mai apoi funcție de parametri dependenți de acesta. [42]
Figura 16 – Vizualizarea semnalului în LightWAVE
Vizualizarea se face corespunzător de această dată, chiar dacă pot exista confuzii legate de tipul de semnal vizualizat. Se poate propune o interfață la fel de simplă, însă cu explicații mult mai clare.
Figura 17 – Vizualizare date în tabelă
În final se pot vizualiza datele în tabelă, împreună cu alte informații. Se poate observa existența unei platforme nu foarte simple, cu date dificil de interpretat. Setările disponibile permit totuși trecerea la o anumită secțiune a semnalului, respectiv modalitatea de editare a tipului de vizualizare prin utilizarea mouse-ului.
Organizarea paginii poate fi greu de înțeles pentru o persoană neautorizată, de exemplu un medic, acesta dorind o accesare rapidă și vizualizarea datelor necesare în timp real.
Figura 18 – Setări posibile în LightWAVE
Figura 19 – Secțiune cu date ajutătoare de utilizare în LightWAVE
În final, pagina de Help este destul de bine organizată, existând împărțirea pe secțiuni de interes cu ar fi: date generale, date de început, modalități de editare și vizualizare, etc.
Desigur, pe lângă LightWAVE, secțiunea de funcții prezintă și alte variante de prelucrare a datelor, așa cum am menționat mai sus.
Figura 20 – Baze de date
Mai mult decât atât, soluții de implementare în Matlab și Octave ar putea permite scrierea, citirea și procesarea datelor din baza de date, nefiind însă compatibile decât cu specialiști din domeniu. [9]
În concluzie, putem discuta despre funcții utilizabile în mediul ingineresc și platforme greu accesibile publicului larg, împreună cu date necategorisite corespunzator și dificil de accesat în timp real.
1.5. Motivația implementării modelului propus de interfața pentru Physionet
Printre cele mai valoroase date existente în baza de date, menționez semnalele EEG, ECG, ECG fetal, imagini MRI, etc. Cuprinderea unei palete atât de largi de informații necesită o interfață prietenoasă pentru accesarea lor în timp real. Mai mult decât atât, fiecare tip de achiziție, fie ea de tip semnal sau imagini, vine cu propriile informații și propriile posibile aplicații. Tocmai de aceea, cunoașterea acestor detalii este importantă în modalitatea de afișare.
Figura 21 – Interfața PhysioBank / Categorii principale de date
Practic, pentru cunoașterea proceselor complexe ce se desfasoară în organismul viu este necesar să se detecteze și măsoare diferiți parametrii fizici și chimici, cât și modul în care aceștia se modifică în timp. Așa cum este bine cunoscut, manifestările vitale ale organismului generează și fenomene electrice ce proiectează diferite potențiale măsurabile, variabile în timp. Ele reprezintă semnale eletrice care informează despre evenimente bioelectrice, numite și potențiale electrice.
Motivația provine din necesitatea înțelegerii și categorisirii corecte a semnalelor culese, de exemplu în cadrul semnalul provenit de la inimă, cât și a adnotărilor asociate anumitor afecțiuni.
Figura 22 – Adnotări în baza de date pentru semnalele ECG
1.5. Alegerea unei platforme utilizabile in timp real si propunerea unui model
Odată cu evoluția bazelor de date, interesul a căzut tot mai mult pe interfața cu utilizatorul și în consecință pe integrarea conținutului informatic. Se discută din ce în ce mai mult despre criteriile de evaluare și îmbunătățire a conținutului, ajungându-se până la crearea de noi discipline care să susțină dezvoltarea de noi direcții.
Una dintre acestea este HCI (Human-Computer Interaction), un domeniu separat al ingineriei care se ocupă tocmai cu proiectarea, implementarea și evaluarea sistemelor interactive complexe. Alți termeni sinonimi sunt CHI (Computer-Human Interaction) sau MMI (Man Machine Interaction). [45]
Domeniile principale de interes sunt:
tehnici de interacțiune
modelarea
potrivirea
specificațiile
proiectarea
impactul asupra indivizilor
Altfel spus, se pot aborda idei principale din ingineria utilizabilității, factori umani și de ergonomie, design, respectiv proiectarea interacțiunii, etc.
Un model de interacție este propus de Norman și este unul dintre cele mai influente modele din HCI. Acesta se bazează pe prezentarea unui ciclu de două faze: execuție și evaluare. Fiecare etapă devine o activitate a utilizatorului, care duce la parcurgerea aceastei bucle evaluare/execuție între el și sistem. [46]
Utilizabilitatea este un termen folosit în general în web development, dar și în designul interfețelor de diferite tipuri, astfel încât odată atins acest aspect, rezultatele pot fi considerate bune. Practic se referă la gradul de ușurință cu care o platformă poate fi accesată în timp real, deși nu poate fi considerată tocmai o știință exactă.
Partea de proiectare și programare a interfeței cu utilizatorul ocupă conform studiilor undeva între 30-90% din totalul liniilor de cod scrise. Noțiunea de design nu se referă neapărat la un set de reguli sau neaparat la modul de afișare, cât la consistența acestuia, operabilitatea și stimularea persoanelor nesupervizate care utilizează platforma. [43]
Calitatea unor interfețe poate fi exprimată conform a 8 mari principii și anume claritate, concizie, familiaritate, consistență, estetică, eficiență și capacitatea de a nu fi înțeleasă greșit. În anul 1987, Ben Schneiderman propune un model similar de 8 reguli de aur, acestea cuprinzând termeni de consistență, shorcut-uri, feedback, design, utilizare ușoară cu suport, control și reducerea așteptărilor date de încărcare. [47]
În anul 1988, Norman propune un alt set de 7 principii, bazate pe cunoștințe din lumea reală, asocieri, reducerea erorilor și a constrângerilor, simplificări. Se discută pentru prima dată despre un set de reguli care propune folosirea standardelor astfel încât utilizatorul să poate fi obișnuit cu modelul implementat. [48]
Totuși, în proiectare majoritatea inginerilor urmează anumite reguli cunoscute și anume:
Principiul POLA (principle of least astonishment) care face referire la capaciatea de a putea anticipa orice reacție, astfel încât utilizatorii să se simtă parte a sistemului utilizat.
Principiul KISS (keep it simple and straightforward) este un principiu apărut în jurul anilor 1960 în domeniul naval, utilizat în probleme de design de software, cât și în filme sau animații [44]
Pe lângă aceste principii, desigur trebuie luată în considerare și ușurința utilizatrului de a interacționa mai bine atunci când învață deja un model. Acest lucru se poate lega direct cu predictibilitatea conținutului, cât și vizibilitatea. Odată implementat un model cunoscut de utilizator, el va fi sprijinit de utilizarea amintirilor legate de interfețe similare. Utilizatorul ar trebui să înțeleagă din intefața grafică dacă o operație pe care o dorește, poate sau nu să fie realizată.
Mai mult decât atât, odată cu această învățare vine atât partea de sinteză prin reflectarea unor operații ulterior realizate, cât și familiaritatea și generalizabilitatea. Un exemplu ar putea fi similitudinea între programe cum ar fi Firefox și Safari.
Figura 23 – Interfață web Firefox
Interfața Firefox este prietenoasă și intuitivă, prezentând pagina curentă, posibilitatea de reîncarcare a conținutului, de căutare a informațiilor după cuvinte cheie pe platforme care permit acest lucru (Google), un meniu cu opțiuni simple sau mai complexe, alături de pictograme intuitive.
Se poate concluziona că principiile prezentate mai devreme sunt respectate, fiind un exemplu potrivit.
Figura 24 – Interfață web Safari
La fel ca și Firefox, interfața web Safari prezinta butoane și funcții similare. Acest lucru demonstrează nu numai realizarea corespunzătoare a acesteia, cât și caracterul de similitudine dorit. În acest mod, utilizatorii de internet se pot obișnui ușor cu ambele variante prezentate.
Customabilitatea și adaptabilitatea prezintă din nou elemente esențiale. Interfețe precum cele ale programelor de editare/vizualizare imagini prezintă buloane clasice de tip forward/backward.
Figura 25 – Interfață Picture Manager
Interfața de Picture Manager este un exemplu clasic de program intuitiv, având butoane de mărire, rotire, parcurgere de imagini, cât și de ajutor. Similar se poate prezenta și un program de editare a fotografiilor, putând permite și vizualizarea conținutului.
Figura 26 – Interfață PhotoScape
Din pacate teoria nu se poate aplica unor imagini medicale, spre exemplu, unde funcțiile sunt fără îndoială mai complexe. Totuși, chiar și așa, posibilitatea realizării unei interfețe prietenoase este necesară. Studiul de interfețe simple, utilizate în fiecare zi de către targetul aplicației si anume medici sau personal neautorizat, este utiliă în acest caz. Tocmai din acest motiv prezentarea a pornit de la aplicații utilizate în mod uzual de către consumatori.
Figura 27 – Interfață Microdicom
MicroDicom este o variantă de a vizualiza imagini medicale în format DICOM (imagini de la exhipamente medicale de tip MRI, PET sau CT), cât și imagini în format standard, uzuale, de tip JPEG, BMP, PNG, etc.
Avantajul principal este că se prezintă într-o variantă disponibilă publicului larg, prin care se pot manipula imagini în format DICOM, împreună cu butoane adiacente de compresie, editare (contrast și luminozitate), vizualizare imagini și export sub formă de video în format AVI, realizarea de directoare organizate funcție de idul pacientului, respeciv posibilitatea de a realiza măsurători și adnotări. [49][50]
Figura 28 – Interfață 3DSlicer
3DSlicer este o altă variantă de software open source pentru vizualizarea și analiza imagnilor medicale. A fost dezvoltat pentru sisteme de tip Linux, Mac OS X sau Windows, fiind scris utilizând limbaje de tip C++, Python și Java.
Permite vizualizarea unei mari varietăți de imagini medicale, putând acoperi funcții rapide de segmentare de imagini, analiză și editare, vizualizare și creare de imagini în format DICOM, dar și vizualizări interactive volumetrice.
Deși încă în dezvoltare, prezintă un meniu relativ interactiv și o multitudine de funcții care utilizează algoritmi relativ necostisitori pentru resursele computerului pe care este instalat programul. Mai mult decât atât, versiunile sunt updatate periodic, odată cu primirea de sugestii din partea utilizatorilor. [51][52]
O altă funcție importantă și distinctivă a programului este că poate realiza o comparare în volum prin algoritmi care pot duce la vizualizarea 3D a organelor a caror imagini medicale au fost preluate, după cum se observă în figura următoare.
Figura 29 – Interfață 3DSlicer (Compare volume)
Un alt model de intarfață este dat de programul AFNI, utilizat pentru vizualizarea și procesarea imaginilor medicale de tip MRI și mai exact pentru aplicații precum maparea activității creierului uman. [53]
Figura 30 – Interfață AFNI
Autorul Robert W. Cox a gândit acest program ca fiind flexibil și interactiv, respectiv pentru a putea realiza și anumite funcții mai complexe. Codul este scris în limbaj C și este disponibil pentru sisteme de operare precum Linus, Solaris, Mac OS X. [54]
Un alt program este CellCognition, dezvoltat de cercetatori de la IMBA Vienna, în asociație cu institutul Curie Paris și Agro ParisTech. Programl este dezvoltat în Python în anul 2009 pentru a putea opera pe orice sistem și permite analiza imaginilor microscopice. Utilitatea principală a programului o reprezintă domeniul bioinformaticii și al procesarii imaginilor celulare, în special în studiile ciclului celular. Acesta conține algoritmi pentru segmentare pentru a descriere textura și morfologia celulară, pentru vizualizarea adnotărilr din imagini și multe alte opțiuni utile în studiile moleculare. [56][57]
Figura 31 – Interfață CellCognition
O altă interfață similară o are un software utilizat pentru imagini celulare, putând încarca simultan sute de imagini. Algoritmii de lucru sunt rapizi și targetați spre procesarea imaginilor. În prezent este dezvoltat în Python pentru a permite utilizarea largă, însă inițial programul a fost dezvoltat în Matlab. Exista două variante actuale și anume CellProfiler (varianta clasică inițială) și CellProfiler Analyst. A doua variantă a apărut ca o necesitate a introducerii domeniului de MachineLearning pentru reducerea dimensionalității setului de date. [57][58]
Figura 32 – Interfață CellProfiler
FMRIB Software Library (FSL) este un software de tip bibliotecă pentru o colecție de imagini funcționale și structurale MRI ale creierului. Este disponibil pentru Apple sau Linux și a fost dezvoltat în 2000 în cadrul unui proiect al grupului FMRIB Analysis Group. [59][60]
Figura 33 – Interfașă FSL
FreeSurfer este un software dedicat analizei neuroimaginilor, disponibil pentru Linus și MacOS X. Este utilizat pentru maparea funcționării creierului, vizualizarea anumitor regiuni funcționale din cortexul celebral și permite analiza în volum și suprafață a imaginilor. Este un soft care permite reconstrucția corectă a topologiei menținând un model geometric acurat, cât și algoritmi necostisitori. [61][62]
Figura 34 – Interfață FreeSurfer
O variantă mai interesantă de software este Mango (Multi-Image Analysis GUI), un program scris în limbaj Java pentru a putea rula atât pe Windows, cât și Mac OS și Linux. Este un program care introduce salvarea imaginilor în format 4D, permițând citirea de multiple extensii ale imaginilor medicale. Permite prelucrarea imaginilor și a fost creat pentru imagini neuronale, fiind disponibil ca variantă Desktop, pe mobil sau web. [63][64]
Noutățile aduse de acest program sunt multiple, în special dacă ne referim la multitudinea versiunilor de program, disponibile pe orice tip de interfață. Accentuează încă o dată puterea unui limbaj precum Java, cât și imaginația unor tineri cercetători în introducerea a cât mai multe variante de vizualizare. Desigur, odată cu adăugarea de funcții noi, interfața devine mai greu de înțeles, însă noutatea și posibilitatea dată medicilor de a prelucra aceste imagini spulberă orice constrângere ulterior aparută.
Figura 35 – Interfață Mango
Nu în ultimul rând, menționez programul ImageJ, un program dezvoltat de NIH și disponibil în variantă stabilă de mai mult timp. Este un program scris în limbaj Java care permite prelucrarea imaginilor biomedicale din mai multe domenii, de la structuri microscopice la imagini MRI. Este utilizat pentru procesarea imaginilor și este foarte popular în universități, în special pentru procesarea imaginilor microscopice. [65][66]
Observabilitatea se referă la cât de ușor se pot găsi butoanele/opțiunile dorite. Astfel, în cazul unui program educational precum QuickField, importanța utilizării de funcții simple devine esențială. Scris pentru a fi utilizat în Windows, codul implementează modele clasice de curent continuu și alternativ, respectiv modele de transfer a căldurii. [67][68]
Figura 37 – Interfață QuickField
Receptivitatea continuă idea observabilității prin rapiditatea găsirii uneltetor de către utilizator. Daca ne referim la COMSOL, putem găsi desigur similitudini între aceste programe. În mare, asemanarea provine tocmai din modelul fizic asemănător ales, însă este un exemplu bun de respectare a principiului prezentat.
Figura 38 – Interfață COMSOL
Fondat în 1986 în Suedia, programul COMSOL Multiphysics este un soft de analiză și simulare a modelelor de element finit, putând rula pe sisteme de operare diferite (Windows, Mac, Linus). Poate implementa ecuații diferențiale și poate reprezenta modele matematice complexe, fiind util ca unealta în domeniul ingineresc. [69][70]
Întorcandu-ne la principiile enumerate, trebuie menționat că toate aceste elemente prezentate sunt părți izolate ale unui sistem vizual complex. Elementele se referă la pattern, culoare și textură, mișcare și pînă la formă, spațiu, linii și puncte.
Punctul, deși una dintre cele mai simple elemente, poate aduce influențe asupra creierului uman, în mare parte din cauza dorinței de conectivitate. Impulsul acesta de conectare a elementelor poate fi descris ca gestalt. [71] Principiile gestalte sunt utilizate frecvent în designul interfețelor. Regulile de similaritate și proximitate pot fi un exemplu în utilizarea butoanelor. Psihologia gestaltă este utilizata și in construcția de computere inteligente care ar putea vedea ce gândesc oamenii și în concluzie, utilizatorii. [72]
Similaritatea se referă astfel strict la cantitatea de informație egal distribuită obiectelor, formând anumite grupuri funcție de dimensiune, culoare, formă, etc. Până și formatul textului poate fi considerat un exemplu, prin diferențe între textul normal și textul bolduit. La celalalt pol, proximitatea se referă la relația între elemente și care dintre acestea sunt centrale. Prin combinații de elemente, același text poate avea același mesaj, dar ințeles diferit prin aspect. Combinațiile pot asigura succesul modelului propus. [73]
Desigur, toate aceste sugestii nu vin cu un set prestabilit de reguli, însă există anumiți termeni de luat în considerare.
Capitolul 2 – Tipuri de semnale și posibilități de prelucrare
Efectele electrice caracteristice organismului viu rezultă din proprietăți fundamentale celulare și anume: potențial transmembranar și potențial de acțiune. Acestea apar datorită proprietății celulelor excitabile de a genera aceste câmpuri electrice prin contribuția sarcinilor în interiorul/exteriorul celulei. Ne referim așadar la celulele sistemului nervos, senzorial și muscular. [74]
Potențialul transmembranar este dat de distribuția neuniformă a ionilor în interiorul și exteriorul celulei, ca urmare a transportului activ. Ca o consecință, potențialul în celulă este cu 90 mV mai scăzut decât în mediul extracelular. Excitabilitatea celulară duce la manifestări în decursul unor fracțiuni de milisecundă, în urmă cărora potențialul realizează un salt, ulterior se întoarce la valoarea normală prin închiderea/deschiderea canalelor ionice. [75]
Figura 40 – Canale ionice 1
Pentru ușurința schimbului informațional în lumea medicală și unificarea aparaturii în explorării funcționale, au fost acceptate metode și tehnici de prelevare, prelucrare și interpretare a semnalelor bioelectrice transmise de corpul uman.
Astfel, activitățile electrice generate de inima în functiune, detectabil în cea mai mare parte a corpului, se numeste electrocardiogramă. Ea apreciază funcția de pompă determinată de mușchiul inimii (miocard). Contracția regulată, ritmică a acestuia determină ciclul cardiac și este corelat cu depolarizarea celulelor sale, celulele de tip pacemaker. Această autodepolarizare are loc automat și astfel, se poate considera că mușchiul cardiac prezintă proprietatea de ritmicicate inerentă. Celulele au o rată de 60-100 depolarizări pe minut și se găsesc în nodul sinoatrial.
Figura 41 – Structura inimii 2
1 http://ro.wikipedia.org/wiki/Canal_ionic (accesat la data de 08/04/2015)
2 http://romedic.ro (accesat la data de 08/04/2015)
Tocmai acest parametru indică și buna funcționare a inimii. În momentul în care se ajunge la 40-50 depolarizări pe minut, sursa este preluată de nodul atrioventricular și mai apoi, la 20-40 depolarizări pe minut, de mușchiul ventricular. Problemele pot fi detectate la nivelul electrocardiogramei.
Figura 42 – Activitatea electrică a inimii 3
Alți parametrii sunt dați de complexul QRS înregistrat, astfel încât fiecare segment prezintă o durată și o amplitudine de referință. Cele mai importante detalii sunt preluate de la unda P (depolarizare atrială), complexul QRS (depolarizare ventriculară) și unda T (repolarizare ventriculară). [77]
Figura 43 – Complex QRS 4
Toate aceste elemente sunt numai baza a ceea ce înseamna electrocardiograma și ce informație se poate extrage din aceasta. Se demonstrează importanța cunoașterii acestora pentru realizarea unei interfețe care să afișeze corespunzător semnalul preluat din baza de date.
3 http://www.meditech.cn (accesat la data de 08/04/2015)
4 http://en.wikipedia.org/wiki/QRS_complex (accesat la data de 08/04/2015)
Alte tipuri de semnale sunt electromiografia, sau semnalul electric asociat celulei musculare striate. Biosemnalele electrice generate de activitatea musculară voluntară, involuntară sau stimulată arficial poate fi caracterizată extracutanat (electrod la suprafață) sau invaziv (electrod de tip ac) prin tehnica EMG, reflectând funcționalitatea sistemului neuromuscular. [79]
Figura 44 Preluare semnal EMG 5
Un alt tip de invesțigatie este activitatea electrică celebrală, ea integrând efectele impulsurilor de depolarizare și a fenomenelor sinaptice. El poate fi înregistrat de pe scap sau de pe cortex, invaziv sau neinvaziv. În electroencefalografie, funcțiile de timp ale potentialelor EEG se desfășoară cu variații continue ale formelor, amplitudinilor sau perioadelor. De interes deosebit sunt undele alfa, care apar între 8 si 13 Hz. Unele semnale pot fi evocate prin stimularea unui receptor senzorial (auz, văz, atingere). [81]
Figura 45 – Componente principale EEG 6
Ca o tehnică complementară semnalelor EEG, se poate discuta despre imagistica medicală și mai exact, imagini de tip MRI (magnetic resonance imaging), o metodă neinvazivă de diagnosticare prin utilizarea câmpului magnetic în prelucrarea imaginilor.
5 Guetano D. Gargiulo and Alistair McEwan, Contributions to Novel Methods in Electrophysiology Aided by Electronic Devices and Circuits, Applied Biomedical Engineering, August 23, 2011
6 Rosana Ferrari; Aldo Ivan Cespedes Arce; Mariza Pires de Melo and Ernane Jose Xavier Costa, Noninvasive method to assess the electrical brain activity from rats, Cienc. Rural, vol.43, no.10, Santa Maria ,Oct. 2013
Acestea permit imagistica la nivelul capului (activitate creier), abdomenului (rinichi, pancreas, splină, inimă, etc.), sau la nivelul vaselor de sânge (MR Angiography). Desigur, funcție de organul sau domeniul discutat, se poate menționa de neuroimagistică, imagistică cardiovasculară, gastrointestinală, funcțional MRI ș.a.m.d.
Desigur, sunt mulți parametrii ce pot fi discutați, însa cel mai important în cazul scanariilor MRI este reglarea contrastului T1/T2, numiți și relaxare spin-latentă, relaxare spin–spin. Odată cu aceștia, se poate regla contrastul și practic, se poate discuta despre o creștere a informației. [83]
Figura 46 – Imagini de contrast T1/T2 7
Se demonstrează așadar multitudinea informațiilor deținute de fiecare dintre acestea, în condițiile în care se poate discuta despre domenii separate. Tocmai de aici vine și implicarea bioinginerului de a găsi interfața corespunzătoare care să integreze informația funcție de analiza dorită. Este necesară studierea fiecărui câmp din baza de date, tipul fișierului, conținutul informațional, conexiunea cu lumea biologică și posibilele informații ce pot fi extrase în vederea afișajului direct pentru o persoană nesupervizată din punct de vedere al cunoștintelor de inginerie.
7 http://en.wikipedia.org/wiki/Magnetic_resonance_imaging (accesat la data de 08/04/2015)
2.1. Semnale ECG și posibile aplicații
Electrocardiografia reprezintă tehnica de măsurare și reprezentare a activității electrice cardiac pe anumite axe, alese convențional. Se discuta despre planul frontal, transversal și sagital. Aceste plane anatomice sunt utilizate ipotetic pentru caracterizarea zonelor corpului uman, astfel încat planul sagital împarte corpulîin dreapta și stânga, planul coronal sau frontal împarte în parte anterioară și posterioasă și cel transversal în parte superioară și inferioară. [84]
Figura 47 – Planele corpului uman 8
Cunoașterea acestor detalii este foarte importantă în prelucrarea ulterioară, de aceea notarea acestora în baza de date este crucială. Practic, semnalul prelucrat este sub forma unui vector orientat în funcție de poziționarea electrozilor. Necunoașterea acestor noțiuni poate duce la un diagnostic eronat. Triunghiul lui Einthoven presupune practic plasarea electrozilor astfel încât să se formeze un triunghi echilateral. Astfel, punctele de preluare sunt pe mâna dreaptă, mâna stângă și piciorul stâng. Referința sistemului devine piciorul drept. [86]
Figura 48 – Triunghiul lui Einthoven 9
5 https://anatomystudybuddy.wordpress.com (accesat la data de 12/04/2015)
6 http://en.wikipedia.org/wiki/Einthoven%27s_triangle (accesat la data de 12/04/2015)
Cea mai utilizată preluare este cea în care toți electrozii de prelucrare a semnalului sunt plasați în planul frontal. Alte variante ar fi derivații date de vectocardiogramă, analiză ce urmărește vectorul cardiac și anume distribuția acestuia la limita de demarcație între domeniul polarizat și depolarizat. O modalitate de plasare este dat de sitemul Frank.
O importanță o are și descrierea modului de preluare, tipul de semnal, etc. Un semnal ECG cules în mod uzual prin utilizarea a 3 electrozi va avea o formă și informație diferită față de un semnal ECG abdominat fetal. Tocmai de aceea, baza de date este împărțită în subcategorii, funcție de rolul, motivația și tipul semnalului cules.
Figura 49 – Baza de date PhysioBank pentru semnale ECG de diferite tipuri
Următorul pas ar fi desigur tratarea unei discuții despre aplicațiile posibile. Utilitatea semnalului cules oferă informații esențiale despre pașii ce urmează a fi făcuți. Mai mult decât atât, informații precum filtrarea sau nu a frecvenței de rețea (50 Hz) este de asemenea importantă. Existența unui semnal zgomotos poate duce și de această dată la informații eronate. Platforma mai presupune și alegera duratei, extensiei fișierului dorit și alte opțiuni, conform figurii de mai sus. Interfața este greu de utilizat și tocmai din această cauză intervine și dorința existenței unei interfețe.
Figura 50 – Modalitate de preluare a unui semnal ECG fetal
Figura 51 -Sugestie de vizualizare ECG fetal in Physionet
Posibile aplicații pentru semnalul ECG ar fi filtrarea, afișarea corespunzatoare, extragerea numărului de bătăi pe minut, etc. Acestea se numară desigur printre aplicațiile simple. Semnalul poate fi utilzat în implementarea unor programe mai complexe, în care se pot face de exemplu gruparea datelor utilizând rețele neuronale, etc. O astfel de clasificare ar fi compararea undelor P, QRS, T și apoi compararea cu o referință astfel încât să rezulte: “pacient sănătos”, “pacient suspect”, “pacient bolnav”, “neclasificare”.
Un exemplu de astfel de problemă ar putea fi reprezentată în Matlab printr-un cod ușor de înțeles unui inginer.
%Aplicatie Matlab
load ECG.mat; %incarcare semnal
Fs=500; %frecventa de esantionare preluata din baza de date
v=ECG(:,1);
N=length(v); %numar de elemente din vector
t=[0:N-1]/Fs;
f=[0:N-1]*Fs/N;
figure, subplot(211), plot(t, v), title ('Semnal ECG in domeniul timp'), xlabel('Timp (s)');
y=fft(v);
%Reprezentare semnal ECG domeniul timp
subplot(212), plot (f, abs(y)); title ('Spectru semnal initial'), xlabel ('Frecventa (Hz)');
Figura 52 – Spectru semnal initial si reprezentare in domeniul timp
O primă parte este desigur vizualizarea semnalului preluat din Physiobank și espectiv vizualizarea spectrului. După cum se observă, semnalul este afectat de zgomot, dat de frecvența de 50 Hz de la rețea. Vizualizarea acestui semnal de către un medic ar putea crea confuzii, ducând la un diagnostic greșit sau la anularea analizei care ar putea fi prelucrată și revizualizată.
Ne propunem așadar realizarea de două tipuri diferite de filtre, filtru de tip FIR I si FIR II care sa aibă o bandă de tăiere în jurul frecvenței pe care o dorim anulată. Prin aplicarea transformatei Fourier, trecem semnalul în domeniul frecvențelor (spectrul), aplicăm filtrul prin care eliminăm frecevența nedorită și apoi transformata Fourier inversă, astfel încât semnalul se readuce în domeniul timp și se revizualizează. Rezultatele sunt net mai bune în ambele variante utilizate.
%Afisare spectru semnal pentru analiza
%Metoda cu fir1
f1=Fs/N*[0:N/2-1];
Wn=[0.17 0.23]; %banda de taiere
B=fir1(100,Wn,'stop');
H=freqz(B,1,N/2);
MH=abs(H);
y1=filter(B,1,v);
Y1=fft(y1);
MY=abs(Y1);
figure, subplot(211), plot(f1,MH), title ('Raspunsul in frecventa al FIR 1'), xlabel('Frecventa (Hz)');
subplot(212), plot(f1,abs(MY(1:N/2))), title ('Spectrul semnalului filtrat cu FOB'), xlabel('Frecventa (Hz)');
%Afisare semnal initial si filtrat
figure, subplot(211),plot(t,v), title('Semnal initial ECG'),xlabel('Timp (s)');
subplot(212), plot(t,y1), title('Semnal filtrat cu FOB'), xlabel('Timp (s)');
Figura 53 – Rezultate FIR I
Figura 54 – Rezultate FIR II
%Metoda cu fir2
F2=[0.0 0.15 0.17 0.23 0.25 1.0];
M2=[1 1 0 0 1 1];
B2=fir2(100,F2,M2);
H2=freqz(B2,1,N/2);
MH2=abs(H2);
z2=filter(B2,1,v);
Z2=fft(z2);
MZ2=abs(Z2);
figure, subplot(211), plot(f1,abs(MH2)), title('Raspunsul in frecventa al FIR 2'), xlabel('Frecventa (Hz)');
subplot(212), plot(f1, abs(MZ2(1:N/2))), title('Spectrul semnalului filtrat cu FOB'), xlabel('Frecventa (Hz)');
t1=t+0.1;
%Afisare semnal initial si filtrat (ambele metode)
figure, subplot (211)
plot(t1,v), title('Filtrare cu FIR2'), hold on
axis tight
plot(t, z2, 'r');
subplot (212)
plot(t1,v), title('Filtrare cu FIR1'), hold on
axis tight
plot(t, y1, 'r');
%Semnal initial si filtrat
figure
plot(t1,v,'b',t,y1,'r'); grid on
axis tight;
xlabel('Timp (s)');
legend('ECG initial','ECG filtrat')
title('Filtrare ECG')
Figura 55 – Rezultate cu ambele filtrari
Figura 56 – Rezultate filtrare
După cum se poate observă, rezultatele sunt foarte bune, iar semnalul conține informația corectă. Față de varianta anterioară, unde medicul nu putea da un diagnostic, varianta prelucrată aduce o forma undelor mai aproape de modelul real. Se dovedește importanța cunoașterii condițiilor de prelucrare, care se găsesc în baza de date, dar și imposibilitatea cunoașterii acestor informații de către persoane neautorizate.
În continuare ne propunem să extragem informația utilă din semnal. Acest lucru înseamna de exemplu legarea conținutului dat de unde cu modelul biologic și interpretarea vectorilor prelucrați.
Pentru extragerea numărul de bătai, este suficient a se calcula numărul de peak-uri ale complexului QRS, sau numărul de depolarizari ventriculare, ascestea repetandu-se ciclic. După aceea se poate calcula foarte ușor numarul de bătăi pe minut (BPM) prin ducerea informației in domeniul timp.
%Gasire complex QRS prin peak-uri maxime
peaks=find(y1 > 0.5);
%Stergere elemente nedorite
for p = 1:(length(peaks)-1)
if (peaks(p+1)-peaks(p))==1
peaks(p)=0;
else peaks(p)=peaks(p);
end
end
peaks(peaks==0)=[];
%Calcul numar de batai
numar_batai= length(peaks);
%Calcul BPM
bpm = numar_batai*60/10;
Rezultatele din Matlab sunt următoarele:
numar_batai =
14
bpm =
84
Ne propunem mai apoi să și verificăm algoritmul propus, ascest lucru putând fi făcut prin vizualizarea conținutului și urmărirea punctelor care au fost luate în calcul de program.
%Verificare
figure
plot(y1)
hold on
plot(peaks,y1(peaks),'r*')
xlabel('Samples')
title('ECG cu identificarea complexului QRS')
hold off
Figura 57 – Rezultate identificare numar de batai
O altă observație ar fi faptul că semnalul are un trend de undă ușor crescător, în mare parte din cauza interfeței electrod-tesut care nu este stabilizat. Se poate scrie la nivel de algoritm un cod care să elimine variațiile lente de tensiune și să revizualizăm semnalul astfel prelucrat.
%Eliminarea variatii de tensiune continua
[p,s,mu] = polyfit((1:numel(y1))',y1,6);
f_y = polyval(p,(1:numel(y1))',[],mu); ECG_data = y1 – f_y;
figure, plot(t,ECG_data); grid on
title('Semnal ECG fara trend'), xlabel('Timp (s)'), legend('ECG');
Figura 58 – Vizualizare semnal fara variatii
Desigur, pe lângă zgomotul de rețea, semnalul ECG poate avea și alte variante de zgomot, unele date și de varianta de achiziție pe un anumit număr de biți. În cazul extragerii unui ECG fetal abdominal (fECG), semnalului ECG al mamei (mECG) se poate observa ca fiind suprapus. Variante de îmbunătățire pot fi date atât la nivel de software (cod), dar și la nivel de hardware (elemente de achiziție deja implementate cu aceste proprietăți).
Problema a fost rezolvată inițial de Scot C. Douglas de la firma Mathworks, în cadrul unui program demonstrativ aplicat pe semnale reale. Semnalul matern avea 89 pulsatii pe minut și o amplitudine a undei R de 3.5 mV, în timp ce semnalul preluat de la fat era mai slab, dar mai rapid (139 pulsații pe minut și o amplitudine a undei R la 0.25 mV). Algoritmul propus este de tip LMS (least-mean-square). [89]
Algoritmi propuși de filtrare cu RLS (Recurrent Least-Squares) pot face ca informația rămasă să poată caracteriza morfologia fECG. Fără filtrare, este dificil a se stabili complexul QRS din semnalul ECG cules de la mama și practic este imposibil a se discuta despre extragerea semnalului cules de la făt. [88]
Figura 59 – Semnal mECG si fECG 10
În concluzie, se demonstrează importanța si necesitatea cunoașterii informațiilor de preluare a semnalelor din baza de date, cât și necesitatea unei interfețe care să realizeze automat toate aceste aplicații, astfel încât medicul să fie capabil să interpreteze corect rezultatele.
10 C. Kezi Selva Vijila, M.E., P. Kanagasabapathy and Stanley Johnson , Fetal ECG Extraction using Softcomputing Technique. Journal of Applied Sciences, 2006
2.2. Semnale EMG și posibile aplicații
Electromiografia (EMG) reprezintă tehnica de culegere și redare a activității musculare, putând discuta despre mai multe tipuri de semnale EMG și anume electromiograma celulară (prelucrare cu microelectrozi), electromiograma unei unități motorii (preluare cu electrozi de tip ac) sau electromiografia musculară totală (electrozi de suprafață). [1]
Figura 60 – Semnale EMG sugerate de platforma PhysioBank
Prelucratea electromiogramei constă în general în analiza spectrală și în calculul funcției de autocorelație (semnalul EMG este un semnal aleator rezultat prin însumarea activității întregilor fibre musculare). Se pot evidenția diferențe între spectrele de putere ale electromiogramelor unor pacienți diferiți, astfel încât se pot detecta leziuni sau gradul de oboseală. Analiza semnalului poate fi utilă și pentru proiectarea de proteze mioelectrice.
Pentru diagnostic, se pot folosi rețele de învățare de tip feedforward cu două niveluri și anume strasul ascuns și cel de ieșire. După un anumi număr de pași, rețeaua începe să aibă rezultate de învățare satisfăcătoare.
Alte posibile aplicații ar fi clasificarea potențialelor de unitate motorie cu ajutorul rețelelor de tip SOM (Self Organising Maps). Pașii vizați ar fi extragerea componentelor principale prin metoda PCA și aplicarea acestor componente la intrarea rețelei. [88]
Pentru realizarea acestora, cât și pentru vizualizarea corespunzătoare, interfața ar trebui să permită afișarea rezultatelor cât mai prietenos, cu notațiile aferente și cu parametrii aleși de utilizator la nivelul unui singur click.
2.3. Semnale EEG și posibile aplicații
Electroencefalografia este o metodă instrumentală de exploatare a potențialelor generate de creier. Aplicațiile pentru acest semnal sunt multiple, putând discuta despre diferite unde cu zone de interes. Putem cuprinde partea de diagnostic, de comunicare cu proteze sau cu calculatorul, respectiv interfețe creier-calculator.
O mare problemă a acestor semnale o cuprinde interferența cu diferite zgomote, în mare parte datorită amplitudinilor sale mici în raport cu semnale de tip ECG sau EMG. De asemenea, rețeaua de alimentare poate introduce artefacte, respectiv instalații și zgomote prezente în camera în care se preiau înregistrările EEG. [31]
În același timp, se pune problema descompunerii în undele dorite, tocmai datorită interferenței între semnale. După cum se observă și în figura de mai jos, în cazul unei astfel de preluari la suprafață, se pune problema localizării surselor. În baza de date Physionet, semnalele existente au menționate și astfel de detalii, respectiv prezentarea directă a informației funcție de tipul de undă.
Figura 61 – Modalitate de achizitie semnal EEG propusă de Physionet
O soluție de utilizare a semnalelor EEG a fost abordată în 1991, când Wolpaw și colaboratorii săi au dscoperit posibilitatea conectării undei mu, calculată prin transformata Fourier rapidă a semnalului EEG, la calculator. A fost utilizat un dispozitiv cu leduri astfel încât pacientul își putea da seama când creierul său genera undele. Se poate considera un sistem de tip biofeedback care reușește să se muleze pe modelul uman. [1]
În timp, aplicațiile au fost lărgite spre dresajul animalelor, controlul unor clapete și chiar brațe robotice. Pentru acestea, cunoașterea și prelucrarea semnalelor corespunzător este de o maximă importanță.
2.4. Imagini MRI și posibile aplicații
Imagistica MRI (Magnetic Resonance Imaging) sau imagistica RMN (Rezonanță Magnetică Nucleară) este o metodă de prelucrare a zonelor corpului omenesc folosind rezonanța magnetică a nuceelor de hidrogen din țesuturi. Această metodă este de interes pentru că oferă cel mai bun contrast pentru țesuturile moi, spre deosebire de imagistica care folosește razele X. [1]
RM este o tehnică imagistică de vârf care permite detectarea cu multă acuratețe a unor modificări patologice de la nivelul organelor interne abdominale și pelvine, mușchilor, creierului, nervilor, vaselor și tesuturilor moi.
Figura 62 – Imagini MRI sugerate de platforma PhysioBank
Imaginile RMN prezintă posibilitatea de a fi folosite în reconstrucție, pentru realizarea unor rețele 3D. Se discută de simularea reală a răspunsului organelor și țesuturilor față de instrumentarul chirurgical, grafica realistică și în timp real a simulatorulului. Imaginile medicale achiziționate sunt preprocesate, transformate 3D și implementate într-un scenariu corect, conducând astfel la realizarea modelului software dorit. [93]
Înțelegerea corectă a acestor noțiuni, cât și implementarea acestora pot duce la realizarea unui model cât mai real. De aceea, vizualizarea corespunzatoare a datelor preluate din baza de date pot duce la îmbunătățirea rezultatelor.
2.5. Concluzii și alte posibile direcții
Așa cum am menționat și în primul capitol, alte posibile aplicații ar fi prelucrarea secvențelor genetice. Problema devine găsirea unor metode de acumulare a datelor într-un singur experiment sau mai bine zis, categorisirea informațiilor utilizând rețele neuronale artificiale (RNA).
Aplicațiile de RNA oferă tocmai acest suport prin capacitatea lor de învățare. Baza pentru orice studiu fundamental sau chiar orientat pe aplicație este analiza datelor. În mod tradițional, pentru studiile nesupervizate, transformările liniare și reducerea datelor cu metode precum PCA (Principal Component Analysis) sunt folosite. Mare avantaj al acestor metode este că permit reducerea datelor într-un sistem cu o dimensionalitate mai mica. Mai mult decât atât, o metoda PCA aplicată adecvat nu necesită modelare ulterioară. [91] Legat de tipurile de rețele neuronale folosite, Kohonen este unul dintre cele mai populare strategii de învățare dintre algoritmii propuși în literatură. Nivelul crescut de utilizare este legat cu diferite taskuri pe care acestea le realizează, fiind considerate unelte importante în utilizarea lor pentru probleme de statistică. Hărțile Kohonen cu auto-aranjare sunt sisteme care pot rezolva mai degraba probleme nesupervizate, așa cum am menționat mai sus. [92]
Ne propunem așadar implementarea acestor RNA pentru atingerea scopului propus: analiza secvențelor de gene prin gruparea datelor de interes și eliminarea celor nedorite. Pentru acest lucru, ne interesează implementarea aplicației în Matlab prin utlizarea unor set de funcții.
Ca și toolbox utilizat în Matlab, există o colectie de functii și algoritmi implementați în Matlab, putând fi accesați cu ușurință pentru implementarea în interfață.
Se observă structura datelor importate, esențială pentru prelucrarea datelor. Ne interesează în acest model analiza unei evoluții a genelor în timp, odată cu modificările biologice survenite. Astfel, discutăm despre variabilele time (timp), genes (gene cu nivelul măsurat), yeastvalue (valoarea efectivă/rația).
Un prim pas în abordarea problemei este reducerea dimensionalității setului de date, sau mai simplu spus, filtrarea prin:
• reducerea spațiilor fără interes numite ‘EMPTY’ cu funcția strcmp
• reducerea datelor ‘Nan’ prin funcția isnan
• reducerea datelor prin îndepărtarea elementelor care trec de un anume prag de interes (threshold) utilizând funcția genevarfilter.
emptySpots = strcmp('EMPTY',genes);
yeastvalues(emptySpots,:) = [];
genes(emptySpots) = [];
nanIndices = any(isnan(yeastvalues),2);
yeastvalues(nanIndices,:) = [];
genes(nanIndices) = [];
mask = genevarfilter(yeastvalues);
% Utilizarea mastii ca un index a valorilor care vor fi eliminate de filtrul de gene
yeastvalues = yeastvalues(mask,:);
genes = genes(mask);
[mask, yeastvalues, genes] = …
genelowvalfilter(yeastvalues,genes,'absval',log2(3));
În continuare se implementează metoda PCA (principal component analysis) pentru reducerea dimensionalității setului de date.
În primă etapă, se dorește normalizarea datelor astfel încât să poată fi tratată prioritatea elementelor de rețea. Mai apoi, se vor izola elementele principale, în timp ce elementele care vor contribui cel mai puțin vor fi eliminate. Funcțiile utilizate sunt mapstd, respectiv processpca.
[x,std_settings] = mapstd(yeastvalues');
[x,pca_settings] = processpca(x,0.15);
figure
scatter(x(1,:),x(2,:));
xlabel('First Principal Component');
ylabel('Second Principal Component');
title('PCA Plot');
În continuare se vor implementa rețelele neuronale de tip SOM, prin utilizarea funcțiilor selformap și respectiv nntraintool.
În final se vor vizualiza și datele finale, utilizând funcția plotsom.
figure
plotsompos(net,x);
Desigur, pentru implementarea unor algoritmi în Matlab, ne interesează existența unui anumit format. Aceasta prelucrare se poate face direct în Matlab, prin diferite funcții, sau prin salvare sub extensii diferite a fișierelor, utilizânt programe precum BioEdit.
Pentru implementarea unor rezultate proprii, se importa datele din baza de date Yeastgenome. Am ales datele unui primer.
Figura 68 – Secvențe format Excel
Folosind funcția xlsread, se exportă datele in Matlab. Datele au fost exportate automat în formatul Excel ‘xlsx’ de pe platforma menționată anterior.
num,txt] = xlsread('E:\Documents\Facultate\AnulIV\Yeast_genome_intergenic _primers.xlsx');
genes=txt(:,1);
time=num(:,2);
yeastvalue=txt(:,5:6);
emptySpots = strcmp('EMPTY',genes);
yeastvalues(emptySpots,:) = [];
genes(emptySpots) = [];
[x,std_settings] = mapstd(yeastvalues');
[x,pca_settings] = processpca(x,0.15);
net = selforgmap([5 3]);
view(net)
net = train(net,x);
nntraintool
figure
plotsompos(net,x);
y = net(x);
cluster_indices = vec2ind(y);
figure
plotsomhits(net,x);
Concluziile implementării ar fi următoarele:
utilizarea RNA devine un trend în problemele medicale de orice tip, în special dacă ne referim la clasificare de semnale sau alte date medicale
genetica devine un domeniu de interes, astfel încât implementarea de algoritmi pentru gestionarea multitudinii de date devine esențială
rețelele neuronale de tip SOM rezolvă bine problema clasificării în seturi de date cu o dimensionalitate foarte mare, precum analiza secevențelor genetice
modelul implementat este simplu, rapid și eficient
rezultatele implementării au fost satisfăcătoare cu scopul didactic urmărit
ca direcții viitoare, se poate discuta despre realizarea unor RNA pentru maparea întregului genom uman
există la ora actuală investiții majore în domeniul cercetarii și gestionării secvențelor extrase
pe lângă clasificare, o serie de alți algoritmi pot veni în suportul aplicațiilor genetice, ducând la o mai bună utilizare (eficientă) din partea cadrului medical.
Practic, se relevă importanța cunoașterii acestor date în implementarea unei interfețe. Deși relativ simplu pentru un inginer, un medic sau un pacient nu ar putea să extragă singur informația utilă.
În toate subcapitolele prezentate se discută despre cele mai uzuale aplicații din domeniul bioingineriei, cât și metode de prezentare a diagnosticului într-un format simplu, intuitiv.
Capitolul 3 – Mediul de programare. Limbajul LabVIEW
3.1. Caracterisici generale ale mediului LabVIEW
LabVIEW este un mediu de programare utilizat mai ales pentru realizarea anumitor măsurători, dar și pentru monitorizarea unor procese. Pentru scrierea programelor în LabVIEW se utilizează limbajul grafic G, limbaj de generația a 5-a. Mediul LabVIEW conține astfel mai multe biblioteci de funcții predefinite pentru achiziția, prelucrarea, salvarea si transmiterea datelor.
Potențialul limbajului G este folosit în prezent prin asamblarea vizuală a programelor, astfel încât se departajează de majoritatea limbajelor de programare: înțelegerea codului sursă al instrumentului este posibilă chiar și pentru un non-programator.
Programele realizate în LabVIEW se numesc instrumente virtuale (Virtual Instruments – VIs), iar la baza realizării programelor în LabVIEW stau în principal concepte de ierarhie arborescentă. Când se proiectează și implementează un IV, trebuie să se țină cont de natura modulară a acestuia; să poată fi utilizat atât ca program principal cât și în componența altui IV. Într-o aplicație pot fi utilizate mai multe module, în care există un IV principal ca părintele unic în arbore.
În limbajele de programare convenționale, bazate pe un cod de tip text, ordinea de execuție a instrucțiunilor din cadrul unui program este dată de ordinea secvențială, sau altfel spus ordinea în care acestea apar. În LabVIEW apare conceptul “curgere” a datelor între blocurile componente. Un bloc de instrucțiuni se execută doar când la toate intrările sunt disponibile date, rezultatele fiind mai apoi furnizate după executarea tuturor instrucțiunilor din cadrul blocului respectiv. Programele realizate în mediul LabVIEW se numesc instrumente virtuale (IV), asa cum este menționat și mai sus. Un IV are trei părți componente: panoul frontal; diagrama bloc; pictograma si conectorul, elemente ce vor fi prezentate în cele ce urmează. [99][101]
Figura 70- Panou Frontal
Panoul frontal definește interfața cu utilizatorul a IV și elementul de bază al programelor elaborate în LabVIEW. Acest lucru se datorează faptului ca acesta are capacitatea de a introduce sau extrage datelor în/din mediul de programare. Comenzile care implică intervenția utilizatorului sunt simplificate, fiind preferate elementele de comandă și afișare grafice, cunoscute sub denumirea de controale sau indicatoare. Controalele reprezintă intrările în instrumentul virtual, in timp ce ieșirile, cele care comunică operatorului datele rezultate din aplicație, poartă numele de indicatoare. Controalele se pot găsi sub diferite aspecte și anume: butoane, întrerupătoare, comutatoare, cursoare, cadrane etc., fiecărui tip fiindu-I asociat un element dintr-un instrument ingineresc cunoscut.
În LabVIEW pot fi tratate structuri de date cu diferite complexități, cât și valori numerice, șiruri, grafice. Dacă se face referire la indicatoare, aceste structuri de date gestionate își stabilesc singure forma optimă a reprezentării datelor pe care le primesc. Diagrama bloc însoțește panoul frontal și poate fi imaginată ca un cod sursă, în timp ce componentele sale reprezintă nodurile programului. Acestea sunt reprezentate prin structuri de decizie, operatori matematici sau funcții de prelucrare logice. Legăturile se realizează prin fire care vor descrie fluxul de date în interiorul instrumentului virtual creat. [103]
Figura 71 – Diagrama bloc
Diagrama bloc cuprinde algoritmul de efectuare a calculelor și raționamentele din aplicație, în scopul preluării și prelucrării informațiilor. În majoritatea cazurilor, după ce programatorul a realizat o aplicație destinată unui anume model de utilizator, acesta din urmă nu mai are acces la diagramă. Acest lucru este asemător principiului din spatele programelor la al căror cod sursă nu există acces. Conectorul este definit ca un element ce poate transforma un instrument virtual într-un obiect, pentru a fi folosit mai apoi în diagrama bloc a altor instrumente virtuale. Terminalele elementelor sunt alte elemente esențiale, ele fiind diferențiate prin culoare ca simbol al tipului de mărime scalară dorită: portocaliu pentru valori numerice reale, verde pentru valori booleene și roz pentru valori de tip alfanumeric.
Paleta de controale poate fi văzută ca fereastră ce apare atunci când se lucrează în cadrul panoului frontal și contine o serie de elemente de control și indicatoare de diverse tipuri, printre care cele mai cunoscute sunt: Numeric, Boolean, String&Path, Array&Cluster, List&Table, Graph etc.
Figura 72 – Paleta de controale
Afișarea paletei de controale pentru lucru în cadrul aplicației se poate efectua în două moduri: apăsând butonul din dreapta al mouse-ului într-o zonă liberă a panoului sau selectând comanda Show Controls Palette. Dispunerea unui element de control sau indicator pe panou începe cu selectarea elementului din paletă, apoi se deplasează cursorul până în poziția în care se dorește dispunerea, iar elementul va primi în același timp o etichetă automată în modul de editare. Textul afișat de etichetă poate fi modificat în cadrul în care se dorește a fi mai sugestiv.
Paleta de unelte este și aceasta o fereastră, însă de această data se regasește atât în cadrul panoului frontal, cât și al diagramei bloc. Afișarea acesteia se efectuează selectând comanda Show Tools Palette. Uneltele din această paletă sunt utilizate în special pentru operarea valorilor unor elemente, selectare sau poziționare, editare, conectare, afișare a meniurilor proprii, deplasare a imaginii într-o fereastră, selectarea de culori, etc. Afișarea temporară a paletei de unelte se realizează ținând apăsată tasta Shift și apăsând butonul drept al mouse-ului. [99][102][114]
Figura 73 – Paleta de unelte
3.2. Implementarea unui model în LabVIEW
3.3. Toolboxuri pentru prelucrare
Un toolbox esențial mediului ingineresc cu aplicații în medicina este oferit chiar de LabVIEW, în toolkitul Biomedical. Acesta prezintă implementați algoritmi special destinați procesării semnalelor sau a imaginilor. De asemenea, acesta prezintă aplicații utilizate frecvent ăn bioinstrumentație, prelucrări de semnal sau în cercetare. Aplicațiile includ vizualizari, generări de semnale, analiza bătăilor inimii, a presiunii arteriale, reonstrucții 3D cât și tranformarea fișirelor. Datele supuse analizei pot fi preluate direct din sisteme precum Biopac, cât și din fișiere de tip .MAT sau HL7. [107]
Legat de analizarea și procesarea biosemnalelor sau imaginilor medicale. pachetul include modalități de lucru cu acestea. În combilație cu hardware National Instruments DAQ, se poat seta sisteme diferite cu aplicabilități în domeniul academic sau ingineresc.
Figura 74 – Instumentație Biomedical Toolkt cu hardware DAQ NI [108]
Componentele prezente în figura de mai sus prezintă elemente de front-end precum traductoare sau electrozi, hardware pentru achiziție și procesare, modulul de procesare oferit de LabVIEW, aplicații deja existente oferite de Biomedical Workbench și desigur, actuatori, respectând modelul clasic al unui sistem de bioinstrumentație. [108]
Instrumentele virtuale oferite în domeniul biomedical pot fi și ele grupate în 4 mari categorii și anume:
Lucrul cu fișiere biomedicale de tip in/out
Utilizarea de hardware pentru simulare și/sau achiziție de semnale precum ECG, EEG, EMG sau BP
Prelucrarea și procesarea semnalelor biomeicale
Procesarea și analiza imaginilor medicale
Primul modul face referire la o paletă mai largă de funcții aplicate atât pe semnale, cât și imagini biomedicale. Funcțiile se referă strict la citirea și scrierea din/în fișiere a conținutului informațional ce descriu semnale și imagini de tip BMP, JPEG, PNG sau DICOM. Modulul poartă denumirea de Biomedical File I/O Express VIs.
Cel de-al doilea modul, Biosignal DAQ & Simulation Express Vis, oferă o serie de subaplicații pentru lucru atât cu semnalele achiziționate sau generate, cât și simularea de semnale BP, ECG, EEG, EMG.
Paleta destinată analizei și procesării ulterioare numită Biosignal Measurements Vis face referire în special la procesarea semnalelor ECG și EMG, dar și la funcții de afișare a spectrului EEG sau de analiză BP.
Ultimul modul este destinat domeniului imagisticii și poate duce la extragerea informațiilor din modele în volum, 3D. Medical Image Processing Vis este foarte util atât pentru analiza imaginilor, cât și prelucrărilor ulterioare prin integrarea imaginilor în proiecte de stimulare, de exemplu magnetic drug targeting aplicată unor modele 3D. Partea de reconstrucție poate fi utilizată de către clinician pentru vizualizarea țesuturilor interne în 3 dimensiuni, în mare din reconstrucția imaginilor MRI. Aplicațiile sunt simplu realizate, funcționand prin butoane de tip Add, Opacity, Isosurface Plot Control și Model Plot. [109]
Figura 75 – Interfață principală Biomedical Workbench
Interfața Biomedical Workbench este una prietenoasă, permitând utilizatorului să decidă tipul de semnal de prelucrat, în funcție de descrierea atașată fiecărei icoane. Formatul ales este unul intuitiv, simplu, fiind destinat atât persoanelor specializate cât și celor fără cunoștințe ample în domeniul ingineriei. De menționat existența unui buton de help care oferă informații suplimentare pentru fiecare alegere a utilizatorului.
Figura 76 – Interfață de vizualizare a semnalelor biomedicale oferite de Biomedical Workbench
Figura 77 – Adăugare de adnotări semnalelor în Biomedical Workbench
Biosignal Viewer este un modul simplu realizat pentru vizualizarea pe multiple canale, adăugare de adnotări fișierelor, cât și opțiuni de atașare a unor raporturi. Datele pot fi vizualizate pe anumite intervale alese de utilizator, împreună cu diferite informații existente în fișier. După cum se observă, interfața este una intuitivă, ușor de înțeles pentru pacient.
Figura 78 – Interfață de conversie a fișierelor eferită de Biomedical Workbench
Un alt modul util în domeniul procesării semnalelor sau a imaginilor, cât și al echipamentelor biomedicale este cel de conversie, intintulat File Format Convertor. Acesta permite uploadarea de fișiere în diferite formate cum ar fi: MATLAB (.mat), PhysioBank Database (.hea), Audio (.mp3, .wma, .wav), CSV (.csv), HL7 (.hl7), ACQ (.acq), EMGWorks (.emg), etc. În același timp, se permite și conversia ori salvarea datelor în formate premul TDMS (.tdms), PhysioBank Database (.hea) sau European Data Format (.edf).
3D Image Reconstructor este un modul esențial domeniului biomeical, deoarece implemnetează algoritmi de recompunere a imaginilor 2D (sliceuri) preluate din analiza MRI. Imaginile sunt recontruite în volum utilizând izosuprafața, un model ce lucrează pe baza ipotezei că această izosuprafață este adiacentă unei linii de contur, însă în 3D. Modul permite uploadarea unui model real prin introducerea sliceurilor preluate de echipament, urmând ca imaginea 3D să fie reconstituită prin software.
Figura 79 – Interfață de uploadare a fișierelor pentru reconstrucția 3D oferită de Biomedical Workbench
Figura 80 -Interfață pentru reconstrucția 3D oferită de Biomedical Workbench
Un modul important al pachetului Biomedical Workbench este Heart Rate Variability Analyzer. Acesta este util prin capacitatea acestuia de a detecta rapid intervale R-R, conținând informație esențială asupra ritmului cardiac sau numărului BPM. Analiza continuă asupra tuturor componentelor unui semnal ECG și anume unda R, T, U și respectiv P. [110]
Figura 81 – Modalitate de procesare implementat în HRV Toolkit [113]
Procesul implementat la nivelul aplicației se referă la extragerea informației utile din semnalul preluat la o frecvență de eșantionare uzual setată între 125 și 250 Hz și mai apoi extragerea intervalelor R-R necesării prelucrărilor ulterioare.
Figura 82 – Informașii extrase la nivelul HRV Toolkit [113]
Heart Rate variability (HRV) se referă așadar la variațiile între intervale și anume distanța întrea două peakuri consecutive de complex QRS. Dacă ne referim la analiza în domeniul timp, există o serie de parametri de analizat și anume:
SDNN (“standard deviation of NN intervals”), calculată pe intervale de peste o zi (24 ore), indică modificări în ciclul cardiac pentru subintervale de 5 sau mai multe minute (intervale NN sau intervale “beat-to-beat”).
RMSSD (“root mean square of successive differences”) reprezintă eroarea medie pătratică a diferențelor succesive între intervale adiacente NN.
NN50 reprezintă numarul de perechi consecutive de intervale care diferă cu mai mult de 50 ms
pNN50 este definită ca raportul lui NN50 la numărul total de intervale NN
HRV Triangular Index reprezintă numărul de intervale raportat la lunginea histogramei intervalelor R-R
TINN reste definit ca lungimea medie minimă a peakului cel mai înalt din histogramă măsurat pe o scală discretă
Pe lângă analiza în domeniul timp, există implementat la nivelul acestuia și analiza spectrală, analiza nonlineară sau analiza timp-frecvență. [113], [112]
Figura 83 – Interfață Heart Rate Variabilitz Analyzer oferită de Biomedical Workbench
Pe lângă acestea, în domeniul spectral există o serie de parametri importanți pentru analiză și anume:
TOTPWR, puterea spectrală totală a intervalelor NN până în 0,04 Hz
ULF, puterea spectrală totală a intervalelor NN până în 0,003 Hz
VLF, puterea spectrală totală a intervalelor NN între 0,003 și 0,04 Hz
LF, puterea spectrală totală a intervalelor NN între 0,04 și 0,15 Hz
HF, puterea spectrală totală a intervalelor NN între 0,15 și 0,4 Hz [111]
Funcțiile existente la nivelul pachetului pot fi preluate și aplicate independent în cadrul diferitelor programe, fiind astfel utile mediului ingineresc.
În concluzie, avantajele acestui pachet sunt multiple, platforma implementată fiind ușor de utilizat atât de către un inginer, cât și de către un clinician. Chiar și așa, este necesară cunoașterea funcțiilor și a butoanelor implementate.
Dezavantajul major al toolboxului Biomedical este prețul acestuia, fiind greu accesibil în alte medii decât cele industriale. De aici putem concluziona utilitatea ințelegerii, cât și implementării unei astfel de unelte.
Capitolul 4 – Modelul propus spre implementare
4.1. Interfața de preluare a datelor din baza de date
Înaintea realizării aplicației, de interes sunt informații precum formatul datelor de preluat și sursa acestora. După cum se observă în figura de mai jos, se menționează date precum numele bazei, lungime, timp, tipuri de semnale.
Figura 84 – Format date din baza de date
Record mitdb/100
Notes
=====
69 M 1085 1629 x1
Aldomet, Inderal
=====
Starting time: not specified
Length: 30:05.556 (650000 sample intervals)
Sampling frequency: 360 Hz
2 signals
Group 0, Signal 0:
File: 100.dat
Gain: 200 adu/mV
Initial value: 995
Storage format: 212
Checksum: -22131
Group 0, Signal 1:
File: 100.dat
Gain: 200 adu/mV
Initial value: 1011
Storage format: 212
Checksum: 20052
Pentru aceasta, se utilizează toolboxul WFDB, apărut inițial pentru Matlab, însă care permite aducerea datelor în LabVIEW. Este practic o colecție de funcții implementate pentru manipularea conținutului preluat din baza de date și anume citire, scriere și plotare.
Toolboxul funcționează citind datele direct din PhysioBank, prin utilizarea internetului. Funcțiile implementate curent sunt următoarele:
rdann – pentru citirea adnotărilor din fișiere
rdsamp – pentru citirea semnalelor
setwfdb – pentru a seta căi
time2sec – pentru conversia formatului de afișare și prelucrare din timp în secunde
wfdb_config – returnează versiunea librăriei
wfdbdesc – returnează specificațiile datelor
wfdbwhich – găsește locația fișierelor
wrann – scrie adnotări în fișiere ce cuprind astfel de date
wrsamp – scrie date de tip semnală în fișiere compatibile
Desigur, aceste fișiere trebuiesc instalate in calculator, pentru a putea fi utilizate de către programe (spre exemplu, Matlab). Fișierele pot funcționa și prin preluarea acestora și introducerea în fișierele aplicațiilor. Este suficient a li se da calea și a rula precum o funcție obișnuită. [104]
Funcția rdsamp este folosită, așa cum am amintit mai sus, pentru accesarea și citirea fișierelor specificate. [105] Dacă sunt menționați anumiți parametri, funcția poate fi optimizată pentru a afișa si citi anumite părți din fișier și anume:
-c este folosit pentru a produce un format de tip CSV
-f este folosit pentru a menționa un anumit timp de începere; default este începutul fișierului
-h este utilizat pentru printarea unui sumar
-H citește semnalele în rezoluție maximă, nu standard
-l este folosit pentru limitarea intervalului de ieșire
-p duce afișajul în funcție de milisecunde, iar valorile în unități fizice
-P este similar cu –p, însă are o precizie mai mare, de până la 8 zecimale, nu 3 precum versiunea de mai deveme
-pd menționează data și ora, în cazul în care informația este regăsită
-pe afișează timpul parcurs de la început până la sfarșitul afișării curente, în format de tip hh:mm:ss
-ph realizează aceeași funcție precum –pe, însă în ore
-pm realizează aceeași funcție precum –pe, însă în minute
-ps realizează aceeași funcție precum –pe, însă în secunde
-pS realizează aceeași funcție precum –pe, însă în intervale rămase (sample)
-S caută primul sample valid pentru un semnal specificat, la un timp specificat spre exemplu prin funcția -f
-t menționează timpul de oprire
-v printează headingurile fișierelor
-X produce un fișier de tip XML la ieșire
Figura 85 – Panou frontal cu vizualizarea celor două canale
Figura 86 – Diferite variante de afișaj
Semnalele ECG sunt astfel importante prin implementarea funcțiilor de citire a datelor (rdsamp), formatul inițial propus fiind pentru Linux. Chiar și așa, datele pot fi aduse și rulate în cadrul aplicației propuse.
După cum se poate observa, rezultatele sunt satisfăcătoare până la modelul actual, putând fi vizualizat în timp real un semnal ECG pe două canale, respectiv a se putea seta căutări direct din interfață.
În implementare, a fost utilizată funcția descrisă anterior, fiind concatenate elementele necesare afișării, dar și prelucrării ulteriore prin decizia utilizatorului asupra intervalului de afișat, a fișierului parcurs, a bazei utilizate, cât și a rezoluției. Acestea pot fi setate ușor din interfața propusă în panoul frontal. De asemenea, aplicația propusă permite setarea intervalului atât în secunde, cât și în minute.
În continuare se pune problema prelucrării datelor accesate, cât și a căutării cât mai eficiente în baza de date, astfel încât medicul să poată compara și analiza diferite rezultate ECG.
4.2. Interfața de prelucrare a semnalelor ECG
Pentru implementarea unui model în LabVIEW, se va prezenta dezvoltarea acestuia detaliată, prin pași simplificați, figuri ilustrative și nu în ultimul rând, diagrame de lucru asociate. Se va urmări în paralel panoul frontal și diagrama bloc.
Înaintea realizării unui model, un prim pas este organizarea ideilor în pași simpli de parcurs. Astfel, aplicația își propune filtrarea unui semnal afectat de zgomot, afișarea semnalului inițial și filtrat în domeniul timpului și al frecvenței.
Figura 88 – Schemă simplificată a unei aplicații de prelucrare a semnalului
Pentru începerea aplicației, ne interesează generarea semnalului și suprapunerea acestuia cu un zgomot, reprezentat în această aplicație printr-un semnal de frevență înaltă.
Figura 90 – Blocul de simulare a unui semnal
În cazul aplicației noastre, setăm două semnale de amplitudini asemănătoare și frecvențe mult diferite, astfel încât să se exemplifice ulterior separea frecvențelor înalte de semnalul util. O primă observație ar fi faptul că frecvența de eșantionare trebuie să fie identică în cazul ambelor semnale.
Ulterior se vor aduna cele două semnale, urmând a fi trecute prin blocul de filtrare și vizualizare a spectrului.
Figura 91 – Bloc de adunare
Pentru implementare, se va aplica un filtru trece jos tip Butterword de ordin 2, cu frecvența de tăiere de 600 Hz.
Figura 92 – Bloc utilizat pentru filtrare
Prin vizualizarea rezultatelor în panoul frontal, se poate observa filtrarea corespunzătoare a frecvențelor înalte, nedorite.
Figura 93 – Rezultate filtrare
Figura 94 – Măsurători spectrale
În partea a doua, ne dorim vizualizarea frecvențelor atât pentru semnalul inițial, cât și pentru semnalul filtrat. Pentru aceasta, rezulatele vor fi preluate din ieșirea blocului FFT, fiind condusă și de această dată către blocul de vizualizare, Graph.
Figura 95 – Vizualizare spetru înainte și după filtrare
Astfel, aplicația finală se va prezenta în diagramă bloc conform figurii de mai jos, elementele fiind incluse în cadrul unei bucle de reglaj ce permite oprirea aplicației prin apăsarea butonului de stop. Corpul structurii repetitive va înconjura în acest fel blocurile aranjate la pașii anteriori. Scopul acestui reglaj este de vizualiza interactiv rezultatele filtrării realizate.
Filtrarea este o operație fundamentală într-un sistem de procesare a semnalelor, fiind utilizată de regulă pentru eliminarea zgomotului care afectează un semnal. Tocmai de aceea, primul exemplu va continua capitolul anterior prin extinderea aplicațiilor posibile la nivelul prelucrărilor semnalelor ECG. [100]
Aplicația își propune filtrarea în timp real, prin setarea atât a aparametrilor zgomotului care va afecta semnalul util, cât și a parametrilor filtrului sugerat. Astfel, se pot compara calitativ rezultatele diferitelor filtrări.
Frecvența și amplitudinea sunt preluate din ecranul frontal, reglate de către utilizator și preluate prin intermediul unor date de tip double în diagrama bloc. În mod similar se va prelua și frecvența de tăiere aplicată filtrului.
Figura 97 – Panoul frontal pentru aplicația de filtrare
Un element nou apărut în acest exemplu este un bloc de așteptare, care în acest caz va indica tipul așteptat de aplicație până când timerul devine un multiplu a numărului de milisecunde decis în aplicație. Altfel spus, este o funcție utilizată pentru a sincroniza activitatea în cadrul buclelor de reglaj.
Figura 98 – Bloc de reglare a sincronizării timerului
Structura aplicației este similară, fiind utilizat un filtru trece jos de această dată. Prin reglarea parametrilor, informația utilă poate sau nu să fie recuperată.
Figura 99 – Diagramă bloc aplicație de filtrare
Desigur, dacă frecvența filtrului este mare, zgomotul nu mai poate fi eliminat și informația utilă se pierde. Aplicația demonstrează utilitatea și necesitatea alegerii unei frecvențe optime în scopul extragerii semnalului real cules de la pacient. Introducerea de artefacte sau semnale noi poate conduce la un diagnostic greșit sau chiar imposibilitatea utilizării datelor preluate de către medic. Experimentarea în vederea alegerii frecvenței optime poate conduce spre optimizări în cadrul echipamentelor, în mod similar cu eliminarea frecvenței de 50 Hz dată de rețea.
Figura 100 – Rezultate filtrare pentru o frecvență de 150 Hz
Continuând partea de prelucrare, vom aborda în următoarea aplicație detecția valorii medie, valorii efective și respectiv a valorii instantanee pentru semnalul util suprapus.
Valoarea medie a unei mărimi periodice reprezintă media aritmetică a valorilor instantanee pe durata unei perioade T. Valoarea efectivă a unei mărimi periodice, pe de altă parte, este definită ca radical din media pătratelor valorilor instantanee pe timp de o perioadă, T. Nu în ultimul rând, valoarea efectivă a unei mărimi sinusoidale se obține substituind valoarea sa instantanee.
Figura 101 – Bloc de extragere parametri
Diagrama Averaged DC-RMS va calcula valoarea efectivă a semnalului. Ieșirea acestuia se conectează pentru afișarea rezultatelor de tip double. Aplicația va rula continuu până la apăsarea unui buton de stop, conectat la terminalul buclei. O execuție a buclei While la fiecare 10 ms se realizează prin includerea unui VI Wait Until Next ms Multiple, menționat în aplicația anterioară.
Figura 102 – Extragere informații de tip valoare medie și valoare efectivă
La depășirea unei valori de prag dorită pentru amplitudinea semnalului se va semnaliza acest fapt prin aprinderea unui LED. Pentru a se face comparația, se va utiliza o comparare de tip Grater, cu ieșirea contată la LED.
Figura 103 – Bloc de comparare
Nu în ultimul rând, de interes este vizualizarea spectrului semnalelor adăugate.
Figura 104 – Vizualizare spectru semnal
Figura 105 – Panoul frontal pentru aplicația propusă de extragere a valorii medie, instantanee și efectivă
Figura 106 – Diagramă bloc aplicație de extragere informație semnal
Pulsul reprezintă expansiunea ritmică a arterelor sanguine care se comprimă pe un plan și reflectă numărul de bătăi ale inimii care au loc pe parcursul unui minut. Pulsul este mai mic atunci când un om se află în repaus și crește la realizarea unor activități fizice. Frecvența cardiacă normală variază de la o persoană la alta, în funcție de gen, vârstă, stare generală de sănătate, etc.
De asemenea, pulsul oferă informații despre starea și permeabilitatea vaselor sanguine, precum și despre ritmul și puterea bătăilor inimii. Modificările ritmului inimii, un puls slab sau prezența rigidității vaselor de sânge pot fi cauzate de boli cardiovasculare sau de alte probleme. [106]
Următoarele valori sunt acceptate ca fiind normale pentru următoarele grupuri țintă, funcție de vârstă:
la 20 de ani – ritmul cardiac tinta 120 – 170 – ritmul cardiac maxim 200
la 25 de ani – ritmul cardiac tinta 117 – 166 – ritmul cardiac maxim 195
la 30 de ani – ritmul cardiac tinta 114 – 162 – ritmul cardiac maxim 190
la 35 de ani – ritmul cardiac tinta 111 – 157 – ritmul cardiac maxim 185
la 40 de ani – ritmul cardiac tinta 108 – 153 – ritmul cardiac maxim 180
la 45 de ani – ritmul cardiac tinta 105 – 149 – ritmul cardiac maxim 175
la 50 de ani – ritmul cardiac tinta 102 – 145 – ritmul cardiac maxim 170
la 55 de ani – ritmul cardiac tinta 99 – 140 – ritmul cardiac maxim 165
la 60 de ani – ritmul cardiac tinta 96 – 136 – ritmul cardiac maxim 160
la 65 de ani – ritmul cardiac tinta 93 – 132 – ritmul cardiac maxim 155
la 70 de ani – ritmul cardiac tinta 90 – 123 – ritmul cardiac maxim 150
Se atestă așadar importanța cunoașterii acestor parametrii. Aplicația realizată urmărește tocmai acest lucru și anume detectarea numărului de bătăi pe minut.
Figura 107 – Panoul frontal al aplicației de detecție a pulsului
Aplicația utilizează următoarea schemă logică, prezentată sub formă de flowchart.
Figura 108 – Algortim propus pentru extragerea numărului de bătăi pe minut
Algoritmul propune generarea unui semnal de tip Sawtooth, la o frecvență de 1,3 Hz, la care se adaugă un zgomot alb uniform, de amplitudine 0,6. Semnalul este eșantionat la o frecvență de eșantionare de 1 KHz.
Următorul pas este reprezentat de adăugarea unui filtru trece joc cu frecvența de tăiere de 40 Hz, la ieșirea unui filtru trece sus cu frecvența de tăiere de 1 Kz. Mai apoi, rezultatul este trecut printr-un bloc de tip Statistics, pentru a se calcula valoarea maximă a acestuia pe intervalul ales pentru colectarea datelor.
Datele sunt convertite în format dinamic, scalar, urmînd a fi preluate sub formă de date de tip double în prelucrările ulterioare.
De menționționat este și utilizarea unui bloc de tip Peak Detection care va putea colecta toate aceste date convertite în format dinamic, funcție de fereastra prestabilită aleasă.
Figura 114 – Bloc de detecție a peakurilor
În final se obține numărul de vâruri, prin împărțirea acestuia la fereastra aleasă putând fi afișara frecvența acestora. Etapa finală o prezintă înmulțirea rezutatelor cu 60, obținând numărul de bătăi pe minut (BPM). Reglajul este făcut și pentru această aplicație într-o buclă repetitivă de tip While.
Figura 115 – Extragerea informației utile
Figura 116 – Schema bloc a aplicației finală de extragere a numărului BPM
4.3. Implementarea modelului utilizând diferite platforme disponibile cu date medicale
4.4. Direcții viitoare în dezvoltarea modelului
Concluzii
http://en.wikipedia.org/wiki/Anatomical_plane (accesat la data de 12/04/2015)
https://anatomystudybuddy.wordpress.com (accesat la data de 12/04/2015)
Mary Boudreau Conover, Understanding Electrocardiography, Elsevier Health Sciences, 2003
http://en.wikipedia.org/wiki/Einthoven%27s_triangle (accesat la data de 12/04/2015)
Georgeta Mihaela Ungureanu, Analiza si prelucrarea semnalelor, Aplicatii in ingineria Biomedicala, editura MatrixROM Bucuresti, 2013
http://www.mathworks.com/matlabcentral/fileexchange/35328-simulink-model-for-fetal-ecg-extraction–hdl-compatible-algorithm-/content/mom_and_fetus.m (accesat la data de 12/04/2015)
C. Kezi Selva Vijila, M.E., P. Kanagasabapathy and Stanley Johnson , Fetal ECG Extraction using Softcomputing Technique. Journal of Applied Sciences, 2006
Willem Melssen, Ron Wehrens and Lutgarde Buydens, Supervised Kohonen networks for classification problems, Chemometrics and Intelligent Laboratory Systems 83 99–113, IEEE, 2006
Davide Ballabio, Mahdi Vasighi, A MATLAB toolbox for Self Organizing Maps and supervised neural network learning strategies, Chemometrics and Intelligent Laboratory Systems, IEEE, 2012
D. Cochior, C. Ciobanu-Oprea, D. Peta, D. Custura, L. Pripisi, V. Tecuceanu, Realitatea virtuala chirurgicala – conceptul de modelare a mediului de simulare laparoscopica, EMCB, 2005
http://faculty-web.at.northwestern.edu/at/beaman/ecg/index.html (accesat la data de 16/05/2015)
http://ecgdatabase.com/ (accesat la data de 16/05/2015)
http://lifeinthefastlane.com/ecg-library/ (accesat la data de 16/05/2015)
http://www.ecglibrary.com/ecghome.php (accesat la data de 16/05/2015)
http://www.norav.com/en/index.html (accesat la data de 16/05/2015)
Sanda Victorinne Pațurcă, Instrumentație virtuală pentru bio-monitorizare, editura PRINTECH, 2015
KERTÉSZ Csaba-Zoltán, Laurențiu-Mihail IVANOVICI, Procesarea digitală a semnalelor, Îndrumar de laborator, Universitatea Transilvania Brașov, 2009
Ricardo Dunia, Eric Dean, and Dr. Thomas Edgar, Introduction to LabVIEW for Control Design & Simulation, Process Dynamics and Control, 2nd edition, 2004
Hans Petter Halvorsen, Introduction to LabVIEW, 2003
http://www.ni.com/getting-started/LabVIEW-basics/ (accesat la data de 10/02/2015)
http://physioforge.csail.mit.edu/wfdbtools/wfdb-swig-matlab/ (accesat la data de 07/04/2015)
http://www.physionet.org/physiotools/wag/rdsamp-1.htm (accesat la data de 07/04/2015)
Dezideriu Laky, Biopatologia miocardului ischemic si protectia miocardica in chirurgia cardiaca, editura MEDICALA, 2008
http://sine.ni.com/nips/cds/view/p/lang/ro/nid/211023 (accesat la data de 12/06/2015)
http://zone.ni.com/reference/en-XX/help/373696B-01/lvbioconcepts/lvbioconcepts/ (accesat la data de 12/06/2015)
http://zone.ni.com/reference/en-XX/help/373696B-01/lvbiomed/bio_vis/ (accesat la data de 12/06/2015)
Biomedical Workbench Help, National Instruments, 373698B-01, June 2013
http://physionet.org/tutorials/hrv-toolkit/ (accesat la data de 13/06/2015)
https://en.wikipedia.org/wiki/Heart_rate_variability (accesat la data de 13/06/2015)
http://www.ni.com/example/30832/en/ (accesat la data de 13/06/2015)
http://www.catia.ro/articole/labview1/labview1.htm (accesat la data de 14/06/2015)
http://en.wikipedia.org/wiki/Anatomical_plane (accesat la data de 12/04/2015)
https://anatomystudybuddy.wordpress.com (accesat la data de 12/04/2015)
Mary Boudreau Conover, Understanding Electrocardiography, Elsevier Health Sciences, 2003
http://en.wikipedia.org/wiki/Einthoven%27s_triangle (accesat la data de 12/04/2015)
Georgeta Mihaela Ungureanu, Analiza si prelucrarea semnalelor, Aplicatii in ingineria Biomedicala, editura MatrixROM Bucuresti, 2013
http://www.mathworks.com/matlabcentral/fileexchange/35328-simulink-model-for-fetal-ecg-extraction–hdl-compatible-algorithm-/content/mom_and_fetus.m (accesat la data de 12/04/2015)
C. Kezi Selva Vijila, M.E., P. Kanagasabapathy and Stanley Johnson , Fetal ECG Extraction using Softcomputing Technique. Journal of Applied Sciences, 2006
Willem Melssen, Ron Wehrens and Lutgarde Buydens, Supervised Kohonen networks for classification problems, Chemometrics and Intelligent Laboratory Systems 83 99–113, IEEE, 2006
Davide Ballabio, Mahdi Vasighi, A MATLAB toolbox for Self Organizing Maps and supervised neural network learning strategies, Chemometrics and Intelligent Laboratory Systems, IEEE, 2012
D. Cochior, C. Ciobanu-Oprea, D. Peta, D. Custura, L. Pripisi, V. Tecuceanu, Realitatea virtuala chirurgicala – conceptul de modelare a mediului de simulare laparoscopica, EMCB, 2005
http://faculty-web.at.northwestern.edu/at/beaman/ecg/index.html (accesat la data de 16/05/2015)
http://ecgdatabase.com/ (accesat la data de 16/05/2015)
http://lifeinthefastlane.com/ecg-library/ (accesat la data de 16/05/2015)
http://www.ecglibrary.com/ecghome.php (accesat la data de 16/05/2015)
http://www.norav.com/en/index.html (accesat la data de 16/05/2015)
Sanda Victorinne Pațurcă, Instrumentație virtuală pentru bio-monitorizare, editura PRINTECH, 2015
KERTÉSZ Csaba-Zoltán, Laurențiu-Mihail IVANOVICI, Procesarea digitală a semnalelor, Îndrumar de laborator, Universitatea Transilvania Brașov, 2009
Ricardo Dunia, Eric Dean, and Dr. Thomas Edgar, Introduction to LabVIEW for Control Design & Simulation, Process Dynamics and Control, 2nd edition, 2004
Hans Petter Halvorsen, Introduction to LabVIEW, 2003
http://www.ni.com/getting-started/LabVIEW-basics/ (accesat la data de 10/02/2015)
http://physioforge.csail.mit.edu/wfdbtools/wfdb-swig-matlab/ (accesat la data de 07/04/2015)
http://www.physionet.org/physiotools/wag/rdsamp-1.htm (accesat la data de 07/04/2015)
Dezideriu Laky, Biopatologia miocardului ischemic si protectia miocardica in chirurgia cardiaca, editura MEDICALA, 2008
http://sine.ni.com/nips/cds/view/p/lang/ro/nid/211023 (accesat la data de 12/06/2015)
http://zone.ni.com/reference/en-XX/help/373696B-01/lvbioconcepts/lvbioconcepts/ (accesat la data de 12/06/2015)
http://zone.ni.com/reference/en-XX/help/373696B-01/lvbiomed/bio_vis/ (accesat la data de 12/06/2015)
Biomedical Workbench Help, National Instruments, 373698B-01, June 2013
http://physionet.org/tutorials/hrv-toolkit/ (accesat la data de 13/06/2015)
https://en.wikipedia.org/wiki/Heart_rate_variability (accesat la data de 13/06/2015)
http://www.ni.com/example/30832/en/ (accesat la data de 13/06/2015)
http://www.catia.ro/articole/labview1/labview1.htm (accesat la data de 14/06/2015)
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: Limbajul Labview (ID: 149976)
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.
