Está en la página 1de 63

UNIVERSIDAD NACIONAL DE INGENIERÍA

Facultad de Electrotecnia y Computación


Ingeniería en Computación

Administradores de Bases de Datos


Laboratorio#1
Integrantes:
1. Br. Adriana Lucia Real. 2020-0302U.
2. Br. Juana Gabriela Matamoros Sobalvarro. 2020-0773I.
3. Br. José Antonio Rivas Urbina. 2019-0179U.

“Sistema de información para la administración de los expedientes y


citas de pacientes para la Clínica Odontológica GlobalDent"

Docente: Ing. Giovanni Saénz.


Grupo: 4T2.CO.

Managua, Nicaragua
04/05/2023
ÍNDICE

Contenido
1. Objetivos .............................................................................................................................. 3
1. Introducción ......................................................................................................................... 4
2. Definición de la Empresa .................................................................................................. 5
3. Condiciones Actuales:........................................................................................................ 6
3.1 Equipo Disponible.......................................................................................................... 6
4. Beneficios de Automatizar ................................................................................................. 7
5. Restricciones del Sistema. ................................................................................................ 8
6. Descripción del Proceso. ................................................................................................... 9
a. Proceso Manual. ............................................................................................................. 9
b. Proceso Automatizado. ................................................................................................ 10
7. Requerimientos del Sistema. .......................................................................................... 11
a. Requerimientos Funcionales. ......................................................................................... 11
8. Modelado de la Base de Datos. ........................................................................................... 12
a. Diagrama Orientado a Objetos. ....................................................................................... 12
b. Diagrama de Entidad Relación. ........................................................................................... 13
c. Normalización de las Tablas. ............................................................................................... 14
9. Procedimientos Almacenados ........................................................................................ 15
10 Views .............................................................................................................................. 44
1. Objetivos

I. Objetivo General:
Desarrollar un sistema de información para la administración de expedientes
clínicos y citas de los pacientes de la clínica odontológica GlobalDent.

II. Objetivos Específicos:

1. Analizar y modificar la base de datos desarrollada anteriormente para la


Clínica Odontológica GlobalDent utilizando el gestor de base de datos
SQL-Server.

2. Desarrollar el sistema utilizando herramientas como Entity Framework,


Formularios de Windows Forms (.NET-Framework) y Reportviewer del
lenguaje de programación C# en Visual Studio 2022.

3. Desarrollar los formularios del sistema de información.

4. Crear los reportes requeridos del sistema.


1. Introducción

Con el avance de la tecnología de la información y comunicación (TIC) se ha


podido llevar un mejor almacenamiento, manejo y transmisión de la información
en formato digital, lo cual facilita el acceso a todas las personas que la necesiten.

Es por ello que varios ámbitos sociales se han venido beneficiando de ellas, en
este caso queremos hacer mayor énfasis a la salud dental, la cual gracias a las
TIC se puede llevar una historia clínica electrónica del paciente, que incluye
varias ventajas a la hora de acceder a la información, puesto que reduce el
tiempo de atención, costos, no redundancia de datos, posibilidad de
reconstrucción histórica y completa de los pacientes, contribución para
investigaciones, facilidad de la organización, racionalización de archivos con
grandes cantidades de documentos y mejora la comunicación entre el paciente
y personal de salud.

Por ende, en nuestro proyecto realizaremos un prototipo de sistema de


información para la “Clínica Odontológica GlobalDent” la cual necesita de
nuestros servicios profesionales ya que presenta dificultades de almacenar,
administrar y gestionar la información de sus pacientes. Nuestro equipo se
encargará de suplir las necesidades de dicha clínica con el software informático
“SQL Server”.

Los programas que utilizaremos serán Windows Forms (.NET Framework), Entity
Framework para el mapeo de la base de datos, lenguaje de programación C#,
Microsoft SQL Server para la creación de la base de datos, el cual es un sistema
de gestión de bases de datos relacionales (RDBMS) que admite una amplia
variedad de aplicaciones de procesamiento de transacciones, inteligencia
empresarial y análisis en entornos informáticos corporativos.
2. Definición de la Empresa

La clínica dental inicia sus operaciones en el año 2014 bajo el nombre de “Clínica
Odontológica GlobalDent” ubicada en la ciudad de Managua. Se dedica desde
entonces a la realización de servicios odontológicos de calidad dirigida a sus
pacientes, a los cuales se les aplica tratamientos especializados de ortodoncia,
endodoncia, extracción, cirugía de cordales, implantes, prótesis, limpiezas,
calzas, coronas y blanqueamientos, dependiendo el tratamiento que requiera el
paciente.

A lo largo de este periodo, la clínica dental ha manejado toda su información


manualmente, desde sus citas anotadas en una libreta, hasta el costo o
mensualidades de los tratamientos a realizarse y sus expedientes, donde
manejaba toda la información de cada paciente.

En consecuencia, de lo anterior, se presentan problemas de control de


información de sus pacientes, programaciones de citas e incluso hasta controles
de pago. Para esto, el proyecto se basa en desarrollar una base de datos que le
facilite la información relevante de sus pacientes y almacenar toda la información
de la clínica en un solo lugar para así evitar la redundancia y tener una mejor
organización.
3. Condiciones Actuales:

3.1 Equipo Disponible.

Libreta donde se lleva el registro de la información personal y médica de los


pacientes, así como el control de sus citas y expedientes.
4. Beneficios de Automatizar

● Mejor organización, almacenamiento, control de los expedientes y citas

de los pacientes.

● Fácil acceso a la información para el personal de la clínica odontológica.

● Reducción del tiempo dedicado a los procesos de búsqueda de los

historiales clínicos de los pacientes.


5. Restricciones del Sistema.

● La dueña del negocio será la administradora del sistema y podrá tener


acceso a todas sus funcionalidades.

● La secretaría solo podrá asignar y llevar el control de citas a los pacientes.

● Los doctores solo podrán ver la información de los pacientes y asignar sus
respectivas recetas médicas.
6. Descripción del Proceso.

a. Proceso Manual.

El paciente solicita atención por medio del WhatsApp de la Clínica Dental y la


secretaria le sugiere fechas en las que puede ser atendido, el paciente elige la
fecha que más le convenga y se procede a agendar su cita en la libreta de la
secretaria.
El día de la consulta, el paciente es valorado por la dueña de la Clínica Dental,
quien es la que determina qué tipo de tratamiento necesita, así como el doctor
que lo atenderá durante el tratamiento.
Si el paciente acepta el tratamiento, entonces se da apertura a un nuevo
expediente en el que se va almacenando toda su información personal y médica.
Dicho expediente es llenado de forma manual y almacenado en folders.
El paciente recibe una prescripción médica, la cual se hace de forma manual de
acuerdo al tratamiento que está recibiendo por el doctor que lo atiende.
Todo el proceso del o los tratamientos se va registrando de forma manual en un
historial clínico para cada paciente.
b. Proceso Automatizado.

El paciente solicita atención por medio del WhatsApp de la Clínica Dental y la


secretaria le sugiere fechas en las que puede ser atendido, el paciente elige la
fecha que más le convenga.
Se procede a agendar su cita en el sistema de información “Macana” en el
apartado de Citas y para ello se toman los datos personales del paciente para
registrarlo.
Si el paciente acepta el tratamiento, entonces se da apertura a un nuevo
expediente en el que se va almacenando toda su información personal y médica
directamente en los apartados correspondientes del sistema de información
“Macana”
El paciente recibe una prescripción médica de acuerdo al tratamiento que está
recibiendo por el doctor que lo atiende. Dicha receta se realiza en el sistema de
información y posteriormente se imprime para entregarla al paciente.
Todo el proceso del o los tratamientos se van registrando en un historial clínico
para cada paciente en el sistema de información, dicho historial clínico también
se podría imprimir en caso de que el paciente lo requiera.
7. Requerimientos del Sistema.
a. Requerimientos Funcionales.
1. El sistema debe realizar procesos que permitan almacenar los datos de

los pacientes, así como del personal que labora en la clínica dental.

2. El sistema debe brindar informes como historiales clínicos, recetas, así

como la información necesaria en cuanto a las citas agendadas de los

pacientes.

3. El sistema debe permitir una correcta administración de los datos de los

pacientes, ya sean sus tratamientos, citas, y del personal que labora en la

clínica.

b. Requerimientos No Funcionales.

1. El sistema debe permitir la autenticación de usuarios para determinar su

rol y permisos dentro del mismo.

2. La interfaz de usuario del sistema debe ser fácil de usar y mostrar la

información que este necesite.

3. El sistema debe ejecutarse tanto en computadoras de escritorio y

computadoras portátiles, permitiendo su adaptabilidad con sistemas

operativos Windows 10 o posteriores.

4. El sistema debe ser fácil de actualizar y permitir recibir soporte técnico,

permitiendo dar mejoras o correcciones de errores.


8. Modelado de la Base de Datos.

a. Diagrama Orientado a Objetos.


b. Diagrama de Entidad Relación.
c. Normalización de las Tablas.
9. Procedimientos Almacenados

9.1 Paciente

9.1.1 Insertar

--CREAMOS EL PROCEDIMIENTO PARA INSERTAR PACIENTES


