From fb430dd8cc23522d5f5b97d887d1690edc14e7ed Mon Sep 17 00:00:00 2001 From: coolneng Date: Wed, 17 Jun 2020 08:42:53 +0200 Subject: [PATCH] Implement CRUD operations for patients --- database/db.sql | 13 ++--- src/database.php | 39 ++++++++++++--- src/forms/patient_create_form.html | 54 +++++++++++++++++++++ src/forms/patient_edit_form.php | 62 ++++++++++++++++++++++++ src/patient.php | 77 ++++++++++++++++++++++++++++++ src/patient_management.php | 53 ++++++++++++++++++++ 6 files changed, 286 insertions(+), 12 deletions(-) create mode 100644 src/forms/patient_create_form.html create mode 100644 src/forms/patient_edit_form.php create mode 100644 src/patient.php create mode 100644 src/patient_management.php diff --git a/database/db.sql b/database/db.sql index 4b1d648..de02860 100644 --- a/database/db.sql +++ b/database/db.sql @@ -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, diff --git a/src/database.php b/src/database.php index dc4e459..0be8da6 100644 --- a/src/database.php +++ b/src/database.php @@ -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; +} + ?> diff --git a/src/forms/patient_create_form.html b/src/forms/patient_create_form.html new file mode 100644 index 0000000..bf9669a --- /dev/null +++ b/src/forms/patient_create_form.html @@ -0,0 +1,54 @@ + + + + Gestión de pacientes + + + + + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ +
+
+ diff --git a/src/forms/patient_edit_form.php b/src/forms/patient_edit_form.php new file mode 100644 index 0000000..0040703 --- /dev/null +++ b/src/forms/patient_edit_form.php @@ -0,0 +1,62 @@ + + + + Gestión de pacientes + + + + + + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ +
+ "> +
+ + diff --git a/src/patient.php b/src/patient.php new file mode 100644 index 0000000..405c2ef --- /dev/null +++ b/src/patient.php @@ -0,0 +1,77 @@ + + + + + + Gestión de usuarios + + + + + +
+ Crear +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NombreApellidoFecha de nacimientoDocumento identificativoTipo de documentoDirecciónLocalidadProvinciaPaisAcciones
+ Editar + + Borrar +
+
+
+
+ +
+
+ +
+
+
+
+ Atrás +
+ + diff --git a/src/patient_management.php b/src/patient_management.php new file mode 100644 index 0000000..24aa42f --- /dev/null +++ b/src/patient_management.php @@ -0,0 +1,53 @@ +