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;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS paciente (
|
||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
nombre VARCHAR(50) NOT NULL,
|
||||
apellido VARCHAR(50) 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,
|
||||
direccion VARCHAR(255) NOT NULL,
|
||||
localidad VARCHAR(100) NOT NULL,
|
||||
|
@ -51,7 +52,7 @@ CREATE TABLE IF NOT EXISTS festivo (
|
|||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS calendario (
|
||||
id INT NOT NULL AUTO_INCREMENT,
|
||||
id INT AUTO_INCREMENT,
|
||||
hora_inicio_mañana TIME,
|
||||
hora_fin_mañana TIME,
|
||||
hora_inicio_tarde TIME,
|
||||
|
@ -67,22 +68,22 @@ CREATE TABLE IF NOT EXISTS calendario (
|
|||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS cita(
|
||||
id INT NOT NULL AUTO_INCREMENT,
|
||||
id INT AUTO_INCREMENT,
|
||||
fecha DATE NOT NULL,
|
||||
hora TIME NOT NULL,
|
||||
duracion INT,
|
||||
medico VARCHAR(50) NOT NULL,
|
||||
observaciones VARCHAR(255),
|
||||
paciente VARCHAR(50),
|
||||
paciente INT,
|
||||
PRIMARY KEY (id, medico),
|
||||
FOREIGN KEY (medico)
|
||||
REFERENCES usuario(usuario),
|
||||
FOREIGN KEY (paciente)
|
||||
REFERENCES paciente(documento_identificativo)
|
||||
REFERENCES paciente(id)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS informe(
|
||||
id INT NOT NULL AUTO_INCREMENT,
|
||||
id INT AUTO_INCREMENT,
|
||||
fecha DATE NOT NULL,
|
||||
hora TIME NOT NULL,
|
||||
paciente VARCHAR(50) NOT NULL,
|
||||
|
|
|
@ -30,17 +30,22 @@ function createPatient($pdo, $data) {
|
|||
return "Paciente creado con éxito";
|
||||
}
|
||||
|
||||
function editPatient($pdo, string $attr, string $param, string $id) {
|
||||
$query = "UPDATE paciente SET ? = ? WHERE documento_identificativo = ?";
|
||||
$pdo->prepare($query)->execute([$attr, $param, $id]);
|
||||
function editPatient($pdo, $data, $id) {
|
||||
$query = "UPDATE paciente SET nombre=?, apellido=?, fecha_de_nacimiento=?, documento_identificativo=?,
|
||||
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";
|
||||
}
|
||||
|
||||
function deletePatient($pdo, string $id) {
|
||||
$check = "SELECT * FROM informes where paciente = ?";
|
||||
$result = $pdo->prepare($check)->execute([$id]);
|
||||
$result = $pdo->prepare($check);
|
||||
$result->execute([$id]);
|
||||
if($result->columnCount() == 0){
|
||||
$statement = "DELETE FROM paciente where document_identificado = ?";
|
||||
$statement = "DELETE FROM paciente where id=?";
|
||||
$pdo->prepare($statement)->execute([$id]);
|
||||
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=?";
|
||||
$result = $pdo->prepare($query);
|
||||
$result->execute([$data["nombre"], $data["usuario"], $data["contraseña"], $data["rol"], $data["correo"], $id]);
|
||||
$result->debugDumpParams;
|
||||
return "Usuario modificado con éxito";
|
||||
}
|
||||
|
||||
|
@ -115,4 +119,27 @@ function findUser($pdo, $input) {
|
|||
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