Implement CRUD operations for patients
This commit is contained in:
parent
da6c518d59
commit
fb430dd8cc
|
@ -9,10 +9,11 @@ GRANT ALL PRIVILEGES ON practica.* TO practica@localhost;
|
||||||
USE practica;
|
USE practica;
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS paciente (
|
CREATE TABLE IF NOT EXISTS paciente (
|
||||||
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||||
nombre VARCHAR(50) NOT NULL,
|
nombre VARCHAR(50) NOT NULL,
|
||||||
apellido VARCHAR(50) NOT NULL,
|
apellido VARCHAR(50) NOT NULL,
|
||||||
fecha_de_nacimiento DATE NOT NULL,
|
fecha_de_nacimiento DATE NOT NULL,
|
||||||
documento_identificativo VARCHAR(50) PRIMARY KEY,
|
documento_identificativo VARCHAR(50) UNIQUE NOT NULL,
|
||||||
tipo_documento VARCHAR(10) NOT NULL,
|
tipo_documento VARCHAR(10) NOT NULL,
|
||||||
direccion VARCHAR(255) NOT NULL,
|
direccion VARCHAR(255) NOT NULL,
|
||||||
localidad VARCHAR(100) NOT NULL,
|
localidad VARCHAR(100) NOT NULL,
|
||||||
|
@ -51,7 +52,7 @@ CREATE TABLE IF NOT EXISTS festivo (
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS calendario (
|
CREATE TABLE IF NOT EXISTS calendario (
|
||||||
id INT NOT NULL AUTO_INCREMENT,
|
id INT AUTO_INCREMENT,
|
||||||
hora_inicio_mañana TIME,
|
hora_inicio_mañana TIME,
|
||||||
hora_fin_mañana TIME,
|
hora_fin_mañana TIME,
|
||||||
hora_inicio_tarde TIME,
|
hora_inicio_tarde TIME,
|
||||||
|
@ -67,22 +68,22 @@ CREATE TABLE IF NOT EXISTS calendario (
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS cita(
|
CREATE TABLE IF NOT EXISTS cita(
|
||||||
id INT NOT NULL AUTO_INCREMENT,
|
id INT AUTO_INCREMENT,
|
||||||
fecha DATE NOT NULL,
|
fecha DATE NOT NULL,
|
||||||
hora TIME NOT NULL,
|
hora TIME NOT NULL,
|
||||||
duracion INT,
|
duracion INT,
|
||||||
medico VARCHAR(50) NOT NULL,
|
medico VARCHAR(50) NOT NULL,
|
||||||
observaciones VARCHAR(255),
|
observaciones VARCHAR(255),
|
||||||
paciente VARCHAR(50),
|
paciente INT,
|
||||||
PRIMARY KEY (id, medico),
|
PRIMARY KEY (id, medico),
|
||||||
FOREIGN KEY (medico)
|
FOREIGN KEY (medico)
|
||||||
REFERENCES usuario(usuario),
|
REFERENCES usuario(usuario),
|
||||||
FOREIGN KEY (paciente)
|
FOREIGN KEY (paciente)
|
||||||
REFERENCES paciente(documento_identificativo)
|
REFERENCES paciente(id)
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS informe(
|
CREATE TABLE IF NOT EXISTS informe(
|
||||||
id INT NOT NULL AUTO_INCREMENT,
|
id INT AUTO_INCREMENT,
|
||||||
fecha DATE NOT NULL,
|
fecha DATE NOT NULL,
|
||||||
hora TIME NOT NULL,
|
hora TIME NOT NULL,
|
||||||
paciente VARCHAR(50) NOT NULL,
|
paciente VARCHAR(50) NOT NULL,
|
||||||
|
|
|
@ -30,17 +30,22 @@ function createPatient($pdo, $data) {
|
||||||
return "Paciente creado con éxito";
|
return "Paciente creado con éxito";
|
||||||
}
|
}
|
||||||
|
|
||||||
function editPatient($pdo, string $attr, string $param, string $id) {
|
function editPatient($pdo, $data, $id) {
|
||||||
$query = "UPDATE paciente SET ? = ? WHERE documento_identificativo = ?";
|
$query = "UPDATE paciente SET nombre=?, apellido=?, fecha_de_nacimiento=?, documento_identificativo=?,
|
||||||
$pdo->prepare($query)->execute([$attr, $param, $id]);
|
tipo_documento=?, direccion=?, localidad=?, provincia=?, pais=? WHERE id=?";
|
||||||
|
$result = $pdo->prepare($query);
|
||||||
|
$result->execute([$data["nombre"], $data["apellido"], $data["fecha_de_nacimiento"],
|
||||||
|
$data["documento_identificativo"], $data["tipo_documento"], $data["direccion"],
|
||||||
|
$data["localidad"], $data["provincia"], $data["pais"], $id]);
|
||||||
return "Paciente modificado con éxito";
|
return "Paciente modificado con éxito";
|
||||||
}
|
}
|
||||||
|
|
||||||
function deletePatient($pdo, string $id) {
|
function deletePatient($pdo, string $id) {
|
||||||
$check = "SELECT * FROM informes where paciente = ?";
|
$check = "SELECT * FROM informes where paciente = ?";
|
||||||
$result = $pdo->prepare($check)->execute([$id]);
|
$result = $pdo->prepare($check);
|
||||||
|
$result->execute([$id]);
|
||||||
if($result->columnCount() == 0){
|
if($result->columnCount() == 0){
|
||||||
$statement = "DELETE FROM paciente where document_identificado = ?";
|
$statement = "DELETE FROM paciente where id=?";
|
||||||
$pdo->prepare($statement)->execute([$id]);
|
$pdo->prepare($statement)->execute([$id]);
|
||||||
return "El paciente se ha eliminado correctamente";
|
return "El paciente se ha eliminado correctamente";
|
||||||
}
|
}
|
||||||
|
@ -75,7 +80,6 @@ function editUser($pdo, $data, $id) {
|
||||||
$query = "UPDATE usuario SET nombre=?, usuario=?, contraseña=?, rol=?, correo=? WHERE id=?";
|
$query = "UPDATE usuario SET nombre=?, usuario=?, contraseña=?, rol=?, correo=? WHERE id=?";
|
||||||
$result = $pdo->prepare($query);
|
$result = $pdo->prepare($query);
|
||||||
$result->execute([$data["nombre"], $data["usuario"], $data["contraseña"], $data["rol"], $data["correo"], $id]);
|
$result->execute([$data["nombre"], $data["usuario"], $data["contraseña"], $data["rol"], $data["correo"], $id]);
|
||||||
$result->debugDumpParams;
|
|
||||||
return "Usuario modificado con éxito";
|
return "Usuario modificado con éxito";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -115,4 +119,27 @@ function findUser($pdo, $input) {
|
||||||
return $data;
|
return $data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function listPatients($pdo) {
|
||||||
|
$query = "SELECT * from paciente";
|
||||||
|
$result = $pdo->query($query)->fetchAll();
|
||||||
|
return $result;
|
||||||
|
}
|
||||||
|
|
||||||
|
function fetchPatientData($pdo, string $id) {
|
||||||
|
$query = "SELECT * FROM paciente WHERE id=?";
|
||||||
|
$result = $pdo->prepare($query);
|
||||||
|
$result->execute([$id]);
|
||||||
|
$data = $result->fetch();
|
||||||
|
return $data;
|
||||||
|
}
|
||||||
|
|
||||||
|
function findPatient($pdo, $input) {
|
||||||
|
$input = "%$input%";
|
||||||
|
$query = "SELECT * FROM paciente WHERE nombre LIKE ? OR apellido LIKE ? OR documento_identificativo LIKE ?";
|
||||||
|
$result = $pdo->prepare($query);
|
||||||
|
$result->execute([$input, $input, $input]);
|
||||||
|
$data = $result->fetchAll();
|
||||||
|
return $data;
|
||||||
|
}
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
|
|
@ -0,0 +1,54 @@
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta http-equiv="x-ua-compatible" content="ie=edge">
|
||||||
|
<title>Gestión de pacientes</title>
|
||||||
|
<meta name="description" content="">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
|
<link rel="stylesheet" href="../../static/style.css" type="text/css" media="screen" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<form method="post" action="../patient_management.php">
|
||||||
|
<div class="input-group">
|
||||||
|
<label>Nombre</label>
|
||||||
|
<input type="text" name="nombre" value="">
|
||||||
|
</div>
|
||||||
|
<div class="input-group">
|
||||||
|
<label>Apellido</label>
|
||||||
|
<input type="text" name="apellido" value="">
|
||||||
|
</div>
|
||||||
|
<div class="input-group">
|
||||||
|
<label>fecha_de_nacimiento</label>
|
||||||
|
<input type="date" name="fecha_de_nacimiento" value="">
|
||||||
|
</div>
|
||||||
|
<div class="input-group">
|
||||||
|
<label>documento_identificativo</label>
|
||||||
|
<input type="text" name="documento_identificativo" value="">
|
||||||
|
</div>
|
||||||
|
<div class="select-input">
|
||||||
|
<label>tipo_documento</label>
|
||||||
|
<select id="tipo_documento" name="tipo_documento">
|
||||||
|
<option value="DNI">DNI</option>
|
||||||
|
<option value="NIE">NIE</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<div class="input-group">
|
||||||
|
<label>direccion</label>
|
||||||
|
<input type="text" name="direccion" value="">
|
||||||
|
</div>
|
||||||
|
<div class="input-group">
|
||||||
|
<label>localidad</label>
|
||||||
|
<input type="text" name="localidad" value="">
|
||||||
|
</div>
|
||||||
|
<div class="input-group">
|
||||||
|
<label>provincia</label>
|
||||||
|
<input type="text" name="provincia" value="">
|
||||||
|
</div>
|
||||||
|
<div class="input-group">
|
||||||
|
<label>pais</label>
|
||||||
|
<input type="text" name="pais" value="">
|
||||||
|
</div>
|
||||||
|
<div class="input-group">
|
||||||
|
<button class="btn" type="submit" name="create" >Guardar</button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</body>
|
|
@ -0,0 +1,62 @@
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta http-equiv="x-ua-compatible" content="ie=edge">
|
||||||
|
<title>Gestión de pacientes</title>
|
||||||
|
<meta name="description" content="">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
|
<link rel="stylesheet" href="../../static/style.css" type="text/css" media="screen" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<?php
|
||||||
|
include '../database.php';
|
||||||
|
|
||||||
|
$pdo = connectDatabase();
|
||||||
|
$data = fetchPatientData($pdo, $_GET["edit"]);
|
||||||
|
?>
|
||||||
|
<form method="post" action="../patient_management.php">
|
||||||
|
<div class="input-group">
|
||||||
|
<label>Nombre</label>
|
||||||
|
<input type="text" name="nombre" value="<?php echo $data[1]; ?>">
|
||||||
|
</div>
|
||||||
|
<div class="input-group">
|
||||||
|
<label>Apellido</label>
|
||||||
|
<input type="text" name="apellido" value="<?php echo $data[2]; ?>">
|
||||||
|
</div>
|
||||||
|
<div class="input-group">
|
||||||
|
<label>fecha_de_nacimiento</label>
|
||||||
|
<input type="password" name="fecha_de_nacimiento" value="<?php echo $data[3]; ?>">
|
||||||
|
</div>
|
||||||
|
<div class="input-group">
|
||||||
|
<label>documento_identificativo</label>
|
||||||
|
<input type="text" name="documento_identificativo" value="<?php echo $data[4]; ?>">
|
||||||
|
</div>
|
||||||
|
<div class="select-input">
|
||||||
|
<label>tipo_documento</label>
|
||||||
|
<select id="tipo_documento" name="tipo_documento">
|
||||||
|
<option value="DNI">DNI</option>
|
||||||
|
<option value="NIE">NIE</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<div class="input-group">
|
||||||
|
<label>direccion</label>
|
||||||
|
<input type="text" name="direccion" value="<?php echo $data[6]; ?>">
|
||||||
|
</div>
|
||||||
|
<div class="input-group">
|
||||||
|
<label>localidad</label>
|
||||||
|
<input type="text" name="localidad" value="<?php echo $data[7]; ?>">
|
||||||
|
</div>
|
||||||
|
<div class="input-group">
|
||||||
|
<label>provincia</label>
|
||||||
|
<input type="text" name="provincia" value="<?php echo $data[8]; ?>">
|
||||||
|
</div>
|
||||||
|
<div class="input-group">
|
||||||
|
<label>pais</label>
|
||||||
|
<input type="text" name="pais" value="<?php echo $data[9]; ?>">
|
||||||
|
</div>
|
||||||
|
<div class="input-group">
|
||||||
|
<button class="btn" type="submit" name="edit" >Editar</button>
|
||||||
|
</div>
|
||||||
|
<input type="hidden" name="id" value="<?php echo $_GET["edit"]; ?>">
|
||||||
|
</form>
|
||||||
|
<?php closeDatabase($pdo); ?>
|
||||||
|
</body>
|
|
@ -0,0 +1,77 @@
|
||||||
|
<!doctype html>
|
||||||
|
<html class="no-js" lang="es">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta http-equiv="x-ua-compatible" content="ie=edge">
|
||||||
|
<title>Gestión de usuarios</title>
|
||||||
|
<meta name="description" content="">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
|
<link rel="stylesheet" href="../static/style.css" type="text/css" media="screen" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div style="text-align: right; margin-top: 20px;">
|
||||||
|
<a href="forms/patient_create_form.html" class="create_btn" >Crear</a>
|
||||||
|
</div>
|
||||||
|
<table>
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>Nombre</th>
|
||||||
|
<th>Apellido</th>
|
||||||
|
<th>Fecha de nacimiento</th>
|
||||||
|
<th>Documento identificativo</th>
|
||||||
|
<th>Tipo de documento</th>
|
||||||
|
<th>Dirección</th>
|
||||||
|
<th>Localidad</th>
|
||||||
|
<th>Provincia</th>
|
||||||
|
<th>Pais</th>
|
||||||
|
<th colspan="2">Acciones</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<?php
|
||||||
|
include 'database.php';
|
||||||
|
|
||||||
|
$pdo = connectDatabase();
|
||||||
|
|
||||||
|
if (isset($_GET["search"])) {
|
||||||
|
$list = findPatient($pdo, $_GET["search"]);
|
||||||
|
} else {
|
||||||
|
$list = listPatients($pdo);
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach($list as $row) :
|
||||||
|
?>
|
||||||
|
<tr>
|
||||||
|
<td><?php echo $row[1]; ?></td>
|
||||||
|
<td><?php echo $row[2]; ?></td>
|
||||||
|
<td><?php echo $row[3]; ?></td>
|
||||||
|
<td><?php echo $row[4]; ?></td>
|
||||||
|
<td><?php echo $row[5]; ?></td>
|
||||||
|
<td><?php echo $row[6]; ?></td>
|
||||||
|
<td><?php echo $row[7]; ?></td>
|
||||||
|
<td><?php echo $row[8]; ?></td>
|
||||||
|
<td><?php echo $row[9]; ?></td>
|
||||||
|
<td>
|
||||||
|
<a href="forms/patient_edit_form.php?edit=<?php echo $row[0]; ?>" class="edit_btn">Editar</a>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<a href="patient_management.php?delete=<?php echo $row[0]; ?>" class="del_btn">Borrar</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<?php endforeach ?>
|
||||||
|
<?php closeDatabase($pdo); ?>
|
||||||
|
</table>
|
||||||
|
<div>
|
||||||
|
<form method="post" action="patient_management.php">
|
||||||
|
<div class="search-group">
|
||||||
|
<input type="text" name="search_box" value="">
|
||||||
|
</div>
|
||||||
|
<div class="input-group">
|
||||||
|
<button class="btn" type="submit" name="search" >Buscar</button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
<div style="text-align: right; margin-top: 20px;">
|
||||||
|
<a href="patient.php" class="back_btn">Atrás</a>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,53 @@
|
||||||
|
<?php
|
||||||
|
include'database.php';
|
||||||
|
|
||||||
|
function patientCreation(){
|
||||||
|
$data = $_POST;
|
||||||
|
$pdo = connectDatabase();
|
||||||
|
createPatient($pdo, $data);
|
||||||
|
closeDatabase($pdo);
|
||||||
|
header('location: patient.php');
|
||||||
|
}
|
||||||
|
|
||||||
|
function patientModification(){
|
||||||
|
$data = $_POST;
|
||||||
|
$id = $_POST["id"];
|
||||||
|
$pdo = connectDatabase();
|
||||||
|
editPatient($pdo, $data, $id);
|
||||||
|
closeDatabase($pdo);
|
||||||
|
header('location: patient.php');
|
||||||
|
}
|
||||||
|
|
||||||
|
function patientDeletion(){
|
||||||
|
$id = $_GET["delete"];
|
||||||
|
$pdo = connectDatabase();
|
||||||
|
deletePatient($pdo, $id);
|
||||||
|
closeDatabase($pdo);
|
||||||
|
header('location: patient.php');
|
||||||
|
}
|
||||||
|
|
||||||
|
function patientFind(){
|
||||||
|
$data = $_POST;
|
||||||
|
$pdo = connectDatabase();
|
||||||
|
findPatient($pdo, $data);
|
||||||
|
closeDatabase($pdo);
|
||||||
|
$search = $data["search_box"];
|
||||||
|
header("location: patient.php?search=$search");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isset($_POST["create"])) {
|
||||||
|
patientCreation();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (isset($_POST["edit"])) {
|
||||||
|
patientModification();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isset($_GET["delete"])) {
|
||||||
|
patientDeletion();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isset($_POST["search"])) {
|
||||||
|
patientFind();
|
||||||
|
}
|
Loading…
Reference in New Issue