Sección 4: Monitoreo P.1

Funcionamiento del sistema basado en la obtención del nivel de estrés del paciente

La tercera sección es el core del sistema dado que aquí se genera el monitoreo y la interpretación del nivel de estrés y las ondas.

Vista general del sistema

La funcionalidad comienza por obtener los datos de pacientes y las pistas musicales (id & nombre) de la base de datos para leugo poblar dos "selects" que se encuentran ubicados al inicio de la pantalla.

Select de pacientes y música
Vista en pantalla de select de pacientes y música

Al obtener el id del paciente y de la música al seccionarlos serán almacenados en un tipo de variable similar al de una variable global, que puede ser utilizada en diferentes nodos.

En el siguiente código ubicado en paciente query, se explica como almacenamos el valor en la variable de tipo flow.

//Si no ha sido seleccionado algún valor retornar el objeto
if(typeof msg.payload === 'object')
{
    return msg;
}
else
{
   // msg.payload contiene el id seleccionado en nuestro select
    var pacienteid = msg.payload;
    //realizamos un set para registrar el valor en una variable de tipo flow
    flow.set('pacienteid',pacienteid);
    return msg;

}

Después de almacenar nuestros valores, realizaremos una nuevo SQL query a nuestra base de datos donde el objetivo es obtener la duración de la pista musical, para asi conocer cuando debe detenerse la terapia al finalizar la música.

El siguiente código explica como obtener el valor dentro de "template" es un ui_template parecido al de la sección 1.

<html>
    <head>
        <style>
        /* Por defecto el player se encuentra oculto*/
            audio { display:none;}
        </style>
    </head>
    <body>
         <audio id="audio" preload="metadata" controls>
            <source id="audioSource" src=""/>
             Your browser does not support the audio element.
        </audio>
<script>
    (function(scope) {
        scope.$watch('msg.payload', function(data) {
                  var audio = document.getElementById('audio');
                  var source = document.getElementById('audioSource');
                  /*obtenemos el dato generado en POST VAR idmusica el cual será un msg.payload,
                   accedemos al array desde la posición uno dado que solo retorna un valor*/
                  source.src = data[0].musica_url;
                  //obtenemos la duración del audio y lo enviamos como un payload a nuestro lienzo de programación
                  scope.send({url: audio.duration});
                  audio.addEventListener('loadedmetadata', function() {
                    });
                  audio.load(); //call this to just preload the audio without playing
        });
    })(scope);
</script>
</body>
</html>

A través de este método también es posible habilitar la música de manera que pueda reproducirse desde el navegador web en caso de no contar con un dispositivo Google Home

A modo de validación para asegurar que el usuario haya seleccionado al menos una pista musical, creamos una función de validación llamada "Switch condition" con el siguiente código

if(msg.payload>=1)
{
//msg.enabled permitira setear el estado en el cual se encuentra el slider
//comenzar terapia
    msg.enabled = true;
    return msg;
}
else
{
    msg.enabled = false;
    return msg;
}

Última actualización

¿Te fue útil?