PerfilPacientePresenter

com.uva.rafael.tfg_goniometer.presenter

## Class PerfilPacientePresenter

- java.lang.Object
- - com.uva.rafael.tfg_goniometer.presenter.PerfilPacientePresenter

- All Implemented Interfaces:
    PresenterFunctions, PresenterFunctions.PerfilPacienteFunctions

      public class PerfilPacientePresenter
      extends java.lang.Object
      implements PresenterFunctions, PresenterFunctions.PerfilPacienteFunctions

  Este es el Presentador asociado al `Fragment PerfilPacienteFragment` de la aplicacion. Se encarga de llevar a cabo toda la logica asociada a las acciones del usuario realizadas en la IU.

  En concreto, se encarga, inicialmente, de indicar a la Vista (`PerfilPacienteFragment`) si es necesario mostrar el boton para añadir una nueva medicion al paciente actual o no.

  Ademas, se encarga de obtener toda la informacion relativa a un paciente (tanto los datos personales como el listado de mediciones que se han realizado sobre el, y enviar esa informacion a la Vista (`PerfilPacienteFragment`) para que se la muestre al usuario.

  Por ultimo, se encarga de gestionar cuando el usuario pulsa sobre el boton para añadir una nueva medicion o para borrar el perfil del paciente en concreto.

  Esta clase forma parte de la aplicacion TFG-Goniometer, desarrollada para el Trabajo de Fin de Grado - Grado en Ingenieria Informatica (Universidad de Valladolid)

  Version:
    1.0
  Author:
    Rafael Matamoros Luque
  See Also:
    `PerfilPacienteFragment`, `MainModel`, `NuevaMedicionFragment`, `DateFormat`, `TableRow`, `AlertDialog`

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from interface com.uva.rafael.tfg_goniometer.interfaces.PresenterFunctions

      `PresenterFunctions.HomeFunctions, PresenterFunctions.MainFunctions, PresenterFunctions.MedicionFunctions, PresenterFunctions.NuevaMedicionFunctions, PresenterFunctions.NuevoPacienteFunctions, PresenterFunctions.PacientesFunctions, PresenterFunctions.PerfilPacienteFunctions, PresenterFunctions.SobreAppFunctions, PresenterFunctions.UltimasMedicionesFunctions`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `PerfilPacientePresenter(android.app.Fragment fragment, MainModel model)` Constructor principal de la clase

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `mostrarInformacionPaciente(java.lang.String nombre, int id)` Metodo que se encarga de obtener la informacion relativa a un paciente a partir del nombre y el id del mismo, mediante una consulta a la Base de Datos.
    `void` | `mostrarMedicionesPaciente(java.lang.String nombre, int id)` Metodo que se encarga de obtener todas las mediciones que se han realizado sobre el paciente en cuestion, introducirlas en objetos de tipo `TableRow` dandoles un formato adecuado, para que se puedan mostrar correctamente en la pantalla del dispositivo, y enviarlas de vuelta a la Vista (`PerfilPacienteFragment`) para que las añada al objeto `TableLayout` que se utiliza para mostrar las mediciones del paciente.
    `void` | `onAlmacenarMedicionClicked(java.lang.String nombrePaciente, int idPaciente, double lecturaGoniometro, java.lang.String fechaHora)` Evento `ClickListener` que se llama cuando el usuario ha pulsado sobre el boton para añadir una nueva medicion en el `PerfilPacienteFragment`.
    `void` | `onCreate()` Metodo que se encarga de enviar a la Vista (`PerfilPacienteFragment`) los nombres de las constantes para obtener los parametros de tipo `Bundle` recibidos en la creacion del `Fragment`.
    `void` | `onCreateView()` Metodo que se encarga de notificar a la Vista (`PerfilPacienteFragment`) si es necesario mostrar el boton para añadir una nueva medicion al paciente actual o no.
    `void` | `onDeletePatientClicked(java.lang.String nombre, int id)` Evento `ClickListener` que se llama cuando el usuario ha pulsado sobre el boton para borrar el perfil del paciente en el `PerfilPacienteFragment`.
    `void` | `onDestroy()` Perform any final cleanup before an activity is destroyed.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### PerfilPacientePresenter

          public PerfilPacientePresenter(android.app.Fragment fragment,
                                         MainModel model)

      Constructor principal de la clase
      Parameters:
        `fragment` - Fragmento (Vista) con la que mantiene una relacion 1-a-1.
        `model` - Modelo (unico) de la aplicacion.

  - ### Method Detail

    - #### onCreate

          public void onCreate()

      Metodo que se encarga de enviar a la Vista (`PerfilPacienteFragment`) los nombres de las constantes para obtener los parametros de tipo `Bundle` recibidos en la creacion del `Fragment`.
      Specified by:
        `onCreate` in interface `PresenterFunctions.PerfilPacienteFunctions`

    - #### onAlmacenarMedicionClicked

          public void onAlmacenarMedicionClicked(java.lang.String nombrePaciente,
                                                 int idPaciente,
                                                 double lecturaGoniometro,
                                                 java.lang.String fechaHora)

      Evento `ClickListener` que se llama cuando el usuario ha pulsado sobre el boton para añadir una nueva medicion en el `PerfilPacienteFragment`.

      Crea un nuevo `Fragment` de tipo `NuevaMedicionFragment`.

      Specified by:
        `onAlmacenarMedicionClicked` in interface `PresenterFunctions.PerfilPacienteFunctions`
      Parameters:
        `nombrePaciente` - Nombre del paciente al que se le quiere añadir la medicion
        `idPaciente` - ID del paciente al que se le quiere añadir la medicion
        `lecturaGoniometro` - Lectura del goniometro obtenida durante la medicion
        `fechaHora` - Fecha y hora en la que se realizo la medicion

    - #### mostrarInformacionPaciente

          public void mostrarInformacionPaciente(java.lang.String nombre,
                                                 int id)

      Metodo que se encarga de obtener la informacion relativa a un paciente a partir del nombre y el id del mismo, mediante una consulta a la Base de Datos. Posteriormente, envia esta informacion a la Vista (`PerfilPacienteFragment`) para que se la muestre al usuario.
      Specified by:
        `mostrarInformacionPaciente` in interface `PresenterFunctions.PerfilPacienteFunctions`
      Parameters:
        `nombre` - Nombre del paciente
        `id` - ID del paciente

    - #### mostrarMedicionesPaciente

          public void mostrarMedicionesPaciente(java.lang.String nombre,
                                                int id)

      Metodo que se encarga de obtener todas las mediciones que se han realizado sobre el paciente en cuestion, introducirlas en objetos de tipo `TableRow` dandoles un formato adecuado, para que se puedan mostrar correctamente en la pantalla del dispositivo, y enviarlas de vuelta a la Vista (`PerfilPacienteFragment`) para que las añada al objeto `TableLayout` que se utiliza para mostrar las mediciones del paciente.
      Specified by:
        `mostrarMedicionesPaciente` in interface `PresenterFunctions.PerfilPacienteFunctions`
      Parameters:
        `nombre` - Nombre del paciente del que recuperar las mediciones
        `id` - ID del paciente del que recuperar las mediciones

    - #### onDeletePatientClicked

          public void onDeletePatientClicked(java.lang.String nombre,
                                             int id)

      Evento `ClickListener` que se llama cuando el usuario ha pulsado sobre el boton para borrar el perfil del paciente en el `PerfilPacienteFragment`.

      Se encarga de crear un dialogo que envia a la Vista para que se lo muestre al usuario, con el fin de confirmar que quiere borrar el paciente junto con todas las mediciones que se le han realizado.

      Si el usuario confirma que desea eliminar el perfil del paciente, el metodo se encarga de borrar el `Fragment` actual y mostrar el listado de pacientes actualizado con el paciente ya eliminado.

      Specified by:
        `onDeletePatientClicked` in interface `PresenterFunctions.PerfilPacienteFunctions`
      Parameters:
        `nombre` - Nombre del paciente a eliminar
        `id` - ID del paciente a eliminar

    - #### onCreateView

          public void onCreateView()

      Metodo que se encarga de notificar a la Vista (`PerfilPacienteFragment`) si es necesario mostrar el boton para añadir una nueva medicion al paciente actual o no.
      Specified by:
        `onCreateView` in interface `PresenterFunctions.PerfilPacienteFunctions`

    - #### onDestroy

          public void onDestroy()

      Perform any final cleanup before an activity is destroyed. Se encarga de liberar la referencia al `Fragment` con el que esta asociado.
      Specified by:
        `onDestroy` in interface `PresenterFunctions`