CREATE PROCEDURE SPGET_INSERTAR_PACIENTE
@cedula NVARCHAR(16),
@Nombres NVARCHAR(30),
@Apellidos NVARCHAR(30),
@Sexo NVARCHAR(1),
@Ocupacion NVARCHAR(30),
@Telefono NVARCHAR(8),
@Direccion NVARCHAR(70),
@FechaNac DATE,
@NombreResponsable NVARCHAR(30),
@ApellidoResponsable NVARCHAR(30),
@UltimaVisita NVARCHAR(10),
@HabitoDental NVARCHAR(70),
@Fuma NVARCHAR(2),
@AnesteciadoAntes NVARCHAR(2),
@DolorApertura NVARCHAR(2),
@DolorDental NVARCHAR(2),
@AlergiaMedicamentos NVARCHAR(70),
@Estado NVARCHAR(10)

AS
BEGIN
--EN ESTA PARTE SE REALIZA LA CONSULTA PARA AGREGAR AL PACIENTE
INSERT INTO Paciente
(cedula, Nombres, Apellidos, Sexo, Ocupacion, Telefono, Direccion
,FechaNac,NombreResponsable,ApellidoResponsable, UltimaVisita, HabitoDental,Fuma,
AnesteciadoAntes, DolorApertura, DolorDental, AlergiaMedicamentos, Estado)
VALUES(@cedula, @Nombres, @Apellidos, @Sexo, @Ocupacion, @Telefono, @Direccion,
@FechaNac,@NombreResponsable,@ApellidoResponsable, @UltimaVisita, @HabitoDental,
@Fuma, @AnesteciadoAntes, @DolorApertura, @DolorDental,
@AlergiaMedicamentos,@Estado)

--SE MUESTRA LA INFORMACION UNA VEZ AGREGADO EL PACIENTE


SELECT cedula, Nombres, Apellidos, Sexo, Ocupacion, Telefono, Direccion
,FechaNac,NombreResponsable,ApellidoResponsable, UltimaVisita, HabitoDental,Fuma,
AnesteciadoAntes, DolorApertura, DolorDental, AlergiaMedicamentos, Estado FROM
Paciente

END

--Ejecutando el procedimiento almacenado

EXEC SPGET_INSERTAR_PACIENTE
'001-160802-1031P',
'Gabriela',
'Matamoros',
'F',
'Ing.Computacion',
'89274012',
'BO. Santa Ana',
'2004/12/31',
'Maria Rosa',
'Perez',
'2010/1/03','',
'NO',
'NO',
'NO',
'NO',
'Amoxicilina',
1

Resultado

9.1.2 Eliminar

--Procedimiento para eliminar un paciente.


CREATE PROCEDURE SPDELETE_PACIENTE
--Se determinan las variables que recibira por parametro este procedimiento.
@Cedula NVARCHAR(16)
AS

Begin
--Se muestra los registros que tiene la tabla paciente antes de la
eliminacion.
SELECT IdPaciente, Cedula, Nombres, Apellidos, Sexo,
Ocupacion, Telefono, Direccion, FechaNac, NombreResponsable,
ApellidoResponsable, UltimaVisita, HabitoDental, Fuma,
AnesteciadoAntes,
DolorApertura, DolorDental, AlergiaMedicamentos, Estado
FROM PACIENTE

--En esta parte se realiza la consulta para eliminar el paciente por su


cedula
DELETE FROM PACIENTE WHERE Cedula = @Cedula

--Se muestra los registros que tiene la tabla paciente despues de la


eliminacion.
SELECT IdPaciente, Cedula, Nombres, Apellidos, Sexo,
Ocupacion, Telefono, Direccion, FechaNac, NombreResponsable,
ApellidoResponsable, UltimaVisita, HabitoDental, Fuma,
AnesteciadoAntes,
DolorApertura, DolorDental, AlergiaMedicamentos, Estado
FROM PACIENTE
END

SELECT * FROM PACIENTE


EXECUTE SPDELETE_PACIENTE
'001-180806-1031X'

9.1.3 Actualizar

--CREAMOS EL PROCEDIMIENTO ALMACENADO PARA ACTUALIZAR LOS DATOS


--DE LOS PACIENTES, LA VALIDACION SE REALIZA POR MEDIO DE LA
--CEDULA DE LOS PACIENTES

CREATE PROCEDURE SPSET_ACTUALIZAR_PACIENTE


@Cedula NVARCHAR(16),
@Nombres NVARCHAR(30),
@Apellidos NVARCHAR(30),
@Ocupacion NVARCHAR(30),
@Telefono NVARCHAR(8),
@Direccion NVARCHAR(70),
@FechaNac DATE,
@NombreResponsable NVARCHAR(30),
@ApellidoResponsable NVARCHAR(30),
@HabitoDental NVARCHAR(70),
@Fuma NVARCHAR(2),
@AnesteciadoAntes NVARCHAR(2),
@DolorApertura NVARCHAR(2),
@DolorDental NVARCHAR(2),
@AlergiaMedicamentos NVARCHAR(70),
@Estado NVARCHAR(10)

AS
BEGIN

--ACTUALIZAMOS LOS DATOS


UPDATE PACIENTE
SET Nombres = @Nombres,
Apellidos = @Apellidos,
Ocupacion = @Ocupacion,
Telefono = @Telefono,
Direccion = @Direccion,
FechaNac = @FechaNac,
NombreResponsable = @NombreResponsable,
ApellidoResponsable = @ApellidoResponsable,
HabitoDental = @HabitoDental,
Fuma = @Fuma,
AnesteciadoAntes = @AnesteciadoAntes,
DolorApertura = @DolorApertura,
DolorDental = @DolorDental,
AlergiaMedicamentos = @AlergiaMedicamentos,
Estado = @Estado

--SE ACTUALIZARAN LOS DATOS DEL PACIENTE VALIDANDO SU CEDULA


WHERE IdPaciente = (SELECT IdPaciente WHERE Cedula = @Cedula)
--MOSTRAMOS POR PANTALLA LA TABLA PACIENTE
SELECT IdPaciente, Cedula, Nombres, Apellidos, Sexo, Ocupacion, Telefono,
Direccion, FechaNac, NombreResponsable, UltimaVisita, HabitoDental,
Fuma, AnesteciadoAntes, DolorApertura, DolorDental,
AlergiaMedicamentos,
Estado FROM PACIENTE

END

SELECT IdPaciente, Cedula, Nombres, Apellidos, Sexo, Ocupacion, Telefono,


Direccion, FechaNac, NombreResponsable, UltimaVisita, HabitoDental,
Fuma, AnesteciadoAntes, DolorApertura, DolorDental,
AlergiaMedicamentos,
Estado FROM PACIENTE

EXECUTE SPSET_ACTUALIZAR_PACIENTE
'002-170802-1041P',
'Juana',
'Torrez',
'Arquitecta',
'81111111',
'BO. Santa Rita',
'2002/12/31',
'',
'',
'',
'SI',
'SI',
'NO',
'NO',
'Penicilina',
1

9.2 Doctor

9.2.1 Insertar

--CREAMOS EL PROCEDIMIENTO PARA INSERTAR DOCTOR


CREATE PROCEDURE SPGET_INSERTAR_DOCTOR
@Cedula NVARCHAR(16),
@Nombres NVARCHAR(30),
@Apellidos NVARCHAR(30),
@Sexo NVARCHAR(2),
@Telefono NVARCHAR(8),
@Direccion NVARCHAR(70),
@FechaNac DATE,
@Email NVARCHAR(20),
@Especialidad NVARCHAR(20),
@Estado NVARCHAR(10)

AS
BEGIN
--EN ESTA PARTE SE REALIZA LA CONSULTA PARA AGREGAR AL DOCTOR
INSERT INTO DOCTOR(Cedula, Nombres, Apellidos, Sexo, Telefono, Direccion,
FechaNac, Email, Especialidad, Estado)
VALUES(@Cedula, @Nombres, @Apellidos, @Sexo, @Telefono, @Direccion,
@FechaNac, @Email, @Especialidad, @Estado)

--SE MUESTRA LA INFORMACION UNA VEZ AGREGADO EL DOCTOR


SELECT Cedula, Nombres, Apellidos, Sexo, Telefono, Direccion, FechaNac,
Email, Especialidad, Estado FROM DOCTOR
END

--Ejecutando el procedimiento almacenado

EXECUTE SPGET_INSERTAR_DOCTOR
'001-031201-1010X',
'Jose Antonio',
'Rivas Urbina',
'M',
'89894848',
'Bo. Ruben Dario Norte',
'03/12/2001',
'jose@gmail.com',
'Odontologia General',
'ACTIVO'

9.2.2 Eliminar

--Procedimiento para eliminar un doctor.


CREATE PROCEDURE SPDELETE_DOCTOR
--Se determinan las variables que recibira por parametro este procedimiento.
@Cedula NVARCHAR(16)
AS

BEGIN
--Se muestra los registros que tiene la tabla Doctor antes de la
eliminacion.
SELECT IdDoctor, Cedula, Nombres, Apellidos, Sexo, Telefono,
Direccion, FechaNac, Email, Especialidad, Estado
FROM DOCTOR

