PresenterFunctions.NuevaMedicionFunctions

com.uva.rafael.tfg_goniometer.interfaces

## Interface PresenterFunctions.NuevaMedicionFunctions

- All Known Implementing Classes:
    NuevaMedicionPresenter
  Enclosing interface:
    PresenterFunctions

      public static interface PresenterFunctions.NuevaMedicionFunctions

  Interfaz correspondiente al Presentador `NuevaMedicionPresenter`

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `getInformacionPaciente(java.lang.String nombre, int id, java.lang.String fechaHora, java.lang.String lecturaGoniometro)` Metodo que se encarga de obtener la informacion relativa a un paciente a partir del nombre e ID del mismo, mediante una consulta a la Base de Datos.
    `void` | `loadSpinners(android.widget.Spinner jointSide, android.widget.Spinner joint, android.widget.Spinner movement, android.widget.Spinner movementType)` Metodo que se encarga de "cargar" con contenido cada uno de los `Spinners` inicialmente.
    `void` | `onCreate()` Metodo que se encarga de enviar a la Vista (`NuevaMedicionFragment`) los nombres de las constantes para obtener los parametros de tipo `Bundle` recibidos en la creacion del `Fragment`.

    `void`

    `onDoneClicked(java.lang.String nombre, int id, java.lang.String fecha_hora, java.lang.String joint_side, java.lang.String joint, java.lang.String joint_other, java.lang.String movement, java.lang.String movement_other, java.lang.String movement_type, java.lang.String movement_type_other, java.lang.String lectura_goniometro)`
    Evento `ClickListener` que se llama cuando el usuario ha pulsado sobre el boton "HECHO" en `NuevaMedicionFragment`.

    `void` | `onItemSelectedListener(android.widget.Spinner spinner1, android.widget.Spinner spinner2)` Evento `ItemSelectedListener` que se llama cuando el usuario ha pulsado sobre alguno de los elementos de uno de los `Spinner` en `NuevaMedicionFragment`.

- - ### Method Detail

    - #### onCreate

          void onCreate()

      Metodo que se encarga de enviar a la Vista (`NuevaMedicionFragment`) los nombres de las constantes para obtener los parametros de tipo `Bundle` recibidos en la creacion del `Fragment`.

    - #### loadSpinners

          void loadSpinners(android.widget.Spinner jointSide,
                            android.widget.Spinner joint,
                            android.widget.Spinner movement,
                            android.widget.Spinner movementType)

      Metodo que se encarga de "cargar" con contenido cada uno de los `Spinners` inicialmente.

      Solo se "cargan" por completo los `Spinners` que indican el lado del cuerpo en el que se hace la medicion, y el que indica si el movimiento ha sido realizado unica y exclusivamente por el paciente, o ha necesitado ayuda para realizarlo.

      El resto de `Spinners` se "cargan" con un valor por defecto para que no aparezan vacios en un principio.

      Parameters:
        `jointSide` - `Spinner` en el que se indica el lado del cuerpo en el que se encuentra la articulacion sobre la que se ha realizado la medicion
        `joint` - `Spinner` en el que se indica la articulacion en concreto que ha realizado el movimiento
        `movement` - `Spinner` en el que se indica el movimiento que ha realizado dicha articulacion
        `movementType` - `Spinner` en el que se indica si el movimiento ha sido realizado unica y exclusivamente por el usuario, o ha necesitado ayuda

    - #### getInformacionPaciente

          void getInformacionPaciente(java.lang.String nombre,
                                      int id,
                                      java.lang.String fechaHora,
                                      java.lang.String lecturaGoniometro)

      Metodo que se encarga de obtener la informacion relativa a un paciente a partir del nombre e ID del mismo, mediante una consulta a la Base de Datos. Posteriormente, envia esta informacion a la Vista (`NuevaMedicionFragment`) para que se la muestre al usuario.
      Parameters:
        `nombre` - Nombre del paciente
        `id` - ID del paciente
        `fechaHora` - Fecha y hora a la que se realizo la medicion
        `lecturaGoniometro` - Lectura final del goniometro (angulo de desplazamiento)

    - #### onItemSelectedListener

          void onItemSelectedListener(android.widget.Spinner spinner1,
                                      android.widget.Spinner spinner2)

      Evento `ItemSelectedListener` que se llama cuando el usuario ha pulsado sobre alguno de los elementos de uno de los `Spinner` en `NuevaMedicionFragment`.

      Se encarga de, en funcion de cual de los 4 `Spinner` es el que recibe el evento, "cargar" el siguiente `Spinner` con un determinado `Array` en funcion del item que se haya seleccionado sobre el primero para, asi, limitar la articulacion y el movimiento que puede introducir el usuario, evitando, de esta manera, introducir valores absurdos en articulaciones que no pueden realizar un determinado movimiento. Ademas, se encarga de mostrar u ocultar el `LinearLayout` que contiene el `EditText` en el que el usuario puede escribir, en caso de haber seleccionado en alguno de los `Spinner` la opcion "Otro/a".

      Parameters:
        `spinner1` - `Spinner` que recibe el evento `ItemSelected`
        `spinner2` - `Spinner` que, opcionalmente, se "cargara" en funcion del valor seleccionado en el primer `Spinner`

    - #### onDoneClicked

          void onDoneClicked(java.lang.String nombre,
                             int id,
                             java.lang.String fecha_hora,
                             java.lang.String joint_side,
                             java.lang.String joint,
                             java.lang.String joint_other,
                             java.lang.String movement,
                             java.lang.String movement_other,
                             java.lang.String movement_type,
                             java.lang.String movement_type_other,
                             java.lang.String lectura_goniometro)

      Evento `ClickListener` que se llama cuando el usuario ha pulsado sobre el boton "HECHO" en `NuevaMedicionFragment`.

      Se encarga de: 1.- Verificar que el usuario ha introducido toda la informacion obligatoria (marcada con *). 2.- Enviar la informacion al Modelo para que se introduzca en la Base de Datos. 3.- Solicitar a la Vista (`NuevaMedicionFragment`) que muestre un mensaje dependiendo de si la insercion en la Base de Datos ha sido exitosa o no. 4.- Si la insercion se realizo con exito, borrar el `Fragment` actual y mostrar el perfil del paciente actualizado con la nueva medicion ya insertada.

      Parameters:
        `nombre` - Nombre del paciente
        `id` - ID del paciente
        `fecha_hora` - Fecha y hora de la medicion
        `joint_side` - Lado en el que se encuentra la articulacion (o columna vertebral)
        `joint` - Articulacion sobre la que se ha realizado la medicion
        `joint_other` - Articulacion (en caso de haber seleccionado la opcion "Otra" en el `Spinner` joint
        `movement` - Movimiento que ha realizado la articulacion
        `movement_other` - Movimiento en caso de haber seleccionado la opcion "Otro" en el `Spinner` movement
        `movement_type` - Modo en el que se ha realizado el movimiento (con/sin ayuda)
        `movement_type_other` - Modo en caso de haber seleccionado la opcion "Otro" en el `Spinner` movement_type
        `lectura_goniometro` - Lectura final del goniometro (angulo de desplazamiento)