Beispiel #1
0
    def comenzar_terapia(self):
        '''------------
        DOCUMENTACIÓN -
        Comienza la tarea de terapia.
        - Inicia la estimuacion visual de BCI2000
        - Actualiza informacion de la tarea en Operador.
        - Actualiza informacion de la tarea en Sesion.
        - Inicia el progreso de la tarea
        - Escribe la seccion 'corrida' en el archivo externo resumen_sesiones
        - Si la tarea ya se esta ejecutando, permite suspender la misma
        - Observa los estados de BCI2000 para determinar las selecciones realizadas
        ------------'''
        if self.bci.estado == 'Suspended':
            self.bci.iniciar()
            self.bci.estado = 'Running'
            self.BCIOperador.ui_comenzar_terapia()
            self.BCIAplicacion.mostrarMensajes(constantes.MSG_COMENZAR,
                                               constantes.CSS_MSG_COMENZAR,
                                               True)
            self.sesion.actualizar_corrida()
            self.sesion.actualizar_estado("Realizando")
            self.BCIAplicacion.ui_iniciar_progreso(
                self.BCIOperador.guia_visual, self.sesion.cantidad_pasos,
                False)
            self.BCIOperador.ui_actualizar_selecciones(
                self.sesion.selecciones_realizadas,
                self.sesion.selecciones_correctas,
                self.sesion.selecciones_incorrectas)
            self.BCIOperador.ui_actualizar_estado(self.sesion.estado)
            Resumen.escribir_resumen(self.sesion, self.bci, self.BCIOperador,
                                     "corrida", False)
        else:
            self.suspender_terapia()

        self.observar_estados(False)
Beispiel #2
0
    def aplicar_terapia(self):
        '''------------
        DOCUMENTACIÓN -
        Prepara la tarea de terapia.
        - Restablece valores de la sesion.
        - Muestra la guia visual en Aplicacion si esta habilitada.
        - Carga en Sesion la nueva tarea de calibracion.
        - Carga los parametros de configuracion y la tarea seleccionada en BCI.
        - Presenta la matriz de estimulacion en Aplicacion
        - Actualiza la informacion de la tarea en Operador
        - Escribe la seccion 'sesion' en el archivo externo resumen_sesiones
        ------------'''
        # Refrezca la interfaz grafica evitando que se congele
        QtCore.QCoreApplication.processEvents()
        # Restablecer variables de sesion
        self.BCIAplicacion.restablecerMensajes()
        self.sesion.restablecer_selecciones()

        # Se deshabilita la opcion de aplicar configuracion de terapia
        self.BCIOperador.ui_inhabilitar_aplicacion_terapia()

        if self.BCIOperador.guia_visual != "Deshabilitada":
            self.BCIAplicacion.ui_mostrar_guia_terapia(self.sesion)
        else:
            self.BCIAplicacion.ui_iniciar_progreso(
                self.BCIOperador.guia_visual, self.sesion.cantidad_pasos,
                False)

        Parametros.aplicar_tarea_terapia(self.sesion,
                                         self.BCIOperador.tipo_tarea)
        # se oculta la matriz antes de configurar para evitar los glitches visuales de BCI2000
        self.BCIAplicacion.ocultarMatriz()
        self.bci.cargar_parametros(ubicaciones.CONFIG_BASE)
        # Refrezca la interfaz grafica evitando que se congele
        QtCore.QCoreApplication.processEvents()
        self.bci.cargar_parametros(ubicaciones.CONFIG_AMPLIFICADOR)
        # Refrezca la interfaz grafica evitando que se congele
        QtCore.QCoreApplication.processEvents()
        self.bci.cargar_parametros(ubicaciones.CONFIG_SECUENCIA)
        Parametros.aplicar_nivel_terapia(self.BCIOperador.nivel)

        self.bci.cargar_parametros(ubicaciones.CONFIG_NIVEL)

        if self.sesion.ubicacion_clasificador != ubicaciones.UBICACION_CLASIFICADOR:
            self.bci.cargar_parametros(self.sesion.ubicacion_clasificador)

        # Refrezca la interfaz grafica evitando que se congele
        QtCore.QCoreApplication.processEvents()
        self.bci.aplicar_configuracion()
        self.BCIAplicacion.mostrarMatriz()
        self.BCIOperador.ui_aplicar_terapia(self.paciente)
        self.BCIOperador.ui_iniciar_resumen(TERAPIA, self.tarea)
        Resumen.escribir_resumen(self.sesion, self.bci, self.BCIOperador,
                                 "sesion", False)
        # Se habilita la opcion de aplicar configuracion de terapia nuevamente
        self.BCIOperador.ui_habilitar_aplicacion_terapia()
        self.sesion.actualizar_estado('Preparado')