--En esta parte se realiza la consulta para eliminar un registro de Doctor


por su cedula
DELETE FROM DOCTOR WHERE Cedula = @Cedula

--Se muestra los registros que tiene la tabla Doctor despues de la


eliminacion.
SELECT IdDoctor, Cedula, Nombres, Apellidos, Sexo, Telefono,
Direccion, FechaNac, Email, Especialidad, Estado
FROM DOCTOR
END

SELECT IdDoctor, Cedula, Nombres, Apellidos, Sexo, Telefono,


Direccion, FechaNac, Email, Especialidad, Estado
FROM DOCTOR

EXEC SPDELETE_DOCTOR
'001-110578-1012A'

9.2.3 Actualizar

--CREAMOS EL PROCEDIMIENTO PARA ACTUALIZAR LA INFORMACION DEL DOCTOR


CREATE PROCEDURE SPSET_ACTUALIZAR_DOCTOR
@IdDoctor INT,
@Cedula NVARCHAR(16),
@Nombres NVARCHAR(30),
@Apellidos NVARCHAR(30),
@Sexo NVARCHAR(2),
@Telefono NVARCHAR(8),
@Direccion NVARCHAR(70),
@FechaNac DATE,
@Email NVARCHAR(20),
@Especialidad NVARCHAR(20),
@Estado NVARCHAR(10)
AS
BEGIN
--SE ACTUALIZAN LOS DATOS
UPDATE DOCTOR
SET NombreS = @Nombres, Apellidos = @Apellidos, Telefono = @Telefono,
Direccion = @Direccion, FechaNac = @FechaNac, Email = @Email,
Estado = @Estado, Especialidad = @Especialidad
WHERE IdDoctor = @IdDoctor AND Cedula = @Cedula

--SE MUESTRAN LOS DATOS DESPUES DE LA ACTUALIZACION


SELECT IdDoctor, Cedula, Nombres, Apellidos, Sexo, Telefono, Direccion,
FechaNac, Email, Especialidad, Estado FROM Doctor

END
SELECT IdDoctor, Cedula, Nombres, Apellidos, Sexo, Telefono, Direccion, FechaNac,
Email, Especialidad, Estado FROM Doctor

EXECUTE SPSET_ACTUALIZAR_DOCTOR
1,
'001-031201-1010X',
'Jose Antonio',
'Rivas Urbina',
'M',
'89894848',
'Bo. Ruben Dario Norte',
'03/12/2001',
'jose@gmail.com',
'Odontologia General',
'ACTIVO'

9.3 Secretaria

9.3.1 Insertar

--CREAMOS EL PROCEDIMIENTO PARA AGREGAR SECRETARI@


CREATE PROCEDURE SPGET_INSERTAR_SECRETARIA
@Cedula NVARCHAR(16),
@Nombres NVARCHAR(30),
@Apellidos NVARCHAR(30),
@FechaNac DATE,
@Sexo NVARCHAR(2),
@Direccion NVARCHAR(70),
@Telefono NVARCHAR(8),
@Email NVARCHAR(20),
@Estado NVARCHAR(10)

AS
BEGIN
--EN ESTA PARTE SE REALIZA LA CONSULTA PARA AGREGAR AL SECRETARI@
INSERT INTO SECRETARIA (Cedula, Nombres, Apellidos, FechaNac, Sexo, Direccion,
Telefono, Email, Estado)
VALUES(@Cedula, @Nombres, @Apellidos, @FechaNac, @Sexo, @Direccion, @Telefono,
@Email, @Estado)
--SE MUESTRA LA INFORMACION UNA VEZ AGREGADO EL SECRETARI@
SELECT Cedula, Nombres, Apellidos, FechaNac, Sexo, Direccion, Telefono, Email,
Estado FROM SECRETARIA

END
EXECUTE SPGET_INSERTAR_SECRETARIA
'001-162802-1031X',
'Fatima',
'Monje',
'1980/10/3',
'F',
'Camilo Ortega',
'76895432',
'Fatima@gmail.com',
'ACTIVO'

9.3.2 Eliminar

--Procedimiento para eliminar una Secretaria.


CREATE PROCEDURE SPDELETE_SECRETARIA
--Se determinan las variables que recibira por parametro este procedimiento.
@Cedula NVARCHAR(16)
AS

BEGIN
--Se muestra los registros que tiene la tabla Secretaria antes de la
eliminacion.
SELECT IdSecretaria, Cedula, Nombres, Apellidos, FechaNac, Sexo,
Direccion, Telefono, Email, Estado FROM SECRETARIA

--En esta parte se realiza la consulta para eliminar un registro de


Secretaria por su cedula.
DELETE FROM SECRETARIA WHERE Cedula = @Cedula

--Se muestra los registros que tiene la tabla Secretaria despues de la


eliminacion.
SELECT IdSecretaria, Cedula, Nombres, Apellidos, FechaNac, Sexo,
Direccion, Telefono, Email, Estado FROM SECRETARIA
END

EXEC SPDELETE_SECRETARIA
'002-262802-1031X'
9.3.3 Actualizar

--CREAMOS EL PROCEDIMIENTO PARA ACTUALIZAR LA INFORMACION DE SECRETARIA


CREATE PROCEDURE SPSET_ACTUALIZAR_SECRETARIA
@IdSecretaria INT,
@Cedula NVARCHAR(16),
@Nombres NVARCHAR(30),
@Apellidos NVARCHAR(30),
@FechaNac DATE,
@Sexo NVARCHAR(2),
@Direccion NVARCHAR(70),
@Telefono NVARCHAR(8),
@Email NVARCHAR(20),
@Estado NVARCHAR(10)

AS
BEGIN
--SE ACTUALIZAN LOS DATOS
UPDATE SECRETARIA
SET Nombres = @Nombres, Apellidos=@Apellidos, FechaNac = @FechaNac, Sexo =
@Sexo,
Direccion = @Direccion, Telefono = @Telefono, Estado = @Estado
WHERE IdSecretaria = @IdSecretaria AND Cedula = @Cedula

--SE MUESTRAN LOS DATOS DESPUES DE LA ACTUALIZACION


SELECT IdSecretaria, Cedula, Nombres, Apellidos, FechaNac, Sexo,
Direccion, Telefono, Email, Estado FROM SECRETARIA

END

SELECT IdSecretaria, Cedula, Nombres, Apellidos, FechaNac, Sexo, Direccion,


Telefono, Email, Estado FROM SECRETARIA

EXECUTE SPSET_ACTUALIZAR_SECRETARIA
1,
'001-162802-1031X',
'Sara',
'Monje',
'1980/10/3',
'F',
'Camilo Ortega',
'88895432',
'Fatima@gmail.com',
'ACTIVO'
9.4 Cita

9.4.1 Insertar

--CREAMOS EL PROCEDIMIENTO PARA AGREGAR CITAS


CREATE PROCEDURE SPGET_INSERTAR_CITA
@Motivo NVARCHAR(100),
@Fecha DATE,
@Hora NVARCHAR(8),
@EstadoAsignacion NVARCHAR(11),
@IdSecretaria INT,
@CedulaPaciente NVARCHAR(16),
@EstadoAsistencia NVARCHAR(10)

AS
BEGIN

--LA INSERCIÓN DE LAS CITAS SE REALIZA POR MEDIO DE LA CEDULA DEL PACIENTE PARA
LLENAR EL CAMPO IDPACIENTE

INSERT INTO CITA(Motivo, Fecha, Hora, EstadoAsignacion, IdSecretaria, IdPaciente,


EstadoAsistencia)
VALUES (@Motivo, @Fecha, @Hora, @EstadoAsignacion, @IdSecretaria, (SELECT
IdPaciente FROM PACIENTE WHERE Cedula = @CedulaPaciente), @EstadoAsistencia)

--MOSTRAMOS EL RESULTADO DE LA INSERCION, NOMBRES Y APELLIDOS DE LOS PACIENTES


--ASI COMO NOMBRES Y APELLIDOS DEL SECRETARIO QUIEN REGISTRO LA CITA
SELECT IdCita, Motivo, Fecha, Hora, EstadoAsignacion, s.Nombres + ' ' +
s.Apellidos AS 'Secretario', p.Nombres + ' ' + p.Apellidos AS 'Paciente',
EstadoAsistencia
FROM dbo.CITA AS CI INNER JOIN
dbo.PACIENTE AS p ON p.IdPaciente = CI.IdPaciente INNER JOIN
dbo.SECRETARIA AS s ON s.IdSecretaria = CI.IdSecretaria

END

EXECUTE SPGET_INSERTAR_CITA
'Irregularidad en los Caninos',
'11/10/2022',
'10:00 AM',
'NO ASIGNADA',
1,
'001-160802-1031P',
'PENDIENTE'
9.4.2 Eliminar

--Procedimiento para eliminar una Cita.


CREATE PROCEDURE SPDELETE_CITA
--Se determinan las variables que recibira por parametro este procedimiento.
@IdCita INT

AS
BEGIN
--Se muestra los registros que tiene la tabla Cita antes de la
eliminacion.
SELECT IdCita, Motivo, Fecha, Hora, EstadoAsignacion, IdSecretaria,
idPaciente, EstadoAsistencia FROM Cita

