Compare commits

..

3 Commits

44 changed files with 937 additions and 141 deletions

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
xmlns:tools="http://schemas.android.com/tools" >
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
@ -14,7 +14,13 @@
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.MedicalHealth"
tools:targetApi="31">
tools:targetApi="31" >
<activity
android:name=".PacienteActivity"
android:exported="false" />
<activity
android:name=".ModificarRecetaActivity"
android:exported="false" />
<activity
android:name=".PacientePrincipalActivity"
android:exported="false" />
@ -32,7 +38,7 @@
android:name=".RegistrarDActivity"
android:exported="false" />
<activity
android:name="reports.ConsultarPacientesActivity"
android:name=".reports.ConsultarPacientesActivity"
android:exported="false" />
<activity
android:name=".EliminarActivity"
@ -45,7 +51,7 @@
android:exported="false" />
<activity
android:name=".MainActivity"
android:exported="true">
android:exported="true" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />

View File

@ -1,7 +0,0 @@
package adapters
interface CellClickListener {
fun onCellClickListener(position : Int)
fun onEliminarClickListener(position: Int)
}

View File

@ -1,7 +1,7 @@
package com.terratenientes.medicalhealth
import adapters.DoctorDataBaseHelper
import data.Paciente
import com.terratenientes.medicalhealth.adapters.DoctorDataBaseHelper
import com.terratenientes.medicalhealth.data.Paciente
import android.R
import android.content.Intent
import android.os.Bundle
@ -30,8 +30,7 @@ class AgregarActivity : AppCompatActivity() {
binding.btnConfirmar.setOnClickListener {
//db.crearTablaPacientes()
agregarPaciente()
val intent = Intent(this@AgregarActivity, EliminarActivity::class.java)
startActivity(intent)
finish()
}
}
private fun agregarPaciente() {

View File

@ -1,8 +1,8 @@
package com.terratenientes.medicalhealth
import adapters.DoctorDataBaseHelper
import adapters.PacienteAdapter
import data.Paciente
import com.terratenientes.medicalhealth.adapters.DoctorDataBaseHelper
import com.terratenientes.medicalhealth.adapters.PacienteAdapter
import com.terratenientes.medicalhealth.data.Paciente
import android.annotation.SuppressLint
import android.content.Intent
import android.os.Bundle

View File

@ -1,9 +1,9 @@
package com.terratenientes.medicalhealth
import adapters.RecetaAdapter
import adapters.RecetaDataBaseHelper
import com.terratenientes.medicalhealth.adapters.RecetaAdapter
import com.terratenientes.medicalhealth.adapters.RecetaDataBaseHelper
import android.content.Intent
import data.Receta
import com.terratenientes.medicalhealth.data.Receta
import android.os.Bundle
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity

View File

@ -1,7 +1,7 @@
package com.terratenientes.medicalhealth
import adapters.DoctorDataBaseHelper
import data.Doctor
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
@ -27,6 +27,7 @@ class MainActivity : AppCompatActivity() {
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()

View File

@ -1,8 +1,8 @@
package com.terratenientes.medicalhealth
import adapters.DoctorDataBaseHelper
import data.Paciente
import reports.ConsultarPacientesActivity
import com.terratenientes.medicalhealth.adapters.DoctorDataBaseHelper
import com.terratenientes.medicalhealth.data.Paciente
import com.terratenientes.medicalhealth.reports.ConsultarPacientesActivity
import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
@ -35,8 +35,6 @@ class ModificarActivity : AppCompatActivity() {
paciente.domicilio = binding.etDomicilio.text.toString()
db.modificarPaciente(paciente)
finish()
intent = Intent(this@ModificarActivity, ConsultarPacientesActivity::class.java)
startActivity(intent)
Toast.makeText(this@ModificarActivity, "Información Actualizada UwU", Toast.LENGTH_LONG).show()
}

View File

@ -0,0 +1,49 @@
package com.terratenientes.medicalhealth
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.Log
import com.terratenientes.medicalhealth.adapters.RecetaDataBaseHelper
import com.terratenientes.medicalhealth.data.Receta
import com.terratenientes.medicalhealth.databinding.ActivityModificarRecetaBinding
class ModificarRecetaActivity : AppCompatActivity() {
lateinit var binding : ActivityModificarRecetaBinding
lateinit var receta : Receta
lateinit var db : RecetaDataBaseHelper
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityModificarRecetaBinding.inflate(layoutInflater)
val view = binding.root
setContentView(view)
db = RecetaDataBaseHelper(this@ModificarRecetaActivity)
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 {
modificarReceta(receta)
}
}
private fun modificarReceta(receta : Receta) : Unit {
Log.i("Info Recibida", receta.toString())
receta.edadPaciente = binding.etEdadPaciente.text.toString().toInt()
receta.pesoPaciente = binding.etPesoPaciente.text.toString().toDouble()
receta.nombreMedicamento = binding.etRecetaMedicamento.text.toString()
receta.fecha = binding.etFecha.text.toString()
receta.dosis = binding.etDosisMedicamento.text.toString()
receta.duracion = binding.etDuracion.text.toString()
db.modificarReceta(receta)
Log.i("Info Actualizada", receta.toString())
finish()
}
private fun llenarCampos(receta : Receta) : Unit {
binding.tvNombrePaciente.setText(receta.NombrePaciente)
binding.etEdadPaciente.setText(receta.edadPaciente.toString())
binding.etPesoPaciente.setText(receta.pesoPaciente.toString())
binding.etRecetaMedicamento.setText(receta.nombreMedicamento)
binding.etFecha.setText(receta.fecha)
binding.etDosisMedicamento.setText(receta.dosis)
binding.etDuracion.setText(receta.duracion)
}
}

View File

@ -0,0 +1,71 @@
package com.terratenientes.medicalhealth
import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.Log
import androidx.recyclerview.widget.LinearLayoutManager
import com.terratenientes.medicalhealth.adapters.CellClickListener
import com.terratenientes.medicalhealth.adapters.DoctorDataBaseHelper
import com.terratenientes.medicalhealth.adapters.PacienteViewAdapter
import com.terratenientes.medicalhealth.adapters.RecetaDataBaseHelper
import com.terratenientes.medicalhealth.adapters.RecetaViewAdapter
import com.terratenientes.medicalhealth.data.Paciente
import com.terratenientes.medicalhealth.data.Receta
import com.terratenientes.medicalhealth.databinding.ActivityPacienteBinding
class PacienteActivity : AppCompatActivity(), CellClickListener {
lateinit var binding : ActivityPacienteBinding
private var idPaciente : String =""
private lateinit var db: DoctorDataBaseHelper
private lateinit var recycleAdapter : PacienteViewAdapter
private lateinit var pacientes : List<Paciente>
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityPacienteBinding.inflate(layoutInflater)
val view = binding.root
setContentView(view)
db = DoctorDataBaseHelper(this@PacienteActivity)
pacientes = db.obtenerPacientes()
recycleAdapter = PacienteViewAdapter(pacientes, this@PacienteActivity, this@PacienteActivity)
binding.rvPacientes.layoutManager = LinearLayoutManager(this)
binding.rvPacientes.adapter = recycleAdapter
Log.i("Pacientes", pacientes.toString())
binding.ivAgregarPaciente.setOnClickListener {
val intent = Intent(this@PacienteActivity, AgregarActivity::class.java)
startActivity(intent)
}
}
override fun onResume() {
super.onResume()
recycleAdapter.refreshData(db.obtenerPacientes())
}
override fun onCellClickListener(position: Int) {
}
override fun onEliminarClickListener(position: Int) {
val paciente = pacientes[position]
Log.i("Paciente Elim", paciente.toString())
db.eliminarPaciente(paciente.id)
recycleAdapter.refreshData(db.obtenerPacientes())
}
override fun onModifyClickListener(position: Int) {
val paciente = pacientes[position]
val intent = Intent(this@PacienteActivity, ModificarActivity::class.java)
intent.putExtra("Id", paciente.id)
intent.putExtra("Nombre Paciente", paciente.nombre)
intent.putExtra("Apellido Paterno", paciente.apellidoPaterno)
intent.putExtra("Apellido Materno", paciente.apellidoMaterno)
intent.putExtra("Domicilio", paciente.domicilio)
intent.putExtra("Edad", paciente.edad)
intent.putExtra("Sexo", paciente.sexo)
startActivity(intent)
}
override fun onEnviarCorreoClickListener(position: Int) {
TODO("Not yet implemented")
}
}

