ModelFunctions

com.uva.rafael.tfg_goniometer.interfaces

## Interface ModelFunctions

- All Known Implementing Classes:
    MainModel

      public interface ModelFunctions

  Esta interfaz engloba los metodos publicos de la clase `MainModel` relacionados con la gestion de la Base de Datos a traves de la clase de tipo `SQLiteHelper` - `GoniometerDBHelper`.

  Esta interfaz 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:
    `MainModel`

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.util.ArrayList<java.lang.String>` | `getDatosFormateados(java.util.ArrayList<java.lang.String> medicion)` Metodo que se encarga de, a partir de los datos correspondientes a una medicion, dar un formato adecuado a los mismos para que se puedan mostrar correctamente en la pantalla del dispositivo.
    `java.util.ArrayList<java.util.ArrayList<java.lang.String>>` | `getMedicionesPacienteBy(java.lang.String nombre, int id)` Metodo que se encarga de realizar una consulta a la Base de Datos y devolver una lista con todas las mediciones que se han realizado a un `Paciente` en concreto, a partir del nombre e ID del mismo.
    `java.util.ArrayList<java.lang.String>` | `getPacienteBy(java.lang.String nombre, int id)` Metodo que se encarga de realizar una consulta a la Base de Datos y devolver una lista con la informacion a mostrar de un `Paciente` (en concreto, edad, sexo, diagnostico, comentarios adicionales y tags) a partir del nombre y el ID del mismo.
    `java.util.ArrayList<java.util.ArrayList<java.lang.String>>` | `getPacientes()` Metodo que se encarga de realizar una consulta a la Base de Datos y devolver una lista con todos los nombres e ids de los pacientes almacenados en la misma.
    `java.util.ArrayList<java.util.ArrayList<java.lang.String>>` | `getPacientesFiltrado(java.lang.String texto, java.lang.String filtro)` Metodo que se encarga de realizar una consulta a la Base de Datos y devolver un listado de los nombres e IDs de los pacientes que se encuentran en la misma, filtrados segun el criterio seleccionado por el usuario en el `Spinner` de `PacientesFragment` y la informacion introducida en el `EditText` del mismo `Fragment`.
    `java.util.ArrayList<java.util.ArrayList<java.lang.String>>` | `getUltimasMediciones()` Metodo que se encarga de realizar una consulta a la Base de Datos y devolver una lista con las ultimas 10 mediciones (como maximo) que se han almacenado en la misma, ordenadas de mas a menos recientes.
    `int` | `onDeleteMeasurement(java.lang.String fechaHora)` Metodo que se encarga de realizar una consulta a la Base de Datos para borrar una medicion de la misma, a partir de la fecha-hora en la que se realizo.
    `int` | `onDeletePatient(java.lang.String nombre, int id)` Metodo que se encarga de realizar una consulta a la Base de Datos para, primero, borrar todas las mediciones que se han realizado a un paciente, y, despues, eliminar al paciente en cuestion de la misma, a partir del nombre e ID del paciente.
    `long` | `storeMeasurement(java.util.ArrayList<java.lang.String> nuevaMedicion)` Metodo que, dado el `ArrayList` con toda la informacion introducida por el usuario sobre la medicion, se encarga de obtener una instancia de tipo `Medicion` y realizar una consulta a la Base de Datos para almacenarla.
    `long` | `storePatient(java.util.ArrayList<java.lang.String> nuevoPaciente)` Metodo que realiza una consulta a la Base de Datos para almacenar en la misma la informacion del paciente que recibe como parametro

- - ### Method Detail

    - #### storePatient

          long storePatient(java.util.ArrayList<java.lang.String> nuevoPaciente)

      Metodo que realiza una consulta a la Base de Datos para almacenar en la misma la informacion del paciente que recibe como parametro
      Parameters:
        `nuevoPaciente` - `ArrayList` a convertir en `Paciente` y almacenar en la Base de Datos
      Returns:
        long > 0 si la consulta se realizo con exito, -1 en caso contrario

    - #### storeMeasurement

          long storeMeasurement(java.util.ArrayList<java.lang.String> nuevaMedicion)

      Metodo que, dado el `ArrayList` con toda la informacion introducida por el usuario sobre la medicion, se encarga de obtener una instancia de tipo `Medicion` y realizar una consulta a la Base de Datos para almacenarla.
      Parameters:
        `nuevaMedicion` - `ArrayList` a convertir en `Medicion` y almacenar en la Base de Datos
      Returns:
        long > 0 si la consulta se realizo con exito, -1 en caso contrario

    - #### getPacientes

          java.util.ArrayList<java.util.ArrayList<java.lang.String>> getPacientes()

      Metodo que se encarga de realizar una consulta a la Base de Datos y devolver una lista con todos los nombres e ids de los pacientes almacenados en la misma.
      Returns:
        pacientes `ArrayList>` con los nombres e ids de todos los pacientes almacenados en la Base de Datos

    - #### getPacienteBy

          java.util.ArrayList<java.lang.String> getPacienteBy(java.lang.String nombre,
                                                              int id)

      Metodo que se encarga de realizar una consulta a la Base de Datos y devolver una lista con la informacion a mostrar de un `Paciente` (en concreto, edad, sexo, diagnostico, comentarios adicionales y tags) a partir del nombre y el ID del mismo.
      Parameters:
        `nombre` - Nombre del paciente del que recuperar la informacion
        `id` - ID del paciente del que recuperar la informacion
      Returns:
        informacionPaciente `ArrayList` con toda la informacion del paciente almacenada en la Base de Datos

    - #### getMedicionesPacienteBy

          java.util.ArrayList<java.util.ArrayList<java.lang.String>> getMedicionesPacienteBy(java.lang.String nombre,
                                                                                             int id)

      Metodo que se encarga de realizar una consulta a la Base de Datos y devolver una lista con todas las mediciones que se han realizado a un `Paciente` en concreto, a partir del nombre e ID del mismo.
      Parameters:
        `nombre` - Nombre del paciente del que recuperar la informacion
        `id` - ID del paciente del que recuperar la informacion
      Returns:
        medicionesPaciente `ArrayList>` con todas las mediciones que se han realizado al paciente

    - #### onDeletePatient

          int onDeletePatient(java.lang.String nombre,
                              int id)

      Metodo que se encarga de realizar una consulta a la Base de Datos para, primero, borrar todas las mediciones que se han realizado a un paciente, y, despues, eliminar al paciente en cuestion de la misma, a partir del nombre e ID del paciente.
      Parameters:
        `nombre` - Nombre del paciente del que eliminar toda la informacion
        `id` - ID del paciente del que eliminar toda la informacion
      Returns:
        int == 1 si el borrado se realizo con exito, 0 en caso contrario

    - #### getPacientesFiltrado

          java.util.ArrayList<java.util.ArrayList<java.lang.String>> getPacientesFiltrado(java.lang.String texto,
                                                                                          java.lang.String filtro)

      Metodo que se encarga de realizar una consulta a la Base de Datos y devolver un listado de los nombres e IDs de los pacientes que se encuentran en la misma, filtrados segun el criterio seleccionado por el usuario en el `Spinner` de `PacientesFragment` y la informacion introducida en el `EditText` del mismo `Fragment`.
      Parameters:
        `texto` - Informacion introducida por el usuario en el `EditText`
        `filtro` - Filtro seleccionado por el usuario en el `Spinner`
      Returns:
        listadoPacientesFiltrado `ArrayList>` con los nombres de todos los pacientes que coincidan con los criterios de filtracion introducidos por el usuario

    - #### getUltimasMediciones

          java.util.ArrayList<java.util.ArrayList<java.lang.String>> getUltimasMediciones()

      Metodo que se encarga de realizar una consulta a la Base de Datos y devolver una lista con las ultimas 10 mediciones (como maximo) que se han almacenado en la misma, ordenadas de mas a menos recientes.
      Returns:
        mediciones `ArrayList>` con las ultimas 10 mediciones (como maximo) que se han almacenado en la Base de Datos

    - #### getDatosFormateados

          java.util.ArrayList<java.lang.String> getDatosFormateados(java.util.ArrayList<java.lang.String> medicion)

      Metodo que se encarga de, a partir de los datos correspondientes a una medicion, dar un formato adecuado a los mismos para que se puedan mostrar correctamente en la pantalla del dispositivo.

      Principalmente realiza tareas de añadir saltos de linea entre cada palabra (con el fin de evitar que alguna parte de la medicion no se pueda visualizar en el dispositivo), asi como de dejar solo la primera letra de cada palabra con mayuscula, y pasando el resto de la misma a minuscula, para que asi el texto ocupe menos espacio (los datos, por defecto, se obtienen de la Base de Datos con todos su caracteres en mayuscula).

      Por ultimo, este metodo tiene en cuenta el idioma del dispositivo para mostrar la informacion de un modo u otro, atendiendo a criterios sintacticos.

      Parameters:
        `medicion` - `ArrayList` sobre la que aplicar las correciones de formato
      Returns:
        `ArrayList` con todos los campos de la medicion con el correspondiente formato ya aplicado para su correcta visualizacion en la pantalla del dispositivo

    - #### onDeleteMeasurement

          int onDeleteMeasurement(java.lang.String fechaHora)

      Metodo que se encarga de realizar una consulta a la Base de Datos para borrar una medicion de la misma, a partir de la fecha-hora en la que se realizo.
      Parameters:
        `fechaHora` - Fecha y hora en la que se realizo la medicion
      Returns:
        int == 1 si el borrado se realizo con exito, 0 en caso contrario