--En esta parte se realiza la consulta para eliminar un registro de Cita


por su id
DELETE FROM Cita WHERE IdCita = @IdCita

--Se muestra los registros que tiene la tabla Cita despues de la


eliminacion.
SELECT IdCita, Motivo, Fecha, Hora, EstadoAsignacion, IdSecretaria,
idPaciente, EstadoAsistencia FROM Cita
END

EXECUTE SPDELETE_CITA
2

9.4.3 Actualizar

--CREAMOS EL PROCEDIMIENTO PARA ACTUALIZAR LA INFORMACION DE UNA CITA


--UTILIZAMOS LA CEDULA DE PACIENTE, SECRETARIA Y DOCTOR PARA REALIZAR UN CAMBIO
DE ID
CREATE PROCEDURE SPSET_ACTUALIZAR_CITA
@IdCita INT,
@Motivo NVARCHAR(100),
@Fecha DATE,
@Hora NVARCHAR(8),
@EstadoAsignacion NVARCHAR(11),
@CedulaSecretaria NVARCHAR(16),
@CedulaPaciente NVARCHAR(16),
@EstadoAsistencia NVARCHAR(10)

AS
BEGIN
--SE ACTUALIZAN LOS DATOS
UPDATE CITA
SET Motivo = @Motivo, Fecha = @Fecha, Hora = @Hora, EstadoAsignacion =
@EstadoAsignacion,
IdSecretaria = (SELECT IdSecretaria FROM SECRETARIA WHERE Cedula =
@CedulaSecretaria),
IdPaciente = (SELECT IdPaciente FROM PACIENTE WHERE Cedula =
@CedulaPaciente), EstadoAsistencia = @EstadoAsistencia
WHERE IdCita = @IdCita

--SE MUESTRAN LOS DATOS ACTUALIZADOS DE LA CITA


SELECT IdCita, Motivo, Fecha, Hora, EstadoAsignacion, s.Nombres + ' ' +
s.Apellidos AS 'Secretario',
p.Nombres + ' ' + p.Apellidos AS 'Paciente', EstadoAsistencia
FROM dbo.CITA AS CI INNER JOIN
dbo.PACIENTE AS p ON p.IdPaciente = CI.IdPaciente INNER JOIN
dbo.SECRETARIA AS s ON s.IdSecretaria = CI.IdSecretaria

END

SELECT * from CITA

EXEC SPSET_ACTUALIZAR_CITA
2,
'Caries en los dientes molares',
'2022/11/10',
'14:30:00',
'NO ASIGNADO',
'001-162802-1031X',
'001-160802-1031P',
'CANCELADA'
9.5 Cita Doctor

9.5.1 Insertar

--CREAMOS EL PROCEDIMIENTO PARA AGREGAR CITAS DEL DOCTOR


CREATE PROCEDURE SPGET_INSERTAR_CITA_DOCTOR
@IdCita INT,
@IdSecretaria INT,
@CedulaPaciente NVARCHAR(16),
@IdDoctor INT

AS
BEGIN

--REALIZAMOS LA ASIGNACION DE UN DOCTOR A UNA CONSULTA


--SE NECESITA LA CEDULA DEL PACIENTE PARA LA VALIDACIÓN DE SU ID
INSERT INTO CITA_DOCTOR (IdCita, IdSecretaria, IdPaciente, IdDoctor)
VALUES(@IdCita, @IdSecretaria, (SELECT IdPaciente FROM PACIENTE WHERE Cedula =
@CedulaPaciente), @IdDoctor)

--MOSTRAMOS TODA LA INFORMACIÓN DE LA TABLA


SELECT IdCita, s.Nombres + ' ' + s.Apellidos AS 'Secretario', p.Nombres + ' ' +
p.Apellidos AS 'Paciente', d.Nombres + ' ' + d.Apellidos AS 'Doctor'
FROM dbo.CITA_DOCTOR AS CD INNER JOIN
dbo.SECRETARIA AS s ON s.IdSecretaria = CD.IdSecretaria INNER JOIN
dbo.PACIENTE AS p ON p.IdPaciente = CD.IdPaciente INNER JOIN
dbo.DOCTOR AS d ON d.IdDoctor = CD.IdDoctor

END

EXECUTE SPGET_INSERTAR_CITA_DOCTOR
2,
1,
'001-160802-1031P',
1

9.5.2 Eliminar

--Procedimiento para eliminar una Cita del doctor.


CREATE PROCEDURE SPDELETE_CITA_DOCTOR
--Se determinan las variables que recibira por parametro este procedimiento.
@IdCitaDoctor INT

AS
BEGIN
--Se muestra los registros que tiene la tabla CitaDoctor antes de la
eliminacion.
SELECT IdCitaDoctor, IdCita, s.Nombres + ' ' + s.Apellidos AS 'Secretario',
p.Nombres + ' ' + p.Apellidos AS 'Paciente',
d.Nombres + ' ' + d.Apellidos AS 'Doctor'
FROM dbo.CITA_DOCTOR AS CD INNER JOIN
dbo.SECRETARIA AS s ON s.IdSecretaria = CD.IdSecretaria INNER JOIN
dbo.PACIENTE AS p ON p.IdPaciente = CD.IdPaciente INNER JOIN
dbo.DOCTOR AS d ON d.IdDoctor = CD.IdDoctor

--En esta parte se realiza la consulta para eliminar un registro de


CitaDoctor por su id
DELETE FROM CITA_DOCTOR WHERE IdCitaDoctor = @IdCitaDoctor

--Se muestra los registros que tiene la tabla CitaDoctor despues de la


eliminacion.
SELECT IdCitaDoctor, IdCita, s.Nombres + ' ' + s.Apellidos AS 'Secretario',
p.Nombres + ' ' + p.Apellidos AS 'Paciente',
d.Nombres + ' ' + d.Apellidos AS 'Doctor'
FROM dbo.CITA_DOCTOR AS CD INNER JOIN
dbo.SECRETARIA AS s ON s.IdSecretaria = CD.IdSecretaria INNER JOIN
dbo.PACIENTE AS p ON p.IdPaciente = CD.IdPaciente INNER JOIN
dbo.DOCTOR AS d ON d.IdDoctor = CD.IdDoctor
END

EXECUTE SPDELETE_CITA_DOCTOR
1

9.5.3 Actualizar

--CREAMOS EL PROCEDIMIENTO PARA ACTUALIZAR LA INFORMACION DE LA CITA QUE TIENE


ASIGNADA EL DOCTOR
--UTILIZAMOS LA CEDULA DE PACIENTE, SECRETARIA Y DOCTOR PARA REALIZAR UN CAMBIO
DE ID
CREATE PROCEDURE SPSET_CITA_DOCTOR
@IdCitaDoctor INT,
@IdCita INT,
@CedulaSecretaria NVARCHAR(16),
@CedulaPaciente NVARCHAR(16),
@CedulaDoctor NVARCHAR(16)
AS
BEGIN
--SE ACTUALIZAN LOS DATOS.
UPDATE CITA_DOCTOR SET
IdCita = @IdCita,
IdSecretaria = (SELECT IdSecretaria FROM SECRETARIA WHERE
Cedula = @CedulaSecretaria),
IdPaciente = (SELECT IdPaciente FROM PACIENTE WHERE Cedula =
@CedulaPaciente),
IdDoctor = (SELECT IdDoctor FROM DOCTOR WHERE Cedula =
@CedulaDoctor)
WHERE @IdCitaDoctor = IdCitaDoctor

--SE MUESTRAN LOS DATOS ACTUALIZADOS DE LA CITA DEL DOCTOR


SELECT IdCitaDoctor, IdCita, s.Nombres + ' ' + s.Apellidos AS
'Secretario', p.Nombres + ' ' + p.Apellidos AS 'Paciente',
d.Nombres + ' ' + d.Apellidos AS 'Doctor'
FROM dbo.CITA_DOCTOR AS CD INNER JOIN
dbo.SECRETARIA AS s ON s.IdSecretaria = CD.IdSecretaria INNER JOIN
dbo.PACIENTE AS p ON p.IdPaciente = CD.IdPaciente INNER JOIN
dbo.DOCTOR AS d ON d.IdDoctor = CD.IdDoctor

END

EXECUTE SPSET_CITA_DOCTOR
2,
2,
'001-162802-1031X',
'001-160802-1031P',
'001-031201-1010X'

9.6 Historial_Clinico

9.6.1 Insertar

CREATE PROCEDURE SPGET_INSERTAR_HISTORIAL_CLINICO


@CedulaPaciente NVARCHAR(16),
@IdTratamiento INT,
@IdServicio INT,
@IdOdontograma INT

AS
BEGIN

--INGRESAMOS LOS DATOS DEL HISTORIAL CLINICO,


--UTILIZAMOS LA CEDULA DEL PACIENTE PARA VALIDAR SU ID
INSERT INTO HISTORIAL_CLINICO (IdPaciente, IdTratamiento, IdServicio,
IdOdontograma)VALUES
((SELECT IdPaciente FROM PACIENTE WHERE Cedula = @CedulaPaciente),
@IdTratamiento, @IdServicio, @IdOdontograma)

