Compare commits
14 Commits
Author | SHA1 | Date |
---|---|---|
AngelSuarez03 | 92de4c6341 | |
AngelSuarez03 | 828842db37 | |
angel.nunez | 700141d395 | |
AngelSuarez03 | 9defb65352 | |
angel.nunez | 177ba9e60e | |
AngelSuarez03 | 08ffeac5e4 | |
AngelSuarez03 | 33a29c155f | |
mosterTeco | 4c115b3e79 | |
AngelSuarez03 | 30a54fe6c6 | |
angel.nunez | 0ceb8db1a9 | |
AngelSuarez03 | 2a21d6b537 | |
AngelSuarez03 | b6d8a26880 | |
mosterTeco | 4f693a95e0 | |
mosterTeco | 7edc71a7ff |
|
@ -3,7 +3,20 @@
|
||||||
<component name="deploymentTargetDropDown">
|
<component name="deploymentTargetDropDown">
|
||||||
<value>
|
<value>
|
||||||
<entry key="app">
|
<entry key="app">
|
||||||
<State />
|
<State>
|
||||||
|
<targetSelectedWithDropDown>
|
||||||
|
<Target>
|
||||||
|
<type value="QUICK_BOOT_TARGET" />
|
||||||
|
<deviceKey>
|
||||||
|
<Key>
|
||||||
|
<type value="VIRTUAL_DEVICE_PATH" />
|
||||||
|
<value value="C:\Users\USER\.android\avd\Pixel_3a_API_34_extension_level_7_x86_64.avd" />
|
||||||
|
</Key>
|
||||||
|
</deviceKey>
|
||||||
|
</Target>
|
||||||
|
</targetSelectedWithDropDown>
|
||||||
|
<timeTargetWasSelectedWithDropDown value="2024-06-02T23:30:13.381406600Z" />
|
||||||
|
</State>
|
||||||
</entry>
|
</entry>
|
||||||
</value>
|
</value>
|
||||||
</component>
|
</component>
|
||||||
|
|
|
@ -15,6 +15,15 @@
|
||||||
android:supportsRtl="true"
|
android:supportsRtl="true"
|
||||||
android:theme="@style/Theme.MedicalHealth"
|
android:theme="@style/Theme.MedicalHealth"
|
||||||
tools:targetApi="31">
|
tools:targetApi="31">
|
||||||
|
<activity
|
||||||
|
android:name=".RecetasActivity"
|
||||||
|
android:exported="false" />
|
||||||
|
<activity
|
||||||
|
android:name=".PacienteActivity"
|
||||||
|
android:exported="false" />
|
||||||
|
<activity
|
||||||
|
android:name=".ModificarRecetaActivity"
|
||||||
|
android:exported="false" />
|
||||||
<activity
|
<activity
|
||||||
android:name=".PacientePrincipalActivity"
|
android:name=".PacientePrincipalActivity"
|
||||||
android:exported="false" />
|
android:exported="false" />
|
||||||
|
@ -32,7 +41,7 @@
|
||||||
android:name=".RegistrarDActivity"
|
android:name=".RegistrarDActivity"
|
||||||
android:exported="false" />
|
android:exported="false" />
|
||||||
<activity
|
<activity
|
||||||
android:name="Reports.ConsultarPacientesActivity"
|
android:name=".reports.ConsultarPacientesActivity"
|
||||||
android:exported="false" />
|
android:exported="false" />
|
||||||
<activity
|
<activity
|
||||||
android:name=".EliminarActivity"
|
android:name=".EliminarActivity"
|
||||||
|
|
|
@ -1,7 +0,0 @@
|
||||||
package Adapters
|
|
||||||
|
|
||||||
import Data.Receta
|
|
||||||
|
|
||||||
interface CellClickListener {
|
|
||||||
fun onCellClickListener(position : Int)
|
|
||||||
}
|
|
|
@ -1,17 +1,28 @@
|
||||||
package com.terratenientes.medicalhealth
|
package com.terratenientes.medicalhealth
|
||||||
|
|
||||||
import Adapters.DoctorDataBaseHelper
|
import com.terratenientes.medicalhealth.adapters.DoctorDataBaseHelper
|
||||||
import Data.Paciente
|
import com.terratenientes.medicalhealth.data.Paciente
|
||||||
import android.R
|
import android.R
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
|
import android.os.Build
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
|
import android.util.Log
|
||||||
import android.widget.ArrayAdapter
|
import android.widget.ArrayAdapter
|
||||||
import android.widget.Toast
|
import android.widget.Toast
|
||||||
|
import androidx.annotation.RequiresApi
|
||||||
import androidx.appcompat.app.AppCompatActivity
|
import androidx.appcompat.app.AppCompatActivity
|
||||||
|
import com.terratenientes.medicalhealth.adapters.HistorialDataBaseHelper
|
||||||
|
import com.terratenientes.medicalhealth.data.Historial
|
||||||
import com.terratenientes.medicalhealth.databinding.ActivityAgregarPacienteBinding
|
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() {
|
class AgregarActivity : AppCompatActivity() {
|
||||||
|
|
||||||
|
private lateinit var dbHistorial: HistorialDataBaseHelper
|
||||||
|
private lateinit var historial: Historial
|
||||||
private lateinit var binding: ActivityAgregarPacienteBinding
|
private lateinit var binding: ActivityAgregarPacienteBinding
|
||||||
private lateinit var db: DoctorDataBaseHelper
|
private lateinit var db: DoctorDataBaseHelper
|
||||||
|
|
||||||
|
@ -21,17 +32,17 @@ class AgregarActivity : AppCompatActivity() {
|
||||||
val view = binding.root
|
val view = binding.root
|
||||||
setContentView(view)
|
setContentView(view)
|
||||||
db = DoctorDataBaseHelper(this@AgregarActivity)
|
db = DoctorDataBaseHelper(this@AgregarActivity)
|
||||||
|
dbHistorial = HistorialDataBaseHelper(this@AgregarActivity)
|
||||||
|
historial = Historial("Doctor", intent.getStringExtra("NombreDoctor"),"Se inicio la actividad alta paciente", obtenerFecha())
|
||||||
|
añadirHistorial(historial)
|
||||||
val opcionesGenero = arrayOf("Masculino", "Femenino", "Otro")
|
val opcionesGenero = arrayOf("Masculino", "Femenino", "Otro")
|
||||||
val adapter = ArrayAdapter(this, R.layout.simple_spinner_item, opcionesGenero)
|
val adapter = ArrayAdapter(this, R.layout.simple_spinner_item, opcionesGenero)
|
||||||
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item)
|
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item)
|
||||||
binding.edtxSexo.adapter = adapter
|
binding.edtxSexo.adapter = adapter
|
||||||
|
|
||||||
binding.btnConfirmar.setOnClickListener {
|
binding.btnConfirmar.setOnClickListener {
|
||||||
//db.crearTablaPacientes()
|
|
||||||
agregarPaciente()
|
agregarPaciente()
|
||||||
val intent = Intent(this@AgregarActivity, EliminarActivity::class.java)
|
finish()
|
||||||
startActivity(intent)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
private fun agregarPaciente() {
|
private fun agregarPaciente() {
|
||||||
|
@ -45,9 +56,32 @@ class AgregarActivity : AppCompatActivity() {
|
||||||
if (nombre.isNotEmpty() && apellidoPaterno.isNotEmpty() && apellidoMaterno.isNotEmpty() && edad != null && sexo.isNotEmpty() && domicilio.isNotEmpty()) {
|
if (nombre.isNotEmpty() && apellidoPaterno.isNotEmpty() && apellidoMaterno.isNotEmpty() && edad != null && sexo.isNotEmpty() && domicilio.isNotEmpty()) {
|
||||||
val paciente = Paciente(0, nombre, apellidoPaterno, apellidoMaterno, edad, sexo, domicilio)
|
val paciente = Paciente(0, nombre, apellidoPaterno, apellidoMaterno, edad, sexo, domicilio)
|
||||||
db.agregarPaciente(paciente)
|
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()
|
Toast.makeText(this@AgregarActivity, "Paciente registrado correctamente", Toast.LENGTH_SHORT).show()
|
||||||
} else {
|
} else {
|
||||||
Toast.makeText(this@AgregarActivity, "Por favor ingrese todos los campos", Toast.LENGTH_SHORT).show()
|
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)
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -1,9 +1,10 @@
|
||||||
package com.terratenientes.medicalhealth
|
package com.terratenientes.medicalhealth
|
||||||
|
|
||||||
import Adapters.DoctorDataBaseHelper
|
import com.terratenientes.medicalhealth.adapters.DoctorDataBaseHelper
|
||||||
import Adapters.PacienteAdapter
|
import com.terratenientes.medicalhealth.adapters.PacienteAdapter
|
||||||
import Data.Paciente
|
import com.terratenientes.medicalhealth.data.Paciente
|
||||||
import android.annotation.SuppressLint
|
import android.annotation.SuppressLint
|
||||||
|
import android.content.Intent
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.widget.Toast
|
import android.widget.Toast
|
||||||
import androidx.appcompat.app.AppCompatActivity
|
import androidx.appcompat.app.AppCompatActivity
|
||||||
|
@ -38,6 +39,12 @@ class EliminarActivity : AppCompatActivity() {
|
||||||
Toast.makeText(this, "Por favor, selecciona un paciente para eliminar.", Toast.LENGTH_SHORT).show()
|
Toast.makeText(this, "Por favor, selecciona un paciente para eliminar.", Toast.LENGTH_SHORT).show()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
binding.btnCancelar.setOnClickListener {
|
||||||
|
val intent = Intent(this@EliminarActivity, PrincipalActivity::class.java)
|
||||||
|
startActivity(intent)
|
||||||
|
finish()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun cargarListaPacientes() {
|
private fun cargarListaPacientes() {
|
||||||
|
|
|
@ -1,24 +1,21 @@
|
||||||
package com.terratenientes.medicalhealth
|
package com.terratenientes.medicalhealth
|
||||||
|
|
||||||
import Adapters.RecetaAdapter
|
import com.terratenientes.medicalhealth.adapters.RecetaAdapter
|
||||||
import Adapters.RecetaDataBaseHelper
|
import com.terratenientes.medicalhealth.adapters.RecetaDataBaseHelper
|
||||||
import Data.Receta
|
import android.content.Intent
|
||||||
|
import com.terratenientes.medicalhealth.data.Receta
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.widget.Toast
|
import android.widget.Toast
|
||||||
import androidx.activity.enableEdgeToEdge
|
|
||||||
import androidx.appcompat.app.AppCompatActivity
|
import androidx.appcompat.app.AppCompatActivity
|
||||||
import androidx.core.view.ViewCompat
|
|
||||||
import androidx.core.view.WindowInsetsCompat
|
|
||||||
import com.terratenientes.medicalhealth.databinding.ActivityEliminarPacienteBinding
|
|
||||||
import com.terratenientes.medicalhealth.databinding.ActivityEliminarRecetaBinding
|
import com.terratenientes.medicalhealth.databinding.ActivityEliminarRecetaBinding
|
||||||
import android.widget.ListView
|
import android.widget.ListView
|
||||||
|
|
||||||
|
|
||||||
class EliminarRecetaActivity : AppCompatActivity() {
|
class EliminarRecetaActivity : AppCompatActivity() {
|
||||||
|
|
||||||
private lateinit var binding: ActivityEliminarRecetaBinding
|
private lateinit var binding: ActivityEliminarRecetaBinding
|
||||||
private lateinit var dbReceta: RecetaDataBaseHelper
|
private lateinit var dbReceta: RecetaDataBaseHelper
|
||||||
private lateinit var recetaAdapter: RecetaAdapter
|
private lateinit var recetaAdapter: RecetaAdapter
|
||||||
|
private var recetaSeleccionada: Receta? = null
|
||||||
|
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
|
@ -28,30 +25,41 @@ class EliminarRecetaActivity : AppCompatActivity() {
|
||||||
|
|
||||||
dbReceta = RecetaDataBaseHelper(this)
|
dbReceta = RecetaDataBaseHelper(this)
|
||||||
|
|
||||||
// Configurar el ListView y el adaptador
|
cargarListaRecetas()
|
||||||
val recetas = obtenerListaRecetas()
|
|
||||||
recetaAdapter = RecetaAdapter(this, recetas)
|
binding.listaRecetas.setOnItemClickListener { _, _, position, _ ->
|
||||||
binding.listaRecetas.adapter = recetaAdapter
|
recetaSeleccionada = recetaAdapter.getItem(position)
|
||||||
|
}
|
||||||
|
|
||||||
// Manejar el evento de clic en el botón para eliminar receta
|
|
||||||
binding.btnEliminarReceta.setOnClickListener {
|
binding.btnEliminarReceta.setOnClickListener {
|
||||||
val posicionSeleccionada = binding.listaRecetas.selectedItemPosition
|
if (recetaSeleccionada != null) {
|
||||||
if (posicionSeleccionada != ListView.INVALID_POSITION) {
|
eliminarReceta(recetaSeleccionada!!)
|
||||||
val recetaSeleccionada = recetas[posicionSeleccionada]
|
cargarListaRecetas()
|
||||||
eliminarReceta(recetaSeleccionada)
|
|
||||||
recetaAdapter.remove(recetaSeleccionada)
|
|
||||||
Toast.makeText(this, "Receta eliminada correctamente", Toast.LENGTH_SHORT).show()
|
Toast.makeText(this, "Receta eliminada correctamente", Toast.LENGTH_SHORT).show()
|
||||||
} else {
|
} else {
|
||||||
Toast.makeText(this, "Por favor, seleccione una receta para eliminar", Toast.LENGTH_SHORT).show()
|
Toast.makeText(this, "Por favor, seleccione una receta para eliminar", Toast.LENGTH_SHORT).show()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
binding.btnCancelarr.setOnClickListener {
|
||||||
|
val intent = Intent(this@EliminarRecetaActivity, PrincipalActivity::class.java)
|
||||||
|
startActivity(intent)
|
||||||
|
finish()
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun cargarListaRecetas() {
|
||||||
|
val recetas = obtenerListaRecetas()
|
||||||
|
recetaAdapter = RecetaAdapter(this, recetas)
|
||||||
|
binding.listaRecetas.adapter = recetaAdapter
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun obtenerListaRecetas(): List<Receta> {
|
private fun obtenerListaRecetas(): List<Receta> {
|
||||||
return dbReceta.obtenerTodasRecetas() // Implementa este método en tu RecetaDataBaseHelper para obtener todas las recetas
|
return dbReceta.obtenerTodasRecetas()
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun eliminarReceta(receta: Receta) {
|
private fun eliminarReceta(receta: Receta) {
|
||||||
dbReceta.eliminarReceta(receta) // Implementa este método en tu RecetaDataBaseHelper para eliminar una receta
|
dbReceta.eliminarReceta(receta)
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -1,62 +1,125 @@
|
||||||
package com.terratenientes.medicalhealth
|
package com.terratenientes.medicalhealth
|
||||||
|
|
||||||
import Adapters.DoctorDataBaseHelper
|
|
||||||
import Data.Doctor
|
|
||||||
import android.annotation.SuppressLint
|
import android.annotation.SuppressLint
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import androidx.appcompat.app.AppCompatActivity
|
import android.os.Build
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
|
import android.util.Log
|
||||||
import android.widget.Toast
|
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.adapters.RecetaDataBaseHelper
|
||||||
|
import com.terratenientes.medicalhealth.data.Doctor
|
||||||
|
import com.terratenientes.medicalhealth.data.Historial
|
||||||
import com.terratenientes.medicalhealth.databinding.ActivityMainBinding
|
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() {
|
class MainActivity : AppCompatActivity() {
|
||||||
private lateinit var binding: ActivityMainBinding
|
private lateinit var binding: ActivityMainBinding
|
||||||
private lateinit var db: DoctorDataBaseHelper
|
private lateinit var db: DoctorDataBaseHelper
|
||||||
|
private lateinit var dbHistorial: HistorialDataBaseHelper
|
||||||
|
lateinit var dbRecetas: RecetaDataBaseHelper
|
||||||
|
private lateinit var historial: Historial
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
binding=ActivityMainBinding.inflate(layoutInflater)
|
binding = ActivityMainBinding.inflate(layoutInflater)
|
||||||
val view=binding.root
|
val view = binding.root
|
||||||
setContentView(view)
|
setContentView(view)
|
||||||
|
historial = Historial(null, null, "Se abrio la aplicacion", obtenerFecha())
|
||||||
db = DoctorDataBaseHelper(this@MainActivity)
|
db = DoctorDataBaseHelper(this@MainActivity)
|
||||||
|
dbHistorial = HistorialDataBaseHelper(this@MainActivity)
|
||||||
|
dbRecetas = RecetaDataBaseHelper(this@MainActivity)
|
||||||
|
añadirHistorial(historial)
|
||||||
|
//dbRecetas.crearTablaReceta()
|
||||||
//db.createTable()
|
//db.createTable()
|
||||||
|
//dbHistorial.crearTablaHistorial()
|
||||||
|
//db.crearTablaPacientes()
|
||||||
binding.btnIniciarSesion.setOnClickListener {
|
binding.btnIniciarSesion.setOnClickListener {
|
||||||
var res=db.validarDatos(binding.tvUsuario.text.toString(),binding.tvContrasena.text.toString())
|
historial.fecha = obtenerFecha()
|
||||||
var resPaciente = db.validarDatosPaciente(binding.tvUsuario.text.toString(), binding.tvContrasena.text.toString())
|
var res = db.validarDatos(
|
||||||
if(res==true){
|
binding.tvUsuario.text.toString(),
|
||||||
Toast.makeText(this@MainActivity,"VALIDADO",Toast.LENGTH_LONG).show()
|
binding.tvContrasena.text.toString()
|
||||||
|
)
|
||||||
|
var resPaciente = db.validarDatosPaciente(
|
||||||
|
binding.tvUsuario.text.toString(),
|
||||||
|
binding.tvContrasena.text.toString()
|
||||||
|
)
|
||||||
|
if (res == true) {
|
||||||
|
historial.eventoRealizado = "Inicio Sesion Doctor"
|
||||||
|
historial.tipoUsuario = "Doctor"
|
||||||
|
añadirHistorial(historial)
|
||||||
|
Toast.makeText(this@MainActivity, "VALIDADO", Toast.LENGTH_LONG).show()
|
||||||
val intent = Intent(this@MainActivity, PrincipalActivity::class.java)
|
val intent = Intent(this@MainActivity, PrincipalActivity::class.java)
|
||||||
//intent.putExtra("IDPaciente",binding.tvUsuario.text.toString())
|
//intent.putExtra("IDPaciente",binding.tvUsuario.text.toString())
|
||||||
|
intent.putExtra("Cedula", binding.tvUsuario.text.toString())
|
||||||
startActivity(intent)
|
startActivity(intent)
|
||||||
}else if(resPaciente==true){
|
} else if (resPaciente == true) {
|
||||||
Toast.makeText(this@MainActivity,"VALIDADO",Toast.LENGTH_LONG).show()
|
historial.tipoUsuario = "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)
|
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)
|
startActivity(intent)
|
||||||
}else{
|
} else {
|
||||||
Toast.makeText(this@MainActivity," NO VALIDADO",Toast.LENGTH_LONG).show()
|
Toast.makeText(this@MainActivity, " NO VALIDADO", Toast.LENGTH_LONG).show()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
binding.tvRegistrarme.setOnClickListener{
|
binding.tvRegistrarme.setOnClickListener {
|
||||||
|
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)
|
val intent = Intent(this@MainActivity, RegistrarDActivity::class.java)
|
||||||
startActivity(intent)
|
startActivity(intent)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressLint("SuspiciousIndentation")
|
@SuppressLint("SuspiciousIndentation")
|
||||||
private fun cargarDatos(){
|
private fun cargarDatos() {
|
||||||
val doctor= Doctor("1236","Sebastian","Cordoba","229330123",1)
|
val doctor = Doctor("1236", "Sebastian", "Cordoba", "229330123", 1)
|
||||||
db.agregarDoctores(doctor,"prueba")
|
db.agregarDoctores(doctor, "prueba")
|
||||||
Toast.makeText(this@MainActivity,"DATOS DEL DOCTOR AGREGADOS",Toast.LENGTH_LONG).show()
|
Toast.makeText(this@MainActivity, "DATOS DEL DOCTOR AGREGADOS", Toast.LENGTH_LONG).show()
|
||||||
}
|
}
|
||||||
private fun validaDatos(){
|
|
||||||
var usuario=binding.tvUsuario.text.toString()
|
private fun validaDatos() {
|
||||||
var contrasena=binding.tvContrasena.text.toString()
|
var usuario = binding.tvUsuario.text.toString()
|
||||||
var res=db.validarDatos(usuario,contrasena)
|
var contrasena = binding.tvContrasena.text.toString()
|
||||||
if(res==true){
|
var res = db.validarDatos(usuario, contrasena)
|
||||||
Toast.makeText(this@MainActivity,"VALIDADO",Toast.LENGTH_LONG).show()
|
if (res == true) {
|
||||||
}else{
|
Toast.makeText(this@MainActivity, "VALIDADO", Toast.LENGTH_LONG).show()
|
||||||
Toast.makeText(this@MainActivity," NO 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)
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
|
@ -1,19 +1,30 @@
|
||||||
package com.terratenientes.medicalhealth
|
package com.terratenientes.medicalhealth
|
||||||
|
|
||||||
import Adapters.DoctorDataBaseHelper
|
import com.terratenientes.medicalhealth.adapters.DoctorDataBaseHelper
|
||||||
import Data.Paciente
|
import com.terratenientes.medicalhealth.data.Paciente
|
||||||
import Reports.ConsultarPacientesActivity
|
import com.terratenientes.medicalhealth.reports.ConsultarPacientesActivity
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
|
import android.os.Build
|
||||||
import androidx.appcompat.app.AppCompatActivity
|
import androidx.appcompat.app.AppCompatActivity
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
|
import android.util.Log
|
||||||
import android.widget.Toast
|
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 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() {
|
class ModificarActivity : AppCompatActivity() {
|
||||||
|
|
||||||
lateinit var binding : ActivityModificarBinding
|
lateinit var binding : ActivityModificarBinding
|
||||||
private lateinit var paciente : Paciente
|
private lateinit var paciente : Paciente
|
||||||
private lateinit var db: DoctorDataBaseHelper
|
private lateinit var db: DoctorDataBaseHelper
|
||||||
|
private lateinit var dbHistorial: HistorialDataBaseHelper
|
||||||
|
private lateinit var historial: Historial
|
||||||
|
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
|
@ -21,6 +32,9 @@ class ModificarActivity : AppCompatActivity() {
|
||||||
val view = binding.root
|
val view = binding.root
|
||||||
setContentView(view)
|
setContentView(view)
|
||||||
db = DoctorDataBaseHelper(this@ModificarActivity)
|
db = DoctorDataBaseHelper(this@ModificarActivity)
|
||||||
|
dbHistorial = HistorialDataBaseHelper(this@ModificarActivity)
|
||||||
|
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())
|
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()
|
llenarCampos()
|
||||||
binding.btnModificar.setOnClickListener {
|
binding.btnModificar.setOnClickListener {
|
||||||
|
@ -34,9 +48,10 @@ class ModificarActivity : AppCompatActivity() {
|
||||||
paciente.apellidoMaterno = binding.etApellidoMaterno.text.toString()
|
paciente.apellidoMaterno = binding.etApellidoMaterno.text.toString()
|
||||||
paciente.domicilio = binding.etDomicilio.text.toString()
|
paciente.domicilio = binding.etDomicilio.text.toString()
|
||||||
db.modificarPaciente(paciente)
|
db.modificarPaciente(paciente)
|
||||||
|
historial.eventoRealizado = "Se modifico la informacion de paciente ${paciente.nombre}"
|
||||||
|
historial.fecha = obtenerFecha()
|
||||||
|
añadirHistorial(historial)
|
||||||
finish()
|
finish()
|
||||||
intent = Intent(this@ModificarActivity, ConsultarPacientesActivity::class.java)
|
|
||||||
startActivity(intent)
|
|
||||||
Toast.makeText(this@ModificarActivity, "Información Actualizada UwU", Toast.LENGTH_LONG).show()
|
Toast.makeText(this@ModificarActivity, "Información Actualizada UwU", Toast.LENGTH_LONG).show()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -49,4 +64,24 @@ class ModificarActivity : AppCompatActivity() {
|
||||||
binding.tvSexo.setText("Sexo: ${paciente.sexo}")
|
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)
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
|
@ -0,0 +1,85 @@
|
||||||
|
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 {
|
||||||
|
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())
|
||||||
|
historial.eventoRealizado = "Se modificó una receta"
|
||||||
|
historial.fecha = obtenerFecha()
|
||||||
|
añadirHistorial(historial)
|
||||||
|
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)
|
||||||
|
}
|
||||||
|
|
||||||
|
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)
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,197 @@
|
||||||
|
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
|
||||||
|
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
|
||||||
|
|
||||||
|
@RequiresApi(Build.VERSION_CODES.O)
|
||||||
|
class PacienteActivity : AppCompatActivity(), CellClickListener {
|
||||||
|
lateinit var binding : ActivityPacienteBinding
|
||||||
|
private lateinit var db: DoctorDataBaseHelper
|
||||||
|
private lateinit var pacientesList: MutableList<Paciente>
|
||||||
|
private lateinit var dbHistorial: HistorialDataBaseHelper
|
||||||
|
private lateinit var historial: Historial
|
||||||
|
private lateinit var recycleAdapter : PacienteViewAdapter
|
||||||
|
private lateinit var pacientes : List<Paciente>
|
||||||
|
lateinit var nombreDoctor: String
|
||||||
|
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
|
||||||
|
dbHistorial = HistorialDataBaseHelper(this@PacienteActivity)
|
||||||
|
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 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() {
|
||||||
|
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())
|
||||||
|
historial.eventoRealizado = "Se acciono el boton para eliminar al usuario ${paciente.id}"
|
||||||
|
historial.fecha = obtenerFecha()
|
||||||
|
añadirHistorial(historial)
|
||||||
|
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)
|
||||||
|
intent.putExtra("NombreDoctor",nombreDoctor)
|
||||||
|
startActivity(intent)
|
||||||
|
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<Paciente>) {
|
||||||
|
//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")
|
||||||
|
|
||||||
|
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)
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun cargarListaPacientes() {
|
||||||
|
pacientesList = obtenerPacientes()
|
||||||
|
}
|
||||||
|
|
||||||
|
@SuppressLint("Range")
|
||||||
|
private fun obtenerPacientes(): MutableList<Paciente> {
|
||||||
|
val pacientes = mutableListOf<Paciente>()
|
||||||
|
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
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onEnviarCorreoClickListener(position: Int) {
|
||||||
|
TODO("Not yet implemented")
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,47 +1,64 @@
|
||||||
package com.terratenientes.medicalhealth
|
package com.terratenientes.medicalhealth
|
||||||
|
|
||||||
import Adapters.CellClickListener
|
import com.terratenientes.medicalhealth.adapters.CellClickListener
|
||||||
import Adapters.RecetaDataBaseHelper
|
import com.terratenientes.medicalhealth.adapters.RecetaDataBaseHelper
|
||||||
import Adapters.RecetaViewAdapter
|
import com.terratenientes.medicalhealth.adapters.RecetaViewAdapter
|
||||||
import Data.Receta
|
import com.terratenientes.medicalhealth.data.Receta
|
||||||
import android.Manifest
|
import android.Manifest
|
||||||
|
import android.content.Intent
|
||||||
import android.content.pm.PackageManager
|
import android.content.pm.PackageManager
|
||||||
import android.graphics.Canvas
|
|
||||||
import android.graphics.Color
|
|
||||||
import android.graphics.Paint
|
|
||||||
import android.graphics.Typeface
|
import android.graphics.Typeface
|
||||||
import android.graphics.pdf.PdfDocument
|
import android.graphics.pdf.PdfDocument
|
||||||
|
import android.os.Build
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.os.Environment
|
import android.os.Environment
|
||||||
import android.text.TextPaint
|
import android.text.TextPaint
|
||||||
|
import android.util.Log
|
||||||
import android.widget.Toast
|
import android.widget.Toast
|
||||||
|
import androidx.annotation.RequiresApi
|
||||||
import androidx.appcompat.app.AppCompatActivity
|
import androidx.appcompat.app.AppCompatActivity
|
||||||
import androidx.core.app.ActivityCompat
|
import androidx.core.app.ActivityCompat
|
||||||
import androidx.core.content.ContextCompat
|
import androidx.core.content.ContextCompat
|
||||||
import androidx.recyclerview.widget.LinearLayoutManager
|
import androidx.recyclerview.widget.LinearLayoutManager
|
||||||
|
import com.terratenientes.medicalhealth.adapters.HistorialDataBaseHelper
|
||||||
|
import com.terratenientes.medicalhealth.data.Historial
|
||||||
import com.terratenientes.medicalhealth.databinding.ActivityPacientePrincipalBinding
|
import com.terratenientes.medicalhealth.databinding.ActivityPacientePrincipalBinding
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import java.io.FileOutputStream
|
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 {
|
class PacientePrincipalActivity : AppCompatActivity(), CellClickListener {
|
||||||
private lateinit var binding: ActivityPacientePrincipalBinding
|
private lateinit var binding: ActivityPacientePrincipalBinding
|
||||||
private var idPaciente : String =""
|
private var idPaciente : String =""
|
||||||
private lateinit var db: RecetaDataBaseHelper
|
private lateinit var db: RecetaDataBaseHelper
|
||||||
private lateinit var recycleAdapter : RecetaViewAdapter
|
private lateinit var recycleAdapter : RecetaViewAdapter
|
||||||
private lateinit var recetas : List<Receta>
|
private lateinit var recetas : List<Receta>
|
||||||
|
lateinit var dbHistorial: HistorialDataBaseHelper
|
||||||
|
lateinit var historial: Historial
|
||||||
|
lateinit var nombrePaciente: String
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
binding = ActivityPacientePrincipalBinding.inflate(layoutInflater)
|
binding = ActivityPacientePrincipalBinding.inflate(layoutInflater)
|
||||||
val view = binding.root
|
val view = binding.root
|
||||||
setContentView(view)
|
setContentView(view)
|
||||||
idPaciente= intent.getStringExtra("IDPaciente")!!
|
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)
|
recetas=db.obtenerRecetasPaciente(idPaciente)
|
||||||
|
nombrePaciente = intent.getStringExtra("NombrePaciente").toString()
|
||||||
|
|
||||||
recycleAdapter = RecetaViewAdapter(db.obtenerRecetasPaciente(idPaciente), this, this@PacientePrincipalActivity)
|
recycleAdapter = RecetaViewAdapter(db.obtenerRecetasPaciente(idPaciente), this, this@PacientePrincipalActivity)
|
||||||
|
|
||||||
binding.rvRecetasPaciente.layoutManager=LinearLayoutManager(this)
|
binding.rvRecetasPaciente.layoutManager=LinearLayoutManager(this)
|
||||||
binding.rvRecetasPaciente.adapter= recycleAdapter
|
binding.rvRecetasPaciente.adapter= recycleAdapter
|
||||||
|
binding.ivLogout.setOnClickListener {
|
||||||
|
finish()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onResume() {
|
override fun onResume() {
|
||||||
|
@ -72,10 +89,73 @@ class PacientePrincipalActivity : AppCompatActivity(), CellClickListener {
|
||||||
// Toast.makeText(this, "Peso : ${datosPaciente[position].pesoPaciente}+ edad: ${datosPaciente[position].edadPaciente} ", Toast.LENGTH_LONG).show()
|
// 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()
|
//Toast.makeText(this@PacientePrincipalActivity, "PERMISOS CONCEDIDOS", Toast.LENGTH_SHORT).show()
|
||||||
generarPDF(nombrePaciente, descripcionReceta, nombreMeciamento)
|
generarPDF(nombrePaciente, descripcionReceta, nombreMeciamento)
|
||||||
|
historial.eventoRealizado = "Se descargo la receta en formato pdf"
|
||||||
|
historial.fecha = obtenerFecha()
|
||||||
|
añadirHistorial(historial)
|
||||||
}else{
|
}else{
|
||||||
pedirPermisosPDF()
|
pedirPermisosPDF()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun onEliminarClickListener(position: Int) {
|
||||||
|
val receta = recetas[position]
|
||||||
|
db.eliminarReceta(receta)
|
||||||
|
historial.eventoRealizado = "Se acciono 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]
|
||||||
|
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)
|
||||||
|
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)
|
||||||
|
intent.putExtra("NombrePaciente", nombrePaciente)
|
||||||
|
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
|
// función que valida si los permisos ya estan garantizados por parte del usuario
|
||||||
fun permisosPDF() : Boolean{
|
fun permisosPDF() : Boolean{
|
||||||
val permission1= ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE)
|
val permission1= ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE)
|
||||||
|
@ -149,5 +229,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)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
|
@ -1,32 +1,170 @@
|
||||||
package com.terratenientes.medicalhealth
|
package com.terratenientes.medicalhealth
|
||||||
|
|
||||||
|
import android.Manifest
|
||||||
|
import android.annotation.SuppressLint
|
||||||
|
import android.content.Context
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
|
import android.content.pm.PackageManager
|
||||||
|
import android.os.Build
|
||||||
import androidx.appcompat.app.AppCompatActivity
|
import androidx.appcompat.app.AppCompatActivity
|
||||||
import android.os.Bundle
|
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.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
|
||||||
|
|
||||||
|
@RequiresApi(Build.VERSION_CODES.O)
|
||||||
class PrincipalActivity : AppCompatActivity() {
|
class PrincipalActivity : AppCompatActivity() {
|
||||||
lateinit var binding : ActivityPrincipalBinding
|
lateinit var binding : ActivityPrincipalBinding
|
||||||
|
lateinit var db : DoctorDataBaseHelper
|
||||||
|
private lateinit var dbHistorial: HistorialDataBaseHelper
|
||||||
|
private lateinit var historialList: MutableList<Historial>
|
||||||
|
private lateinit var historial: Historial
|
||||||
|
lateinit var nombreDoctor : String
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
binding = ActivityPrincipalBinding.inflate(layoutInflater)
|
binding = ActivityPrincipalBinding.inflate(layoutInflater)
|
||||||
val view = binding.root
|
val view = binding.root
|
||||||
setContentView(view)
|
setContentView(view)
|
||||||
|
db = DoctorDataBaseHelper(this@PrincipalActivity)
|
||||||
binding.btnAgregarPaciente.setOnClickListener {
|
dbHistorial = HistorialDataBaseHelper(this@PrincipalActivity)
|
||||||
val intent = Intent(this@PrincipalActivity, AgregarActivity::class.java)
|
Log.i("Datos Doctor", intent.getStringExtra("Cedula").toString())
|
||||||
|
historial = Historial("Doctor", null,"Se inicio la actividad de menu principal", obtenerFecha())
|
||||||
|
datosDoctor(intent.getStringExtra("Cedula").toString())
|
||||||
|
añadirHistorial(historial)
|
||||||
|
binding.ivLogout.setOnClickListener {
|
||||||
|
finish()
|
||||||
|
Toast.makeText(this@PrincipalActivity,"Sesión cerrada", Toast.LENGTH_LONG).show()
|
||||||
|
}
|
||||||
|
binding.ivPacientes.setOnClickListener {
|
||||||
|
val intent = Intent(this@PrincipalActivity, PacienteActivity::class.java)
|
||||||
|
intent.putExtra("NombreDoctor", nombreDoctor)
|
||||||
startActivity(intent)
|
startActivity(intent)
|
||||||
|
historial.eventoRealizado = "Se presiono el boton para iniciar la actividad de pacientes"
|
||||||
|
historial.fecha = obtenerFecha()
|
||||||
|
añadirHistorial(historial)
|
||||||
}
|
}
|
||||||
|
|
||||||
binding.btnEliminarPaciente.setOnClickListener {
|
binding.ivRecetas.setOnClickListener {
|
||||||
val intent = Intent(this@PrincipalActivity, EliminarActivity::class.java)
|
val intent = Intent(this@PrincipalActivity, RecetasActivity::class.java)
|
||||||
|
intent.putExtra("NombreDoctor", nombreDoctor)
|
||||||
startActivity(intent)
|
startActivity(intent)
|
||||||
|
historial.eventoRealizado = "Se presiono el boton para iniciar la actividad de recetas"
|
||||||
|
historial.fecha = obtenerFecha()
|
||||||
|
añadirHistorial(historial)
|
||||||
|
}
|
||||||
|
binding.ivHistorial.setOnClickListener {
|
||||||
|
historial.eventoRealizado = "Se presiono el boton para descargar el historial"
|
||||||
|
historial.fecha = obtenerFecha()
|
||||||
|
añadirHistorial(historial)
|
||||||
|
cargarHistorial()
|
||||||
|
exportarCSV(this@PrincipalActivity, historialList)
|
||||||
}
|
}
|
||||||
|
|
||||||
binding.btnAgregarReceta.setOnClickListener {
|
|
||||||
val intent = Intent(this@PrincipalActivity, RecetaActivity::class.java)
|
|
||||||
startActivity(intent)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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}")
|
||||||
|
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)
|
||||||
|
}
|
||||||
|
|
||||||
|
fun exportarCSV(context: Context, historialList: MutableList<Historial>) {
|
||||||
|
//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<Historial> {
|
||||||
|
val historial = mutableListOf<Historial>()
|
||||||
|
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
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -1,23 +1,36 @@
|
||||||
package com.terratenientes.medicalhealth
|
package com.terratenientes.medicalhealth
|
||||||
|
|
||||||
import Adapters.DoctorDataBaseHelper
|
import com.terratenientes.medicalhealth.adapters.RecetaDataBaseHelper
|
||||||
import Adapters.RecetaDataBaseHelper
|
import com.terratenientes.medicalhealth.adapters.DoctorDataBaseHelper
|
||||||
import Data.Receta
|
import com.terratenientes.medicalhealth.data.Receta
|
||||||
import android.annotation.SuppressLint
|
import android.annotation.SuppressLint
|
||||||
|
import android.os.Build
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
|
import android.util.Log
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.widget.AdapterView
|
import android.widget.AdapterView
|
||||||
import android.widget.AdapterView.OnItemSelectedListener
|
import android.widget.AdapterView.OnItemSelectedListener
|
||||||
import android.widget.ArrayAdapter
|
import android.widget.ArrayAdapter
|
||||||
import android.widget.Toast
|
import android.widget.Toast
|
||||||
import androidx.activity.enableEdgeToEdge
|
import androidx.activity.enableEdgeToEdge
|
||||||
|
import androidx.annotation.RequiresApi
|
||||||
import androidx.appcompat.app.AppCompatActivity
|
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.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 {
|
class RecetaActivity : AppCompatActivity(), OnItemSelectedListener {
|
||||||
private lateinit var binding : ActivityRecetaBinding
|
private lateinit var binding : ActivityRecetaBinding
|
||||||
private lateinit var db : RecetaDataBaseHelper
|
private lateinit var db : RecetaDataBaseHelper
|
||||||
private lateinit var dbPaciente : DoctorDataBaseHelper
|
private lateinit var dbPaciente : DoctorDataBaseHelper
|
||||||
|
private lateinit var dbHistorial: HistorialDataBaseHelper
|
||||||
|
private lateinit var historial: Historial
|
||||||
|
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
|
@ -25,14 +38,22 @@ class RecetaActivity : AppCompatActivity(), OnItemSelectedListener {
|
||||||
val view = binding.root
|
val view = binding.root
|
||||||
enableEdgeToEdge()
|
enableEdgeToEdge()
|
||||||
db= RecetaDataBaseHelper(this@RecetaActivity)
|
db= RecetaDataBaseHelper(this@RecetaActivity)
|
||||||
|
dbHistorial = HistorialDataBaseHelper(this@RecetaActivity)
|
||||||
dbPaciente = DoctorDataBaseHelper(this@RecetaActivity)
|
dbPaciente = DoctorDataBaseHelper(this@RecetaActivity)
|
||||||
setContentView(view)
|
setContentView(view)
|
||||||
// db.crearTablaReceta()
|
//db.crearTablaReceta()
|
||||||
cargarSpinnerPacientes()
|
cargarSpinnerPacientes()
|
||||||
|
historial = Historial("Doctor", intent.getStringExtra("NombreDoctor"),"Se inicio la actividad de añadir receta", obtenerFecha())
|
||||||
|
añadirHistorial(historial)
|
||||||
binding.spNombrePaciente.onItemSelectedListener=this
|
binding.spNombrePaciente.onItemSelectedListener=this
|
||||||
binding.btnAgregarReceta.setOnClickListener {
|
binding.btnAgregarReceta.setOnClickListener {
|
||||||
agregarReceta()
|
agregarReceta()
|
||||||
}
|
}
|
||||||
|
binding.tvDatepicker.setOnClickListener{
|
||||||
|
historial.eventoRealizado = "Se dio click en el calendario"
|
||||||
|
historial.fecha = obtenerFecha()
|
||||||
|
showPickerDialog()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@SuppressLint("Range")
|
@SuppressLint("Range")
|
||||||
private fun obtenerNombrePacientes() : ArrayList<String>{
|
private fun obtenerNombrePacientes() : ArrayList<String>{
|
||||||
|
@ -57,12 +78,15 @@ class RecetaActivity : AppCompatActivity(), OnItemSelectedListener {
|
||||||
val edadPaciente = (binding.etEdadPaciente.text.toString()).toInt()
|
val edadPaciente = (binding.etEdadPaciente.text.toString()).toInt()
|
||||||
val pesoPaciente = (binding.etPesoPaciente.text.toString()).toDouble()
|
val pesoPaciente = (binding.etPesoPaciente.text.toString()).toDouble()
|
||||||
val medicamento= binding.etRecetaMedicamento.text.toString()
|
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 dosis = binding.etDosisMedicamento.text.toString()
|
||||||
val duracion= binding.etDuracion.text.toString()
|
val duracion= binding.etDuracion.text.toString()
|
||||||
val receta = Receta(nombrePaciente,edadPaciente,pesoPaciente,medicamento,fecha,dosis,duracion)
|
val receta = Receta(nombrePaciente,edadPaciente,pesoPaciente,medicamento,fecha,dosis,duracion)
|
||||||
db.agregarReceta(receta)
|
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()
|
Toast.makeText(this@RecetaActivity , "RECETA AGREGADA CORRECTAMENTE", Toast.LENGTH_LONG).show()
|
||||||
|
finish()
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onItemSelected(p0: AdapterView<*>?, p1: View?, p2: Int, p3: Long) {
|
override fun onItemSelected(p0: AdapterView<*>?, p1: View?, p2: Int, p3: Long) {
|
||||||
|
@ -74,4 +98,33 @@ class RecetaActivity : AppCompatActivity(), OnItemSelectedListener {
|
||||||
override fun onNothingSelected(p0: AdapterView<*>?) {
|
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"
|
||||||
|
}
|
||||||
|
|
||||||
|
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)
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -0,0 +1,139 @@
|
||||||
|
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 android.widget.Toast
|
||||||
|
import androidx.annotation.RequiresApi
|
||||||
|
import androidx.recyclerview.widget.LinearLayoutManager
|
||||||
|
import com.terratenientes.medicalhealth.adapters.CellClickListener
|
||||||
|
import com.terratenientes.medicalhealth.adapters.HistorialDataBaseHelper
|
||||||
|
import com.terratenientes.medicalhealth.adapters.RecetaDataBaseHelper
|
||||||
|
import com.terratenientes.medicalhealth.adapters.RecetaDoctorViewAdapter
|
||||||
|
import com.terratenientes.medicalhealth.adapters.RecetaViewAdapter
|
||||||
|
import com.terratenientes.medicalhealth.data.Historial
|
||||||
|
import com.terratenientes.medicalhealth.data.Receta
|
||||||
|
import com.terratenientes.medicalhealth.databinding.ActivityRecetasBinding
|
||||||
|
import java.time.ZoneId
|
||||||
|
import java.time.ZonedDateTime
|
||||||
|
import java.time.format.DateTimeFormatter
|
||||||
|
|
||||||
|
|
||||||
|
@RequiresApi(Build.VERSION_CODES.O)
|
||||||
|
class RecetasActivity : AppCompatActivity(), CellClickListener {
|
||||||
|
lateinit var binding: ActivityRecetasBinding
|
||||||
|
private lateinit var db: RecetaDataBaseHelper
|
||||||
|
private lateinit var recycleAdapter : RecetaDoctorViewAdapter
|
||||||
|
private lateinit var recetas : List<Receta>
|
||||||
|
lateinit var dbHistorial: HistorialDataBaseHelper
|
||||||
|
lateinit var historial: Historial
|
||||||
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
|
super.onCreate(savedInstanceState)
|
||||||
|
binding = ActivityRecetasBinding.inflate(layoutInflater)
|
||||||
|
val view = binding.root
|
||||||
|
setContentView(view)
|
||||||
|
db= RecetaDataBaseHelper(this@RecetasActivity)
|
||||||
|
dbHistorial = HistorialDataBaseHelper(this@RecetasActivity)
|
||||||
|
historial = Historial("Doctor", intent.getStringExtra("NombreDoctor"),"Se inicio la actividad de recetas", obtenerFecha())
|
||||||
|
añadirHistorial(historial)
|
||||||
|
recycleAdapter = RecetaDoctorViewAdapter(db.obtenerRecetas(), this, this@RecetasActivity)
|
||||||
|
binding.rvRecetas.layoutManager= LinearLayoutManager(this@RecetasActivity)
|
||||||
|
binding.rvRecetas.adapter= recycleAdapter
|
||||||
|
binding.ivAgregarReceta.setOnClickListener {
|
||||||
|
val intent = Intent(this@RecetasActivity, RecetaActivity::class.java)
|
||||||
|
historial.eventoRealizado = "Se pulso el boton para agregar una receta"
|
||||||
|
historial.fecha = obtenerFecha()
|
||||||
|
añadirHistorial(historial)
|
||||||
|
startActivity(intent)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onResume() {
|
||||||
|
super.onResume()
|
||||||
|
recycleAdapter.refreshData(db.obtenerRecetas())
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onCellClickListener(position: Int) {
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onEliminarClickListener(position: Int) {
|
||||||
|
val receta = recetas[position]
|
||||||
|
db.eliminarReceta(receta)
|
||||||
|
historial.eventoRealizado = "Se acciono el boton de eliminar la receta"
|
||||||
|
historial.fecha = obtenerFecha()
|
||||||
|
añadirHistorial(historial)
|
||||||
|
recycleAdapter.refreshData(db.obtenerRecetas())
|
||||||
|
Toast.makeText(this, "Receta eliminada correctamente", Toast.LENGTH_SHORT).show()
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onModifyClickListener(position: Int) {
|
||||||
|
val receta = recetas[position]
|
||||||
|
historial.eventoRealizado = "Se acciono el boton de iniciar la actividad de modificar receta"
|
||||||
|
historial.fecha = obtenerFecha()
|
||||||
|
añadirHistorial(historial)
|
||||||
|
val intent = Intent(this@RecetasActivity, 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()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
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)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -1,35 +1,122 @@
|
||||||
package com.terratenientes.medicalhealth
|
package com.terratenientes.medicalhealth
|
||||||
|
|
||||||
import Adapters.DoctorDataBaseHelper
|
import android.os.Build
|
||||||
import Data.Doctor
|
import com.terratenientes.medicalhealth.adapters.DoctorDataBaseHelper
|
||||||
|
import com.terratenientes.medicalhealth.data.Doctor
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
|
import android.util.Log
|
||||||
import android.widget.Toast
|
import android.widget.Toast
|
||||||
|
import androidx.annotation.RequiresApi
|
||||||
import androidx.appcompat.app.AppCompatActivity
|
import androidx.appcompat.app.AppCompatActivity
|
||||||
|
import com.terratenientes.medicalhealth.adapters.HistorialDataBaseHelper
|
||||||
|
import com.terratenientes.medicalhealth.data.Historial
|
||||||
import com.terratenientes.medicalhealth.databinding.ActivityRegistrarDactivityBinding
|
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() {
|
class RegistrarDActivity : AppCompatActivity() {
|
||||||
private lateinit var binding : ActivityRegistrarDactivityBinding
|
private lateinit var binding : ActivityRegistrarDactivityBinding
|
||||||
private lateinit var db : DoctorDataBaseHelper
|
private lateinit var db : DoctorDataBaseHelper
|
||||||
|
private lateinit var dbHistorial: HistorialDataBaseHelper
|
||||||
|
private lateinit var historial: Historial
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
binding = ActivityRegistrarDactivityBinding.inflate(layoutInflater)
|
binding = ActivityRegistrarDactivityBinding.inflate(layoutInflater)
|
||||||
val view = binding.root
|
val view = binding.root
|
||||||
setContentView(view)
|
setContentView(view)
|
||||||
db= DoctorDataBaseHelper(this@RegistrarDActivity)
|
dbHistorial = HistorialDataBaseHelper(this@RegistrarDActivity)
|
||||||
|
historial = Historial(null, null, "Se abrio la actividad de registro", obtenerFecha())
|
||||||
|
añadirHistorial(historial)
|
||||||
|
db = DoctorDataBaseHelper(this@RegistrarDActivity)
|
||||||
|
|
||||||
binding.btnRegistrar.setOnClickListener {
|
binding.btnRegistrar.setOnClickListener {
|
||||||
|
if (validarCampos()) {
|
||||||
registrarUsuario()
|
registrarUsuario()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
private fun registrarUsuario(){
|
}
|
||||||
val cedula=binding.etCedelaRegistro.text.toString()
|
private fun validarCampos(): Boolean {
|
||||||
val nombre=binding.etNombreRegistro.text.toString()
|
val cedula = binding.etCedelaRegistro.text.toString()
|
||||||
val apellido=binding.etApellidoRegistro.text.toString()
|
val nombre = binding.etNombreRegistro.text.toString()
|
||||||
val telefono=binding.etTelefonoRegisto.text.toString()
|
val apellido = binding.etApellidoRegistro.text.toString()
|
||||||
|
val telefono = binding.etTelefonoRegisto.text.toString()
|
||||||
val domicilio = binding.etDomicilio.text.toString()
|
val domicilio = binding.etDomicilio.text.toString()
|
||||||
val contrasena= binding.etContrasenaRegistro.text.toString()
|
val contrasena= binding.etContrasenaRegistro.text.toString()
|
||||||
val usuario= Doctor(cedula,nombre,apellido,telefono,domicilio.toInt())
|
val usuario= Doctor(cedula,nombre,apellido,telefono,domicilio.toInt())
|
||||||
db.agregarDoctores(usuario,contrasena)
|
/*db.agregarDoctores(usuario,contrasena)
|
||||||
Toast.makeText(this@RegistrarDActivity,"USUARIO AGREGADO",Toast.LENGTH_LONG).show()
|
Toast.makeText(this@RegistrarDActivity,"USUARIO AGREGADO",Toast.LENGTH_LONG).show()*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
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)
|
||||||
|
historial.eventoRealizado = "Se registraron los datos de un doctor"
|
||||||
|
historial.fecha = obtenerFecha()
|
||||||
|
historial.tipoUsuario = "Doctor"
|
||||||
|
historial.nombreUsuario = nombre
|
||||||
|
añadirHistorial(historial)
|
||||||
|
|
||||||
|
Toast.makeText(this@RegistrarDActivity, "USUARIO AGREGADO", Toast.LENGTH_LONG).show()
|
||||||
finish()
|
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)
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -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)
|
||||||
|
}
|
|
@ -1,14 +1,13 @@
|
||||||
package Adapters
|
package com.terratenientes.medicalhealth.adapters
|
||||||
|
|
||||||
import android.annotation.SuppressLint
|
import android.annotation.SuppressLint
|
||||||
import android.content.ContentValues
|
import android.content.ContentValues
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.database.sqlite.SQLiteDatabase
|
import android.database.sqlite.SQLiteDatabase
|
||||||
import android.database.sqlite.SQLiteOpenHelper
|
import android.database.sqlite.SQLiteOpenHelper
|
||||||
import Data.Doctor
|
import com.terratenientes.medicalhealth.data.Doctor
|
||||||
import Data.Paciente
|
import com.terratenientes.medicalhealth.data.Paciente
|
||||||
import android.database.Cursor
|
import com.terratenientes.medicalhealth.data.Receta
|
||||||
import android.widget.Toast
|
|
||||||
|
|
||||||
class DoctorDataBaseHelper (context: Context) : SQLiteOpenHelper(context, DATABASE_NAME,null,
|
class DoctorDataBaseHelper (context: Context) : SQLiteOpenHelper(context, DATABASE_NAME,null,
|
||||||
DATABASE_VERSION
|
DATABASE_VERSION
|
||||||
|
@ -53,6 +52,7 @@ class DoctorDataBaseHelper (context: Context) : SQLiteOpenHelper(context, DATABA
|
||||||
val dropTablePacientes = "DROP TABLE IF EXISTS $TABLE_PACIENTES"
|
val dropTablePacientes = "DROP TABLE IF EXISTS $TABLE_PACIENTES"
|
||||||
db?.execSQL(dropTablePacientes)
|
db?.execSQL(dropTablePacientes)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun crearTablaPacientes(){
|
fun crearTablaPacientes(){
|
||||||
val db=writableDatabase
|
val db=writableDatabase
|
||||||
val crearTablaPacientes =
|
val crearTablaPacientes =
|
||||||
|
@ -75,6 +75,25 @@ class DoctorDataBaseHelper (context: Context) : SQLiteOpenHelper(context, DATABA
|
||||||
db.insert(TABLE_NAME,null, values)
|
db.insert(TABLE_NAME,null, values)
|
||||||
db.close()
|
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) {
|
fun agregarPaciente(paciente: Paciente) {
|
||||||
val db = writableDatabase
|
val db = writableDatabase
|
||||||
val values = ContentValues().apply {
|
val values = ContentValues().apply {
|
||||||
|
@ -86,10 +105,17 @@ class DoctorDataBaseHelper (context: Context) : SQLiteOpenHelper(context, DATABA
|
||||||
put(COLUMN_DOMICILIO, paciente.domicilio)
|
put(COLUMN_DOMICILIO, paciente.domicilio)
|
||||||
}
|
}
|
||||||
db.insert(TABLE_PACIENTES, null, values)
|
db.insert(TABLE_PACIENTES, null, values)
|
||||||
print("ID DEL PACIENTE AGREGADO: "+COLUMN_ID_PACIENTE)
|
print("ID DEL PACIENTE AGREGADO: "+ COLUMN_ID_PACIENTE)
|
||||||
db.close()
|
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){
|
fun modificarPaciente(paciente: Paciente){
|
||||||
val db = writableDatabase
|
val db = writableDatabase
|
||||||
val values = ContentValues().apply {
|
val values = ContentValues().apply {
|
||||||
|
@ -167,5 +193,24 @@ class DoctorDataBaseHelper (context: Context) : SQLiteOpenHelper(context, DATABA
|
||||||
return edadPaciente
|
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
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
|
@ -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
|
||||||
|
val TABLE_NAME = "Historial"
|
||||||
|
//LUEGO VAN LAS COLUMNAS DE ESA TABLA
|
||||||
|
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))"
|
||||||
|
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
|
||||||
|
}
|
||||||
|
}
|
|
@ -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.content.Context
|
||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
import android.view.View
|
import android.view.View
|
|
@ -0,0 +1,60 @@
|
||||||
|
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)
|
||||||
|
val tvId: TextView = itemView.findViewById(R.id.tv_id_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 = "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)
|
||||||
|
}
|
||||||
|
holder.ivModificar.setOnClickListener {
|
||||||
|
cellClickListener.onModifyClickListener(position)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fun refreshData(newNotes: List<Paciente>) {
|
||||||
|
this.notes = newNotes
|
||||||
|
notifyDataSetChanged()
|
||||||
|
}
|
||||||
|
}
|
|
@ -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.content.Context
|
||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
import android.view.View
|
import android.view.View
|
|
@ -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.annotation.SuppressLint
|
||||||
import android.content.ContentValues
|
import android.content.ContentValues
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.database.Cursor
|
|
||||||
import android.database.sqlite.SQLiteDatabase
|
import android.database.sqlite.SQLiteDatabase
|
||||||
import android.database.sqlite.SQLiteOpenHelper
|
import android.database.sqlite.SQLiteOpenHelper
|
||||||
|
import android.util.Log
|
||||||
|
import com.terratenientes.medicalhealth.data.Paciente
|
||||||
|
|
||||||
class RecetaDataBaseHelper(context: Context) : SQLiteOpenHelper(context, DATABAENAME, null, DATABASEVERSION){
|
class RecetaDataBaseHelper(context: Context) : SQLiteOpenHelper(context, DATABAENAME, null, DATABASEVERSION){
|
||||||
companion object{
|
companion object{
|
||||||
|
@ -92,11 +93,49 @@ class RecetaDataBaseHelper(context: Context) : SQLiteOpenHelper(context, DATABAE
|
||||||
return recetas
|
return recetas
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SuppressLint("Range")
|
||||||
|
fun obtenerRecetas(): List<Receta> {
|
||||||
|
val recetas = mutableListOf<Receta>()
|
||||||
|
val db = readableDatabase
|
||||||
|
val cursor = db.rawQuery("SELECT * FROM $TABLE_NAME", null)
|
||||||
|
while (cursor.moveToNext()) {
|
||||||
|
val nombrePaciente = cursor.getString(cursor.getColumnIndex(COLUMN_NOMBRE_PACIENTE))
|
||||||
|
val edadPaciente = cursor.getInt(cursor.getColumnIndex(COLUMN_EDAD_PACIENTE))
|
||||||
|
val pesoPaciente = cursor.getDouble(cursor.getColumnIndex(COLUMN_PESO_PACIENTE))
|
||||||
|
val medicamento = cursor.getString(cursor.getColumnIndex(COLUMN_MEDICAMENTO))
|
||||||
|
val fecha = cursor.getString(cursor.getColumnIndex(COLUMN_FECHA))
|
||||||
|
val dosis = cursor.getString(cursor.getColumnIndex(COLUMN_DOSIS_PACIENTE))
|
||||||
|
val duracion = cursor.getString(cursor.getColumnIndex(DURACION_MEDICAMENTO))
|
||||||
|
val receta = Receta(nombrePaciente, edadPaciente, pesoPaciente, medicamento, fecha, dosis, duracion)
|
||||||
|
recetas.add(receta)
|
||||||
|
}
|
||||||
|
cursor.close()
|
||||||
|
return recetas
|
||||||
|
}
|
||||||
|
|
||||||
fun eliminarReceta(receta: Receta) {
|
fun eliminarReceta(receta: Receta) {
|
||||||
|
Log.d("RecetaDataBaseHelper", "Eliminando receta: ${receta.NombrePaciente}, ${receta.fecha}")
|
||||||
val db = writableDatabase
|
val db = writableDatabase
|
||||||
db.delete(TABLE_NAME, "$COLUMN_NOMBRE_PACIENTE = ? AND $COLUMN_FECHA = ?", arrayOf(receta.NombrePaciente, receta.fecha))
|
db.delete(TABLE_NAME, "$COLUMN_NOMBRE_PACIENTE = ? AND $COLUMN_FECHA = ?", arrayOf(receta.NombrePaciente, receta.fecha))
|
||||||
db.close()
|
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(){
|
fun crearTablaReceta(){
|
||||||
val db=writableDatabase
|
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), " +
|
val creatTabla="CREATE TABLE $TABLE_NAME ($COLUMN_NOMBRE_PACIENTE VARCHAR(30), $COLUMN_EDAD_PACIENTE INT, $COLUMN_PESO_PACIENTE INT, $COLUMN_FECHA VARCHAR(30), " +
|
|
@ -0,0 +1,62 @@
|
||||||
|
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.Receta
|
||||||
|
|
||||||
|
class RecetaDoctorViewAdapter(private var notes : List<Receta>, context: Context, val cellClickListener: CellClickListener) :
|
||||||
|
RecyclerView.Adapter<RecetaDoctorViewAdapter.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 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)
|
||||||
|
val duracionReceta : TextView = itemView.findViewById(R.id.tv_duracion_receta)
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): NoteViewHolder {
|
||||||
|
val view = LayoutInflater.from(parent.context).inflate(R.layout.rc_receta_medico_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.tituloReceta.text = note.nombreMedicamento
|
||||||
|
holder.fechaReceta.text = note.fecha
|
||||||
|
holder.dosisReceta.text=note.dosis
|
||||||
|
holder.duracionReceta.text=note.duracion
|
||||||
|
holder.nombreReceta.text=note.NombrePaciente
|
||||||
|
holder.pesoReceta.text= note.pesoPaciente.toString()
|
||||||
|
holder.edadReceta.text=note.edadPaciente.toString()
|
||||||
|
holder.btnEliminar.setOnClickListener{
|
||||||
|
cellClickListener.onEliminarClickListener(position)
|
||||||
|
}
|
||||||
|
holder.btnModificar.setOnClickListener {
|
||||||
|
cellClickListener.onModifyClickListener(position)
|
||||||
|
}
|
||||||
|
holder.btnEnviar.setOnClickListener{
|
||||||
|
cellClickListener.onEnviarCorreoClickListener(position)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fun refreshData( newNotes : List<Receta>){
|
||||||
|
this.notes=newNotes
|
||||||
|
notifyDataSetChanged()
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,24 +1,24 @@
|
||||||
package Adapters
|
package com.terratenientes.medicalhealth.adapters
|
||||||
|
|
||||||
import Data.Receta
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
import android.widget.AdapterView.OnItemClickListener
|
|
||||||
import android.widget.Button
|
import android.widget.Button
|
||||||
|
import android.widget.ImageView
|
||||||
import android.widget.TextView
|
import android.widget.TextView
|
||||||
import android.widget.Toast
|
|
||||||
import androidx.recyclerview.widget.RecyclerView
|
import androidx.recyclerview.widget.RecyclerView
|
||||||
import com.terratenientes.medicalhealth.R
|
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>() {
|
RecyclerView.Adapter<RecetaViewAdapter.NoteViewHolder>() {
|
||||||
class NoteViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView){
|
class NoteViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView){
|
||||||
val tituloReceta : TextView = itemView.findViewById(R.id.tv_titulo_receta)
|
val tituloReceta : TextView = itemView.findViewById(R.id.tv_titulo_receta)
|
||||||
val fechaReceta : TextView = itemView.findViewById(R.id.tv_fecha_receta)
|
val fechaReceta : TextView = itemView.findViewById(R.id.tv_fecha_receta)
|
||||||
val nombreReceta : TextView = itemView.findViewById(R.id.tv_nombre_paciente)
|
val nombreReceta : TextView = itemView.findViewById(R.id.tv_nombre_paciente)
|
||||||
val btnDescargar : Button = itemView.findViewById(R.id.btn_descargar_receta)
|
val btnDescargar : ImageView = itemView.findViewById(R.id.iv_descargar_receta)
|
||||||
|
val btnEnviar : ImageView = itemView.findViewById(R.id.iv_correo_receta)
|
||||||
val pesoReceta : TextView = itemView.findViewById(R.id.tv_peso_paciente)
|
val pesoReceta : TextView = itemView.findViewById(R.id.tv_peso_paciente)
|
||||||
val edadReceta : TextView = itemView.findViewById(R.id.tv_edad_paciente)
|
val edadReceta : TextView = itemView.findViewById(R.id.tv_edad_paciente)
|
||||||
val dosisReceta : TextView=itemView.findViewById(R.id.tv_dosis_medicamento)
|
val dosisReceta : TextView=itemView.findViewById(R.id.tv_dosis_medicamento)
|
||||||
|
@ -47,6 +47,9 @@ class RecetaViewAdapter(private var notes : List<Receta>, context: Context,val c
|
||||||
holder.btnDescargar.setOnClickListener{
|
holder.btnDescargar.setOnClickListener{
|
||||||
cellClickListener.onCellClickListener(position)
|
cellClickListener.onCellClickListener(position)
|
||||||
}
|
}
|
||||||
|
holder.btnEnviar.setOnClickListener{
|
||||||
|
cellClickListener.onEnviarCorreoClickListener(position)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun refreshData( newNotes : List<Receta>){
|
fun refreshData( newNotes : List<Receta>){
|
|
@ -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)
|
data class Doctor(var Cedula : String ,var Nombre : String, var Apellido : String, var Telefono : String, var Consultorio : Int)
|
|
@ -0,0 +1,8 @@
|
||||||
|
package com.terratenientes.medicalhealth.data
|
||||||
|
|
||||||
|
data class Historial(
|
||||||
|
var tipoUsuario: String?,
|
||||||
|
var nombreUsuario: String?,
|
||||||
|
var eventoRealizado: String?,
|
||||||
|
var fecha: String?
|
||||||
|
)
|
|
@ -1,4 +1,4 @@
|
||||||
package Data
|
package com.terratenientes.medicalhealth.data
|
||||||
|
|
||||||
data class Paciente(
|
data class Paciente(
|
||||||
var id: Int, // Este campo representa el ID autoincrementable en la base de datos
|
var id: Int, // Este campo representa el ID autoincrementable en la base de datos
|
|
@ -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)
|
data class Receta(var NombrePaciente : String, var edadPaciente : Int, var pesoPaciente: Double, var nombreMedicamento : String, var fecha : String, var dosis : String, var duracion :String)
|
|
@ -1,4 +1,4 @@
|
||||||
package Reports
|
package com.terratenientes.medicalhealth.reports
|
||||||
|
|
||||||
import android.Manifest
|
import android.Manifest
|
||||||
import android.annotation.SuppressLint
|
import android.annotation.SuppressLint
|
||||||
|
@ -11,10 +11,10 @@ import android.os.Environment
|
||||||
import android.widget.Toast
|
import android.widget.Toast
|
||||||
import androidx.core.app.ActivityCompat
|
import androidx.core.app.ActivityCompat
|
||||||
import androidx.core.content.ContextCompat
|
import androidx.core.content.ContextCompat
|
||||||
import Adapters.DoctorDataBaseHelper
|
import com.terratenientes.medicalhealth.adapters.DoctorDataBaseHelper
|
||||||
import com.terratenientes.medicalhealth.ModificarActivity
|
import com.terratenientes.medicalhealth.ModificarActivity
|
||||||
import Data.Paciente
|
import com.terratenientes.medicalhealth.data.Paciente
|
||||||
import Adapters.PacienteAdapter
|
import com.terratenientes.medicalhealth.adapters.PacienteAdapter
|
||||||
import com.terratenientes.medicalhealth.R
|
import com.terratenientes.medicalhealth.R
|
||||||
import com.terratenientes.medicalhealth.databinding.ActivityConsultarPacientesBinding
|
import com.terratenientes.medicalhealth.databinding.ActivityConsultarPacientesBinding
|
||||||
import java.io.File
|
import java.io.File
|
||||||
|
@ -99,6 +99,7 @@ class ConsultarPacientesActivity : AppCompatActivity() {
|
||||||
|
|
||||||
// Escribir los datos en el archivo CSV
|
// Escribir los datos en el archivo CSV
|
||||||
val writer = FileWriter(archivoCSV)
|
val writer = FileWriter(archivoCSV)
|
||||||
|
writer.append("Nombre, Apellido Paterno, Apellido Materno, Edad, Sexo\n")
|
||||||
for (paciente in pacientesList) {
|
for (paciente in pacientesList) {
|
||||||
writer.append("${paciente.nombre},${paciente.apellidoPaterno},${paciente.apellidoMaterno},${paciente.edad},${paciente.sexo}\n")
|
writer.append("${paciente.nombre},${paciente.apellidoPaterno},${paciente.apellidoMaterno},${paciente.edad},${paciente.sexo}\n")
|
||||||
}
|
}
|
|
@ -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)
|
||||||
|
}
|
||||||
|
}
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -4,6 +4,6 @@
|
||||||
android:viewportWidth="24.0"
|
android:viewportWidth="24.0"
|
||||||
android:viewportHeight="24.0">
|
android:viewportHeight="24.0">
|
||||||
<path
|
<path
|
||||||
android:fillColor="#FF000000"
|
android:fillColor="#FFFFFFFF"
|
||||||
android:pathData="M10,20v-6h4v6h5v-8h3L12,3 2,12h3v8z" />
|
android:pathData="M10,20v-6h4v6h5v-8h3L12,3 2,12h3v8z" />
|
||||||
</vector>
|
</vector>
|
||||||
|
|
|
@ -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="M17,7L15.59,8.41L18.17,11H8V13H18.17L15.59,15.58L17,17L22,12M4,5H12V3H4C2.9,3 2,3.9 2,5V19C2,20.1 2.9,21 4,21H12V19H4V5Z"/>
|
||||||
|
</vector>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -18,13 +18,6 @@
|
||||||
android:gravity="center"
|
android:gravity="center"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<ImageView
|
|
||||||
android:layout_width="200dp"
|
|
||||||
android:layout_height="150dp"
|
|
||||||
android:layout_marginTop="25dp"
|
|
||||||
android:layout_gravity="center_horizontal"
|
|
||||||
android:src="@drawable/image_area"/>
|
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
@ -121,17 +114,5 @@
|
||||||
android:background="@drawable/radius_btn"
|
android:background="@drawable/radius_btn"
|
||||||
android:text="@string/bt_agregar" />
|
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>
|
</LinearLayout>
|
||||||
|
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:orientation="vertical"
|
android:orientation="vertical"
|
||||||
tools:context="Reports.ConsultarPacientesActivity">
|
tools:context=".reports.ConsultarPacientesActivity">
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
|
|
|
@ -40,6 +40,7 @@
|
||||||
android:text="@string/bt_eliminar" />
|
android:text="@string/bt_eliminar" />
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
|
android:id="@+id/btn_cancelar"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="@string/bt_cancelar"
|
android:text="@string/bt_cancelar"
|
||||||
|
|
|
@ -40,6 +40,7 @@
|
||||||
android:text="@string/bt_eliminar" />
|
android:text="@string/bt_eliminar" />
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
|
android:id="@+id/btn_cancelarr"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="@string/bt_cancelar"
|
android:text="@string/bt_cancelar"
|
||||||
|
|
|
@ -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>
|
|
@ -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>
|
|
@ -7,14 +7,21 @@
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
tools:context=".PacientePrincipalActivity">
|
tools:context=".PacientePrincipalActivity">
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/iv_logout"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:paddingStart="350dp"
|
||||||
|
android:src="@drawable/logout"/>
|
||||||
|
|
||||||
|
|
||||||
<androidx.recyclerview.widget.RecyclerView
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
android:id="@+id/rv_recetas_paciente"
|
android:id="@+id/rv_recetas_paciente"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:scrollbars="vertical"
|
android:scrollbars="vertical"
|
||||||
tools:listitem="@layout/rc_receta_item"
|
android:layout_below="@id/iv_logout"
|
||||||
/>
|
tools:listitem="@layout/rc_receta_item" />
|
||||||
|
|
||||||
|
|
||||||
</RelativeLayout>
|
</RelativeLayout>
|
|
@ -7,22 +7,155 @@
|
||||||
android:orientation="vertical"
|
android:orientation="vertical"
|
||||||
tools:context="PrincipalActivity">
|
tools:context="PrincipalActivity">
|
||||||
|
|
||||||
<Button
|
<LinearLayout
|
||||||
android:id="@+id/btn_agregar_paciente"
|
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="40dp"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
<TextView
|
||||||
|
android:layout_width="350dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="@string/tv_agregar_paciente_titulo"/>
|
android:text="@string/app_name"
|
||||||
<Button
|
android:paddingStart="50dp"
|
||||||
android:id="@+id/btn_eliminar_paciente"
|
android:gravity="center"
|
||||||
android:layout_width="match_parent"
|
android:textColor="@color/primaryColor"
|
||||||
|
android:textSize="30dp"/>
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/iv_logout"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="@string/eliminar_paciente_titulo"/>
|
android:layout_marginStart="10dp"
|
||||||
<Button
|
android:src="@drawable/logout"
|
||||||
android:id="@+id/btn_agregar_receta"
|
android:layout_gravity="center_vertical"/>
|
||||||
android:layout_width="match_parent"
|
</LinearLayout>
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:text="@string/btn_agregar_receta"/>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<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: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:background="@drawable/radius_tv"
|
||||||
|
android:backgroundTint="@color/primaryColor"
|
||||||
|
android:layout_marginTop="130dp"
|
||||||
|
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>
|
</LinearLayout>
|
|
@ -51,15 +51,36 @@
|
||||||
android:hint="@string/receta_medicamento"
|
android:hint="@string/receta_medicamento"
|
||||||
android:layout_gravity="center_horizontal"
|
android:layout_gravity="center_horizontal"
|
||||||
/>
|
/>
|
||||||
<EditText
|
<GridLayout
|
||||||
android:id="@+id/et_fecha"
|
|
||||||
android:layout_marginTop="10dp"
|
|
||||||
android:layout_width="300dp"
|
android:layout_width="300dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_gravity="center"
|
||||||
|
android:columnCount="2"
|
||||||
|
android:rowCount="1">
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/tv_fecha"
|
||||||
|
android:layout_marginTop="10dp"
|
||||||
|
android:layout_width="200dp"
|
||||||
|
android:layout_height="match_parent"
|
||||||
android:hint="@string/receta_fecha_paciente"
|
android:hint="@string/receta_fecha_paciente"
|
||||||
android:layout_gravity="center_horizontal"
|
android:layout_gravity="center_horizontal"
|
||||||
|
android:textSize="20sp"
|
||||||
android:inputType="date"
|
android:inputType="date"
|
||||||
/>
|
android:layout_columnWeight="0"
|
||||||
|
android:layout_column="0"
|
||||||
|
android:layout_row="0"/>
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/tv_datepicker"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:layout_width="100dp"
|
||||||
|
android:layout_marginTop="10dp"
|
||||||
|
android:textColor="@color/primaryColor"
|
||||||
|
android:text="calendario"
|
||||||
|
android:textSize="20sp"
|
||||||
|
android:layout_columnWeight="1"
|
||||||
|
android:layout_column="1"
|
||||||
|
android:layout_row="0"/>
|
||||||
|
</GridLayout>
|
||||||
<EditText
|
<EditText
|
||||||
android:id="@+id/et_dosis_medicamento"
|
android:id="@+id/et_dosis_medicamento"
|
||||||
android:layout_marginTop="10dp"
|
android:layout_marginTop="10dp"
|
||||||
|
|
|
@ -0,0 +1,24 @@
|
||||||
|
<?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=".RecetasActivity">
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/iv_agregar_receta"
|
||||||
|
android:layout_width="45dp"
|
||||||
|
android:layout_height="35dp"
|
||||||
|
android:layout_margin="20dp"
|
||||||
|
android:src="@drawable/plus_circle_outline"
|
||||||
|
android:layout_gravity="start"/>
|
||||||
|
|
||||||
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
|
android:id="@+id/rv_recetas"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:layout_margin="20dp"/>
|
||||||
|
|
||||||
|
</LinearLayout>
|
|
@ -42,6 +42,7 @@
|
||||||
android:layout_marginBottom="20dp"
|
android:layout_marginBottom="20dp"
|
||||||
android:background="@drawable/radius_tv"
|
android:background="@drawable/radius_tv"
|
||||||
android:layout_gravity="center_horizontal"
|
android:layout_gravity="center_horizontal"
|
||||||
|
android:inputType="text"
|
||||||
|
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
@ -56,6 +57,7 @@
|
||||||
android:layout_marginBottom="20dp"
|
android:layout_marginBottom="20dp"
|
||||||
android:background="@drawable/radius_tv"
|
android:background="@drawable/radius_tv"
|
||||||
android:textColorHint="@color/black"
|
android:textColorHint="@color/black"
|
||||||
|
android:inputType="text"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<EditText
|
<EditText
|
||||||
|
@ -69,6 +71,9 @@
|
||||||
android:layout_marginBottom="20dp"
|
android:layout_marginBottom="20dp"
|
||||||
android:background="@drawable/radius_tv"
|
android:background="@drawable/radius_tv"
|
||||||
android:textColorHint="@color/black"
|
android:textColorHint="@color/black"
|
||||||
|
android:inputType="phone"
|
||||||
|
android:maxLength="15"
|
||||||
|
android:digits="0123456789"
|
||||||
/>
|
/>
|
||||||
<EditText
|
<EditText
|
||||||
android:layout_gravity="center_horizontal"
|
android:layout_gravity="center_horizontal"
|
||||||
|
@ -96,6 +101,7 @@
|
||||||
android:background="@drawable/radius_tv"
|
android:background="@drawable/radius_tv"
|
||||||
android:hint="@string/et_contrasena_registrar"
|
android:hint="@string/et_contrasena_registrar"
|
||||||
android:textColorHint="@color/black"
|
android:textColorHint="@color/black"
|
||||||
|
android:maxLength="12"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
|
|
|
@ -0,0 +1,132 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="100dp"
|
||||||
|
android:layout_margin="10dp"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
|
android:orientation="vertical"
|
||||||
|
app:cardCornerRadius="20dp"
|
||||||
|
app:cardElevation="8dp">
|
||||||
|
|
||||||
|
<androidx.constraintlayout.widget.ConstraintLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/tv_nombre"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginStart="16dp"
|
||||||
|
android:layout_marginTop="32dp"
|
||||||
|
android:text="@string/ht_nombre"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="parent" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/tv_apellido_paterno"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
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" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/tv_apellido_materno"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_row="0"
|
||||||
|
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" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/tv_edad"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_row="1"
|
||||||
|
android:layout_column="0"
|
||||||
|
android:layout_columnWeight="1"
|
||||||
|
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" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/tv_domicilio"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_row="1"
|
||||||
|
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" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/tv_sexo"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_row="1"
|
||||||
|
android:layout_column="1"
|
||||||
|
android:layout_columnWeight="1"
|
||||||
|
android:layout_marginStart="8dp"
|
||||||
|
android:text="@string/et_modificar_sexo"
|
||||||
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
app:layout_constraintStart_toEndOf="@+id/tv_domicilio"
|
||||||
|
app:layout_constraintTop_toBottomOf="@+id/tv_apellido_paterno"
|
||||||
|
app:layout_constraintVertical_bias="0.2" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/tv_id_paciente"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginStart="24dp"
|
||||||
|
android:text="Id"
|
||||||
|
app:layout_constraintBottom_toTopOf="@+id/tv_nombre"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="parent"
|
||||||
|
app:layout_constraintVertical_bias="0.384" />
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/iv_modificar_paciente"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_row="2"
|
||||||
|
android:layout_column="1"
|
||||||
|
android:layout_columnWeight="1"
|
||||||
|
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" />
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/iv_eliminar_paciente"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_row="2"
|
||||||
|
android:layout_column="2"
|
||||||
|
android:layout_columnWeight="1"
|
||||||
|
android:layout_marginTop="60dp"
|
||||||
|
android:layout_marginEnd="16dp"
|
||||||
|
android:src="@drawable/delete"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="parent" />
|
||||||
|
|
||||||
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
|
|
||||||
|
</androidx.cardview.widget.CardView>
|
|
@ -63,22 +63,38 @@
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toTopOf="parent" />
|
app:layout_constraintTop_toTopOf="parent" />
|
||||||
|
|
||||||
<Button
|
<ImageView
|
||||||
android:id="@+id/btn_descargar_receta"
|
android:id="@+id/iv_descargar_receta"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginStart="243dp"
|
android:layout_marginStart="243dp"
|
||||||
android:layout_marginTop="13dp"
|
android:layout_marginTop="2dp"
|
||||||
android:layout_marginEnd="24dp"
|
android:layout_marginEnd="24dp"
|
||||||
android:layout_marginBottom="10dp"
|
android:layout_marginBottom="10dp"
|
||||||
android:text="Descargar"
|
android:src="@drawable/download"
|
||||||
android:textSize="12sp"
|
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintHorizontal_bias="1.0"
|
app:layout_constraintHorizontal_bias="1.0"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toTopOf="parent"
|
app:layout_constraintTop_toTopOf="parent"
|
||||||
app:layout_constraintVertical_bias="0.487" />
|
app:layout_constraintVertical_bias="0.243" />
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/iv_correo_receta"
|
||||||
|
android:layout_width="14dp"
|
||||||
|
android:layout_height="14dp"
|
||||||
|
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.831"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="parent"
|
||||||
|
app:layout_constraintVertical_bias="0.522"
|
||||||
|
app:srcCompat="@android:drawable/ic_dialog_email" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/tv_peso_paciente"
|
android:id="@+id/tv_peso_paciente"
|
||||||
|
|
|
@ -0,0 +1,165 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="110dp"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
|
android:layout_marginEnd="12dp"
|
||||||
|
android:layout_marginHorizontal="10dp"
|
||||||
|
android:layout_marginVertical="10dp"
|
||||||
|
app:cardCornerRadius="20dp"
|
||||||
|
app:cardElevation="8dp"
|
||||||
|
android:layout_marginStart="12dp">
|
||||||
|
|
||||||
|
<androidx.constraintlayout.widget.ConstraintLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/tv_nombre_paciente"
|
||||||
|
android:layout_width="117dp"
|
||||||
|
android:layout_height="15dp"
|
||||||
|
android:layout_marginStart="14dp"
|
||||||
|
android:layout_marginTop="20dp"
|
||||||
|
android:layout_marginEnd="256dp"
|
||||||
|
android:layout_marginBottom="75dp"
|
||||||
|
android:hint="Nombre Paciente"
|
||||||
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="parent" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/tv_titulo_receta"
|
||||||
|
android:layout_width="117dp"
|
||||||
|
android:layout_height="15dp"
|
||||||
|
android:layout_marginStart="14dp"
|
||||||
|
android:layout_marginTop="50dp"
|
||||||
|
android:layout_marginEnd="256dp"
|
||||||
|
android:layout_marginBottom="45dp"
|
||||||
|
android:hint="Titulo de la Receta"
|
||||||
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="parent" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/tv_fecha_receta"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginStart="14dp"
|
||||||
|
android:layout_marginTop="83dp"
|
||||||
|
android:layout_marginEnd="255dp"
|
||||||
|
android:layout_marginBottom="8dp"
|
||||||
|
android:hint="Fecha de la Receta"
|
||||||
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="parent" />
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/iv_correo_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"
|
||||||
|
app:srcCompat="@android:drawable/ic_dialog_email"
|
||||||
|
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.243" />
|
||||||
|
|
||||||
|
<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.581" />
|
||||||
|
|
||||||
|
<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:src="@drawable/delete"
|
||||||
|
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" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/tv_peso_paciente"
|
||||||
|
android:layout_width="50dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginStart="141dp"
|
||||||
|
android:layout_marginTop="20dp"
|
||||||
|
android:layout_marginEnd="196dp"
|
||||||
|
android:layout_marginBottom="71dp"
|
||||||
|
android:hint="Peso"
|
||||||
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="parent" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/tv_duracion_receta"
|
||||||
|
android:layout_width="60dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginStart="199dp"
|
||||||
|
android:layout_marginTop="83dp"
|
||||||
|
android:layout_marginEnd="128dp"
|
||||||
|
android:layout_marginBottom="8dp"
|
||||||
|
android:hint="Duración"
|
||||||
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="parent" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/tv_edad_paciente"
|
||||||
|
android:layout_width="50dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginStart="141dp"
|
||||||
|
android:layout_marginTop="50dp"
|
||||||
|
android:layout_marginEnd="196dp"
|
||||||
|
android:layout_marginBottom="41dp"
|
||||||
|
android:hint="Edad"
|
||||||
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="parent" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/tv_dosis_medicamento"
|
||||||
|
android:layout_width="50dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginStart="141dp"
|
||||||
|
android:layout_marginTop="83dp"
|
||||||
|
android:layout_marginEnd="196dp"
|
||||||
|
android:layout_marginBottom="8dp"
|
||||||
|
android:hint="Dosis"
|
||||||
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="parent" />
|
||||||
|
|
||||||
|
|
||||||
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
|
|
||||||
|
</androidx.cardview.widget.CardView>
|
|
@ -2,13 +2,14 @@
|
||||||
<string name="app_name">MedicalHealth</string>
|
<string name="app_name">MedicalHealth</string>
|
||||||
<!-- Modificar Activity -->
|
<!-- Modificar Activity -->
|
||||||
<string name="tv_modificar_titulo">Modificar Paciente</string>
|
<string name="tv_modificar_titulo">Modificar Paciente</string>
|
||||||
<string name="et_modificar_edad">Edad:</string>
|
<string name="et_modificar_edad">Edad</string>
|
||||||
<string name="et_modificar_sexo">Sexo:</string>
|
<string name="et_modificar_sexo">Sexo</string>
|
||||||
<string name="ht_nombre">Nombre</string>
|
<string name="ht_nombre">Nombre</string>
|
||||||
<string name="ht_apellido_paterno">Apellido Paterno</string>
|
<string name="ht_apellido_paterno">Apellido Paterno</string>
|
||||||
<string name="ht_apellido_materno">Apellido Materno</string>
|
<string name="ht_apellido_materno">Apellido Materno</string>
|
||||||
<string name="ht_domicilio">Domicilio</string>
|
<string name="ht_domicilio">Domicilio</string>
|
||||||
<string name="bt_modificar">Modificar</string>
|
<string name="bt_modificar">Modificar</string>
|
||||||
|
<string name="tv_id_paciente">Id</string>
|
||||||
<string name="tv_agregar_paciente_titulo">Agrega un paciente</string>
|
<string name="tv_agregar_paciente_titulo">Agrega un paciente</string>
|
||||||
<string name="bt_agregar">Confirmar</string>
|
<string name="bt_agregar">Confirmar</string>
|
||||||
<string name="bt_cancelar">Cancelar</string>
|
<string name="bt_cancelar">Cancelar</string>
|
||||||
|
@ -47,6 +48,7 @@
|
||||||
<string name="receta_peso">Peso del paciente KG</string>
|
<string name="receta_peso">Peso del paciente KG</string>
|
||||||
<string name="btn_agregar_receta">Agregar Receta</string>
|
<string name="btn_agregar_receta">Agregar Receta</string>
|
||||||
<string name="btn_ayuda_receta">Ayuda</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_activity_principal">PrincipalActivity</string>
|
||||||
<string name="title_home">Home</string>
|
<string name="title_home">Home</string>
|
||||||
<string name="title_dashboard">Dashboard</string>
|
<string name="title_dashboard">Dashboard</string>
|
||||||
|
|
Loading…
Reference in New Issue