====== Elettrocardiografo Contec 90A ======
L'**ECG90A** è un cardiografo costruito dalla cinese **[[http://www.contecmed.com/|Contec]]**, in Italia viene commercializzato da **[[https://www.gimaitaly.com/|Gima]]** e venduto su diversi portali on-line. Ho provato un modello acquistato on-line per circa **350 euro** (novembre 2020).
{{.:ecg90a:contec_ecg90a.jpg?400 |Contec ECG90A}}
Gima ha fatto personalizzare la produzione aggiungendo il proprio logo sulla scatola e sul manuale. Il **manuale** (in fondo a questa pagina il PDF) è anche in **italiano**, ma **lascia molto a desiderare** in quanto a completezza di informazioni. Questa pagina nasce proprio per integrare ciò che non è documentato.
Il cardiografo è in grado di acquisire le **12 derivazioni** standard, ma viene pubblicizzato come **3 canali**. Il motivo è che il nastro di carta è molto stretto e si possono stampare al massimo tre tracciati contemporaneamente. La stampa delle 12 derivazioni avviene eventualmente in quattro **sezioni consecutive**, producendo una nastro di notevole lunghezza! Si può tuttavia **scaricare i tracciati sul PC** e per me questa è la caratteristica più interessante.
Lo strumento è molto sensibile, ma "cattura" molto **rumore**. Devo tuttavia fare qualche prova in più, stando magari attento agli apparecchi elettrici accesi nelle vicinanze e provando una messa a terra più seria. Internamente si possono attivare **tre tipi di filtri**: AC50Hz, EMG25Hz e DTF, ma per le poche prove che ho fatto credo che si ottengano risultati migliori acquisendo il dato senza filtri e poi **pulendo il rumore con software** specializzato sul PC.
===== Elettrodi (10) e derivazioni (12) =====
Un cardiografo a **12 derivazioni** produce **12 grafici** dell'attività elettrica del cuore; ogni grafico offre la vista da una diversa angolazione dell'attività cardiaca.
Una **derivazione** si chiama così perché, dal punto di vista elettrico, è il collegamento di due elettrodi in parallelo ad un circuito esistente (il campo elettrico generato dal muscolo cardiaco) in modo da "derivarne" parte della corrente. Le correnti derivate dal campo elettrico del muscolo cardiaco vengono opportunamente amplificate, acquisite da un convertitore analogico-digitale (ADC) e tradotte in un grafico.
Alcune derivazioni (dette **bipolari**) sfruttano due elettrodi, altre (dette **unipolari**) usano un solo elettrodo rispetto ad un **elettrodo neutro** di riferimento.
Con un **triangolo di tre elettrodi** è possibile costruire **tre derivazioni bipolari**. Gli stessi tre elettrodi possono essere usati anche come **tre derivazioni unipolari** (rispetto all'elettrodo neutro di riferimento). Infine altri **sei elettrodi** costituiscono altrettante **derivazioni unipolari** usando sempre lo stesso elettrodo neutro di riferimento. Ecco quindi il totale di 3 + 3 + 6 = **12 derivazioni** ottenute con 3 + 6 + 1 = **10 elettrodi**.
Nella seguente tabella le derivazioni misurabili dall'**ECG 90A**:
^ I | Bipolare | Derivazione periferica fra polso destro e polso sinistro (elettrodi **rosso** e **giallo**). |
^ II | Bipolare | Derivazione periferica fra polso destro e caviglia sinistra (elettrodi **rosso** e **verde**). |
^ III | Bipolare | Derivazione periferica fra polso sinistro e caviglia sinistra (elettrodi **giallo** e **verde**). |
^ avR | Unipolare | Augmented voltage right, derivazione periferica, elettrodo **rosso**. |
^ avL | Unipolare | Augmented voltage left, derivazione periferica, elettrodo **giallo**. |
^ avF | Unipolare | Augmented voltage foot, derivazione periferica, elettrodo **verde**. |
^ V1 | Unipolare | Elettrodo precordiale (toracico) **V1** bianco o rosso. |
^ V2 | Unipolare | Elettrodo precordiale (toracico) **V2** bianco o giallo. |
^ V3 | Unipolare | Elettrodo precordiale (toracico) **V3** bianco o verde. |
^ V4 | Unipolare | Elettrodo precordiale (toracico) **V4** bianco o marrone. |
^ V5 | Unipolare | Elettrodo precordiale (toracico) **V5** bianco o nero. |
^ V6 | Unipolare | Elettrodo precordiale (toracico) **V6** bianco o viola. |
==== Derivazioni periferiche ====
{{ .:ecg90a:ecg-einthoven-triangle.png?280|Il triangolo Einthoven - Da it.wikipedia.org ECG-Einthoven-triangle.svg}}
Le cosiddette **derivazioni periferiche degli arti** sono generalmente rilevate con elettrodi posti alle **estremità degli arti** (polso, caviglia). Lo stesso segnale può essere intercettato anche alla **radice dell'arto** stesso (spalla, inguine), ma la forma dell'onda differisce nei due casi, rendendo di fatto i due tracciati non comparabili fra loro %%[%%[[#Web References & Docs|3]]%%]%%.
=== Derivazioni bipolari ===
Queste derivazioni **DI**, **DII** e **DIII**, utilizzano i tre elettrodi periferici coppia a coppia.
=== Derivazioni unipolari aumentate ===
Queste derivazioni unipolari **avL**, **avR** e **avF**, dette anche **di Goldberger**, utilizzano i tre elettrodi periferici rispetto all'elettrodo neutro comune. In queste derivazioni il segnale viene amplificato (da cui il nome //augmented voltage//) per essere confrontato con le bipolari.
==== Derivazioni precordiali ====
Sono derivazioni **unipolari toraciche** (//chest//), dette anche **derivazioni di Wilson**. Misurano l'attività cardiaca sul piano trasversale (orizzontale). Gli elettrodi sono identificati con le sigle **C1, ..., C6** (elettrodi //chest//) secondo lo standard **IEC** (International Electrotechnical Commission) oppure con le sigle **V1, ... V6** (//voltage//) secondo lo standard **AHA** (American Heart Association).
===== Filtri sul tracciato ECG =====
La grandezza del segnale ECG è misurata in mV (millivolt); di solito è nel range 0.1 - 2 mV. L'interfaccia pelle-elettrodi può generare interferenze nell'ordine dei 200-300 mV, per questo è necessario un buon contatto elettrico utilizzando l'apposito gel.
Il **segnale ECG può essere disturbato** da diversi tipi di **rumore**, l'ECG 90A dispone di alcuni **filtri software** che è possibile applicare sul segnale acquisito; vedere in proposito il **[[#menu_sample|menu Sample]]** illustrato più avanti. Qui di seguito una panoramica sui tipi di rumore che è possibile attenuare.
=== AC ===
**Alternating Current**, corrente alternata. Se si ha il sospetto che l'apparecchio possa ricevere interferenze dalla rete elettrica (in genere da apparecchi elettrici accesi nelle vicinanze), si può attivare un filtro sulla frequenza relativa. In Italia la rete elettrica a 220 volt è a 50 Hz (per altri paesi vedere [[wpit>Standard elettrici nel mondo]]). Si tratta di un filtro //notch// ([[wpit>Filtro elimina banda]]) che elimina (attenua) solo i segnali a tale frequenza.
=== EMG ===
Il segnale di un elettrocardiogramma (ECG) prodotto dal miocardio può essere contaminato dai **segnali elettromiografici** (**EMG**) prodotti dai muscoli. Questo avviene ad esempio in un tracciato acquisito durante esercizio fisico oppure in presenza di tremori. Il cuore produce segnali a circa 1 Hz, i muscoli possono produrre segnali nel range 5 - 50 Hz, ma anche fino a 10 kHz. Se si ha il sospetto di una tale contaminazione, si può attivare uno dei due filtri EMG a 25 o 35 Hz. Si tratta di **filtri passa basso** con delle controindicazioni: oltre a modificare l'ampiezza del segnale, potrebbero degradare le componenti QRS dell'elettrocardiogramma.
=== DFT ===
La **DFT** (//Discrete Fourier Transform//, trasformata discreta di Fourier) è un metodo che può essere utilizzato per togliere (attenuare) il rumore da un segnale; funziona molto bene per rumori che presentano una certa regolarità.
Per calcolare la DFT si utilizza l'algoritmo FFT (fast Fourier transform).
===== Guida operativa =====
==== Tasti e touch screen ====
Il dispositivo dispone di **sette tasti fisici** e di un **touch screen**. Questo l'utilizzo generico dei tasti fisici:
^ {{.:ecg90a:btn-menu.png?38}} | --- | In genere asssociato all'azione **Menu** oppure **Conferma**. |
^ {{.:ecg90a:btn-on.png?38}} | On/Off | **Accensione** e **spengimento** (tenere premuto per tre secondi), oppure azione **Conferma**. |
^ {{.:ecg90a:btn-print.png?38}} | %%---%% | In genere asssociato all'azione **Indietro** oppure **Stampa**. |
^ {{.:ecg90a:btn-left.png?18}} {{.:ecg90a:btn-up.png?26}} {{.:ecg90a:btn-down.png?26}} {{.:ecg90a:btn-right.png?18}} | Frecce | Tasti di **movimento**. |
==== Accensione ====
Collegando l'apparecchio spento alla sua **alimentazione** (12 V) si illumina l'icona che indica lo **stato di carica della batteria**:
{{.:ecg90a:ecg90a_charging.jpg?280|ECG 90A in carica}}
Tenendo premuto il **tasto On** per **tre secondi** l'apparecchio si accende e si pone automaticamente nella schermata del **tracciato ECG**:
{{.:ecg90a:ecg90a_ecg-graph.jpg?280|Schermata ECG}}
Premendo ripetutamente il **tasto On** si passa alla visualizzazione di **una**, **tre**, **sei** oppure tutte le **dodici derivazioni**:
{{.:ecg90a:ecg90a_01-tracks.jpg?160|}}
{{.:ecg90a:ecg90a_03-tracks.jpg?160|}}
{{.:ecg90a:ecg90a_06-tracks.jpg?160|}}
{{.:ecg90a:ecg90a_12-tracks.jpg?160|}}
==== Schermata ECG ====
Nella **barra superiore** troviamo:
^ BPM | **Icona cuore** con il **ritmo cardiaco** in battiti al minuto. |
^ Elettrodi | In sequenza compaiono, in rosso, le **etichette** degli **elettrodi scollegati** seguite dalla scritta **OFF**: Le etichette sono **LA**, **RA**, **LL**, **RL**, **V1**, ..., **V6**. Il significato è //Left// e //Right// //Arm// (braccio sinistro e destro), //Left// e //Right// //Leg// (gamba sinistra e destra) e i sei elettrodi precordiali. L'apparecchio non è in grado di rilevare il singolo elettrodo scollegato poiché le derivazioni bipolari coinvolgono due elettrodi, ecc. |
^ HH:MM | **Ora corrente**. L'ora e la data si impostano dal menu Time. |
^ F | **Icona filtri**: toccare per accedere alla **selezione rapida dei filtri**. I filtri possono essere impostati anche dal menu Sample. |
^ USB | **Icona USB**: stato della connessione USB. FIXME |
^ microSD | **Icona microSD**: toccare per vedere lo stato della microSD. |
^ Batteria | **Icona batteria**: mostra lo stato di carica. |
Nella **barra inferiore** troviamo dei pulsanti attivabili al tocco:
^ Menu | Va al **menu principale**. |
^ mm/s | **Scala asse X** (velocià avanzamento carta). Toccare ripetutamente oppure usare i tasti su/giù per scegliere la scala. |
^ mm/mV | **Scala asse Y** (ampiezza del grafico in mm per millivolt). Toccare ripetutamente oppure usare i tasti su/giù per scegliere la scala. |
^ Formato | Formato da utilizzare per la stampa su carta (vedi avanti **[[#Menu Stampa]]**). L'opzione **Store** non stampa il tracciato ma lo salva su scheda microSD. |
^ Print/Start/Stop | **Inizia/ferma** la stampa o il salvataggio su microSD. |
La scala dell'asse X può assumere i valori: **6.25**, **12.5**, **25** oppure **50** **mm/s**. La scala dell'asse Y può assumere i valori di **2.5**, **5**, **10** e **20** **mm/mV**.
**ATTENZIONE**: Le scale impostata per gli assi X e Y influiscono solo sulla visualizzazione del tracciato, ma **non influiscono sul tracciato memorizzato** su scheda SD; i dati vengono sempre acquisiti a **800 Hz** e il moltiplicatore dell'asse X è sempre **0.005 mV**.
==== Menu principale ====
Utilizzare i **tasti freccia** per evidenziare l'icona desiderata e il **tasto On** per selezionarla:
{{.:ecg90a:ecg90a_main-menu.jpg?280|Main Menu}}
==== Menu Sample ====
Nel caso in cui il tracciato sia affetto da qualche tipo di rumore, è possibila attivare alcuni tipi di filtro sul segnale ECG acquisito. Vedere sopra il paragrafo **[[#Filtri sul tracciato ECG]]**. Questi in sintesi i filtri applicabili:
^ AC Filter | **50 Hz** oppure **60 Hz** |
^ EMG Filter | **25 Hz** oppure **35 Hz** |
^ DFT Filter | **On** oppure **Off** |
È possibile applicare i filtri sia dal **menu Sample** che toccando l'**icona F** nella schermata ECG:
{{.:ecg90a:ecg90a_sample-menu.jpg?280|Menu Sample}}
{{.:ecg90a:ecg90a_filter-setting.jpg?280|Filter Setting}}
Il **filtro è applicato** alla forma d'onda prima di essere visualizzata e stampata ed anche **prima di essere eventualmente salvata** su scheda microSD. Quando si visualizza un tracciato salvato si dovrebbe ricordare quali filtri erano attivi al momento della registrazione.
:!: **ATTENZIONE**! Quando si stampa un tracciato **salvato su microSD** viene scritto sul bordo della stampa quali sono i filtri **correntemente attivi nel menu Sample**, che **potrebbero essere diversi da quelli attivi al momento della registrazione**! Nelle figure sotto si vede la stampa di due tracciati acquisiti su scheda SD e stampati successivamente. Il primo è stato registrato senza alcun filtro, il secondo con tre filtri attivi: **AC50Hz**, **EMG25Hz** e **DFT**. La stampa effettuata dopo l'acquisizione riporta l'etichetta **NONE** per entrambi, il che **non è vero per il secondo tracciato**:
{{.:ecg90a:ecg-filter-none.png?200|ECG senza filtri attivi}}
{{.:ecg90a:ecg-filter-ac50-emg25-dft.png?200|ECG con filtri AC50Hz, EMG25Hz e DFT}}
==== Menu Print ====
{{.:ecg90a:ecg90a_print-menu.jpg?280|Menu Print}}
I **formati di stampa** disponibili sono:
^ 1x12 | In una griglia di **1 riga x 12 colonne** stampa un campione di **N secondi** delle **12 derivazioni**. |
^ 1x12+1 | In una griglia di **1 riga x 12 colonne** (di altezza ridotta) stampa un campione di **N secondi** delle **12 derivazioni**. Sulla **seconda riga** stampa **DI** per tutto l'intervallo di tempo. |
^ 2x6 | In una griglia di **2 righe x 6 colonne** stampa un campione di **N secondi** delle **12 derivazioni**. |
^ 2x6+1 | In una griglia di **2 righe x 6 colonne** (di altezza ridotta) stampa un campione di **N secondi** delle **12 derivazioni**. Sulla **terza riga** stampa **DI** per tutto l'intervallo di tempo. |
^ 3x4 | In una griglia di **3 righe x 4 colonne** stampa un campione di **N secondi** delle **12 derivazioni**. |
^ Manual | La stampa avverrà **in continuo** (finché non sarà fermata) e il formato potrà essere selezionato in tempo reale durante la stampa stessa. Per cambiare formato durante la stampa si preme il **tasto On** per seleziona **1 riga** oppure **3 righe** e si premono i **tasti freccia** per scegliere le derivazioni stampate. |
^ Store | Non stampa il tracciato ma lo **salva su scheda microSD**. |
Il numero **N** di secondi che vengono stampati dipende dal parametro **Auto Strip** impostabile nel **menu Print** (default 3 secondi).
Nella figura che segue un esempio di stampa in **formato 3x4**, con Auto Strip di **3 secondi**. Sul bordo della stampa si trova evidenziata la scala X di **25mm/s**, la scala Y di **10mm/mV** e il filtro attivo **EMG25Hz**:
{{.:ecg90a:ecg-print-3x4.png?420|Formato stampa 3x4}}
La seguente immagine riporta l'inizio di una stampa **formato 2x6**, con filtri **EMG25Hz** e **DFT** attivi:
{{.:ecg90a:ecg-print-2x6.png?420|Formato stampa 2x6}}
Nella stampa **formato 1x12** è possibile utilizzare la scala Y più ampia di **20mm/mV**:
{{.:ecg90a:ecg-print-1x12.png?338|Formato stampa 1x12}}
==== Menu Time ====
In questo schermata si imposta la data e l'ora dell'apparecchio, che verrà stampata sull'elettrocardiogramma. Utilizzare i tasti freccia **destra** e **sinistra** per spostarsi sul campo da modificare, i tasti **su** e **giù** (oppure + e - sul touch screen) per cambiare il valore. Il **tasto -** (oppure Ok sul touch screen) per accettare le modifiche, il **tasto ---** (oppure Back sul touch screen) per tornare indietro senza memorizzare le modifiche.
{{.:ecg90a:ecg90a_date-time.jpg?280|Impostazione data e ora}}
==== Menu Archive ====
Sul fianco destro dell'apparecchio troviamo un alloggiamento per una **microSD** protetto da uno sportellino in gomma. Abbiamo utilizzato la scheda microSD fornita in dotazione da **8 Gb**, formattata **FAT32**.
{{.:ecg90a:ecg90a_sd-card.jpg?200|Alloggiamento microSD}}
Toccando l'icona microSD nella schermata ECG vengono visualizzate le informazioni sulla scheda, non è chiaro il motivo per cui vengono indicati meno di 4 Gb liberi:
{{.:ecg90a:ecg90a_sdcard-info.jpg?200|microSD info}}
Dal menu principale si accede al **menu Archive**, qui vengono mostrati gli eventuali tracciati memorizzati:
{{.:ecg90a:ecg90a_archive-menu.jpg?280|Main Menu}}
===== Acquisizione del tracciato =====
==== Posizionamento degli elettrodi ====
{{ .:ecg90a:precordial_leads_2.png?200|Posizione elettrodi precordiali (da commons.wikimedia.org: Precordial_Leads_2.svg}}
{{ .:ecg90a:elettrodi-periferici.png?140|Posizione degli elettrodi periferici}}
^ Rosso | Braccio destro |
^ Giallo | Braccio sinistro |
^ Verde | Gamba sinistra |
^ Nero | Gamba destra, elettrodo neutro di riferimento |
^ V1 | Quarto spazio intercostale parasternale di destra |
^ V2 | Quarto spazio intercostale parasternale di sinistra |
^ V3 | Nello spazio fra V2 e V4 |
^ V4 | Quinto spazio intercostale nell'emiclaveare di sinistra |
^ V5 | Quinto spazio intercostale nell'ascellare anteriore di sinistra |
^ V6 | Quinto spazio intercostale nell’ascellare media di sinistra |
{{.:ecg90a:leads-scheme.png?280 |Schema delle derivazioni}}
Dallo schema delle derivazioni raffigurato nel manuale (figura qui a fianco), si potrebbe pensare che l'apparecchio sia in grado di acquisire alcuni tracciati collegando solo alcuni elettrodi; ad esempio per la derivazione **DII** dovrebbe bastare collegare il **polso destro** e la **caviglia sinistra** (elettrodi rosso e verde). In realtà l'apparecchio continua a segnalare elettrodo scollegato (OFF) finché non si collega almeno anche l'elettrodo neutro di riferimento alla **caviglia destra** (nero). Con **tre elettrodi** collegati scompare il segnale di //RA OFF//, ma l'acquisizione della traccia **non funziona**; in pratica è necessario collegare **tutti i quattro elettrodi periferici** per iniziare a **tracciare le sei derivazioni DI, DII, DII, avR, avL e avF**. Le **derivazioni precordiali** sono invece indipendenti l'una dalle altre: è sufficiente aver collegato l'**elettrodo neutro** di riferimento e il relativo elettrodo **V1**, ..., **V6** per avere il tracciato.
Il cardiografo viene fornito con elettrodi a pinza per le cosiddette **derivazioni periferiche**, da posizionarsi ai polsi e alle caviglie (vedere schema nella figura a fianco). Come spiegato sopra lo stesso segnale può essere intercettato anche alla **radice dell'arto** (ma la forma dell'onda differisce nei due casi), in tal caso è possibile utilizzare **elettrodi monouso** a bottone, acquistando gli opportuni **adattatori** da banana a clip.
Dopo aver collegato gli elettrodi, nella **schermata ECG** si verifica che il tracciato sia ben **visibile**. L'apparecchio provvede in modo automatico a **centrare la traccia** sull'asse Y; ovviamente ogni disturbo, soprattutto quelli causati dall'attività muscolare, possono provocare uno spostamento verso l'alto o verso il basso del grafico, che si tuttavia si aggiusta automaticamente in pochi secondi. Premendo il **tasto On** si passa alla visualizzazione di una, tre, sei o dodici tracce contemporanemante.
Con i pulsanti del touch screen si imposta la **velocità** della carta (mm/s), l'**ampiezza** del grafico (mm/mV) e il **formato** di stampa. Ovviamente la modalità più evoluta si ottiene selezionando il **formato Store**, cioè il salvataggio del tracciato su scheda SD invece della stampa diretta su carta: in questa modalià il pulsante **Print** diventa pulsante **Start**. È importante sapereche velocità e ampiezza impostate **non influiscono sul tracciato memorizzato** su scheda: la frequenza di campionamento sarà sempre **800 Hz** e la risoluzione in ampiezza di **0,005 mV**.
==== Selezione dei filtri ====
Discorso a parte è l'**impostazione dei filtri**. L'apparecchio è ovviamente molto **sensibile al rumore elettrico** dell'ambiente, ad esempio abbiamo constatato come un notebook acceso **a pochi metri di distanza** crea un forte rumore nel segnale acquisito. Con il **pulsante F** del touch screen è possibile **attivare** fino a tre **filtri**, dei quali però non vengono forniti dettagli nella documentazione.
^ Filtro AC | Disponibile nella frequenza di **50 Hz** oppure di **60 Hz**. **Molto probabilmente** si tratta di un //filtro notch//, cioè che riduce solo quella particolare frequenza. In Italia la tensione degli impianti elettrici è a 50 Hz, pertanto si può provare ad attivare il filtro relativo se si sospettano interferenze da apparecchi elettrici. |
^ Filtro EMG | Disponibile nella frequenza di **25 Hz** oppure di **30 Hz**. **Probabilmente** si tratta di un //filtro passa basso// (che taglia cioè tutte le frequenze al di sopra di tale soglia) pensato per ridurre il rumore elettromiografico causato da attività muscolare tipo tremori, ecc. |
^ Filtro DFT | In generale i filtri basati sulla trasformata discreta di Fourier sono molto efficienti per attenuare i rumori che presentano una certa regolarità, tuttavia è **impossibile dire come opera tale filtro** nell'ECG90A, non essendo assolutamente documentato. |
**ATTENZIONE**: L'impostazione del filtro **influenza il tracciato memorizzato** su scheda SD e **non è possibile sapere** quali erano le impostazioni del filtro al momento della registrazione. Pertanto il mio consiglio è quello di **lasciare i filtri disattivi quando si utilizza il metodo store** ed eventualmente applicare i filtri opportuni nella successiva fase di analisi del tracciato, **utilizzando dei software** che consentano questa operazione.
Negli esempi che seguono l'elettrocardiografo era in presenza di un forte disturbo elettrico (notebook acceso a due metri di distanza). Nella prima immagine il tracciato registrato **senza filtri** attivi:
{{.:ecg90a:ecg90a_filter-none.png?260|ECG90A - Nessun filtro attivo}}
Nelle tre figure che seguono sono stati attivati i filtri **AC50Hz**, **EMG25Hz** e **DFT** singolarmente:
{{.:ecg90a:ecg90a_filter-ac50hz.png?260|ECG90A - Filtro AC50Hz}}
{{.:ecg90a:ecg90a_filter-emg25hz.png?260|ECG90A - Filtro EMG25Hz}}
{{.:ecg90a:ecg90a_filter-dft.png?260|ECG90A - Filtri DFT}}
Nelle prove effettuate l'apparecchio è stato sempre **alimentato con la batteria interna** (quindi senza aver collegato l'alimentatore AC-12V in dotazione). Il collegamento del **cavo giallo/rosso di terra** non ha mostrato alcuna variazione sulla qualità dei grafici.
===== Software open source per stampa ed esportazione dati =====
Il software fornito in dotazione all'ECG90A è **proprietario** (non open source) e funziona solo con **MS-Windows**. Per questo motivo ho scritto un programma alternativo in grado di interpretare i file ECG, stamparli in **PDF**, esportarli in formato **CSV**, **EDF** e **SCP-ECG**. Il software è **libero e gratuito**, è scritto in Python e può funzionare sia in ambiente **GNU/Linux**, **Windows** e **MacOS**. Potete scaricarlo dal repository GitHub **[[https://github.com/RigacciOrg/ecg-contec]]**.
===== Software ECG Synchronous =====
{{.:ecg90a:ecg-synchronous-screenshot.png?400 |ECG Synchronous}}
Il cardiografo viene fornito con il software **ECG Synchronous v1.3.7** per Windows. Lo abbiamo installato su una **macchina virtuale Windows 10**.
Appena si collega il cavetto USB al computer, il cardiografo chiede sul display se si desidera attivare la modalità **MASS** oppure **HID**. La modalità può essere impostata anche dal menu **System** => **USB-Mode**, dove le due modalità sono indicate con **Store** e **Syn** rispettivamente. In generale la modalità //mass storage// presenta il cardiografo al computer some una unità di memoria, dentro la quale è possibile accedere ai casi salvati. Invece la modalità //Syn// (tecnicamente di tipo HID, //human interface device//) consente la comunicazione bidirezionale fra computer e cardiografo.
Il software è in grado di **esportare** i tracciati nel formato XML **HL7 aECG**, che tuttavia non sembra molto supportato da altri software. Non ci sono funzioni per importare tracciati da altri formati.
Possono essere prodotti dei report in PDF, qui potete scaricare un **{{.:ecg90a:ecg-sync_0000018.pdf|esempio di tracciato a 12 derivazioni}}** in formato A4 landscape. Il PDF contiene **il tracciato in forma di vettore**, quindi è possibile ingrandire mantenendo la qualità del grafico fino ad apprezzare **il decimo di millimetro**. Purtroppo durante l'importazione del file **non viene mantenuto il numero progressivo del caso** assegnato dal cardiografgo, ma il software assegna **un diverso numero seriale**. Nel PDF viene riportata **la data e l'ora** dell'esecuzione del tracciato; tale informazione purtroppo non è disponibile nella schermata di gestione dei casi. Sempre nel PDF viene asserita una frequenza di campionamento di **1000 Hz**, che **non corrisponde alla realtà**: il dispositivo memorizza solo **800 campioni al secondo**.
{{ .:ecg90a:ecg90a_usb-mode.jpg?180|ECG90A - USB Mode}}
Ovviamente la modalità più interessante è la Syn, che consente sia di trasferire i casi memorizzati dal cardiografo al computer per poterli analizzare e stampare. Inoltre sarebbe possibile anche utilizzare il cardiografo controllandolo direttamente dal programma sul computer. Purtroppo abbiamo avuto **gravi problemi di comunicazione** fra cardiografo e computer, forse causati dall'uso su emulatore? Il controllo del cardiografo dal PC **non ha mai funzionato** ed anche il download dei casi **ha funzionato solo sporadicamente**.
Cliccando sull'icona **DownLoad Case** si incappa quasi sempre negli errori **Send getting info of device failed!** e **Failed to read the information in device**:
{{.:ecg90a:ecg_synchronous_getting-info-failed.png?135|ECG Synchronous - Communication Error}}
{{.:ecg90a:ecg_synchronous_failed-to-read-device.png?207|ECG Synchronous - Device Read Error}}
Quando invece funziona, viene mostrato l'elenco dei casi salvati sul dispositivo ed è possibile selezionare quelli che si vuole scaricare sul PC:
{{.:ecg90a:ecg_synchronous_download-case.png?376|ECG Synchronous - Download Case}}
I casi scaricati vengono elaborati dal programma e salvati nella directory **C:\ECG Synchronous V1.3.7\Archive\**, una cartella per ogni caso identificata con un numero progressivo. I file di nome **ecg.c8k** che troveremo in queste cartelle **non sono gli stessi** che si possono scaricare in modalità usb-storage o prelevare direttamente dalla microSD (che hanno nome del tipo **0000001.ECG**); il formato è simile, ma non compatibile. È in corso il //reverse engineering// del formato.
Abbiamo riscontrato i seguenti **problemi** (versioni software ECG Synchronous **v1.3.7**, hardware ECG90A Main Board **1.43**, Acquisition M2 Board **0.95**):
* Dopo aver effettuato il download di alcuni casi, è possibile visualizzare il grafico (pulsante **ECG**), ma la funzione **Reanalyze** non funziona.
* La comunicazione con il dispositivo fallisce molto spesso: non siamo mai riusciti ad attivare la funzione **Instant Sample** e la funzione **DownLoad Case** ha funzionato solo in pochissime occasioni (vedi sopra l'errore //Send getting info of device failed//). Questi problemi forse sono da imputare all'esecuzione in una macchina virtuale Qemu-KVM.
===== Utilizzo con GNU/Linux =====
==== Non funziona con Wine ====
Il programma **ECG Synchronous** (1.3.7) non funziona in ambiente **GNU/Linux** (Debian 10) con l'emulatore **Wine** (4.0).
Questi - in estrema sintesi - i passaggi provati:
# Notice: the program requires MFC 4.2
winetricks mfc42
wine "tmp/ECG Synchronous Simple V1.3.7.exe"
wine ".wine/drive_c/ECG Synchronous V1.3.7/ECG Synchronous V1.3.7.exe"
# Open Database fails. Please check the data file!
Il programma **EcgViewer** (gratuitamente scaricabile dal sito [[http://www.ecg-soft.com/ecgviewer/ecgviewer.htm|ecg-soft.com]]) funziona, ma non ho ancora trovato un metodo per convertire i tracciati salvati dall'ECG90A nei formati supportati da questo software ([[wp>SCP-ECG]], MUSE-XML e altri). L'installazione su Wine funziona con qualche problema di versione **Microsoft .NET** fra installer e programma vero e proprio:
# Notice: the installer requires .NET 2.0, the EcgViewer requires .Net 4.3
winetricks dotnet20
wine msiexec /i tmp/ecg/exe/EcgViewerInstall/EcgViewerInstall.msi
winetricks --force dotnet45
wine ".wine/drive_c/Program Files (x86)/EcgSoft/EcgViewer/EcgViewer.exe"
==== Funziona con problemi in Qemu-kvm ====
Il software **ECG Synchronous** v1.3.7 **funziona con gravi limitazioni** in una **macchina virtuale Qemu-KVM** dove sia installata una versione di Windows (provato Windows 10).
Nella modalità **MASS** il device apparirà come uno USB storage, questo l'output di **lsusb**:
Bus 001 Device 007: ID 0483:5720 STMicroelectronics Mass Storage Device
Nella modalità **HID** verrà indicato un dispositivo con ProductID diverso:
Bus 001 Device 009: ID 0483:5750 STMicroelectronics
È possibile avviare l'emulatore effettuando il passthrough del dispositivo all'emulatore (l'utente che avvia l'emulatore deve avere tutti i permessi sulla periferica USB):
exec qemu-system-x86_64 -m 4096 -machine accel=kvm \
-usb -device 'usb-host,vendorid=0x0483,productid=0x5750' \
-drive 'file=win10_64bit_c.img,format=raw' -boot c
===== Lettura del tracciato =====
**P**, **QRS**, e **T** sono le componenti di un segnale ECG. Le onde P hanno una frequenza di 0.67 - 5 Hz (pari al ritmo cardiaco), le onde T invece sono nel range 1 - 7 Hz. Infine QRS sono nel range 10 - 50 Hz.
===== Web References & Docs =====
* **{{.:ecg90a:gima-33232-ecg90a-cardiopocket.pdf|Manuale GIMA Cardiopocket 33232/ECG90A}}**
* **[[Contec ECG file format]]**
- **[[https://en.ecgpedia.org/wiki/Basics|ECG Basics]]**
- **[[http://www.ippocrateshop.com/blog/99-2/|Ecg a 12 derivazioni, ecco perché ha 10 elettrodi]]**
- **[[https://www.empillsblog.com/ecg-dove-li-metti-questi-elettrodi/|Ma dove li metti questi elettrodi?]]** - ({{.:ecg90a:ecg-dove-li-metti-questi-elettrodi.pdf|copia locale}})
* {{.:ecg90a:standardization-of-electrocardiogram.pdf|Recommendations for the Standardization and Interpretation of the Electrocardiogram}}
* {{.:ecg90a:electrode-placement-must-be-recorded.pdf|Modified electrode placement must be recorded when performing 12-lead electrocardiograms}}
* {{.:ecg90a:new-electrode-placement-method.pdf|A new electrode placement method for obtaining 12-lead ECGs}}
- **[[https://it.wikipedia.org/wiki/Elettrocardiogramma|Elettrocardiogramma]]** voce su Wikipedia Italia
- **[[http://ems12lead.com/2014/03/10/understanding-ecg-filtering/|Understanding ECG Filtering]]** - ({{.:ecg90a:understanding-ecg-filtering.pdf|copia locale}})
- **[[https://youtu.be/SVUwtAuby7E|Video tutorial elettrocardiogramma in telemedicina]]**
- **{{.:ecg90a:precisione-segnale-elettrocardiografico.pdf|Definizione, precisione e appropriatezza del segnale elettrocardiografico}}**
- **{{.:ecg90a:risposta-frequenza-elettrocardiografo.pdf|Risposta in frequenza di unelettrocardiografoa scopo diagnostico:scelta, verifica e corretto utilizzo}}**