¡Descarga Aplicación médica en Python con conexión a PostgreSQL y más Ejercicios en PDF de Compresión de Datos solo en Docsity!
Trabajo de desarrollo
Aplicación médica en python
con conexión a PostgreSQL
Integrantes: Tirso Alvarado Ignacio Diego Brito Alberto Olvivares Ruth Sánchez
Caso de estudio
Introducción
En el siguiente trabajo se presenta una aplicación en consola desarrollada con Python y el motor de
bases de datos PostgreSQL, que simula una ficha de un paciente asociado a entidades como cama,
habitación, médico, enfermedad y diagnóstico. El programa permite ingresar datos y también realizar
consultas de los datos del paciente a través de la consola, incluyendo el nombre, RUT del paciente, su
cama asociada, la habitación, el médico tratante, entre otros. En el desarrollo de esta aplicación, se
utilizó Anaconda Navigator como entorno virtual y Jupyter Notebook en su versión 6.5.4 como IDE.
Orden id_orden SERIAL Primaria
PRIMARY
KEY
id_paciente INT Foránea (Paciente)
FOREIGN
KEY
id_medico INT Foránea (Medico)
FOREIGN
KEY
id_examen INT Foránea (Examen)
FOREIGN
KEY
fecha_orden DATE - - comentarios_orden TEXT - -
Tabla 1. Estructura SQL.
Serial : Se utilizó para definir un valor único y además incremental. Se hizo uso en todas las ID.
Primary Key : Se crearon ID propios para cada entidad. No se utilizó el número de habitación como ID,
porque podría haber unicidad no asegurada.
Foránea : Se utilizaron para establecer vínculos entre entidades.
Unique : Se utilizó para asegurar que los valores de la columna sean únicos, por ejemplo, el Rut.
Garantiza unicidad.
INT : Se asignaron a las variables que son números enteros.
Vachar : Para variables que usan caracteres.
De la tabla 1, se crea la Query SQL para PostgreSQL,
CREATE TABLE Habitacion (
id_habitacion SERIAL PRIMARY KEY,
numero_habitacion INT UNIQUE
CREATE TABLE Cama (
id_cama SERIAL PRIMARY KEY,
numero_cama INT,
id_habitacion INT,
FOREIGN KEY (id_habitacion) REFERENCES Habitacion(id_habitacion)
CREATE TABLE Paciente (
id_paciente SERIAL PRIMARY KEY,
nombre_paciente VARCHAR(255),
rut VARCHAR(255) UNIQUE,
fecha_ingreso DATE,
fecha_alta DATE,
id_cama INT,
FOREIGN KEY (id_cama) REFERENCES Cama(id_cama)
CREATE TABLE Medico (
id_medico SERIAL PRIMARY KEY,
nombre_medico VARCHAR(255)
CREATE TABLE Examen (
id_examen SERIAL PRIMARY KEY,
nombre_examen VARCHAR(255),
tipo_examen VARCHAR(255)
CREATE TABLE Diagnostico (
id_diagnostico SERIAL PRIMARY KEY,
id_paciente INT,
id_medico INT,
comentarios_diagnostico TEXT,
fecha_diagnostico DATE,
FOREIGN KEY (id_paciente) REFERENCES Paciente(id_paciente),
FOREIGN KEY (id_medico) REFERENCES Medico(id_medico)
CREATE TABLE Enfermedad (
id_enfermedad SERIAL PRIMARY KEY,
id_diagnostico INT,
nombre_enfermedad VARCHAR(255),
FOREIGN KEY (id_diagnostico) REFERENCES Diagnostico(id_diagnostico)
CREATE TABLE Orden (
id_orden SERIAL PRIMARY KEY,
id_paciente INT,
id_medico INT,
Luego, se insertan los datos utilizando insert into, para todas las entidades (Archivo insert.sql)
Para el desarrollo de este proyecto, se trabajará en Jupyter Notebook, desde Anaconda Navigator, con
el environment “base”
Se crea un script en python que permite la inserción de datos, llamado poblar.py.
Opción: 1. Muestra a todos los pacientes ingresados, su rut, nombre, enfermedad, medico y numero
de habitación.
Opción 2. Muestra los detalles de un paciente por rut. En este caso se consultó el paciente con rut
111111111k, que entrega como resultado, el nombre, enfermedad, entre otros.
Opción 3: Cambiar a un paciente de cama, por ejemplo, al 111111111k, que se encuentra en la cama 5
de la habitación 103.
Al consultar al paciente, ahora se encuentra en la cama 1 de habitación 103.
Opción 4. Se cambia el médico del paciente 111111111k, por el “Médico 1”
Al consultar por el rut, ahora el paciente tiene asignado al “Médico 1”.
Opción 6: Crear una cama. Se crea la cama 7, para la habitación 101.
Aquí se puede ver la cama 7 añadida a la habitacion 101.
Opción 7. Sale del programa.