--MOSTRAMOS EL HISTORIAL CLINICO CON LOS NOMBRES Y APELLIDOS DEL PACIENTE, ASI
MISMO EL DOCTOR,
--PRECIO TOTAL DEL TRATAMIENTO QUE SE REALIZO EL PACIENTE Y SU RESPECTIVO
ODONTOGRAMA
SELECT IdHistorial, p.Nombres + ' ' + p.Apellidos AS 'Paciente', s.Descripcion AS
'Servicio',
o.PiezaDental + ' - ' + o.Observaciones AS 'Odontograma', t.CostoTotal AS
'Costo Total'
FROM dbo.HISTORIAL_CLINICO AS HC INNER JOIN
dbo.PACIENTE AS p ON p.IdPaciente = HC.IdPaciente INNER JOIN
dbo.TRATAMIENTO AS t ON t.IdTratamiento = HC.IdTratamiento INNER JOIN
dbo.SERVICIOS AS s ON s.IdServicio = HC.IdServicio INNER JOIN
dbo.ODONTOGRAMA AS o ON o.IdOdontograma = HC.IdOdontograma

END

EXECUTE SPGET_INSERTAR_HISTORIAL_CLINICO
'001-160802-1031P',
1,
1,
1

9.6.2 Eliminar

--Procedimiento para eliminar un HistorialClinico.


CREATE PROCEDURE SPDELETE_HISTORIAL_CLINICO
--Se determinan las variables que recibira por parametro este procedimiento.
@IdHistorial INT

AS
BEGIN
--Se muestra los registros que tiene la tabla HistorialClinico
antes de la eliminacion.
SELECT IdHistorial, p.Nombres + ' ' + p.Apellidos AS 'Paciente',
s.Descripcion AS 'Servicio',
o.PiezaDental + ' - ' + o.Observaciones AS 'Odontograma',
t.CostoTotal AS 'Costo Total'
FROM dbo.HISTORIAL_CLINICO AS HC INNER JOIN
dbo.PACIENTE AS p ON p.IdPaciente = HC.IdPaciente INNER JOIN
dbo.TRATAMIENTO AS t ON t.IdTratamiento = HC.IdTratamiento INNER
JOIN
dbo.SERVICIOS AS s ON s.IdServicio = t.IdServicio INNER JOIN
dbo.ODONTOGRAMA AS o ON o.IdOdontograma = HC.IdOdontograma
--En esta parte se realiza la consulta para eliminar un registro de
HistorialClinico por su id
DELETE FROM HISTORIAL_CLINICO WHERE @IdHistorial = IdHistorial
--Se muestra los registros que tiene la tabla HistorialClinico despues de
la eliminacion.
SELECT IdHistorial, p.Nombres + ' ' + p.Apellidos AS 'Paciente',
s.Descripcion AS 'Servicio',
o.PiezaDental + ' - ' + o.Observaciones AS 'Odontograma',
t.CostoTotal AS 'Costo Total'
FROM dbo.HISTORIAL_CLINICO AS HC INNER JOIN
dbo.PACIENTE AS p ON p.IdPaciente = HC.IdPaciente INNER JOIN
dbo.TRATAMIENTO AS t ON t.IdTratamiento = HC.IdTratamiento INNER
JOIN
dbo.SERVICIOS AS s ON s.IdServicio = t.IdServicio INNER JOIN
dbo.ODONTOGRAMA AS o ON o.IdOdontograma = HC.IdOdontograma
END

9.6.3 Actualizar

--CREAMOS EL PROCEDIMIENTO ALMACENADO PARA ACTUALIZAR EL HISTORIAL


--CLINICO DE UN PACIENTE, UTILIZAMOS LA CEDULA DEL MISMO PARA
--VALIDAR SU ID

alter PROCEDURE SPSET_ACTUALIZAR_HISTORIAL_CLINICO


@CedulaPaciente NVARCHAR(16),
@IdTratamiento INT,
@IdOdontograma INT

AS
BEGIN

--INGRESAMOS LOS DATOS A ACTUALIZAR TOMANDO COMO REFERENCIA


--EL ID DEL PACIENTE POR MEDIO DE SU CEDULA
UPDATE HISTORIAL_CLINICO SET
IdTratamiento = @IdTratamiento,
IdOdontograma = @IdOdontograma
WHERE IdPaciente = (SELECT IdPaciente FROM PACIENTE WHERE Cedula =
@CedulaPaciente)

--MOSTRAMOS LOS DATOS DE LA TABLA HISTORIAL CLINICO


SELECT IdHistorial, p.Nombres + ' ' + p.Apellidos AS 'Paciente',
s.Descripcion AS 'Servicio',
o.PiezaDental + ' - ' + o.Observaciones AS 'Odontograma',
t.CostoTotal AS 'Costo Total'
FROM dbo.HISTORIAL_CLINICO AS HC INNER JOIN
dbo.PACIENTE AS p ON p.IdPaciente = HC.IdPaciente INNER JOIN
dbo.TRATAMIENTO AS t ON t.IdTratamiento = HC.IdTratamiento INNER
JOIN
dbo.SERVICIOS AS s ON s.IdServicio = t.IdServicio INNER JOIN
dbo.ODONTOGRAMA AS o ON o.IdOdontograma = HC.IdOdontograma

END

EXECUTE SPSET_ACTUALIZAR_HISTORIAL_CLINICO
'001-160802-1031P',
1,
1

9.7 Odontograma

9.7.1 Insertar

CREATE PROCEDURE SPGET_INSERTAR_ODONTOGRAMA


@PiezaDental NVARCHAR(20),
@Observaciones NVARCHAR(100)

AS
BEGIN

--REGISTRAMOS DATOS DE ODONTOGRAMAS,


--CONSISTEN EN LA UBICACIÓN DE UNA PIEZA DENTAL Y SU AFECTACIÓN
INSERT INTO ODONTOGRAMA(PiezaDental, Observaciones)VALUES(@PiezaDental,
@Observaciones)

SELECT IdOdontograma, PiezaDental, Observaciones FROM ODONTOGRAMA

END

EXECUTE SPGET_INSERTAR_ODONTOGRAMA
'Incisivo Central 11',
'Amalgama Desadaptada'
9.7.2 Eliminar

--Procedimiento para eliminar un registro de Odontograma.


CREATE PROCEDURE SPDELETE_ODONTOGRAMA
--Se determinan las variables que recibira por parametro este procedimiento.
@IdOdontograma INT
AS

BEGIN
--Se muestra los registros que tiene la tabla Odontograma antes de la
eliminacion.
SELECT IdOdontograma, PiezaDental, Observaciones FROM ODONTOGRAMA

--En esta parte se realiza la consulta para eliminar un registro de


Odontograma por su id
DELETE FROM ODONTOGRAMA WHERE @IdOdontograma = IdOdontograma

--Se muestra los registros que tiene la tabla Odontograma despues de la


eliminacion.
SELECT IdOdontograma, PiezaDental, Observaciones FROM ODONTOGRAMA
END

EXECUTE SPDELETE_ODONTOGRAMA
3

9.7.3 Actualizar

--Actualiza los datos de un odontograma


--y devuelve los datos actualizados del odontograma
CREATE PROCEDURE SPSET_ACTUALIZAR_ODONTOGRAMA
@IdOdontograma INT,
@PiezaDental NVARCHAR(20),
@Observaciones NVARCHAR(100)

AS
BEGIN

-- ACTUALIZAR LOS DATOS DEL ODONTOGRAMA


UPDATE ODONTOGRAMA
SET PiezaDental = @PiezaDental, Observaciones = @Observaciones
WHERE IdOdontograma = @IdOdontograma

-- OBTENER LOS DATOS ACTUALIZADOS DEL ODONTOGRAMA


SELECT IdOdontograma, PiezaDental, Observaciones
FROM ODONTOGRAMA

END

EXECUTE SPSET_ACTUALIZAR_ODONTOGRAMA
1,
'Incisivo Central 12',
'Amalgama Desadaptada'

9.8 Servicios

9.8.1 Insertar

--CREAMOS EL PROCEDIMIENTO PARA AGREGAR LOS SERVICIOS


CREATE PROCEDURE SPGET_INSERTAR_SERVICIO
@Descripcion NVARCHAR(30),
@Precio FLOAT

AS
BEGIN

--REALIZAMOS EL REGISTRO DE SERVICIOS QUE OFRECE LA CLINICA


--ASI COMO LOS PRECIOS DE LOS MISMOS
INSERT INTO SERVICIOS (Descripcion, Precio) VALUES
(@Descripcion, @Precio)

SELECT Descripcion, Precio FROM SERVICIOS


END

EXECUTE SPGET_INSERTAR_SERVICIO
'Consulta Dental',
10.00

9.8.2 Eliminar

--Procedimiento para eliminar una Servicio.


CREATE PROC SPDELETE_SERVICIO
--Se determinan las variables que recibira por parametro este procedimiento.
@IdServicio int
AS

BEGIN
--Se muestra los registros que tiene la tabla Servicio antes de la
eliminacion.
SELECT IdServicio, Descripcion, Precio FROM SERVICIOS

--En esta parte se realiza la consulta para eliminar un registro de


