Compare commits

..

1 Commits

Author SHA1 Message Date
c8fac365f1 Add reports and appointments to the patients list 2020-06-17 12:08:52 +02:00
57 changed files with 248 additions and 13671 deletions

View File

@@ -1,48 +0,0 @@
# MDIS
This project consists of an Information System for a Medical Institution.
## Technologies
- PHP
- MySQL
- Javascript
- Fullcalendar
- Jquery
- JqueryUI
## Requirements
- Nix
## Installation
1. Install Nix (compatible with MacOS and Linux):
``` {.shell}
curl -L https://nixos.org/nix/install | sh
```
There are alternative installation methods, if you don\'t want to pipe
curl to sh
2. Clone the repository:
``` {.shell}
git clone https://coolneng.duckdns.org/gitea/coolneng/MDIS
```
3. Change the working directory to the project:
``` {.shell}
cd MDIS
```
4. Enter the nix-shell:
``` {.shell}
nix-shell
```
The website can be accessed via **localhost:8000**

9
README.org Normal file
View File

@@ -0,0 +1,9 @@
* MDIS
This project consists of an Information System for a Medical Institution.
** Technologies
- PHP
- Javascript (AJAX)
- MySQL

View File

@@ -8,12 +8,6 @@ GRANT ALL PRIVILEGES ON practica.* TO practica@localhost;
USE practica;
source database/provincias.sql;
source database/municipios.sql;
source database/paises.sql;
CREATE TABLE IF NOT EXISTS paciente (
id INT AUTO_INCREMENT PRIMARY KEY,
nombre VARCHAR(50) NOT NULL,
@@ -22,15 +16,12 @@ CREATE TABLE IF NOT EXISTS paciente (
documento_identificativo VARCHAR(50) UNIQUE NOT NULL,
tipo_documento VARCHAR(10) NOT NULL,
direccion VARCHAR(255) NOT NULL,
localidad SMALLINT(6) UNSIGNED,
provincia SMALLINT(6),
pais VARCHAR(100) NOT NULL,
FOREIGN KEY (localidad)
REFERENCES municipios(id_municipio),
FOREIGN KEY (provincia)
REFERENCES provincias(id_provincia)
localidad VARCHAR(100) NOT NULL,
provincia VARCHAR(50) NOT NULL,
pais VARCHAR(100) NOT NULL
);
CREATE TABLE IF NOT EXISTS rol(
codigo INT PRIMARY KEY,
nombre VARCHAR(25) NOT NULL
@@ -55,9 +46,9 @@ CREATE TABLE IF NOT EXISTS festivo (
id INT PRIMARY KEY AUTO_INCREMENT,
fecha_festivo DATE NOT NULL,
tipo_festivo VARCHAR(15) NOT NULL,
medico INT DEFAULT NULL,
medico VARCHAR(50),
FOREIGN KEY (medico)
REFERENCES usuario(id)
REFERENCES usuario(usuario)
);
CREATE TABLE IF NOT EXISTS calendario (
@@ -67,13 +58,13 @@ CREATE TABLE IF NOT EXISTS calendario (
hora_inicio_tarde TIME,
hora_fin_tarde TIME,
horario VARCHAR(15) NOT NULL,
sabado_habil BOOLEAN DEFAULT FALSE,
domingo_habil BOOLEAN DEFAULT FALSE,
sabado_habil BOOLEAN,
domingo_habil BOOLEAN,
duracion_cita_por_defecto INT,
medico INT,
medico VARCHAR(50),
PRIMARY KEY (id, medico),
FOREIGN KEY (medico)
REFERENCES usuario(id)
REFERENCES usuario(rol)
);
CREATE TABLE IF NOT EXISTS cita(
@@ -81,12 +72,12 @@ CREATE TABLE IF NOT EXISTS cita(
fecha DATE NOT NULL,
hora TIME NOT NULL,
duracion INT,
medico INT NOT NULL,
medico VARCHAR(50) NOT NULL,
observaciones VARCHAR(255),
paciente INT NOT NULL,
paciente INT,
PRIMARY KEY (id, medico),
FOREIGN KEY (medico)
REFERENCES usuario(id),
REFERENCES usuario(usuario),
FOREIGN KEY (paciente)
REFERENCES paciente(id)
);
@@ -95,19 +86,16 @@ CREATE TABLE IF NOT EXISTS informe(
id INT AUTO_INCREMENT,
fecha DATE NOT NULL,
hora TIME NOT NULL,
paciente INT NOT NULL,
paciente VARCHAR(50) NOT NULL,
titulo VARCHAR(100) NOT NULL,
contenido VARCHAR(255) NOT NULL,
medico INT NOT NULL,
medico VARCHAR(50) NOT NULL,
PRIMARY KEY (id, paciente),
FOREIGN KEY (medico)
REFERENCES usuario(id),
REFERENCES usuario(usuario),
FOREIGN KEY (paciente)
REFERENCES paciente(id)
);
INSERT INTO rol (codigo, nombre) VALUES (1, "administrativo");
INSERT INTO rol (codigo, nombre) VALUES (2, "medico");
INSERT INTO usuario (nombre, usuario, contraseña, correo, rol) VALUES ("Sysadmin", "admin", "chimba", "admin@example.com", 1);
INSERT INTO usuario (nombre, usuario, contraseña, correo, rol) VALUES ("Nabil", "nabil", "menisco","doctor@example.com", 2);

File diff suppressed because it is too large Load Diff

View File

@@ -1,247 +0,0 @@
CREATE TABLE `paises` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`iso` char(2) DEFAULT NULL,
`nombre` varchar(80) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;
INSERT INTO `paises` VALUES(1, 'AF', 'Afganistán');
INSERT INTO `paises` VALUES(2, 'AX', 'Islas Gland');
INSERT INTO `paises` VALUES(3, 'AL', 'Albania');
INSERT INTO `paises` VALUES(4, 'DE', 'Alemania');
INSERT INTO `paises` VALUES(5, 'AD', 'Andorra');
INSERT INTO `paises` VALUES(6, 'AO', 'Angola');
INSERT INTO `paises` VALUES(7, 'AI', 'Anguilla');
INSERT INTO `paises` VALUES(8, 'AQ', 'Antártida');
INSERT INTO `paises` VALUES(9, 'AG', 'Antigua y Barbuda');
INSERT INTO `paises` VALUES(10, 'AN', 'Antillas Holandesas');
INSERT INTO `paises` VALUES(11, 'SA', 'Arabia Saudí');
INSERT INTO `paises` VALUES(12, 'DZ', 'Argelia');
INSERT INTO `paises` VALUES(13, 'AR', 'Argentina');
INSERT INTO `paises` VALUES(14, 'AM', 'Armenia');
INSERT INTO `paises` VALUES(15, 'AW', 'Aruba');
INSERT INTO `paises` VALUES(16, 'AU', 'Australia');
INSERT INTO `paises` VALUES(17, 'AT', 'Austria');
INSERT INTO `paises` VALUES(18, 'AZ', 'Azerbaiyán');
INSERT INTO `paises` VALUES(19, 'BS', 'Bahamas');
INSERT INTO `paises` VALUES(20, 'BH', 'Bahréin');
INSERT INTO `paises` VALUES(21, 'BD', 'Bangladesh');
INSERT INTO `paises` VALUES(22, 'BB', 'Barbados');
INSERT INTO `paises` VALUES(23, 'BY', 'Bielorrusia');
INSERT INTO `paises` VALUES(24, 'BE', 'Bélgica');
INSERT INTO `paises` VALUES(25, 'BZ', 'Belice');
INSERT INTO `paises` VALUES(26, 'BJ', 'Benin');
INSERT INTO `paises` VALUES(27, 'BM', 'Bermudas');
INSERT INTO `paises` VALUES(28, 'BT', 'Bhután');
INSERT INTO `paises` VALUES(29, 'BO', 'Bolivia');
INSERT INTO `paises` VALUES(30, 'BA', 'Bosnia y Herzegovina');
INSERT INTO `paises` VALUES(31, 'BW', 'Botsuana');
INSERT INTO `paises` VALUES(32, 'BV', 'Isla Bouvet');
INSERT INTO `paises` VALUES(33, 'BR', 'Brasil');
INSERT INTO `paises` VALUES(34, 'BN', 'Brunéi');
INSERT INTO `paises` VALUES(35, 'BG', 'Bulgaria');
INSERT INTO `paises` VALUES(36, 'BF', 'Burkina Faso');
INSERT INTO `paises` VALUES(37, 'BI', 'Burundi');
INSERT INTO `paises` VALUES(38, 'CV', 'Cabo Verde');
INSERT INTO `paises` VALUES(39, 'KY', 'Islas Caimán');
INSERT INTO `paises` VALUES(40, 'KH', 'Camboya');
INSERT INTO `paises` VALUES(41, 'CM', 'Camerún');
INSERT INTO `paises` VALUES(42, 'CA', 'Canadá');
INSERT INTO `paises` VALUES(43, 'CF', 'República Centroafricana');
INSERT INTO `paises` VALUES(44, 'TD', 'Chad');
INSERT INTO `paises` VALUES(45, 'CZ', 'República Checa');
INSERT INTO `paises` VALUES(46, 'CL', 'Chile');
INSERT INTO `paises` VALUES(47, 'CN', 'China');
INSERT INTO `paises` VALUES(48, 'CY', 'Chipre');
INSERT INTO `paises` VALUES(49, 'CX', 'Isla de Navidad');
INSERT INTO `paises` VALUES(50, 'VA', 'Ciudad del Vaticano');
INSERT INTO `paises` VALUES(51, 'CC', 'Islas Cocos');
INSERT INTO `paises` VALUES(52, 'CO', 'Colombia');
INSERT INTO `paises` VALUES(53, 'KM', 'Comoras');
INSERT INTO `paises` VALUES(54, 'CD', 'República Democrática del Congo');
INSERT INTO `paises` VALUES(55, 'CG', 'Congo');
INSERT INTO `paises` VALUES(56, 'CK', 'Islas Cook');
INSERT INTO `paises` VALUES(57, 'KP', 'Corea del Norte');
INSERT INTO `paises` VALUES(58, 'KR', 'Corea del Sur');
INSERT INTO `paises` VALUES(59, 'CI', 'Costa de Marfil');
INSERT INTO `paises` VALUES(60, 'CR', 'Costa Rica');
INSERT INTO `paises` VALUES(61, 'HR', 'Croacia');
INSERT INTO `paises` VALUES(62, 'CU', 'Cuba');
INSERT INTO `paises` VALUES(63, 'DK', 'Dinamarca');
INSERT INTO `paises` VALUES(64, 'DM', 'Dominica');
INSERT INTO `paises` VALUES(65, 'DO', 'República Dominicana');
INSERT INTO `paises` VALUES(66, 'EC', 'Ecuador');
INSERT INTO `paises` VALUES(67, 'EG', 'Egipto');
INSERT INTO `paises` VALUES(68, 'SV', 'El Salvador');
INSERT INTO `paises` VALUES(69, 'AE', 'Emiratos Árabes Unidos');
INSERT INTO `paises` VALUES(70, 'ER', 'Eritrea');
INSERT INTO `paises` VALUES(71, 'SK', 'Eslovaquia');
INSERT INTO `paises` VALUES(72, 'SI', 'Eslovenia');
INSERT INTO `paises` VALUES(73, 'ES', 'España');
INSERT INTO `paises` VALUES(74, 'UM', 'Islas ultramarinas de Estados Unidos');
INSERT INTO `paises` VALUES(75, 'US', 'Estados Unidos');
INSERT INTO `paises` VALUES(76, 'EE', 'Estonia');
INSERT INTO `paises` VALUES(77, 'ET', 'Etiopía');
INSERT INTO `paises` VALUES(78, 'FO', 'Islas Feroe');
INSERT INTO `paises` VALUES(79, 'PH', 'Filipinas');
INSERT INTO `paises` VALUES(80, 'FI', 'Finlandia');
INSERT INTO `paises` VALUES(81, 'FJ', 'Fiyi');
INSERT INTO `paises` VALUES(82, 'FR', 'Francia');
INSERT INTO `paises` VALUES(83, 'GA', 'Gabón');
INSERT INTO `paises` VALUES(84, 'GM', 'Gambia');
INSERT INTO `paises` VALUES(85, 'GE', 'Georgia');
INSERT INTO `paises` VALUES(86, 'GS', 'Islas Georgias del Sur y Sandwich del Sur');
INSERT INTO `paises` VALUES(87, 'GH', 'Ghana');
INSERT INTO `paises` VALUES(88, 'GI', 'Gibraltar');
INSERT INTO `paises` VALUES(89, 'GD', 'Granada');
INSERT INTO `paises` VALUES(90, 'GR', 'Grecia');
INSERT INTO `paises` VALUES(91, 'GL', 'Groenlandia');
INSERT INTO `paises` VALUES(92, 'GP', 'Guadalupe');
INSERT INTO `paises` VALUES(93, 'GU', 'Guam');
INSERT INTO `paises` VALUES(94, 'GT', 'Guatemala');
INSERT INTO `paises` VALUES(95, 'GF', 'Guayana Francesa');
INSERT INTO `paises` VALUES(96, 'GN', 'Guinea');
INSERT INTO `paises` VALUES(97, 'GQ', 'Guinea Ecuatorial');
INSERT INTO `paises` VALUES(98, 'GW', 'Guinea-Bissau');
INSERT INTO `paises` VALUES(99, 'GY', 'Guyana');
INSERT INTO `paises` VALUES(100, 'HT', 'Haití');
INSERT INTO `paises` VALUES(101, 'HM', 'Islas Heard y McDonald');
INSERT INTO `paises` VALUES(102, 'HN', 'Honduras');
INSERT INTO `paises` VALUES(103, 'HK', 'Hong Kong');
INSERT INTO `paises` VALUES(104, 'HU', 'Hungría');
INSERT INTO `paises` VALUES(105, 'IN', 'India');
INSERT INTO `paises` VALUES(106, 'ID', 'Indonesia');
INSERT INTO `paises` VALUES(107, 'IR', 'Irán');
INSERT INTO `paises` VALUES(108, 'IQ', 'Iraq');
INSERT INTO `paises` VALUES(109, 'IE', 'Irlanda');
INSERT INTO `paises` VALUES(110, 'IS', 'Islandia');
INSERT INTO `paises` VALUES(111, 'IL', 'Israel');
INSERT INTO `paises` VALUES(112, 'IT', 'Italia');
INSERT INTO `paises` VALUES(113, 'JM', 'Jamaica');
INSERT INTO `paises` VALUES(114, 'JP', 'Japón');
INSERT INTO `paises` VALUES(115, 'JO', 'Jordania');
INSERT INTO `paises` VALUES(116, 'KZ', 'Kazajstán');
INSERT INTO `paises` VALUES(117, 'KE', 'Kenia');
INSERT INTO `paises` VALUES(118, 'KG', 'Kirguistán');
INSERT INTO `paises` VALUES(119, 'KI', 'Kiribati');
INSERT INTO `paises` VALUES(120, 'KW', 'Kuwait');
INSERT INTO `paises` VALUES(121, 'LA', 'Laos');
INSERT INTO `paises` VALUES(122, 'LS', 'Lesotho');
INSERT INTO `paises` VALUES(123, 'LV', 'Letonia');
INSERT INTO `paises` VALUES(124, 'LB', 'Líbano');
INSERT INTO `paises` VALUES(125, 'LR', 'Liberia');
INSERT INTO `paises` VALUES(126, 'LY', 'Libia');
INSERT INTO `paises` VALUES(127, 'LI', 'Liechtenstein');
INSERT INTO `paises` VALUES(128, 'LT', 'Lituania');
INSERT INTO `paises` VALUES(129, 'LU', 'Luxemburgo');
INSERT INTO `paises` VALUES(130, 'MO', 'Macao');
INSERT INTO `paises` VALUES(131, 'MK', 'ARY Macedonia');
INSERT INTO `paises` VALUES(132, 'MG', 'Madagascar');
INSERT INTO `paises` VALUES(133, 'MY', 'Malasia');
INSERT INTO `paises` VALUES(134, 'MW', 'Malawi');
INSERT INTO `paises` VALUES(135, 'MV', 'Maldivas');
INSERT INTO `paises` VALUES(136, 'ML', 'Malí');
INSERT INTO `paises` VALUES(137, 'MT', 'Malta');
INSERT INTO `paises` VALUES(138, 'FK', 'Islas Malvinas');
INSERT INTO `paises` VALUES(139, 'MP', 'Islas Marianas del Norte');
INSERT INTO `paises` VALUES(140, 'MA', 'Marruecos');
INSERT INTO `paises` VALUES(141, 'MH', 'Islas Marshall');
INSERT INTO `paises` VALUES(142, 'MQ', 'Martinica');
INSERT INTO `paises` VALUES(143, 'MU', 'Mauricio');
INSERT INTO `paises` VALUES(144, 'MR', 'Mauritania');
INSERT INTO `paises` VALUES(145, 'YT', 'Mayotte');
INSERT INTO `paises` VALUES(146, 'MX', 'México');
INSERT INTO `paises` VALUES(147, 'FM', 'Micronesia');
INSERT INTO `paises` VALUES(148, 'MD', 'Moldavia');
INSERT INTO `paises` VALUES(149, 'MC', 'Mónaco');
INSERT INTO `paises` VALUES(150, 'MN', 'Mongolia');
INSERT INTO `paises` VALUES(151, 'MS', 'Montserrat');
INSERT INTO `paises` VALUES(152, 'MZ', 'Mozambique');
INSERT INTO `paises` VALUES(153, 'MM', 'Myanmar');
INSERT INTO `paises` VALUES(154, 'NA', 'Namibia');
INSERT INTO `paises` VALUES(155, 'NR', 'Nauru');
INSERT INTO `paises` VALUES(156, 'NP', 'Nepal');
INSERT INTO `paises` VALUES(157, 'NI', 'Nicaragua');
INSERT INTO `paises` VALUES(158, 'NE', 'Níger');
INSERT INTO `paises` VALUES(159, 'NG', 'Nigeria');
INSERT INTO `paises` VALUES(160, 'NU', 'Niue');
INSERT INTO `paises` VALUES(161, 'NF', 'Isla Norfolk');
INSERT INTO `paises` VALUES(162, 'NO', 'Noruega');
INSERT INTO `paises` VALUES(163, 'NC', 'Nueva Caledonia');
INSERT INTO `paises` VALUES(164, 'NZ', 'Nueva Zelanda');
INSERT INTO `paises` VALUES(165, 'OM', 'Omán');
INSERT INTO `paises` VALUES(166, 'NL', 'Países Bajos');
INSERT INTO `paises` VALUES(167, 'PK', 'Pakistán');
INSERT INTO `paises` VALUES(168, 'PW', 'Palau');
INSERT INTO `paises` VALUES(169, 'PS', 'Palestina');
INSERT INTO `paises` VALUES(170, 'PA', 'Panamá');
INSERT INTO `paises` VALUES(171, 'PG', 'Papúa Nueva Guinea');
INSERT INTO `paises` VALUES(172, 'PY', 'Paraguay');
INSERT INTO `paises` VALUES(173, 'PE', 'Perú');
INSERT INTO `paises` VALUES(174, 'PN', 'Islas Pitcairn');
INSERT INTO `paises` VALUES(175, 'PF', 'Polinesia Francesa');
INSERT INTO `paises` VALUES(176, 'PL', 'Polonia');
INSERT INTO `paises` VALUES(177, 'PT', 'Portugal');
INSERT INTO `paises` VALUES(178, 'PR', 'Puerto Rico');
INSERT INTO `paises` VALUES(179, 'QA', 'Qatar');
INSERT INTO `paises` VALUES(180, 'GB', 'Reino Unido');
INSERT INTO `paises` VALUES(181, 'RE', 'Reunión');
INSERT INTO `paises` VALUES(182, 'RW', 'Ruanda');
INSERT INTO `paises` VALUES(183, 'RO', 'Rumania');
INSERT INTO `paises` VALUES(184, 'RU', 'Rusia');
INSERT INTO `paises` VALUES(185, 'EH', 'Sahara Occidental');
INSERT INTO `paises` VALUES(186, 'SB', 'Islas Salomón');
INSERT INTO `paises` VALUES(187, 'WS', 'Samoa');
INSERT INTO `paises` VALUES(188, 'AS', 'Samoa Americana');
INSERT INTO `paises` VALUES(189, 'KN', 'San Cristóbal y Nevis');
INSERT INTO `paises` VALUES(190, 'SM', 'San Marino');
INSERT INTO `paises` VALUES(191, 'PM', 'San Pedro y Miquelón');
INSERT INTO `paises` VALUES(192, 'VC', 'San Vicente y las Granadinas');
INSERT INTO `paises` VALUES(193, 'SH', 'Santa Helena');
INSERT INTO `paises` VALUES(194, 'LC', 'Santa Lucía');
INSERT INTO `paises` VALUES(195, 'ST', 'Santo Tomé y Príncipe');
INSERT INTO `paises` VALUES(196, 'SN', 'Senegal');
INSERT INTO `paises` VALUES(197, 'CS', 'Serbia y Montenegro');
INSERT INTO `paises` VALUES(198, 'SC', 'Seychelles');
INSERT INTO `paises` VALUES(199, 'SL', 'Sierra Leona');
INSERT INTO `paises` VALUES(200, 'SG', 'Singapur');
INSERT INTO `paises` VALUES(201, 'SY', 'Siria');
INSERT INTO `paises` VALUES(202, 'SO', 'Somalia');
INSERT INTO `paises` VALUES(203, 'LK', 'Sri Lanka');
INSERT INTO `paises` VALUES(204, 'SZ', 'Suazilandia');
INSERT INTO `paises` VALUES(205, 'ZA', 'Sudáfrica');
INSERT INTO `paises` VALUES(206, 'SD', 'Sudán');
INSERT INTO `paises` VALUES(207, 'SE', 'Suecia');
INSERT INTO `paises` VALUES(208, 'CH', 'Suiza');
INSERT INTO `paises` VALUES(209, 'SR', 'Surinam');
INSERT INTO `paises` VALUES(210, 'SJ', 'Svalbard y Jan Mayen');
INSERT INTO `paises` VALUES(211, 'TH', 'Tailandia');
INSERT INTO `paises` VALUES(212, 'TW', 'Taiwán');
INSERT INTO `paises` VALUES(213, 'TZ', 'Tanzania');
INSERT INTO `paises` VALUES(214, 'TJ', 'Tayikistán');
INSERT INTO `paises` VALUES(215, 'IO', 'Territorio Británico del Océano Índico');
INSERT INTO `paises` VALUES(216, 'TF', 'Territorios Australes Franceses');
INSERT INTO `paises` VALUES(217, 'TL', 'Timor Oriental');
INSERT INTO `paises` VALUES(218, 'TG', 'Togo');
INSERT INTO `paises` VALUES(219, 'TK', 'Tokelau');
INSERT INTO `paises` VALUES(220, 'TO', 'Tonga');
INSERT INTO `paises` VALUES(221, 'TT', 'Trinidad y Tobago');
INSERT INTO `paises` VALUES(222, 'TN', 'Túnez');
INSERT INTO `paises` VALUES(223, 'TC', 'Islas Turcas y Caicos');
INSERT INTO `paises` VALUES(224, 'TM', 'Turkmenistán');
INSERT INTO `paises` VALUES(225, 'TR', 'Turquía');
INSERT INTO `paises` VALUES(226, 'TV', 'Tuvalu');
INSERT INTO `paises` VALUES(227, 'UA', 'Ucrania');
INSERT INTO `paises` VALUES(228, 'UG', 'Uganda');
INSERT INTO `paises` VALUES(229, 'UY', 'Uruguay');
INSERT INTO `paises` VALUES(230, 'UZ', 'Uzbekistán');
INSERT INTO `paises` VALUES(231, 'VU', 'Vanuatu');
INSERT INTO `paises` VALUES(232, 'VE', 'Venezuela');
INSERT INTO `paises` VALUES(233, 'VN', 'Vietnam');
INSERT INTO `paises` VALUES(234, 'VG', 'Islas Vírgenes Británicas');
INSERT INTO `paises` VALUES(235, 'VI', 'Islas Vírgenes de los Estados Unidos');
INSERT INTO `paises` VALUES(236, 'WF', 'Wallis y Futuna');
INSERT INTO `paises` VALUES(237, 'YE', 'Yemen');
INSERT INTO `paises` VALUES(238, 'DJ', 'Yibuti');
INSERT INTO `paises` VALUES(239, 'ZM', 'Zambia');
INSERT INTO `paises` VALUES(240, 'ZW', 'Zimbabue');

View File

@@ -1,75 +0,0 @@
# ------------------------------------------------------------
# Listado de provincias españolas 2012.
#
# Datos extraídos del INE (Instituo Nacional de Estadística).
#
# El campo id_provincia debería coincidir con los dos primeros dígitos del código postal
# de la provincia. Los que tienen un dígito, añadir el 0 delante.
#
# Ejemplo:
# Dado un código postal 08031, tomamos los dos primeros dígitos (08) y vemos que pertenence a prov. Barcelona,
# Similarmente el código postal 44652 => 44 => província de Teruel
#
# Albert Lombarte
# Twitter: @alombarte
# ------------------------------------------------------------
CREATE TABLE `provincias` (
`id_provincia` smallint(6) PRIMARY KEY,
`provincia` varchar(30) DEFAULT NULL
) ENGINE=InnoDB;
INSERT INTO `provincias` (`id_provincia`, `provincia`)
VALUES
(2,'Albacete'),
(3,'Alicante/Alacant'),
(4,'Almería'),
(1,'Araba/Álava'),
(33,'Asturias'),
(5,'Ávila'),
(6,'Badajoz'),
(7,'Balears, Illes'),
(8,'Barcelona'),
(48,'Bizkaia'),
(9,'Burgos'),
(10,'Cáceres'),
(11,'Cádiz'),
(39,'Cantabria'),
(12,'Castellón/Castelló'),
(51,'Ceuta'),
(13,'Ciudad Real'),
(14,'Córdoba'),
(15,'Coruña, A'),
(16,'Cuenca'),
(20,'Gipuzkoa'),
(17,'Girona'),
(18,'Granada'),
(19,'Guadalajara'),
(21,'Huelva'),
(22,'Huesca'),
(23,'Jaén'),
(24,'León'),
(27,'Lugo'),
(25,'Lleida'),
(28,'Madrid'),
(29,'Málaga'),
(52,'Melilla'),
(30,'Murcia'),
(31,'Navarra'),
(32,'Ourense'),
(34,'Palencia'),
(35,'Palmas, Las'),
(36,'Pontevedra'),
(26,'Rioja, La'),
(37,'Salamanca'),
(38,'Santa Cruz de Tenerife'),
(40,'Segovia'),
(41,'Sevilla'),
(42,'Soria'),
(43,'Tarragona'),
(44,'Teruel'),
(45,'Toledo'),
(46,'Valencia/València'),
(47,'Valladolid'),
(49,'Zamora'),
(50,'Zaragoza');

View File

@@ -1,113 +0,0 @@
#+TITLE: MDIS
#+SUBTITLE: Programación Web
#+AUTHOR: Amin Kasrou Aouam
#+DATE: 2020-07-16
#+PANDOC_OPTIONS: template:~/.pandoc/templates/eisvogel.latex
#+PANDOC_OPTIONS: listings:t
#+PANDOC_OPTIONS: toc:t
#+PANDOC_METADATA: lang=es
#+PANDOC_METADATA: titlepage:t
#+PANDOC_METADATA: listings-no-page-break:t
#+PANDOC_METADATA: toc-own-page:t
#+PANDOC_METADATA: table-use-row-colors:t
#+PANDOC_METADATA: logo:/home/coolneng/Photos/Logos/UGR.png
* MDIS
MDIS es un sistema de información que permite la gestión de una consulta médica.
** Funcionalidades
- Gestión de Usuarios
- Gestión de Pacientes
- Gestión de Calendario
- Gestión de Citas
- Gestión de Vacaciones
- Gestión de Informes
** Tecnologías
- PHP
- MySQL
- Javascript
- Fullcalendar
- Jquery
- JqueryUI
- Nix
** Arquitectura
#+CAPTION: Arquitectura del sistema
[[./assets/F1.png]]
Es un sistema web clásico, con la característica de que las consultas a la base de datos se realizan mediante /PDO/, para evitar vulnerabilidades del tipo /inyección de SQL/.
Las operaciones que conllevan una inserción o transformación de datos se realizan en los archivos que terminan en *=_management.php=*, además de ésto, no hacemos ninguna consulta /SQL/ fuera del archivo *database.php*, lo que nos permite separar la lógica interna de la presentación.
** Estructura del proyecto
La segmentación de los diferentes archivos de un proyecto es un aspecto que facilita mucho la búsqueda en un proyecto. La estructura de directorios es la siguiente:
- database: archivos SQL para la creación de la base de datos.
- docs: memoria del proyecto.
- src: código fuente (PHP y Javascript).
- src/static: bibliotecas de javascript, CSS y fotos.
** Dependencias
El apartado de la gestión de citas se ha realizado utilizando la biblioteca [[https://fullcalendar.io/][FullCalendar]] de Javascript. La conexión entre el /backend/ y el /frontend/ se realiza mediante intercambio de JSON, la implementación se encuentra en los archivos que terminan en *=_feed.php=*.
A partir de los elementos de la base de datos, formateados y transformados, obtenemos las citas, los festivos y la configuración del calendario de cada doctor. Finalmente, personalizamos el comportamiento del calendario según estos datos.
Los elementos del calendario también requieren de [[https://jqueryui.com/][JqueryUI]], para darle un toque más moderno a los distintos componentes.
La impresión de los informes en formato PDF es posible gracias a [[https://github.com/MrRio/jsPDF][jsPDF]], biblioteca simple y que produce documentos con un diseño cuidado.
Por último, hacemos uso de la función /$.ajax()/ de [[https://jquery.com][Jquery]] para realizar peticiones /GET/ síncronas, dado que ciertos componentes de FullCalendar no pueden ser ejecutados como funciones asíncronas.
** Despliegue
El desarrollo y despliegue del sistema se han hecho gracias a /Nix/, un gestor de paquetes que permite entornos de desarrollo y despliegue reproducibles.
A continuación mostramos el código que define el entorno de desarrollo:
#+BEGIN_SRC nix
{ pkgs ? import <nixpkgs> { } }:
with pkgs;
mkShell {
# Definición de los paquetes
buildInputs = [ php74 php74Extensions.pdo_mysql mysql57 ];
# Comandos que se ejecutan al entrar en la nix-shell
shellHook = ''
pkill mysql
rm -rf .mysql && mkdir .mysql
mysqld --datadir="$(pwd)/.mysql" --socket="$(pwd)/.mysql/mysql.sock" --initialize-insecure
mysqld --datadir="$(pwd)/.mysql" --socket="$(pwd)/.mysql/mysql.sock" --skip-networking &
sleep 1
mysql --socket="$(pwd)/.mysql/mysql.sock" -u root < $(pwd)/database/db.sql
alias mysql='mysql --socket="$(pwd)/.mysql/mysql.sock" -u root'
php -S localhost:8000
'';
}
#+END_SRC
Como podemos ver, /Nix/ nos permite:
- Instalar las dependencias necesarias, en el ámbito de una shell
- Ejecutar una base de datos temporal
- Inicializar la base de datos
- Lanzar el servidor web interno de PHP (se podría reemplazar por Apache/Nginx/...)
El único comando que tenemos que ejecutar es:
#+BEGIN_SRC shell
nix-shell
#+END_SRC
Y ya dispondremos de un sistema funcional, y accesible en la URL *localhost:8000*.

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.0 KiB

View File

@@ -16,8 +16,5 @@ mkShell {
mysql --socket="$(pwd)/.mysql/mysql.sock" -u root < $(pwd)/database/db.sql
alias mysql='mysql --socket="$(pwd)/.mysql/mysql.sock" -u root'
cd src
php -S localhost:8000
'';
}

View File

@@ -1,16 +0,0 @@
$(document).ready(function() {
$("#provincia").change(function() {
var id_provincia = $(this).val();
var post_id = 'id=' + id_provincia;
$.ajax({
type: "POST",
url: "ajax.php",
data: post_id,
cache: false,
success: function(response) {
$("#localidad").html(response);
}
});
});
});

View File

@@ -1,13 +0,0 @@
<?php
include 'database.php';
if ($_POST['id']) {
$pdo = connectDatabase();
$cities = fetchCities($pdo, $_POST['id']);
foreach ($cities as $row) {
echo '"<option value="'.$row[0].'">'.$row[4].'</option>';
}
closeDatabase($pdo);
}

View File

@@ -1,90 +0,0 @@
<?php session_start(); ?>
<html class="no-js" lang="es">
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>Gestión de citas</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"/>
<link rel="stylesheet" href="static/fullcalendar.css" type="text/css" media="screen"/>
<link rel="stylesheet" href="static/jquery-ui.css" type="text/css" media="screen"/>
<script src="static/jquery-3.5.1.min.js"></script>
<script src="static/jquery-ui.min.js"></script>
<script src="static/moment.min.js"></script>
<script src="static/fullcalendar.min.js"></script>
<script src="calendar.js"></script>
</head>
<body>
<?php include 'navbar.php'; ?>
<?php
include 'appointment_management.php';
$pdo = connectDatabase();
$patients = listPatients($pdo);
$calendar_settings = fetchCalendarSettings($pdo, $doctor);
$time_ranges = computeTimeRanges($pdo);
?>
<?php if ($_SESSION["user_type"] == 1 and !isset($_GET["medico"])): ?>
<form name="select_doctor" method="get" action="appointment.php">
<?php $doctors = listDoctors($pdo); ?>
<div class="input-group">
<select id="medico" name="medico">
<option>Seleccione un médico</option>
<?php foreach ($doctors as $row) : ?>
<option value="<?php echo $row[0]; ?>"><?php echo $row[1]; ?></option>
<?php endforeach ?>
</select>
<button class="create_btn" type="submit" name="select">Seleccionar</button>
</div>
</form>
<?php endif; ?>
<div id="dialog-form" title="Añadir cita" style="display:none;">
<form name="add_appointment" method="post" action="appointment_management.php">
<div class="input-group">
<label for="hora">Hora</label>
<select id="hora" name="hora">
<option>Seleccione una hora</option>
<?php foreach ($time_ranges as $row) : ?>
<option><?php echo $row; ?></option>
<?php endforeach ?>
</select>
</div>
<div class="input-group">
<label for="duracion">Duración</label>
<input type="number" name="duracion" value="<?php echo $calendar_settings[8]; ?>" step="30">
</div>
<div class="input-group">
<label for="observaciones">Observaciones</label>
<input type="text" name="observaciones" value="">
</div>
<div class="input-group">
<select id="paciente" name="paciente">
<option>Seleccione un paciente</option>
<?php foreach ($patients as $row) : ?>
<option value="<?php echo $row[0]; ?>"><?php echo $row[2]; ?></option>
<?php endforeach ?>
</select>
</div>
<button class="create_btn" type="submit" name="create" >Añadir cita</button>
<?php $doctor = fetchDoctor($pdo); ?>
<input type="hidden" name="doctor" value="<?php echo $doctor; ?>">
<input type="hidden" name="fecha" id="fecha">
</form>
<?php closeDatabase($pdo); ?>
</div>
<div class="response"></div>
<div id="calendar"></div>
<div id="event-info" style="display:none;">
<div id="event-patient"/></div>
<div id="event-description"/></div>
<div id="event-start"/></div>
<div id="event-end"/></div>
<form method="post" action="appointment_management.php">
<input type="hidden" name="event_id" id="event_id">
<button class="create_btn" type="submit" name="edit_form">Editar</button>
<button class="del_btn" type="submit" name="delete">Borrar</button>
</form>
</div>
</body>
</html>

View File

@@ -1,48 +0,0 @@
<?php session_start(); ?>
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>Gestión de citas</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 'navbar.php'; ?>
<?php
include 'database.php';
$pdo = connectDatabase();
$data = fetchAppointmentData($pdo, $_GET["event_id"]);
$patients = fetchPatients($pdo);
?>
<form name="edit_appointment" method="post" action="appointment_management.php">
<div class="input-group">
<label for="fecha">Fecha</label>
<input type="date" name="fecha" value="<?php echo $data[1]; ?>">
</div>
<div class="input-group">
<label for="hora">Hora</label>
<input type="time" name="hora" value="<?php echo $data[2]; ?>">
</div>
<div class="input-group">
<label for="duracion">Duración</label>
<input type="number" name="duracion" value="<?php echo $data[3]; ?>" step="30">
</div>
<div class="input-group">
<label for="observaciones">Observaciones</label>
<input type="text" name="observaciones" value="<?php echo $data[4]; ?>">
</div>
<div class="input-group">
<select id="paciente" name="paciente">
<option>Seleccione un paciente</option>
<?php foreach ($patients as $row) : ?>
<option value="<?php echo $row[0]; ?>"><?php echo $row[1]; ?></option>
<?php endforeach ?>
</select>
</div>
<button class="create_btn" type="submit" name="edit">Editar</button>
<input type="hidden" name="id" value="<?php echo $_GET["event_id"]; ?>">
</form>
<?php closeDatabase($pdo); ?>
</body>

View File

@@ -1,44 +0,0 @@
<?php
include 'appointment_management.php';
function computeEndTime(&$data)
{
foreach ($data as &$row) {
$time = new DateTime($row["hora"]);
$time->modify("+{$row["duracion"]} minutes");
$time_string = $time->format('H:i:s');
$row += ["end" => $time_string];
}
}
function formatArray($data)
{
computeEndTime($data);
$events = array();
foreach ($data as $row) {
$events[] = array(
"id" => $row["id"],
"title" => $row["apellido"] . ", " . $row["nombre"],
"start" => $row["fecha"] . " " . $row["hora"],
"description" => $row["observaciones"],
"patient" => $row["documento_identificativo"],
"end" => $row["fecha"] . " " . $row["end"],
"overlap" => false,
);
}
return $events;
}
function fetchDatabase()
{
$pdo = connectDatabase();
$data = listEvents($pdo);
closeDatabase($pdo);
return $data;
}
$result = fetchDatabase();
$events = formatArray($result);
echo json_encode($events);

View File

@@ -1,130 +0,0 @@
<?php
include'database.php';
session_start();
function fetchDoctor($pdo)
{
if ($_SESSION["user_type"] == 2) {
$user = finduser($pdo, $_SESSION["user"]);
return $user[0][4];
}
return $_GET["medico"];
}
function listEvents($pdo)
{
$doctor = fetchDoctor($pdo);
$events = fetchCalendarEvents($pdo, $doctor);
return $events;
}
function listHolidays($pdo)
{
$doctor = fetchDoctor($pdo);
$holidays = fetchDoctorHolidays($pdo, $doctor);
return $holidays;
}
function listCalendarSettings($pdo)
{
$doctor = fetchDoctor($pdo);
$calendar_settings = fetchCalendarSettings($pdo, $doctor);
return $calendar_settings;
}
function appointmentCreation()
{
$data = $_POST;
$pdo = connectDatabase();
createAppointment($pdo, $data);
closeDatabase($pdo);
header('location: appointment.php');
}
function appointmentModification()
{
$data = $_POST;
$pdo = connectDatabase();
editAppointment($pdo, $data);
closeDatabase($pdo);
header('location: appointment.php');
}
function appointmentDeletion()
{
$id = $_POST["event_id"];
$pdo = connectDatabase();
deleteAppointment($pdo, $id);
closeDatabase($pdo);
header('location: appointment.php');
}
function getFloorCeiling($pdo)
{
$data = listCalendarSettings($pdo);
if ($data["horario"] == "completo") {
$start = $data["hora_inicio_mañana"];
$end = $data["hora_fin_tarde"];
} elseif ($data["horario"] == "mañana") {
$start = $data["hora_inicio_mañana"];
$end = $data["hora_fin_mañana"];
} else {
$start = $data["hora_inicio_tarde"];
$end = $data["hora_fin_tarde"];
}
$range[] = array(
"start" => $start,
"end" => $end,
);
return $range[0];
}
function getTimeDiff()
{
$current = time();
$addTime = strtotime("+30 mins", $current);
$diff = $addTime - $current;
return $diff;
}
function computeTimeRanges($pdo)
{
$range = getFloorCeiling($pdo);
$diff = getTimeDiff();
$start = strtotime($range["start"]);
$end = strtotime($range["end"]);
$time_range = array();
while ($start < $end) {
$time_range[] = date('G:i:s', $start);
$start += $diff;
}
return $time_range;
}
if (isset($_POST["create"])) {
appointmentCreation();
}
if (isset($_POST["edit_form"])) {
$event_id = $_POST["event_id"];
header("location: appointment_edit_form.php?event_id=$event_id");
}
if (isset($_POST["edit"])) {
appointmentModification();
}
if (isset($_POST["delete"])) {
appointmentDeletion();
}

View File

@@ -1,71 +0,0 @@
$(document).ready(function() {
var queryString = window.location.search;
var calendar = $('#calendar').fullCalendar({
selectable: true,
editable: false,
header: {
left: 'prev,next,today',
center: 'title',
right: 'month,agendaWeek,agendaDay'
},
eventSources: [
"appointment_feed.php" + queryString,
"holiday_feed.php" + queryString
],
select: function(start, end) {
$("#dialog-form").dialog({
modal: true,
width: 450
});
var date = $.fullCalendar.formatDate(start, 'YYYY-MM-DD');
$("#fecha").val(date);
},
selectAllow: function(selectInfo) {
var daysOff = null;
var holidays = null;
$.ajax({
url: 'holiday_feed.php' + queryString,
async: false,
dataType: 'json',
success: function(json) {
holidays = json;
}
});
$.ajax({
url: 'calendar_settings_feed.php' + queryString,
async: false,
dataType: 'json',
success: function(json) {
daysOff = json;
}
});
var date = selectInfo.start._d;
var formatted_date = date.toISOString().substr(0, 10);
var foundHoliday = holidays.find(el => el.start === formatted_date);
var foundDayOff = daysOff.find(el => el === date.getDay());
if (foundDayOff == null && foundHoliday == null) {
return true;
}
return false;
},
eventClick: function(event) {
var start = $.fullCalendar.formatDate(event.start, 'HH:mm');
var end = $.fullCalendar.formatDate(event.end, 'HH:mm');
$("#event_id").val(event.id);
$("#event-patient").html("<b>DNI/NIE: </b>" + event.patient);
$("#event-description").html("<b>Observaciones: </b>" + event.description);
$("#event-start").html("<b>Comienzo: </b>" + start);
$("#event-end").html("<b>Fin: </b>" + end);
$("#event-info").dialog({
title: event.title,
width: 450
});
}
});
});

View File

@@ -1,54 +0,0 @@
<?php session_start(); ?>
<html class="no-js" lang="es">
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>Gestión de festivos</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 'navbar.php'; ?>
<div>
<form method="post" action="calendar_management.php">
<div class="search-group">
<a href="holiday_create_form.php" class="create_btn" >Añadir festivo</a>
<a href="calendar_setup_form.php" class="create_btn" >Configurar calendario</a>
</div>
</form>
</div>
<table>
<thead>
<tr>
<th>Fecha</th>
<th>Tipo</th>
<th>Medico</th>
<th colspan="2">Acciones</th>
</tr>
</thead>
<?php
include 'database.php';
$pdo = connectDatabase();
$list = fetchHolidays($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>
<a href="holiday_edit_form.php?edit=<?php echo $row[0]; ?>" class="edit_btn">Editar</a>
</td>
<td>
<a href="calendar_management.php?delete=<?php echo $row[0]; ?>" class="del_btn">Borrar</a>
</td>
</tr>
<?php endforeach ?>
<?php closeDatabase($pdo); ?>
</table>
</body>
</html>

View File

@@ -1,88 +0,0 @@
<?php
include'database.php';
function holidayCreation()
{
$data = $_POST;
$pdo = connectDatabase();
createHoliday($pdo, $data);
closeDatabase($pdo);
header('location: calendar.php');
}
function holidayModification()
{
$data = $_POST;
$id = $_POST["id"];
$pdo = connectDatabase();
editHoliday($pdo, $data, $id);
closeDatabase($pdo);
header('location: calendar.php');
}
function holidayDeletion()
{
$id = $_GET["delete"];
$pdo = connectDatabase();
deleteHoliday($pdo, $id);
closeDatabase($pdo);
header('location: calendar.php');
}
function setWorkingHours(&$data)
{
if (isset($data["hora_inicio_mañana"], $data["hora_fin_mañana"], $data["hora_inicio_tarde"], $data["hora_fin_tarde"])) {
$data["horario"] = "completo";
} elseif (isset($data["hora_inicio_mañana"], $data["hora_fin_mañana"])) {
$data["horario"] = "mañana";
} elseif (isset($data["hora_inicio_tarde"], $data["hora_fin_tarde"])) {
$data["horario"] = "tarde";
}
}
function setUncheckedBoxes(&$data)
{
if (!isset($data["sabado_habil"])) {
$data["sabado_habil"] = 0;
}
if (!isset($data["domingo_habil"])) {
$data["domingo_habil"] = 0;
}
}
function sanitizeInputs(&$data)
{
setWorkingHours($data);
setUncheckedBoxes($data);
}
function calendarConfig()
{
$data = $_POST;
sanitizeInputs($data);
$pdo = connectDatabase();
configureCalendar($pdo, $data);
closeDatabase($pdo);
header('location: calendar.php');
}
if (isset($_POST["create"])) {
holidayCreation();
}
if (isset($_POST["edit"])) {
holidayModification();
}
if (isset($_GET["delete"])) {
holidayDeletion();
}
if (isset($_POST["configure"])) {
calendarConfig();
}

View File

@@ -1,28 +0,0 @@
<?php
include 'appointment_management.php';
function formatArray($data)
{
$settings = array();
if (!$data["sabado_habil"]) {
array_push($settings, 6);
}
if (!$data["domingo_habil"]) {
array_push($settings, 0);
}
return $settings;
}
function fetchDatabase()
{
$pdo = connectDatabase();
$data = listCalendarSettings($pdo);
closeDatabase($pdo);
return $data;
}
$result = fetchDatabase();
$events = formatArray($result);
echo json_encode($events);

View File

@@ -1,69 +0,0 @@
<?php session_start(); ?>
<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>
<?php include 'navbar.php'; ?>
<?php
include 'database.php';
$pdo = connectDatabase();
$doctors = listDoctors($pdo);
closeDatabase($pdo);
?>
<form name="create_form" method="post" action="calendar_management.php">
<?php
if ($_SESSION["user_type"] == 2):
$pdo = connectDatabase();
$user = finduser($pdo, $_SESSION["user"]);
closeDatabase($pdo);
?>
<input type="hidden" id="medico" name="medico" value="<?php echo $user[0][4]; ?>">
<?php else: ?>
<div class="input-group">
<select id="medico" name="medico">
<option>Seleccione un médico</option>
<?php foreach ($doctors as $row) : ?>
<option value="<?php echo $row[0]; ?>"><?php echo $row[1]; ?></option>
<?php endforeach ?>
</select>
</div>
<?php endif; ?>
<div class="input-group">
<label>Hora inicio mañana</label>
<input type="time" name="hora_inicio_mañana" value="">
</div>
<div class="input-group">
<label>Hora fin mañana</label>
<input type="time" name="hora_fin_mañana" value="">
</div>
<div class="input-group">
<label>Hora inicio tarde</label>
<input type="time" name="hora_inicio_tarde" value="">
</div>
<div class="input-group">
<label>Hora fin tarde</label>
<input type="time" name="hora_fin_tarde" value="">
</div>
<div class="input-group">
<label>Sábado hábil</label>
<input type="checkbox" name="sabado_habil" value="1">
</div>
<div class="input-group">
<label>Domingo hábil</label>
<input type="checkbox" name="domingo_habil" value="1">
</div>
<div class="input-group">
<label>Duración de cita por defecto</label>
<input type="number" name="duracion_cita_por_defecto" value="60" step="30">
</div>
<div class="input-group">
<button class="btn" type="submit" name="configure" >Guardar</button>
</div>
</form>
</body>

View File

@@ -1,19 +0,0 @@
function changeInputType() {
country = document.getElementById("pais").value;
region = document.getElementById("provincia");
city = document.getElementById("localidad");
region_input = document.getElementById("provincia2");
city_input = document.getElementById("localidad2");
if (country == 73) {
region.hidden = false;
city.hidden = false;
region_input.type = "hidden";
city_input.type = "hidden";
} else {
region.hidden = true;
city.hidden = true;
region_input.type = "text";
city_input.type = "text";
}
}

View File

@@ -1,9 +1,8 @@
<?php
function connectDatabase()
{
function connectDatabase() {
$connection = 'unix_socket';
$host = '../.mysql/mysql.sock';
$host = '.mysql/mysql.sock';
$charset = 'utf8mb4';
$db = 'practica';
$dsn = "mysql:$connection=$host;dbname=$db;charset=$charset";
@@ -11,81 +10,29 @@ function connectDatabase()
return $pdo;
}
function closeDatabase($pdo)
{
function closeDatabase($pdo) {
$pdo = null;
}
function listRows($pdo, $table)
{
function listRows($pdo, $table) {
$query = "SELECT * FROM ?";
$result = $pdo->prepare($query)->execute([$table]);
return $result;
}
function fetchLatestRegion($pdo)
{
$query = "SELECT id_provincia FROM provincias ORDER BY id_provincia DESC LIMIT 1;";
$result = $pdo->prepare($query);
$result->execute();
$data = $result->fetch();
return $data;
}
function fetchLatestCity($pdo)
{
$query = "SELECT id_municipio FROM municipios ORDER BY id_municipio DESC LIMIT 1;";
$result = $pdo->prepare($query);
$result->execute();
$data = $result->fetch();
return $data;
}
function createRegion($pdo, $data)
{
$query = "INSERT INTO provincias (id_provincia, provincia) VALUES (?,?)";
$row = fetchLatestRegion($pdo);
$last_region = $row["id_provincia"];
$index = $last_region + 1;
$pdo->prepare($query)->execute([$index, $data["provincia2"]]);
return $index;
}
function createCity($pdo, $data, $region)
{
$query = "INSERT INTO municipios (id_provincia, cod_municipio, DC, nombre) VALUES (?,?,?,?)";
$pdo->prepare($query)->execute([$region, 999, 999, $data["localidad2"]]);
$city = fetchLatestCity($pdo);
return $city["id_municipio"];
}
function createPatient($pdo, $data)
{
function createPatient($pdo, $data) {
$query = "INSERT INTO paciente
(nombre, apellido, fecha_de_nacimiento, documento_identificativo, tipo_documento, direccion, localidad, provincia, pais)
VALUES (?,?,?,?,?,?,?,?,?)";
if ($data["provincia"] == "empty" and $data["localidad"] == "empty") {
$region = createRegion($pdo, $data);
$city = createCity($pdo, $data, $region);
$data["provincia"] = $region;
$data["localidad"] = $city;
}
$pdo->prepare($query)->execute([$data["nombre"], $data["apellido"], $data["fecha_de_nacimiento"],
$data["documento_identificativo"], $data["tipo_documento"], $data["direccion"],
$data["localidad"], $data["provincia"], $data["pais"]]);
return "Paciente creado con éxito";
}
function editPatient($pdo, $data, $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=?";
if ($data["provincia"] == "empty" and $data["localidad"] == "empty") {
$region = createRegion($pdo, $data);
$city = createCity($pdo, $data, $region);
$data["provincia"] = $region;
$data["localidad"] = $city;
}
$result = $pdo->prepare($query);
$result->execute([$data["nombre"], $data["apellido"], $data["fecha_de_nacimiento"],
$data["documento_identificativo"], $data["tipo_documento"], $data["direccion"],
@@ -93,12 +40,11 @@ function editPatient($pdo, $data, $id)
return "Paciente modificado con éxito";
}
function deletePatient($pdo, string $id)
{
function deletePatient($pdo, string $id) {
$check = "SELECT * FROM informes where paciente = ?";
$result = $pdo->prepare($check);
$result->execute([$id]);
if ($result->columnCount() == 0) {
if($result->columnCount() == 0){
$statement = "DELETE FROM paciente where id=?";
$pdo->prepare($statement)->execute([$id]);
return "El paciente se ha eliminado correctamente";
@@ -106,65 +52,56 @@ function deletePatient($pdo, string $id)
return "No se puede eliminar el paciente dado que tiene citas";
}
function createHoliday($pdo, $data)
{
if (!empty($data["medico"])) {
function createHoliday($pdo, $data) {
$query = "INSERT INTO festivo (fecha_festivo, tipo_festivo, medico) VALUES (?,?,?)";
$pdo->prepare($query)->execute([$data["fecha_festivo"], $data["tipo_festivo"], $data["medico"]]);
} else {
$query = "INSERT INTO festivo (fecha_festivo, tipo_festivo) VALUES (?,?)";
$pdo->prepare($query)->execute([$data["fecha_festivo"], $data["tipo_festivo"]]);
}
return "Festivo creado con éxito";
}
function editHoliday($pdo, $data, $id)
{
$query = "UPDATE festivo SET fecha_festivo=?, tipo_festivo=?, medico=? WHERE id=?";
$pdo->prepare($query)->execute([$data["fecha_festivo"], $data["tipo_festivo"], $data["medico"], $id]);
function editHoliday($pdo, $attr, $param, $id) {
$query = "UPDATE festivo SET ? = ? WHERE id = ?";
$pdo->prepare($query)->execute([$attr, $param, $id]);
return "Festivo modificado con éxito";
}
function deleteHoliday($pdo, $id)
{
$statement = "DELETE FROM festivo where id=?";
function deleteHoliday($pdo, str $id) {
$statement = "DELETE FROM festivo where id = ?";
$pdo->prepare($statement)->execute([$id]);
return "Festivo borrado con éxito";
}
function createUser($pdo, $data)
{
function createUser($pdo, $data) {
$query = "INSERT INTO usuario (nombre, usuario, contraseña, rol, correo) VALUES (?,?,?,?,?)";
$pdo->prepare($query)->execute([$data["nombre"], $data["usuario"], $data["contraseña"], $data["rol"], $data["correo"]]);
return "Usuario creado con éxito";
}
function editUser($pdo, $data, $id)
{
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]);
return "Usuario modificado con éxito";
}
function deactivateUser($pdo, $data, $id)
{
function deactivateUser($pdo, $data, $id) {
$query = "UPDATE usuario SET fecha_baja=now() WHERE id=?";
$result = $pdo->prepare($query);
$result->execute([$id]);
return "Usuario desactivado con éxito";
}
function listUsers($pdo)
{
function listAppointments($pdo, string $doctor) {
findRows($pdo, "cita", "medico", $doctor);
}
function listUsers($pdo) {
$query = "SELECT usuario.nombre, usuario.usuario, rol.nombre, usuario.correo, usuario.id, fecha_baja FROM usuario
INNER JOIN rol ON usuario.rol = rol.codigo";
$result = $pdo->query($query)->fetchAll();
return $result;
}
function fetchUserData($pdo, string $id)
{
function fetchUserData($pdo, string $id) {
$query = "SELECT * FROM usuario WHERE id=?";
$result = $pdo->prepare($query);
$result->execute([$id]);
@@ -172,8 +109,7 @@ function fetchUserData($pdo, string $id)
return $data;
}
function findUser($pdo, $input)
{
function findUser($pdo, $input) {
$input = "%$input%";
$query = "SELECT usuario.nombre, usuario.usuario, rol.nombre, usuario.correo, usuario.id, fecha_baja
FROM usuario, rol WHERE usuario.rol=rol.codigo AND (usuario.nombre LIKE ? OR usuario.usuario LIKE ? OR usuario.correo LIKE ?)";
@@ -183,26 +119,20 @@ function findUser($pdo, $input)
return $data;
}
function listPatients($pdo)
{
function listPatients($pdo) {
$query = "SELECT paciente.id, paciente.nombre, paciente.apellido, paciente.fecha_de_nacimiento, paciente.documento_identificativo,
paciente.tipo_documento, paciente.direccion, paises.nombre, provincias.provincia, municipios.nombre,
GROUP_CONCAT(DISTINCT cita.id), GROUP_CONCAT(DISTINCT informe.titulo)
FROM paciente
INNER JOIN paises ON paciente.pais = paises.id
INNER JOIN provincias ON paciente.provincia = provincias.id_provincia
INNER JOIN municipios ON paciente.localidad = municipios.id_municipio
LEFT JOIN cita ON paciente.id=cita.paciente LEFT JOIN informe ON paciente.id=informe.paciente
GROUP BY paciente.id ORDER BY paciente.id";
paciente.tipo_documento, paciente.direccion, paciente.localidad, paciente.provincia, paciente.pais, cita.id, informe.titulo
FROM paciente LEFT JOIN cita ON paciente.id=cita.paciente LEFT JOIN informe ON paciente.id=informe.paciente
GROUP BY paciente.id, cita.id, informe.titulo";
$result = $pdo->prepare($query);
$result->execute();
$data = $result->fetchAll();
return $data;
}
INSERT INTO cita (fecha, hora, medico, paciente) VALUES ('2020-06-02', '15:43', "nabil",3);
function fetchPatientData($pdo, string $id)
{
function fetchPatientData($pdo, string $id) {
$query = "SELECT * FROM paciente WHERE id=?";
$result = $pdo->prepare($query);
$result->execute([$id]);
@@ -210,8 +140,7 @@ function fetchPatientData($pdo, string $id)
return $data;
}
function findPatient($pdo, $input)
{
function findPatient($pdo, $input) {
$input = "%$input%";
$query = "SELECT * FROM paciente WHERE nombre LIKE ? OR apellido LIKE ? OR documento_identificativo LIKE ?";
$result = $pdo->prepare($query);
@@ -220,229 +149,4 @@ function findPatient($pdo, $input)
return $data;
}
function fetchCities($pdo, $id)
{
$query = "SELECT * FROM municipios WHERE id_provincia=?";
$result = $pdo->prepare($query);
$result->execute([$id]);
$data = $result->fetchAll();
return $data;
}
function fetchCountries($pdo)
{
$query = "SELECT * FROM paises";
$result = $pdo->prepare($query);
$result->execute();
$data = $result->fetchAll();
return $data;
}
function fetchRegions($pdo)
{
$query = "SELECT * FROM provincias";
$result = $pdo->prepare($query);
$result->execute();
$data = $result->fetchAll();
return $data;
}
function fetchHolidays($pdo)
{
$query = "SELECT festivo.id, festivo.fecha_festivo, festivo.tipo_festivo, usuario.nombre
FROM festivo LEFT JOIN usuario ON festivo.medico = usuario.id";
$result = $pdo->prepare($query);
$result->execute();
$data = $result->fetchAll();
return $data;
}
function listDoctors($pdo)
{
$query = "SELECT * FROM usuario where rol=2";
$result = $pdo->prepare($query);
$result->execute();
$data = $result->fetchAll();
return $data;
}
function fetchHolidayData($pdo, string $id)
{
$query = "SELECT * FROM festivo WHERE id=?";
$result = $pdo->prepare($query);
$result->execute([$id]);
$data = $result->fetch();
return $data;
}
function listReports($pdo)
{
$query = "SELECT informe.id, informe.titulo, informe.fecha, informe.hora, paciente.apellido,
usuario.nombre FROM informe INNER JOIN paciente ON paciente.id = informe.paciente
INNER JOIN usuario ON usuario.id = informe.medico";
$result = $pdo->prepare($query);
$result->execute();
$data = $result->fetchAll();
return $data;
}
function createReport($pdo, $data)
{
$query = "INSERT INTO informe
(fecha, hora, paciente, titulo, contenido, medico)
VALUES (?,?,?,?,?,?)";
$pdo->prepare($query)->execute([$data["fecha"], $data["hora"], $data["paciente"],
$data["titulo"], $data["contenido"], $data["medico"]]);
return "Informe creado con éxito";
}
function editReport($pdo, $data, $id)
{
$query = "UPDATE informe SET fecha=?, hora=?, paciente=?, titulo=?, contenido=?, medico=? WHERE id=?";
$pdo->prepare($query)->execute([$data["fecha"], $data["hora"], $data["paciente"],
$data["titulo"], $data["contenido"], $data["medico"], $id]);
return "Informe modificado con éxito";
}
function deleteReport($pdo, $id)
{
$statement = "DELETE FROM informe where id=?";
$pdo->prepare($statement)->execute([$id]);
return "Informe borrado con éxito";
}
function fetchPatients($pdo)
{
$query = "SELECT id, apellido from paciente";
$result = $pdo->prepare($query);
$result->execute();
$data = $result->fetchAll();
return $data;
}
function fetchReportData($pdo, string $id)
{
$query = "SELECT informe.id, titulo, fecha, hora, paciente , contenido, usuario FROM informe
INNER JOIN usuario ON informe.medico = usuario.id
WHERE informe.id=?";
$result = $pdo->prepare($query);
$result->execute([$id]);
$data = $result->fetch();
return $data;
}
function fetchLoginData($pdo, $data)
{
$query = "SELECT usuario, contraseña, rol FROM usuario WHERE usuario=? AND fecha_baja IS NULL";
$result = $pdo->prepare($query);
$result->execute([$data["usuario"]]);
$data = $result->fetch();
return $data;
}
function checkExistingCalendar($pdo, $data)
{
$query = "SELECT * from calendario WHERE medico=?";
$result = $pdo->prepare($query);
$result->execute([$data["medico"]]);
$data = $result->fetch();
return $data;
}
function configureCalendar($pdo, $data)
{
$existing = checkExistingCalendar($pdo, $data);
if (!$existing) {
$query = "INSERT INTO calendario
(hora_inicio_mañana, hora_fin_mañana, hora_inicio_tarde, hora_fin_tarde,
horario, sabado_habil, domingo_habil, duracion_cita_por_defecto, medico)
VALUES (?,?,?,?,?,?,?,?,?)";
$pdo->prepare($query)->execute([$data["hora_inicio_mañana"], $data["hora_fin_mañana"], $data["hora_inicio_tarde"],
$data["hora_fin_tarde"], $data["horario"], $data["sabado_habil"], $data["domingo_habil"],
$data["duracion_cita_por_defecto"], $data["medico"]]);
} else {
$query = "UPDATE calendario SET hora_inicio_mañana=?, hora_fin_mañana=?,
hora_inicio_tarde=?, hora_fin_tarde=?, horario=?, sabado_habil=?, domingo_habil=?,
duracion_cita_por_defecto=? WHERE medico=?";
$pdo->prepare($query)->execute([$data["hora_inicio_mañana"], $data["hora_fin_mañana"], $data["hora_inicio_tarde"],
$data["hora_fin_tarde"], $data["horario"], $data["sabado_habil"], $data["domingo_habil"],
$data["duracion_cita_por_defecto"], $data["medico"]]);
}
return "Calendario configurado con éxito";
}
function fetchCalendarEvents($pdo, $doctor)
{
$query = "SELECT cita.id, fecha, hora, duracion, medico, observaciones, nombre, apellido, documento_identificativo FROM cita
INNER JOIN paciente ON cita.paciente = paciente.id
WHERE medico=?";
$result = $pdo->prepare($query);
$result->execute([$doctor]);
$data = $result->fetchAll(PDO::FETCH_ASSOC);
return $data;
}
function fetchCalendarSettings($pdo, $doctor)
{
$query = "SELECT * from calendario WHERE medico=?";
$result = $pdo->prepare($query);
$result->execute([$doctor]);
$data = $result->fetch(PDO::FETCH_ASSOC);
if (empty($data[8])) {
$data[8] = 60;
}
return $data;
}
function fetchDoctorHolidays($pdo, $doctor)
{
$query = "SELECT festivo.id, fecha_festivo, tipo_festivo, medico, nombre FROM festivo
INNER JOIN usuario ON festivo.medico = usuario.id;
WHERE medico IS NULL OR medico=?";
$result = $pdo->prepare($query);
$result->execute([$doctor]);
$data = $result->fetchAll(PDO::FETCH_ASSOC);
return $data;
}
function createAppointment($pdo, $data)
{
$query = "INSERT INTO cita (fecha, hora, duracion, medico, observaciones, paciente) VALUES (?,?,?,?,?,?)";
$pdo->prepare($query)->execute([$data["fecha"], $data["hora"], $data["duracion"],
$data["doctor"], $data["observaciones"], $data["paciente"]]);
return "Cita creada con éxito";
}
function editAppointment($pdo, $data)
{
$query = "UPDATE cita SET fecha=?, hora=?, duracion=?, observaciones=?, paciente=?
WHERE id=?";
$pdo->prepare($query)->execute([$data["fecha"], $data["hora"], $data["duracion"],
$data["observaciones"], $data["paciente"], $data["id"]]);
return "Cita modificada con éxito";
}
function deleteAppointment($pdo, $id)
{
$statement = "DELETE FROM cita WHERE id=?";
$pdo->prepare($statement)->execute([$id]);
return "Cita borrada con éxito";
}
function fetchAppointmentData($pdo, $id)
{
$query = "SELECT id, fecha, hora, duracion, observaciones FROM cita WHERE id=?";
$result = $pdo->prepare($query);
$result->execute([$id]);
$data = $result->fetch();
return $data;
}
?>

View File

@@ -0,0 +1,27 @@
<!doctype html>
<html class="no-js" lang="es">
<head>
<meta charset="utf-8">
<title>MDIS</title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto"/>
</head>
<body>
<header>
<nav>
<ul class="navbar-left">
<li class="list"><a href="">Home</a></li>
<li class="list"><a href="">Calendar</a></li>
<li class="list"><a href="">Appointments</a></li>
</ul>
<ul class="navbar-right">
<li class="list"><a href="">Login</a></li>
</ul>
</nav>
</header>
<footer>
</footer>
</body>
</html>

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

@@ -1,27 +1,19 @@
<?php session_start(); ?>
<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" />
<script src="static/jquery-3.5.1.min.js"></script>
<script src="ajax.js"></script>
<script src="validate_patient.js"></script>
<script src="change_input_type.js"></script>
<link rel="stylesheet" href="../../static/style.css" type="text/css" media="screen" />
</head>
<body>
<?php include 'navbar.php'; ?>
<?php
include 'database.php';
include '../database.php';
$pdo = connectDatabase();
$data = fetchPatientData($pdo, $_GET["edit"]);
$countries = fetchCountries($pdo);
$regions = fetchRegions($pdo);
?>
<form method="post" action="patient_management.php" onsubmit="return validatePatient();">
<form method="post" action="../patient_management.php">
<div class="input-group">
<label>Nombre</label>
<input type="text" name="nombre" value="<?php echo $data[1]; ?>">
@@ -50,30 +42,16 @@
<input type="text" name="direccion" value="<?php echo $data[6]; ?>">
</div>
<div class="input-group">
<label>pais</label>
<select id="pais" name="pais" onchange="changeInputType();">
<option>Selecciona el país</option>
<?php foreach ($countries as $row) : ?>
<option value="<?php echo $row[0]; ?>"><?php echo $row[2]; ?></option>
<?php endforeach ?>
</select>
<label>localidad</label>
<input type="text" name="localidad" value="<?php echo $data[7]; ?>">
</div>
<div class="input-group">
<label>provincia</label>
<select id="provincia" name="provincia">
<option value="empty">Selecciona la provincia</option>
<?php foreach ($regions as $row) : ?>
<option value="<?php echo $row[0]; ?>"><?php echo $row[1]; ?></option>
<?php endforeach ?>
</select>
<input type="hidden" id="provincia2" name="provincia2" value="">
<input type="text" name="provincia" value="<?php echo $data[8]; ?>">
</div>
<div class="input-group">
<label>localidad</label>
<select id="localidad" name="localidad">
<option value="empty">Selecciona la localidad</option>
</select>
<input type="hidden" id="localidad2" name="localidad2" value="">
<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>

View File

@@ -1,16 +1,13 @@
<?php session_start(); ?>
<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" />
<script src="validate_user.js"></script>
<link rel="stylesheet" href="../../static/style.css" type="text/css" media="screen" />
</head>
<body>
<?php include 'navbar.php'; ?>
<form name="create_form" method="post" action="user_management.php" onsubmit="return validateUser();">
<form method="post" action="../user_management.php">
<div class="input-group">
<label>Nombre</label>
<input type="text" name="nombre" value="">

View File

@@ -1,21 +1,19 @@
<?php session_start(); ?>
<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" />
<link rel="stylesheet" href="../../static/style.css" type="text/css" media="screen" />
</head>
<body>
<?php include 'navbar.php'; ?>
<?php
include 'database.php';
include '../database.php';
$pdo = connectDatabase();
$data = fetchUserData($pdo, $_GET["edit"]);
?>
<form method="post" action="user_management.php">
<form method="post" action="../user_management.php">
<div class="input-group">
<label>Nombre</label>
<input type="text" name="nombre" value="<?php echo $data[1]; ?>">

View File

@@ -1,43 +0,0 @@
<?php session_start(); ?>
<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>
<?php include 'navbar.php'; ?>
<?php
include 'database.php';
$pdo = connectDatabase();
$doctors = listDoctors($pdo);
?>
<form name="create_form" method="post" action="calendar_management.php">
<div class="input-group">
<label>Fecha</label>
<input type="date" name="fecha_festivo" value="">
</div>
<div class="select-input">
<label>Tipo</label>
<select id="tipo_festivo" name="tipo_festivo">
<option value="mañana">mañana</option>
<option value="tarde">tarde</option>
<option value="completo">completo</option>
</select>
</div>
<div class="input-group">
<select id="medico" name="medico">
<option>Seleccione un médico</option>
<?php foreach ($doctors as $row) : ?>
<option value="<?php echo $row[0]; ?>"><?php echo $row[1]; ?></option>
<?php endforeach ?>
</select>
</div>
<div class="input-group">
<button class="btn" type="submit" name="create" >Guardar</button>
</div>
</form>
</body>

View File

@@ -1,45 +0,0 @@
<?php session_start(); ?>
<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>
<?php include 'navbar.php'; ?>
<?php
include 'database.php';
$pdo = connectDatabase();
$data = fetchHolidayData($pdo, $_GET["edit"]);
?>
<form method="post" action="user_management.php">
<div class="input-group">
<label>Fecha</label>
<input type="date" name="fecha_festivo" value="<?php echo $data[1]; ?>">
</div>
<div class="select-input">
<label>Tipo</label>
<select id="tipo_festivo" name="tipo_festivo">
<option value="mañana">mañana</option>
<option value="tarde">tarde</option>
<option value="completo">completo</option>
</select>
</div>
<div class="input-group">
<select id="medico" name="medico">
<option>Seleccione un médico</option>
<?php foreach ($doctors as $row) : ?>
<option value="<?php echo $row[0]; ?>"><?php echo $row[1]; ?></option>
<?php endforeach ?>
</select>
</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>

View File

@@ -1,32 +0,0 @@
<?php
include 'appointment_management.php';
function formatArray($data)
{
$events = array();
foreach ($data as $row) {
$events[] = array(
"id" => $row["id"],
"start" => $row["fecha_festivo"],
"description" => $row["tipo_festivo"],
"doctor" => $row["nombre"],
"rendering" => "background",
"color" => "#ffa6a3",
);
}
return $events;
}
function fetchDatabase()
{
$pdo = connectDatabase();
$data = listHolidays($pdo);
closeDatabase($pdo);
return $data;
}
$result = fetchDatabase();
$events = formatArray($result);
echo json_encode($events);

View File

@@ -1,20 +0,0 @@
<?php session_start(); ?>
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>MDIS</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 'navbar.php'; ?>
<main>
<section class="hero">
<div class="hero-inner">
<h1>MDIS</h1>
<h2>MDIS es un sistema de información que permite gestionar una consulta médica.</h2>
</div>
</section>
<main>
</body>

View File

@@ -1,28 +0,0 @@
<?php session_start(); ?>
<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" />
<script src="validate_user.js"></script>
</head>
<body>
<?php include 'navbar.php'; ?>
</body>
<form name="login_form" method="post" action="user_management.php" onsubmit="return validateLogin();">
<div class="input-group">
<label>usuario</label>
<input type="text" name="usuario" value="">
</div>
<div class="input-group">
<label>contraseña</label>
<input type="password" name="contraseña" value="">
</div>
<div class="input-group">
<button class="btn" type="submit" name="login">Iniciar sesión</button>
</div>
</form>
</html>

View File

@@ -1,22 +0,0 @@
<?php session_start(); ?>
<header>
<nav>
<ul class="navbar-left">
<li class="list"><a href="index.php">Página principal</a></li>
<?php if (isset($_SESSION["user"])): ?>
<li class="list"><a href="user.php">Usuarios</a></li>
<li class="list"><a href="patient.php">Pacientes</a></li>
<li class="list"><a href="appointment.php">Citas</a></li>
<li class="list"><a href="calendar.php">Calendario</a></li>
<?php endif; ?>
<?php if ($_SESSION["user_type"] == 2): ?>
<li class="list"><a href="report.php">Informes</a></li>
<?php endif; ?>
<?php if (isset($_SESSION["user"])): ?>
<li class="list"><a href="user_management.php?logout=1">Cerrar sesión</a></li>
<?php else: ?>
<li class="list"><a href="login.php">Iniciar sesión</a></li>
<?php endif; ?>
</ul>
</nav>
</header>

View File

@@ -1,23 +1,16 @@
<?php session_start(); ?>
<!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 pacientes</title>
<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" />
<link rel="stylesheet" href="../static/style.css" type="text/css" media="screen" />
</head>
<body>
<?php include 'navbar.php'; ?>
<div>
<form method="post" action="patient_management.php">
<div class="search-group">
<input type="text" name="search_box" value="">
<button class="create_btn" type="submit" name="search" >Buscar</button>
<a href="patient_create_form.php" class="create_btn" >Crear</a>
</div>
</form>
<div style="text-align: right; margin-top: 20px;">
<a href="forms/patient_create_form.html" class="create_btn" >Crear</a>
</div>
<table>
<thead>
@@ -28,9 +21,9 @@
<th>Documento identificativo</th>
<th>Tipo de documento</th>
<th>Dirección</th>
<th>Pais</th>
<th>Provincia</th>
<th>Localidad</th>
<th>Provincia</th>
<th>Pais</th>
<th>Citas</th>
<th>Informes</th>
<th colspan="2">Acciones</th>
@@ -47,7 +40,7 @@
$list = listPatients($pdo);
}
foreach ($list as $row) :
foreach($list as $row) :
?>
<tr>
<td><?php echo $row[1]; ?></td>
@@ -62,7 +55,7 @@
<td><?php echo $row[10]; ?></td>
<td><?php echo $row[11]; ?></td>
<td>
<a href="patient_edit_form.php?edit=<?php echo $row[0]; ?>" class="edit_btn">Editar</a>
<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>
@@ -71,8 +64,18 @@
<?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>
<?php if (isset($_GET["search"])): ?>
<div style="text-align: right; margin-top: 40px;">
<div style="text-align: right; margin-top: 20px;">
<a href="patient.php" class="back_btn">Atrás</a>
</div>
<?php endif ?>

View File

@@ -1,82 +0,0 @@
<?php session_start(); ?>
<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" />
<script src="static/jquery-3.5.1.min.js"></script>
<script src="ajax.js"></script>
<script src="validate_patient.js"></script>
<script src="change_input_type.js"></script>
</head>
<body>
<?php include 'navbar.php'; ?>
<?php
include 'database.php';
$pdo = connectDatabase();
$countries = fetchCountries($pdo);
$regions = fetchRegions($pdo);
?>
<form name="create_form" method="post" action="patient_management.php" onsubmit="return validatePatient();">
<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>pais</label>
<select id="pais" name="pais" onchange="changeInputType();">
<option>Selecciona el país</option>
<?php foreach ($countries as $row) : ?>
<option value="<?php echo $row[0]; ?>"><?php echo $row[2]; ?></option>
<?php endforeach ?>
</select>
</div>
<div class="input-group">
<label>provincia</label>
<select id="provincia" name="provincia">
<option value="empty">Selecciona la provincia</option>
<?php foreach ($regions as $row) : ?>
<option value="<?php echo $row[0]; ?>"><?php echo $row[1]; ?></option>
<?php endforeach ?>
</select>
<input type="hidden" id="provincia2" name="provincia2" value="">
</div>
<div class="input-group">
<label>localidad</label>
<select id="localidad" name="localidad">
<option value="empty">Selecciona la localidad</option>
</select>
<input type="hidden" id="localidad2" name="localidad2" value="">
</div>
<div class="input-group">
<button class="btn" type="submit" name="create">Guardar</button>
</div>
</form>
<?php closeDatabase($pdo); ?>
</body>

View File

@@ -1,8 +1,7 @@
<?php
include'database.php';
function patientCreation()
{
function patientCreation(){
$data = $_POST;
$pdo = connectDatabase();
createPatient($pdo, $data);
@@ -10,8 +9,7 @@ function patientCreation()
header('location: patient.php');
}
function patientModification()
{
function patientModification(){
$data = $_POST;
$id = $_POST["id"];
$pdo = connectDatabase();
@@ -20,8 +18,7 @@ function patientModification()
header('location: patient.php');
}
function patientDeletion()
{
function patientDeletion(){
$id = $_GET["delete"];
$pdo = connectDatabase();
deletePatient($pdo, $id);
@@ -29,8 +26,7 @@ function patientDeletion()
header('location: patient.php');
}
function patientFind()
{
function patientFind(){
$data = $_POST;
$pdo = connectDatabase();
findPatient($pdo, $data);

View File

@@ -1,48 +0,0 @@
function printExternalHTML(url) {
var printWindow = window.open(url, 'Print', 'left=200, top=200, width=950, height=500, toolbar=0, resizable=0');
printWindow.addEventListener('load', function() {
if (Boolean(printWindow.chrome)) {
printWindow.print();
setTimeout(function() {
printWindow.close();
}, 500);
} else {
printWindow.print();
printWindow.close();
}
}, true);
}
function getHTML(url) {
html = null;
$.ajax({
url: url,
async: false,
success: function(data) {
console.log(data);
html = data;
}
});
return html;
}
function printExternalPDF(url) {
var html = getHTML(url);
var pdf = new jsPDF();
margins = {
top: 80,
bottom: 60,
left: 40,
width: 522
};
pdf.fromHTML(
html,
margins.left,
margins.top, {
'width': margins.width
}
),
pdf.save();
}

View File

@@ -1,65 +0,0 @@
<?php session_start(); ?>
<html class="no-js" lang="es">
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>Gestión de informes</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" />
<script src="static/jquery-3.5.1.min.js"></script>
<script src="static/jspdf.min.js"></script>
<script src="print_page.js"></script>
</head>
<body>
<?php include 'navbar.php'; ?>
<div>
<form method="post" action="report_management.php">
<div class="search-group">
<a href="report_create_form.php" class="create_btn" >Crear</a>
</div>
</form>
</div>
<table>
<thead>
<tr>
<th>Titulo</th>
<th>Fecha</th>
<th>Hora</th>
<th>Paciente</th>
<th>Médico</th>
<th colspan="3">Acciones</th>
</tr>
</thead>
<?php
include 'database.php';
$pdo = connectDatabase();
$list = listReports($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>
<a href="report_edit_form.php?edit=<?php echo $row[0]; ?>" class="edit_btn">Editar</a>
</td>
<td>
<a href="report_management.php?delete=<?php echo $row[0]; ?>" class="del_btn">Borrar</a>
</td>
<td>
<input type="button" value="HTML" class="create_btn" onClick="printExternalHTML('report_content.php?id=<?php echo $row[0]; ?>')">
</td>
<td>
<input type="button" value="PDF" class="create_btn" onClick="printExternalPDF('report_content.php?id=<?php echo $row[0]; ?>')">
</td>
</tr>
<?php endforeach ?>
<?php closeDatabase($pdo); ?>
</table>
</body>
</html>

View File

@@ -1,38 +0,0 @@
<html class="no-js" lang="es">
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>Gestión de informes</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>
<table>
<thead>
<tr>
<th>Titulo</th>
<th>Fecha</th>
<th>Hora</th>
<th>Paciente</th>
<th>Contenido</th>
<th>Médico</th>
</tr>
</thead>
<?php
include 'database.php';
$pdo = connectDatabase();
$data = fetchReportData($pdo, $_GET["id"]);
?>
<tr>
<td><?php echo $data[1]; ?></td>
<td><?php echo $data[2]; ?></td>
<td><?php echo $data[3]; ?></td>
<td><?php echo $data[4]; ?></td>
<td><?php echo $data[5]; ?></td>
<td><?php echo $data[6]; ?></td>
</tr>
<?php closeDatabase($pdo); ?>
</table>
</body>

View File

@@ -1,51 +0,0 @@
<?php session_start(); ?>
<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" />
<script src="validate_report.js"></script>
</head>
<body>
<?php include 'navbar.php'; ?>
<?php
include 'database.php';
$pdo = connectDatabase();
$patients = fetchPatients($pdo);
$user = finduser($pdo, $_SESSION["user"]);
?>
<form name="create_form" method="post" action="report_management.php" onsubmit="return validateReport();">
<div class="input-group">
<label>Titulo</label>
<input type="text" name="titulo" value="">
</div>
<div class="input-group">
<label>fecha</label>
<input type="date" name="fecha" value="">
</div>
<div class="input-group">
<label>hora</label>
<input type="time" name="hora" value="">
</div>
<div class="input-group">
<select id="paciente" name="paciente">
<option>Seleccione un paciente</option>
<?php foreach ($patients as $row) : ?>
<option value="<?php echo $row[0]; ?>"><?php echo $row[1]; ?></option>
<?php endforeach ?>
</select>
</div>
<div class="input-group">
<label>contenido</label>
<input type="text" name="contenido" value="">
</div>
<div class="input-group">
<button class="btn" type="submit" name="create" >Guardar</button>
</div>
<input type="hidden" id="medico" name="medico" value="<?php echo $user[0][4]; ?>">
</form>
<?php closeDatabase($pdo); ?>
</body>

View File

@@ -1,59 +0,0 @@
<?php session_start(); ?>
<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>
<?php include 'navbar.php'; ?>
<?php
include 'database.php';
$pdo = connectDatabase();
$data = fetchReportData($pdo, $_GET["edit"]);
$list = listPatients($pdo);
?>
<form name="create_form" method="post" action="report_management.php">
<div class="input-group">
<label>Titulo</label>
<input type="text" name="titulo" value="<?php echo $data[4]; ?>">
</div>
<div class="input-group">
<label>fecha</label>
<input type="date" name="fecha" value="<?php echo $data[1]; ?>">
</div>
<div class="input-group">
<label>hora</label>
<input type="time" name="hora" value="<?php echo $data[2]; ?>">
</div>
<div class="input-group">
<select id="paciente" name="paciente">
<option>Seleccione un paciente</option>
<?php foreach ($patients as $row) : ?>
<option value="<?php echo $row[0]; ?>"><?php echo $row[1]; ?></option>
<?php endforeach ?>
</select>
</div>
<div class="input-group">
<select id="medico" name="medico">
<option>Seleccione un médico</option>
<?php foreach ($doctors as $row) : ?>
<option value="<?php echo $row[0]; ?>"><?php echo $row[1]; ?></option>
<?php endforeach ?>
</select>
</div>
<div class="input-group">
<label>contenido</label>
<input type="text" name="contenido" value="<?php echo $data[4]; ?>">
</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"]; ?>">
<input type="button" value="Imprimir" onClick="window.print()">
</form>
<?php closeDatabase($pdo); ?>
</body>

View File

@@ -1,48 +0,0 @@
<?php
include'database.php';
function reportCreation()
{
$data = $_POST;
$pdo = connectDatabase();
createReport($pdo, $data);
closeDatabase($pdo);
header('location: report.php');
}
function reportModification()
{
$data = $_POST;
$id = $_POST["id"];
$pdo = connectDatabase();
editReport($pdo, $data, $id);
closeDatabase($pdo);
header('location: report.php');
}
function reportDeletion()
{
$id = $_GET["delete"];
$pdo = connectDatabase();
deleteReport($pdo, $id);
closeDatabase($pdo);
header('location: report.php');
}
if (isset($_POST["create"])) {
reportCreation();
}
if (isset($_POST["edit"])) {
reportModification();
}
if (isset($_GET["delete"])) {
reportDeletion();
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 155 KiB

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

1311
src/static/jquery-ui.css vendored

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1,4 +1,4 @@
<?php session_start(); ?>
<!doctype html>
<html class="no-js" lang="es">
<head>
<meta charset="utf-8">
@@ -6,18 +6,11 @@
<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" />
<link rel="stylesheet" href="../static/style.css" type="text/css" media="screen" />
</head>
<body>
<?php include 'navbar.php'; ?>
<div>
<form method="post" action="user_management.php">
<div class="search-group">
<input type="text" name="search_box" value="">
<button class="create_btn" type="submit" name="search" >Buscar</button>
<a href="user_create_form.php" class="create_btn" >Crear</a>
</div>
</form>
<div style="text-align: right; margin-top: 20px;">
<a href="forms/user_create_form.html" class="create_btn" >Crear</a>
</div>
<table>
<thead>
@@ -40,8 +33,8 @@
$list = listUsers($pdo);
}
foreach ($list as $row) :
if (!$row[5]):
foreach($list as $row) :
if(!$row[5]):
?>
<tr>
<td><?php echo $row[0]; ?></td>
@@ -49,7 +42,7 @@
<td><?php echo $row[2]; ?></td>
<td><?php echo $row[3]; ?></td>
<td>
<a href="user_edit_form.php?edit=<?php echo $row[4]; ?>" class="edit_btn">Editar</a>
<a href="forms/user_edit_form.php?edit=<?php echo $row[4]; ?>" class="edit_btn">Editar</a>
</td>
<td>
<a href="user_management.php?delete=<?php echo $row[4]; ?>" class="del_btn">Borrar</a>
@@ -59,6 +52,16 @@
<?php endforeach ?>
<?php closeDatabase($pdo); ?>
</table>
<div>
<form method="post" action="user_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>
<?php if (isset($_GET["search"])): ?>
<div style="text-align: right; margin-top: 20px;">
<a href="user.php" class="back_btn">Atrás</a>

View File

@@ -1,10 +1,7 @@
<?php
include'database.php';
session_start();
function userCreation()
{
function userCreation(){
$data = $_POST;
$pdo = connectDatabase();
createUser($pdo, $data);
@@ -12,8 +9,7 @@ function userCreation()
header('location: user.php');
}
function userModification()
{
function userModification(){
$data = $_POST;
$id = $_POST["id"];
$pdo = connectDatabase();
@@ -22,8 +18,7 @@ function userModification()
header('location: user.php');
}
function userDeletion()
{
function userDeletion(){
$id = $_GET["delete"];
$pdo = connectDatabase();
deactivateUser($pdo, $data, $id);
@@ -31,8 +26,7 @@ function userDeletion()
header('location: user.php');
}
function userFind()
{
function userFind(){
$data = $_POST;
$pdo = connectDatabase();
findUser($pdo, $data);
@@ -41,31 +35,6 @@ function userFind()
header("location: user.php?search=$search");
}
function userLogin()
{
$location = 'login.php';
$data = $_POST;
$pdo = connectDatabase();
$db_data = fetchLoginData($pdo, $data);
closeDatabase($pdo);
if ($data["usuario"] == $db_data["usuario"] && $data["contraseña"] == $db_data["contraseña"]) {
$_SESSION["user"] = $db_data["usuario"];
$_SESSION["user_type"] = $db_data["rol"];
$location = 'index.php';
}
header("location: $location");
}
function userLogout()
{
if (isset($_SESSION["user"])) {
session_unset();
session_destroy();
}
header("location: index.php");
}
if (isset($_POST["create"])) {
userCreation();
}
@@ -82,11 +51,3 @@ if (isset($_GET["delete"])) {
if (isset($_POST["search"])) {
userFind();
}
if (isset($_POST["login"])) {
userLogin();
}
if (isset($_GET["logout"])) {
userLogout();
}

View File

@@ -1,68 +0,0 @@
function checkDNI(dni) {
var number,
let, letter;
var regex = /^[XYZ]?\d{5,8}[A-Z]$/;
dni = dni.toUpperCase();
if (regex.test(dni) === true) {
number = dni.substr(0, dni.length - 1);
number = number.replace('X', 0);
number = number.replace('Y', 1);
number = number.replace('Z', 2);
let = dni.substr(dni.length - 1, 1);
number = number % 23;
letter = 'TRWAGMYFPDXBNJZSQVHLCKET';
letter = letter.substring(number, number + 1);
if (letter !=
let) {
return false;
} else {
return true;
}
return false;
}
}
function validateString(input) {
if (input == "") {
return false;
}
return true;
}
function validatePatient() {
var name = document.forms["create_form"]["nombre"];
var last_name = document.forms["create_form"]["apellido"];
var dni = document.forms["create_form"]["documento_identificativo"];
var address = document.forms["create_form"]["direccion"];
var country = document.forms["create_form"]["pais"];
if (!checkDNI(dni.value)) {
alert("El DNI/NIE no es correcto");
return false;
}
if (!validateString(name.value)) {
alert("Introduce el nombre");
return false;
}
if (!validateString(last_name.value)) {
alert("Introduce el apellido");
return false;
}
if (!validateString(address.value)) {
alert("Introduce la dirección");
return false;
}
if (!validateString(country.value)) {
alert("Introduce el país");
return false;
}
return true;
}

View File

@@ -1,22 +0,0 @@
function validateString(input) {
if (input == "") {
return false;
}
return true;
}
function validateReport() {
var title = document.forms["create_form"]["titulo"];
var content = document.forms["create_form"]["contenido"];
if (!validateString(title.value)) {
alert("Introduce el título");
return false;
}
if (!validateString(content.value)) {
alert("Introduce el contenido");
return false;
}
return true;
}

View File

@@ -1,63 +0,0 @@
function validateString(input) {
if (input == "") {
return false;
}
return true;
}
function validateEmail(input) {
var emailID = input;
atpos = emailID.indexOf("@");
dotpos = emailID.lastIndexOf(".");
if (atpos < 1 || (dotpos - atpos < 2)) {
return false;
}
return true;
}
function validateUser() {
var name = document.forms["create_form"]["nombre"];
var user = document.forms["create_form"]["usuario"];
var password = document.forms["create_form"]["contraseña"];
var email = document.forms["create_form"]["correo"];
if (!validateString(name.value)) {
alert("Introduce el nombre");
return false;
}
if (!validateString(user.value)) {
alert("Introduce el usuario");
return false;
}
if (!validateString(password.value)) {
alert("Introduce la contraseña");
return false;
}
if (!validateEmail(email.value)) {
alert("El correo proporcionado es incorrecto");
return false;
}
return true;
}
function validateLogin() {
var user = document.forms["login_form"]["usuario"];
var password = document.forms["login_form"]["contraseña"];
if (!validateString(user.value)) {
alert("Introduce el usuario");
return false;
}
if (!validateString(password.value)) {
alert("Introduce la contraseña");
return false;
}
return true;
}

View File

@@ -50,7 +50,7 @@ form {
.search-group input {
height: 30px;
width: 93%;
font-size: 14px;
font-size: 16px;
}
.btn {
padding: 10px;
@@ -67,6 +67,7 @@ form {
background: #5F9EA0;
color: white;
border-radius: 3px;
margin: 400px;
}
.back_btn {
@@ -81,7 +82,7 @@ form {
.edit_btn {
text-decoration: none;
padding: 2px 5px;
background: #0d841f;
background: #2E8B57;
color: white;
border-radius: 3px;
}
@@ -93,69 +94,3 @@ form {
border-radius: 3px;
background: #800000;
}
header {
background: #5F9EA0;
position: fixed;
top: 0;
left: 0;
right: 0;
height: 40px;
display: flex;
align-items: center;
box-shadow: 0 0 25px 0 black;
}
header * {
display: inline;
}
header li {
margin: 20px;
}
header li a {
color: black;
text-decoration: none;
}
main {
background: white;
}
.hero {
width: 100vw;
height: 100vh;
display: flex;
justify-content: center;
align-items: center;
text-align: center;
color: white;
background-image: linear-gradient(rgba(0, 0, 0, 0.5),rgba(0, 0, 0, 0.5)), url('cover.jpg');
background-size: cover;
background-position: center center;
background-repeat: no-repeat;
background-attachment: fixed;
}
.hero h1 {
font-size: 5em;
margin-top: 0;
margin-bottom: 0.5em;
}
.success {
background: #cdf3cd;
padding: 10px 60px;
border: #c3e6c3 1px solid;
display: inline-block;
}
#calendar {
max-width: 600px;
margin: auto;
margin-top: 60px;
}