From 33a29c155feab1949dc7a03d073ae8d6590abc33 Mon Sep 17 00:00:00 2001 From: AngelSuarez03 Date: Sat, 25 May 2024 13:03:45 -0600 Subject: [PATCH] =?UTF-8?q?Funcionalidad=20de=20historial,=20se=20anexan?= =?UTF-8?q?=20logs=20("Historial")=20aca=20evento=20de=20la=20aplicaci?= =?UTF-8?q?=C3=B3n?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../medicalhealth/AgregarActivity.kt | 39 +++++- .../medicalhealth/MainActivity.kt | 111 +++++++++++++----- .../medicalhealth/ModificarActivity.kt | 37 ++++++ .../medicalhealth/ModificarRecetaActivity.kt | 36 ++++++ .../medicalhealth/PacienteActivity.kt | 46 ++++++++ .../PacientePrincipalActivity.kt | 48 +++++++- .../medicalhealth/PrincipalActivity.kt | 49 ++++++++ .../medicalhealth/RecetaActivity.kt | 38 ++++++ .../medicalhealth/RegistrarDActivity.kt | 39 ++++++ .../adapters/HistorialDataBaseHelper.kt | 49 ++++++++ .../medicalhealth/data/Historial.kt | 8 ++ 11 files changed, 468 insertions(+), 32 deletions(-) create mode 100644 app/src/main/java/com/terratenientes/medicalhealth/adapters/HistorialDataBaseHelper.kt create mode 100644 app/src/main/java/com/terratenientes/medicalhealth/data/Historial.kt diff --git a/app/src/main/java/com/terratenientes/medicalhealth/AgregarActivity.kt b/app/src/main/java/com/terratenientes/medicalhealth/AgregarActivity.kt index 64509c4..b4a8217 100644 --- a/app/src/main/java/com/terratenientes/medicalhealth/AgregarActivity.kt +++ b/app/src/main/java/com/terratenientes/medicalhealth/AgregarActivity.kt @@ -4,14 +4,25 @@ import com.terratenientes.medicalhealth.adapters.DoctorDataBaseHelper import com.terratenientes.medicalhealth.data.Paciente import android.R import android.content.Intent +import android.os.Build import android.os.Bundle +import android.util.Log import android.widget.ArrayAdapter import android.widget.Toast +import androidx.annotation.RequiresApi import androidx.appcompat.app.AppCompatActivity +import com.terratenientes.medicalhealth.adapters.HistorialDataBaseHelper +import com.terratenientes.medicalhealth.data.Historial import com.terratenientes.medicalhealth.databinding.ActivityAgregarPacienteBinding +import java.time.ZoneId +import java.time.ZonedDateTime +import java.time.format.DateTimeFormatter +@RequiresApi(Build.VERSION_CODES.O) class AgregarActivity : AppCompatActivity() { + private lateinit var dbHistorial: HistorialDataBaseHelper + private lateinit var historial: Historial private lateinit var binding: ActivityAgregarPacienteBinding private lateinit var db: DoctorDataBaseHelper @@ -21,14 +32,15 @@ class AgregarActivity : AppCompatActivity() { val view = binding.root setContentView(view) db = DoctorDataBaseHelper(this@AgregarActivity) - + dbHistorial = HistorialDataBaseHelper(this@AgregarActivity) + historial = Historial("Doctor", intent.getStringExtra("NombreDoctor"),"Se inició la actividad alta paciente", obtenerFecha()) + añadirHistorial(historial) val opcionesGenero = arrayOf("Masculino", "Femenino", "Otro") val adapter = ArrayAdapter(this, R.layout.simple_spinner_item, opcionesGenero) adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item) binding.edtxSexo.adapter = adapter binding.btnConfirmar.setOnClickListener { - //db.crearTablaPacientes() agregarPaciente() finish() } @@ -44,9 +56,32 @@ class AgregarActivity : AppCompatActivity() { if (nombre.isNotEmpty() && apellidoPaterno.isNotEmpty() && apellidoMaterno.isNotEmpty() && edad != null && sexo.isNotEmpty() && domicilio.isNotEmpty()) { val paciente = Paciente(0, nombre, apellidoPaterno, apellidoMaterno, edad, sexo, domicilio) db.agregarPaciente(paciente) + historial.eventoRealizado = "Dio de alta un paciente" + historial.fecha = obtenerFecha() + añadirHistorial(historial) Toast.makeText(this@AgregarActivity, "Paciente registrado correctamente", Toast.LENGTH_SHORT).show() } else { Toast.makeText(this@AgregarActivity, "Por favor ingrese todos los campos", Toast.LENGTH_SHORT).show() } } + + private fun obtenerFecha(): String { + val fromTimeZone = ZoneId.of("America/Mexico_City") + + val currentTime = ZonedDateTime.now(fromTimeZone) + + val dateFormat = "MMM dd yyyy | hh:mm:ss a " + val formatter = DateTimeFormatter.ofPattern(dateFormat) + return formatter.format(currentTime) + } + + private fun añadirHistorial(historial: Historial) { + val resultadoInsert = dbHistorial.agregarInformacin(historial) + var msj = "" + if(resultadoInsert > 0) + msj = "Información historica almacenada" + else + msj = "Error al almacenar la información" + Log.i("Historial", msj + " | Información almacenada: " + historial) + } } \ No newline at end of file diff --git a/app/src/main/java/com/terratenientes/medicalhealth/MainActivity.kt b/app/src/main/java/com/terratenientes/medicalhealth/MainActivity.kt index 5cb0605..b2c2755 100644 --- a/app/src/main/java/com/terratenientes/medicalhealth/MainActivity.kt +++ b/app/src/main/java/com/terratenientes/medicalhealth/MainActivity.kt @@ -1,65 +1,120 @@ package com.terratenientes.medicalhealth -import com.terratenientes.medicalhealth.adapters.DoctorDataBaseHelper -import com.terratenientes.medicalhealth.data.Doctor import android.annotation.SuppressLint import android.content.Intent -import androidx.appcompat.app.AppCompatActivity +import android.os.Build import android.os.Bundle +import android.util.Log import android.widget.Toast +import androidx.annotation.RequiresApi +import androidx.appcompat.app.AppCompatActivity +import com.terratenientes.medicalhealth.adapters.DoctorDataBaseHelper +import com.terratenientes.medicalhealth.adapters.HistorialDataBaseHelper +import com.terratenientes.medicalhealth.data.Doctor +import com.terratenientes.medicalhealth.data.Historial import com.terratenientes.medicalhealth.databinding.ActivityMainBinding +import java.time.LocalDateTime +import java.time.ZoneId +import java.time.ZonedDateTime +import java.time.format.DateTimeFormatter + +@RequiresApi(Build.VERSION_CODES.O) class MainActivity : AppCompatActivity() { private lateinit var binding: ActivityMainBinding private lateinit var db: DoctorDataBaseHelper + private lateinit var dbHistorial: HistorialDataBaseHelper + private lateinit var historial: Historial override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - binding=ActivityMainBinding.inflate(layoutInflater) - val view=binding.root + binding = ActivityMainBinding.inflate(layoutInflater) + val view = binding.root setContentView(view) - + historial = Historial(null, null, "Se abrió la aplicacion", obtenerFecha()) db = DoctorDataBaseHelper(this@MainActivity) + dbHistorial = HistorialDataBaseHelper(this@MainActivity) + añadirHistorial(historial) //db.createTable() + //dbHistorial.crearTablaHistorial() binding.btnIniciarSesion.setOnClickListener { - var res=db.validarDatos(binding.tvUsuario.text.toString(),binding.tvContrasena.text.toString()) - var resPaciente = db.validarDatosPaciente(binding.tvUsuario.text.toString(), binding.tvContrasena.text.toString()) - if(res==true){ - Toast.makeText(this@MainActivity,"VALIDADO",Toast.LENGTH_LONG).show() + historial.fecha = obtenerFecha() + var res = db.validarDatos( + binding.tvUsuario.text.toString(), + binding.tvContrasena.text.toString() + ) + var resPaciente = db.validarDatosPaciente( + binding.tvUsuario.text.toString(), + binding.tvContrasena.text.toString() + ) + if (res == true) { + historial.eventoRealizado = "Inicio Sesión Doctor" + historial.tipoUsuario = "Doctor" + añadirHistorial(historial) + Toast.makeText(this@MainActivity, "VALIDADO", Toast.LENGTH_LONG).show() val intent = Intent(this@MainActivity, PrincipalActivity::class.java) //intent.putExtra("IDPaciente",binding.tvUsuario.text.toString()) intent.putExtra("Cedula", binding.tvUsuario.text.toString()) startActivity(intent) - }else if(resPaciente==true){ - Toast.makeText(this@MainActivity,"VALIDADO",Toast.LENGTH_LONG).show() + } else if (resPaciente == true) { + historial.tipoUsuario = "Paciente" + historial.eventoRealizado = "Inicio Sesión Paciente" + añadirHistorial(historial) + Toast.makeText(this@MainActivity, "VALIDADO", Toast.LENGTH_LONG).show() val intent = Intent(this@MainActivity, PacientePrincipalActivity::class.java) - intent.putExtra("IDPaciente",binding.tvContrasena.text.toString()) + intent.putExtra("IDPaciente", binding.tvContrasena.text.toString()) + intent.putExtra("NombrePaciente", binding.tvContrasena.text.toString()) startActivity(intent) - }else{ - Toast.makeText(this@MainActivity," NO VALIDADO",Toast.LENGTH_LONG).show() + } else { + Toast.makeText(this@MainActivity, " NO VALIDADO", Toast.LENGTH_LONG).show() } } - binding.tvRegistrarme.setOnClickListener{ + binding.tvRegistrarme.setOnClickListener { + historial.eventoRealizado = "Accionó el botón para la pantalla de registro" + historial.fecha = obtenerFecha() + añadirHistorial(historial) val intent = Intent(this@MainActivity, RegistrarDActivity::class.java) startActivity(intent) } } + @SuppressLint("SuspiciousIndentation") - private fun cargarDatos(){ - val doctor= Doctor("1236","Sebastian","Cordoba","229330123",1) - db.agregarDoctores(doctor,"prueba") - Toast.makeText(this@MainActivity,"DATOS DEL DOCTOR AGREGADOS",Toast.LENGTH_LONG).show() + private fun cargarDatos() { + val doctor = Doctor("1236", "Sebastian", "Cordoba", "229330123", 1) + db.agregarDoctores(doctor, "prueba") + Toast.makeText(this@MainActivity, "DATOS DEL DOCTOR AGREGADOS", Toast.LENGTH_LONG).show() } - private fun validaDatos(){ - var usuario=binding.tvUsuario.text.toString() - var contrasena=binding.tvContrasena.text.toString() - var res=db.validarDatos(usuario,contrasena) - if(res==true){ - Toast.makeText(this@MainActivity,"VALIDADO",Toast.LENGTH_LONG).show() - }else{ - Toast.makeText(this@MainActivity," NO VALIDADO",Toast.LENGTH_LONG).show() + + private fun validaDatos() { + var usuario = binding.tvUsuario.text.toString() + var contrasena = binding.tvContrasena.text.toString() + var res = db.validarDatos(usuario, contrasena) + if (res == true) { + Toast.makeText(this@MainActivity, "VALIDADO", Toast.LENGTH_LONG).show() + } else { + Toast.makeText(this@MainActivity, " NO VALIDADO", Toast.LENGTH_LONG).show() } } + private fun obtenerFecha(): String { + val fromTimeZone = ZoneId.of("America/Mexico_City") + + val currentTime = ZonedDateTime.now(fromTimeZone) + + val dateFormat = "MMM dd yyyy | hh:mm:ss a " + val formatter = DateTimeFormatter.ofPattern(dateFormat) + return formatter.format(currentTime) + } + + private fun añadirHistorial(historial: Historial) { + val resultadoInsert = dbHistorial.agregarInformacin(historial) + var msj = "" + if(resultadoInsert > 0) + msj = "Información historica almacenada" + else + msj = "Error al almacenar la información" + Log.i("Historial", msj + " | Información almacenada: " + historial) + } + } \ No newline at end of file diff --git a/app/src/main/java/com/terratenientes/medicalhealth/ModificarActivity.kt b/app/src/main/java/com/terratenientes/medicalhealth/ModificarActivity.kt index 8d36a40..fd95c63 100644 --- a/app/src/main/java/com/terratenientes/medicalhealth/ModificarActivity.kt +++ b/app/src/main/java/com/terratenientes/medicalhealth/ModificarActivity.kt @@ -4,16 +4,27 @@ import com.terratenientes.medicalhealth.adapters.DoctorDataBaseHelper import com.terratenientes.medicalhealth.data.Paciente import com.terratenientes.medicalhealth.reports.ConsultarPacientesActivity import android.content.Intent +import android.os.Build import androidx.appcompat.app.AppCompatActivity import android.os.Bundle +import android.util.Log import android.widget.Toast +import androidx.annotation.RequiresApi +import com.terratenientes.medicalhealth.adapters.HistorialDataBaseHelper +import com.terratenientes.medicalhealth.data.Historial import com.terratenientes.medicalhealth.databinding.ActivityModificarBinding +import java.time.ZoneId +import java.time.ZonedDateTime +import java.time.format.DateTimeFormatter +@RequiresApi(Build.VERSION_CODES.O) class ModificarActivity : AppCompatActivity() { lateinit var binding : ActivityModificarBinding private lateinit var paciente : Paciente private lateinit var db: DoctorDataBaseHelper + private lateinit var dbHistorial: HistorialDataBaseHelper + private lateinit var historial: Historial override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -21,6 +32,9 @@ class ModificarActivity : AppCompatActivity() { val view = binding.root setContentView(view) db = DoctorDataBaseHelper(this@ModificarActivity) + dbHistorial = HistorialDataBaseHelper(this@ModificarActivity) + historial = Historial("Doctor", intent.getStringExtra("NombreDoctor"),"Se inició la actividad modificar paciente", obtenerFecha()) + añadirHistorial(historial) paciente = Paciente(intent.getIntExtra("Id",2),intent.getStringExtra("Nombre Paciente").toString(),intent.getStringExtra("Apellido Paterno").toString(), intent.getStringExtra("Apellido Materno").toString(), intent.getIntExtra("Edad", 20), intent.getStringExtra("Sexo").toString(), intent.getStringExtra("Domicilio").toString()) llenarCampos() binding.btnModificar.setOnClickListener { @@ -34,6 +48,9 @@ class ModificarActivity : AppCompatActivity() { paciente.apellidoMaterno = binding.etApellidoMaterno.text.toString() paciente.domicilio = binding.etDomicilio.text.toString() db.modificarPaciente(paciente) + historial.eventoRealizado = "Se modifico la información de paciente ${paciente.nombre}" + historial.fecha = obtenerFecha() + añadirHistorial(historial) finish() Toast.makeText(this@ModificarActivity, "Información Actualizada UwU", Toast.LENGTH_LONG).show() } @@ -47,4 +64,24 @@ class ModificarActivity : AppCompatActivity() { binding.tvSexo.setText("Sexo: ${paciente.sexo}") } + private fun obtenerFecha(): String { + val fromTimeZone = ZoneId.of("America/Mexico_City") + + val currentTime = ZonedDateTime.now(fromTimeZone) + + val dateFormat = "MMM dd yyyy | hh:mm:ss a " + val formatter = DateTimeFormatter.ofPattern(dateFormat) + return formatter.format(currentTime) + } + + private fun añadirHistorial(historial: Historial) { + val resultadoInsert = dbHistorial.agregarInformacin(historial) + var msj = "" + if(resultadoInsert > 0) + msj = "Información historica almacenada" + else + msj = "Error al almacenar la información" + Log.i("Historial", msj + " | Información almacenada: " + historial) + } + } \ No newline at end of file diff --git a/app/src/main/java/com/terratenientes/medicalhealth/ModificarRecetaActivity.kt b/app/src/main/java/com/terratenientes/medicalhealth/ModificarRecetaActivity.kt index 9673499..1fdb7c9 100644 --- a/app/src/main/java/com/terratenientes/medicalhealth/ModificarRecetaActivity.kt +++ b/app/src/main/java/com/terratenientes/medicalhealth/ModificarRecetaActivity.kt @@ -1,22 +1,35 @@ package com.terratenientes.medicalhealth +import android.os.Build import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.util.Log +import androidx.annotation.RequiresApi +import com.terratenientes.medicalhealth.adapters.HistorialDataBaseHelper import com.terratenientes.medicalhealth.adapters.RecetaDataBaseHelper +import com.terratenientes.medicalhealth.data.Historial import com.terratenientes.medicalhealth.data.Receta import com.terratenientes.medicalhealth.databinding.ActivityModificarRecetaBinding +import java.time.ZoneId +import java.time.ZonedDateTime +import java.time.format.DateTimeFormatter +@RequiresApi(Build.VERSION_CODES.O) class ModificarRecetaActivity : AppCompatActivity() { lateinit var binding : ActivityModificarRecetaBinding lateinit var receta : Receta lateinit var db : RecetaDataBaseHelper + lateinit var dbHistorial: HistorialDataBaseHelper + lateinit var historial: Historial override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding = ActivityModificarRecetaBinding.inflate(layoutInflater) val view = binding.root setContentView(view) db = RecetaDataBaseHelper(this@ModificarRecetaActivity) + dbHistorial = HistorialDataBaseHelper(this@ModificarRecetaActivity) + historial = Historial("Paciente", intent.getStringExtra("NombrePaciente").toString(), "Se inicio la actividad modificar receta del paciente", obtenerFecha()) + añadirHistorial(historial) receta = Receta(intent.getStringExtra("NombrePaciente").toString(),intent.getStringExtra("EdadPaciente").toString().toInt(),intent.getStringExtra("PesoPaciente").toString().toDouble(),intent.getStringExtra("NombreMedicamento").toString(),intent.getStringExtra("Fecha").toString(),intent.getStringExtra("Dosis").toString(), intent.getStringExtra("Duracion").toString()) llenarCampos(receta) binding.btnModificarReceta.setOnClickListener { @@ -34,6 +47,9 @@ class ModificarRecetaActivity : AppCompatActivity() { receta.duracion = binding.etDuracion.text.toString() db.modificarReceta(receta) Log.i("Info Actualizada", receta.toString()) + historial.eventoRealizado = "Se modificó una receta" + historial.fecha = obtenerFecha() + añadirHistorial(historial) finish() } @@ -46,4 +62,24 @@ class ModificarRecetaActivity : AppCompatActivity() { binding.etDosisMedicamento.setText(receta.dosis) binding.etDuracion.setText(receta.duracion) } + + private fun obtenerFecha(): String { + val fromTimeZone = ZoneId.of("America/Mexico_City") + + val currentTime = ZonedDateTime.now(fromTimeZone) + + val dateFormat = "MMM dd yyyy | hh:mm:ss a " + val formatter = DateTimeFormatter.ofPattern(dateFormat) + return formatter.format(currentTime) + } + + private fun añadirHistorial(historial: Historial) { + val resultadoInsert = dbHistorial.agregarInformacin(historial) + var msj = "" + if(resultadoInsert > 0) + msj = "Información historica almacenada" + else + msj = "Error al almacenar la información" + Log.i("Historial", msj + " | Información almacenada: " + historial) + } } \ No newline at end of file diff --git a/app/src/main/java/com/terratenientes/medicalhealth/PacienteActivity.kt b/app/src/main/java/com/terratenientes/medicalhealth/PacienteActivity.kt index 3d9f134..3cabbc2 100644 --- a/app/src/main/java/com/terratenientes/medicalhealth/PacienteActivity.kt +++ b/app/src/main/java/com/terratenientes/medicalhealth/PacienteActivity.kt @@ -1,25 +1,36 @@ package com.terratenientes.medicalhealth import android.content.Intent +import android.os.Build import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.util.Log +import androidx.annotation.RequiresApi import androidx.recyclerview.widget.LinearLayoutManager import com.terratenientes.medicalhealth.adapters.CellClickListener import com.terratenientes.medicalhealth.adapters.DoctorDataBaseHelper +import com.terratenientes.medicalhealth.adapters.HistorialDataBaseHelper import com.terratenientes.medicalhealth.adapters.PacienteViewAdapter import com.terratenientes.medicalhealth.adapters.RecetaDataBaseHelper import com.terratenientes.medicalhealth.adapters.RecetaViewAdapter +import com.terratenientes.medicalhealth.data.Historial import com.terratenientes.medicalhealth.data.Paciente import com.terratenientes.medicalhealth.data.Receta import com.terratenientes.medicalhealth.databinding.ActivityPacienteBinding +import java.time.ZoneId +import java.time.ZonedDateTime +import java.time.format.DateTimeFormatter +@RequiresApi(Build.VERSION_CODES.O) class PacienteActivity : AppCompatActivity(), CellClickListener { lateinit var binding : ActivityPacienteBinding private var idPaciente : String ="" private lateinit var db: DoctorDataBaseHelper + private lateinit var dbHistorial: HistorialDataBaseHelper + private lateinit var historial: Historial private lateinit var recycleAdapter : PacienteViewAdapter private lateinit var pacientes : List + lateinit var nombreDoctor: String override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding = ActivityPacienteBinding.inflate(layoutInflater) @@ -30,10 +41,18 @@ class PacienteActivity : AppCompatActivity(), CellClickListener { recycleAdapter = PacienteViewAdapter(pacientes, this@PacienteActivity, this@PacienteActivity) binding.rvPacientes.layoutManager = LinearLayoutManager(this) binding.rvPacientes.adapter = recycleAdapter + dbHistorial = HistorialDataBaseHelper(this@PacienteActivity) + historial = Historial("Doctor", intent.getStringExtra("NombreDoctor").toString(),"Se inició la actividad de pacientes", obtenerFecha()) + añadirHistorial(historial) + nombreDoctor = intent.getStringExtra("NombreDoctor").toString() Log.i("Pacientes", pacientes.toString()) binding.ivAgregarPaciente.setOnClickListener { val intent = Intent(this@PacienteActivity, AgregarActivity::class.java) + intent.putExtra("NombreDoctor", nombreDoctor) startActivity(intent) + historial.eventoRealizado = "Se accionó el boton para inciar la actividad de alta paciente" + historial.fecha = obtenerFecha() + añadirHistorial(historial) } } @@ -48,6 +67,9 @@ class PacienteActivity : AppCompatActivity(), CellClickListener { override fun onEliminarClickListener(position: Int) { val paciente = pacientes[position] Log.i("Paciente Elim", paciente.toString()) + historial.eventoRealizado = "Se acciono el botón para eliminar al usuario ${paciente.id}" + historial.fecha = obtenerFecha() + añadirHistorial(historial) db.eliminarPaciente(paciente.id) recycleAdapter.refreshData(db.obtenerPacientes()) } @@ -62,6 +84,30 @@ class PacienteActivity : AppCompatActivity(), CellClickListener { intent.putExtra("Domicilio", paciente.domicilio) intent.putExtra("Edad", paciente.edad) intent.putExtra("Sexo", paciente.sexo) + intent.putExtra("NombreDoctor",nombreDoctor) startActivity(intent) + historial.eventoRealizado = "Se acciono el botón para iniciar la actividad modificar paciente con los datos del paciente ${paciente.nombre}" + historial.fecha = obtenerFecha() + añadirHistorial(historial) + } + + private fun obtenerFecha(): String { + val fromTimeZone = ZoneId.of("America/Mexico_City") + + val currentTime = ZonedDateTime.now(fromTimeZone) + + val dateFormat = "MMM dd yyyy | hh:mm:ss a " + val formatter = DateTimeFormatter.ofPattern(dateFormat) + return formatter.format(currentTime) + } + + private fun añadirHistorial(historial: Historial) { + val resultadoInsert = dbHistorial.agregarInformacin(historial) + var msj = "" + if(resultadoInsert > 0) + msj = "Información historica almacenada" + else + msj = "Error al almacenar la información" + Log.i("Historial", msj + " | Información almacenada: " + historial) } } \ No newline at end of file diff --git a/app/src/main/java/com/terratenientes/medicalhealth/PacientePrincipalActivity.kt b/app/src/main/java/com/terratenientes/medicalhealth/PacientePrincipalActivity.kt index 65e5781..6019c94 100644 --- a/app/src/main/java/com/terratenientes/medicalhealth/PacientePrincipalActivity.kt +++ b/app/src/main/java/com/terratenientes/medicalhealth/PacientePrincipalActivity.kt @@ -9,33 +9,48 @@ import android.content.Intent import android.content.pm.PackageManager import android.graphics.Typeface import android.graphics.pdf.PdfDocument +import android.os.Build import android.os.Bundle import android.os.Environment import android.text.TextPaint import android.util.Log import android.widget.Toast +import androidx.annotation.RequiresApi import androidx.appcompat.app.AppCompatActivity import androidx.core.app.ActivityCompat import androidx.core.content.ContextCompat import androidx.recyclerview.widget.LinearLayoutManager +import com.terratenientes.medicalhealth.adapters.HistorialDataBaseHelper +import com.terratenientes.medicalhealth.data.Historial import com.terratenientes.medicalhealth.databinding.ActivityPacientePrincipalBinding import java.io.File import java.io.FileOutputStream +import java.time.ZoneId +import java.time.ZonedDateTime +import java.time.format.DateTimeFormatter +@RequiresApi(Build.VERSION_CODES.O) class PacientePrincipalActivity : AppCompatActivity(), CellClickListener { private lateinit var binding: ActivityPacientePrincipalBinding private var idPaciente : String ="" private lateinit var db: RecetaDataBaseHelper private lateinit var recycleAdapter : RecetaViewAdapter private lateinit var recetas : List + lateinit var dbHistorial: HistorialDataBaseHelper + lateinit var historial: Historial + lateinit var nombrePaciente: String override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding = ActivityPacientePrincipalBinding.inflate(layoutInflater) val view = binding.root setContentView(view) idPaciente= intent.getStringExtra("IDPaciente")!! - db= RecetaDataBaseHelper(this) + db= RecetaDataBaseHelper(this@PacientePrincipalActivity) + dbHistorial = HistorialDataBaseHelper(this@PacientePrincipalActivity) + historial = Historial("Paciente", intent.getStringExtra("NombrePaciente").toString(), "Se inicio la actividad menu principal del paciente", obtenerFecha()) + añadirHistorial(historial) recetas=db.obtenerRecetasPaciente(idPaciente) + nombrePaciente = intent.getStringExtra("NombrePaciente").toString() recycleAdapter = RecetaViewAdapter(db.obtenerRecetasPaciente(idPaciente), this, this@PacientePrincipalActivity) @@ -71,6 +86,9 @@ class PacientePrincipalActivity : AppCompatActivity(), CellClickListener { // Toast.makeText(this, "Peso : ${datosPaciente[position].pesoPaciente}+ edad: ${datosPaciente[position].edadPaciente} ", Toast.LENGTH_LONG).show() //Toast.makeText(this@PacientePrincipalActivity, "PERMISOS CONCEDIDOS", Toast.LENGTH_SHORT).show() generarPDF(nombrePaciente, descripcionReceta, nombreMeciamento) + historial.eventoRealizado = "Se descargo la receta en formato pdf" + historial.fecha = obtenerFecha() + añadirHistorial(historial) }else{ pedirPermisosPDF() } @@ -79,13 +97,18 @@ class PacientePrincipalActivity : AppCompatActivity(), CellClickListener { override fun onEliminarClickListener(position: Int) { val receta = recetas[position] db.eliminarReceta(receta) + historial.eventoRealizado = "Se accionó el boton de eliminar la receta" + historial.fecha = obtenerFecha() + añadirHistorial(historial) recycleAdapter.refreshData(db.obtenerRecetasPaciente(idPaciente)) Toast.makeText(this, "Receta eliminada correctamente", Toast.LENGTH_SHORT).show() } override fun onModifyClickListener(position: Int) { val receta = recetas[position] - Log.i("Prueba Modificar", receta.toString()) + historial.eventoRealizado = "Se accionó el boton de iniciar la actividad de modificar la receta" + historial.fecha = obtenerFecha() + añadirHistorial(historial) val intent = Intent(this@PacientePrincipalActivity, ModificarRecetaActivity::class.java) intent.putExtra("NombrePaciente", receta.NombrePaciente) intent.putExtra("EdadPaciente", receta.edadPaciente.toString()) @@ -94,6 +117,7 @@ class PacientePrincipalActivity : AppCompatActivity(), CellClickListener { intent.putExtra("Fecha", receta.fecha) intent.putExtra("Dosis", receta.dosis) intent.putExtra("Duracion", receta.duracion) + intent.putExtra("NombrePaciente", nombrePaciente) startActivity(intent) } @@ -170,5 +194,25 @@ class PacientePrincipalActivity : AppCompatActivity(), CellClickListener { } } + private fun obtenerFecha(): String { + val fromTimeZone = ZoneId.of("America/Mexico_City") + + val currentTime = ZonedDateTime.now(fromTimeZone) + + val dateFormat = "MMM dd yyyy | hh:mm:ss a " + val formatter = DateTimeFormatter.ofPattern(dateFormat) + return formatter.format(currentTime) + } + + private fun añadirHistorial(historial: Historial) { + val resultadoInsert = dbHistorial.agregarInformacin(historial) + var msj = "" + if(resultadoInsert > 0) + msj = "Información historica almacenada" + else + msj = "Error al almacenar la información" + Log.i("Historial", msj + " | Información almacenada: " + historial) + } + } \ No newline at end of file diff --git a/app/src/main/java/com/terratenientes/medicalhealth/PrincipalActivity.kt b/app/src/main/java/com/terratenientes/medicalhealth/PrincipalActivity.kt index d313efe..5499e47 100644 --- a/app/src/main/java/com/terratenientes/medicalhealth/PrincipalActivity.kt +++ b/app/src/main/java/com/terratenientes/medicalhealth/PrincipalActivity.kt @@ -1,33 +1,60 @@ package com.terratenientes.medicalhealth import android.content.Intent +import android.os.Build import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.util.Log +import androidx.annotation.RequiresApi import com.terratenientes.medicalhealth.adapters.DoctorDataBaseHelper +import com.terratenientes.medicalhealth.adapters.HistorialDataBaseHelper import com.terratenientes.medicalhealth.data.Doctor +import com.terratenientes.medicalhealth.data.Historial import com.terratenientes.medicalhealth.databinding.ActivityPrincipalBinding import com.terratenientes.medicalhealth.reports.ConsultarPacientesActivity +import java.time.ZoneId +import java.time.ZonedDateTime +import java.time.format.DateTimeFormatter +@RequiresApi(Build.VERSION_CODES.O) class PrincipalActivity : AppCompatActivity() { lateinit var binding : ActivityPrincipalBinding lateinit var db : DoctorDataBaseHelper + private lateinit var dbHistorial: HistorialDataBaseHelper + private lateinit var historial: Historial + lateinit var nombreDoctor : String override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding = ActivityPrincipalBinding.inflate(layoutInflater) val view = binding.root setContentView(view) db = DoctorDataBaseHelper(this@PrincipalActivity) + dbHistorial = HistorialDataBaseHelper(this@PrincipalActivity) Log.i("Datos Doctor", intent.getStringExtra("Cedula").toString()) + historial = Historial("Doctor", null,"Se inició la actividad de menú principal", obtenerFecha()) datosDoctor(intent.getStringExtra("Cedula").toString()) + añadirHistorial(historial) binding.ivPacientes.setOnClickListener { val intent = Intent(this@PrincipalActivity, PacienteActivity::class.java) + intent.putExtra("NombreDoctor", nombreDoctor) startActivity(intent) + historial.eventoRealizado = "Se presionó el botón para iniciar la actividad de pacientes" + historial.fecha = obtenerFecha() + añadirHistorial(historial) } binding.ivRecetas.setOnClickListener { val intent = Intent(this@PrincipalActivity, RecetaActivity::class.java) + intent.putExtra("NombreDoctor", nombreDoctor) startActivity(intent) + historial.eventoRealizado = "Se presionó el botón para iniciar la actividad de recetas" + historial.fecha = obtenerFecha() + añadirHistorial(historial) + } + binding.ivHistorial.setOnClickListener { + historial.eventoRealizado = "Se presionó el botón para iniciar la actividad de historial" + historial.fecha = obtenerFecha() + añadirHistorial(historial) } } @@ -40,5 +67,27 @@ class PrincipalActivity : AppCompatActivity() { binding.tvTelefonoDoctor.setText("Telefono: ${doctor.Telefono}") binding.tvCedulaDoctor.setText("Cédula: ${doctor.Cedula}") binding.tvConsultorioDoctor.setText("Consultorio: ${doctor.Consultorio}") + historial.nombreUsuario = doctor.Nombre + nombreDoctor = doctor.Nombre + } + + private fun obtenerFecha(): String { + val fromTimeZone = ZoneId.of("America/Mexico_City") + + val currentTime = ZonedDateTime.now(fromTimeZone) + + val dateFormat = "MMM dd yyyy | hh:mm:ss a " + val formatter = DateTimeFormatter.ofPattern(dateFormat) + return formatter.format(currentTime) + } + + private fun añadirHistorial(historial: Historial) { + val resultadoInsert = dbHistorial.agregarInformacin(historial) + var msj = "" + if(resultadoInsert > 0) + msj = "Información historica almacenada" + else + msj = "Error al almacenar la información" + Log.i("Historial", msj + " | Información almacenada: " + historial) } } \ No newline at end of file diff --git a/app/src/main/java/com/terratenientes/medicalhealth/RecetaActivity.kt b/app/src/main/java/com/terratenientes/medicalhealth/RecetaActivity.kt index 6f456f8..7d67f0d 100644 --- a/app/src/main/java/com/terratenientes/medicalhealth/RecetaActivity.kt +++ b/app/src/main/java/com/terratenientes/medicalhealth/RecetaActivity.kt @@ -4,22 +4,33 @@ import com.terratenientes.medicalhealth.adapters.RecetaDataBaseHelper import com.terratenientes.medicalhealth.adapters.DoctorDataBaseHelper import com.terratenientes.medicalhealth.data.Receta import android.annotation.SuppressLint +import android.os.Build import android.os.Bundle +import android.util.Log import android.view.View import android.widget.AdapterView import android.widget.AdapterView.OnItemSelectedListener import android.widget.ArrayAdapter import android.widget.Toast import androidx.activity.enableEdgeToEdge +import androidx.annotation.RequiresApi import androidx.appcompat.app.AppCompatActivity +import com.terratenientes.medicalhealth.adapters.HistorialDataBaseHelper +import com.terratenientes.medicalhealth.data.Historial import com.terratenientes.medicalhealth.databinding.ActivityRecetaBinding import com.terratenientes.medicalhealth.utilidad.DatePickerFragment +import java.time.ZoneId +import java.time.ZonedDateTime +import java.time.format.DateTimeFormatter import java.util.Date +@RequiresApi(Build.VERSION_CODES.O) class RecetaActivity : AppCompatActivity(), OnItemSelectedListener { private lateinit var binding : ActivityRecetaBinding private lateinit var db : RecetaDataBaseHelper private lateinit var dbPaciente : DoctorDataBaseHelper + private lateinit var dbHistorial: HistorialDataBaseHelper + private lateinit var historial: Historial override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -27,15 +38,20 @@ class RecetaActivity : AppCompatActivity(), OnItemSelectedListener { val view = binding.root enableEdgeToEdge() db= RecetaDataBaseHelper(this@RecetaActivity) + dbHistorial = HistorialDataBaseHelper(this@RecetaActivity) dbPaciente = DoctorDataBaseHelper(this@RecetaActivity) setContentView(view) //db.crearTablaReceta() cargarSpinnerPacientes() + historial = Historial("Doctor", intent.getStringExtra("NombreDoctor"),"Se inició la actividad de añadir receta", obtenerFecha()) + añadirHistorial(historial) binding.spNombrePaciente.onItemSelectedListener=this binding.btnAgregarReceta.setOnClickListener { agregarReceta() } binding.tvDatepicker.setOnClickListener{ + historial.eventoRealizado = "Se dio click en el calendario" + historial.fecha = obtenerFecha() showPickerDialog() } } @@ -67,6 +83,8 @@ class RecetaActivity : AppCompatActivity(), OnItemSelectedListener { val duracion= binding.etDuracion.text.toString() val receta = Receta(nombrePaciente,edadPaciente,pesoPaciente,medicamento,fecha,dosis,duracion) db.agregarReceta(receta) + historial.eventoRealizado = "Añadio una receta al paciente $nombrePaciente" + historial.fecha = obtenerFecha() Toast.makeText(this@RecetaActivity , "RECETA AGREGADA CORRECTAMENTE", Toast.LENGTH_LONG).show() finish() } @@ -89,4 +107,24 @@ class RecetaActivity : AppCompatActivity(), OnItemSelectedListener { private fun obtenerFechaSeleccionada (day: Int, month: Int, year: Int) { binding.tvFecha.text = "$day/$month/$year" } + + private fun obtenerFecha(): String { + val fromTimeZone = ZoneId.of("America/Mexico_City") + + val currentTime = ZonedDateTime.now(fromTimeZone) + + val dateFormat = "MMM dd yyyy | hh:mm:ss a " + val formatter = DateTimeFormatter.ofPattern(dateFormat) + return formatter.format(currentTime) + } + + private fun añadirHistorial(historial: Historial) { + val resultadoInsert = dbHistorial.agregarInformacin(historial) + var msj = "" + if(resultadoInsert > 0) + msj = "Información historica almacenada" + else + msj = "Error al almacenar la información" + Log.i("Historial", msj + " | Información almacenada: " + historial) + } } \ No newline at end of file diff --git a/app/src/main/java/com/terratenientes/medicalhealth/RegistrarDActivity.kt b/app/src/main/java/com/terratenientes/medicalhealth/RegistrarDActivity.kt index 3d83802..36026ef 100644 --- a/app/src/main/java/com/terratenientes/medicalhealth/RegistrarDActivity.kt +++ b/app/src/main/java/com/terratenientes/medicalhealth/RegistrarDActivity.kt @@ -1,20 +1,34 @@ package com.terratenientes.medicalhealth +import android.os.Build import com.terratenientes.medicalhealth.adapters.DoctorDataBaseHelper import com.terratenientes.medicalhealth.data.Doctor import android.os.Bundle +import android.util.Log import android.widget.Toast +import androidx.annotation.RequiresApi import androidx.appcompat.app.AppCompatActivity +import com.terratenientes.medicalhealth.adapters.HistorialDataBaseHelper +import com.terratenientes.medicalhealth.data.Historial import com.terratenientes.medicalhealth.databinding.ActivityRegistrarDactivityBinding +import java.time.ZoneId +import java.time.ZonedDateTime +import java.time.format.DateTimeFormatter +@RequiresApi(Build.VERSION_CODES.O) class RegistrarDActivity : AppCompatActivity() { private lateinit var binding : ActivityRegistrarDactivityBinding private lateinit var db : DoctorDataBaseHelper + private lateinit var dbHistorial: HistorialDataBaseHelper + private lateinit var historial: Historial override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding = ActivityRegistrarDactivityBinding.inflate(layoutInflater) val view = binding.root setContentView(view) + dbHistorial = HistorialDataBaseHelper(this@RegistrarDActivity) + historial = Historial(null, null, "Se abrió la actividad de registro", obtenerFecha()) + añadirHistorial(historial) db= DoctorDataBaseHelper(this@RegistrarDActivity) binding.btnRegistrar.setOnClickListener { registrarUsuario() @@ -30,6 +44,31 @@ class RegistrarDActivity : AppCompatActivity() { val usuario= Doctor(cedula,nombre,apellido,telefono,domicilio.toInt()) db.agregarDoctores(usuario,contrasena) Toast.makeText(this@RegistrarDActivity,"USUARIO AGREGADO",Toast.LENGTH_LONG).show() + historial.eventoRealizado = "Se registraron los datos de un doctor" + historial.fecha = obtenerFecha() + historial.tipoUsuario = "Doctor" + historial.nombreUsuario = nombre + añadirHistorial(historial) finish() } + + private fun obtenerFecha(): String { + val fromTimeZone = ZoneId.of("America/Mexico_City") + + val currentTime = ZonedDateTime.now(fromTimeZone) + + val dateFormat = "MMM dd yyyy | hh:mm:ss a " + val formatter = DateTimeFormatter.ofPattern(dateFormat) + return formatter.format(currentTime) + } + + private fun añadirHistorial(historial: Historial) { + val resultadoInsert = dbHistorial.agregarInformacin(historial) + var msj = "" + if(resultadoInsert > 0) + msj = "Información historica almacenada" + else + msj = "Error al almacenar la información" + Log.i("Historial", msj + " | Información almacenada: " + historial) + } } \ No newline at end of file diff --git a/app/src/main/java/com/terratenientes/medicalhealth/adapters/HistorialDataBaseHelper.kt b/app/src/main/java/com/terratenientes/medicalhealth/adapters/HistorialDataBaseHelper.kt new file mode 100644 index 0000000..957b27a --- /dev/null +++ b/app/src/main/java/com/terratenientes/medicalhealth/adapters/HistorialDataBaseHelper.kt @@ -0,0 +1,49 @@ +package com.terratenientes.medicalhealth.adapters + +import android.content.Context +import android.database.sqlite.SQLiteDatabase +import android.database.sqlite.SQLiteOpenHelper +import androidx.core.content.contentValuesOf +import com.terratenientes.medicalhealth.data.Historial + +class HistorialDataBaseHelper (context: Context) : SQLiteOpenHelper(context, DATABAENAME, null, DATABASEVERSION){ + companion object{ + private val DATABAENAME = "MedicalHealth" + private val DATABASEVERSION=1 + //PRIMERO VA EL NOMBRE DE LA TABLA + private val TABLE_NAME = "Historial" + //LUEGO VAN LAS COLUMNAS DE ESA TABLA + private val COLUMN_TIPO_USUARIO = "TipoUsuario" + private val COLUMN_NOMBRE_USUARIO = "NombreUsuario" + private val COLUMN_EVENTO = "Evento" + private val COLUMN_FECHA = "Fecha" + } + override fun onCreate(db: SQLiteDatabase?) { + val crearTabla="CREATE TABLE ${TABLE_NAME} (${COLUMN_TIPO_USUARIO} VARCHAR(30), ${COLUMN_NOMBRE_USUARIO} VARCHAR(30), ${COLUMN_EVENTO} VARCHAR(255), ${COLUMN_FECHA} VARCHAR(70))" + db?.execSQL(crearTabla) + } + + override fun onUpgrade(db: SQLiteDatabase?, oldVersion: Int, newVersion: Int) { + val dropTableReceta="DROP TABLE IF EXISTS ${TABLE_NAME}" + db?.execSQL(dropTableReceta) + } + + fun crearTablaHistorial(){ + val db=writableDatabase + val crearTabla="CREATE TABLE ${TABLE_NAME} (${COLUMN_TIPO_USUARIO} VARCHAR(30), ${COLUMN_NOMBRE_USUARIO} VARCHAR(30), ${COLUMN_EVENTO} VARCHAR(255), ${COLUMN_FECHA} VARCHAR(70))" + db?.execSQL(crearTabla) + } + + fun agregarInformacin (historial: Historial) : Long { + val db = writableDatabase + val values = contentValuesOf().apply { + put(COLUMN_TIPO_USUARIO, historial.tipoUsuario) + put(COLUMN_NOMBRE_USUARIO, historial.nombreUsuario) + put(COLUMN_EVENTO, historial.eventoRealizado) + put(COLUMN_FECHA, historial.fecha) + } + val respuestaInsert = db.insert(TABLE_NAME, null, values) + db.close() + return respuestaInsert + } +} \ No newline at end of file diff --git a/app/src/main/java/com/terratenientes/medicalhealth/data/Historial.kt b/app/src/main/java/com/terratenientes/medicalhealth/data/Historial.kt new file mode 100644 index 0000000..356652f --- /dev/null +++ b/app/src/main/java/com/terratenientes/medicalhealth/data/Historial.kt @@ -0,0 +1,8 @@ +package com.terratenientes.medicalhealth.data + +data class Historial( + var tipoUsuario: String?, + var nombreUsuario: String?, + var eventoRealizado: String?, + var fecha: String? +)