ANEXO 1: Modelo de Informe final del
Proyecto del curso
Curso: Programación Orientada a
Objetos – CGT
Facultad de Ingeniería
Carrera de Ingeniería de Sistemas y
Software
TÍTULO DEL PROYECTO:
Propuesta de Sistema de Gestión de Citas
Odontológicas para Consultorio Tridentist
(Segundo Avance)
INTEGRANTES:
Juan Francisco Ganoza
Fabian Delgado Caballon
Carmen Gonzales Hernandez
CURSO: PROGRAMACIÓN ORIENTADA A
OBJETOS
DOCENTE: Waldyr Cerron
Lima - Perú
2025
Capítulo 1: Aspectos Generales
Descripción de la empresa (Tridentist)
El consultorio dental Tridentist ofrece servicios odontológicos generales y
especializados para personas de todas las edades y niveles sociales. Fue
fundado en el año 2015 por la cirujano dentista Gina Choy y se encuentra
ubicado en Av. del Aire N.º 1222, Dpto. 301, Urb. Javier Prado IV
Etapa, San Luis, Lima.
El consultorio cuenta con dos ambientes de atención, una máquina de rayos
X, servicios higiénicos y un equipo multidisciplinario comprometido con
brindar una atención de calidad a sus pacientes.
Descripción del problema
Actualmente, Tridentist registra sus citas de manera manual, utilizando
agendas o cuadernos físicos. Este método presenta diversos inconvenientes,
como la pérdida de información, la duplicidad de horarios y la lentitud en la
gestión de citas. Todo ello afecta la eficiencia operativa del consultorio y
dificulta mantener un control adecuado de la agenda, generando demoras
en la atención a los pacientes.
Justificación
La implementación de una aplicación de escritorio para la gestión de
citas odontológicas permitirá automatizar y optimizar el proceso de
registro, eliminando la dependencia de los métodos manuales. Con ello se
mejorará la organización interna, se reducirán los errores y se establecerán
las bases para el crecimiento del consultorio en el futuro.
Diversos estudios demuestran que el uso de herramientas digitales reduce
significativamente el tiempo destinado al registro y programación de citas,
en comparación con los métodos tradicionales en papel. Por tanto,
digitalizar el sistema de agenda de Tridentist no solo modernizará sus
procesos, sino que también incrementará la eficiencia y la calidad del
servicio brindado a los pacientes.
Objetivos del proyecto
Objetivo general:
Desarrollar una aplicación de escritorio en Java, con conexión a base de
datos, que permita gestionar las citas odontológicas del consultorio
Tridentist. El sistema incluirá el registro de pacientes, la programación de
citas y la visualización de un calendario de atención.
Objetivos específicos:
Diseñar un sistema que permita registrar, modificar y visualizar las
citas odontológicas de forma automatizada.
Implementar una base de datos estructurada que almacene la
información de los pacientes y los horarios de atención.
Validar el correcto funcionamiento del sistema a través de pruebas realizadas
con los usuarios del consultorio.
Mejorar la eficiencia en la atención a los pacientes mediante la digitalización del
proceso de programación de citas.
Alcances
El sistema propuesto cubrirá las siguientes funcionalidades principales:
Registro de nuevas citas odontológicas en la agenda.
Edición (reprogramación) y cancelación de citas existentes.
Visualización del cronograma de atención (agenda de citas) de manera clara y
ordenada.
Gestión básica de la información de los pacientes, incluyendo el registro y la
actualización de sus datos personales.
Limitaciones
También se definen los límites del proyecto en esta etapa de desarrollo:
Sin historia clínica digital: el sistema no contemplará el manejo de historiales
clínicos odontológicos, enfocándose exclusivamente en la gestión de citas y
datos básicos de los pacientes.
Sin integración web, móvil ni pagos en línea: la aplicación será de tipo local y
de escritorio, por lo que no se implementarán funciones de reserva en línea,
acceso desde aplicaciones móviles ni procesamiento de pagos digitales.
Usuario único: el software estará diseñado para uso interno dentro del
consultorio, con una arquitectura monousuario local. No se considerará el acceso
concurrente de múltiples usuarios en red durante este avance.
Capítulo 2: Marco Teórico
2.1 Antecedentes
En trabajos previos realizados dentro del consultorio Tridentist, se identificó que el
bajo flujo de pacientes se debía en parte a la falta de digitalización de sus procesos
administrativos. Como primera medida, se implementaron estrategias de presencia en
redes sociales (principalmente en Facebook e Instagram), las cuales tuvieron éxito al
atraer nuevos clientes. Este proyecto continúa esa línea estratégica, pero con el objetivo
de optimizar la gestión interna mediante una herramienta de software que modernice
el registro y control de citas.
Asimismo, existen antecedentes positivos sobre la digitalización en consultorios y
pequeñas clínicas. Por ejemplo, soluciones comerciales como Doctocliq, desarrolladas
para clínicas dentales, han demostrado ser eficaces al facilitar la reserva de citas en línea
y el envío automático de recordatorios a los pacientes. Esto ha contribuido a reducir las
ausencias y mejorar la productividad del personal.
De igual manera, estudios realizados en clínicas estomatológicas evidencian que el
tiempo de registro de pacientes y asignación de citas se reduce significativamente al
utilizar herramientas digitales en comparación con los métodos tradicionales en papel.
Estos antecedentes respaldan la necesidad de incorporar tecnologías de información en
el consultorio Tridentist, ya que la transformación digital de sus procesos
administrativos incrementará la eficiencia operativa y la satisfacción tanto del personal
como de los pacientes.
2.2 Fundamento Teórico
A continuación, se presentan los principales conceptos teóricos en los que se sustenta el
desarrollo del proyecto, abarcando la Programación Orientada a Objetos, el modelo
entidad-relación, el lenguaje Java, la arquitectura cliente-servidor y la biblioteca
gráfica Swing para interfaces de usuario.
Programación Orientada a Objetos (POO)
La Programación Orientada a Objetos (POO) es un paradigma de desarrollo de
software basado en el uso de objetos como unidades fundamentales. Cada objeto
combina datos (atributos) y comportamientos (métodos), permitiendo modelar entidades
del mundo real y sus interacciones.
En este enfoque, las clases definen la estructura (atributos) y el comportamiento
(métodos) de los objetos, que luego se instancian para representar elementos concretos.
La POO favorece la reutilización del código, el mantenimiento y la modularidad del
sistema, gracias a principios como el encapsulamiento, la herencia y el polimorfismo.
Lenguajes como Java, C++ y Python implementan este paradigma, permitiendo
desarrollar sistemas más organizados, escalables y fáciles de mantener.
Modelo Entidad-Relación (MER)
El Modelo Entidad-Relación (MER) es una herramienta conceptual utilizada para
representar de manera clara las entidades de un sistema y las relaciones que existen
entre ellas. Propuesto por Peter Chen en 1976, este modelo es la base del diseño de
bases de datos relacionales.
En un diagrama entidad-relación, las entidades representan objetos o conceptos del
sistema (por ejemplo, Paciente o Cita), mientras que las relaciones reflejan las
asociaciones lógicas entre ellas (por ejemplo, un Paciente puede tener muchas Citas).
Cada entidad posee atributos que describen sus características, y uno o más de ellos
actúan como clave primaria para identificarla de forma única.
El MER se utiliza en la fase de diseño conceptual de la base de datos, y a partir de él se
derivan las estructuras físicas (tablas, columnas, claves foráneas) mediante procesos
como la normalización. En este proyecto, su aplicación permitirá representar de forma
ordenada la información que manejará el sistema y las relaciones entre sus componentes
de datos.
Bases de Datos y Sistemas Gestores de Bases de Datos (SGBD)
Una base de datos es un conjunto estructurado de datos relacionados, mientras que un
Sistema Gestor de Bases de Datos (SGBD) es el software que permite su creación,
administración y manipulación de manera eficiente.
El objetivo principal de un SGBD es facilitar el almacenamiento, la organización y la
recuperación de la información, garantizando la integridad, consistencia y seguridad
de los datos.
En este proyecto se empleará un SGBD relacional (como MySQL o SQL Server) para
almacenar la información de pacientes y citas. Este tipo de sistemas ofrece ventajas
como la integridad referencial, la consistencia de los datos y la facilidad de consulta
mediante el lenguaje SQL.
El diseño de la base de datos seguirá el modelo entidad-relación, donde las entidades se
traducirán en tablas, los atributos en columnas y las relaciones en claves foráneas que
vinculan los registros entre sí.
Lenguaje de Programación Java
El lenguaje Java fue seleccionado para desarrollar la aplicación de escritorio del
consultorio Tridentist. Creado por Sun Microsystems y presentado en 1995, Java es
un lenguaje orientado a objetos ampliamente utilizado en el desarrollo de aplicaciones
por su portabilidad y robustez.
Una de sus principales ventajas es su capacidad multiplataforma, ya que los programas
desarrollados en Java pueden ejecutarse en distintos sistemas operativos (Windows,
Linux, macOS, etc.) gracias a la Máquina Virtual de Java (JVM).
Además, Java ofrece una amplia biblioteca estándar y herramientas integradas para:
Conectividad con bases de datos (JDBC).
Desarrollo de interfaces gráficas (Swing y JavaFX).
Comunicación en red.
Estas características lo convierten en una opción adecuada para la implementación del
sistema de gestión de citas de Tridentist, permitiendo desarrollar una aplicación
modular, escalable y fácil de mantener.
Arquitectura Cliente-Servidor
El sistema se basará en una arquitectura cliente-servidor simple, típica de
aplicaciones de escritorio con base de datos local.
En este modelo, las funciones se dividen entre dos componentes principales:
El cliente, que se encarga de la interfaz de usuario y de las solicitudes de datos.
El servidor, que gestiona los recursos y las respuestas a dichas solicitudes,
generalmente almacenando y procesando la información en una base de datos.
En el caso del sistema Tridentist, la aplicación Java actuará como cliente y accederá a
una base de datos local (por ejemplo, MySQL instalada en la misma computadora).
Aunque el sistema funcionará de forma monousuario, seguirá los principios del modelo
cliente-servidor, facilitando una posible expansión futura hacia un entorno en red o
una versión web multiusuario.
Interfaces Gráficas con Java Swing
Para el diseño de la interfaz de usuario se utilizará la biblioteca Java Swing, que forma
parte de los Java Foundation Classes (JFC). Swing proporciona un amplio conjunto de
componentes gráficos (widgets), como botones, cuadros de texto, menús, tablas y listas
desplegables, que permiten construir interfaces visuales interactivas.
Una de las principales ventajas de Swing es que sus componentes son independientes
del sistema operativo, lo que garantiza una apariencia y funcionamiento consistentes en
cualquier equipo con Java.
En este proyecto, Swing permitirá crear formularios para el registro y edición de
pacientes, la programación de citas, y la visualización del calendario de atención.
Además, su integración con el patrón de diseño MVC (Modelo-Vista-Controlador)
facilitará la separación entre la lógica de negocio (gestión de citas y validaciones) y la
presentación gráfica, mejorando la organización y el mantenimiento del código.
Capítulo 3: Diseño de la Solución
Diagrama de Clases UML
Figura 1. Diagrama de clases UML propuesto para el sistema Tridentist.
En el diagrama se identifican las principales clases del dominio: Paciente, Odontólogo y
Cita. Cada clase encapsula los atributos que representan la información relevante del
sistema. Por ejemplo, la clase Paciente incluye campos como nombre, DNI, edad y
teléfono; mientras que la clase Cita registra la fecha, hora y motivo de la atención,
además de estar asociada a un Paciente y a un Odontólogo.
Las relaciones entre las clases reflejan la lógica del negocio: un Paciente puede tener
múltiples Citas a lo largo del tiempo, y cada Odontólogo puede atender varias Citas; sin
embargo, cada Cita pertenece únicamente a un Paciente y a un Odontólogo específicos.
Estas asociaciones se representan con una multiplicidad 1 a N (uno a muchos), tal como
se muestra en la figura: un paciente puede tener de una a varias citas (1..N), y una cita
corresponde a un solo paciente; de manera análoga ocurre con los odontólogos.
Este diagrama sirve como guía para la implementación orientada a objetos en Java.
Cada clase se traducirá a código con atributos privados y métodos públicos para
gestionarlos, como programar, cancelar o reprogramar una cita. Además, las
asociaciones del diagrama sugieren que la clase Cita mantendrá referencias —o claves
foráneas lógicas— hacia el paciente y el odontólogo correspondientes, lo cual se
reflejará también en el diseño de la base de datos.
Figura 2. Diagrama Entidad-Relación (ER) físico de la base de datos propuesta.
En este esquema se muestran las tablas que conformarán la base de datos y sus campos
principales, junto con las relaciones entre ellas. Las entidades mapeadas a tablas son:
Paciente, Odontólogo y Cita, cada una con su clave primaria (idPaciente, idOdontologo,
idCita respectivamente). Las líneas que conectan las tablas indican las relaciones de uno
a muchos. Un Paciente puede aparecer asociado a muchas filas de Cita, y un
Odontólogo también está ligado a muchas Citas, mientras que cada registro de Cita
contiene las claves foráneas (idPaciente e idOdontologo) que apuntan a un único
Paciente y un único Odontólogo respectivamente.
En el diagrama, las claves primarias (PK) y foráneas (FK) se anotan entre paréntesis.
Por ejemplo, idPaciente (PK) identifica unívocamente a cada paciente, y ese mismo
identificador aparece en la tabla Cita como idPaciente (FK) para vincular cada cita con
el paciente correspondiente. Los tipos de datos propuestos (e.g., varchar(100) para
nombres, date para la fecha de la cita, time para la hora) siguen estándares SQL.
Este diseño físico servirá para implementar la base de datos en un SGBD relacional (p.
ej. MySQL o SQL Server). Se procurará normalizar las tablas para evitar redundancias:
en este caso sencillo, la normalización ya se cumple al separar pacientes y odontólogos
de las citas. El resultado es un esquema relacional que garantiza la integridad referencial
(no se podrá registrar una cita con un paciente u odontólogo inexistente) y que permitirá
realizar consultas eficientes, por ejemplo: listar todas las citas de un determinado
paciente, ver la agenda de un día específico, etc.
Pantallas CRUD (Prototipos de la Interfaz)
PACIENTES:
DOCTORES:
CITAS:
CASO DE USO 1:
CASO DE USO 2:
CASO DE USO 3:
IMPLEMENTACIÓN
FUNCION AGREGAR:
1. Agregar los datos correspondientes:
2. Darle clic a “Agregar”
3. Saldrá un mensaje, confirmando que ya se agregó, en esta ocasión, el paciente
4. Se podrá ver reflejado en la BD
FUNCION ACTUALIZAR:
1. Dar clic a la persona al cual queremos actualizar sus datos, en este caso, un paciente:
2. Cambiamos los datos que queramos cambiar, en este caso se cambió la edad y el
número de teléfono:
3. Darle a actualizar
4. Saldrá un mensaje, confirmando que se actualizó
5. Se podrá ver el cambio reflejado en la BD
FUNCION ELIMINAR:
1. Para eliminar, primero debemos dar clic sobre una persona, en este caso un paciente y
luego dar clic al botón “Eliminar”
2. Saldrá un mensaje confirmando la acción
3. Se podrá ver reflejado en la BD
CONCLUSIONES:
El sistema de gestión de citas odontológicas para el consultorio Tridentist ofrece una
solución sencilla y funcional para organizar la atención, centrándose en el registro de
pacientes, odontólogos y las citas asociadas a cada uno. La aplicación de escritorio en
Java permite administrar de forma ordenada quién es el paciente, qué odontólogo lo
atenderá y en qué fecha y hora se llevará a cabo la cita.
Registro de pacientes y odontólogos
El sistema incorpora formularios para registrar y mantener actualizada la información
básica de los pacientes, como nombre y datos de contacto. De igual forma, permite
registrar a los odontólogos que forman parte del consultorio, de modo que luego puedan
ser asociados a las distintas citas programadas.
Gestión de citas programadas
La funcionalidad principal del sistema es registrar las citas, indicando paciente,
odontólogo, fecha, hora y motivo de la atención. Esto facilita visualizar qué citas están
programadas y con qué profesional corresponde cada atención, evitando confusiones en
la agenda diaria.
Organización básica de la agenda
A través de la relación entre pacientes, odontólogos y citas, el sistema proporciona una
vista más ordenada del cronograma de atención respecto al manejo manual en cuadernos
o agendas físicas. Aunque se mantiene dentro de un alcance simple, esta organización
ya representa una mejora importante para el control interno del consultorio.
En conjunto, el sistema cumple su propósito principal: registrar de manera estructurada
a los pacientes, a los doctores y las citas que se generan entre ellos, contribuyendo a una
gestión más clara y menos propensa a errores en el consultorio Tridentist.
Referencias Bibliográficas
1. Chaple Gil, A. M., Díaz Abascal, C. E., & Hernández Martínez, Y.
(2022). Herramienta para la planificación de citas y registro de
pacientes en clínicas estomatológicas. ACIMED,
33(4). [Link]
2. Cando, D. I. G. (2025). Tipos de agendamiento de citas médicas y su
función en la gestión de servicios de salud. Revista (preprint en
Dialnet). [Link]
3. Autor desconocido. (2024). Sistema de mejora en la gestión de citas
para la clínica dental “Más Sonrisas”. Revista Código
Científico. [Link]
article/view/317
4. Correa Coronel, M. M. (2018). Implementación de un sistema web de
citas médicas e historias clínicas (Tesis de licenciatura). Universidad
de Ciencias y Humanidades.
[Link]
5. Dávila Guzmán, M. A. (2010). Implementación de un sistema de
información para citas médicas (Tesis de licenciatura). Universidad
Señor de Sipán.
[Link]
6. Pérez, A. (2016). Desarrollo de un sistema de información para la
central de citas médicas de una institución de salud (Trabajo de
grado). Universidad Central de Venezuela.
[Link]
7. Blasco, F. (2019). Programación orientada a objetos en Java. Grupo
Editorial RA-MA. [Link]
a-objetos-en-java_95963/
8. Gervais, L. (2020). Aprender programación orientada a objetos con
Java: con ejercicios prácticos y soluciones (2.a ed.). Ediciones ENI.
[Link]
orientada-a-objetos-con-java-con-ejercicios-practicos-y-soluciones-2-
e-edicion-9782409032984
9. Universidad Carlos III de Madrid. (s. f.). Programación orientada a
objetos [Apuntes de clase].
[Link]
[Link]
10. Escuela Técnica Superior de Ingeniería de Sistemas Informáticos,
UPM. (s. f.). Programación orientada a objetos con Java [Apuntes de
curso].
[Link]
[Link]
11. Instituto Superior Tecnológico Cordillera. (s. f.). Libro de
programación orientada a objetos [Material docente].
[Link]
%20DE%20PROGRAMACI%C3%93N%20ORIENTADA%20A
%[Link]