Implement CRUD operations for patients

This commit is contained in:
2020-06-17 08:42:53 +02:00
parent da6c518d59
commit fb430dd8cc
6 changed files with 286 additions and 12 deletions

View File

@@ -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;
}
?>

View File

@@ -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>

View File

@@ -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>

77
src/patient.php Normal file
View File

@@ -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>

View File

@@ -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();
}