View File

@ -1,16 +1,18 @@
package com.terratenientes.medicalhealth
import adapters.CellClickListener
import adapters.RecetaDataBaseHelper
import adapters.RecetaViewAdapter
import data.Receta
import com.terratenientes.medicalhealth.adapters.CellClickListener
import com.terratenientes.medicalhealth.adapters.RecetaDataBaseHelper
import com.terratenientes.medicalhealth.adapters.RecetaViewAdapter
import com.terratenientes.medicalhealth.data.Receta
import android.Manifest
import android.content.Intent
import android.content.pm.PackageManager
import android.graphics.Typeface
import android.graphics.pdf.PdfDocument
import android.os.Bundle
import android.os.Environment
import android.text.TextPaint
import android.util.Log
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import androidx.core.app.ActivityCompat
@ -81,6 +83,52 @@ class PacientePrincipalActivity : AppCompatActivity(), CellClickListener {
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())
val intent = Intent(this@PacientePrincipalActivity, ModificarRecetaActivity::class.java)
intent.putExtra("NombrePaciente", receta.NombrePaciente)
intent.putExtra("EdadPaciente", receta.edadPaciente.toString())
intent.putExtra("PesoPaciente", receta.pesoPaciente.toString())
intent.putExtra("NombreMedicamento", receta.nombreMedicamento)
intent.putExtra("Fecha", receta.fecha)
intent.putExtra("Dosis", receta.dosis)
intent.putExtra("Duracion", receta.duracion)
startActivity(intent)
}
override fun onEnviarCorreoClickListener(position: Int) {
val receta = recetas[position]
val nombrePaciente = receta.NombrePaciente
val nombreMedicamento = receta.nombreMedicamento
val dosisMedicamento = receta.dosis
val duracionMedicamento = receta.duracion
val fechaReceta = receta.fecha
val pesoPaciente = receta.pesoPaciente
val edadPaciente = receta.edadPaciente
val descripcionReceta = """
Fecha de Consulta: $fechaReceta
Datos Generales del Paciente:
Peso del Paciente: $pesoPaciente
Edad del Paciente: $edadPaciente
Medicamento a Recetar: $nombreMedicamento
Dosis del Medicamento: $dosisMedicamento
Duración del Tratamiento: $duracionMedicamento
""".trimIndent()
val intent = Intent(Intent.ACTION_SEND).apply {
type = "message/rfc822"
putExtra(Intent.EXTRA_SUBJECT, "Receta Médica de $nombrePaciente")
putExtra(Intent.EXTRA_TEXT, descripcionReceta)
}
try {
startActivity(Intent.createChooser(intent, "Enviar receta a través de:"))
} catch (ex: android.content.ActivityNotFoundException) {
Toast.makeText(this, "No hay clientes de correo instalados.", Toast.LENGTH_SHORT).show()
}
}
// función que valida si los permisos ya estan garantizados por parte del usuario
fun permisosPDF() : Boolean{
val permission1= ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE)

View File