Servicio por su id
DELETE FROM SERVICIOS WHERE IdServicio = @IdServicio

--Se muestra los registros que tiene la tabla Servicio despues de la


eliminacion.
SELECT IdServicio, Descripcion, Precio FROM SERVICIOS

END

EXECUTE SPDELETE_SERVICIO
5
9.8.3 Actualizar

CREATE PROCEDURE SPSET_ACTUALIZAR_SERVICIO


@IdServicio INT,
@Descripcion NVARCHAR(30),
@Precio FLOAT

AS
BEGIN

-- ACTUALIZAR LOS DATOS DEL SERVICIO


UPDATE SERVICIOS
SET Descripcion = @Descripcion, Precio = @Precio
WHERE IdServicio = @IdServicio

-- OBTENER LOS DATOS ACTUALIZADOS DEL SERVICIO


SELECT IdServicio, Descripcion, Precio
FROM SERVICIOS

END

EXECUTE SPSET_ACTUALIZAR_SERVICIO
1,
'Carillas dentales',
200
9.9 Tratamiento

9.9.1 Insertar

--CREAMOS EL PROCEDIMIENTO PARA AGREGAR TRATAMIENTO


ALTER PROCEDURE SPGET_INSERTAR_TRATAMIENTO
@CostoTotal FLOAT,
@Fecha DATE,
@IdServicio INT
AS

BEGIN
--EN ESTA PARTE SE REALIZA LA CONSULTA PARA AGREGAR EL TRATAMIENTO
INSERT INTO TRATAMIENTO(CostoTotal, Fecha, IdServicio)VALUES
(@CostoTotal, @Fecha, @IdServicio)
--SE MUESTRA LA INFORMACION UNA VEZ AGREGADO EL TRATAMIENTO
SELECT IdTratamiento, CostoTotal, Fecha, s.Descripcion AS 'Servicio'
FROM dbo.TRATAMIENTO AS T INNER JOIN
dbo.SERVICIOS AS s ON s.IdServicio = T.IdServicio

END

EXECUTE SPGET_INSERTAR_TRATAMIENTO
5.00,
'2022-10-11',
1

9.9.2 Eliminar

--Procedimiento para eliminar un Tratamiento.


CREATE PROCEDURE SPDELETE_TRATAMIENTO
--Se determinan las variables que recibira por parametro este procedimiento.
@IdTratamiento INT
AS

BEGIN
--Se muestra los registros que tiene la tabla Tratamiento antes de la
eliminacion.
SELECT IdTratamiento, CostoTotal, Fecha, s.Descripcion AS 'Servicio'
FROM dbo.TRATAMIENTO AS T INNER JOIN
dbo.SERVICIOS AS s ON s.IdServicio = T.IdServicio

--En esta parte se realiza la consulta para eliminar un registro de


Tratamiento por su id
DELETE FROM TRATAMIENTO WHERE IdTratamiento = @IdTratamiento

--Se muestra los registros que tiene la tabla Tratamiento despues de la


eliminacion.
SELECT IdTratamiento, CostoTotal, Fecha, s.Descripcion AS 'Servicio'
FROM dbo.TRATAMIENTO AS T INNER JOIN
dbo.SERVICIOS AS s ON s.IdServicio = T.IdServicio

END

9.9.3 Actualizar

--CREAMOS EL PROCEDIMIENTO ALMACENADO PARA ACTUALIZAR TRATAMIENTOS


--QUE SE APLICA A LOS PACIENTES, LA VALIDACION SE REALIZA POR MEDIO
--DE LA CEDULA DEL PACIENTE

CREATE PROCEDURE SPSET_ACTUALIZAR_TRATAMIENTO


@IdTratamiento INT,
@CostoTotal FLOAT,
@Fecha DATE,
@IdServicio INT

AS
BEGIN

--INGRESAMOS LOS DATOS A ACTUALIZAR


UPDATE TRATAMIENTO SET
CostoTotal = @CostoTotal,
Fecha = @Fecha,
IdServicio = @IdServicio
WHERE IdTratamiento = @IdTratamiento

--MOSTRAMOS LOS DATOS DE LA TABLA TRATAMIENTOS


SELECT IdTratamiento, CostoTotal, Fecha, s.Descripcion AS 'Servicio'
FROM dbo.TRATAMIENTO AS T INNER JOIN
dbo.SERVICIOS AS s ON s.IdServicio = T.IdServicio
END

EXECUTE SPSET_ACTUALIZAR_TRATAMIENTO
1,
10,
'2022-10-11',
1
9.10 Receta

9.10.1 Insertar

CREATE PROCEDURE SPGET_INSERTAR_RECETA


@NombreMedicamento NVARCHAR(60),
@Presentacion NVARCHAR(60),
@ViaAdministracion NVARCHAR(60),
@Dosis NVARCHAR(20),
@Frecuencia NVARCHAR(30),
@Tiempo NVARCHAR(30),
@Fecha DATE,
@CedulaPaciente NVARCHAR(16),
@IdDoctor INT

AS
BEGIN

--REGISTRAMOS LA RECETA DEL PACIENTE, UTILIZAMOS LA CEDULA DEL PACIENTE PARA


VALIDAR SU INFORMACIÓN
INSERT INTO RECETA(NombreMedicamento, Presentacion, ViaAdministracion, Dosis,
Frecuencia, Tiempo, Fecha, IdDoctor, IdPaciente)
VALUES(@NombreMedicamento, @Presentacion, @ViaAdministracion, @Dosis,
@Frecuencia, @Tiempo, @Fecha,
(SELECT IdPaciente FROM PACIENTE WHERE Cedula = @CedulaPaciente), @IdDoctor)

--MOSTRAMOS LOS DETALLES DE LA RECETA, NOMBRES Y APELLIDOS DEL PACIENTE


--ASI MISMO LOS NOMBRES Y APELLIDOS DEL DOCTOR QUE EMITIO LA RECETA
SELECT IdReceta, NombreMedicamento, Presentacion, ViaAdministracion, Dosis,
Frecuencia, Tiempo, Fecha, d.Nombres + ' ' + d.Apellidos AS 'Doctor', p.Nombres +
' ' + p.Apellidos AS 'Paciente'
FROM dbo.RECETA AS RE INNER JOIN
dbo.DOCTOR AS d ON d.IdDoctor = RE.IdDoctor INNER JOIN
dbo.PACIENTE AS p ON p.IdPaciente = RE.IdPaciente

END

EXECUTE SPGET_INSERTAR_RECETA
'Listerine Sabor Suave',
'Enjuague Bucal',
'Oral',
'500ml',
'30 segundos',
'Dos veces al día',
'2022-10-11',
'001-160802-1031P',
1

9.10.2 Eliminar

--Procedimiento para eliminar una receta.


CREATE PROCEDURE SPDELETE_RECETA
--Se determinan las variables que recibira por parametro este procedimiento.
@IdReceta INT

AS

BEGIN
--Se muestra los registros que tiene la tabla Receta antes de la
eliminacion.
SELECT IdReceta, NombreMedicamento, Presentacion, ViaAdministracion, Dosis,
Frecuencia, Tiempo, Fecha,
d.Nombres + ' ' + d.Apellidos AS 'Doctor', p.Nombres + ' ' + p.Apellidos AS
'Paciente'
FROM dbo.RECETA AS RE INNER JOIN
dbo.DOCTOR AS d ON d.IdDoctor = RE.IdDoctor INNER JOIN
dbo.PACIENTE AS p ON p.IdPaciente = RE.IdPaciente

--En esta parte se realiza la consulta para eliminar un registro de Receta


por su id
DELETE FROM RECETA WHERE IdReceta = @IdReceta

--Se muestra los registros que tiene la tabla Receta despues de la


eliminacion.
SELECT IdReceta, NombreMedicamento, Presentacion, ViaAdministracion, Dosis,
Frecuencia, Tiempo, Fecha,
d.Nombres + ' ' + d.Apellidos AS 'Doctor', p.Nombres + ' ' + p.Apellidos AS
'Paciente'
FROM dbo.RECETA AS RE INNER JOIN
dbo.DOCTOR AS d ON d.IdDoctor = RE.IdDoctor INNER JOIN
dbo.PACIENTE AS p ON p.IdPaciente = RE.IdPaciente
END

EXECUTE SPDELETE_RECETA
2
9.10.3 Actualizar

--CREAMOS EL PROCEDIMIENTO ALMACENADO PARA ACTUALIZAR RECETAS


--SE REALIZA LA VALIDACION DE LA MISMA POR MEDIO DE LA CEDULA
--DEL PACIENTE

CREATE PROCEDURE SPSET_ACTUALIZAR_RECETA


@NombreMedicamento NVARCHAR(60),
@Presentacion NVARCHAR(60),
@ViaAdministracion NVARCHAR(60),
@Dosis NVARCHAR(20),
@Frecuencia NVARCHAR(30),
@Tiempo NVARCHAR(30),
@Fecha DATE,
@CedulaPaciente NVARCHAR(16),
@IdDoctor INT

AS
BEGIN

--INGRESAMOS LOS DATOS A ACTUALIZAR


