ALGORITMO Y PSEUDOCÓDIGO ARTÍCULO ORIGINAL Avances Cardiol 2014;34(4):280-285 Algoritmo y pseudocódigo: nueva perspectiva para calcular el eje eléctrico de un electrocardiograma Algorithm and pseudocode: New perspective for calculating the electric axis of an electrocardiogram Dr. Giuseppe Lanza Tarricone1 MASVC Adjunto al Servicio de Cardiología, Instituto Médico “Dr. José Gregorio Hernández” del Instituto Venezolano de los Seguros Sociales, San José, Caracas- RB de Venezuela. 1 RESUMEN Introducción: El electrocardiograma sigue siendo una herramienta valiosa en el estudio de la actividad eléctrica cardíaca y el eje eléctrico medio del QRS es un parámetro importante. Usando diagramas de flujo y pseudocódigo se aborda una nueva perspectiva de análisis del eje eléctrico. Un diagrama de flujo permite visualizar gráficamente la solución de un problema y el pseudocódigo es un intermediario entre el diagrama de flujo y el lenguaje que debe usar una computadora para realizar sus cálculos. En este sentido, el pseudocódigo se expresa con un lenguaje común usando algunos términos propios de un lenguaje de alto nivel para computadoras, que facilita la lectura del programa. Objetivo: Confirmar que el diagrama de flujo y el pseudocódigo para la determinación del eje eléctrico, son precisos con respecto al cálculo que pueda realizar la computadora en un lenguaje de alto nivel. Material y métodos: Se recolectaron 105 electrocardiogramas y se registraron los voltajes netos del QRS en derivaciones D1 y AVF. Se realizaron los cálculos manualmente, con el diagrama de flujo y el pseudocódigo, y los obtenidos por la computadora después de haber llevado el pseudocódigo a lenguaje Pascal. Resultados: No hay diferencia numérica por todos los procedimientos. Conclusiones: El algoritmo gráfico o diagrama de flujo y el pseudocódigo son confiables en su totalidad para la determinación del eje eléctrico medio del QRS cuando se comparan con los cálculos efectuados por la computadora a través de un programa en lenguaje Pascal. Palabras clave: Electrocardiograma, ECG, algoritmo, pseudocódigo, diagrama de flujo, eje eléctrico. SUMMARY Recibido en: diciembre 02, 2013 Aceptado en: octubre 16, 2014 Introduction: The electrocardiogram remains a valuable tool in the study of cardiac electrical activity and the mean electrical axis of the QRS complex is an important parameter. The use of flowcharts and pseudocode deals with a new perspective for analyzing the electrical axis. A flowchart displays graphically the solution of a problem and the pseudocode is an intermediary between the flowchart and the language to be used by a computer to perform its calculations. In this sense, the pseudocode is expressed in a common language using some specific terms of a high level language for computers, which achieves program reading. Objective: Confirm that the flowchart and the pseudocode for determining the electrical axis, are as accurate for calculation as that of a computer in a high level language. Material and methods: 105 electrocardiograms were collected and net QRS voltages in leads D1 and AVF were recorded. Calculations were performed manually, using the flowchart and the pseudocode, and those obtained by the computer 280 CORRESPONDENCIA Giuseppe Lanza Tarricone Hospital “Dr. José Gregorio Hernández” San José, CaracasRB de Venezuela. Tel: +58-412-983.84.65 E-mail: [email protected] DECLARACIÓN DE CONFLICTO DE INTERÉS DE LOS AUTORES: No hay conflicto de intereses. Vol. 34, Nº 4, diciembre 2014 LANZA TARRICONE G after taking the pseudocode to Pascal language. Results: No numerical difference for both procedures. Conclusions. The algorithm flow chart or diagram and pseudocode are entirely reliable for determining the mean electrical axis of the QRS when compared to the calculations made by the computer through a program in Pascal language. Key words: Electrocardiogram, ECG, algorithm, pseudocode, flowchart, electrical axis INTRODUCCIÓN El electrocardiograma de superficie de 12 derivaciones sigue siendo una herramienta valiosa en el estudio de la actividad eléctrica cardíaca, aún en los actuales momentos de alta tecnología y grandes descubrimientos. Sigue aportando información detallada sobre los procesos de despolarización y repolarización que ocurren en las células miocárdicas. Los avances en esta materia comienzan en 1903 con el asentamiento de los principios básicos de la electrocardiografía de W. Einthoven(1), sin olvidar los aportes de Lewis, Wiggers, Wilson(2,3), entre otros. Dentro de los parámetros de estudio, interesa de manera particular la determinación del eje eléctrico usando diagramas de flujo y pseudocódigo, conceptos usuales en las ciencias de la computación. Los algoritmos y diagramas de flujo se vienen usando frecuentemente en Medicina(4-6). Un diagrama de flujo(7) es un esquema que nos permite recorrer visualmente los diferentes pasos y secuencias para resolver un problema de una manera clara, sencilla, discriminando los caminos a seguir de acuerdo a las condiciones planteadas. Para expresar la solución contenida en un gráfico y llevarla a una computadora se requiere transformar la información diagramática a través de un lenguaje que la máquina pueda entender. Existen diferentes lenguajes de alto nivel que hacen este cometido: Pascal, C, Visual Basic, Java, entre otros. Para facilitar esta tarea de una manera natural y progresiva, sin tener altos conocimientos de lenguajes de programación, se recurre al pseudocódigo. Consiste en utilizar el lenguaje cotidiano con algunos términos de los lenguajes de alto nivel. Este proceso entremezclado Avances Cardiol ayuda a entender el contenido de un diagrama de flujo hacia un lenguaje escrito. El objetivo de este trabajo es realizar el cálculo del eje eléctrico medio del QRS de un electrocardiograma usando diagrama de flujo y pseudocódigo, para luego llevarlo a través de un lenguaje de alto nivel a fin de que la computadora pueda darnos información pertinente y compararlo con el que se realiza manualmente. DETERMINACIÓN DEL EJE ELÉCTRICO En la práctica médica se realiza el cálculo del eje eléctrico de un electrocardiograma de superficie en el sentido de establecer el ángulo que tiene el vector medio o promedio del QRS con respecto a las derivaciones D1 y AVF, aunque se pueden consideran otras derivaciones perpendiculares si se utiliza un sistema de coordenadas cartesianas. De manera usual, se determina el voltaje neto del QRS en las derivaciones estándar D1 y AVF y se ubica el cuadrante. Existen diferentes métodos para calcular el ángulo que tiene el vector medio del QRS; en esta investigación se usa la tangente de un ángulo que viene dado por la relación entre el valor neto absoluto en AVF y el valor neto absoluto (diferente de cero) en D1(8). Al aplicarle a este cociente la función inversa de la tangente se obtiene el ángulo entre el vector medio y la recta horizontal o eje de las abscisas. A posteriori se considera el cuadrante donde se ubica y se hacen los pequeños ajustes para dar el valor definitivo. MATERIAL Y MÉTODOS Electrocardiogramas: Fueron realizados a los pacientes de la consulta externa de cardiología en el Instituto Médico “Dr. José Gregorio Hernández” en Caracas, adscrito al Instituto Venezolano de los Seguros Sociales, durante los días martes y jueves en los meses de abril a julio 2013. Se recopilaron los primeros cincos electrocardiogramas que se hicieron en cada consulta. El técnico fue entrenado previamente y desconocía el objetivo de la investigación. Se utilizó un electrocardiógrafo 281 ALGORITMO Y PSEUDOCÓDIGO de marca Fukuda, modelo japonés Denshi FX2111 de un solo canal. El electrocardiograma se registró en papel milimetrado con una velocidad de 25 mm/s, el voltaje se correspondió con 1 mV para 10 mm. Se hicieron dos veces las mediciones a cada electrocardiograma y se tomaron como datos finales el promedio aritmético de cada uno para las derivaciones D1 y AVF. Se define el cuadrante donde se ubica el eje eléctrico de acuerdo a los valores de D1 y AVF (Figura 1). AVF Figura 1. Diagrama de flujo del eje eléctrico. 282 Vol. 34, Nº 4, diciembre 2014 LANZA TARRICONE G Criterios de selección de los electrocardiogramas. Se recolectaron inicialmente 130 electrocardiogramas (realizados por un técnico entrenado) que estuvieran exentos de trastornos de conducción sobre el QRS. Este requisito se hace necesario debido a que la altura del QRS no determinaría el voltaje real en esa derivación y habría que hacer un cálculo del área bajo el complejo QRS, lo cual sería más complicado. Se excluyen trastornos de isquemia aguda en lo referente al ST. De esta manera se consideran los criterios de exclusión: ausencia de estandarización o fuera diferente a 1 mV por 10 mm, velocidad de inscripción en el papel diferente a 25 mm/s, trazado poco legible, alternancia eléctrica que impida conocer el complejo de base, ondas R´ o S´ que dificultan la lectura, complejos QRS mayores o iguales a 0,10 s, otros artefactos que dificultan las medidas, que la derivación D1 y AVF tuvieran simultáneamente voltaje neto del QRS igual a cero. Después de haber considerado todos estos criterios se descartaron 25, quedando definitivamente 105 electrocardiogramas. Lenguaje de programación de alto nivel. Para facilitar esta tarea se elaboró el diagrama de flujo (Figura 1) que muestra los pasos para el cálculo del eje eléctrico y el pseudocódigo (Tabla 1) que traduce los gráficos del diagrama de flujo a través de un lenguaje natural o gramatical. Para transformar el pseudocódigo a lenguaje que la computadora pueda manipular, se utilizó el lenguaje Pascal (versión 7 de Borland). Tabla 1. Pseudocódigo para el cálculo del eje eléctrico Inicio-Programa Leer : voltaje D1, voltaje AVF SI( voltaje D1 = 0 o voltaje AVF = 0) entonces: SI(voltaje D1 = 0 y voltaje AVF > 0) entonces Ángulo := 90º; SI(voltaje D1 =0 y voltaje AVF < 0) entonces Ángulo := -90º; SI(voltaje D1 > 0 y voltaje AVF = 0) entonces Ángulo := 0º; SI(voltaje D1 < 0 y voltaje AVF = 0) entonces Ángulo:= +180º; SI(voltaje D1 = 0 y voltaje AVF = 0) entonces Ángulo No se puede definir; Fin-programa. Fin-SI SI(voltaje D1 >0 y voltaje AVF >0) entonces Cuadrante :=1; SI(voltaje D1 >0 y voltaje AVF <0) entonces Cuadrante :=2; SI(voltaje D1 <0 y voltaje AVF >0) entonces Cuadrante :=3; SI(voltaje D1 <0 y voltaje AVF <0) entonces Cuadrante :=4; D1 := valor absoluto (voltaje D1); AVF:= valor absoluto (voltaje AVF); Alfa:= arctan(AVF / D1); SI (Cuadrante = 1) entonces Ángulo := Alfa; SI (Cuadrante = 2) entonces Ángulo := - Alfa; SI (Cuadrante = 3) entonces Ángulo := 180 - Alfa; SI (Cuadrante = 4) entonces Ángulo := Alfa - 180; Fin-Programa Avances Cardiol 283 ALGORITMO Y PSEUDOCÓDIGO RESULTADOS Cálculos. Se realizaron los cálculos manualmente utilizando la calculadora que ofrece Google Chrome (explorador de Internet, versión 27.0.1453.116 m), truncando los resultados a cinco cifras decimales. El mismo criterio se aplicó a los resultados arrojados por el programa hecho en lenguaje Pascal. Validación de las mediciones. Para este propósito se formaron varios grupos de expertos a quienes se les entregaron los mismos datos obtenidos de la lectura de los electrocardiogramas. Cada grupo, excepto el grupo 1, estuvo formado por dos expertos. Cada uno de los integrantes de cada grupo trabajaría independientemente para luego reunirse y comparar sus resultados. Si hubiera alguna diferencia en al menos un resultado dentro de cada grupo, se repetirían los cálculos hasta encontrar el error cometido y subsanarlo en virtud que los datos y la metodología de análisis es la misma para el grupo en particular. El grupo 1, formado por tres especialistas en cardiología, harían los cálculos manualmente considerando solo los datos obtenidos de los electrocardiogramas. El grupo 2, formado por dos especialistas en medicina interna, harían los cálculos siguiendo el diagrama de flujo. El grupo 3, formado por dos especialistas en computación, harían los cálculos siguiendo el pseudocódigo. El grupo 4, formado por dos programadores expertos, llevarían el contenido del pseudocódigo a lenguaje Pascal. El grupo 1 compara sus resultados con los del grupo 4, de haber alguna diferencia se revisan el diagrama de flujo y el pseudocódigo hasta obtener los mismos resultados del grupo 1. De haber alguna corrección en el diagrama de flujo o en el pseudocódigo se le participaría del cambio al grupo 2 y 3 respectivamente. El grupo 1 compara sus resultados con el grupo 2 y 3, si hubiera alguna diferencia, los integrantes del grupo 2 y 3, respectivamente, revisarían los cálculos hasta obtener los mismos resultados del grupo 1. 284 El voltaje promedio (± desviación estándar) del QRS en D1 fue de 7,59 ± 4,18 y en AVF de 8,16 ± 4,05 para n=105. En relación a los ángulos obtenidos (en grados), entre el eje eléctrico y la abscisa, sin relación al cuadrante respectivo, se obtuvo un promedio de 50,06 ± 28,91; en un rango entre 0 y 90. Dos de los ángulos estaban en el cuadrante 3; diez ángulos en el cuadrante 2 y el resto en el cuadrante 1. Seis ángulos eran cero grados. Esto expresa que el 88,57 % de los ángulos estaban en el cuadrante 1. En el grupo 1 hubo inicialmente una diferencia en el cálculo de los ángulos en 20 electrocardiogramas y luego de reunirse subsanaron todos los errores. En el grupo 2 hubo inicialmente una diferencia en 47 electrocardiogramas debido a los errores de seguimiento del diagrama de flujo y los de cálculo realizados manualmente. En la primera reunión conjunta del grupo 2 verificaron que no hubiera diferencia en localizar el cuadrante y en las dos reuniones sucesivas salvaron las diferencias de cálculo hechas manualmente. En el grupo 3 se hicieron cuatro reuniones hasta salvar toda diferencia de cálculo. En el grupo 4 se hicieron 5 reuniones hasta corregir errores en la transcripción del pseudocódigo a lenguaje Pascal. Cuando se hizo la primera evaluación de los resultados del grupo 1 con el 4, se presentaron varias diferencias debido a errores en el pseudocódigo. Dichos errores fueron comunicados al resto de los grupos. No hubo a posteriori nuevas diferencias entre grupos. Al comparar los resultados que arroja el cálculo manual del eje eléctrico y los del programa de computadora, se encuentra que los ángulos coinciden totalmente en todos los casos. De la misma manera, los cálculos realizados utilizando el diagrama de flujo y el pseudocódigo coinciden en todos los casos con respecto a los realizados manualmente. Vol. 34, Nº 4, diciembre 2014 LANZA TARRICONE G DISCUSIÓN Y CONCLUSIONES REFERENCIAS Realizar los cálculos manuales o por computadora en la determinación del eje eléctrico medio del QRS, no debe producir diferencia alguna siempre y cuando el diagrama de flujo esté diseñado correctamente y refleje los pasos adecuados. La misma consideración hay que hacer sobre el pseudocódigo y su equivalente en lenguaje Pascal. 1. Bayes de Luna A, Sierra J, Oca F. Electrocardiografía de Holter: enfoque práctico. 1ª reimpresión. Barcelona, España: Editorial Científico Médico, 1984. Es de considerarse que los resultados fueron truncados a cinco cifras decimales. Existen computadoras o calculadoras que puedan dar un número mayor de cifras decimales, de existir una diferencia, esta sería ínfima debida al error de truncamiento en el cálculo y de ninguna manera indicaría que el algoritmo diseñado fuera erróneo. En este último caso hay que realizar una revisión del diagrama de flujo y realizar una corrida en frío (manualmente), es decir, revisar paso a paso los cálculos arrojados por el programa de computadora. En conclusión, el diagrama de flujo o algoritmo presentado es confiable en cuanto a los pasos a seguir en la determinación del eje eléctrico del QRS medio en la forma establecida. Puede ser útil en el aprendizaje de la electrocardiografía al tener un algoritmo que guie al estudiante en los cálculos o que los mismos sean validados por una computadora que tenga el programa. De la misma manera, podría ser incorporado a los equipos de electrocardiografía siempre y cuando se hagan las adaptaciones electrónicas correspondientes. Avances Cardiol 2. Rushmer R. Cardiovascular dynamics. 2ª edición. Filadelfia, Estados Unidos de América: Saunders Co., 1961. 3. Laiken S, Laiken N, O’Rourke RA, Karliner JS. A rapid method for frontal plane axis determination in scalar electrocardiograms. Am Heart J. 1973;85:620-623. 4. Goldenberg G, Iakobishvili Z, Strasberg B. Electrocardiographic algorithm for the diagnosis of inadvertent implantation of permanent pacemaker lead in the left ventricular cavity. Ann Noninvasive Electrocardiol. 2013;18:294-296. 5. Lee GA, Murray A, Bushnell R, Niggemeyer LE. Challenges developing evidence-based algorithms for the trauma reception and resuscitation project. Int Emerg Nurs. 2013;21:129-135. 6. Jobe J, Ghuysen A, D’Orio V. [Presentation of ELISA: A new triage algorithm suitable for emergency department]. Rev Med Liege. 2012;67:632-637. 7. Vasconcelos J. Manual de construcción de programas. [monografía en Internet]. México. [consultado 2013 Abr 12] Disponible en: http://www.bibliodgsca.unam. mx/manuales/manual.pdf. 8. Lanza Tarricone G. Electrocardiograma: Modelo matemático del eje eléctrico y su uso en la determinación del voltaje del QRS en derivaciones estándar. Gac Méd Caracas. 1998;106:509-514. 285