@ -3,41 +3,42 @@ package com.terratenientes.medicalhealth
import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.Log
import com.terratenientes.medicalhealth.adapters.DoctorDataBaseHelper
import com.terratenientes.medicalhealth.data.Doctor
import com.terratenientes.medicalhealth.databinding.ActivityPrincipalBinding
import com.terratenientes.medicalhealth.reports.ConsultarPacientesActivity
class PrincipalActivity : AppCompatActivity() {
lateinit var binding : ActivityPrincipalBinding
lateinit var db : DoctorDataBaseHelper
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityPrincipalBinding.inflate(layoutInflater)
val view = binding.root
setContentView(view)
binding.btnAgregarPaciente.setOnClickListener {
val intent = Intent(this@PrincipalActivity, AgregarActivity::class.java)
db = DoctorDataBaseHelper(this@PrincipalActivity)
Log.i("Datos Doctor", intent.getStringExtra("Cedula").toString())
datosDoctor(intent.getStringExtra("Cedula").toString())
binding.ivPacientes.setOnClickListener {
val intent = Intent(this@PrincipalActivity, PacienteActivity::class.java)
startActivity(intent)
}
binding.btnEliminarPaciente.setOnClickListener {
val intent = Intent(this@PrincipalActivity, EliminarActivity::class.java)
startActivity(intent)
}
binding.btnAgregarReceta.setOnClickListener {
binding.ivRecetas.setOnClickListener {
val intent = Intent(this@PrincipalActivity, RecetaActivity::class.java)
startActivity(intent)
}
binding.btnEliminarReceta.setOnClickListener {
val intent = Intent (this@PrincipalActivity, EliminarRecetaActivity::class.java)
startActivity(intent)
}
binding.btnCerrar.setOnClickListener {
val intent = Intent(this@PrincipalActivity, MainActivity::class.java)
startActivity(intent)
finish()
}
}
private fun datosDoctor(cedula : String){
val doctores : List<Doctor> = db.obtenerDoctor(cedula)
val doctor : Doctor = doctores.get(0)
Log.i("Datos Doctor", doctor.toString())
binding.tvNombreDoctor.setText("Nombre: ${doctor.Nombre}")
binding.tvTelefonoDoctor.setText("Telefono: ${doctor.Telefono}")
binding.tvCedulaDoctor.setText("Cédula: ${doctor.Cedula}")
binding.tvConsultorioDoctor.setText("Consultorio: ${doctor.Consultorio}")
}
}

View File

@ -1,8 +1,8 @@
package com.terratenientes.medicalhealth
import adapters.DoctorDataBaseHelper
import adapters.RecetaDataBaseHelper
import data.Receta
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.Bundle
import android.view.View

View File

@ -1,7 +1,7 @@
package com.terratenientes.medicalhealth
import adapters.DoctorDataBaseHelper
import data.Doctor
import com.terratenientes.medicalhealth.adapters.DoctorDataBaseHelper
import com.terratenientes.medicalhealth.data.Doctor
import android.os.Bundle
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
@ -15,21 +15,64 @@ class RegistrarDActivity : AppCompatActivity() {
binding = ActivityRegistrarDactivityBinding.inflate(layoutInflater)
val view = binding.root
setContentView(view)
db= DoctorDataBaseHelper(this@RegistrarDActivity)
db = DoctorDataBaseHelper(this@RegistrarDActivity)
binding.btnRegistrar.setOnClickListener {
registrarUsuario()
if (validarCampos()) {
registrarUsuario()
}
}
}
private fun registrarUsuario(){
val cedula=binding.etCedelaRegistro.text.toString()
val nombre=binding.etNombreRegistro.text.toString()
val apellido=binding.etApellidoRegistro.text.toString()
val telefono=binding.etTelefonoRegisto.text.toString()
private fun validarCampos(): Boolean {
val cedula = binding.etCedelaRegistro.text.toString()
val nombre = binding.etNombreRegistro.text.toString()
val apellido = binding.etApellidoRegistro.text.toString()
val telefono = binding.etTelefonoRegisto.text.toString()
val domicilio = binding.etDomicilio.text.toString()
val contrasena= binding.etContrasenaRegistro.text.toString()
val usuario= Doctor(cedula,nombre,apellido,telefono,domicilio.toInt())
db.agregarDoctores(usuario,contrasena)
Toast.makeText(this@RegistrarDActivity,"USUARIO AGREGADO",Toast.LENGTH_LONG).show()
val contrasena = binding.etContrasenaRegistro.text.toString()
if (cedula.isEmpty() || nombre.isEmpty() || apellido.isEmpty() || telefono.isEmpty() || domicilio.isEmpty() || contrasena.isEmpty()) {
Toast.makeText(this, "Todos los campos son obligatorios.", Toast.LENGTH_LONG).show()
return false
}
if (!validarCedula(cedula)) {
Toast.makeText(this, "Cédula profesional no válida.", Toast.LENGTH_LONG).show()
return false
}
if (!validarTelefono(telefono)) {
Toast.makeText(this, "Número de teléfono no válido.", Toast.LENGTH_LONG).show()
return false
}
return true
}
private fun validarCedula(cedula: String): Boolean {
// Expresión regular para validar que la cédula tenga entre 5 y 8 caracteres o exactamente 11 caracteres alfanuméricos
val regex = Regex("^[a-zA-Z0-9]{5,8}$|^[a-zA-Z0-9]{11}$")
return regex.matches(cedula)
}
private fun validarTelefono(telefono: String): Boolean {
// Expresión regular para validar que el número de teléfono tenga 10 digitos
val regex = Regex("^\\d{10}$")
return regex.matches(telefono)
}
private fun registrarUsuario() {
val cedula = binding.etCedelaRegistro.text.toString()
val nombre = binding.etNombreRegistro.text.toString()
val apellido = binding.etApellidoRegistro.text.toString()
val telefono = binding.etTelefonoRegisto.text.toString()
val domicilio = binding.etDomicilio.text.toString()
val contrasena = binding.etContrasenaRegistro.text.toString()
val usuario = Doctor(cedula, nombre, apellido, telefono, domicilio.toInt())
db.agregarDoctores(usuario, contrasena)
Toast.makeText(this@RegistrarDActivity, "USUARIO AGREGADO", Toast.LENGTH_LONG).show()
finish()
}
}

View File

@ -0,0 +1,8 @@
package com.terratenientes.medicalhealth.adapters
interface CellClickListener {
fun onCellClickListener(position : Int)
fun onEliminarClickListener(position: Int)
fun onModifyClickListener(position: Int)
fun onEnviarCorreoClickListener(position: Int)
}

View File

@ -1,12 +1,13 @@
package adapters
package com.terratenientes.medicalhealth.adapters
import android.annotation.SuppressLint
import android.content.ContentValues
import android.content.Context
import android.database.sqlite.SQLiteDatabase
import android.database.sqlite.SQLiteOpenHelper
import data.Doctor
import data.Paciente
import com.terratenientes.medicalhealth.data.Doctor
import com.terratenientes.medicalhealth.data.Paciente
import com.terratenientes.medicalhealth.data.Receta
class DoctorDataBaseHelper (context: Context) : SQLiteOpenHelper(context, DATABASE_NAME,null,
DATABASE_VERSION
@ -51,6 +52,7 @@ class DoctorDataBaseHelper (context: Context) : SQLiteOpenHelper(context, DATABA
val dropTablePacientes = "DROP TABLE IF EXISTS $TABLE_PACIENTES"
db?.execSQL(dropTablePacientes)
}
fun crearTablaPacientes(){
val db=writableDatabase
val crearTablaPacientes =
@ -73,6 +75,25 @@ class DoctorDataBaseHelper (context: Context) : SQLiteOpenHelper(context, DATABA
db.insert(TABLE_NAME,null, values)
db.close()
}
@SuppressLint("Range")
fun obtenerDoctor(cedula : String): List<Doctor>{
val doctores = mutableListOf<Doctor>()
val db = readableDatabase
var cursor = db.rawQuery("SELECT * FROM $TABLE_NAME WHERE $COLUMN_CEDULA = '${cedula}'", null)
while (cursor.moveToNext()) {
val cedula = cursor.getString(cursor.getColumnIndex(COLUMN_CEDULA))
val nombreDoctor = cursor.getString(cursor.getColumnIndex(COLUMN_NOMBRE))
val apellidoDoctor = cursor.getString(cursor.getColumnIndex(COLUMN_APELLIDO))
val telefonoDoctor = cursor.getString(cursor.getColumnIndex(COLUMN_TELEFONO))
val consultorioDoctor = cursor.getInt(cursor.getColumnIndex(COLUMN_CONSULTORIO))
val doctor = Doctor(cedula,nombreDoctor,apellidoDoctor,telefonoDoctor,consultorioDoctor)
doctores.add(doctor)
}
cursor.close()
return doctores
}
fun agregarPaciente(paciente: Paciente) {
val db = writableDatabase
val values = ContentValues().apply {
@ -84,10 +105,17 @@ class DoctorDataBaseHelper (context: Context) : SQLiteOpenHelper(context, DATABA
put(COLUMN_DOMICILIO, paciente.domicilio)
}
db.insert(TABLE_PACIENTES, null, values)
print("ID DEL PACIENTE AGREGADO: "+COLUMN_ID_PACIENTE)
print("ID DEL PACIENTE AGREGADO: "+ COLUMN_ID_PACIENTE)
db.close()
}
fun eliminarPaciente(id : Int) : Int{
val db = writableDatabase
val resultadoEliminacion = db.delete(TABLE_PACIENTES, "$COLUMN_ID_PACIENTE = ?", arrayOf(id.toString()))
db.close()
return resultadoEliminacion
}
fun modificarPaciente(paciente: Paciente){
val db = writableDatabase
val values = ContentValues().apply {
@ -165,5 +193,24 @@ class DoctorDataBaseHelper (context: Context) : SQLiteOpenHelper(context, DATABA
return edadPaciente
}
@SuppressLint("Range")
fun obtenerPacientes(): List<Paciente>{
val pacientes = mutableListOf<Paciente>()
val db = readableDatabase
val cursor = db.rawQuery("SELECT * FROM ${TABLE_PACIENTES}", null)
while (cursor.moveToNext()) {
val idPaciente = cursor.getInt(cursor.getColumnIndex(COLUMN_ID_PACIENTE))
val nombrePaciente = cursor.getString(cursor.getColumnIndex(COLUMN_NOMBRE_PACIENTE))
val apellidoPaterno = cursor.getString(cursor.getColumnIndex(COLUMN_APELLIDO_PATERNO_PACIENTE))
val apellidoMaterno = cursor.getString(cursor.getColumnIndex(COLUMN_APELLIDO_MATERNO_PACIENTE))
val edadPaciente = cursor.getInt(cursor.getColumnIndex(COLUMN_EDAD))
val sexoPaciente = cursor.getString(cursor.getColumnIndex(COLUMN_SEXO))
val domicilioPaciente = cursor.getString(cursor.getColumnIndex(COLUMN_DOMICILIO))
val paciente = Paciente(idPaciente,nombrePaciente, apellidoPaterno, apellidoMaterno, edadPaciente, sexoPaciente, domicilioPaciente)
pacientes.add(paciente)
}
cursor.close()
return pacientes
}
}

View File

@ -1,6 +1,6 @@
package adapters
package com.terratenientes.medicalhealth.adapters
import data.Paciente
import com.terratenientes.medicalhealth.data.Paciente
import android.content.Context
import android.view.LayoutInflater
import android.view.View

View File

@ -0,0 +1,58 @@
package com.terratenientes.medicalhealth.adapters
import android.content.Context
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.ImageView
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import com.terratenientes.medicalhealth.R
import com.terratenientes.medicalhealth.data.Paciente
class PacienteViewAdapter (private var notes : List<Paciente>, context: Context, val cellClickListener: CellClickListener) :
RecyclerView.Adapter<PacienteViewAdapter.NoteViewHolder>() {
class NoteViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
val tvNombre : TextView = itemView.findViewById(R.id.tv_nombre)
val tvApellidoPaterno : TextView = itemView.findViewById(R.id.tv_apellido_paterno)
val tvApellidoMaterno : TextView = itemView.findViewById(R.id.tv_apellido_materno)
val tv_edad : TextView = itemView.findViewById(R.id.tv_edad)
val tv_sexo : TextView = itemView.findViewById(R.id.tv_sexo)
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)
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): NoteViewHolder {
val view =
LayoutInflater.from(parent.context).inflate(R.layout.rc_paciente_item, parent, false)
return NoteViewHolder(view)
}
override fun getItemCount(): Int {
return notes.size
}
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.ivEliminar.setOnClickListener {
cellClickListener.onEliminarClickListener(position)
}
holder.ivModificar.setOnClickListener {
cellClickListener.onModifyClickListener(position)
}
}
fun refreshData(newNotes: List<Paciente>) {
this.notes = newNotes
notifyDataSetChanged()
}
}

View File

@ -1,6 +1,6 @@
package adapters
package com.terratenientes.medicalhealth.adapters
import data.Receta
import com.terratenientes.medicalhealth.data.Receta
import android.content.Context
import android.view.LayoutInflater
import android.view.View

View File

@ -1,12 +1,13 @@
package adapters
package com.terratenientes.medicalhealth.adapters
import data.Receta
import com.terratenientes.medicalhealth.data.Receta
import android.annotation.SuppressLint
import android.content.ContentValues
import android.content.Context
import android.database.sqlite.SQLiteDatabase
import android.database.sqlite.SQLiteOpenHelper
import android.util.Log
import com.terratenientes.medicalhealth.data.Paciente
class RecetaDataBaseHelper(context: Context) : SQLiteOpenHelper(context, DATABAENAME, null, DATABASEVERSION){
companion object{
@ -99,6 +100,22 @@ class RecetaDataBaseHelper(context: Context) : SQLiteOpenHelper(context, DATABAE
db.close()
}
fun modificarReceta(receta: Receta){
val db = writableDatabase
val values = ContentValues().apply {
put(COLUMN_EDAD_PACIENTE, receta.edadPaciente)
put(COLUMN_PESO_PACIENTE, receta.pesoPaciente)
put(COLUMN_MEDICAMENTO, receta.nombreMedicamento)
put(COLUMN_FECHA, receta.fecha)
put(COLUMN_DOSIS_PACIENTE, receta.dosis)
put(DURACION_MEDICAMENTO, receta.duracion)
}
val whereClause = "$COLUMN_NOMBRE_PACIENTE = ? and $COLUMN_FECHA = ?"
val whereArgs = arrayOf(receta.NombrePaciente, receta.fecha)
db.update(TABLE_NAME, values, whereClause, whereArgs)
db.close()
}
fun crearTablaReceta(){
val db=writableDatabase
val creatTabla="CREATE TABLE $TABLE_NAME ($COLUMN_NOMBRE_PACIENTE VARCHAR(30), $COLUMN_EDAD_PACIENTE INT, $COLUMN_PESO_PACIENTE INT, $COLUMN_FECHA VARCHAR(30), " +

View File

@ -1,23 +1,26 @@
package adapters
package com.terratenientes.medicalhealth.adapters
import data.Receta
import android.content.Context
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.Button
import android.widget.ImageView
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import com.terratenientes.medicalhealth.R
import com.terratenientes.medicalhealth.data.Receta
class RecetaViewAdapter(private var notes : List<Receta>, context: Context,val cellClickListener: CellClickListener) :
class RecetaViewAdapter(private var notes : List<Receta>, context: Context, val cellClickListener: CellClickListener) :
RecyclerView.Adapter<RecetaViewAdapter.NoteViewHolder>() {
class NoteViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView){
val tituloReceta : TextView = itemView.findViewById(R.id.tv_titulo_receta)
val fechaReceta : TextView = itemView.findViewById(R.id.tv_fecha_receta)
val nombreReceta : TextView = itemView.findViewById(R.id.tv_nombre_paciente)
val btnDescargar : Button = itemView.findViewById(R.id.btn_descargar_receta)
val btnEliminar: Button = itemView.findViewById(R.id.btn_eliminar_receta)
val btnDescargar : ImageView = itemView.findViewById(R.id.iv_descargar_receta)
val btnEliminar: ImageView = itemView.findViewById(R.id.iv_eliminar_receta)
val btnModificar : ImageView = itemView.findViewById(R.id.iv_modificar_receta)
val btnEnviar : ImageView = itemView.findViewById(R.id.iv_correo_receta)
val pesoReceta : TextView = itemView.findViewById(R.id.tv_peso_paciente)
val edadReceta : TextView = itemView.findViewById(R.id.tv_edad_paciente)
val dosisReceta : TextView=itemView.findViewById(R.id.tv_dosis_medicamento)
@ -49,6 +52,12 @@ class RecetaViewAdapter(private var notes : List<Receta>, context: Context,val c
holder.btnEliminar.setOnClickListener{
cellClickListener.onEliminarClickListener(position)
}
holder.btnModificar.setOnClickListener {
cellClickListener.onModifyClickListener(position)
}
holder.btnEnviar.setOnClickListener{
cellClickListener.onEnviarCorreoClickListener(position)
}
}
fun refreshData( newNotes : List<Receta>){

View File

@ -1,3 +1,3 @@
package data
package com.terratenientes.medicalhealth.data
data class Doctor(var Cedula : String ,var Nombre : String, var Apellido : String, var Telefono : String, var Consultorio : Int)

View File

@ -1,4 +1,4 @@
package data
package com.terratenientes.medicalhealth.data
data class Paciente(
var id: Int, // Este campo representa el ID autoincrementable en la base de datos

View File

@ -1,3 +1,3 @@
package data
package com.terratenientes.medicalhealth.data
data class Receta(var NombrePaciente : String, var edadPaciente : Int, var pesoPaciente: Double, var nombreMedicamento : String, var fecha : String, var dosis : String, var duracion :String)

View File

@ -1,4 +1,4 @@
package reports
package com.terratenientes.medicalhealth.reports
import android.Manifest
import android.annotation.SuppressLint
@ -11,10 +11,10 @@ import android.os.Environment
import android.widget.Toast
import androidx.core.app.ActivityCompat
import androidx.core.content.ContextCompat
import adapters.DoctorDataBaseHelper
import com.terratenientes.medicalhealth.adapters.DoctorDataBaseHelper
import com.terratenientes.medicalhealth.ModificarActivity
import data.Paciente
import adapters.PacienteAdapter
import com.terratenientes.medicalhealth.data.Paciente
import com.terratenientes.medicalhealth.adapters.PacienteAdapter
import com.terratenientes.medicalhealth.R
import com.terratenientes.medicalhealth.databinding.ActivityConsultarPacientesBinding
import java.io.File

View File

@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="#FFFFFFFF"
android:pathData="M12,4A4,4 0,0 1,16 8A4,4 0,0 1,12 12A4,4 0,0 1,8 8A4,4 0,0 1,12 4M12,14C16.42,14 20,15.79 20,18V20H4V18C4,15.79 7.58,14 12,14Z"/>
</vector>

View File

@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="#FF000000"
android:pathData="M19,4H15.5L14.5,3H9.5L8.5,4H5V6H19M6,19A2,2 0,0 0,8 21H16A2,2 0,0 0,18 19V7H6V19Z"/>
</vector>

View File

@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="#FF000000"
android:pathData="M14.84,16.26C17.86,16.83 20,18.29 20,20V22H4V20C4,18.29 6.14,16.83 9.16,16.26L12,21L14.84,16.26M8,8H16V10A4,4 0,0 1,12 14A4,4 0,0 1,8 10V8M8,7L8.41,2.9C8.46,2.39 8.89,2 9.41,2H14.6C15.11,2 15.54,2.39 15.59,2.9L16,7H8M12,3H11V4H10V5H11V6H12V5H13V4H12V3Z"/>
</vector>

View File

@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="#FF000000"
android:pathData="M5,20H19V18H5M19,9H15V3H9V9H5L12,16L19,9Z"/>
</vector>

View File

@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="#FFFFFFFF"
android:pathData="M13,9H18.5L13,3.5V9M6,2H14L20,8V20A2,2 0,0 1,18 22H6C4.89,22 4,21.1 4,20V4C4,2.89 4.89,2 6,2M15,18V16H6V18H15M18,14V12H6V14H18Z"/>
</vector>

View File

@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="#FFFFFFFF"
android:pathData="M13.5,8H12V13L16.28,15.54L17,14.33L13.5,12.25V8M13,3A9,9 0,0 0,4 12H1L4.96,16.03L9,12H6A7,7 0,0 1,13 5A7,7 0,0 1,20 12A7,7 0,0 1,13 19C11.07,19 9.32,18.21 8.06,16.94L6.64,18.36C8.27,20 10.5,21 13,21A9,9 0,0 0,22 12A9,9 0,0 0,13 3"/>
</vector>

View File

@ -4,6 +4,6 @@
android:viewportWidth="24.0"
android:viewportHeight="24.0">
<path
android:fillColor="#FF000000"
android:fillColor="#FFFFFFFF"
android:pathData="M10,20v-6h4v6h5v-8h3L12,3 2,12h3v8z" />
</vector>

View File

@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="#FF000000"
android:pathData="M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z"/>
</vector>

View File

@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="#FF000000"
android:pathData="M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20,12C20,16.41 16.41,20 12,20M12,2A10,10 0,0 0,2 12A10,10 0,0 0,12 22A10,10 0,0 0,22 12A10,10 0,0 0,12 2M13,7H11V11H7V13H11V17H13V13H17V11H13V7Z"/>
</vector>

View File

@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="#FF000000"
android:pathData="M21,10.12H14.22L16.96,7.3C14.23,4.6 9.81,4.5 7.08,7.2C4.35,9.91 4.35,14.28 7.08,17C9.81,19.7 14.23,19.7 16.96,17C18.32,15.65 19,14.08 19,12.1H21C21,14.08 20.12,16.65 18.36,18.39C14.85,21.87 9.15,21.87 5.64,18.39C2.14,14.92 2.11,9.28 5.62,5.81C9.13,2.34 14.76,2.34 18.27,5.81L21,3V10.12M12.5,8V12.25L16,14.33L15.28,15.54L11,13V8H12.5Z"/>
</vector>

View File

@ -114,17 +114,5 @@
android:background="@drawable/radius_btn"
android:text="@string/bt_agregar" />
<Button
android:id="@+id/btn_cancelar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/bt_cancelar"
android:layout_marginTop="2dp"
android:layout_marginStart="50dp"
android:textSize="18sp"
android:textStyle="bold"
android:background="@drawable/radius_btn"
android:layout_marginEnd="50dp"/>
</LinearLayout>

View File

@ -5,7 +5,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="reports.ConsultarPacientesActivity">
tools:context=".reports.ConsultarPacientesActivity">
<TextView
android:layout_width="match_parent"

View File

@ -0,0 +1,87 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".ModificarRecetaActivity">
<TextView
android:layout_marginTop="130dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/receta_activity_title"
android:textSize="32sp"
android:textAlignment="center"
android:textColor="@color/primaryColor"
android:textStyle="bold"
/>
<TextView
android:id="@+id/tv_nombre_paciente"
android:layout_width="300dp"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginStart="2dp"
android:textSize="20dp"/>
<EditText
android:id="@+id/et_edad_paciente"
android:layout_marginTop="10dp"
android:layout_width="300dp"
android:layout_height="wrap_content"
android:hint="@string/receta_edad"
android:layout_gravity="center_horizontal"
/>
<EditText
android:id="@+id/et_peso_paciente"
android:layout_marginTop="10dp"
android:layout_width="300dp"
android:layout_height="wrap_content"
android:hint="@string/receta_peso"
android:layout_gravity="center_horizontal"
android:inputType="number"
/>
<EditText
android:id="@+id/et_receta_medicamento"
android:layout_marginTop="10dp"
android:layout_width="300dp"
android:layout_height="wrap_content"
android:hint="@string/receta_medicamento"
android:layout_gravity="center_horizontal"
/>
<TextView
android:id="@+id/et_fecha"
android:layout_marginTop="10dp"
android:layout_width="300dp"
android:layout_height="wrap_content"
android:layout_marginStart="2dp"
android:textSize="20dp"
android:hint="@string/receta_fecha_paciente"
android:layout_gravity="center_horizontal"
android:inputType="date"
/>
<EditText
android:id="@+id/et_dosis_medicamento"
android:layout_marginTop="10dp"
android:layout_width="300dp"
android:layout_height="wrap_content"
android:hint="@string/receta_dosis"
android:layout_gravity="center_horizontal"
/>
<EditText
android:id="@+id/et_duracion_"
android:layout_marginTop="10dp"
android:layout_width="300dp"
android:layout_height="wrap_content"
android:hint="@string/receta_duracion"
android:layout_gravity="center_horizontal"
/>
<Button
android:id="@+id/btn_modificar_receta"
android:layout_width="300dp"
android:layout_height="wrap_content"
android:text="@string/btn_modificar_receta"
android:layout_gravity="center_horizontal"
/>
</LinearLayout>

View File

@ -0,0 +1,47 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".PacienteActivity">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:layout_marginBottom="10dp"
android:text="@string/tv_titulo_consultar"
android:textSize="30dp"
android:textColor="@color/primaryColor"
android:gravity="center"/>
<ImageView
android:id="@+id/iv_agregar_paciente"
android:layout_width="100dp"
android:layout_height="30dp"
android:layout_marginTop="15dp"
android:layout_marginStart="10dp"
android:src="@drawable/plus_circle_outline"/>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_pacientes"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginTop="20dp"
android:layout_marginEnd="8dp"/>
<Button
android:id="@+id/btn_descargar_csv"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/btn_csv"
android:layout_marginTop="10dp"
android:layout_marginStart="20dp"
android:layout_marginEnd="20dp"
android:background="@drawable/radius_btn"/>
</LinearLayout>

View File

@ -13,8 +13,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:scrollbars="vertical"
tools:listitem="@layout/rc_receta_item"
/>
tools:listitem="@layout/rc_receta_item" />
</RelativeLayout>

View File

@ -7,39 +7,143 @@
android:orientation="vertical"
tools:context="PrincipalActivity">
<Button
android:id="@+id/btn_agregar_paciente"
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/tv_agregar_paciente_titulo"/>
<Button
android:id="@+id/btn_eliminar_paciente"
android:text="@string/app_name"
android:gravity="center"
android:layout_marginTop="5dp"
android:layout_marginBottom="20dp"
android:textColor="@color/primaryColor"
android:textSize="30dp"/>
<!--<ImageView
android:layout_width="match_parent"
android:layout_height="150dp"
android:layout_margin="20dp"
android:src="@drawable/doctor"/>-->
<GridLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/eliminar_paciente_titulo"/>
<Button
android:id="@+id/btn_agregar_receta"
android:layout_marginTop="30dp"
android:columnCount="1"
android:rowCount="4">
<TextView
android:id="@+id/tv_nombre_doctor"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_columnWeight="1"
android:layout_column="0"
android:layout_row="0"
android:textSize="25dp"
android:layout_marginTop="15dp"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
android:text="Nombre:"/>
<TextView
android:id="@+id/tv_telefono_doctor"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_columnWeight="1"
android:layout_column="0"
android:layout_row="1"
android:textSize="25dp"
android:layout_marginTop="35dp"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
android:text="Telefono:"/>
<TextView
android:id="@+id/tv_cedula_doctor"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_columnWeight="1"
android:layout_column="0"
android:layout_row="2"
android:textSize="25dp"
android:layout_marginTop="35dp"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
android:text="Cédula:"/>
<TextView
android:id="@+id/tv_consultorio_doctor"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_columnWeight="1"
android:layout_column="0"
android:layout_row="3"
android:textSize="25dp"
android:layout_marginTop="35dp"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
android:text="Consultorio:"/>
</GridLayout>
<GridLayout
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/btn_agregar_receta"/>
<Button
android:id="@+id/btn_eliminar_receta"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Eliminar Receta"/>
<Button
android:id="@+id/btn_cerrar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Cerrar Sesión"/>
android:background="@drawable/radius_tv"
android:backgroundTint="@color/primaryColor"
android:layout_marginTop="80dp"
android:columnCount="3"
android:rowCount="2">
<ImageView
android:id="@+id/iv_pacientes"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/account"
android:layout_column="0"
android:layout_columnWeight="1"
android:layout_row="0"/>
<ImageView
android:id="@+id/iv_recetas"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/file_document"
android:layout_column="1"
android:layout_columnWeight="1"
android:layout_row="0"/>
<ImageView
android:id="@+id/iv_historial"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/history"
android:layout_column="2"
android:layout_columnWeight="1"
android:layout_row="0"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Pacientes"
android:textColor="@color/white"
android:layout_columnWeight="1"
android:layout_column="0"
android:gravity="center"
android:layout_row="1"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Recetas"
android:textColor="@color/white"
android:layout_columnWeight="1"
android:layout_column="1"
android:gravity="center"
android:layout_row="1"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Historial"
android:textColor="@color/white"
android:layout_columnWeight="1"
android:layout_column="2"
android:gravity="center"
android:layout_row="1"/>
</GridLayout>
</LinearLayout>

View File

@ -42,6 +42,7 @@
android:layout_marginBottom="20dp"
android:background="@drawable/radius_tv"
android:layout_gravity="center_horizontal"
android:inputType="text"
/>
@ -56,6 +57,7 @@
android:layout_marginBottom="20dp"
android:background="@drawable/radius_tv"
android:textColorHint="@color/black"
android:inputType="text"
/>
<EditText
@ -69,6 +71,9 @@
android:layout_marginBottom="20dp"
android:background="@drawable/radius_tv"
android:textColorHint="@color/black"
android:inputType="phone"
android:maxLength="15"
android:digits="0123456789"
/>
<EditText
android:layout_gravity="center_horizontal"
@ -96,6 +101,7 @@
android:background="@drawable/radius_tv"
android:hint="@string/et_contrasena_registrar"
android:textColorHint="@color/black"
android:maxLength="12"
/>
<Button

View File

@ -0,0 +1,107 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical">
<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="100dp"
android:layout_margin="10dp"
app:cardCornerRadius="8dp"
app:cardElevation="8dp">
<GridLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:columnCount="3"
android:rowCount="3">
<TextView
android:id="@+id/tv_nombre"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:layout_marginTop="10dp"
android:layout_columnWeight="1"
android:layout_column="0"
android:layout_row="0"
android:text="@string/ht_nombre"/>
<TextView
android:id="@+id/tv_apellido_paterno"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:layout_marginTop="10dp"
android:layout_columnWeight="1"
android:layout_column="1"
android:layout_row="0"
android:text="@string/ht_apellido_paterno"/>
<TextView
android:id="@+id/tv_apellido_materno"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:layout_marginTop="10dp"
android:layout_columnWeight="1"
android:layout_column="2"
android:layout_row="0"
android:text="@string/ht_apellido_materno"/>
<TextView
android:id="@+id/tv_edad"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:layout_marginTop="10dp"
android:layout_columnWeight="1"
android:layout_column="0"
android:layout_row="1"
android:text="@string/et_modificar_edad"/>
<TextView
android:id="@+id/tv_sexo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:layout_marginTop="10dp"
android:layout_columnWeight="1"
android:layout_column="1"
android:layout_row="1"
android:text="@string/et_modificar_sexo"/>
<TextView
android:id="@+id/tv_domicilio"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:layout_marginTop="10dp"
android:layout_columnWeight="1"
android:layout_column="2"
android:layout_row="1"
android:text="@string/ht_domicilio"/>
<ImageView
android:id="@+id/iv_modificar_paciente"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:layout_marginTop="10dp"
android:layout_column="1"
android:layout_columnWeight="1"
android:layout_row="2"
android:src="@drawable/update"/>
<ImageView
android:id="@+id/iv_eliminar_paciente"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:layout_marginTop="10dp"
android:layout_column="2"
android:layout_columnWeight="1"
android:layout_row="2"
android:src="@drawable/delete"/>
</GridLayout>
</androidx.cardview.widget.CardView>
</LinearLayout>

View File

@ -63,33 +63,61 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@+id/btn_descargar_receta"
<ImageView
android:id="@+id/iv_descargar_receta"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="243dp"
android:layout_marginTop="2dp"
android:layout_marginEnd="24dp"
android:layout_marginBottom="10dp"
android:text="Descargar"
android:textSize="12sp"
android:src="@drawable/download"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="1.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.487" />
app:layout_constraintVertical_bias="0.243" />
<Button
android:id="@+id/btn_eliminar_receta"
<ImageView
android:id="@+id/iv_correo_receta"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="100dp"
android:layout_marginTop="2dp"
android:layout_marginEnd="24dp"
android:layout_marginBottom="50dp"
android:background="#3F51B5"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.815"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.529"
app:srcCompat="@android:drawable/ic_dialog_email" />
<ImageView
android:id="@+id/iv_modificar_receta"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="24dp"
android:src="@drawable/update"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="1.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.593" />
<ImageView
android:id="@+id/iv_eliminar_receta"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="243dp"
android:layout_marginTop="75dp"
android:layout_marginEnd="24dp"
android:layout_marginBottom="10dp"
android:text="Eliminar"
android:textSize="12sp"
android:src="@drawable/delete"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="1.0"

View File

@ -47,6 +47,7 @@
<string name="receta_peso">Peso del paciente KG</string>
<string name="btn_agregar_receta">Agregar Receta</string>
<string name="btn_ayuda_receta">Ayuda</string>
<string name="btn_modificar_receta">Modificar Receta</string>
<string name="title_activity_principal">PrincipalActivity</string>
<string name="title_home">Home</string>
<string name="title_dashboard">Dashboard</string>