From 30a54fe6c66f24eed7ea95bb457567fd12a9b6fd Mon Sep 17 00:00:00 2001 From: AngelSuarez03 Date: Wed, 22 May 2024 08:31:35 -0600 Subject: [PATCH 1/3] Widget DatePicker en la actividad para agregar receta --- .../medicalhealth/RecetaActivity.kt | 17 ++++++++- .../utilidad/DatePickerFragment.kt | 23 ++++++++++++ app/src/main/res/layout/activity_receta.xml | 35 +++++++++++++++---- 3 files changed, 67 insertions(+), 8 deletions(-) create mode 100644 app/src/main/java/com/terratenientes/medicalhealth/utilidad/DatePickerFragment.kt diff --git a/app/src/main/java/com/terratenientes/medicalhealth/RecetaActivity.kt b/app/src/main/java/com/terratenientes/medicalhealth/RecetaActivity.kt index aad1018..6f456f8 100644 --- a/app/src/main/java/com/terratenientes/medicalhealth/RecetaActivity.kt +++ b/app/src/main/java/com/terratenientes/medicalhealth/RecetaActivity.kt @@ -13,6 +13,8 @@ import android.widget.Toast import androidx.activity.enableEdgeToEdge import androidx.appcompat.app.AppCompatActivity import com.terratenientes.medicalhealth.databinding.ActivityRecetaBinding +import com.terratenientes.medicalhealth.utilidad.DatePickerFragment +import java.util.Date class RecetaActivity : AppCompatActivity(), OnItemSelectedListener { private lateinit var binding : ActivityRecetaBinding @@ -33,6 +35,9 @@ class RecetaActivity : AppCompatActivity(), OnItemSelectedListener { binding.btnAgregarReceta.setOnClickListener { agregarReceta() } + binding.tvDatepicker.setOnClickListener{ + showPickerDialog() + } } @SuppressLint("Range") private fun obtenerNombrePacientes() : ArrayList{ @@ -57,12 +62,13 @@ class RecetaActivity : AppCompatActivity(), OnItemSelectedListener { val edadPaciente = (binding.etEdadPaciente.text.toString()).toInt() val pesoPaciente = (binding.etPesoPaciente.text.toString()).toDouble() val medicamento= binding.etRecetaMedicamento.text.toString() - val fecha=binding.etFecha.text.toString() + val fecha=binding.tvFecha.text.toString() val dosis = binding.etDosisMedicamento.text.toString() val duracion= binding.etDuracion.text.toString() val receta = Receta(nombrePaciente,edadPaciente,pesoPaciente,medicamento,fecha,dosis,duracion) db.agregarReceta(receta) Toast.makeText(this@RecetaActivity , "RECETA AGREGADA CORRECTAMENTE", Toast.LENGTH_LONG).show() + finish() } override fun onItemSelected(p0: AdapterView<*>?, p1: View?, p2: Int, p3: Long) { @@ -74,4 +80,13 @@ class RecetaActivity : AppCompatActivity(), OnItemSelectedListener { override fun onNothingSelected(p0: AdapterView<*>?) { } + + private fun showPickerDialog() { + val datePicker = DatePickerFragment{day, month, year -> obtenerFechaSeleccionada(day, month, year)} + datePicker.show(supportFragmentManager,"datePicker") + } + + private fun obtenerFechaSeleccionada (day: Int, month: Int, year: Int) { + binding.tvFecha.text = "$day/$month/$year" + } } \ No newline at end of file diff --git a/app/src/main/java/com/terratenientes/medicalhealth/utilidad/DatePickerFragment.kt b/app/src/main/java/com/terratenientes/medicalhealth/utilidad/DatePickerFragment.kt new file mode 100644 index 0000000..95451e3 --- /dev/null +++ b/app/src/main/java/com/terratenientes/medicalhealth/utilidad/DatePickerFragment.kt @@ -0,0 +1,23 @@ +package com.terratenientes.medicalhealth.utilidad + +import android.app.DatePickerDialog +import android.app.Dialog +import android.content.Context +import android.os.Bundle +import android.widget.DatePicker +import androidx.fragment.app.DialogFragment +import java.util.Calendar + +class DatePickerFragment (val listener: (day: Int, month: Int, year: Int) -> Unit): DialogFragment(), DatePickerDialog.OnDateSetListener { + override fun onDateSet(view: DatePicker?, year: Int, month: Int, dayOfMonth: Int) { + listener(dayOfMonth, month, year) + } + + override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { + val c: Calendar = Calendar.getInstance() + val day: Int = c.get(Calendar.DAY_OF_MONTH) + val month: Int = c.get(Calendar.MONTH) + val year: Int = c.get(Calendar.YEAR) + return DatePickerDialog(activity as Context, this@DatePickerFragment, year, month, day) + } +} \ No newline at end of file diff --git a/app/src/main/res/layout/activity_receta.xml b/app/src/main/res/layout/activity_receta.xml index c4d0cc1..22d0eaa 100644 --- a/app/src/main/res/layout/activity_receta.xml +++ b/app/src/main/res/layout/activity_receta.xml @@ -51,15 +51,36 @@ android:hint="@string/receta_medicamento" android:layout_gravity="center_horizontal" /> - + android:layout_gravity="center" + android:columnCount="2" + android:rowCount="1"> + + + Date: Sat, 25 May 2024 13:03:45 -0600 Subject: [PATCH 2/3] =?UTF-8?q?Funcionalidad=20de=20historial,=20se=20anex?= =?UTF-8?q?an=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? +) From 08ffeac5e461da9b506c85826178666f77a276ed Mon Sep 17 00:00:00 2001 From: AngelSuarez03 Date: Sun, 26 May 2024 11:32:32 -0600 Subject: [PATCH 3/3] =?UTF-8?q?Correci=C3=B3n=20recycle=20view=20pacientes?= =?UTF-8?q?=20y=20funcionalidad=20de=20descarga=20de=20historial=20en=20fo?= =?UTF-8?q?rmato=20csv?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../medicalhealth/AgregarActivity.kt | 2 +- .../medicalhealth/MainActivity.kt | 12 +- .../medicalhealth/ModificarActivity.kt | 4 +- .../medicalhealth/PacienteActivity.kt | 90 ++++++++++- .../PacientePrincipalActivity.kt | 4 +- .../medicalhealth/PrincipalActivity.kt | 81 +++++++++- .../medicalhealth/RecetaActivity.kt | 2 +- .../medicalhealth/RegistrarDActivity.kt | 2 +- .../adapters/HistorialDataBaseHelper.kt | 10 +- .../adapters/PacienteViewAdapter.kt | 14 +- .../reports/ConsultarPacientesActivity.kt | 1 + app/src/main/res/layout/rc_paciente_item.xml | 149 ++++++++++-------- app/src/main/res/values/strings.xml | 5 +- 13 files changed, 281 insertions(+), 95 deletions(-) diff --git a/app/src/main/java/com/terratenientes/medicalhealth/AgregarActivity.kt b/app/src/main/java/com/terratenientes/medicalhealth/AgregarActivity.kt index b4a8217..077816a 100644 --- a/app/src/main/java/com/terratenientes/medicalhealth/AgregarActivity.kt +++ b/app/src/main/java/com/terratenientes/medicalhealth/AgregarActivity.kt @@ -33,7 +33,7 @@ class AgregarActivity : AppCompatActivity() { setContentView(view) db = DoctorDataBaseHelper(this@AgregarActivity) dbHistorial = HistorialDataBaseHelper(this@AgregarActivity) - historial = Historial("Doctor", intent.getStringExtra("NombreDoctor"),"Se inició la actividad alta paciente", obtenerFecha()) + historial = Historial("Doctor", intent.getStringExtra("NombreDoctor"),"Se inicio la actividad alta paciente", obtenerFecha()) añadirHistorial(historial) val opcionesGenero = arrayOf("Masculino", "Femenino", "Otro") val adapter = ArrayAdapter(this, R.layout.simple_spinner_item, opcionesGenero) diff --git a/app/src/main/java/com/terratenientes/medicalhealth/MainActivity.kt b/app/src/main/java/com/terratenientes/medicalhealth/MainActivity.kt index b2c2755..ad5c5cb 100644 --- a/app/src/main/java/com/terratenientes/medicalhealth/MainActivity.kt +++ b/app/src/main/java/com/terratenientes/medicalhealth/MainActivity.kt @@ -10,6 +10,7 @@ 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.adapters.RecetaDataBaseHelper import com.terratenientes.medicalhealth.data.Doctor import com.terratenientes.medicalhealth.data.Historial import com.terratenientes.medicalhealth.databinding.ActivityMainBinding @@ -24,16 +25,19 @@ class MainActivity : AppCompatActivity() { private lateinit var binding: ActivityMainBinding private lateinit var db: DoctorDataBaseHelper private lateinit var dbHistorial: HistorialDataBaseHelper + lateinit var dbRecetas: RecetaDataBaseHelper private lateinit var historial: Historial override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding = ActivityMainBinding.inflate(layoutInflater) val view = binding.root setContentView(view) - historial = Historial(null, null, "Se abrió la aplicacion", obtenerFecha()) + historial = Historial(null, null, "Se abrio la aplicacion", obtenerFecha()) db = DoctorDataBaseHelper(this@MainActivity) dbHistorial = HistorialDataBaseHelper(this@MainActivity) + dbRecetas = RecetaDataBaseHelper(this@MainActivity) añadirHistorial(historial) + //dbRecetas.crearTablaReceta() //db.createTable() //dbHistorial.crearTablaHistorial() binding.btnIniciarSesion.setOnClickListener { @@ -47,7 +51,7 @@ class MainActivity : AppCompatActivity() { binding.tvContrasena.text.toString() ) if (res == true) { - historial.eventoRealizado = "Inicio Sesión Doctor" + historial.eventoRealizado = "Inicio Sesion Doctor" historial.tipoUsuario = "Doctor" añadirHistorial(historial) Toast.makeText(this@MainActivity, "VALIDADO", Toast.LENGTH_LONG).show() @@ -57,7 +61,7 @@ class MainActivity : AppCompatActivity() { startActivity(intent) } else if (resPaciente == true) { historial.tipoUsuario = "Paciente" - historial.eventoRealizado = "Inicio Sesión Paciente" + historial.eventoRealizado = "Inicio Sesion Paciente" añadirHistorial(historial) Toast.makeText(this@MainActivity, "VALIDADO", Toast.LENGTH_LONG).show() val intent = Intent(this@MainActivity, PacientePrincipalActivity::class.java) @@ -69,7 +73,7 @@ class MainActivity : AppCompatActivity() { } } binding.tvRegistrarme.setOnClickListener { - historial.eventoRealizado = "Accionó el botón para la pantalla de registro" + historial.eventoRealizado = "Acciono el botón para la pantalla de registro" historial.fecha = obtenerFecha() añadirHistorial(historial) val intent = Intent(this@MainActivity, RegistrarDActivity::class.java) diff --git a/app/src/main/java/com/terratenientes/medicalhealth/ModificarActivity.kt b/app/src/main/java/com/terratenientes/medicalhealth/ModificarActivity.kt index fd95c63..d834aa0 100644 --- a/app/src/main/java/com/terratenientes/medicalhealth/ModificarActivity.kt +++ b/app/src/main/java/com/terratenientes/medicalhealth/ModificarActivity.kt @@ -33,7 +33,7 @@ class ModificarActivity : AppCompatActivity() { setContentView(view) db = DoctorDataBaseHelper(this@ModificarActivity) dbHistorial = HistorialDataBaseHelper(this@ModificarActivity) - historial = Historial("Doctor", intent.getStringExtra("NombreDoctor"),"Se inició la actividad modificar paciente", obtenerFecha()) + historial = Historial("Doctor", intent.getStringExtra("NombreDoctor"),"Se inicio 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() @@ -48,7 +48,7 @@ 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.eventoRealizado = "Se modifico la informacion de paciente ${paciente.nombre}" historial.fecha = obtenerFecha() añadirHistorial(historial) finish() diff --git a/app/src/main/java/com/terratenientes/medicalhealth/PacienteActivity.kt b/app/src/main/java/com/terratenientes/medicalhealth/PacienteActivity.kt index 3cabbc2..889a2bd 100644 --- a/app/src/main/java/com/terratenientes/medicalhealth/PacienteActivity.kt +++ b/app/src/main/java/com/terratenientes/medicalhealth/PacienteActivity.kt @@ -1,15 +1,24 @@ package com.terratenientes.medicalhealth +import android.Manifest +import android.annotation.SuppressLint +import android.content.Context import android.content.Intent +import android.content.pm.PackageManager import android.os.Build import androidx.appcompat.app.AppCompatActivity import android.os.Bundle +import android.os.Environment import android.util.Log +import android.widget.Toast import androidx.annotation.RequiresApi +import androidx.core.app.ActivityCompat +import androidx.core.content.ContextCompat 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.PacienteAdapter import com.terratenientes.medicalhealth.adapters.PacienteViewAdapter import com.terratenientes.medicalhealth.adapters.RecetaDataBaseHelper import com.terratenientes.medicalhealth.adapters.RecetaViewAdapter @@ -17,6 +26,8 @@ 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.io.File +import java.io.FileWriter import java.time.ZoneId import java.time.ZonedDateTime import java.time.format.DateTimeFormatter @@ -24,8 +35,8 @@ 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 pacientesList: MutableList private lateinit var dbHistorial: HistorialDataBaseHelper private lateinit var historial: Historial private lateinit var recycleAdapter : PacienteViewAdapter @@ -42,18 +53,26 @@ class PacienteActivity : AppCompatActivity(), CellClickListener { 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()) + historial = Historial("Doctor", intent.getStringExtra("NombreDoctor").toString(),"Se inicio la actividad de pacientes", obtenerFecha()) añadirHistorial(historial) + cargarListaPacientes() 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.eventoRealizado = "Se acciono el boton para inciar la actividad alta paciente" historial.fecha = obtenerFecha() añadirHistorial(historial) } + binding.btnDescargarCsv.setOnClickListener { + historial.eventoRealizado = "Se acciono el botón para descargar la informacion de los pacientes" + historial.fecha = obtenerFecha() + añadirHistorial(historial) + exportarCSV(this@PacienteActivity, pacientesList) + + } } override fun onResume() { @@ -67,7 +86,7 @@ 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.eventoRealizado = "Se acciono el boton para eliminar al usuario ${paciente.id}" historial.fecha = obtenerFecha() añadirHistorial(historial) db.eliminarPaciente(paciente.id) @@ -86,11 +105,48 @@ class PacienteActivity : AppCompatActivity(), CellClickListener { 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.eventoRealizado = "Se acciono el boton para iniciar la actividad modificar paciente con los datos del paciente ${paciente.nombre}" historial.fecha = obtenerFecha() añadirHistorial(historial) } + fun exportarCSV(context: Context, pacienteList: MutableList) { + //Pedir Permisos + ActivityCompat.requestPermissions(this@PacienteActivity, arrayOf(Manifest.permission.WRITE_EXTERNAL_STORAGE,Manifest.permission.READ_EXTERNAL_STORAGE),200) + // Verificar si se tienen permisos de escritura externa + if (ContextCompat.checkSelfPermission(context, Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) { + try { + // Crear el directorio donde se guardará el archivo CSV + val directorio = File(Environment.getExternalStorageDirectory(), "MiApp") + if (!directorio.exists()) { + directorio.mkdirs() + } + + // Crear el archivo CSV + val archivoCSV = File(directorio, "Paciente.csv") + archivoCSV.createNewFile() + + // Escribir los datos en el archivo CSV + val writer = FileWriter(archivoCSV) + writer.append("ID, Nombre, Apellido Paterno, Apellido Materno, Edad, Sexo, Domicilio\n") + for (paciente in pacienteList) { + writer.append("${paciente.id},${paciente.nombre},${paciente.apellidoPaterno},${paciente.apellidoMaterno},${paciente.edad},${paciente.sexo},${paciente.domicilio}\n") + } + writer.flush() + writer.close() + Toast.makeText(this@PacienteActivity,getString(R.string.res_csv), Toast.LENGTH_LONG).show() + historial.eventoRealizado = "Se descargo la información de los pacientes" + historial.fecha = obtenerFecha() + añadirHistorial(historial) + } catch (e: Exception) { + e.printStackTrace() + } + }else{ + Toast.makeText(this@PacienteActivity,getString(R.string.err_permisos_storage), + Toast.LENGTH_LONG).show() + } + } + private fun obtenerFecha(): String { val fromTimeZone = ZoneId.of("America/Mexico_City") @@ -110,4 +166,28 @@ class PacienteActivity : AppCompatActivity(), CellClickListener { msj = "Error al almacenar la información" Log.i("Historial", msj + " | Información almacenada: " + historial) } + + private fun cargarListaPacientes() { + pacientesList = obtenerPacientes() + } + + @SuppressLint("Range") + private fun obtenerPacientes(): MutableList { + val pacientes = mutableListOf() + val db = db.readableDatabase + val cursor = db.rawQuery("SELECT * FROM ${DoctorDataBaseHelper.TABLE_PACIENTES}", null) + while (cursor.moveToNext()) { + val id = cursor.getInt(cursor.getColumnIndex(DoctorDataBaseHelper.COLUMN_ID_PACIENTE)) + val nombre = cursor.getString(cursor.getColumnIndex(DoctorDataBaseHelper.COLUMN_NOMBRE_PACIENTE)) + val apellidoPaterno = cursor.getString(cursor.getColumnIndex(DoctorDataBaseHelper.COLUMN_APELLIDO_PATERNO_PACIENTE)) + val apellidoMaterno = cursor.getString(cursor.getColumnIndex(DoctorDataBaseHelper.COLUMN_APELLIDO_MATERNO_PACIENTE)) + val edad = cursor.getInt(cursor.getColumnIndex(DoctorDataBaseHelper.COLUMN_EDAD)) + val sexo = cursor.getString(cursor.getColumnIndex(DoctorDataBaseHelper.COLUMN_SEXO)) + val domicilio = cursor.getString(cursor.getColumnIndex(DoctorDataBaseHelper.COLUMN_DOMICILIO)) + val paciente = Paciente(id, nombre, apellidoPaterno, apellidoMaterno, edad, sexo, domicilio) + pacientes.add(paciente) + } + cursor.close() + return pacientes + } } \ 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 6019c94..3696f5d 100644 --- a/app/src/main/java/com/terratenientes/medicalhealth/PacientePrincipalActivity.kt +++ b/app/src/main/java/com/terratenientes/medicalhealth/PacientePrincipalActivity.kt @@ -97,7 +97,7 @@ 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.eventoRealizado = "Se acciono el boton de eliminar la receta" historial.fecha = obtenerFecha() añadirHistorial(historial) recycleAdapter.refreshData(db.obtenerRecetasPaciente(idPaciente)) @@ -106,7 +106,7 @@ class PacientePrincipalActivity : AppCompatActivity(), CellClickListener { override fun onModifyClickListener(position: Int) { val receta = recetas[position] - historial.eventoRealizado = "Se accionó el boton de iniciar la actividad de modificar la receta" + historial.eventoRealizado = "Se acciono el boton de iniciar la actividad de modificar receta" historial.fecha = obtenerFecha() añadirHistorial(historial) val intent = Intent(this@PacientePrincipalActivity, ModificarRecetaActivity::class.java) diff --git a/app/src/main/java/com/terratenientes/medicalhealth/PrincipalActivity.kt b/app/src/main/java/com/terratenientes/medicalhealth/PrincipalActivity.kt index 5499e47..7b64519 100644 --- a/app/src/main/java/com/terratenientes/medicalhealth/PrincipalActivity.kt +++ b/app/src/main/java/com/terratenientes/medicalhealth/PrincipalActivity.kt @@ -1,17 +1,27 @@ package com.terratenientes.medicalhealth +import android.Manifest +import android.annotation.SuppressLint +import android.content.Context import android.content.Intent +import android.content.pm.PackageManager import android.os.Build import androidx.appcompat.app.AppCompatActivity import android.os.Bundle +import android.os.Environment import android.util.Log +import android.widget.Toast import androidx.annotation.RequiresApi +import androidx.core.app.ActivityCompat +import androidx.core.content.ContextCompat 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.io.File +import java.io.FileWriter import java.time.ZoneId import java.time.ZonedDateTime import java.time.format.DateTimeFormatter @@ -21,6 +31,7 @@ class PrincipalActivity : AppCompatActivity() { lateinit var binding : ActivityPrincipalBinding lateinit var db : DoctorDataBaseHelper private lateinit var dbHistorial: HistorialDataBaseHelper + private lateinit var historialList: MutableList private lateinit var historial: Historial lateinit var nombreDoctor : String override fun onCreate(savedInstanceState: Bundle?) { @@ -31,14 +42,14 @@ class PrincipalActivity : AppCompatActivity() { 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()) + historial = Historial("Doctor", null,"Se inicio la actividad de menu 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.eventoRealizado = "Se presiono el boton para iniciar la actividad de pacientes" historial.fecha = obtenerFecha() añadirHistorial(historial) } @@ -47,14 +58,16 @@ class PrincipalActivity : AppCompatActivity() { 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.eventoRealizado = "Se presiono el boton 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.eventoRealizado = "Se presiono el boton para descargar el historial" historial.fecha = obtenerFecha() añadirHistorial(historial) + cargarHistorial() + exportarCSV(this@PrincipalActivity, historialList) } } @@ -90,4 +103,64 @@ class PrincipalActivity : AppCompatActivity() { msj = "Error al almacenar la información" Log.i("Historial", msj + " | Información almacenada: " + historial) } + + fun exportarCSV(context: Context, historialList: MutableList) { + //Pedir Permisos + ActivityCompat.requestPermissions(this@PrincipalActivity, arrayOf( + Manifest.permission.WRITE_EXTERNAL_STORAGE, + Manifest.permission.READ_EXTERNAL_STORAGE),200) + // Verificar si se tienen permisos de escritura externa + if (ContextCompat.checkSelfPermission(context, Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) { + try { + // Crear el directorio donde se guardará el archivo CSV + val directorio = File(Environment.getExternalStorageDirectory(), "MiApp") + if (!directorio.exists()) { + directorio.mkdirs() + } + + // Crear el archivo CSV + val archivoCSV = File(directorio, "Historial.csv") + archivoCSV.createNewFile() + + // Escribir los datos en el archivo CSV + val writer = FileWriter(archivoCSV) + writer.append("Tipo de Usuario, Usuario, Evento Realizado, Fecha\n") + for (historial in historialList) { + writer.append("${historial.tipoUsuario},${historial.nombreUsuario},${historial.eventoRealizado},${historial.fecha}\n") + } + writer.flush() + writer.close() + Toast.makeText(this@PrincipalActivity,getString(R.string.res_csv), Toast.LENGTH_LONG).show() + historial.eventoRealizado = "Se descargo el historial de la app" + historial.fecha = obtenerFecha() + añadirHistorial(historial) + } catch (e: Exception) { + e.printStackTrace() + } + }else{ + Toast.makeText(this@PrincipalActivity,getString(R.string.err_permisos_storage), + Toast.LENGTH_LONG).show() + } + } + + private fun cargarHistorial() { + historialList = obtenerHistorial() + } + + @SuppressLint("Range") + private fun obtenerHistorial(): MutableList { + val historial = mutableListOf() + val db = dbHistorial.readableDatabase + val cursor = db.rawQuery("SELECT * FROM ${HistorialDataBaseHelper.TABLE_NAME}", null) + while (cursor.moveToNext()) { + val tipoUsuario = cursor.getString(cursor.getColumnIndex(HistorialDataBaseHelper.COLUMN_TIPO_USUARIO)) + val usuario = cursor.getString(cursor.getColumnIndex(HistorialDataBaseHelper.COLUMN_NOMBRE_USUARIO)) + val evento = cursor.getString(cursor.getColumnIndex(HistorialDataBaseHelper.COLUMN_EVENTO)) + val fecha = cursor.getString(cursor.getColumnIndex(HistorialDataBaseHelper.COLUMN_FECHA)) + val hist = Historial(tipoUsuario, usuario,evento,fecha) + historial.add(hist) + } + cursor.close() + return 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 7d67f0d..911d0b9 100644 --- a/app/src/main/java/com/terratenientes/medicalhealth/RecetaActivity.kt +++ b/app/src/main/java/com/terratenientes/medicalhealth/RecetaActivity.kt @@ -43,7 +43,7 @@ class RecetaActivity : AppCompatActivity(), OnItemSelectedListener { setContentView(view) //db.crearTablaReceta() cargarSpinnerPacientes() - historial = Historial("Doctor", intent.getStringExtra("NombreDoctor"),"Se inició la actividad de añadir receta", obtenerFecha()) + historial = Historial("Doctor", intent.getStringExtra("NombreDoctor"),"Se inicio la actividad de añadir receta", obtenerFecha()) añadirHistorial(historial) binding.spNombrePaciente.onItemSelectedListener=this binding.btnAgregarReceta.setOnClickListener { diff --git a/app/src/main/java/com/terratenientes/medicalhealth/RegistrarDActivity.kt b/app/src/main/java/com/terratenientes/medicalhealth/RegistrarDActivity.kt index 36026ef..31c7e4e 100644 --- a/app/src/main/java/com/terratenientes/medicalhealth/RegistrarDActivity.kt +++ b/app/src/main/java/com/terratenientes/medicalhealth/RegistrarDActivity.kt @@ -27,7 +27,7 @@ class RegistrarDActivity : AppCompatActivity() { val view = binding.root setContentView(view) dbHistorial = HistorialDataBaseHelper(this@RegistrarDActivity) - historial = Historial(null, null, "Se abrió la actividad de registro", obtenerFecha()) + historial = Historial(null, null, "Se abrio la actividad de registro", obtenerFecha()) añadirHistorial(historial) db= DoctorDataBaseHelper(this@RegistrarDActivity) binding.btnRegistrar.setOnClickListener { diff --git a/app/src/main/java/com/terratenientes/medicalhealth/adapters/HistorialDataBaseHelper.kt b/app/src/main/java/com/terratenientes/medicalhealth/adapters/HistorialDataBaseHelper.kt index 957b27a..235f612 100644 --- a/app/src/main/java/com/terratenientes/medicalhealth/adapters/HistorialDataBaseHelper.kt +++ b/app/src/main/java/com/terratenientes/medicalhealth/adapters/HistorialDataBaseHelper.kt @@ -11,12 +11,12 @@ class HistorialDataBaseHelper (context: Context) : SQLiteOpenHelper(context, DAT private val DATABAENAME = "MedicalHealth" private val DATABASEVERSION=1 //PRIMERO VA EL NOMBRE DE LA TABLA - private val TABLE_NAME = "Historial" + 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" + val COLUMN_TIPO_USUARIO = "TipoUsuario" + val COLUMN_NOMBRE_USUARIO = "NombreUsuario" + val COLUMN_EVENTO = "Evento" + 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))" diff --git a/app/src/main/java/com/terratenientes/medicalhealth/adapters/PacienteViewAdapter.kt b/app/src/main/java/com/terratenientes/medicalhealth/adapters/PacienteViewAdapter.kt index 3246706..b4f33ca 100644 --- a/app/src/main/java/com/terratenientes/medicalhealth/adapters/PacienteViewAdapter.kt +++ b/app/src/main/java/com/terratenientes/medicalhealth/adapters/PacienteViewAdapter.kt @@ -21,6 +21,7 @@ class PacienteViewAdapter (private var notes : List, context: Context, val tv_domicilio : TextView = itemView.findViewById(R.id.tv_domicilio) val ivModificar : ImageView = itemView.findViewById(R.id.iv_modificar_paciente) val ivEliminar : ImageView = itemView.findViewById(R.id.iv_eliminar_paciente) + val tvId: TextView = itemView.findViewById(R.id.tv_id_paciente) } @@ -36,12 +37,13 @@ class PacienteViewAdapter (private var notes : List, context: Context, override fun onBindViewHolder(holder: NoteViewHolder, position: Int) { val note = notes[position] - holder.tvNombre.text = note.nombre - holder.tvApellidoPaterno.text = note.apellidoPaterno - holder.tvApellidoMaterno.text = note.apellidoMaterno - holder.tv_edad.text = note.edad.toString() - holder.tv_sexo.text = note.sexo - holder.tv_domicilio.text = note.domicilio + holder.tvNombre.text = "Nombre:\n${note.nombre}" + holder.tvApellidoPaterno.text = "Apellido Paterno:\n${note.apellidoPaterno}" + holder.tvApellidoMaterno.text = "Apellido Materno:\n${note.apellidoMaterno}" + holder.tv_edad.text = "Edad:\n${note.edad}" + holder.tv_sexo.text = "Sexo:\n${note.sexo}" + holder.tv_domicilio.text = "Domicilio:\n${note.domicilio}" + holder.tvId.text = "Id:${note.id}" holder.ivEliminar.setOnClickListener { cellClickListener.onEliminarClickListener(position) diff --git a/app/src/main/java/com/terratenientes/medicalhealth/reports/ConsultarPacientesActivity.kt b/app/src/main/java/com/terratenientes/medicalhealth/reports/ConsultarPacientesActivity.kt index 292a395..47a3095 100644 --- a/app/src/main/java/com/terratenientes/medicalhealth/reports/ConsultarPacientesActivity.kt +++ b/app/src/main/java/com/terratenientes/medicalhealth/reports/ConsultarPacientesActivity.kt @@ -99,6 +99,7 @@ class ConsultarPacientesActivity : AppCompatActivity() { // Escribir los datos en el archivo CSV val writer = FileWriter(archivoCSV) + writer.append("Nombre, Apellido Paterno, Apellido Materno, Edad, Sexo\n") for (paciente in pacientesList) { writer.append("${paciente.nombre},${paciente.apellidoPaterno},${paciente.apellidoMaterno},${paciente.edad},${paciente.sexo}\n") } diff --git a/app/src/main/res/layout/rc_paciente_item.xml b/app/src/main/res/layout/rc_paciente_item.xml index defac50..102d8e7 100644 --- a/app/src/main/res/layout/rc_paciente_item.xml +++ b/app/src/main/res/layout/rc_paciente_item.xml @@ -1,107 +1,132 @@ - + android:orientation="vertical" + app:cardCornerRadius="20dp" + app:cardElevation="8dp"> - - - + android:layout_height="match_parent"> + android:layout_marginStart="16dp" + android:layout_marginTop="32dp" + android:text="@string/ht_nombre" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" /> + + android:layout_marginStart="4dp" + android:layout_marginTop="32dp" + android:text="@string/ht_apellido_paterno" + app:layout_constraintStart_toEndOf="@id/tv_nombre" + app:layout_constraintTop_toTopOf="parent" /> + + android:layout_column="2" + android:layout_columnWeight="1" + android:layout_marginStart="16dp" + android:layout_marginTop="32dp" + android:text="@string/ht_apellido_materno" + app:layout_constraintStart_toEndOf="@+id/tv_apellido_paterno" + app:layout_constraintTop_toTopOf="parent" /> - + android:layout_marginStart="20dp" + android:text="@string/et_modificar_edad" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintStart_toEndOf="@+id/tv_sexo" + app:layout_constraintTop_toBottomOf="@+id/tv_apellido_materno" + app:layout_constraintVertical_bias="0.2" /> + + android:layout_column="2" + android:layout_columnWeight="1" + android:layout_marginStart="16dp" + android:text="@string/ht_domicilio" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@+id/tv_nombre" + app:layout_constraintVertical_bias="0.2" /> + + + + + + android:layout_marginTop="60dp" + android:layout_marginEnd="36dp" + android:src="@drawable/update" + app:layout_constraintEnd_toStartOf="@+id/iv_eliminar_paciente" + app:layout_constraintHorizontal_bias="1.0" + app:layout_constraintStart_toEndOf="@+id/tv_edad" + app:layout_constraintTop_toTopOf="parent" /> + + android:layout_marginTop="60dp" + android:layout_marginEnd="16dp" + android:src="@drawable/delete" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintTop_toTopOf="parent" /> - + - - - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 17db66d..50a9151 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -2,13 +2,14 @@ MedicalHealth Modificar Paciente - Edad: - Sexo: + Edad + Sexo Nombre Apellido Paterno Apellido Materno Domicilio Modificar + Id Agrega un paciente Confirmar Cancelar