UPDATE RECETA SET
NombreMedicamento = @NombreMedicamento,
Presentacion = @Presentacion,
ViaAdministracion = @ViaAdministracion,
Dosis = @Dosis,
Frecuencia = @Frecuencia,
Tiempo = @Tiempo,
Fecha = @Fecha,
IdPaciente = (SELECT IdPaciente FROM PACIENTE WHERE Cedula =
@CedulaPaciente),
IdDoctor = @IdDoctor

--MOSTRAMOS LOS DATOS DE LA TABLA RECETA


SELECT IdReceta, NombreMedicamento, Presentacion, ViaAdministracion, Dosis,
Frecuencia, Tiempo, Fecha, d.Nombres + ' ' + d.Apellidos AS 'Doctor', p.Nombres +
' ' + p.Apellidos AS 'Paciente'
FROM dbo.RECETA AS RE INNER JOIN
dbo.DOCTOR AS d ON d.IdDoctor = RE.IdDoctor INNER JOIN
dbo.PACIENTE AS p ON p.IdPaciente = RE.IdPaciente

END

EXECUTE SPSET_ACTUALIZAR_RECETA
'Listerine Sabor Suave',
'Enjuague Bucal',
'Oral',
'600ml',
'30 segundos',
'Tres veces al día',
'2022-10-11',
'001-160802-1031P',
1

9.11 Usuarios

9.11.1 Insertar

--CREAMOS EL PROCEDIMIENTO PARA INSERTAR PACIENTES


CREATE PROCEDURE SPGET_INSERTAR_USUARIO
@NombreUsuario NVARCHAR(20),
@Rol NVARCHAR(20),
@Contrasenia NVARCHAR(5)

AS
BEGIN
--EN ESTA PARTE SE REALIZA LA CONSULTA PARA AGREGAR AL PACIENTE
INSERT INTO USUARIOS(NombreUsuario, Rol, Contrasenia) VALUES
(@NombreUsuario, @Rol, @Contrasenia)
--SE MUESTRA LA INFORMACION UNA VEZ AGREGADO EL PACIENTE
SELECT NombreUsuario, Rol FROM USUARIOS
END

EXECUTE SPGET_INSERTAR_USUARIO
'Admin',
'Administrador',
'0102S'

9.11.2 Eliminar

--Procedimiento para eliminar un Usuario.


CREATE PROCEDURE SPDELETE_USUARIO
--Se determinan las variables que recibira por parametro este procedimiento.
@IdUsuario INT

AS
BEGIN
--Se muestra los registros que tiene la tabla Usuario antes de la
eliminacion.
SELECT IdUsuario, NombreUsuario, Rol, Contrasenia FROM USUARIOS

--En esta parte se realiza la consulta para eliminar un registro de


Usuario por su id
DELETE FROM USUARIOS WHERE IdUsuario = @IdUsuario

--Se muestra los registros que tiene la tabla Usuario despues de la


eliminacion.
SELECT IdUsuario, NombreUsuario, Rol, Contrasenia FROM USUARIOS
END

9.11.3 Actualizar

CREATE PROCEDURE SPSET_ACTUALIZAR_USUARIO


@IdUsuario INT,
@NombreUsuario NVARCHAR(20),
@Rol NVARCHAR(20),
@Contrasenia NVARCHAR(5)

AS
BEGIN

-- ACTUALIZAR LOS DATOS DEL USUARIO


UPDATE USUARIOS
SET NombreUsuario = @NombreUsuario, Rol = @Rol, Contrasenia = @Contrasenia
WHERE IdUsuario = @IdUsuario

-- OBTENER LOS DATOS ACTUALIZADOS DEL USUARIO


SELECT IdUsuario, NombreUsuario, Rol, Contrasenia
FROM USUARIOS

END

SELECT IdUsuario, NombreUsuario, Rol, Contrasenia


FROM USUARIOS

EXECUTE SPSET_ACTUALIZAR_USUARIO
2,
'Doctor',
'Doctor',
'yoyo2'
10 Views

10.1 VwMostrar_Cita

--SE CREA UNA VISTA PARA MOSTRAR TODOS LAS CITAS AGENDADAS
CREATE VIEW VwMOSTRAR_CITA
AS
--CONSULTA PARA MOSTRAR LAS CITAS
SELECT IdCita, Motivo, Fecha, Hora, EstadoAsignacion, s.Nombres + ' ' +
s.Apellidos AS 'Secretario', p.Nombres + ' ' + p.Apellidos AS 'Paciente',
EstadoAsistencia
FROM dbo.CITA AS CI INNER JOIN
dbo.PACIENTE AS p ON p.IdPaciente = CI.IdPaciente INNER JOIN
dbo.SECRETARIA AS s ON s.IdSecretaria = CI.IdSecretaria
--EJECUCION DE LA VISTA
SELECT IdCita, Motivo, Fecha, Hora, EstadoAsignacion, Secretario, Paciente,
EstadoAsistencia
FROM MOSTRAR_CITA
ORDER BY Fecha DESC
10.2 VwMostrar_Cita_Doctor

--SE CREA UNA VISTA PARA MOSTRAR TODOS LAS CITAS ASIGNADAS AL DOCTOR
CREATE VIEW VwMOSTRAR__CITA_DOCTOR
AS
--CONSULTA PARA MOSTRAR LAS CITAS
SELECT IdCita, s.Nombres + ' ' + s.Apellidos AS 'Secretario', p.Nombres + ' ' +
p.Apellidos AS 'Paciente', d.Nombres + ' ' + d.Apellidos AS 'Doctor'
FROM dbo.CITA_DOCTOR AS CD INNER JOIN
dbo.SECRETARIA AS s ON s.IdSecretaria = CD.IdSecretaria INNER JOIN
dbo.PACIENTE AS p ON p.IdPaciente = CD.IdPaciente INNER JOIN
dbo.DOCTOR AS d ON d.IdDoctor = CD.IdDoctor
--EJECUCION DE LA VISTA
SELECT IdCita, Secretario, Paciente, Doctor FROM MOSTRAR__CITA_DOCTOR
ORDER BY IdCita ASC
10.3 VwMostrar_Historial_Clinico

--SE CREA UNA VISTA PARA MOSTRAR TODOS LOS HISTORIALES CLINICOS
CREATE VIEW VwMOSTRAR_HISTORIAL_CLINICO
AS
--CONSULTA PARA MOSTRAR EL HISTORIAL CLINICO
SELECT IdHistorial, p.Nombres + ' ' + p.Apellidos AS 'Paciente', s.Descripcion AS
'Servicio',
o.PiezaDental + ' - ' + o.Observaciones AS 'Odontograma', t.CostoTotal AS
'Costo Total'
FROM dbo.HISTORIAL_CLINICO AS HC INNER JOIN
dbo.PACIENTE AS p ON p.IdPaciente = HC.IdPaciente INNER JOIN
dbo.TRATAMIENTO AS t ON t.IdTratamiento = HC.IdTratamiento INNER JOIN
dbo.SERVICIOS AS s ON s.IdServicio = t.IdServicio INNER JOIN
dbo.ODONTOGRAMA AS o ON o.IdOdontograma = HC.IdOdontograma

--EJECUCION DE LA VISTA
SELECT IdHistorial,Paciente, Servicio, Odontograma, [Costo Total] FROM
MOSTRAR_HISTORIAL_CLINICO
ORDER BY IdHistorial ASC
10.4 VwMostrar_Receta

--SE CREA UNA VISTA PARA MOSTRAR TODOS LAS RECETAS REGISTRADAS
CREATE VIEW VwMOSTRAR_RECETA
AS
--CONSULTA PARA MOSTRAR LAS RECTAS
SELECT IdReceta, NombreMedicamento, Presentacion, ViaAdministracion, Dosis,
Frecuencia, Tiempo, Fecha, d.Nombres + ' ' + d.Apellidos AS 'Doctor', p.Nombres +
' ' + p.Apellidos AS 'Paciente'
FROM dbo.RECETA AS RE INNER JOIN
dbo.DOCTOR AS d ON d.IdDoctor = RE.IdDoctor INNER JOIN
dbo.PACIENTE AS p ON p.IdPaciente = RE.IdPaciente

--EJECUCION DE LA VISTA
SELECT IdReceta, NombreMedicamento, Presentacion, ViaAdministracion, Dosis,
Frecuencia, Tiempo, Fecha, Doctor, Paciente
FROM MOSTRAR_RECETA
ORDER BY IdReceta AS
10.5 VwMostrar_Tratamiento

--SE CREA UNA VISTA PARA MOSTRAR TODOS LOS TRATAMIENTOS REALIZADOS
CREATE VIEW VwMOSTRAR_TRATAMIENTO
AS
--CONSULTA PARA MOSTRAR LOS TRATAMIENTOS
SELECT IdTratamiento, CostoTotal, Fecha, s.Descripcion AS 'Servicio'
FROM dbo.TRATAMIENTO AS T INNER JOIN
dbo.SERVICIOS AS s ON s.IdServicio = T.IdServicio