Beispiel #3
0
    def preparar_calibracion(self):
        '''------------
        DOCUMENTACIÓN -
        Prepara la tarea preestablecida de calibracion.
        - Restablece valores de la sesion.
        - Carga en Sesion la nueva tarea de calibracion.
        - Muestra la guia visual en Aplicacion.
        - Carga los parametros de calibracion y la tarea seleccionada en BCI.
        - Presenta la matriz de estimulacion en Aplicacion
        - Actualiza la informacion de la tarea en Operador
        - Escribe la seccion 'sesion' en el archivo externo resumen_sesiones
        ------------'''
        # Refrezca la interfaz grafica evitando que se congele
        QtCore.QCoreApplication.processEvents()
        # restablecer
        self.BCIAplicacion.restablecerMensajes()
        self.sesion.restablecer_selecciones()

        # Se deshabilita la posibilidad de realizar multiples selecciones
        self.BCIOperador.ui_inhabilitar_preparacion_calibracion()

        # tarea
        if self.sesion.indice_tarea == 1:
            self.sesion.actualizar_tarea_calibracion(constantes.TAREA_UNO)
        if self.sesion.indice_tarea == 2:
            self.sesion.actualizar_tarea_calibracion(constantes.TAREA_DOS)
        if self.sesion.indice_tarea == 3:
            self.sesion.actualizar_tarea_calibracion(constantes.TAREA_TRES)
        self.tarea = self.sesion.tarea_calibracion

        self.BCIAplicacion.ui_mostrar_guia_calibracion(self.sesion)
        Parametros.aplicar_tarea_calibracion(self.sesion)
        self.bci.cargar_parametros(ubicaciones.CONFIG_CALIBRACION)
        # Refrezca la interfaz grafica evitando que se congele
        QtCore.QCoreApplication.processEvents()
        self.bci.cargar_parametros(ubicaciones.CONFIG_AMPLIFICADOR)
        # Refrezca la interfaz grafica evitando que se congele
        QtCore.QCoreApplication.processEvents()
        self.bci.cargar_parametros(ubicaciones.CONFIG_SECUENCIA)
        # se oculta la matriz antes de configurar para evitar los glitches visuales de BCI2000
        self.BCIAplicacion.ocultarMatriz()
        Parametros.aplicar_nivel_calibracion()

        self.bci.cargar_parametros(ubicaciones.CONFIG_NIVEL)

        self.bci.aplicar_configuracion()
        # hace visible la interfaz de usuario paciente
        self.BCIAplicacion.mostrarMatriz()
        self.BCIOperador.ui_preparar_calibracion(self.paciente)
        self.BCIOperador.ui_iniciar_resumen(CALIBRACION, self.tarea)
        Resumen.escribir_resumen(self.sesion, self.bci, self.BCIOperador,
                                 "sesion", True)
        # se habilita la opcion de preparar calibracion nuevamente
        self.BCIOperador.ui_habilitar_preparacion_calibracion()
        self.sesion.actualizar_estado('Preparado')
Beispiel #4
0
 def finalizar_calibracion(self):
     '''------------
     DOCUMENTACIÓN -
     Finaliza la tarea de calibracion.
     - Actualiza informacion de la tarea en Operador.
     - Actualiza informacion de la tarea en Sesion.
     - Escribe la seccion 'resumen' en el archivo externo resumen_sesiones
     - Suspende la estimuacion visual de BCI2000
     ------------'''
     self.bci.estado = 'Suspended'
     self.sesion.actividad_completada = True
     self.sesion.actualizar_estado("Completado")
     self.BCIOperador.ui_actualizar_estado(self.sesion.estado)
     self.BCIOperador.ui_finalizar_calibracion(self.sesion.indice_tarea)
     self.sesion.actualizar_indice_tarea()
     Resumen.escribir_resumen(self.sesion, self.bci, self.BCIOperador,
                              "resumen", True)
     self.bci.ejecutar("Wait for Suspended 1")
     self.bci.suspender()
Beispiel #5
0
 def suspender_terapia(self):
     '''------------
     DOCUMENTACIÓN -
     Suspende la tarea de terapia.
     - Suspende la estimuacion visual de BCI2000
     - Actualiza informacion de la tarea en Operador.
     - Actualiza informacion de la tarea en Sesion.
     - Escribe la seccion 'resumen' en el archivo externo resumen_sesiones
     ------------'''
     self.bci.suspender()
     self.bci.estado = 'Suspended'
     self.BCIOperador.ui_suspender_terapia()
     self.BCIAplicacion.mostrarMensajes(constantes.MSG_SUSPENDIDO,
                                        constantes.CSS_MSG_SUSPENDIDO,
                                        False)
     self.sesion.actualizar_estado("Interrumpido")
     self.BCIOperador.ui_actualizar_estado(self.sesion.estado)
     # si se interrumpe la corrida y se empieza una nueva, se anuncia que no se completo y se da un resumen
     Resumen.escribir_resumen(self.sesion, self.bci, self.BCIOperador,
                              "resumen", False)
Beispiel #6
0
 def finalizar_terapia(self):
     '''------------
     DOCUMENTACIÓN -
     Finaliza la tarea de terapia.
     - Actualiza informacion de la tarea en Operador.
     - Actualiza informacion de la tarea en Sesion.
     - Escribe la seccion 'resumen' en el archivo externo resumen_sesiones
     - Suspende la estimuacion visual de BCI2000
     ------------'''
     self.bci.estado = 'Suspended'
     self.BCIAplicacion.mostrarMensajes(constantes.MSG_TERMINADO,
                                        constantes.CSS_MSG_TERMINADO, False)
     self.sesion.actividad_completada = True
     self.sesion.actualizar_estado("Completado")
     self.BCIOperador.ui_actualizar_selecciones(
         self.sesion.selecciones_realizadas,
         self.sesion.selecciones_correctas,
         self.sesion.selecciones_incorrectas)
     self.BCIOperador.ui_actualizar_estado(self.sesion.estado)
     self.BCIOperador.ui_finalizar_terapia()
     Resumen.escribir_resumen(self.sesion, self.bci, self.BCIOperador,
                              "resumen", False)
     self.bci.ejecutar("Wait for Suspended 1")
     self.bci.suspender()