--EJECUCION DE LA VISTA
SELECT IdTratamiento, CostoTotal, Fecha, Servicio
FROM MOSTRAR_TRATAMIENTO
ORDER BY IdTratamiento ASC
10.6 VwMostrar_Cita_Cancelada
--SE CREA UNA VISTA PARA MOSTRAR TODOS LAS CITAS CANCELADAS
CREATE VIEW VwMOSTRAR_CITA_CANCELADA
AS
--CONSULTA PARA MOSTRAR LAS CITAS CANCELADAS
SELECT IdCita, Motivo, Fecha, Hora, EstadoAsignacion, s.Nombres + ' ' +
s.Apellidos AS 'Secretario',
p.Nombres + ' ' + p.Apellidos AS 'Paciente', EstadoAsistencia
FROM dbo.CITA AS CI INNER JOIN
dbo.PACIENTE AS p ON p.IdPaciente = CI.IdPaciente INNER JOIN
dbo.SECRETARIA AS s ON s.IdSecretaria = CI.IdSecretaria WHERE
EstadoAsistencia = 'CANCELADA'

--EJECUCION DE LA VISTA
SELECT IdCita, Motivo, Fecha, Hora, EstadoAsignacion, Secretario, Paciente
FROM MOSTRAR_CITA_CANCELADA
ORDER BY IdCita ASC
10.7 VwMostrar_Cita_Pendiente

--SE CREA UNA VISTA PARA MOSTRAR TODOS LAS CITAS PENDIENTES DE LOS PACIENTES
CREATE VIEW VwMOSTRAR_CITA_PENDIENTE
AS
--CONSULTA PARA MOSTRAR LAS CITAS
SELECT IdCita, Motivo, Fecha, Hora, EstadoAsignacion, s.Nombres + ' ' +
s.Apellidos AS 'Secretario',
p.Nombres + ' ' + p.Apellidos AS 'Paciente', EstadoAsistencia
FROM dbo.CITA AS CI INNER JOIN
dbo.PACIENTE AS p ON p.IdPaciente = CI.IdPaciente INNER JOIN
dbo.SECRETARIA AS s ON s.IdSecretaria = CI.IdSecretaria WHERE
EstadoAsistencia = 'PENDIENTE'

--EJECUCION DE LA VISTA
SELECT IdCita, Motivo, Fecha, Hora, EstadoAsignacion,Secretario,
Paciente, EstadoAsistencia
FROM MOSTRAR_CITA_PENDIENTE
ORDER BY Fecha DESC
10.8 VwMostrar_Cita_Realizada

--SE CREA UNA VISTA PARA MOSTRAR TODOS LAS CITAS COMPLETADAS
CREATE VIEW VwMOSTRAR_CITA_REALIZADA
AS
--CONSULTA PARA MOSTRAR LAS CITAS COMPLETADAS
SELECT IdCita, Motivo, Fecha, Hora, s.Nombres + ' ' + s.Apellidos AS
'Secretario',
p.Nombres + ' ' + p.Apellidos AS 'Paciente', EstadoAsistencia
FROM dbo.CITA AS CI INNER JOIN
dbo.PACIENTE AS p ON p.IdPaciente = CI.IdPaciente INNER JOIN
dbo.SECRETARIA AS s ON s.IdSecretaria = CI.IdSecretaria WHERE
EstadoAsistencia = 'ASISTIO'

--EJECUCION DE LA VISTA
SELECT IdCita, Motivo, Fecha, Hora, Secretario,
Paciente, EstadoAsistencia
FROM MOSTRAR_CITA_REALIZADA
ORDER BY Fecha ASC
10.9 VwMostrar_Doctor

--SE CREA UNA VISTA PARA MOSTRAR TODOS LOS DOCTORES


CREATE VIEW VwMOSTRAR_DOCTOR
AS
--CONSULTA PARA MOSTRAR LOS DOCTORES
SELECT IdDoctor, Cedula, Nombres, Apellidos, Sexo, Telefono, Direccion, FechaNac,
Email, Especialidad, Estado FROM DOCTOR

--EJECUCION DE LA VISTA
SELECT IdDoctor, Cedula, Nombres, Apellidos, Sexo, Telefono, Direccion, FechaNac,
Email, Especialidad, Estado
FROM MOSTRAR_DOCTOR
ORDER BY IdDoctor ASC
10.10 VwMostrar_Odontograma

--SE CREA UNA VISTA PARA MOSTRAR EL REGISTRO DE LOS TRATAMIENTOS EN LOS DIENTES
CREATE VIEW VwMOSTRAR_ODONTOGRAMA
AS
--CONSULTA PARA MOSTRAR EL ODONTOGRAMA
SELECT IdOdontograma, PiezaDental, Observaciones FROM ODONTOGRAMA

--EJECUCION DE LA VISTA
SELECT IdOdontograma, PiezaDental, Observaciones
FROM MOSTRAR_ODONTOGRAMA
ORDER BY IdOdontograma ASC
10.11 VwMostrar_Paciente

--SE CREA UNA VISTA PARA MOSTRAR LA INFORMACION DE LOS PACIENTES


CREATE VIEW VwMOSTRAR_PACIENTE
AS
--CONSULTA PARA MOSTRAR LA INFORMACION DE LOS PACIENTES
SELECT IdPaciente, Cedula, Nombres, Apellidos, Sexo, Ocupacion, Telefono,
Direccion, FechaNac, NombreResponsable, ApellidoResponsable,
UltimaVisita, HabitoDental, Fuma, AnesteciadoAntes, DolorApertura, DolorDental,
AlergiaMedicamentos, Estado FROM PACIENTE

--EJECUCION DE LA VISTA
SELECT IdPaciente, Cedula, Nombres, Apellidos, Sexo, Ocupacion, Telefono,
Direccion, FechaNac, NombreResponsable, ApellidoResponsable,
UltimaVisita, HabitoDental, Fuma, AnesteciadoAntes, DolorApertura, DolorDental,
AlergiaMedicamentos, Estado
FROM MOSTRAR_PACIENTE
ORDER BY IdPaciente ASC
10.12 VwMostrar_Receta

--SE CREA UNA VISTA PARA MOSTRAR TODOS LAS RECETAS ASIGNADAS A UN PACIENTE
CREATE VIEW VwMOSTRAR_RECETA
AS
--CONSULTA PARA MOSTRAR LAS RECETAS
SELECT IdReceta, NombreMedicamento, Presentacion, ViaAdministracion, Dosis,
Frecuencia, Tiempo, Fecha, d.Nombres + ' ' + d.Apellidos AS 'Doctor', p.Nombres +
' ' + p.Apellidos AS 'Paciente'
FROM dbo.RECETA AS RE INNER JOIN
dbo.DOCTOR AS d ON d.IdDoctor = RE.IdDoctor INNER JOIN
dbo.PACIENTE AS p ON p.IdPaciente = RE.IdPaciente

--EJECUCION DE LA VISTA
SELECT IdReceta, NombreMedicamento, Presentacion, ViaAdministracion, Dosis,
Frecuencia, Tiempo, Fecha, Doctor, Paciente
FROM MOSTRAR_RECETA
ORDER BY IdReceta ASC
10.13 VwMostrar_Secretaria

--SE CREA UNA VISTA PARA MOSTRAR LA INFORMACION PERSONAL DE LOS SECRETARI@
CREATE VIEW VwMOSTRAR_SECRETARIA
AS
--CONSULTA PARA MOSTRAR SECRETARI@
SELECT IdSecretaria, Cedula, Nombres, Apellidos, FechaNac, Sexo, Direccion,
Telefono, Email, Estado FROM SECRETARIA

--EJECUCION DE LA VISTA
SELECT IdSecretaria, Cedula, Nombres, Apellidos, FechaNac, Sexo, Direccion,
Telefono, Email, Estado
FROM MOSTRAR_SECRETARIA
ORDER BY IdSecretaria ASC
10.14 VwMostrar_Servicios

--SE CREA UNA VISTA PARA MOSTRAR LOS SERVICIOS DE LA CLINICA


CREATE VIEW VwMOSTRAR_SERVICIOS
AS
--CONSULTA PARA MOSTRAR LOS SERVICIOS
SELECT IdServicio, Descripcion, Precio FROM SERVICIOS

--EJECUCION DE LA VISTA
SELECT IdServicio, Descripcion, Precio
FROM MOSTRAR_SERVICIOS
ORDER BY IdServicio ASC
10.15 VwMostrar_Usuarios

--SE CREA UNA VISTA PARA MOSTRAR TODOS LOS USUARIOS


CREATE VIEW VwMOSTRAR_USUARIO
AS
--CONSULTA PARA MOSTRAR LOS USUARIOS
SELECT NombreUsuario, Rol, Contrasenia FROM USUARIOS

--EJECUCION DE LA VISTA
SELECT NombreUsuario, Rol, Contrasenia
FROM MOSTRAR_USUARIO
ORDER BY NombreUsuario ASC
Cantidad de Registros

25 registros Tabla Paciente.

25 registros Tabla secretaria.

25 registros Tabla Doctor.


25 registros Tabla Cita.

25 registros Tabla Receta.

25 registros Tabla Historial Clinicio.


10 registros Tabla Servicios.

25 registros Tabla Odontograma.


25 registros Tabla Tratamiento.

25 registros Tabla Cita Doctor.


3 registros Tabla Usuario.

También podría gustarte